ETH Price: $2,827.79 (+3.00%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Execute133357982021-10-01 21:13:401223 days ago1633122820IN
0x004da98E...091F94B15
0 ETH0.01264044126
Execute133357612021-10-01 21:02:051223 days ago1633122125IN
0x004da98E...091F94B15
0 ETH0.01127331112.35
Execute133357552021-10-01 21:00:391223 days ago1633122039IN
0x004da98E...091F94B15
0 ETH0.0095875895.55
Execute133357372021-10-01 20:57:161223 days ago1633121836IN
0x004da98E...091F94B15
0 ETH0.01221909121.8
Execute133357082021-10-01 20:50:261223 days ago1633121426IN
0x004da98E...091F94B15
0 ETH0.0081115980.85
Execute133356842021-10-01 20:46:061223 days ago1633121166IN
0x004da98E...091F94B15
0 ETH0.01063776106.05
Execute133356732021-10-01 20:43:441223 days ago1633121024IN
0x004da98E...091F94B15
0 ETH0.01190545118.65
Execute133356592021-10-01 20:41:091223 days ago1633120869IN
0x004da98E...091F94B15
0 ETH0.01600931159.6
Execute133356242021-10-01 20:32:051223 days ago1633120325IN
0x004da98E...091F94B15
0 ETH0.0137931137.55
Execute133356122021-10-01 20:29:331223 days ago1633120173IN
0x004da98E...091F94B15
0 ETH0.01042712103.95
Execute133355312021-10-01 20:09:501223 days ago1633118990IN
0x004da98E...091F94B15
0 ETH0.009266792.4
Execute133301542021-10-01 0:16:101224 days ago1633047370IN
0x004da98E...091F94B15
0 ETH0.01326982132.3
Execute133301212021-10-01 0:07:131224 days ago1633046833IN
0x004da98E...091F94B15
0 ETH0.01769803176.4
Execute133301132021-10-01 0:04:411224 days ago1633046681IN
0x004da98E...091F94B15
0 ETH0.01822112181.65
Execute133300972021-10-01 0:01:201224 days ago1633046480IN
0x004da98E...091F94B15
0 ETH0.01759128175.35
Execute133300742021-09-30 23:55:501224 days ago1633046150IN
0x004da98E...091F94B15
0 ETH0.05520101550.2
Execute133299662021-09-30 23:29:101224 days ago1633044550IN
0x004da98E...091F94B15
0 ETH0.0094810994.5
Execute133299482021-09-30 23:23:431224 days ago1633044223IN
0x004da98E...091F94B15
0 ETH0.00856333102.9
Execute133299362021-09-30 23:20:441224 days ago1633044044IN
0x004da98E...091F94B15
0 ETH0.01063437106.05
Execute133299052021-09-30 23:12:151224 days ago1633043535IN
0x004da98E...091F94B15
0 ETH0.0094822294.5
Execute133298962021-09-30 23:08:471224 days ago1633043327IN
0x004da98E...091F94B15
0 ETH0.0066338566.15
Execute133298862021-09-30 23:07:151224 days ago1633043235IN
0x004da98E...091F94B15
0 ETH0.0073727173.5
Execute133298382021-09-30 22:58:051224 days ago1633042685IN
0x004da98E...091F94B15
0 ETH0.0082162881.9
Execute133298232021-09-30 22:55:001224 days ago1633042500IN
0x004da98E...091F94B15
0 ETH0.01032303102.9
Execute133298152021-09-30 22:53:061224 days ago1633042386IN
0x004da98E...091F94B15
0 ETH0.01137504113.4
View all transactions

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block
From
To
91258612019-12-18 13:48:331876 days ago1576676913  Contract Creation0 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DharmaAccountRecoveryOperatorMultisig

Compiler Version
v0.5.11+commit.c082d0b4

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *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

Contract ABI

[{"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"}]

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

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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