ETH Price: $3,985.58 (+2.29%)

Contract

0x3265BF56ab6c2e3Cb39bb0B1Bf41307ed87Bfa35
 

Multichain Info

Transaction Hash
Method
Block
From
To
Convert From168969222023-03-24 10:59:35623 days ago1679655575IN
0x3265BF56...ed87Bfa35
0 ETH0.0015425616.7357424
Convert From164457872023-01-20 5:00:47687 days ago1674190847IN
0x3265BF56...ed87Bfa35
0 ETH0.0016832418.25963252
Convert To162919972022-12-29 17:46:35708 days ago1672335995IN
0x3265BF56...ed87Bfa35
0 ETH0.0010182319.59240465
Convert From162919852022-12-29 17:44:11708 days ago1672335851IN
0x3265BF56...ed87Bfa35
0 ETH0.0020201821.91750694
Convert From160181622022-11-21 11:42:47746 days ago1669030967IN
0x3265BF56...ed87Bfa35
0 ETH0.0007723210.28343872
Convert To159042772022-11-05 14:00:59762 days ago1667656859IN
0x3265BF56...ed87Bfa35
0 ETH0.000655512.61585794
Convert From156572332022-10-02 1:40:35797 days ago1664674835IN
0x3265BF56...ed87Bfa35
0 ETH0.000415394.50554211
Convert To155672562022-09-19 11:26:11809 days ago1663586771IN
0x3265BF56...ed87Bfa35
0 ETH0.00030085.29853555
Convert To154804322022-09-05 22:31:54823 days ago1662417114IN
0x3265BF56...ed87Bfa35
0 ETH0.000603111.60205394
Convert From154040422022-08-24 16:48:45835 days ago1661359725IN
0x3265BF56...ed87Bfa35
0 ETH0.0014453715.67177841
Convert From153132432022-08-10 8:17:44849 days ago1660119464IN
0x3265BF56...ed87Bfa35
0 ETH0.000608978.10847648
Convert From152838512022-08-05 18:10:27854 days ago1659723027IN
0x3265BF56...ed87Bfa35
0 ETH0.0012385713.43762775
Convert From152719912022-08-03 21:53:12856 days ago1659563592IN
0x3265BF56...ed87Bfa35
0 ETH0.0009594912.77968934
Convert To152572312022-08-01 14:31:01858 days ago1659364261IN
0x3265BF56...ed87Bfa35
0 ETH0.0005691310.95597535
Convert From151730692022-07-19 12:31:49871 days ago1658233909IN
0x3265BF56...ed87Bfa35
0 ETH0.0030926141.20413233
Convert To151730672022-07-19 12:30:34871 days ago1658233834IN
0x3265BF56...ed87Bfa35
0 ETH0.0020384435.92927354
Convert To151271522022-07-12 9:59:11878 days ago1657619951IN
0x3265BF56...ed87Bfa35
0 ETH0.0009504513.67455831
Convert From150964562022-07-07 16:18:43883 days ago1657210723IN
0x3265BF56...ed87Bfa35
0 ETH0.0078175484.81469839
Convert To150955202022-07-07 12:43:14883 days ago1657197794IN
0x3265BF56...ed87Bfa35
0 ETH0.0012731617.13080167
Convert From150535232022-07-01 1:04:19890 days ago1656637459IN
0x3265BF56...ed87Bfa35
0 ETH0.0042196345.75812928
Convert From150415492022-06-28 20:46:31892 days ago1656449191IN
0x3265BF56...ed87Bfa35
0 ETH0.004080444.25410075
Convert From149983922022-06-20 19:59:16900 days ago1655755156IN
0x3265BF56...ed87Bfa35
0 ETH0.0023082225.03058332
Convert To149843862022-06-18 10:04:50902 days ago1655546690IN
0x3265BF56...ed87Bfa35
0 ETH0.0015329729.49671281
Convert To149841262022-06-18 9:00:25902 days ago1655542825IN
0x3265BF56...ed87Bfa35
0 ETH0.0016959332.6323306
Convert From149836472022-06-18 7:01:19903 days ago1655535679IN
0x3265BF56...ed87Bfa35
0 ETH0.02197695238.43418491
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
EthBridge

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 3 : EthBridge.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;

import "./Bridge.sol";

contract EthBridge is Bridge {

    constructor () Bridge() {
    }
}

File 2 of 3 : IERC20.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

File 3 of 3 : Bridge.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;

import "@openzeppelin/contracts/token/ERC20/IERC20.sol";

contract Bridge {

    address immutable private bridgeOwner;
    uint256 private currentNonce;
    mapping (uint256 => mapping(uint256 => bool)) private nonces;

    event TokenSentToBridge(address _token, address _sender, uint256 _amount, uint256 _nonce, uint256 _fromChainId, uint256 _toChainId, string _data);
    event TokenWithdrawnFromBridge(address _token, address _sender, uint256 _amount, uint256 _nonce, uint256 _fromChainId, uint256 _toChainId);

    constructor () {
        bridgeOwner = msg.sender;
    }

    function convertTo(address _token, uint256 _amount, uint256 _toChainId, string memory _data) external {
        IERC20(_token).transferFrom(msg.sender, address(this), _amount);
        currentNonce++;

        emit TokenSentToBridge(_token, msg.sender, _amount, currentNonce, _getChainId(), _toChainId, _data);
    }

    function convertFrom(bytes calldata _params, bytes calldata _messageLength, bytes calldata _signature) external {
        address _signer = _decodeSignature(_params, _messageLength, _signature);
        require(_signer == bridgeOwner, "BadSigner");

        (address _token, address _sender, uint256 _amount, uint256 _nonce, uint256 _fromChainId, uint256 _toChainId) = abi.decode(_params, (address, address, uint256, uint256, uint256, uint256));
        require(_toChainId == _getChainId(), "WrongChain");
        require(nonces[_fromChainId][_nonce] == false, "NonceRepeated");

        nonces[_fromChainId][_nonce] = true;
        IERC20(_token).transfer(_sender, _amount);

        emit TokenWithdrawnFromBridge(_token, _sender, _amount, _nonce, _fromChainId, _toChainId);
    }

    function getOwner() external view returns(address) {
        return bridgeOwner;
    }

    function getNonce(uint256 _chainId, uint256 _nonce) external view returns(bool) {
        return nonces[_chainId][_nonce];
    }

    function getCurrentNonce() external view returns(uint256) {
        return currentNonce;
    }

    function _decodeSignature(bytes memory _message, bytes memory _messageLength, bytes memory _signature) internal pure returns (address) {
        // Check the signature length
        if (_signature.length != 65) return (address(0));

        bytes32 messageHash = keccak256(abi.encodePacked(hex"19457468657265756d205369676e6564204d6573736167653a0a", _messageLength, _message));
        bytes32 r;
        bytes32 s;
        uint8 v;

        assembly {
            r := mload(add(_signature, 0x20))
            s := mload(add(_signature, 0x40))
            v := byte(0, mload(add(_signature, 0x60)))
        }

        // EIP-2 still allows signature malleability for ecrecover(). Remove this possibility and make the signature
        // unique. Appendix F in the Ethereum Yellow paper (https://ethereum.github.io/yellowpaper/paper.pdf), defines
        // the valid range for s in (281): 0 < s < secp256k1n ÷ 2 + 1, and for v in (282): v ∈ {27, 28}. Most
        // signatures from current libraries generate a unique signature with an s-value in the lower half order.
        //
        // If your library generates malleable signatures, such as s-values in the upper range, calculate a new s-value
        // with 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 - s1 and flip v from 27 to 28 or
        // vice versa. If your library also generates signatures with 0/1 for v instead 27/28, add 27 to v to accept
        // these malleable signatures as well.
        if (uint256(s) > 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) return address(0);

        if (v != 27 && v != 28) return address(0);
        
        return ecrecover(messageHash, v, r, s);
    }

    function _getChainId() internal view returns(uint256) {
        uint256 id;
        assembly {
            id := chainid()
        }
        return id;
    }
}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_token","type":"address"},{"indexed":false,"internalType":"address","name":"_sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_nonce","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_fromChainId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_toChainId","type":"uint256"},{"indexed":false,"internalType":"string","name":"_data","type":"string"}],"name":"TokenSentToBridge","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_token","type":"address"},{"indexed":false,"internalType":"address","name":"_sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_nonce","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_fromChainId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_toChainId","type":"uint256"}],"name":"TokenWithdrawnFromBridge","type":"event"},{"inputs":[{"internalType":"bytes","name":"_params","type":"bytes"},{"internalType":"bytes","name":"_messageLength","type":"bytes"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"name":"convertFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_toChainId","type":"uint256"},{"internalType":"string","name":"_data","type":"string"}],"name":"convertTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCurrentNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_chainId","type":"uint256"},{"internalType":"uint256","name":"_nonce","type":"uint256"}],"name":"getNonce","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60a060405234801561001057600080fd5b503373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b8152505060805160601c61116361006d600039600081816102d601526105aa01526111636000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80631290bbb81461005c578063378c4fde146100785780633a60c3861461009457806370932851146100b2578063893d20e8146100e2575b600080fd5b6100766004803603810190610071919061089f565b610100565b005b610092600480360381019061008d919061094f565b6101f9565b005b61009c610561565b6040516100a99190610dc5565b60405180910390f35b6100cc60048036038101906100c79190610a03565b61056a565b6040516100d99190610d05565b60405180910390f35b6100ea6105a6565b6040516100f79190610bb3565b60405180910390f35b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866040518463ffffffff1660e01b815260040161013d93929190610bce565b602060405180830381600087803b15801561015757600080fd5b505af115801561016b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061018f9190610922565b506000808154809291906101a290610f57565b91905055507ff23d010e1e3c208301131784483bae283b311f52307b8032670a723886a6d6dd8433856000546101d66105ce565b87876040516101eb9796959493929190610c66565b60405180910390a150505050565b60006102d287878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505086868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506105db565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610362576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035990610da5565b60405180910390fd5b6000806000806000808c8c81019061037a9190610812565b95509550955095509550955061038e6105ce565b81146103cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c690610d65565b60405180910390fd5b6000151560016000848152602001908152602001600020600085815260200190815260200160002060009054906101000a900460ff16151514610447576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043e90610d85565b60405180910390fd5b6001806000848152602001908152602001600020600085815260200190815260200160002060006101000a81548160ff0219169083151502179055508573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb86866040518363ffffffff1660e01b81526004016104be929190610cdc565b602060405180830381600087803b1580156104d857600080fd5b505af11580156104ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105109190610922565b507f0f442c827e3abc4148b9110f579169c8a3f347c2f74ae28497ceb01bd4094b2f86868686868660405161054a96959493929190610c05565b60405180910390a150505050505050505050505050565b60008054905090565b600060016000848152602001908152602001600020600083815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b6000804690508091505090565b600060418251146105ef57600090506106f1565b60008385604051602001610604929190610b84565b60405160208183030381529060405280519060200120905060008060006020860151925060408601519150606086015160001a90507f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08260001c11156106715760009450505050506106f1565b601b8160ff16141580156106895750601c8160ff1614155b1561069b5760009450505050506106f1565b600184828585604051600081526020016040526040516106be9493929190610d20565b6020604051602081039080840390855afa1580156106e0573d6000803e3d6000fd5b505050602060405103519450505050505b9392505050565b600061070b61070684610e05565b610de0565b9050828152602081018484840111156107275761072661100d565b5b610732848285610ee4565b509392505050565b600081359050610749816110d1565b92915050565b60008135905061075e816110e8565b92915050565b600081519050610773816110ff565b92915050565b60008083601f84011261078f5761078e611003565b5b8235905067ffffffffffffffff8111156107ac576107ab610ffe565b5b6020830191508360018202830111156107c8576107c7611008565b5b9250929050565b600082601f8301126107e4576107e3611003565b5b81356107f48482602086016106f8565b91505092915050565b60008135905061080c81611116565b92915050565b60008060008060008060c0878903121561082f5761082e611017565b5b600061083d89828a0161074f565b965050602061084e89828a0161074f565b955050604061085f89828a016107fd565b945050606061087089828a016107fd565b935050608061088189828a016107fd565b92505060a061089289828a016107fd565b9150509295509295509295565b600080600080608085870312156108b9576108b8611017565b5b60006108c78782880161073a565b94505060206108d8878288016107fd565b93505060406108e9878288016107fd565b925050606085013567ffffffffffffffff81111561090a57610909611012565b5b610916878288016107cf565b91505092959194509250565b60006020828403121561093857610937611017565b5b600061094684828501610764565b91505092915050565b6000806000806000806060878903121561096c5761096b611017565b5b600087013567ffffffffffffffff81111561098a57610989611012565b5b61099689828a01610779565b9650965050602087013567ffffffffffffffff8111156109b9576109b8611012565b5b6109c589828a01610779565b9450945050604087013567ffffffffffffffff8111156109e8576109e7611012565b5b6109f489828a01610779565b92509250509295509295509295565b60008060408385031215610a1a57610a19611017565b5b6000610a28858286016107fd565b9250506020610a39858286016107fd565b9150509250929050565b610a4c81610e73565b82525050565b610a5b81610e97565b82525050565b610a6a81610ea3565b82525050565b6000610a7b82610e36565b610a858185610e4c565b9350610a95818560208601610ef3565b80840191505092915050565b6000610aac82610e41565b610ab68185610e57565b9350610ac6818560208601610ef3565b610acf8161101c565b840191505092915050565b6000610ae7600a83610e57565b9150610af28261102d565b602082019050919050565b6000610b0a600d83610e57565b9150610b1582611056565b602082019050919050565b6000610b2d601a83610e68565b9150610b388261107f565b601a82019050919050565b6000610b50600983610e57565b9150610b5b826110a8565b602082019050919050565b610b6f81610ecd565b82525050565b610b7e81610ed7565b82525050565b6000610b8f82610b20565b9150610b9b8285610a70565b9150610ba78284610a70565b91508190509392505050565b6000602082019050610bc86000830184610a43565b92915050565b6000606082019050610be36000830186610a43565b610bf06020830185610a43565b610bfd6040830184610b66565b949350505050565b600060c082019050610c1a6000830189610a43565b610c276020830188610a43565b610c346040830187610b66565b610c416060830186610b66565b610c4e6080830185610b66565b610c5b60a0830184610b66565b979650505050505050565b600060e082019050610c7b600083018a610a43565b610c886020830189610a43565b610c956040830188610b66565b610ca26060830187610b66565b610caf6080830186610b66565b610cbc60a0830185610b66565b81810360c0830152610cce8184610aa1565b905098975050505050505050565b6000604082019050610cf16000830185610a43565b610cfe6020830184610b66565b9392505050565b6000602082019050610d1a6000830184610a52565b92915050565b6000608082019050610d356000830187610a61565b610d426020830186610b75565b610d4f6040830185610a61565b610d5c6060830184610a61565b95945050505050565b60006020820190508181036000830152610d7e81610ada565b9050919050565b60006020820190508181036000830152610d9e81610afd565b9050919050565b60006020820190508181036000830152610dbe81610b43565b9050919050565b6000602082019050610dda6000830184610b66565b92915050565b6000610dea610dfb565b9050610df68282610f26565b919050565b6000604051905090565b600067ffffffffffffffff821115610e2057610e1f610fcf565b5b610e298261101c565b9050602081019050919050565b600081519050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000610e7e82610ead565b9050919050565b6000610e9082610ead565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015610f11578082015181840152602081019050610ef6565b83811115610f20576000848401525b50505050565b610f2f8261101c565b810181811067ffffffffffffffff82111715610f4e57610f4d610fcf565b5b80604052505050565b6000610f6282610ecd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610f9557610f94610fa0565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f57726f6e67436861696e00000000000000000000000000000000000000000000600082015250565b7f4e6f6e6365526570656174656400000000000000000000000000000000000000600082015250565b7f19457468657265756d205369676e6564204d6573736167653a0a000000000000600082015250565b7f4261645369676e65720000000000000000000000000000000000000000000000600082015250565b6110da81610e73565b81146110e557600080fd5b50565b6110f181610e85565b81146110fc57600080fd5b50565b61110881610e97565b811461111357600080fd5b50565b61111f81610ecd565b811461112a57600080fd5b5056fea2646970667358221220f9daa687dfca9004490f76593289e6e6e4b72ce32cfa5ebf4762fce019c297cc64736f6c63430008070033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100575760003560e01c80631290bbb81461005c578063378c4fde146100785780633a60c3861461009457806370932851146100b2578063893d20e8146100e2575b600080fd5b6100766004803603810190610071919061089f565b610100565b005b610092600480360381019061008d919061094f565b6101f9565b005b61009c610561565b6040516100a99190610dc5565b60405180910390f35b6100cc60048036038101906100c79190610a03565b61056a565b6040516100d99190610d05565b60405180910390f35b6100ea6105a6565b6040516100f79190610bb3565b60405180910390f35b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866040518463ffffffff1660e01b815260040161013d93929190610bce565b602060405180830381600087803b15801561015757600080fd5b505af115801561016b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061018f9190610922565b506000808154809291906101a290610f57565b91905055507ff23d010e1e3c208301131784483bae283b311f52307b8032670a723886a6d6dd8433856000546101d66105ce565b87876040516101eb9796959493929190610c66565b60405180910390a150505050565b60006102d287878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505086868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506105db565b90507f0000000000000000000000003bcd9e57ab8f5e46947811e07212a27ed00a41f673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610362576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035990610da5565b60405180910390fd5b6000806000806000808c8c81019061037a9190610812565b95509550955095509550955061038e6105ce565b81146103cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c690610d65565b60405180910390fd5b6000151560016000848152602001908152602001600020600085815260200190815260200160002060009054906101000a900460ff16151514610447576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043e90610d85565b60405180910390fd5b6001806000848152602001908152602001600020600085815260200190815260200160002060006101000a81548160ff0219169083151502179055508573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb86866040518363ffffffff1660e01b81526004016104be929190610cdc565b602060405180830381600087803b1580156104d857600080fd5b505af11580156104ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105109190610922565b507f0f442c827e3abc4148b9110f579169c8a3f347c2f74ae28497ceb01bd4094b2f86868686868660405161054a96959493929190610c05565b60405180910390a150505050505050505050505050565b60008054905090565b600060016000848152602001908152602001600020600083815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f0000000000000000000000003bcd9e57ab8f5e46947811e07212a27ed00a41f6905090565b6000804690508091505090565b600060418251146105ef57600090506106f1565b60008385604051602001610604929190610b84565b60405160208183030381529060405280519060200120905060008060006020860151925060408601519150606086015160001a90507f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08260001c11156106715760009450505050506106f1565b601b8160ff16141580156106895750601c8160ff1614155b1561069b5760009450505050506106f1565b600184828585604051600081526020016040526040516106be9493929190610d20565b6020604051602081039080840390855afa1580156106e0573d6000803e3d6000fd5b505050602060405103519450505050505b9392505050565b600061070b61070684610e05565b610de0565b9050828152602081018484840111156107275761072661100d565b5b610732848285610ee4565b509392505050565b600081359050610749816110d1565b92915050565b60008135905061075e816110e8565b92915050565b600081519050610773816110ff565b92915050565b60008083601f84011261078f5761078e611003565b5b8235905067ffffffffffffffff8111156107ac576107ab610ffe565b5b6020830191508360018202830111156107c8576107c7611008565b5b9250929050565b600082601f8301126107e4576107e3611003565b5b81356107f48482602086016106f8565b91505092915050565b60008135905061080c81611116565b92915050565b60008060008060008060c0878903121561082f5761082e611017565b5b600061083d89828a0161074f565b965050602061084e89828a0161074f565b955050604061085f89828a016107fd565b945050606061087089828a016107fd565b935050608061088189828a016107fd565b92505060a061089289828a016107fd565b9150509295509295509295565b600080600080608085870312156108b9576108b8611017565b5b60006108c78782880161073a565b94505060206108d8878288016107fd565b93505060406108e9878288016107fd565b925050606085013567ffffffffffffffff81111561090a57610909611012565b5b610916878288016107cf565b91505092959194509250565b60006020828403121561093857610937611017565b5b600061094684828501610764565b91505092915050565b6000806000806000806060878903121561096c5761096b611017565b5b600087013567ffffffffffffffff81111561098a57610989611012565b5b61099689828a01610779565b9650965050602087013567ffffffffffffffff8111156109b9576109b8611012565b5b6109c589828a01610779565b9450945050604087013567ffffffffffffffff8111156109e8576109e7611012565b5b6109f489828a01610779565b92509250509295509295509295565b60008060408385031215610a1a57610a19611017565b5b6000610a28858286016107fd565b9250506020610a39858286016107fd565b9150509250929050565b610a4c81610e73565b82525050565b610a5b81610e97565b82525050565b610a6a81610ea3565b82525050565b6000610a7b82610e36565b610a858185610e4c565b9350610a95818560208601610ef3565b80840191505092915050565b6000610aac82610e41565b610ab68185610e57565b9350610ac6818560208601610ef3565b610acf8161101c565b840191505092915050565b6000610ae7600a83610e57565b9150610af28261102d565b602082019050919050565b6000610b0a600d83610e57565b9150610b1582611056565b602082019050919050565b6000610b2d601a83610e68565b9150610b388261107f565b601a82019050919050565b6000610b50600983610e57565b9150610b5b826110a8565b602082019050919050565b610b6f81610ecd565b82525050565b610b7e81610ed7565b82525050565b6000610b8f82610b20565b9150610b9b8285610a70565b9150610ba78284610a70565b91508190509392505050565b6000602082019050610bc86000830184610a43565b92915050565b6000606082019050610be36000830186610a43565b610bf06020830185610a43565b610bfd6040830184610b66565b949350505050565b600060c082019050610c1a6000830189610a43565b610c276020830188610a43565b610c346040830187610b66565b610c416060830186610b66565b610c4e6080830185610b66565b610c5b60a0830184610b66565b979650505050505050565b600060e082019050610c7b600083018a610a43565b610c886020830189610a43565b610c956040830188610b66565b610ca26060830187610b66565b610caf6080830186610b66565b610cbc60a0830185610b66565b81810360c0830152610cce8184610aa1565b905098975050505050505050565b6000604082019050610cf16000830185610a43565b610cfe6020830184610b66565b9392505050565b6000602082019050610d1a6000830184610a52565b92915050565b6000608082019050610d356000830187610a61565b610d426020830186610b75565b610d4f6040830185610a61565b610d5c6060830184610a61565b95945050505050565b60006020820190508181036000830152610d7e81610ada565b9050919050565b60006020820190508181036000830152610d9e81610afd565b9050919050565b60006020820190508181036000830152610dbe81610b43565b9050919050565b6000602082019050610dda6000830184610b66565b92915050565b6000610dea610dfb565b9050610df68282610f26565b919050565b6000604051905090565b600067ffffffffffffffff821115610e2057610e1f610fcf565b5b610e298261101c565b9050602081019050919050565b600081519050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000610e7e82610ead565b9050919050565b6000610e9082610ead565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015610f11578082015181840152602081019050610ef6565b83811115610f20576000848401525b50505050565b610f2f8261101c565b810181811067ffffffffffffffff82111715610f4e57610f4d610fcf565b5b80604052505050565b6000610f6282610ecd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610f9557610f94610fa0565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f57726f6e67436861696e00000000000000000000000000000000000000000000600082015250565b7f4e6f6e6365526570656174656400000000000000000000000000000000000000600082015250565b7f19457468657265756d205369676e6564204d6573736167653a0a000000000000600082015250565b7f4261645369676e65720000000000000000000000000000000000000000000000600082015250565b6110da81610e73565b81146110e557600080fd5b50565b6110f181610e85565b81146110fc57600080fd5b50565b61110881610e97565b811461111357600080fd5b50565b61111f81610ecd565b811461112a57600080fd5b5056fea2646970667358221220f9daa687dfca9004490f76593289e6e6e4b72ce32cfa5ebf4762fce019c297cc64736f6c63430008070033

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.