Skip to content
Lattice

DispatchPost

Git Source

Title: IIsmpDispatcher

Author: Vendored minimal subset of Hyperbridge's ismp-solidity

(https://github.com/polytope-labs/ismp-solidity). Upstream license: Apache-2.0.

Dispatch surface of the local Hyperbridge IsmpHost (upstream IDispatcher): POST-request dispatch plus the two fee views the HyperbridgeGatewayAdapter quotes against. Hyperbridge is PROOF-VERIFIED interop — consensus + state proofs are aggregated on a Polkadot-secured coprocessor and delivered by permissionless proof-carrying relayers; there is NO attestation committee.

Only the POST-request subset the adapter calls is re-declared (no GET requests, no responses, no fundRequest) — do NOT add an ismp-solidity dependency. FEES: dispatch charges perByteFee(dest) * body.length + fee in the ERC-20 feeToken to msg.sender; a native-token path (the host swaps msg.value via its local uniswap router) exists upstream but is NOT used by the adapter in v1.

An object for dispatching POST requests to Hyperbridge.

struct DispatchPost {
    /// @notice Bytes representation of the destination state machine (e.g. `bytes("EVM-8453")`).
    bytes dest;
    /// @notice The destination module (the counterpart contract on `dest`).
    bytes to;
    /// @notice The request body.
    bytes body;
    /// @notice Timeout for this request in seconds (0 = no timeout — the host's default handling).
    uint64 timeout;
    /// @notice The amount put up to be paid to the relayer, charged in `feeToken` to `msg.sender`
    ///         (0 = unfunded/self-relay, valid in ISMP).
    uint256 fee;
    /// @notice Who pays for this request — the beneficiary of the host-side fee refund if it times out.
    address payer;
}

Properties

NameTypeDescription
destbytes
tobytes
bodybytes
timeoutuint64
feeuint256
payeraddress