IWormhole

Git Source

Functions

publishMessage

function publishMessage(
    uint32 nonce,
    bytes memory payload,
    uint8 consistencyLevel
)
    external
    payable
    returns (uint64 sequence);

initialize

function initialize() external;

parseAndVerifyVM

function parseAndVerifyVM(bytes calldata encodedVM)
    external
    view
    returns (VM memory vm, bool valid, string memory reason);

verifyVM

function verifyVM(VM memory vm) external view returns (bool valid, string memory reason);

verifySignatures

function verifySignatures(
    bytes32 hash,
    Signature[] memory signatures,
    GuardianSet memory guardianSet
)
    external
    pure
    returns (bool valid, string memory reason);

parseVM

function parseVM(bytes memory encodedVM) external pure returns (VM memory vm);

quorum

function quorum(uint256 numGuardians) external pure returns (uint256 numSignaturesRequiredForQuorum);

getGuardianSet

function getGuardianSet(uint32 index) external view returns (GuardianSet memory);

getCurrentGuardianSetIndex

function getCurrentGuardianSetIndex() external view returns (uint32);

getGuardianSetExpiry

function getGuardianSetExpiry() external view returns (uint32);

governanceActionIsConsumed

function governanceActionIsConsumed(bytes32 hash) external view returns (bool);

isInitialized

function isInitialized(address impl) external view returns (bool);

chainId

function chainId() external view returns (uint16);

isFork

function isFork() external view returns (bool);

governanceChainId

function governanceChainId() external view returns (uint16);

governanceContract

function governanceContract() external view returns (bytes32);

messageFee

function messageFee() external view returns (uint256);

evmChainId

function evmChainId() external view returns (uint256);

nextSequence

function nextSequence(address emitter) external view returns (uint64);

parseContractUpgrade

function parseContractUpgrade(bytes memory encodedUpgrade) external pure returns (ContractUpgrade memory cu);

parseGuardianSetUpgrade

function parseGuardianSetUpgrade(bytes memory encodedUpgrade) external pure returns (GuardianSetUpgrade memory gsu);

parseSetMessageFee

function parseSetMessageFee(bytes memory encodedSetMessageFee) external pure returns (SetMessageFee memory smf);

parseTransferFees

function parseTransferFees(bytes memory encodedTransferFees) external pure returns (TransferFees memory tf);

parseRecoverChainId

function parseRecoverChainId(bytes memory encodedRecoverChainId) external pure returns (RecoverChainId memory rci);

submitContractUpgrade

function submitContractUpgrade(bytes memory _vm) external;

submitSetMessageFee

function submitSetMessageFee(bytes memory _vm) external;

submitNewGuardianSet

function submitNewGuardianSet(bytes memory _vm) external;

submitTransferFees

function submitTransferFees(bytes memory _vm) external;

submitRecoverChainId

function submitRecoverChainId(bytes memory _vm) external;

Events

LogMessagePublished

event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel);

ContractUpgraded

event ContractUpgraded(address indexed oldContract, address indexed newContract);

GuardianSetAdded

event GuardianSetAdded(uint32 indexed index);

Structs

GuardianSet

struct GuardianSet {
    address[] keys;
    uint32 expirationTime;
}

Signature

struct Signature {
    bytes32 r;
    bytes32 s;
    uint8 v;
    uint8 guardianIndex;
}

VM

struct VM {
    uint8 version;
    uint32 timestamp;
    uint32 nonce;
    uint16 emitterChainId;
    bytes32 emitterAddress;
    uint64 sequence;
    uint8 consistencyLevel;
    bytes payload;
    uint32 guardianSetIndex;
    Signature[] signatures;
    bytes32 hash;
}

ContractUpgrade

struct ContractUpgrade {
    bytes32 module;
    uint8 action;
    uint16 chain;
    address newContract;
}

GuardianSetUpgrade

struct GuardianSetUpgrade {
    bytes32 module;
    uint8 action;
    uint16 chain;
    GuardianSet newGuardianSet;
    uint32 newGuardianSetIndex;
}

SetMessageFee

struct SetMessageFee {
    bytes32 module;
    uint8 action;
    uint16 chain;
    uint256 messageFee;
}

TransferFees

struct TransferFees {
    bytes32 module;
    uint8 action;
    uint16 chain;
    uint256 amount;
    bytes32 recipient;
}

RecoverChainId

struct RecoverChainId {
    bytes32 module;
    uint8 action;
    uint256 evmChainId;
    uint16 newChainId;
}