3.9 KiB
Status Network
Devnet
📬 Devnet Deployed Contracts
These are the official contract deployments on the Holesky for L1 and Status Devnet for L2.
| Chain | Contract | Address |
|---|---|---|
| Hoodi | Yield Manager | 0xF62923E542BdEA2DeC8Da020480197A54c4CE53A |
| Hoodi | L1ETHBridge (Proxy) | 0x0958faaa350be3d11c9f9a2ba366af3dab16c792 |
| Hoodi | L1ETHBridge (Implementation) | 0x968b487d38d93fd5a36aed69da52febcc043c3e7 |
| Status Devnet | L2ETHBridge (Proxy) | 0x99751AD60328ABf73e8c938c0B7A9F9FD370f453 |
| Status Devnet | L2ETHBridge (Implementation) | 0xCaF71dEe9d59d0095eC37c1FFa7E4b8fD3114Bc2 |
The devnet test deployer is 0xD631542acd56eeBe466F16CBfEb937637b8b43c1.
YieldManager
Deploy a Dummy YieldManager contract on the Status Devnet.
export ETH_FROM=0xD631542acd56eeBe466F16CBfEb937637b8b43c1
forge script \
script/yield/bridge/l1/DeployDummyYieldManager.s.sol \
--rpc-url https://rpc.hoodi.ethpandaops.io \
--private-key $STATUS_DEVNET_DEPLOYER_KEY \
--broadcast
Verify the contract on Etherscan:
forge verify-contract --chain hoodi CONTRACT_ADDRESS ETHYieldManagerMock
L1ETHBridge
Update the deployment config (script/yield/bridge/l1/DeploymentConfig.s.sol) to include the address of the YieldManager contract deployed above.
The deployment config requires the address of the L2ETHBridge contract, which is the bridge on the L2 chain (Status Devnet).
If it's the first deployment, you won't have the L2ETHBridge deployed yet, so you need to set a temporary one like 0x1
in the config script that must different from the zero address otherwise the deployment will fail.
export ETH_FROM=0xD631542acd56eeBe466F16CBfEb937637b8b43c1
forge script \
script/yield/bridge/l1/DeployL1ETHBridge.s.sol \
--rpc-url https://rpc.hoodi.ethpandaops.io \
--private-key $STATUS_DEVNET_DEPLOYER_KEY \
--broadcast
Verify the implementation contract on Blockscout:
forge verify-contract --chain hoodi CONTRACT_ADDRESS L1ETHBridge
L2ETHBridge
Update the deployment config (script/yield/bridge/l2/DeploymentConfig.s.sol) to include the address of the L1ETHBridge contract deployed above.
export ETH_FROM=0xD631542acd56eeBe466F16CBfEb937637b8b43c1
forge script \
script/yield/bridge/l2/DeployL2ETHBridge.s.sol \
--rpc-url https://sunti-rpc.eu-north-2.gateway.fm/ \
--private-key $STATUS_DEVNET_DEPLOYER_KEY \
--broadcast
Verify the implementation contract on Blockscout:
forge verify-contract \
--verifier blockscout \
--compilation-profile london \
--verifier-url https://sunti-blockscout.eu-north-2.gateway.fm/api \
--chain 1706707152 \
IMPLEMENTATION_ADDRESS \
L2ETHBridge
Verify the proxy contract in case it hasn't been verified yet automatically by Blockscout:
forge verify-contract \
--verifier blockscout \
--compilation-profile london \
--verifier-url https://sunti-blockscout.eu-north-2.gateway.fm/api \
--chain 1706707152 \
PROXY_ADDRESS \
node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol:ERC1967Proxy
Remember to set the L2ETHBridge address in the L1ETHBridge contract calling the setRemoteSender function.