Source Code
Overview
ETH Balance
0.0567051 ETH
More Info
ContractCreator
Multichain Info
N/A
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Set Fee | 6049278 | 130 days ago | IN | 0 ETH | 0.00006572 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
6640269 | 39 days ago | 0.0000275 ETH | ||||
6639874 | 39 days ago | 0.0000275 ETH | ||||
6639607 | 39 days ago | 0.0000275 ETH | ||||
6639356 | 39 days ago | 0.0000275 ETH | ||||
6626154 | 41 days ago | 0.0000275 ETH | ||||
6625878 | 41 days ago | 0.0000275 ETH | ||||
6625129 | 41 days ago | 0.0000275 ETH | ||||
6624565 | 41 days ago | 0.0000275 ETH | ||||
6624319 | 41 days ago | 0.0000275 ETH | ||||
6624062 | 41 days ago | 0.0000275 ETH | ||||
6623271 | 42 days ago | 0.0000275 ETH | ||||
6623015 | 42 days ago | 0.0000275 ETH | ||||
6622745 | 42 days ago | 0.0000275 ETH | ||||
6622457 | 42 days ago | 0.0000275 ETH | ||||
6622101 | 42 days ago | 0.0000275 ETH | ||||
6621695 | 42 days ago | 0.0000275 ETH | ||||
6621423 | 42 days ago | 0.0000275 ETH | ||||
6621148 | 42 days ago | 0.0000275 ETH | ||||
6620889 | 42 days ago | 0.0000275 ETH | ||||
6620613 | 42 days ago | 0.0000275 ETH | ||||
6620373 | 42 days ago | 0.0000275 ETH | ||||
6620091 | 42 days ago | 0.0000275 ETH | ||||
6619838 | 42 days ago | 0.0000275 ETH | ||||
6619558 | 42 days ago | 0.0000275 ETH | ||||
6619295 | 42 days ago | 0.0000275 ETH |
Loading...
Loading
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)
// 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; } }
// 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)); }
// 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); } }
// 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); }
// 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); }
{ "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/" ] }
[{"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"}]
Contract Creation Code
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
Loading...
Loading
[ 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.