diff --git a/src/Verifier.sol b/src/Verifier.sol index ac1b75b..309e999 100644 --- a/src/Verifier.sol +++ b/src/Verifier.sol @@ -30,10 +30,7 @@ abstract contract Verifier is IVerifier { bytes32[32] messageProof; } - /// @notice Fetch message root oracle. - /// @param chainId The destination chain id. - /// @param blockNumber The block number where the message root is located. - /// @return Message root in destination chain. + /// @inheritdoc IVerifier function merkleRoot(uint256 chainId, uint256 blockNumber) public view virtual returns (bytes32); /// @inheritdoc IVerifier diff --git a/src/interfaces/IVerifier.sol b/src/interfaces/IVerifier.sol index 5a6dbd7..5b25f7b 100644 --- a/src/interfaces/IVerifier.sol +++ b/src/interfaces/IVerifier.sol @@ -18,6 +18,12 @@ pragma solidity 0.8.17; interface IVerifier { + /// @notice Fetch message root oracle. + /// @param chainId The destination chain id. + /// @param blockNumber The block number where the message root is located. + /// @return Message root in destination chain. + function merkleRoot(uint256 chainId, uint256 blockNumber) external view returns (bytes32); + /// @notice Verify message proof /// @dev Message proof provided by relayer. Oracle should provide message root of /// source chain, and verify the merkle proof of the message hash.