ETH Price: $3,480.10 (+4.02%)

Contract

0x2fA79891b53e809f75D33b7F294d76C19542f3eF
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
0x60a06040153640362022-08-18 8:52:36832 days ago1660812756IN
 Create: RollupHandler
0 ETH0.0074801410.39203172

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
RollupHandler

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 5 : RollupHandler.sol
// SPDX-License-Identifier: LGPL-3.0-only
pragma solidity ^0.8.0;

import "./HandlerHelpers.sol";
import "../interfaces/IDepositExecute.sol";
import "../utils/rollup/RollupTypes.sol";

contract RollupHandler is IDepositExecute, HandlerHelpers {
    constructor(address bridgeAddress) HandlerHelpers(bridgeAddress) {}

    mapping(uint72 => Metadata) public rollupMetadata;

    // slither-disable-next-line locked-ether
    function deposit(
        bytes32,
        address,
        bytes calldata
    ) external payable override onlyBridge returns (bytes memory) {
        revert("not supported");
    }

    struct Metadata {
        uint8 domainID;
        bytes32 resourceID;
        uint64 nonce;
        bytes32 stateChangeHash;
        bytes32 rootHash;
        uint64 totalBatches;
        // bytes state; unused
    }

    /// @notice Proposal execution should be initiated when a proposal is finalized in the Bridge contract.
    ///
    /// @notice Requirements:
    /// - It must be called by only bridge.
    /// - {resourceID} must exist.
    /// - {contractAddress} must be allowed.
    /// - {resourceID} must be equal to the resource ID from metadata
    /// - Sender resource ID must exist.
    /// - Sender contract address must be allowed.
    ///
    /// @param data Consists of {resourceID}, {lenMetaData}, and {metaData}.
    ///
    /// @notice Data passed into the function should be constructed as follows:
    /// len(data)                              uint256     bytes  0  - 32
    /// data                                   bytes       bytes  32 - END
    ///
    /// @notice If {_contractAddressToExecuteFunctionSignature}[{contractAddress}] is set,
    /// {metaData} is expected to consist of needed function arguments.
    function executeProposal(bytes32 resourceID, bytes calldata data)
        external
        override
        onlyBridge
    {
        address contractAddress = _resourceIDToTokenContractAddress[resourceID];
        require(contractAddress != address(0), "invalid resource ID");
        require(
            _contractWhitelist[contractAddress],
            "not an allowed contract address"
        );

        Metadata memory md = abi.decode(data, (Metadata));
        require(md.resourceID == resourceID, "different resource IDs");

        uint72 nonceAndID = (uint72(md.nonce) << 8) | uint72(md.domainID);
        rollupMetadata[nonceAndID] = md;
    }

    /// @notice Returns rollup info by original domain ID, resource ID and nonce.
    ///
    /// @notice Requirements:
    /// - {resourceID} must exist.
    /// - {resourceID} must be equal to the resource ID from metadata
    function getRollupInfo(
        uint8 originDomainID,
        bytes32 resourceID,
        uint64 nonce
    )
        external
        view
        returns (
            address,
            bytes32,
            uint64
        )
    {
        address settleableAddress = _resourceIDToTokenContractAddress[
            resourceID
        ];
        require(settleableAddress != address(0), "invalid resource ID");

        uint72 nonceAndID = (uint72(nonce) << 8) | uint72(originDomainID);
        Metadata memory md = rollupMetadata[nonceAndID];
        require(md.resourceID == resourceID, "different resource IDs");

        return (settleableAddress, md.rootHash, md.totalBatches);
    }
}

File 2 of 5 : HandlerHelpers.sol
// SPDX-License-Identifier: LGPL-3.0-only
pragma solidity ^0.8.0;

import "../interfaces/IERCHandler.sol";

/// @notice This contract is intended to be used with the Bridge contract.

contract HandlerHelpers is IERCHandler {
    address public immutable _bridgeAddress;

    // resourceID => token contract address
    mapping(bytes32 => address) public _resourceIDToTokenContractAddress;

    // token contract address => resourceID
    mapping(address => bytes32) public _tokenContractAddressToResourceID;

    // token contract address => is whitelisted
    mapping(address => bool) public _contractWhitelist;

    // token contract address => is burnable
    mapping(address => bool) public _burnList;

    modifier onlyBridge() {
        _onlyBridge();
        _;
    }

    /// @param bridgeAddress Contract address of previously deployed Bridge.
    constructor(address bridgeAddress) {
        _bridgeAddress = bridgeAddress;
    }

    function _onlyBridge() private view {
        require(msg.sender == _bridgeAddress, "sender must be bridge contract");
    }

    /// @notice First verifies {_resourceIDToContractAddress}[{resourceID}] and
    /// {_contractAddressToResourceID}[{contractAddress}] are not already set,
    /// then sets {_resourceIDToContractAddress} with {contractAddress},
    /// {_contractAddressToResourceID} with {resourceID},
    /// and {_contractWhitelist} to true for {contractAddress}.
    ///
    /// @param resourceID ResourceID to be used when making deposits.
    /// @param contractAddress Address of contract to be called when a deposit is made and a deposited is executed.
    function setResource(bytes32 resourceID, address contractAddress)
        external
        override
        onlyBridge
    {
        _setResource(resourceID, contractAddress);
    }

    /// @notice First verifies {contractAddress} is whitelisted, then sets {_burnList}[{contractAddress}]
    /// to true.
    ///
    /// @param contractAddress Address of contract to be used when making or executing deposits.
    function setBurnable(address contractAddress) external override onlyBridge {
        _setBurnable(contractAddress);
    }

    function withdraw(bytes memory data) external virtual override {}

    function _setResource(bytes32 resourceID, address contractAddress)
        internal
    {
        _resourceIDToTokenContractAddress[resourceID] = contractAddress;
        _tokenContractAddressToResourceID[contractAddress] = resourceID;

        _contractWhitelist[contractAddress] = true;
    }

    function _setBurnable(address contractAddress) internal {
        require(
            _contractWhitelist[contractAddress],
            "not an allowed token address"
        );
        _burnList[contractAddress] = true;
    }
}

File 3 of 5 : IDepositExecute.sol
// SPDX-License-Identifier: LGPL-3.0-only
pragma solidity ^0.8.0;

interface IDepositExecute {
    /// @notice It is intended that deposit are made using the Bridge contract.
    /// @param resourceID ResourceID to be used.
    /// @param depositer Address of account making the deposit in the Bridge contract.
    /// @param data Consists of additional data needed for a specific deposit.
    function deposit(
        bytes32 resourceID,
        address depositer,
        bytes calldata data
    ) external payable returns (bytes memory);

    /// @notice It is intended that proposals are executed by the Bridge contract.
    /// @param resourceID ResourceID to be used.
    /// @param data Consists of additional data needed for a specific deposit execution.
    function executeProposal(bytes32 resourceID, bytes calldata data) external;
}

File 4 of 5 : RollupTypes.sol
// SPDX-License-Identifier: LGPL-3.0-only
pragma solidity ^0.8.0;

struct StateContext {
    bool _writable;
    bytes32 _hash; // writable
    uint256 _startBlock; // writable
    // readable
    uint8 _epoch;
}

struct KeyValuePair {
    bytes key;
    bytes value;
}

File 5 of 5 : IERCHandler.sol
// SPDX-License-Identifier: LGPL-3.0-only
pragma solidity ^0.8.0;

interface IERCHandler {
    /// @notice Correlates {resourceID} with {contractAddress}.
    /// @param resourceID ResourceID to be used when making deposits.
    /// @param contractAddress Address of contract to be called when a deposit is made and a deposited is executed.
    function setResource(bytes32 resourceID, address contractAddress) external;

    /// @notice Marks {contractAddress} as mintable/burnable.
    /// @param contractAddress Address of contract to be used when making or executing deposits.
    function setBurnable(address contractAddress) external;

    /// @notice Withdraw funds from ERC safes.
    /// @param data ABI-encoded withdrawal params relevant to the handler.
    function withdraw(bytes memory data) external;
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"bridgeAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"_bridgeAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_burnList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_contractWhitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"_resourceIDToTokenContractAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_tokenContractAddressToResourceID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"","type":"address"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"deposit","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"resourceID","type":"bytes32"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"executeProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"originDomainID","type":"uint8"},{"internalType":"bytes32","name":"resourceID","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"name":"getRollupInfo","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint72","name":"","type":"uint72"}],"name":"rollupMetadata","outputs":[{"internalType":"uint8","name":"domainID","type":"uint8"},{"internalType":"bytes32","name":"resourceID","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes32","name":"stateChangeHash","type":"bytes32"},{"internalType":"bytes32","name":"rootHash","type":"bytes32"},{"internalType":"uint64","name":"totalBatches","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"}],"name":"setBurnable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"resourceID","type":"bytes32"},{"internalType":"address","name":"contractAddress","type":"address"}],"name":"setResource","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60a060405234801561001057600080fd5b50604051610c9a380380610c9a83398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b608051610c0861009260003960008181610151015261072f0152610c086000f3fe6080604052600436106100a75760003560e01c80637f79bea8116100645780637f79bea814610256578063b07e54bb14610286578063b8fa3736146102a6578063c261694c146102c6578063c8ba6c8714610315578063e248cff21461035057600080fd5b806307b7ed99146100ac5780630968f264146100ce5780630a6d55d8146100ec578063318c136e1461013f57806340fbb12e146101735780636a70d08114610216575b600080fd5b3480156100b857600080fd5b506100cc6100c7366004610846565b610370565b005b3480156100da57600080fd5b506100cc6100e936600461087e565b50565b3480156100f857600080fd5b5061012261010736600461092f565b6000602081905290815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014b57600080fd5b506101227f000000000000000000000000000000000000000000000000000000000000000081565b34801561017f57600080fd5b506101d561018e366004610948565b600460208190526000918252604090912080546001820154600283015460038401549484015460059094015460ff90931694919367ffffffffffffffff9182169390911686565b6040805160ff9097168752602087019590955267ffffffffffffffff93841694860194909452606085019190915260808401521660a082015260c001610136565b34801561022257600080fd5b50610246610231366004610846565b60036020526000908152604090205460ff1681565b6040519015158152602001610136565b34801561026257600080fd5b50610246610271366004610846565b60026020526000908152604090205460ff1681565b6102996102943660046109bc565b610381565b6040516101369190610a16565b3480156102b257600080fd5b506100cc6102c1366004610a6b565b6103c8565b3480156102d257600080fd5b506102e66102e1366004610ac0565b61041d565b604080516001600160a01b039094168452602084019290925267ffffffffffffffff1690820152606001610136565b34801561032157600080fd5b50610342610330366004610846565b60016020526000908152604090205481565b604051908152602001610136565b34801561035c57600080fd5b506100cc61036b366004610afc565b61055d565b610378610724565b6100e98161079e565b606061038b610724565b60405162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5c1c1bdc9d1959609a1b60448201526064015b60405180910390fd5b6103d0610724565b60008281526020818152604080832080546001600160a01b0319166001600160a01b039590951694851790559282526001808252838320949094556002905220805460ff19169091179055565b600082815260208190526040812054819081906001600160a01b03168061047c5760405162461bcd60e51b81526020600482015260136024820152721a5b9d985b1a59081c995cdbdd5c98d9481251606a1b60448201526064016103bf565b60ff878116600887901b68ffffffffffffffff001617600081815260046020818152604092839020835160c081018552815490961686526001810154918601829052600281015467ffffffffffffffff908116948701949094526003810154606087015291820154608086015260059091015490911660a084015290919088146105415760405162461bcd60e51b8152602060048201526016602482015275646966666572656e74207265736f757263652049447360501b60448201526064016103bf565b608081015160a090910151929990985091965090945050505050565b610565610724565b6000838152602081905260409020546001600160a01b0316806105c05760405162461bcd60e51b81526020600482015260136024820152721a5b9d985b1a59081c995cdbdd5c98d9481251606a1b60448201526064016103bf565b6001600160a01b03811660009081526002602052604090205460ff166106285760405162461bcd60e51b815260206004820152601f60248201527f6e6f7420616e20616c6c6f77656420636f6e747261637420616464726573730060448201526064016103bf565b600061063683850185610b48565b9050848160200151146106845760405162461bcd60e51b8152602060048201526016602482015275646966666572656e74207265736f757263652049447360501b60448201526064016103bf565b80516040808301805160ff93841660089190911b68ffffffffffffffff001617600090815260046020818152939091208551815460ff191695169490941784559184015160018401555160028301805467ffffffffffffffff1990811667ffffffffffffffff938416179091556060850151600385015560808501519284019290925560a090930151600590920180549091169190921617905550505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461079c5760405162461bcd60e51b815260206004820152601e60248201527f73656e646572206d7573742062652062726964676520636f6e7472616374000060448201526064016103bf565b565b6001600160a01b03811660009081526002602052604090205460ff166108065760405162461bcd60e51b815260206004820152601c60248201527f6e6f7420616e20616c6c6f77656420746f6b656e20616464726573730000000060448201526064016103bf565b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b80356001600160a01b038116811461084157600080fd5b919050565b60006020828403121561085857600080fd5b6108618261082a565b9392505050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561089057600080fd5b813567ffffffffffffffff808211156108a857600080fd5b818401915084601f8301126108bc57600080fd5b8135818111156108ce576108ce610868565b604051601f8201601f19908116603f011681019083821181831017156108f6576108f6610868565b8160405282815287602084870101111561090f57600080fd5b826020860160208301376000928101602001929092525095945050505050565b60006020828403121561094157600080fd5b5035919050565b60006020828403121561095a57600080fd5b813568ffffffffffffffffff8116811461086157600080fd5b60008083601f84011261098557600080fd5b50813567ffffffffffffffff81111561099d57600080fd5b6020830191508360208285010111156109b557600080fd5b9250929050565b600080600080606085870312156109d257600080fd5b843593506109e26020860161082a565b9250604085013567ffffffffffffffff8111156109fe57600080fd5b610a0a87828801610973565b95989497509550505050565b600060208083528351808285015260005b81811015610a4357858101830151858201604001528201610a27565b81811115610a55576000604083870101525b50601f01601f1916929092016040019392505050565b60008060408385031215610a7e57600080fd5b82359150610a8e6020840161082a565b90509250929050565b803560ff8116811461084157600080fd5b803567ffffffffffffffff8116811461084157600080fd5b600080600060608486031215610ad557600080fd5b610ade84610a97565b925060208401359150610af360408501610aa8565b90509250925092565b600080600060408486031215610b1157600080fd5b83359250602084013567ffffffffffffffff811115610b2f57600080fd5b610b3b86828701610973565b9497909650939450505050565b600060c08284031215610b5a57600080fd5b60405160c0810181811067ffffffffffffffff82111715610b7d57610b7d610868565b604052610b8983610a97565b815260208301356020820152610ba160408401610aa8565b60408201526060830135606082015260808301356080820152610bc660a08401610aa8565b60a0820152939250505056fea2646970667358221220abd8e3847c6b96976dd59a0856a0fd519bf19a220731166e121f527ccecf09c064736f6c634300080b00330000000000000000000000002998627933a9d0ddb3069d0523eff128ed4f760c

Deployed Bytecode

0x6080604052600436106100a75760003560e01c80637f79bea8116100645780637f79bea814610256578063b07e54bb14610286578063b8fa3736146102a6578063c261694c146102c6578063c8ba6c8714610315578063e248cff21461035057600080fd5b806307b7ed99146100ac5780630968f264146100ce5780630a6d55d8146100ec578063318c136e1461013f57806340fbb12e146101735780636a70d08114610216575b600080fd5b3480156100b857600080fd5b506100cc6100c7366004610846565b610370565b005b3480156100da57600080fd5b506100cc6100e936600461087e565b50565b3480156100f857600080fd5b5061012261010736600461092f565b6000602081905290815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014b57600080fd5b506101227f0000000000000000000000002998627933a9d0ddb3069d0523eff128ed4f760c81565b34801561017f57600080fd5b506101d561018e366004610948565b600460208190526000918252604090912080546001820154600283015460038401549484015460059094015460ff90931694919367ffffffffffffffff9182169390911686565b6040805160ff9097168752602087019590955267ffffffffffffffff93841694860194909452606085019190915260808401521660a082015260c001610136565b34801561022257600080fd5b50610246610231366004610846565b60036020526000908152604090205460ff1681565b6040519015158152602001610136565b34801561026257600080fd5b50610246610271366004610846565b60026020526000908152604090205460ff1681565b6102996102943660046109bc565b610381565b6040516101369190610a16565b3480156102b257600080fd5b506100cc6102c1366004610a6b565b6103c8565b3480156102d257600080fd5b506102e66102e1366004610ac0565b61041d565b604080516001600160a01b039094168452602084019290925267ffffffffffffffff1690820152606001610136565b34801561032157600080fd5b50610342610330366004610846565b60016020526000908152604090205481565b604051908152602001610136565b34801561035c57600080fd5b506100cc61036b366004610afc565b61055d565b610378610724565b6100e98161079e565b606061038b610724565b60405162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5c1c1bdc9d1959609a1b60448201526064015b60405180910390fd5b6103d0610724565b60008281526020818152604080832080546001600160a01b0319166001600160a01b039590951694851790559282526001808252838320949094556002905220805460ff19169091179055565b600082815260208190526040812054819081906001600160a01b03168061047c5760405162461bcd60e51b81526020600482015260136024820152721a5b9d985b1a59081c995cdbdd5c98d9481251606a1b60448201526064016103bf565b60ff878116600887901b68ffffffffffffffff001617600081815260046020818152604092839020835160c081018552815490961686526001810154918601829052600281015467ffffffffffffffff908116948701949094526003810154606087015291820154608086015260059091015490911660a084015290919088146105415760405162461bcd60e51b8152602060048201526016602482015275646966666572656e74207265736f757263652049447360501b60448201526064016103bf565b608081015160a090910151929990985091965090945050505050565b610565610724565b6000838152602081905260409020546001600160a01b0316806105c05760405162461bcd60e51b81526020600482015260136024820152721a5b9d985b1a59081c995cdbdd5c98d9481251606a1b60448201526064016103bf565b6001600160a01b03811660009081526002602052604090205460ff166106285760405162461bcd60e51b815260206004820152601f60248201527f6e6f7420616e20616c6c6f77656420636f6e747261637420616464726573730060448201526064016103bf565b600061063683850185610b48565b9050848160200151146106845760405162461bcd60e51b8152602060048201526016602482015275646966666572656e74207265736f757263652049447360501b60448201526064016103bf565b80516040808301805160ff93841660089190911b68ffffffffffffffff001617600090815260046020818152939091208551815460ff191695169490941784559184015160018401555160028301805467ffffffffffffffff1990811667ffffffffffffffff938416179091556060850151600385015560808501519284019290925560a090930151600590920180549091169190921617905550505050565b336001600160a01b037f0000000000000000000000002998627933a9d0ddb3069d0523eff128ed4f760c161461079c5760405162461bcd60e51b815260206004820152601e60248201527f73656e646572206d7573742062652062726964676520636f6e7472616374000060448201526064016103bf565b565b6001600160a01b03811660009081526002602052604090205460ff166108065760405162461bcd60e51b815260206004820152601c60248201527f6e6f7420616e20616c6c6f77656420746f6b656e20616464726573730000000060448201526064016103bf565b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b80356001600160a01b038116811461084157600080fd5b919050565b60006020828403121561085857600080fd5b6108618261082a565b9392505050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561089057600080fd5b813567ffffffffffffffff808211156108a857600080fd5b818401915084601f8301126108bc57600080fd5b8135818111156108ce576108ce610868565b604051601f8201601f19908116603f011681019083821181831017156108f6576108f6610868565b8160405282815287602084870101111561090f57600080fd5b826020860160208301376000928101602001929092525095945050505050565b60006020828403121561094157600080fd5b5035919050565b60006020828403121561095a57600080fd5b813568ffffffffffffffffff8116811461086157600080fd5b60008083601f84011261098557600080fd5b50813567ffffffffffffffff81111561099d57600080fd5b6020830191508360208285010111156109b557600080fd5b9250929050565b600080600080606085870312156109d257600080fd5b843593506109e26020860161082a565b9250604085013567ffffffffffffffff8111156109fe57600080fd5b610a0a87828801610973565b95989497509550505050565b600060208083528351808285015260005b81811015610a4357858101830151858201604001528201610a27565b81811115610a55576000604083870101525b50601f01601f1916929092016040019392505050565b60008060408385031215610a7e57600080fd5b82359150610a8e6020840161082a565b90509250929050565b803560ff8116811461084157600080fd5b803567ffffffffffffffff8116811461084157600080fd5b600080600060608486031215610ad557600080fd5b610ade84610a97565b925060208401359150610af360408501610aa8565b90509250925092565b600080600060408486031215610b1157600080fd5b83359250602084013567ffffffffffffffff811115610b2f57600080fd5b610b3b86828701610973565b9497909650939450505050565b600060c08284031215610b5a57600080fd5b60405160c0810181811067ffffffffffffffff82111715610b7d57610b7d610868565b604052610b8983610a97565b815260208301356020820152610ba160408401610aa8565b60408201526060830135606082015260808301356080820152610bc660a08401610aa8565b60a0820152939250505056fea2646970667358221220abd8e3847c6b96976dd59a0856a0fd519bf19a220731166e121f527ccecf09c064736f6c634300080b0033

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

0000000000000000000000002998627933a9d0ddb3069d0523eff128ed4f760c

-----Decoded View---------------
Arg [0] : bridgeAddress (address): 0x2998627933A9d0Ddb3069D0523EfF128ED4F760C

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000002998627933a9d0ddb3069d0523eff128ed4f760c


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.