Skip to content

Latest commit

 

History

History
267 lines (191 loc) · 14.9 KB

File metadata and controls

267 lines (191 loc) · 14.9 KB

HyperEVM Configuration Calldata

This document contains the raw calldata for configuring ETH/Base -> HyperEVM OFT pathways. These transactions need to be executed via Etherscan/Basescan using the Porto wallet.

Important: Authorization Requirements

Transaction Target Contract Who Can Execute Wallet
TX 1-2 OFT contracts Owner only MPC Wallet (0x97b5e4a707A4D5AB4A58b2c93bc8d249a63Ff153)
TX 3-6 LZ Endpoint Delegate only Deployer (0x6E3dadcAf328ebB58753e89a3e589F5C5e988dF8)

Current Delegate Status (Verified)

Chain OFT Contract Current Delegate
Ethereum 0x722ff7C0665F4b1823c9C4cFcDF73A43de5865BD 0x6E3dadcAf328ebB58753e89a3e589F5C5e988dF8
Base 0x5b2193fDc451C1f847bE09CA9d13A4Bf60f8c86B 0x6E3dadcAf328ebB58753e89a3e589F5C5e988dF8

Good news: The deployer is already set as the delegate for both OFT contracts. This means:

  • TX 1-2: Must be executed via Porto (MPC wallet)
  • TX 3-6: Can be executed by the deployer directly (no MPC needed)

setDelegate Calldata (if delegation needs to change)

On ETH OFT Adapter (0x722ff7C0665F4b1823c9C4cFcDF73A43de5865BD):

0xca5eb5e100000000000000000000000097b5e4a707a4d5ab4a58b2c93bc8d249a63ff153

On Base OFT (0x5b2193fDc451C1f847bE09CA9d13A4Bf60f8c86B):

0xca5eb5e100000000000000000000000097b5e4a707a4d5ab4a58b2c93bc8d249a63ff153

Overview

Chain # of Transactions OFT Contract
Ethereum 6 0x722ff7C0665F4b1823c9C4cFcDF73A43de5865BD (UpOFTAdapter)
Base 6 0x5b2193fDc451C1f847bE09CA9d13A4Bf60f8c86B (UpOFT)

HyperEVM OFT (peer): 0x642fFC3496AcA19106BAB7A42F1F221a329654fe

LayerZero Endpoint: 0x1a44076050125825900e736c501f859c50fE728c (same on ETH & Base)


Ethereum Transactions (6 total)

TX 1: setPeer on UpOFTAdapter

Field Value
To 0x722ff7C0665F4b1823c9C4cFcDF73A43de5865BD
Function setPeer(uint32 _eid, bytes32 _peer)
Value 0 ETH

Calldata:

0x3400288b000000000000000000000000000000000000000000000000000000000000769f000000000000000000000000642ffc3496aca19106bab7a42f1f221a329654fe

TX 2: setEnforcedOptions on UpOFTAdapter

Field Value
To 0x722ff7C0665F4b1823c9C4cFcDF73A43de5865BD
Function setEnforcedOptions(EnforcedOptionParam[])
Value 0 ETH

Calldata:

0xb98bd07000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000769f000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000016000301001101000000000000000000000000000493e000000000000000000000000000000000000000000000000000000000000000000000000000000000769f00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000002c000301001101000000000000000000000000000493e0010013030000000000000000000000000000000f42400000000000000000000000000000000000000000

TX 3: setSendLibrary on LZ Endpoint

Field Value
To 0x1a44076050125825900e736c501f859c50fE728c
Function setSendLibrary(address _oapp, uint32 _eid, address _newLib)
Value 0 ETH

Calldata:

0x9535ff30000000000000000000000000722ff7c0665f4b1823c9c4cfcdf73a43de5865bd000000000000000000000000000000000000000000000000000000000000769f000000000000000000000000bb2ea70c9e858123480642cf96acbcce1372dce1

TX 4: setReceiveLibrary on LZ Endpoint

Field Value
To 0x1a44076050125825900e736c501f859c50fE728c
Function setReceiveLibrary(address _oapp, uint32 _eid, address _newLib, uint256 _gracePeriod)
Value 0 ETH

Calldata:

0x6a14d715000000000000000000000000722ff7c0665f4b1823c9c4cfcdf73a43de5865bd000000000000000000000000000000000000000000000000000000000000769f000000000000000000000000c02ab410f0734efa3f14628780e6e695156024c20000000000000000000000000000000000000000000000000000000000000000

TX 5: setConfig (SendLib) on LZ Endpoint

Field Value
To 0x1a44076050125825900e736c501f859c50fE728c
Function setConfig(address _oapp, address _lib, SetConfigParam[])
Value 0 ETH

Calldata:

0x6dbd9f90000000000000000000000000722ff7c0665f4b1823c9c4cfcdf73a43de5865bd000000000000000000000000bb2ea70c9e858123480642cf96acbcce1372dce10000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000769f0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000002710000000000000000000000000173272739bd7aa6e4e214714048a9fe699453059000000000000000000000000000000000000000000000000000000000000769f0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000f00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000589dedbd617e0cbcb916a9223f4d1300c294236b0000000000000000000000000000000000000000000000000000000000000000

TX 6: setConfig (ReceiveLib) on LZ Endpoint

Field Value
To 0x1a44076050125825900e736c501f859c50fE728c
Function setConfig(address _oapp, address _lib, SetConfigParam[])
Value 0 ETH

Calldata:

0x6dbd9f90000000000000000000000000722ff7c0665f4b1823c9c4cfcdf73a43de5865bd000000000000000000000000c02ab410f0734efa3f14628780e6e695156024c2000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000769f0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000589dedbd617e0cbcb916a9223f4d1300c294236b0000000000000000000000000000000000000000000000000000000000000000

Base Transactions (6 total)

TX 1: setPeer on UpOFT

Field Value
To 0x5b2193fDc451C1f847bE09CA9d13A4Bf60f8c86B
Function setPeer(uint32 _eid, bytes32 _peer)
Value 0 ETH

Calldata:

0x3400288b000000000000000000000000000000000000000000000000000000000000769f000000000000000000000000642ffc3496aca19106bab7a42f1f221a329654fe

TX 2: setEnforcedOptions on UpOFT

Field Value
To 0x5b2193fDc451C1f847bE09CA9d13A4Bf60f8c86B
Function setEnforcedOptions(EnforcedOptionParam[])
Value 0 ETH

Calldata:

0xb98bd07000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000769f000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000016000301001101000000000000000000000000000493e000000000000000000000000000000000000000000000000000000000000000000000000000000000769f00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000002c000301001101000000000000000000000000000493e0010013030000000000000000000000000000000f42400000000000000000000000000000000000000000

TX 3: setSendLibrary on LZ Endpoint

Field Value
To 0x1a44076050125825900e736c501f859c50fE728c
Function setSendLibrary(address _oapp, uint32 _eid, address _newLib)
Value 0 ETH

Calldata:

0x9535ff300000000000000000000000005b2193fdc451c1f847be09ca9d13a4bf60f8c86b000000000000000000000000000000000000000000000000000000000000769f000000000000000000000000b5320b0b3a13cc860893e2bd79fcd7e13484dda2

TX 4: setReceiveLibrary on LZ Endpoint

Field Value
To 0x1a44076050125825900e736c501f859c50fE728c
Function setReceiveLibrary(address _oapp, uint32 _eid, address _newLib, uint256 _gracePeriod)
Value 0 ETH

Calldata:

0x6a14d7150000000000000000000000005b2193fdc451c1f847be09ca9d13a4bf60f8c86b000000000000000000000000000000000000000000000000000000000000769f000000000000000000000000c70ab6f32772f59fbfc23889caf4ba3376c84baf0000000000000000000000000000000000000000000000000000000000000000

TX 5: setConfig (SendLib) on LZ Endpoint

Field Value
To 0x1a44076050125825900e736c501f859c50fE728c
Function setConfig(address _oapp, address _lib, SetConfigParam[])
Value 0 ETH

Calldata:

0x6dbd9f900000000000000000000000005b2193fdc451c1f847be09ca9d13a4bf60f8c86b000000000000000000000000b5320b0b3a13cc860893e2bd79fcd7e13484dda20000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000769f00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000027100000000000000000000000002cca08ae69e0c44b18a57ab2a87644234daebae4000000000000000000000000000000000000000000000000000000000000769f0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000010000000000000000000000009e059a54699a285714207b43b055483e78faac250000000000000000000000000000000000000000000000000000000000000000

TX 6: setConfig (ReceiveLib) on LZ Endpoint

Field Value
To 0x1a44076050125825900e736c501f859c50fE728c
Function setConfig(address _oapp, address _lib, SetConfigParam[])
Value 0 ETH

Calldata:

0x6dbd9f900000000000000000000000005b2193fdc451c1f847be09ca9d13a4bf60f8c86b000000000000000000000000c70ab6f32772f59fbfc23889caf4ba3376c84baf000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000769f0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000010000000000000000000000009e059a54699a285714207b43b055483e78faac250000000000000000000000000000000000000000000000000000000000000000

How to Execute via Etherscan/Basescan

  1. Go to the target contract on Etherscan (for Ethereum TXs) or Basescan (for Base TXs)
  2. Connect your Porto wallet via WalletConnect
  3. Navigate to "Contract" → "Write Contract"
  4. For simpler transactions (TX 1, 3, 4): Find the function and enter parameters manually
  5. For complex transactions (TX 2, 5, 6): Use "Write Contract" with raw input data:
    • Some explorers have a "Write as Proxy" or raw input option
    • Alternatively, use the "Contract" → "Code" → "Write Contract" with the raw calldata

Alternative: Using cast

You can also decode and verify the calldata using cast:

# Decode setPeer calldata
cast 4byte-decode 0x3400288b000000000000000000000000000000000000000000000000000000000000769f000000000000000000000000642ffc3496aca19106bab7a42f1f221a329654fe

Regenerating Calldata

If you need to regenerate this calldata (e.g., for different addresses), run:

cd /Users/cosming/1.Coding/Superform/v2-periphery
forge script script/GenerateHyperEVMCalldata.s.sol -vvv

Generated: 2026-02-19