ETH Price: $3,393.75 (+6.33%)
Gas: 24 Gwei

Contract

0x769a9041f96e29408ebB6Fd4Ce999AF852Dbf9aE
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

Please try again later

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block From To
184724142023-10-31 20:12:59257 days ago1698783179  Contract Creation0 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BridgeReth

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 1000000 runs

Other Settings:
shanghai EvmVersion
File 1 of 5 : BridgeReth.sol
// https://docs.rocketpool.net/developers/usage/contracts/contracts.html#implementation
// https://github.com/rocket-pool/rocketpool/blob/master/contracts/contract/token/RocketTokenRETH.sol

// SPDX-License-Identifier: GPL-3.0-only
pragma solidity 0.8.21;

import {IRocketStorage} from "interfaces/IRocketStorage.sol";
import {IRocketTokenRETH} from "interfaces/IRocketTokenRETH.sol";
import {IRocketDepositPool} from "interfaces/IRocketDepositPool.sol";
import {IBridge} from "contracts/interfaces/IBridge.sol";

// import {console} from "contracts/libraries/console.sol";

contract BridgeReth is IBridge {
    bytes32 private immutable RETH_TYPEHASH;
    bytes32 private immutable ROCKET_DEPOSIT_POOL_TYPEHASH;
    IRocketStorage private immutable rocketStorage;
    address private immutable diamond;

    constructor(IRocketStorage rocketStorageAddress, address diamondAddr) {
        rocketStorage = IRocketStorage(rocketStorageAddress);
        diamond = diamondAddr;
        // @dev (gas) use immutable instead of constant
        // See https://github.com/ethereum/solidity/issues/9232#issuecomment-646131646
        RETH_TYPEHASH = keccak256(abi.encodePacked("contract.address", "rocketTokenRETH"));
        ROCKET_DEPOSIT_POOL_TYPEHASH =
            keccak256(abi.encodePacked("contract.address", "rocketDepositPool"));
    }

    modifier onlyDiamond() {
        if (msg.sender != diamond) {
            revert NotDiamond();
        }
        _;
    }

    receive() external payable {}

    function _getRethContract() private view returns (IRocketTokenRETH) {
        return IRocketTokenRETH(rocketStorage.getAddress(RETH_TYPEHASH));
    }

    //@dev does not need read only re-entrancy
    function getBaseCollateral() external view returns (address) {
        return rocketStorage.getAddress(RETH_TYPEHASH);
    }

    //@dev does not need read only re-entrancy
    function getDethValue() external view returns (uint256) {
        IRocketTokenRETH rocketETHToken = _getRethContract();
        return rocketETHToken.getEthValue(rocketETHToken.balanceOf(address(this)));
    }

    // @dev ERC20 success https://ethereum.stackexchange.com/questions/148216/when-would-an-erc20-return-false
    // Bring rETH to system and credit dETH to user
    function deposit(address from, uint256 amount)
        external
        onlyDiamond
        returns (uint256)
    {
        IRocketTokenRETH rocketETHToken = _getRethContract();
        // Transfer rETH to this bridge contract
        // @dev RETH uses OZ ERC-20, don't need to check success bool
        rocketETHToken.transferFrom(from, address(this), amount);
        // Calculate rETH equivalent value in ETH
        return rocketETHToken.getEthValue(amount);
    }

    // Deposit ETH and mint rETH (to system) and credit dETH to user
    function depositEth() external payable onlyDiamond returns (uint256) {
        IRocketDepositPool rocketDepositPool =
            IRocketDepositPool(rocketStorage.getAddress(ROCKET_DEPOSIT_POOL_TYPEHASH));
        IRocketTokenRETH rocketETHToken = _getRethContract();

        uint256 originalBalance = rocketETHToken.balanceOf(address(this));
        rocketDepositPool.deposit{value: msg.value}();
        uint256 netBalance = rocketETHToken.balanceOf(address(this)) - originalBalance;
        if (netBalance == 0) revert NetBalanceZero();

        return rocketETHToken.getEthValue(netBalance);
    }

    // Exchange system rETH to fulfill dETH obligation to user
    function withdraw(address to, uint256 amount)
        external
        onlyDiamond
        returns (uint256)
    {
        IRocketTokenRETH rocketETHToken = _getRethContract();
        // Calculate dETH equivalent value in rETH
        uint256 rethValue = rocketETHToken.getRethValue(amount);
        // Transfer rETH from this bridge contract
        // @dev RETH uses OZ ERC-20, don't need to check success bool
        rocketETHToken.transfer(to, rethValue);
        return rethValue;
    }

    function unstake(address to, uint256 amount) external onlyDiamond {
        IRocketTokenRETH rocketETHToken = _getRethContract();
        uint256 rethValue = rocketETHToken.getRethValue(amount);
        uint256 originalBalance = address(this).balance;
        rocketETHToken.burn(rethValue);
        uint256 netBalance = address(this).balance - originalBalance;
        if (netBalance == 0) revert NetBalanceZero();
        (bool sent,) = to.call{value: netBalance}("");
        assert(sent);
    }
}

File 2 of 5 : IRocketStorage.sol
// SPDX-License-Identifier: GPL-3.0-only
pragma solidity 0.8.21;



interface IRocketStorage {

  // functions from contracts/mocks/RocketStorage.sol
  function getAddress(bytes32 _key) external view returns (address r);
  function setReth(address addr) external;
  function setDeposit(address addr) external;
}

File 3 of 5 : IRocketTokenRETH.sol
// SPDX-License-Identifier: GPL-3.0-only
pragma solidity 0.8.21;



interface IRocketTokenRETH {

  // functions from node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol
  function name() external view returns (string memory);
  function symbol() external view returns (string memory);
  function decimals() external view returns (uint8);
  function totalSupply() external view returns (uint256);
  function balanceOf(address account) external view returns (uint256);
  function transfer(address to, uint256 amount) external returns (bool);
  function allowance(address owner, address spender) external view returns (uint256);
  function approve(address spender, uint256 amount) external returns (bool);
  function transferFrom(address from, address to, uint256 amount) external returns (bool);
  function increaseAllowance(address spender, uint256 addedValue) external returns (bool);
  function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool);

  // functions from contracts/mocks/RocketTokenRETH.sol
  function deposit() external payable;
  function submitBalances(uint256 _ethSupply, uint256 _rethSupply) external;
  function getExchangeRate() external view returns (uint256);
  function burn(uint256 _rethAmount) external;
  function getEthValue(uint256 _rethAmount) external view returns (uint256);
  function getRethValue(uint256 _ethAmount) external view returns (uint256);
}

File 4 of 5 : IRocketDepositPool.sol
// SPDX-License-Identifier: GPL-3.0-only
pragma solidity 0.8.21;



interface IRocketDepositPool {

  // functions from contracts/mocks/RocketDepositPool.sol
  function deposit() external payable;
}

File 5 of 5 : IBridge.sol
// SPDX-License-Identifier: GPL-3.0-only
pragma solidity 0.8.21;

interface IBridge {
    error NotDiamond();
    error NetBalanceZero();

    function getBaseCollateral() external view returns (address);
    function getDethValue() external view returns (uint256);
    function deposit(address, uint256) external returns (uint256);
    function depositEth() external payable returns (uint256);
    function withdraw(address, uint256) external returns (uint256);
    function unstake(address, uint256) external;
}

Settings
{
  "remappings": [
    "forge-std/=lib/forge-std/src/",
    "ds-test/=lib/forge-std/lib/ds-test/src/",
    "interfaces/=interfaces/",
    "contracts/=contracts/",
    "test/=test/",
    "test-gas/=test-gas/",
    "deploy/=deploy/",
    "@openzeppelin/=node_modules/@openzeppelin/",
    "@chainlink/=node_modules/@chainlink/",
    "@eth-optimism/=node_modules/@eth-optimism/",
    "@prb/=node_modules/@prb/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 1000000
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs",
    "appendCBOR": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "shanghai",
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"contract IRocketStorage","name":"rocketStorageAddress","type":"address"},{"internalType":"address","name":"diamondAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"NetBalanceZero","type":"error"},{"inputs":[],"name":"NotDiamond","type":"error"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"depositEth","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getBaseCollateral","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDethValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

610100604052348015610010575f80fd5b50604051610f25380380610f2583398101604081905261002f91610104565b6001600160a01b0382811660c052811660e0526040516f636f6e74726163742e6164647265737360801b60208201526e0e4dec6d6cae8a8ded6cadca48aa89608b1b6030820152603f0160408051808303601f190181529082905280516020918201206080526f636f6e74726163742e6164647265737360801b90820152701c9bd8dad95d11195c1bdcda5d141bdbdb607a1b603082015260410160408051601f19818403018152919052805160209091012060a0525061013c9050565b6001600160a01b0381168114610101575f80fd5b50565b5f8060408385031215610115575f80fd5b8251610120816100ed565b6020840151909250610131816100ed565b809150509250929050565b60805160a05160c05160e051610d9a61018b5f395f8181610255015281816105f90152818161087c0152610ac401525f81816102fc01526107e101525f6102d401525f6107b90152610d9a5ff3fe608060405260043610610066575f3560e01c806370b729441161004157806370b72944146100bf578063c2a672e0146100f8578063f3fef3a314610119575f80fd5b80631e70f19514610071578063439370b11461009857806347e7ef24146100a0575f80fd5b3661006d57005b5f80fd5b34801561007c575f80fd5b50610085610138565b6040519081526020015b60405180910390f35b61008561023c565b3480156100ab575f80fd5b506100856100ba366004610c7d565b6105e0565b3480156100ca575f80fd5b506100d3610791565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161008f565b348015610103575f80fd5b50610117610112366004610c7d565b610864565b005b348015610124575f80fd5b50610085610133366004610c7d565b610aab565b5f80610142610791565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290915073ffffffffffffffffffffffffffffffffffffffff821690638b32fa239082906370a0823190602401602060405180830381865afa1580156101b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d99190610ca7565b6040518263ffffffff1660e01b81526004016101f791815260200190565b602060405180830381865afa158015610212573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102369190610ca7565b91505090565b5f3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146102ac576040517fd04b63aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f21f8a7210000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000060048201525f907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906321f8a72190602401602060405180830381865afa158015610356573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061037a9190610cbe565b90505f610385610791565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529091505f9073ffffffffffffffffffffffffffffffffffffffff8316906370a0823190602401602060405180830381865afa1580156103f2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104169190610ca7565b90508273ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b15801561045e575f80fd5b505af1158015610470573d5f803e3d5ffd5b50506040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f935084925073ffffffffffffffffffffffffffffffffffffffff861691506370a0823190602401602060405180830381865afa1580156104e1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105059190610ca7565b61050f9190610ce0565b9050805f0361054a576040517f9d5710a400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f8b32fa230000000000000000000000000000000000000000000000000000000081526004810182905273ffffffffffffffffffffffffffffffffffffffff841690638b32fa2390602401602060405180830381865afa1580156105b3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105d79190610ca7565b94505050505090565b5f3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610650576040517fd04b63aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610659610791565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015230602483015260448201869052919250908216906323b872dd906064016020604051808303815f875af11580156106d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106f99190610d18565b506040517f8b32fa230000000000000000000000000000000000000000000000000000000081526004810184905273ffffffffffffffffffffffffffffffffffffffff821690638b32fa2390602401602060405180830381865afa158015610763573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107879190610ca7565b9150505b92915050565b6040517f21f8a7210000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000060048201525f907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906321f8a72190602401602060405180830381865afa15801561083b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061085f9190610cbe565b905090565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146108d3576040517fd04b63aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6108dc610791565b6040517f4346f03e000000000000000000000000000000000000000000000000000000008152600481018490529091505f9073ffffffffffffffffffffffffffffffffffffffff831690634346f03e90602401602060405180830381865afa15801561094a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061096e9190610ca7565b6040517f42966c6800000000000000000000000000000000000000000000000000000000815260048101829052909150479073ffffffffffffffffffffffffffffffffffffffff8416906342966c68906024015f604051808303815f87803b1580156109d8575f80fd5b505af11580156109ea573d5f803e3d5ffd5b505050505f81476109fb9190610ce0565b9050805f03610a36576040517f9d5710a400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8673ffffffffffffffffffffffffffffffffffffffff16826040515f6040518083038185875af1925050503d805f8114610a8c576040519150601f19603f3d011682016040523d82523d5f602084013e610a91565b606091505b5050905080610aa257610aa2610d37565b50505050505050565b5f3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610b1b576040517fd04b63aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610b24610791565b6040517f4346f03e000000000000000000000000000000000000000000000000000000008152600481018590529091505f9073ffffffffffffffffffffffffffffffffffffffff831690634346f03e90602401602060405180830381865afa158015610b92573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bb69190610ca7565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8781166004830152602482018390529192509083169063a9059cbb906044016020604051808303815f875af1158015610c2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c509190610d18565b50949350505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610c7a575f80fd5b50565b5f8060408385031215610c8e575f80fd5b8235610c9981610c59565b946020939093013593505050565b5f60208284031215610cb7575f80fd5b5051919050565b5f60208284031215610cce575f80fd5b8151610cd981610c59565b9392505050565b8181038181111561078b577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f60208284031215610d28575f80fd5b81518015158114610cd9575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffdfea2646970667358221220a0e7447d5e23875dafdd5f7673a3d7c3afe48a7eaaac54d57ee0bad851e17e0664736f6c634300081500330000000000000000000000001d8f8f00cfa6758d7be78336684788fb0ee0fa46000000000000000000000000d177000be70ea4efc23987acd1a79eaba8b758f1

Deployed Bytecode

0x608060405260043610610066575f3560e01c806370b729441161004157806370b72944146100bf578063c2a672e0146100f8578063f3fef3a314610119575f80fd5b80631e70f19514610071578063439370b11461009857806347e7ef24146100a0575f80fd5b3661006d57005b5f80fd5b34801561007c575f80fd5b50610085610138565b6040519081526020015b60405180910390f35b61008561023c565b3480156100ab575f80fd5b506100856100ba366004610c7d565b6105e0565b3480156100ca575f80fd5b506100d3610791565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161008f565b348015610103575f80fd5b50610117610112366004610c7d565b610864565b005b348015610124575f80fd5b50610085610133366004610c7d565b610aab565b5f80610142610791565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290915073ffffffffffffffffffffffffffffffffffffffff821690638b32fa239082906370a0823190602401602060405180830381865afa1580156101b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d99190610ca7565b6040518263ffffffff1660e01b81526004016101f791815260200190565b602060405180830381865afa158015610212573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102369190610ca7565b91505090565b5f3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000d177000be70ea4efc23987acd1a79eaba8b758f116146102ac576040517fd04b63aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f21f8a7210000000000000000000000000000000000000000000000000000000081527f65dd923ddfc8d8ae6088f80077201d2403cbd565f0ba25e09841e2799ec90bb260048201525f907f0000000000000000000000001d8f8f00cfa6758d7be78336684788fb0ee0fa4673ffffffffffffffffffffffffffffffffffffffff16906321f8a72190602401602060405180830381865afa158015610356573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061037a9190610cbe565b90505f610385610791565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529091505f9073ffffffffffffffffffffffffffffffffffffffff8316906370a0823190602401602060405180830381865afa1580156103f2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104169190610ca7565b90508273ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b15801561045e575f80fd5b505af1158015610470573d5f803e3d5ffd5b50506040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f935084925073ffffffffffffffffffffffffffffffffffffffff861691506370a0823190602401602060405180830381865afa1580156104e1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105059190610ca7565b61050f9190610ce0565b9050805f0361054a576040517f9d5710a400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f8b32fa230000000000000000000000000000000000000000000000000000000081526004810182905273ffffffffffffffffffffffffffffffffffffffff841690638b32fa2390602401602060405180830381865afa1580156105b3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105d79190610ca7565b94505050505090565b5f3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000d177000be70ea4efc23987acd1a79eaba8b758f11614610650576040517fd04b63aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610659610791565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015230602483015260448201869052919250908216906323b872dd906064016020604051808303815f875af11580156106d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106f99190610d18565b506040517f8b32fa230000000000000000000000000000000000000000000000000000000081526004810184905273ffffffffffffffffffffffffffffffffffffffff821690638b32fa2390602401602060405180830381865afa158015610763573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107879190610ca7565b9150505b92915050565b6040517f21f8a7210000000000000000000000000000000000000000000000000000000081527fe3744443225bff7cc22028be036b80de58057d65a3fdca0a3df329f525e31ccc60048201525f907f0000000000000000000000001d8f8f00cfa6758d7be78336684788fb0ee0fa4673ffffffffffffffffffffffffffffffffffffffff16906321f8a72190602401602060405180830381865afa15801561083b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061085f9190610cbe565b905090565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000d177000be70ea4efc23987acd1a79eaba8b758f116146108d3576040517fd04b63aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6108dc610791565b6040517f4346f03e000000000000000000000000000000000000000000000000000000008152600481018490529091505f9073ffffffffffffffffffffffffffffffffffffffff831690634346f03e90602401602060405180830381865afa15801561094a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061096e9190610ca7565b6040517f42966c6800000000000000000000000000000000000000000000000000000000815260048101829052909150479073ffffffffffffffffffffffffffffffffffffffff8416906342966c68906024015f604051808303815f87803b1580156109d8575f80fd5b505af11580156109ea573d5f803e3d5ffd5b505050505f81476109fb9190610ce0565b9050805f03610a36576040517f9d5710a400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8673ffffffffffffffffffffffffffffffffffffffff16826040515f6040518083038185875af1925050503d805f8114610a8c576040519150601f19603f3d011682016040523d82523d5f602084013e610a91565b606091505b5050905080610aa257610aa2610d37565b50505050505050565b5f3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000d177000be70ea4efc23987acd1a79eaba8b758f11614610b1b576040517fd04b63aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610b24610791565b6040517f4346f03e000000000000000000000000000000000000000000000000000000008152600481018590529091505f9073ffffffffffffffffffffffffffffffffffffffff831690634346f03e90602401602060405180830381865afa158015610b92573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bb69190610ca7565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8781166004830152602482018390529192509083169063a9059cbb906044016020604051808303815f875af1158015610c2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c509190610d18565b50949350505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610c7a575f80fd5b50565b5f8060408385031215610c8e575f80fd5b8235610c9981610c59565b946020939093013593505050565b5f60208284031215610cb7575f80fd5b5051919050565b5f60208284031215610cce575f80fd5b8151610cd981610c59565b9392505050565b8181038181111561078b577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f60208284031215610d28575f80fd5b81518015158114610cd9575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffdfea2646970667358221220a0e7447d5e23875dafdd5f7673a3d7c3afe48a7eaaac54d57ee0bad851e17e0664736f6c63430008150033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000001d8f8f00cfa6758d7be78336684788fb0ee0fa46000000000000000000000000d177000be70ea4efc23987acd1a79eaba8b758f1

-----Decoded View---------------
Arg [0] : rocketStorageAddress (address): 0x1d8f8f00cfa6758d7bE78336684788Fb0ee0Fa46
Arg [1] : diamondAddr (address): 0xd177000Be70Ea4EfC23987aCD1a79EaBa8b758f1

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000001d8f8f00cfa6758d7be78336684788fb0ee0fa46
Arg [1] : 000000000000000000000000d177000be70ea4efc23987acd1a79eaba8b758f1


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.