Payment Registry
The Payment Registry accepts fulfillments from Market Makers (MMs), transfers funds to users on the destination chain, and records immutable fulfillment data used later for HDP verification.
Storage
mapping(bytes32 => bytes32) fulfillments: maps a fulfillment order hash to the MM’s source address (stored asbytes32). A non-zero value indicates the order has been fulfilled and by whom.
HDP Integration
The
fulfillmentsmapping is the on-chain ground truth that orders were paid on the destination chain.HDP reads the EVM storage slot for each order’s fulfillment hash to verify non-zero presence and who fulfilled it.
The mapping slot index is fixed by the contract’s storage layout and is used by the HDP module to derive the storage key for proofs.
Controls and Safety
Pausableadmin switch andonlyOwnerpause/unpause.ReentrancyGuardon fulfillment entrypoint.Uses
SafeERC20for token transfers.fulfillments[orderHash] == 0check prevents double-fulfillment.
Last updated