wXRP token and OFT contracts on Ethereum and HyperEVM.
# Compile contracts.
pnpm hardhat compile
# Send 0.01 USDC to deployer address on HyperCore through `app.hyperliquid-testnet.xyz`.
# It'll activate the account.
# Ensure the account is activated.
pnpm exec oft-hyperliquid-evm is-account-activated -u $(cast wallet addr $PRIVATE_KEY) -n testnet
# Deploy OFT contracts. Prompts will appear to confirm HyperEVM block size switching.
pnpm hardhat lz:deploy --networks ethereum-testnet,hyperevm-testnet --tags WXRP --ci
# Wire OFT contracts.
pnpm hardhat lz:oapp:wire --oapp-config layerzero.testnet.config.ts
# Transfer ownership.
pnpm hardhat lz:ownable:transfer-ownership --oapp-config layerzero.testnet.config.ts
# Transfer proxy admin owner.
pnpm hardhat transfer-proxy-admin --network ethereum-testnet
pnpm hardhat transfer-proxy-admin --network hyperevm-testnet
# Transfer ERC20 default admin role.
pnpm hardhat transfer-erc20-admin --network ethereum-testnet
pnpm hardhat transfer-erc20-admin --network hyperevm-testnet# Compile contracts.
pnpm hardhat compile
# Send 0.01 USDC to deployer address on HyperCore through `app.hyperliquid.xyz`.
# It'll activate the account.
# Ensure the account is activated.
pnpm exec oft-hyperliquid-evm is-account-activated -u $(cast wallet addr $PRIVATE_KEY) -n mainnet
# Deploy OFT contracts. Prompts will appear to confirm HyperEVM block size switching.
pnpm hardhat lz:deploy --networks ethereum,hyperevm,optimism --tags WXRP --ci
# Wire OFT contracts.
pnpm hardhat lz:oapp:wire --oapp-config layerzero.mainnet.config.ts
# Transfer ownership.
pnpm hardhat lz:ownable:transfer-ownership --oapp-config layerzero.mainnet.config.ts
# Transfer proxy admin owner.
pnpm hardhat transfer-proxy-admin --network ethereum
pnpm hardhat transfer-proxy-admin --network hyperevm
pnpm hardhat transfer-proxy-admin --network optimism
# Transfer ERC20 default admin role.
pnpm hardhat transfer-erc20-admin --network ethereum
pnpm hardhat transfer-erc20-admin --network hyperevm
pnpm hardhat transfer-erc20-admin --network optimism- HyperEVM testnet has historically experienced frequent and aperiodic shutdowns and inconsistent behaviours. Beware that testing transactions and deployments may be affected by it.
cast rpc anvil_autoImpersonateAccount true -r http://localhost:8545
cast rpc anvil_setBalance 0xfA633B67b1d9371eBa32cf3476F275D75C75ce77 0x56BC75E2D63100000 -r http://localhost:8545
cast rpc anvil_autoImpersonateAccount true -r http://localhost:8546
cast rpc anvil_setBalance 0xfA633B67b1d9371eBa32cf3476F275D75C75ce77 0x56BC75E2D63100000 -r http://localhost:8546# Set peer.
cast send --from 0xfA633B67b1d9371eBa32cf3476F275D75C75ce77 0x01CacCa455d04F0D52231589F0deb543de9213E3 0x3400288b000000000000000000000000000000000000000000000000000000000000759f00000000000000000000000001cacca455d04f0d52231589f0deb543de9213e3
# Set send lib config.
cast send --from 0xfA633B67b1d9371eBa32cf3476F275D75C75ce77 0x1a44076050125825900e736c501f859c50fE728c 0x6dbd9f9000000000000000000000000001cacca455d04f0d52231589f0deb543de9213e3000000000000000000000000bb2ea70c9e858123480642cf96acbcce1372dce1000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000759f0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000f00000000000000000000000000000000000000000000000000000000000000ff0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000006559ee34d85a88317bf0bfe307444116c631b67000000000000000000000000373a6e5c0c4e89e24819f00aa37ea370917aaff400000000000000000000000058249a2ec05c1978bf21df1f5ec1847e42455cf4000000000000000000000000a4fe5a5b9a846458a70cd0748228aed3bf65c2cd
# Set receive lib config.
cast send --from 0xfA633B67b1d9371eBa32cf3476F275D75C75ce77 0x1a44076050125825900e736c501f859c50fE728c 0x6dbd9f9000000000000000000000000001cacca455d04f0d52231589f0deb543de9213e3000000000000000000000000c02ab410f0734efa3f14628780e6e695156024c2000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000759f0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000ff0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000006559ee34d85a88317bf0bfe307444116c631b67000000000000000000000000373a6e5c0c4e89e24819f00aa37ea370917aaff400000000000000000000000058249a2ec05c1978bf21df1f5ec1847e42455cf4000000000000000000000000a4fe5a5b9a846458a70cd0748228aed3bf65c2cd
# Set enforced options.
cast send --from 0xfA633B67b1d9371eBa32cf3476F275D75C75ce77 0x01CacCa455d04F0D52231589F0deb543de9213E3 0xb98bd07000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000759f000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000016000301001101000000000000000000000000000186a000000000000000000000000000000000000000000000000000000000000000000000000000000000759f000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000016000301001101000000000000000000000000000186a000000000000000000000# Set peer.
cast send --from 0xfA633B67b1d9371eBa32cf3476F275D75C75ce77 0x01CacCa455d04F0D52231589F0deb543de9213E3 0x3400288b000000000000000000000000000000000000000000000000000000000000759f00000000000000000000000001cacca455d04f0d52231589f0deb543de9213e3
# Set send lib config.
cast send --from 0xfA633B67b1d9371eBa32cf3476F275D75C75ce77 0x3A73033C0b1407574C76BdBAc67f126f6b4a9AA9 0x6dbd9f9000000000000000000000000001cacca455d04f0d52231589f0deb543de9213e3000000000000000000000000fd76d9cb0bac839725ab79127e7411fe71b1e3ca000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000759f0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000ff0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000032ffd21260172518a8844fec76a88c8f239c384b00000000000000000000000083342ec538df0460e730a8f543fe63063e2d44c40000000000000000000000009e451905f65ef78d62b93dac3513486da8429d0a000000000000000000000000c7423626016bc40375458bc0277f28681ec91c8e
# Set receive lib config.
cast send --from 0xfA633B67b1d9371eBa32cf3476F275D75C75ce77 0x3A73033C0b1407574C76BdBAc67f126f6b4a9AA9 0x6dbd9f9000000000000000000000000001cacca455d04f0d52231589f0deb543de9213e30000000000000000000000007cacbe439ead55fa1c22790330b12835c6884a91000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000759f0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000ff0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000032ffd21260172518a8844fec76a88c8f239c384b00000000000000000000000083342ec538df0460e730a8f543fe63063e2d44c40000000000000000000000009e451905f65ef78d62b93dac3513486da8429d0a000000000000000000000000c7423626016bc40375458bc0277f28681ec91c8e
# Set enforced options.
cast send --from 0xfA633B67b1d9371eBa32cf3476F275D75C75ce77 0x01CacCa455d04F0D52231589F0deb543de9213E3 0xb98bd07000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000759f000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000016000301001101000000000000000000000000000186a000000000000000000000000000000000000000000000000000000000000000000000000000000000759f000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000016000301001101000000000000000000000000000186a000000000000000000000