End To End
The user creates an intent using the Escrow smart contract on the source chain.
A hash of the intent details is stored in
orderStatus
.An
OrderPlaced
event is emitted.The Operator service, listening for the
OrderPlaced
event, detects the new intent.The Market Maker (MM) calls the
mostFulfillOrders
function on the PaymentRegistry smart contract on the destination chain, using details from theOrderPlaced
event.The PaymentRegistry contract records the transaction details and transfers the funds to the user on the destination chain.
The Operator service, listens for the
FulfillmentReceipt
event from the PaymentRegistry contract.Once the
FulfillmentReceipt
event is detected, the MM can either begin the proof process immediately or wait for better gas prices and batch proof their intent fulfillments.When the proof process begins, the Operator service gathers data specifying which intent is being proved.
The Operator service forwards the data for the intents claimed as fulfilled back to the Escrow smart contract, which sends the data to an HDP module that calculates which storage slots in the
PaymentRegistry
smart contract certify intent fulfillment.The HDP module verifies that the storage slot for each order hash stores a non-zero
bytes32
(the MM’s source address). If so, the module output is validated by Escrow and the funds are released to the MM.
Last updated