Transfers
Lifecycle
Transfers are created by xApps calling xcall
on the Spoke
contracts:
Routers will watch for XCalled
events, calculate the cost of execution, and submit a bid to the Auctioneer
on the clearing chain. The Auctioneer
selects the router by honoring the bid with the lowest fees.
Once the auction period elapses, the winning router will call execute
on the Spoke
contracts:
Copy
xcall
and execute
thinly wrap the newIntent
and fillIntent
functions. Once both messages arrive on the clearing chain, the transfer can be settled to the winning router.
What if no routers bid?
If no routers bid, users can increase the fees going to the solver by calling bumpTransfer
with the native or input
asset on the origin chain.
What if the winning router fails to execute?
The winning router will have a predefined window to execute the transfer. The timestamp of execution will be passed back to the clearing chain in the dispatched FillMessage
for enforcement.
If this window elapses and the router fails to execute, the intent will be open to any router who will take the MAX_FEE
as defined by the protocol plus any added fees.
Last updated