[Whitelisted Caller] Refund 44,246.284868 cNGN of protocol fees to 0x4301a30ab2A9C040a8cBEc7fBBde9A6Af0C5F9ac

Execute the previously whitelisted IntentsCoprocessor.sweepDust call via the Whitelisted Caller track, refunding 44,246.284868 cNGN to 0x4301a30ab2A9C040a8cBEc7fBBde9A6Af0C5F9ac from the Base IntentGateway.

Dispatch Call Details

  • Outer call: Whitelist.dispatchWhitelistedCall(callHash, callEncodedLen, callWeightWitness) (pallet index 83, call index 2)
  • callHash: 0xaaefa0b344f591265d462a8c456729d3bf29f3b993d49f535621051516de99b5
  • callEncodedLen: 92
  • callWeightWitness: { refTime: 800000000, proofSize: 6000 }
  • Encoded: 0x5302aaefa0b344f591265d462a8c456729d3bf29f3b993d49f535621051516de99b55c0000000220bcbec15d
  • Hash: 0x55fc0f0210cd0d1ccfb994021b387ed1571b15689f25ba9abc9b541700562f7d
  • Length: 44

What This Does

Refunds the protocol fee the Base IntentGateway charged 0x4301a30ab2A9C040a8cBEc7fBBde9A6Af0C5F9ac on two orders that did not execute as intended.

The gateway takes protocolFeeBps off the input amount at order placement, before any fill happens. Base is configured at 5 bps (0.05%). Because the fee comes off notional at placement rather than off what actually gets swapped, both orders paid in full on amounts that were only partly filled or not filled at all.

Order Input (cNGN) Fee taken (cNGN) Outcome
0x0156216e… 68,957,000 34,478.5 Partially filled, 40,523,659.135475 refunded
0xb405d803… 19,535,569.737450 9,767.784868 Never filled, 19,525,801.952582 refunded
Total 44,246.284868

Both fee figures come from the gateway's own DustCollected(address,uint256) logs, topic 0x51eb5aa877b3d80e186f9a323c6dce052491963271d09ee40615d0bb182359d5.

Decoded Call

IntentsCoprocessor.sweepDust(stateMachine, sweepDust) (pallet index 94, call index 4):

Argument Value
stateMachine StateMachine::Evm(8453) (EVM-8453, Base mainnet)
sweepDust.beneficiary 0x4301a30ab2A9C040a8cBEc7fBBde9A6Af0C5F9ac
sweepDust.outputs[0].token 0x46C85152bFe9f96829aA94755D9f915F9B10EF5F (cNGN, 6 decimals)
sweepDust.outputs[0].amount 44246284868

What Lands on Base

The pallet builds an ISMP post request to the registered gateway 0xAe041F7B0CB581876832830baeB6a2Aa2a3C9716, with timeout: 0 and fee: 0, carrying a 161-byte body: a one-byte RequestKind::SweepDust discriminator followed by abi.encode(SweepDust).

0x03
  0000000000000000000000004301a30ab2a9c040a8cbec7fbbde9a6af0c5f9ac   beneficiary
  0000000000000000000000000000000000000000000000000000000000000040   offset to outputs
  0000000000000000000000000000000000000000000000000000000000000001   outputs.length
  00000000000000000000000046c85152bfe9f96829aa94755d9f915f9b10ef5f   token
  0000000000000000000000000000000000000000000000000000000a4d48ba44   amount

ExtrinsicIntents.onAccept requires keccak256(request.source) == keccak256(host.hyperbridge()) for this request kind. host.hyperbridge() on Base returns POLKADOT-3367, which is what Nexus dispatches as, so the check passes. The gateway then runs safeTransfer(cNGN, beneficiary, 44246284868) and emits DustSwept(token, amount, beneficiary).

Edited
Reply
Up
Share
Status
Decision1d
Confirmation
1hr
Attempts
1
Tally
100%Aye
50.0%Threshold
0%Nay
Aye
≈349.48MBRIDGE
Nay
0BRIDGE
  • 5.00%
  • 0.0%

    Threshold

  • 0.0%
Support
57.4%
≈349.48MBRIDGE
Issuance
≈608.53MBRIDGE
Votes
Nested
Flattened
Actions
Check how referenda works here.
Call
Metadata
Timeline6
Votes Bubble
Curves
Statistics
Comments

Status
Decision1d
Confirmation
1hr
Attempts
1
Tally
100%Aye
50.0%Threshold
0%Nay
Aye
≈349.48MBRIDGE
Nay
0BRIDGE
  • 5.00%
  • 0.0%

    Threshold

  • 0.0%
Support
57.4%
≈349.48MBRIDGE
Issuance
≈608.53MBRIDGE
Votes
Nested
Flattened
Actions
Check how referenda works here.