IMessageRecipient interface to receive proof messages from the Hyperlane mailbox.
Contract Overview
Location:contracts/prover/HyperProver.sol
contracts/prover/HyperProver.sol
Constructor
FromHyperProver.sol:55-62:
contracts/prover/HyperProver.sol
Parameters
address
Address of the local Hyperlane mailbox contract
address
Address of the Portal contract that manages rewards
bytes32[]
Array of trusted prover addresses on other chains (as bytes32 for cross-VM compatibility)
Prove Function
Inherited fromMessageBridgeProver.sol:112-117:
contracts/prover/MessageBridgeProver.sol
Data Parameter Structure
Thedata parameter must be ABI-encoded as an UnpackedData struct (from HyperProver.sol:22-26):
contracts/prover/HyperProver.sol
Message Dispatch
Internal dispatch implementation fromHyperProver.sol:93-120:
contracts/prover/HyperProver.sol
Message Formatting
FromHyperProver.sol:201-224:
contracts/prover/HyperProver.sol
Message Reception
FromHyperProver.sol:71-83:
contracts/prover/HyperProver.sol
handle() function:
- Validates origin domain ID is non-zero
- Validates sender address is non-zero
- Checks sender is whitelisted
- Extracts chain ID from message prefix
- Processes intent proofs
Fee Calculation
FromHyperProver.sol:130-141:
contracts/prover/HyperProver.sol
HyperProver.sol:162-183):
contracts/prover/HyperProver.sol
Usage Example
Domain ID Reference
Common mappings (verify before use):Security Considerations
Whitelist Validation
Only whitelisted prover addresses can send proof messages. This is validated in_handleCrossChainMessage() from MessageBridgeProver.sol:81-82:
contracts/prover/MessageBridgeProver.sol
Hook Security
Custom hooks can be specified, but default to the mailbox’s default hook:contracts/prover/HyperProver.sol
Related Contracts
- BaseProver - Base proving functionality
- MessageBridgeProver - Message bridge base contract
- Inbox - Intent fulfillment and proving