Skip to content
Lattice

ZetaChainGatewayAdapterStorage

Git Source

ERC-7201 namespaced storage for the ZetaChain gateway adapter.

Note:

  • storage-location: erc7201:lattice.storage.ZetaChainGatewayAdapter
struct ZetaChainGatewayAdapterStorage {
    /// @notice The ZetaChain `GatewayEVM` (a DEPLOYED contract, address varies per connected chain). APPEND-ONLY.
    address _gateway;
    /// @notice The default `onRevertGasLimit` used to build per-message `RevertOptions`. APPEND-ONLY.
    uint256 _defaultOnRevertGasLimit;
    /// @notice Forward map: hub chainId => trusted remote ZEVM universal app (0 = unset). APPEND-ONLY.
    mapping(uint256 chainId => address remoteApp) _remoteApps;
    /// @notice Reverse map: trusted remote ZEVM universal app => hub chainId (0 = unset). APPEND-ONLY.
    ///         `onCall` yields `context.sender = the app` (NOT a chainId); this recovers the source chainId for
    ///         auth + the delivery-id namespace.
    mapping(address remoteApp => uint256 chainId) _appToChainId;
    /// @notice Replay guard: per source chainId, the set of consumed delivery ids. APPEND-ONLY.
    mapping(uint256 chainId => mapping(bytes32 id => bool used)) _executed;
    /// @notice Monotonic outbound counter. The ZetaChain gateway exposes no per-message id to the delivery hook,
    ///         so each dispatched message carries this source-minted nonce, giving a globally-unique (source,
    ///         nonce) id on delivery (matching the unique-id semantics of the CCIP/LayerZero/OP siblings).
    uint256 _outboundNonce;
}

Properties

NameTypeDescription
_gatewayaddress
_defaultOnRevertGasLimituint256
_remoteAppsmapping(uint256 chainId => address remoteApp)
_appToChainIdmapping(address remoteApp => uint256 chainId)
_executedmapping(uint256 chainId => mapping(bytes32 id => bool used))
_outboundNonceuint256