Sepolia Testnet

Contract

0xBE01B76AB454aE2497aE43168b1F70C92Ac1C726

Overview

ETH Balance

0.0567051 ETH

Multichain Info

N/A
Transaction Hash
Method
Block
From
To
Set Fee60492782024-06-06 5:52:48130 days ago1717653168IN
0xBE01B76A...92Ac1C726
0 ETH0.000065721.38133404

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
66402692024-09-06 0:43:3639 days ago1725583416
0xBE01B76A...92Ac1C726
0.0000275 ETH
66398742024-09-05 23:10:3639 days ago1725577836
0xBE01B76A...92Ac1C726
0.0000275 ETH
66396072024-09-05 22:09:2439 days ago1725574164
0xBE01B76A...92Ac1C726
0.0000275 ETH
66393562024-09-05 21:09:2439 days ago1725570564
0xBE01B76A...92Ac1C726
0.0000275 ETH
66261542024-09-03 16:13:2441 days ago1725380004
0xBE01B76A...92Ac1C726
0.0000275 ETH
66258782024-09-03 15:10:2441 days ago1725376224
0xBE01B76A...92Ac1C726
0.0000275 ETH
66251292024-09-03 12:17:4841 days ago1725365868
0xBE01B76A...92Ac1C726
0.0000275 ETH
66245652024-09-03 10:10:3641 days ago1725358236
0xBE01B76A...92Ac1C726
0.0000275 ETH
66243192024-09-03 9:10:4841 days ago1725354648
0xBE01B76A...92Ac1C726
0.0000275 ETH
66240622024-09-03 8:13:2441 days ago1725351204
0xBE01B76A...92Ac1C726
0.0000275 ETH
66232712024-09-03 5:10:2442 days ago1725340224
0xBE01B76A...92Ac1C726
0.0000275 ETH
66230152024-09-03 4:12:0042 days ago1725336720
0xBE01B76A...92Ac1C726
0.0000275 ETH
66227452024-09-03 3:11:0042 days ago1725333060
0xBE01B76A...92Ac1C726
0.0000275 ETH
66224572024-09-03 2:05:0042 days ago1725329100
0xBE01B76A...92Ac1C726
0.0000275 ETH
66221012024-09-03 0:43:1242 days ago1725324192
0xBE01B76A...92Ac1C726
0.0000275 ETH
66216952024-09-02 23:10:2442 days ago1725318624
0xBE01B76A...92Ac1C726
0.0000275 ETH
66214232024-09-02 22:09:0042 days ago1725314940
0xBE01B76A...92Ac1C726
0.0000275 ETH
66211482024-09-02 21:08:4842 days ago1725311328
0xBE01B76A...92Ac1C726
0.0000275 ETH
66208892024-09-02 20:10:4842 days ago1725307848
0xBE01B76A...92Ac1C726
0.0000275 ETH
66206132024-09-02 19:08:4842 days ago1725304128
0xBE01B76A...92Ac1C726
0.0000275 ETH
66203732024-09-02 18:12:4842 days ago1725300768
0xBE01B76A...92Ac1C726
0.0000275 ETH
66200912024-09-02 17:08:2442 days ago1725296904
0xBE01B76A...92Ac1C726
0.0000275 ETH
66198382024-09-02 16:12:0042 days ago1725293520
0xBE01B76A...92Ac1C726
0.0000275 ETH
66195582024-09-02 15:10:2442 days ago1725289824
0xBE01B76A...92Ac1C726
0.0000275 ETH
66192952024-09-02 14:09:1242 days ago1725286152
0xBE01B76A...92Ac1C726
0.0000275 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Oracle

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 999999 runs

Other Settings:
london EvmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 5 : Oracle.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;

import "../Verifier.sol";
import "../interfaces/IORMP.sol";

contract Oracle is Verifier {
    event SetFee(uint256 indexed chainId, uint256 fee);
    event SetApproved(address operator, bool approve);
    event Withdrawal(address indexed to, uint256 amt);
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    address public immutable PROTOCOL;

    address public owner;
    // chainId => price
    mapping(uint256 => uint256) public feeOf;
    // operator => isApproved
    mapping(address => bool) public approvedOf;

    modifier onlyOwner() {
        require(msg.sender == owner, "!owner");
        _;
    }

    modifier onlyApproved() {
        require(isApproved(msg.sender), "!approve");
        _;
    }

    constructor(address dao, address ormp) {
        PROTOCOL = ormp;
        owner = dao;
    }

    receive() external payable {}

    function version() public pure returns (string memory) {
        return "2.1.0";
    }

    /// @dev Only could be called by owner.
    /// @param chainId The source chain id.
    /// @param channel The message channel.
    /// @param msgIndex The source chain message index.
    /// @param msgHash The source chain message hash corresponding to the channel.
    function importMessageHash(uint256 chainId, address channel, uint256 msgIndex, bytes32 msgHash)
        external
        onlyOwner
    {
        IORMP(PROTOCOL).importHash(chainId, channel, msgIndex, msgHash);
    }

    function hashOf(uint256 chainId, address channel, uint256 msgIndex) public view override returns (bytes32) {
        return IORMP(PROTOCOL).hashLookup(address(this), keccak256(abi.encode(chainId, channel, msgIndex)));
    }

    function changeOwner(address newOwner) external onlyOwner {
        address oldOwner = owner;
        owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }

    function setApproved(address operator, bool approve) external onlyOwner {
        approvedOf[operator] = approve;
        emit SetApproved(operator, approve);
    }

    function isApproved(address operator) public view returns (bool) {
        return approvedOf[operator];
    }

    function withdraw(address to, uint256 amount) external onlyApproved {
        (bool success,) = to.call{value: amount}("");
        require(success, "!withdraw");
        emit Withdrawal(to, amount);
    }

    function setFee(uint256 chainId, uint256 fee_) external onlyApproved {
        feeOf[chainId] = fee_;
        emit SetFee(chainId, fee_);
    }

    function fee(uint256 toChainId, address /*ua*/ ) public view returns (uint256) {
        uint256 f = feeOf[toChainId];
        require(f != 0, "!fee");
        return f;
    }
}

File 2 of 5 : Common.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;

/// @dev The block of control information and data for comminicate
/// between user applications. Messages are the exchange medium
/// used by channels to send and receive data through cross-chain networks.
/// A message is sent from a source chain to a destination chain.
/// @param index The leaf index lives in channel's incremental mekle tree.
/// @param fromChainId The message source chain id.
/// @param from User application contract address which send the message.
/// @param toChainId The message destination chain id.
/// @param to User application contract address which receive the message.
/// @param gasLimit Gas limit for destination UA used.
/// @param encoded The calldata which encoded by ABI Encoding.
struct Message {
    address channel;
    uint256 index;
    uint256 fromChainId;
    address from;
    uint256 toChainId;
    address to;
    uint256 gasLimit;
    bytes encoded; /*(abi.encodePacked(SELECTOR, PARAMS))*/
}

/// @dev Hash of the message.
function hash(Message memory message) pure returns (bytes32) {
    return keccak256(abi.encode(message));
}

File 3 of 5 : Verifier.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;

import "./interfaces/IVerifier.sol";

abstract contract Verifier is IVerifier {
    /// @notice Fetch message hash.
    /// @param chainId The source chain id.
    /// @param channel The message channel.
    /// @param msgIndex The Message index.
    /// @return Message hash in source chain.
    function hashOf(uint256 chainId, address channel, uint256 msgIndex) public view virtual returns (bytes32);

    /// @inheritdoc IVerifier
    function verifyMessageProof(Message calldata message, bytes calldata) external view returns (bool) {
        // check oracle's message hash equal relayer's message hash
        return hashOf(message.fromChainId, message.channel, message.index) == hash(message);
    }
}

File 4 of 5 : IORMP.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;

import "../Common.sol";

interface IORMP {
    /// @dev Send a cross-chain message over the endpoint.
    /// @notice follow https://eips.ethereum.org/EIPS/eip-5750
    /// @param toChainId The Message destination chain id.
    /// @param to User application contract address which receive the message.
    /// @param gasLimit Gas limit for destination user application used.
    /// @param encoded The calldata which encoded by ABI Encoding.
    /// @param refund Return extra fee to refund address.
    /// @return Return the hash of the message as message id.
    /// @param params General extensibility for relayer to custom functionality.
    function send(
        uint256 toChainId,
        address to,
        uint256 gasLimit,
        bytes calldata encoded,
        address refund,
        bytes calldata params
    ) external payable returns (bytes32);

    /// @notice Get a quote in source native gas, for the amount that send() requires to pay for message delivery.
    /// @param toChainId The Message destination chain id.
    //  @param ua User application contract address which send the message.
    /// @param gasLimit Gas limit for destination user application used.
    /// @param encoded The calldata which encoded by ABI Encoding.
    /// @param params General extensibility for relayer to custom functionality.
    function fee(uint256 toChainId, address ua, uint256 gasLimit, bytes calldata encoded, bytes calldata params)
        external
        view
        returns (uint256);

    /// @dev Recv verified message and dispatch to destination user application address.
    /// @param message Verified receive message info.
    /// @param proof Message proof of this message.
    /// @return dispatchResult Result of the message dispatch.
    function recv(Message calldata message, bytes calldata proof) external payable returns (bool dispatchResult);

    /// @dev Fetch user application config.
    /// @notice If user application has not configured, then the default config is used.
    /// @param ua User application contract address.
    function getAppConfig(address ua) external view returns (address oracle, address relayer);

    /// @notice Set user application config.
    /// @param oracle Oracle which user application choose.
    /// @param relayer Relayer which user application choose.
    function setAppConfig(address oracle, address relayer) external;

    function defaultUC() external view returns (address oracle, address relayer);

    /// @dev Check the msg if it is dispatched.
    /// @param msgHash Hash of the checked message.
    /// @return Return the dispatched result of the checked message.
    function dones(bytes32 msgHash) external view returns (bool);

    /// @dev Import hash by any oracle address.
    /// @notice Hash is an abstract of the proof system, it can be a block hash or a message root hash,
    ///  		specifically provided by oracles.
    /// @param chainId The source chain id.
    /// @param channel The message channel.
    /// @param msgIndex The source chain message index.
    /// @param hash_ The hash to import.
    function importHash(uint256 chainId, address channel, uint256 msgIndex, bytes32 hash_) external;

    /// @dev Fetch hash.
    /// @param oracle The oracle address.
    /// @param lookupKey The key for loop up hash.
    /// @return Return the hash imported by the oracle.
    function hashLookup(address oracle, bytes32 lookupKey) external view returns (bytes32);
}

File 5 of 5 : IVerifier.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;

import "../Common.sol";

interface IVerifier {
    /// @notice Verify message proof
    /// @dev Message proof provided by relayer. Oracle should provide message root of
    ///      source chain, and verify the merkle proof of the message hash.
    /// @param message The message info.
    /// @param proof Proof of the message
    /// @return Result of the message verify.
    function verifyMessageProof(Message calldata message, bytes calldata proof) external view returns (bool);
}

Settings
{
  "viaIR": false,
  "optimizer": {
    "runs": 999999,
    "enabled": true
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs"
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "london",
  "libraries": {},
  "remappings": [
    "subapi/=lib/subapi/",
    "ORMP/=lib/ORMP/",
    "@darwinia-msgport/=lib/darwinia-msgport/",
    "@openzeppelin/[email protected]/=lib/openzeppelin-contracts/contracts/",
    "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
    "@safe-smart-account/=lib/subapi/lib/safe-smart-account/contracts/",
    "@sphinx-labs/contracts/=lib/sphinx/packages/contracts/contracts/foundry/",
    "forge-std/=lib/forge-std/src/",
    "solmate/=lib/darwinia-msgport/lib/solmate/src/",
    "create3-deploy/=lib/create3-deploy/"
  ]
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"dao","type":"address"},{"internalType":"address","name":"ormp","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approve","type":"bool"}],"name":"SetApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"chainId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"}],"name":"SetFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amt","type":"uint256"}],"name":"Withdrawal","type":"event"},{"inputs":[],"name":"PROTOCOL","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"approvedOf","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"changeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"toChainId","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"fee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"feeOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"channel","type":"address"},{"internalType":"uint256","name":"msgIndex","type":"uint256"}],"name":"hashOf","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"channel","type":"address"},{"internalType":"uint256","name":"msgIndex","type":"uint256"},{"internalType":"bytes32","name":"msgHash","type":"bytes32"}],"name":"importMessageHash","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"isApproved","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approve","type":"bool"}],"name":"setApproved","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"uint256","name":"fee_","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"channel","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"fromChainId","type":"uint256"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"toChainId","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"gasLimit","type":"uint256"},{"internalType":"bytes","name":"encoded","type":"bytes"}],"internalType":"struct Message","name":"message","type":"tuple"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"verifyMessageProof","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a060405234801561001057600080fd5b5060405161113038038061113083398101604081905261002f91610076565b6001600160a01b03908116608052600080546001600160a01b031916929091169190911790556100a9565b80516001600160a01b038116811461007157600080fd5b919050565b6000806040838503121561008957600080fd5b6100928361005a565b91506100a06020840161005a565b90509250929050565b60805161105e6100d2600039600081816102a80152818161046701526104cd015261105e6000f3fe6080604052600436106100e15760003560e01c80638da5cb5b1161007f578063a6f9dae111610059578063a6f9dae1146102ea578063af9e3a361461030a578063b6333d1614610337578063f3fef3a31461036757600080fd5b80638da5cb5b1461024457806391b9b82714610296578063a1dbf432146102ca57600080fd5b806354fd4d50116100bb57806354fd4d5014610162578063651b04a7146101ae578063673448dd146101de57806384cfb6801461022457600080fd5b80630a863e6c146100ed578063506146951461010f57806352f7c9881461014257600080fd5b366100e857005b600080fd5b3480156100f957600080fd5b5061010d610108366004610b5d565b610387565b005b34801561011b57600080fd5b5061012f61012a366004610b98565b6104c9565b6040519081526020015b60405180910390f35b34801561014e57600080fd5b5061010d61015d366004610bcd565b6105e1565b34801561016e57600080fd5b50604080518082018252600581527f322e312e30000000000000000000000000000000000000000000000000000000602082015290516101399190610c53565b3480156101ba57600080fd5b506101ce6101c9366004610c66565b6106ab565b6040519015158152602001610139565b3480156101ea57600080fd5b506101ce6101f9366004610d06565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205460ff1690565b34801561023057600080fd5b5061010d61023f366004610d21565b6106e6565b34801561025057600080fd5b506000546102719073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610139565b3480156102a257600080fd5b506102717f000000000000000000000000000000000000000000000000000000000000000081565b3480156102d657600080fd5b5061012f6102e5366004610d5d565b6107f5565b3480156102f657600080fd5b5061010d610305366004610d06565b610876565b34801561031657600080fd5b5061012f610325366004610d89565b60016020526000908152604090205481565b34801561034357600080fd5b506101ce610352366004610d06565b60026020526000908152604090205460ff1681565b34801561037357600080fd5b5061010d610382366004610da2565b61096c565b60005473ffffffffffffffffffffffffffffffffffffffff16331461040d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f216f776e6572000000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6040517f5f3abe960000000000000000000000000000000000000000000000000000000081526004810185905273ffffffffffffffffffffffffffffffffffffffff848116602483015260448201849052606482018390527f00000000000000000000000000000000000000000000000000000000000000001690635f3abe9690608401600060405180830381600087803b1580156104ab57600080fd5b505af11580156104bf573d6000803e3d6000fd5b5050505050505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663559e7230308686866040516020016105449392919092835273ffffffffffffffffffffffffffffffffffffffff919091166020830152604082015260600190565b604051602081830303815290604052805190602001206040518363ffffffff1660e01b815260040161059892919073ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b602060405180830381865afa1580156105b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d99190610dcc565b949350505050565b3360009081526002602052604090205460ff1661065a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f21617070726f76650000000000000000000000000000000000000000000000006044820152606401610404565b600082815260016020526040908190208290555182907f032dc6a2d839eb179729a55633fdf1c41a1fc4739394154117005db2b354b9b59061069f9084815260200190565b60405180910390a25050565b60006106be6106b985610ee9565b610b04565b6106dd60408601356106d36020880188610d06565b87602001356104c9565b14949350505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610767576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f216f776e657200000000000000000000000000000000000000000000000000006044820152606401610404565b73ffffffffffffffffffffffffffffffffffffffff821660008181526002602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168515159081179091558251938452908301527fd984ea421ae5d2a473199f85e03998a04a12f54d6f1fa183a955b3df1c0c546d910160405180910390a15050565b60008281526001602052604081205480820361086f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104049060208082526004908201527f2166656500000000000000000000000000000000000000000000000000000000604082015260600190565b9392505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146108f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f216f776e657200000000000000000000000000000000000000000000000000006044820152606401610404565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b3360009081526002602052604090205460ff166109e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f21617070726f76650000000000000000000000000000000000000000000000006044820152606401610404565b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610a3f576040519150601f19603f3d011682016040523d82523d6000602084013e610a44565b606091505b5050905080610aaf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21776974686472617700000000000000000000000000000000000000000000006044820152606401610404565b8273ffffffffffffffffffffffffffffffffffffffff167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b6583604051610af791815260200190565b60405180910390a2505050565b600081604051602001610b179190610f8b565b604051602081830303815290604052805190602001209050919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610b5857600080fd5b919050565b60008060008060808587031215610b7357600080fd5b84359350610b8360208601610b34565b93969395505050506040820135916060013590565b600080600060608486031215610bad57600080fd5b83359250610bbd60208501610b34565b9150604084013590509250925092565b60008060408385031215610be057600080fd5b50508035926020909101359150565b6000815180845260005b81811015610c1557602081850181015186830182015201610bf9565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b60208152600061086f6020830184610bef565b600080600060408486031215610c7b57600080fd5b833567ffffffffffffffff80821115610c9357600080fd5b908501906101008288031215610ca857600080fd5b90935060208501359080821115610cbe57600080fd5b818601915086601f830112610cd257600080fd5b813581811115610ce157600080fd5b876020828501011115610cf357600080fd5b6020830194508093505050509250925092565b600060208284031215610d1857600080fd5b61086f82610b34565b60008060408385031215610d3457600080fd5b610d3d83610b34565b915060208301358015158114610d5257600080fd5b809150509250929050565b60008060408385031215610d7057600080fd5b82359150610d8060208401610b34565b90509250929050565b600060208284031215610d9b57600080fd5b5035919050565b60008060408385031215610db557600080fd5b610dbe83610b34565b946020939093013593505050565b600060208284031215610dde57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610100810167ffffffffffffffff81118282101715610e3857610e38610de5565b60405290565b600082601f830112610e4f57600080fd5b813567ffffffffffffffff80821115610e6a57610e6a610de5565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610eb057610eb0610de5565b81604052838152866020858801011115610ec957600080fd5b836020870160208301376000602085830101528094505050505092915050565b60006101008236031215610efc57600080fd5b610f04610e14565b610f0d83610b34565b81526020830135602082015260408301356040820152610f2f60608401610b34565b606082015260808301356080820152610f4a60a08401610b34565b60a082015260c083013560c082015260e083013567ffffffffffffffff811115610f7357600080fd5b610f7f36828601610e3e565b60e08301525092915050565b60208152600073ffffffffffffffffffffffffffffffffffffffff808451166020840152602084015160408401526040840151606084015280606085015116608084015250608083015160a083015260a083015161100160c084018273ffffffffffffffffffffffffffffffffffffffff169052565b5060c083015160e083015260e08301516101008081850152506105d9610120840182610bef56fea26469706673582212204e15bd44f524a009ddb10dfab169b887e49170106f13f83c120155f154c3b9bc64736f6c63430008110033000000000000000000000000040f331774ed6bb161412b4cedb1358b382af3a500000000000000000000000013b2211a7ca45db2808f6db05557ce5347e3634e

Deployed Bytecode

0x6080604052600436106100e15760003560e01c80638da5cb5b1161007f578063a6f9dae111610059578063a6f9dae1146102ea578063af9e3a361461030a578063b6333d1614610337578063f3fef3a31461036757600080fd5b80638da5cb5b1461024457806391b9b82714610296578063a1dbf432146102ca57600080fd5b806354fd4d50116100bb57806354fd4d5014610162578063651b04a7146101ae578063673448dd146101de57806384cfb6801461022457600080fd5b80630a863e6c146100ed578063506146951461010f57806352f7c9881461014257600080fd5b366100e857005b600080fd5b3480156100f957600080fd5b5061010d610108366004610b5d565b610387565b005b34801561011b57600080fd5b5061012f61012a366004610b98565b6104c9565b6040519081526020015b60405180910390f35b34801561014e57600080fd5b5061010d61015d366004610bcd565b6105e1565b34801561016e57600080fd5b50604080518082018252600581527f322e312e30000000000000000000000000000000000000000000000000000000602082015290516101399190610c53565b3480156101ba57600080fd5b506101ce6101c9366004610c66565b6106ab565b6040519015158152602001610139565b3480156101ea57600080fd5b506101ce6101f9366004610d06565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205460ff1690565b34801561023057600080fd5b5061010d61023f366004610d21565b6106e6565b34801561025057600080fd5b506000546102719073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610139565b3480156102a257600080fd5b506102717f00000000000000000000000013b2211a7ca45db2808f6db05557ce5347e3634e81565b3480156102d657600080fd5b5061012f6102e5366004610d5d565b6107f5565b3480156102f657600080fd5b5061010d610305366004610d06565b610876565b34801561031657600080fd5b5061012f610325366004610d89565b60016020526000908152604090205481565b34801561034357600080fd5b506101ce610352366004610d06565b60026020526000908152604090205460ff1681565b34801561037357600080fd5b5061010d610382366004610da2565b61096c565b60005473ffffffffffffffffffffffffffffffffffffffff16331461040d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f216f776e6572000000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6040517f5f3abe960000000000000000000000000000000000000000000000000000000081526004810185905273ffffffffffffffffffffffffffffffffffffffff848116602483015260448201849052606482018390527f00000000000000000000000013b2211a7ca45db2808f6db05557ce5347e3634e1690635f3abe9690608401600060405180830381600087803b1580156104ab57600080fd5b505af11580156104bf573d6000803e3d6000fd5b5050505050505050565b60007f00000000000000000000000013b2211a7ca45db2808f6db05557ce5347e3634e73ffffffffffffffffffffffffffffffffffffffff1663559e7230308686866040516020016105449392919092835273ffffffffffffffffffffffffffffffffffffffff919091166020830152604082015260600190565b604051602081830303815290604052805190602001206040518363ffffffff1660e01b815260040161059892919073ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b602060405180830381865afa1580156105b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d99190610dcc565b949350505050565b3360009081526002602052604090205460ff1661065a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f21617070726f76650000000000000000000000000000000000000000000000006044820152606401610404565b600082815260016020526040908190208290555182907f032dc6a2d839eb179729a55633fdf1c41a1fc4739394154117005db2b354b9b59061069f9084815260200190565b60405180910390a25050565b60006106be6106b985610ee9565b610b04565b6106dd60408601356106d36020880188610d06565b87602001356104c9565b14949350505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610767576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f216f776e657200000000000000000000000000000000000000000000000000006044820152606401610404565b73ffffffffffffffffffffffffffffffffffffffff821660008181526002602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168515159081179091558251938452908301527fd984ea421ae5d2a473199f85e03998a04a12f54d6f1fa183a955b3df1c0c546d910160405180910390a15050565b60008281526001602052604081205480820361086f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104049060208082526004908201527f2166656500000000000000000000000000000000000000000000000000000000604082015260600190565b9392505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146108f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f216f776e657200000000000000000000000000000000000000000000000000006044820152606401610404565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b3360009081526002602052604090205460ff166109e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f21617070726f76650000000000000000000000000000000000000000000000006044820152606401610404565b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610a3f576040519150601f19603f3d011682016040523d82523d6000602084013e610a44565b606091505b5050905080610aaf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21776974686472617700000000000000000000000000000000000000000000006044820152606401610404565b8273ffffffffffffffffffffffffffffffffffffffff167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b6583604051610af791815260200190565b60405180910390a2505050565b600081604051602001610b179190610f8b565b604051602081830303815290604052805190602001209050919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610b5857600080fd5b919050565b60008060008060808587031215610b7357600080fd5b84359350610b8360208601610b34565b93969395505050506040820135916060013590565b600080600060608486031215610bad57600080fd5b83359250610bbd60208501610b34565b9150604084013590509250925092565b60008060408385031215610be057600080fd5b50508035926020909101359150565b6000815180845260005b81811015610c1557602081850181015186830182015201610bf9565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b60208152600061086f6020830184610bef565b600080600060408486031215610c7b57600080fd5b833567ffffffffffffffff80821115610c9357600080fd5b908501906101008288031215610ca857600080fd5b90935060208501359080821115610cbe57600080fd5b818601915086601f830112610cd257600080fd5b813581811115610ce157600080fd5b876020828501011115610cf357600080fd5b6020830194508093505050509250925092565b600060208284031215610d1857600080fd5b61086f82610b34565b60008060408385031215610d3457600080fd5b610d3d83610b34565b915060208301358015158114610d5257600080fd5b809150509250929050565b60008060408385031215610d7057600080fd5b82359150610d8060208401610b34565b90509250929050565b600060208284031215610d9b57600080fd5b5035919050565b60008060408385031215610db557600080fd5b610dbe83610b34565b946020939093013593505050565b600060208284031215610dde57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610100810167ffffffffffffffff81118282101715610e3857610e38610de5565b60405290565b600082601f830112610e4f57600080fd5b813567ffffffffffffffff80821115610e6a57610e6a610de5565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610eb057610eb0610de5565b81604052838152866020858801011115610ec957600080fd5b836020870160208301376000602085830101528094505050505092915050565b60006101008236031215610efc57600080fd5b610f04610e14565b610f0d83610b34565b81526020830135602082015260408301356040820152610f2f60608401610b34565b606082015260808301356080820152610f4a60a08401610b34565b60a082015260c083013560c082015260e083013567ffffffffffffffff811115610f7357600080fd5b610f7f36828601610e3e565b60e08301525092915050565b60208152600073ffffffffffffffffffffffffffffffffffffffff808451166020840152602084015160408401526040840151606084015280606085015116608084015250608083015160a083015260a083015161100160c084018273ffffffffffffffffffffffffffffffffffffffff169052565b5060c083015160e083015260e08301516101008081850152506105d9610120840182610bef56fea26469706673582212204e15bd44f524a009ddb10dfab169b887e49170106f13f83c120155f154c3b9bc64736f6c63430008110033

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

000000000000000000000000040f331774ed6bb161412b4cedb1358b382af3a500000000000000000000000013b2211a7ca45db2808f6db05557ce5347e3634e

-----Decoded View---------------
Arg [0] : dao (address): 0x040f331774Ed6BB161412B4cEDb1358B382aF3A5
Arg [1] : ormp (address): 0x13b2211a7cA45Db2808F6dB05557ce5347e3634e

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000040f331774ed6bb161412b4cedb1358b382af3a5
Arg [1] : 00000000000000000000000013b2211a7ca45db2808f6db05557ce5347e3634e


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ Download: CSV Export  ]
[ 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.