Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 4,787 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Execute | 13335798 | 1223 days ago | IN | 0 ETH | 0.01264044 | ||||
Execute | 13335761 | 1223 days ago | IN | 0 ETH | 0.01127331 | ||||
Execute | 13335755 | 1223 days ago | IN | 0 ETH | 0.00958758 | ||||
Execute | 13335737 | 1223 days ago | IN | 0 ETH | 0.01221909 | ||||
Execute | 13335708 | 1223 days ago | IN | 0 ETH | 0.00811159 | ||||
Execute | 13335684 | 1223 days ago | IN | 0 ETH | 0.01063776 | ||||
Execute | 13335673 | 1223 days ago | IN | 0 ETH | 0.01190545 | ||||
Execute | 13335659 | 1223 days ago | IN | 0 ETH | 0.01600931 | ||||
Execute | 13335624 | 1223 days ago | IN | 0 ETH | 0.0137931 | ||||
Execute | 13335612 | 1223 days ago | IN | 0 ETH | 0.01042712 | ||||
Execute | 13335531 | 1223 days ago | IN | 0 ETH | 0.0092667 | ||||
Execute | 13330154 | 1224 days ago | IN | 0 ETH | 0.01326982 | ||||
Execute | 13330121 | 1224 days ago | IN | 0 ETH | 0.01769803 | ||||
Execute | 13330113 | 1224 days ago | IN | 0 ETH | 0.01822112 | ||||
Execute | 13330097 | 1224 days ago | IN | 0 ETH | 0.01759128 | ||||
Execute | 13330074 | 1224 days ago | IN | 0 ETH | 0.05520101 | ||||
Execute | 13329966 | 1224 days ago | IN | 0 ETH | 0.00948109 | ||||
Execute | 13329948 | 1224 days ago | IN | 0 ETH | 0.00856333 | ||||
Execute | 13329936 | 1224 days ago | IN | 0 ETH | 0.01063437 | ||||
Execute | 13329905 | 1224 days ago | IN | 0 ETH | 0.00948222 | ||||
Execute | 13329896 | 1224 days ago | IN | 0 ETH | 0.00663385 | ||||
Execute | 13329886 | 1224 days ago | IN | 0 ETH | 0.00737271 | ||||
Execute | 13329838 | 1224 days ago | IN | 0 ETH | 0.00821628 | ||||
Execute | 13329823 | 1224 days ago | IN | 0 ETH | 0.01032303 | ||||
Execute | 13329815 | 1224 days ago | IN | 0 ETH | 0.01137504 |
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
9125861 | 1876 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
DharmaAccountRecoveryOperatorMultisig
Compiler Version
v0.5.11+commit.c082d0b4
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2019-12-18 */ pragma solidity 0.5.11; // optimization disabled, evm version: petersburg /** * @title DharmaAccountRecoveryOperatorMultisig * @author 0age (derived from Christian Lundkvist's Simple Multisig) * @notice This contract is a multisig that will initiate timelocks for account * recovery on the Dharma Smart Wallet, based on Christian Lundkvist's Simple * Multisig (found at https://github.com/christianlundkvist/simple-multisig). * The Account Recovery Manager is hard-coded as the only allowable call * destination, and any changes in ownership or signature threshold will require * deploying a new multisig and setting it as the new operator on the account * recovery manager. */ contract DharmaAccountRecoveryOperatorMultisig { // Maintain a mapping of used hashes to prevent replays. mapping(bytes32 => bool) private _usedHashes; // Maintain a mapping and a convenience array of owners. mapping(address => bool) private _isOwner; address[] private _owners; // The Account Recovery Manager is the only account the multisig can call. address private constant _DESTINATION = address( 0x0000000000DfEd903aD76996FC07BF89C0127B1E ); // The threshold is an exact number of valid signatures that must be supplied. uint256 private constant _THRESHOLD = 2; // Note: Owners must be strictly increasing in order to prevent duplicates. constructor(address[] memory owners) public { require(owners.length <= 10, "Cannot have more than 10 owners."); require(_THRESHOLD <= owners.length, "Threshold cannot exceed total owners."); address lastAddress = address(0); for (uint256 i = 0; i < owners.length; i++) { require( owners[i] > lastAddress, "Owner addresses must be strictly increasing." ); _isOwner[owners[i]] = true; lastAddress = owners[i]; } _owners = owners; } function getHash( bytes calldata data, address executor, uint256 gasLimit, bytes32 salt ) external view returns (bytes32 hash, bool usable) { (hash, usable) = _getHash(data, executor, gasLimit, salt); } function getOwners() external view returns (address[] memory owners) { owners = _owners; } function isOwner(address account) external view returns (bool owner) { owner = _isOwner[account]; } function getThreshold() external pure returns (uint256 threshold) { threshold = _THRESHOLD; } function getDestination() external pure returns (address destination) { destination = _DESTINATION; } // Note: addresses recovered from signatures must be strictly increasing. function execute( bytes calldata data, address executor, uint256 gasLimit, bytes32 salt, bytes calldata signatures ) external returns (bool success, bytes memory returnData) { require( executor == msg.sender || executor == address(0), "Must call from the executor account if one is specified." ); // Derive the message hash and ensure that it has not been used before. (bytes32 rawHash, bool usable) = _getHash(data, executor, gasLimit, salt); require(usable, "Hash in question has already been used previously."); // wrap the derived message hash as an eth signed messsage hash. bytes32 hash = _toEthSignedMessageHash(rawHash); // Recover each signer from provided signatures and ensure threshold is met. address[] memory signers = _recoverGroup(hash, signatures); require(signers.length == _THRESHOLD, "Total signers must equal threshold."); // Verify that each signatory is an owner and is strictly increasing. address lastAddress = address(0); // cannot have address(0) as an owner for (uint256 i = 0; i < signers.length; i++) { require( _isOwner[signers[i]], "Signature does not correspond to an owner." ); require( signers[i] > lastAddress, "Signer addresses must be strictly increasing." ); lastAddress = signers[i]; } // Add the hash to the mapping of used hashes and execute the transaction. _usedHashes[rawHash] = true; (success, returnData) = _DESTINATION.call.gas(gasLimit)(data); } function _getHash( bytes memory data, address executor, uint256 gasLimit, bytes32 salt ) internal view returns (bytes32 hash, bool usable) { // Note: this is the data used to create a personal signed message hash. hash = keccak256( abi.encodePacked(address(this), salt, executor, gasLimit, data) ); usable = !_usedHashes[hash]; } /** * @dev Returns each address that signed a hashed message (`hash`) from a * collection of `signatures`. * * The `ecrecover` EVM opcode allows for malleable (non-unique) signatures: * this function rejects them by requiring the `s` value to be in the lower * half order, and the `v` value to be either 27 or 28. * * NOTE: This call _does not revert_ if a signature is invalid, or if the * signer is otherwise unable to be retrieved. In those scenarios, the zero * address is returned for that signature. * * IMPORTANT: `hash` _must_ be the result of a hash operation for the * verification to be secure: it is possible to craft signatures that recover * to arbitrary addresses for non-hashed data. */ function _recoverGroup( bytes32 hash, bytes memory signatures ) internal pure returns (address[] memory signers) { // Ensure that the signatures length is a multiple of 65. if (signatures.length % 65 != 0) { return new address[](0); } // Create an appropriately-sized array of addresses for each signer. signers = new address[](signatures.length / 65); // Get each signature location and divide into r, s and v variables. bytes32 signatureLocation; bytes32 r; bytes32 s; uint8 v; for (uint256 i = 0; i < signers.length; i++) { assembly { signatureLocation := add(signatures, mul(i, 65)) r := mload(add(signatureLocation, 32)) s := mload(add(signatureLocation, 64)) v := byte(0, mload(add(signatureLocation, 96))) } // EIP-2 still allows signature malleability for ecrecover(). Remove // this possibility and make the signature unique. if (uint256(s) > 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) { continue; } if (v != 27 && v != 28) { continue; } // If signature is valid & not malleable, add signer address. signers[i] = ecrecover(hash, v, r, s); } } function _toEthSignedMessageHash(bytes32 hash) internal pure returns (bytes32) { return keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", hash)); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"getDestination","outputs":[{"internalType":"address","name":"destination","type":"address"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"owner","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"address","name":"executor","type":"address"},{"internalType":"uint256","name":"gasLimit","type":"uint256"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"name":"getHash","outputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bool","name":"usable","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"address","name":"executor","type":"address"},{"internalType":"uint256","name":"gasLimit","type":"uint256"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes","name":"signatures","type":"bytes"}],"name":"execute","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getOwners","outputs":[{"internalType":"address[]","name":"owners","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getThreshold","outputs":[{"internalType":"uint256","name":"threshold","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"owners","type":"address[]"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040516200125e3803806200125e833981810160405260208110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b838201915060208201858111156200006f57600080fd5b82518660208202830111640100000000821117156200008d57600080fd5b8083526020830192505050908051906020019060200280838360005b83811015620000c6578082015181840152602081019050620000a9565b50505050905001604052505050600a815111156200014c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f43616e6e6f742068617665206d6f7265207468616e203130206f776e6572732e81525060200191505060405180910390fd5b805160021115620001a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806200120d6025913960400191505060405180910390fd5b600080905060008090505b8251811015620002e8578173ffffffffffffffffffffffffffffffffffffffff16838281518110620001e257fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff161162000258576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018062001232602c913960400191505060405180910390fd5b60018060008584815181106200026a57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550828181518110620002d057fe5b602002602001015191508080600101915050620001b4565b508160029080519060200190620003019291906200030a565b505050620003df565b82805482825590600052602060002090810192821562000386579160200282015b82811115620003855782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906200032b565b5b50905062000395919062000399565b5090565b620003dc91905b80821115620003d857600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101620003a0565b5090565b90565b610e1e80620003ef6000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806316ad9542146100675780632f54bf6e146100b15780635de08d3b1461010d578063870cfd42146101d9578063a0e67e2b1461035f578063e75235b8146103be575b600080fd5b61006f6103dc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100f3600480360360208110156100c757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103f3565b604051808215151515815260200191505060405180910390f35b6101b86004803603608081101561012357600080fd5b810190808035906020019064010000000081111561014057600080fd5b82018360208201111561015257600080fd5b8035906020019184600183028401116401000000008311171561017457600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050610449565b60405180838152602001821515151581526020019250505060405180910390f35b6102d9600480360360a08110156101ef57600080fd5b810190808035906020019064010000000081111561020c57600080fd5b82018360208201111561021e57600080fd5b8035906020019184600183028401116401000000008311171561024057600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291908035906020019064010000000081111561029557600080fd5b8201836020820111156102a757600080fd5b803590602001918460018302840111640100000000831117156102c957600080fd5b90919293919293905050506104ae565b604051808315151515815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610323578082015181840152602081019050610308565b50505050905090810190601f1680156103505780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b61036761091d565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156103aa57808201518184015260208101905061038f565b505050509050019250505060405180910390f35b6103c66109ab565b6040518082815260200191505060405180910390f35b60006edfed903ad76996fc07bf89c0127b1e905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008061049c87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508686866109b4565b80925081935050509550959350505050565b600060603373ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614806105185750600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16145b61056d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180610db26038913960400191505060405180910390fd5b6000806105c08b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508a8a8a6109b4565b915091508061061a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180610d806032913960400191505060405180910390fd5b600061062583610ad5565b905060606106778289898080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610b2d565b905060028151146106d3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180610d066023913960400191505060405180910390fd5b600080905060008090505b825181101561085657600160008483815181106106f757fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661079c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180610d56602a913960400191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff168382815181106107bf57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1611610833576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180610d29602d913960400191505060405180910390fd5b82818151811061083f57fe5b6020026020010151915080806001019150506106de565b50600160008087815260200190815260200160002060006101000a81548160ff0219169083151502179055506edfed903ad76996fc07bf89c0127b1e73ffffffffffffffffffffffffffffffffffffffff168b8f8f60405180838380828437808301925050509250505060006040518083038160008787f1925050503d80600081146108fe576040519150601f19603f3d011682016040523d82523d6000602084013e610903565b606091505b508097508198505050505050505097509795505050505050565b606060028054806020026020016040519081016040528092919081815260200182805480156109a157602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610957575b5050505050905090565b60006002905090565b6000803083868689604051602001808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b815260140183815260200182805190602001908083835b60208310610a685780518252602082019150602081019050602083039250610a45565b6001836020036101000a0380198251168184511680821785525050505050509050019550505050505060405160208183030381529060405280519060200120915060008083815260200190815260200160002060009054906101000a900460ff1615905094509492505050565b60008160405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c01828152602001915050604051602081830303815290604052805190602001209050919050565b606060006041835181610b3c57fe5b0614610b7a576000604051908082528060200260200182016040528015610b725781602001602082028038833980820191505090505b509050610cff565b6041825181610b8557fe5b04604051908082528060200260200182016040528015610bb45781602001602082028038833980820191505090505b50905060008060008060008090505b8551811015610cf95760418102870194506020850151935060408501519250606085015160001a91507f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08360001c1115610c1c57610cec565b601b8260ff1614158015610c345750601c8260ff1614155b15610c3e57610cec565b60018883868660405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610c9b573d6000803e3d6000fd5b50505060206040510351868281518110610cb157fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b8080600101915050610bc3565b50505050505b9291505056fe546f74616c207369676e657273206d75737420657175616c207468726573686f6c642e5369676e657220616464726573736573206d757374206265207374726963746c7920696e6372656173696e672e5369676e617475726520646f6573206e6f7420636f72726573706f6e6420746f20616e206f776e65722e4861736820696e207175657374696f6e2068617320616c7265616479206265656e20757365642070726576696f75736c792e4d7573742063616c6c2066726f6d20746865206578656375746f72206163636f756e74206966206f6e65206973207370656369666965642ea265627a7a723158201d99ba96928cc6942c0f8898980a0b7d1744196ab4154aae9ad539b8f288823a64736f6c634300050b00325468726573686f6c642063616e6e6f742065786365656420746f74616c206f776e6572732e4f776e657220616464726573736573206d757374206265207374726963746c7920696e6372656173696e672e00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000004000000000000000000000000255d029a5dd51ffded313829e38e56d65e62027c0000000000000000000000005a4942ef672f548c7bba0f922c69dbc242d4b597000000000000000000000000da99d53003a963af9cbf0404ec28e88a57991017000000000000000000000000eb12e1bf488d589d3105ab2a87bde3b0fe51dd9c
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100625760003560e01c806316ad9542146100675780632f54bf6e146100b15780635de08d3b1461010d578063870cfd42146101d9578063a0e67e2b1461035f578063e75235b8146103be575b600080fd5b61006f6103dc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100f3600480360360208110156100c757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103f3565b604051808215151515815260200191505060405180910390f35b6101b86004803603608081101561012357600080fd5b810190808035906020019064010000000081111561014057600080fd5b82018360208201111561015257600080fd5b8035906020019184600183028401116401000000008311171561017457600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050610449565b60405180838152602001821515151581526020019250505060405180910390f35b6102d9600480360360a08110156101ef57600080fd5b810190808035906020019064010000000081111561020c57600080fd5b82018360208201111561021e57600080fd5b8035906020019184600183028401116401000000008311171561024057600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291908035906020019064010000000081111561029557600080fd5b8201836020820111156102a757600080fd5b803590602001918460018302840111640100000000831117156102c957600080fd5b90919293919293905050506104ae565b604051808315151515815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610323578082015181840152602081019050610308565b50505050905090810190601f1680156103505780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b61036761091d565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156103aa57808201518184015260208101905061038f565b505050509050019250505060405180910390f35b6103c66109ab565b6040518082815260200191505060405180910390f35b60006edfed903ad76996fc07bf89c0127b1e905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008061049c87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508686866109b4565b80925081935050509550959350505050565b600060603373ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614806105185750600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16145b61056d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180610db26038913960400191505060405180910390fd5b6000806105c08b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508a8a8a6109b4565b915091508061061a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180610d806032913960400191505060405180910390fd5b600061062583610ad5565b905060606106778289898080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610b2d565b905060028151146106d3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180610d066023913960400191505060405180910390fd5b600080905060008090505b825181101561085657600160008483815181106106f757fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661079c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180610d56602a913960400191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff168382815181106107bf57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1611610833576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180610d29602d913960400191505060405180910390fd5b82818151811061083f57fe5b6020026020010151915080806001019150506106de565b50600160008087815260200190815260200160002060006101000a81548160ff0219169083151502179055506edfed903ad76996fc07bf89c0127b1e73ffffffffffffffffffffffffffffffffffffffff168b8f8f60405180838380828437808301925050509250505060006040518083038160008787f1925050503d80600081146108fe576040519150601f19603f3d011682016040523d82523d6000602084013e610903565b606091505b508097508198505050505050505097509795505050505050565b606060028054806020026020016040519081016040528092919081815260200182805480156109a157602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610957575b5050505050905090565b60006002905090565b6000803083868689604051602001808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b815260140183815260200182805190602001908083835b60208310610a685780518252602082019150602081019050602083039250610a45565b6001836020036101000a0380198251168184511680821785525050505050509050019550505050505060405160208183030381529060405280519060200120915060008083815260200190815260200160002060009054906101000a900460ff1615905094509492505050565b60008160405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c01828152602001915050604051602081830303815290604052805190602001209050919050565b606060006041835181610b3c57fe5b0614610b7a576000604051908082528060200260200182016040528015610b725781602001602082028038833980820191505090505b509050610cff565b6041825181610b8557fe5b04604051908082528060200260200182016040528015610bb45781602001602082028038833980820191505090505b50905060008060008060008090505b8551811015610cf95760418102870194506020850151935060408501519250606085015160001a91507f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08360001c1115610c1c57610cec565b601b8260ff1614158015610c345750601c8260ff1614155b15610c3e57610cec565b60018883868660405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610c9b573d6000803e3d6000fd5b50505060206040510351868281518110610cb157fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b8080600101915050610bc3565b50505050505b9291505056fe546f74616c207369676e657273206d75737420657175616c207468726573686f6c642e5369676e657220616464726573736573206d757374206265207374726963746c7920696e6372656173696e672e5369676e617475726520646f6573206e6f7420636f72726573706f6e6420746f20616e206f776e65722e4861736820696e207175657374696f6e2068617320616c7265616479206265656e20757365642070726576696f75736c792e4d7573742063616c6c2066726f6d20746865206578656375746f72206163636f756e74206966206f6e65206973207370656369666965642ea265627a7a723158201d99ba96928cc6942c0f8898980a0b7d1744196ab4154aae9ad539b8f288823a64736f6c634300050b0032
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000004000000000000000000000000255d029a5dd51ffded313829e38e56d65e62027c0000000000000000000000005a4942ef672f548c7bba0f922c69dbc242d4b597000000000000000000000000da99d53003a963af9cbf0404ec28e88a57991017000000000000000000000000eb12e1bf488d589d3105ab2a87bde3b0fe51dd9c
-----Decoded View---------------
Arg [0] : owners (address[]): 0x255d029A5dd51ffdEd313829e38E56D65E62027C,0x5A4942eF672F548c7BBA0f922c69dbC242D4B597,0xdA99D53003a963Af9cBF0404eC28e88a57991017,0xEb12E1BF488D589D3105aB2A87BDe3B0fE51dd9c
-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000020
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [2] : 000000000000000000000000255d029a5dd51ffded313829e38e56d65e62027c
Arg [3] : 0000000000000000000000005a4942ef672f548c7bba0f922c69dbc242d4b597
Arg [4] : 000000000000000000000000da99d53003a963af9cbf0404ec28e88a57991017
Arg [5] : 000000000000000000000000eb12e1bf488d589d3105ab2a87bde3b0fe51dd9c
Deployed Bytecode Sourcemap
704:6179:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;704:6179:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2468:109;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2248:107;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2248:107:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1905:233;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;1905:233:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1905:233:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1905:233:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1905:233:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2660:1589;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;2660:1589:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;2660:1589:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2660:1589:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2660:1589:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;2660:1589:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2660:1589:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2660:1589:0;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2660:1589:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2144:98;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2144:98:0;;;;;;;;;;;;;;;;;2361:101;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2468:109;2517:19;1137:42;2545:26;;2468:109;:::o;2248:107::-;2305:10;2332:8;:17;2341:7;2332:17;;;;;;;;;;;;;;;;;;;;;;;;;2324:25;;2248:107;;;:::o;1905:233::-;2041:12;2055:11;2092:40;2101:4;;2092:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;2092:40:0;;;;;;2107:8;2117;2127:4;2092:8;:40::i;:::-;2075:57;;;;;;;;1905:233;;;;;;;;:::o;2660:1589::-;2823:12;2837:23;2897:10;2885:22;;:8;:22;;;:48;;;;2931:1;2911:22;;:8;:22;;;2885:48;2869:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3094:15;3111:11;3126:40;3135:4;;3126:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;3126:40:0;;;;;;3141:8;3151;3161:4;3126:8;:40::i;:::-;3093:73;;;;3181:6;3173:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3321:12;3336:32;3360:7;3336:23;:32::i;:::-;3321:47;;3459:24;3486:31;3500:4;3506:10;;3486:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;3486:31:0;;;;;;:13;:31::i;:::-;3459:58;;1311:1;3534:7;:14;:28;3526:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3686:19;3716:1;3686:32;;3768:9;3780:1;3768:13;;3763:297;3787:7;:14;3783:1;:18;3763:297;;;3835:8;:20;3844:7;3852:1;3844:10;;;;;;;;;;;;;;3835:20;;;;;;;;;;;;;;;;;;;;;;;;;3817:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3950:11;3937:24;;:7;3945:1;3937:10;;;;;;;;;;;;;;:24;;;3919:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4042:7;4050:1;4042:10;;;;;;;;;;;;;;4028:24;;3803:3;;;;;;;3763:297;;;;4171:4;4148:11;:20;4160:7;4148:20;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;1137:42;4206:17;;4228:8;4238:4;;4206:37;;;;;30:3:-1;22:6;14;1:33;57:3;49:6;45:16;35:26;;4206:37:0;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;4182:61:0;;;;;;;;2660:1589;;;;;;;;;;;;;;;:::o;2144:98::-;2188:23;2229:7;2220:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2144:98;:::o;2361:101::-;2408:17;1311:1;2434:22;;2361:101;:::o;4255:384::-;4390:12;4404:11;4552:4;4559;4565:8;4575;4585:4;4527:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;4527:63:0;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;4527:63:0;;;4509:88;;;;;;4502:95;;4616:11;:17;4628:4;4616:17;;;;;;;;;;;;;;;;;;;;;4615:18;4606:27;;4255:384;;;;;;;:::o;6712:168::-;6782:7;6868:4;6815:58;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;6815:58:0;;;6805:69;;;;;;6798:76;;6712:168;;;:::o;5411:1295::-;5511:24;5637:1;5631:2;5611:10;:17;:22;;;;;;:27;5607:73;;5670:1;5656:16;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;5656:16:0;;;;5649:23;;;;5607:73;5806:2;5786:10;:17;:22;;;;;;5772:37;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;5772:37:0;;;;5762:47;;5892:25;5924:9;5940;5956:7;5977:9;5989:1;5977:13;;5972:729;5996:7;:14;5992:1;:18;5972:729;;;6090:2;6087:1;6083:10;6071;6067:27;6046:48;;6138:2;6119:17;6115:26;6109:33;6104:38;;6186:2;6167:17;6163:26;6157:33;6152:38;;6242:2;6223:17;6219:26;6213:33;6210:1;6205:42;6200:47;;6417:66;6412:1;6404:10;;:79;6400:114;;;6496:8;;6400:114;6533:2;6528:1;:7;;;;:18;;;;;6544:2;6539:1;:7;;;;6528:18;6524:53;;;6559:8;;6524:53;6669:24;6679:4;6685:1;6688;6691;6669:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6669:24:0;;;;;;;;6656:7;6664:1;6656:10;;;;;;;;;;;;;:37;;;;;;;;;;;5972:729;6012:3;;;;;;;5972:729;;;;5411:1295;;;;;;;;;:::o
Swarm Source
bzzr://1d99ba96928cc6942c0f8898980a0b7d1744196ab4154aae9ad539b8f288823a
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.