ETH Price: $2,231.77 (+2.34%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Add_multisig_pro...124945882021-05-24 3:21:371378 days ago1621826497IN
0x6eeF7326...766763726
0 ETH0.0064097252.00000145
Add_multisig_pro...124945402021-05-24 3:11:161378 days ago1621825876IN
0x6eeF7326...766763726
0 ETH0.004346450
Add_multisig_pro...124945212021-05-24 3:06:121378 days ago1621825572IN
0x6eeF7326...766763726
0 ETH0.0094948639

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MultiSig

Compiler Version
v0.5.10+commit.5a6ea5b1

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2021-04-27
*/

// File: contracts/MultiSig.sol

pragma solidity >=0.4.21 <0.6.0;
contract MultiSig{

  struct invoke_status{
    uint propose_height;
    bytes32 invoke_hash;
    address ccontract;
    string func_name;
    uint64 invoke_id;
    bool called;
    address[] invoke_signers;
    bool processing;
    bool exists;
  }

  uint public signer_number;
  address[] public signers;
  mapping (bytes32 => invoke_status) public invokes;
  mapping (bytes32 => uint64) public used_invoke_ids;
  mapping(address => uint) public signer_join_height;

  event signers_reformed(address[] old_signers, address[] new_signers);
  event valid_function_sign(string name, uint64 id, uint64 current_signed_number, uint propose_height, bytes32 hash);
  event function_called(string name, uint64 id, uint propose_height, bytes32 hash);

  modifier enough_signers(address[] memory s){
    require(s.length >=3, "the number of signers must be >=3");
    _;
  }
  constructor(address[] memory s) public enough_signers(s){
    signer_number = s.length;
    for(uint i = 0; i < s.length; i++){
      signers.push(s[i]);
      signer_join_height[s[i]] = block.number;
    }
  }

  modifier only_signer{
    require(array_exist(signers, msg.sender), "only a signer can call this");
    _;
  }

  function is_signer(address _addr) public view returns(bool){
    return array_exist(signers, _addr);
  }

  function get_majority_number() private view returns(uint){
    return signer_number/2 + 1;
  }

  function array_exist (address[] memory accounts, address p) private pure returns (bool){
    for (uint i = 0; i< accounts.length;i++){
      if (accounts[i]==p){
        return true;
      }
    }
    return false;
  }

  function is_all_minus_sig(uint number, uint64 id, string memory name, bytes32 hash, address sender) internal returns (bool){
    require(is_signer(sender), "only a signer can call this");

    bytes32 b = keccak256(abi.encodePacked(name));
    require(id <= used_invoke_ids[b] + 1, "you're using a too big id.");

    if(id > used_invoke_ids[b]){
      used_invoke_ids[b] = id;
    }

    if(!invokes[hash].exists){
      invokes[hash].propose_height = block.number;
      invokes[hash].invoke_hash = hash;
      invokes[hash].func_name= name;
      invokes[hash].invoke_id= id;
      invokes[hash].called= false;
      invokes[hash].invoke_signers.push(sender);
      invokes[hash].processing= false;
      invokes[hash].ccontract = msg.sender;
      invokes[hash].exists= true;
      emit valid_function_sign(name, id, 1, block.number, hash);
      return false;
    }

    invoke_status storage invoke = invokes[hash];
    require(!array_exist(invoke.invoke_signers, sender), "you already called this method");

    uint valid_invoke_num = 0;
    uint join_height = signer_join_height[sender];
    for(uint i = 0; i < invoke.invoke_signers.length; i++){
      require(join_height < invoke.propose_height, "this proposal is already exist before you become a signer");
      if(array_exist(signers, invoke.invoke_signers[i])){
        valid_invoke_num ++;
      }
    }
    invoke.invoke_signers.push(sender);
    valid_invoke_num ++;
    emit valid_function_sign(name, id, uint64(valid_invoke_num), invoke.propose_height, hash);
    if(invoke.called) return false;
    if(valid_invoke_num < signer_number-number) return false;
    invoke.processing = true;
    return true;
  }

  mapping (address => bool) enabled_proxies;
  modifier only_multisig_proxy{
    require(enabled_proxies[msg.sender], "only an auth proxy can call this");
    _;
  }

  function add_multisig_proxy(uint64 id, address proxy) public only_signer is_majority_sig(id, "add_multisig_proxy"){
    enabled_proxies[proxy] = true;
  }
  function is_multisig_proxy_enabled(address proxy) public view returns(bool){
    return enabled_proxies[proxy];
  }
  function remove_multisig_proxy(uint64 id, address proxy) public only_signer is_majority_sig(id, "remove_multisig_proxy"){
    enabled_proxies[proxy] = false;
  }

  function update_and_check_reach_majority(uint64 id, string memory name, bytes32 hash, address sender) public only_multisig_proxy returns (bool){
    uint minority = signer_number - get_majority_number();
    if(!is_all_minus_sig(minority, id, name, hash, sender))
      return false;
    set_called(hash);
    return true;
  }


  modifier is_majority_sig(uint64 id, string memory name) {
    bytes32 hash = keccak256(abi.encodePacked(msg.sig, msg.data));
    uint minority = signer_number - get_majority_number();
    if(!is_all_minus_sig(minority, id, name, hash, msg.sender))
      return ;
    set_called(hash);
    _;
  }

  modifier is_all_sig(uint64 id, string memory name) {
    bytes32 hash = keccak256(abi.encodePacked(msg.sig, msg.data));
    if(!is_all_minus_sig(0, id, name, hash, msg.sender)) return ;
    set_called(hash);
    _;
  }

  function set_called(bytes32 hash) internal {
    invoke_status storage invoke = invokes[hash];
    require(invoke.exists, "no such function");
    require(!invoke.called, "already called");
    require(invoke.processing, "cannot call this separately");
    invoke.called = true;
    invoke.processing = false;
    emit function_called(invoke.func_name, invoke.invoke_id, invoke.propose_height, hash);
  }

  function reform_signers(uint64 id, address[] calldata s)
    external
    only_signer
    enough_signers(s)
    is_majority_sig(id, "reform_signers"){
    address[] memory old_signers = signers;
    for(uint i = 0; i < s.length; i++){
      if(array_exist(old_signers, s[i])){
      }else{
        signer_join_height[s[i]] = block.number;
      }
    }
    for(uint i = 0; i < old_signers.length; i++){
      if(array_exist(s, old_signers[i])){
      }else{
        signer_join_height[old_signers[i]] = 0;
      }
    }
    signer_number = s.length;
    signers = s;
    emit signers_reformed(old_signers, signers);
  }

  function get_unused_invoke_id(string memory name) public view returns(uint64){
    return used_invoke_ids[keccak256(abi.encodePacked(name))] + 1;
  }
  function get_signers() public view returns(address[] memory){
    return signers;
  }

  function get_invoke_status(bytes32 hash) public view returns(uint propose_height,
                                                              string memory func_name,
                                                              uint64 invoke_id,
                                                              bool called,
                                                              address[] memory invoke_signers){
    invoke_status storage invoke = invokes[hash];
    propose_height = invoke.propose_height;
    func_name = invoke.func_name;
    invoke_id = invoke.invoke_id;
    called = invoke.called;
    invoke_signers = invoke.invoke_signers;
  }
}

contract MultiSigFactory{
  event NewMultiSig(address addr, address[] signers);

  function createMultiSig(address[] memory _signers) public returns(address){
    MultiSig ms = new MultiSig(_signers);
    emit NewMultiSig(address(ms), _signers);
    return address(ms);
  }
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"signers","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"is_signer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"invokes","outputs":[{"name":"propose_height","type":"uint256"},{"name":"invoke_hash","type":"bytes32"},{"name":"ccontract","type":"address"},{"name":"func_name","type":"string"},{"name":"invoke_id","type":"uint64"},{"name":"called","type":"bool"},{"name":"processing","type":"bool"},{"name":"exists","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"hash","type":"bytes32"}],"name":"get_invoke_status","outputs":[{"name":"propose_height","type":"uint256"},{"name":"func_name","type":"string"},{"name":"invoke_id","type":"uint64"},{"name":"called","type":"bool"},{"name":"invoke_signers","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"get_signers","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"id","type":"uint64"},{"name":"proxy","type":"address"}],"name":"remove_multisig_proxy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"used_invoke_ids","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"proxy","type":"address"}],"name":"is_multisig_proxy_enabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"signer_number","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"name","type":"string"}],"name":"get_unused_invoke_id","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"id","type":"uint64"},{"name":"name","type":"string"},{"name":"hash","type":"bytes32"},{"name":"sender","type":"address"}],"name":"update_and_check_reach_majority","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"id","type":"uint64"},{"name":"s","type":"address[]"}],"name":"reform_signers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"id","type":"uint64"},{"name":"proxy","type":"address"}],"name":"add_multisig_proxy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"signer_join_height","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"s","type":"address[]"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"old_signers","type":"address[]"},{"indexed":false,"name":"new_signers","type":"address[]"}],"name":"signers_reformed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"name","type":"string"},{"indexed":false,"name":"id","type":"uint64"},{"indexed":false,"name":"current_signed_number","type":"uint64"},{"indexed":false,"name":"propose_height","type":"uint256"},{"indexed":false,"name":"hash","type":"bytes32"}],"name":"valid_function_sign","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"name","type":"string"},{"indexed":false,"name":"id","type":"uint64"},{"indexed":false,"name":"propose_height","type":"uint256"},{"indexed":false,"name":"hash","type":"bytes32"}],"name":"function_called","type":"event"}]

60806040523480156200001157600080fd5b5060405162001ef538038062001ef5833981810160405260208110156200003757600080fd5b8101908080516401000000008111156200005057600080fd5b820160208101848111156200006457600080fd5b81518560208202830111640100000000821117156200008257600080fd5b505092919050505080600381511015620000e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018062001ed46021913960400191505060405180910390fd5b815160009081555b8251811015620001865760018382815181106200010957fe5b6020908102919091018101518254600181018455600093845291832090910180546001600160a01b0319166001600160a01b03909216919091179055835143916004918690859081106200015957fe5b6020908102919091018101516001600160a01b0316825281019190915260400160002055600101620000f0565b505050611d3b80620001996000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806395da668a1161008c578063d253eced11610066578063d253eced146104f7578063d40a3569146105bb578063e3e8d6de1461063b578063e62cd26e14610670576100ea565b806395da668a14610411578063b9b873f614610437578063bb7e7f1614610451576100ea565b806341e031d9116100c857806341e031d914610248578063522f6286146103495780635fd6e83d146103a1578063690dfdff146103d8576100ea565b80632079fb9a146100ef57806325d93f40146101285780632918031514610162575b600080fd5b61010c6004803603602081101561010557600080fd5b5035610696565b604080516001600160a01b039092168252519081900360200190f35b61014e6004803603602081101561013e57600080fd5b50356001600160a01b03166106bd565b604080519115158252519081900360200190f35b61017f6004803603602081101561017857600080fd5b5035610729565b6040805189815260208082018a90526001600160a01b038916928201929092526001600160401b038616608082015284151560a082015283151560c082015282151560e08201526101006060820181815288519183019190915287519192909161012084019189019080838360005b838110156102065781810151838201526020016101ee565b50505050905090810190601f1680156102335780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390f35b6102656004803603602081101561025e57600080fd5b5035610811565b6040518086815260200180602001856001600160401b03166001600160401b031681526020018415151515815260200180602001838103835287818151815260200191508051906020019080838360005b838110156102ce5781810151838201526020016102b6565b50505050905090810190601f1680156102fb5780820380516001836020036101000a031916815260200191505b508381038252845181528451602091820191808701910280838360005b83811015610330578181015183820152602001610318565b5050505090500197505050505050505060405180910390f35b61035161093d565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561038d578181015183820152602001610375565b505050509050019250505060405180910390f35b6103d6600480360360408110156103b757600080fd5b5080356001600160401b031690602001356001600160a01b03166109a0565b005b6103f5600480360360208110156103ee57600080fd5b5035610b28565b604080516001600160401b039092168252519081900360200190f35b61014e6004803603602081101561042757600080fd5b50356001600160a01b0316610b43565b61043f610b61565b60408051918252519081900360200190f35b6103f56004803603602081101561046757600080fd5b81019060208101813564010000000081111561048257600080fd5b82018360208201111561049457600080fd5b803590602001918460018302840111640100000000831117156104b657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610b67945050505050565b61014e6004803603608081101561050d57600080fd5b6001600160401b03823516919081019060408101602082013564010000000081111561053857600080fd5b82018360208201111561054a57600080fd5b8035906020019184600183028401116401000000008311171561056c57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050823593505050602001356001600160a01b0316610bfd565b6103d6600480360360408110156105d157600080fd5b6001600160401b0382351691908101906040810160208201356401000000008111156105fc57600080fd5b82018360208201111561060e57600080fd5b8035906020019184602083028401116401000000008311171561063057600080fd5b509092509050610ca3565b6103d66004803603604081101561065157600080fd5b5080356001600160401b031690602001356001600160a01b03166110ec565b61043f6004803603602081101561068657600080fd5b50356001600160a01b0316611271565b600181815481106106a357fe5b6000918252602090912001546001600160a01b0316905081565b6000610723600180548060200260200160405190810160405280929190818152602001828054801561071857602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116106fa575b505050505083611283565b92915050565b60026020818152600092835260409283902080546001808301548386015460038501805489516101009582161595909502600019011697909704601f8101879004870284018701909852878352929690956001600160a01b03909316949192918301828280156107da5780601f106107af576101008083540402835291602001916107da565b820191906000526020600020905b8154815290600101906020018083116107bd57829003601f168201915b505050600484015460069094015492936001600160401b0381169360ff600160401b90920482169350808216925061010090041688565b6000818152600260208181526040808420805460038201805484516001821615610100026000190190911696909604601f8101869004860287018601909452838652909560609590948594879493918301828280156108b15780601f10610886576101008083540402835291602001916108b1565b820191906000526020600020905b81548152906001019060200180831161089457829003601f168201915b50505050600483015460058401805460408051602080840282018101909252828152959a506001600160401b0384169950600160401b90930460ff1697509092509083018282801561092c57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161090e575b505050505091505091939590929450565b6060600180548060200260200160405190810160405280929190818152602001828054801561099557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610977575b505050505090505b90565b610a0460018054806020026020016040519081016040528092919081815260200182805480156109f957602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116109db575b505050505033611283565b610a43576040805162461bcd60e51b815260206004820152601b6024820152600080516020611ce7833981519152604482015290519081900360640190fd5b816040518060400160405280601581526020017472656d6f76655f6d756c74697369675f70726f787960581b815250600080356001600160e01b03191660003660405160200180846001600160e01b0319166001600160e01b03191681526004018383808284378083019250505093505050506040516020818303038152906040528051906020012090506000610ad86112d9565b600054039050610aeb81858585336112f0565b610af6575050610b22565b610aff82611968565b50506001600160a01b0383166000908152600560205260409020805460ff191690555b50505050565b6003602052600090815260409020546001600160401b031681565b6001600160a01b031660009081526005602052604090205460ff1690565b60005481565b600060036000836040516020018082805190602001908083835b60208310610ba05780518252601f199092019160209182019101610b81565b51815160209384036101000a60001901801990921691161790526040805192909401828103601f1901835284528151918101919091208652850195909552929092016000205460016001600160401b039091160195945050505050565b3360009081526005602052604081205460ff16610c61576040805162461bcd60e51b815260206004820181905260248201527f6f6e6c7920616e20617574682070726f78792063616e2063616c6c2074686973604482015290519081900360640190fd5b6000610c6b6112d9565b600054039050610c7e81878787876112f0565b610c8c576000915050610c9b565b610c9584611968565b60019150505b949350505050565b610d0560018054806020026020016040519081016040528092919081815260200182805480156109f9576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116109db57505050505033611283565b610d44576040805162461bcd60e51b815260206004820152601b6024820152600080516020611ce7833981519152604482015290519081900360640190fd5b818180806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250508251600311159150610dba90505760405162461bcd60e51b8152600401808060200182810382526021815260200180611cc66021913960400191505060405180910390fd5b836040518060400160405280600e81526020016d7265666f726d5f7369676e65727360901b815250600080356001600160e01b03191660003660405160200180846001600160e01b0319166001600160e01b03191681526004018383808284378083019250505093505050506040516020818303038152906040528051906020012090506000610e486112d9565b600054039050610e5b81858585336112f0565b610e665750506110e4565b610e6f82611968565b60606001805480602002602001604051908101604052809291908181526020018280548015610ec757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ea9575b50939450600093505050505b87811015610f5857610f00828a8a84818110610eeb57fe5b905060200201356001600160a01b0316611283565b15610f0a57610f50565b43600460008b8b85818110610f1b57fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020819055505b600101610ed3565b5060005b815181101561100757610fb68989808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505085518692508591508110610fa957fe5b6020026020010151611283565b15610fc057610fff565b600060046000848481518110610fd257fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055505b600101610f5c565b50600087905561101960018989611b71565b507ff0e485890d6e70afabeb5f8d0bd74ed147aaf78b4885beca243eda092002373d816001604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561108257818101518382015260200161106a565b5050505090500183810382528481815481526020019150805480156110d057602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116110b2575b505094505050505060405180910390a15050505b505050505050565b61114e60018054806020026020016040519081016040528092919081815260200182805480156109f9576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116109db57505050505033611283565b61118d576040805162461bcd60e51b815260206004820152601b6024820152600080516020611ce7833981519152604482015290519081900360640190fd5b81604051806040016040528060128152602001716164645f6d756c74697369675f70726f787960701b815250600080356001600160e01b03191660003660405160200180846001600160e01b0319166001600160e01b0319168152600401838380828437808301925050509350505050604051602081830303815290604052805190602001209050600061121f6112d9565b60005403905061123281858585336112f0565b61123d575050610b22565b61124682611968565b50506001600160a01b0383166000908152600560205260409020805460ff1916600117905550505050565b60046020526000908152604090205481565b6000805b83518110156112cf57826001600160a01b03168482815181106112a657fe5b60200260200101516001600160a01b031614156112c7576001915050610723565b600101611287565b5060009392505050565b60006002600054816112e757fe5b04600101905090565b60006112fb826106bd565b61133a576040805162461bcd60e51b815260206004820152601b6024820152600080516020611ce7833981519152604482015290519081900360640190fd5b6000846040516020018082805190602001908083835b6020831061136f5780518252601f199092019160209182019101611350565b51815160209384036101000a60001901801990921691161790526040805192909401828103601f19018352845281519181019190912060008181526003909252929020549194505060016001600160401b03918216018116908916111591506114219050576040805162461bcd60e51b815260206004820152601a60248201527f796f75277265207573696e67206120746f6f206269672069642e000000000000604482015290519081900360640190fd5b6000818152600360205260409020546001600160401b03908116908716111561146d576000818152600360205260409020805467ffffffffffffffff19166001600160401b0388161790555b600084815260026020526040902060060154610100900460ff1661160f5760008481526002602090815260409091204381556001810186905586516114ba92600390920191880190611bd4565b50600084815260026020818152604080842060048101805460ff60401b196001600160401b038e1667ffffffffffffffff19909216821716909155600582018054600181810183559188528588200180546001600160a01b038c166001600160a01b0319918216179091558b88526006840180549490970180549091163317905561ffff199092166101001790945581518084019490945290830181905243606084018190526080840189905260a08085528a519085015289517ff285930b0accbbfa30dda3af27ab89c3c4f7d9d5dd9cc7c14da1dccb4307e897958b958d958c939192839260c08401928a01918190849084905b838110156115c75781810151838201526020016115af565b50505050905090810190601f1680156115f45780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a1600091505061195f565b60008481526002602090815260409182902060058101805484518185028101850190955280855291936116839390929083018282801561167857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161165a575b505050505085611283565b156116d5576040805162461bcd60e51b815260206004820152601e60248201527f796f7520616c72656164792063616c6c65642074686973206d6574686f640000604482015290519081900360640190fd5b6001600160a01b038416600090815260046020526040812054815b60058401548110156117d6578354821061173b5760405162461bcd60e51b8152600401808060200182810382526039815260200180611c8d6039913960400191505060405180910390fd5b6117c2600180548060200260200160405190810160405280929190818152602001828054801561179457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611776575b50505050508560050183815481106117a857fe5b6000918252602090912001546001600160a01b0316611283565b156117ce576001909201915b6001016116f0565b50826005018690806001815401808255809150509060018203906000526020600020016000909192909190916101000a8154816001600160a01b0302191690836001600160a01b031602179055505081806001019250507ff285930b0accbbfa30dda3af27ab89c3c4f7d9d5dd9cc7c14da1dccb4307e897888a8486600001548b6040518080602001866001600160401b03166001600160401b03168152602001856001600160401b03166001600160401b03168152602001848152602001838152602001828103825287818151815260200191508051906020019080838360005b838110156118d05781810151838201526020016118b8565b50505050905090810190601f1680156118fd5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a16004830154600160401b900460ff161561192f57600094505050505061195f565b896000540382101561194857600094505050505061195f565b5050600601805460ff191660019081179091559150505b95945050505050565b60008181526002602052604090206006810154610100900460ff166119c7576040805162461bcd60e51b815260206004820152601060248201526f37379039bab1b410333ab731ba34b7b760811b604482015290519081900360640190fd5b6004810154600160401b900460ff1615611a19576040805162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e4818d85b1b195960921b604482015290519081900360640190fd5b600681015460ff16611a72576040805162461bcd60e51b815260206004820152601b60248201527f63616e6e6f742063616c6c20746869732073657061726174656c790000000000604482015290519081900360640190fd5b60048101805460ff60401b1916600160401b179081905560068201805460ff191690558154604080516001600160401b0390931660208401819052908301829052606083018590526080808452600385018054600260001960018316156101000201909116049185018290527f2d35538915bdff5999fb69b45099413de06f9501969ebf47033b4eaa118ae01194909391879190819060a082019087908015611b5c5780601f10611b3157610100808354040283529160200191611b5c565b820191906000526020600020905b815481529060010190602001808311611b3f57829003601f168201915b50509550505050505060405180910390a15050565b828054828255906000526020600020908101928215611bc4579160200282015b82811115611bc45781546001600160a01b0319166001600160a01b03843516178255602090920191600190910190611b91565b50611bd0929150611c4e565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611c1557805160ff1916838001178555611c42565b82800160010185558215611c42579182015b82811115611c42578251825591602001919060010190611c27565b50611bd0929150611c72565b61099d91905b80821115611bd05780546001600160a01b0319168155600101611c54565b61099d91905b80821115611bd05760008155600101611c7856fe746869732070726f706f73616c20697320616c7265616479206578697374206265666f726520796f75206265636f6d652061207369676e6572746865206e756d626572206f66207369676e657273206d757374206265203e3d336f6e6c792061207369676e65722063616e2063616c6c20746869730000000000a265627a7a723058209aca20dc228a63a8233bee6f7c0ff93b2faf1393670fa1fbc21a3a7813c1145064736f6c634300050a0032746865206e756d626572206f66207369676e657273206d757374206265203e3d330000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000500000000000000000000000057955d7aa271dbdde92d67e0ef52d90c6e4089ca0000000000000000000000004aa66237b79d0b9be8f6fe9e416d3975d480ec2000000000000000000000000006790b9e80a921824cbcf0e22df100a72bb832be0000000000000000000000006369159805ceef28a86a0dc4547829324c6dee8b000000000000000000000000e5d4382b7c97c085ede3f12662445f0686a92bc8

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c806395da668a1161008c578063d253eced11610066578063d253eced146104f7578063d40a3569146105bb578063e3e8d6de1461063b578063e62cd26e14610670576100ea565b806395da668a14610411578063b9b873f614610437578063bb7e7f1614610451576100ea565b806341e031d9116100c857806341e031d914610248578063522f6286146103495780635fd6e83d146103a1578063690dfdff146103d8576100ea565b80632079fb9a146100ef57806325d93f40146101285780632918031514610162575b600080fd5b61010c6004803603602081101561010557600080fd5b5035610696565b604080516001600160a01b039092168252519081900360200190f35b61014e6004803603602081101561013e57600080fd5b50356001600160a01b03166106bd565b604080519115158252519081900360200190f35b61017f6004803603602081101561017857600080fd5b5035610729565b6040805189815260208082018a90526001600160a01b038916928201929092526001600160401b038616608082015284151560a082015283151560c082015282151560e08201526101006060820181815288519183019190915287519192909161012084019189019080838360005b838110156102065781810151838201526020016101ee565b50505050905090810190601f1680156102335780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390f35b6102656004803603602081101561025e57600080fd5b5035610811565b6040518086815260200180602001856001600160401b03166001600160401b031681526020018415151515815260200180602001838103835287818151815260200191508051906020019080838360005b838110156102ce5781810151838201526020016102b6565b50505050905090810190601f1680156102fb5780820380516001836020036101000a031916815260200191505b508381038252845181528451602091820191808701910280838360005b83811015610330578181015183820152602001610318565b5050505090500197505050505050505060405180910390f35b61035161093d565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561038d578181015183820152602001610375565b505050509050019250505060405180910390f35b6103d6600480360360408110156103b757600080fd5b5080356001600160401b031690602001356001600160a01b03166109a0565b005b6103f5600480360360208110156103ee57600080fd5b5035610b28565b604080516001600160401b039092168252519081900360200190f35b61014e6004803603602081101561042757600080fd5b50356001600160a01b0316610b43565b61043f610b61565b60408051918252519081900360200190f35b6103f56004803603602081101561046757600080fd5b81019060208101813564010000000081111561048257600080fd5b82018360208201111561049457600080fd5b803590602001918460018302840111640100000000831117156104b657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610b67945050505050565b61014e6004803603608081101561050d57600080fd5b6001600160401b03823516919081019060408101602082013564010000000081111561053857600080fd5b82018360208201111561054a57600080fd5b8035906020019184600183028401116401000000008311171561056c57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050823593505050602001356001600160a01b0316610bfd565b6103d6600480360360408110156105d157600080fd5b6001600160401b0382351691908101906040810160208201356401000000008111156105fc57600080fd5b82018360208201111561060e57600080fd5b8035906020019184602083028401116401000000008311171561063057600080fd5b509092509050610ca3565b6103d66004803603604081101561065157600080fd5b5080356001600160401b031690602001356001600160a01b03166110ec565b61043f6004803603602081101561068657600080fd5b50356001600160a01b0316611271565b600181815481106106a357fe5b6000918252602090912001546001600160a01b0316905081565b6000610723600180548060200260200160405190810160405280929190818152602001828054801561071857602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116106fa575b505050505083611283565b92915050565b60026020818152600092835260409283902080546001808301548386015460038501805489516101009582161595909502600019011697909704601f8101879004870284018701909852878352929690956001600160a01b03909316949192918301828280156107da5780601f106107af576101008083540402835291602001916107da565b820191906000526020600020905b8154815290600101906020018083116107bd57829003601f168201915b505050600484015460069094015492936001600160401b0381169360ff600160401b90920482169350808216925061010090041688565b6000818152600260208181526040808420805460038201805484516001821615610100026000190190911696909604601f8101869004860287018601909452838652909560609590948594879493918301828280156108b15780601f10610886576101008083540402835291602001916108b1565b820191906000526020600020905b81548152906001019060200180831161089457829003601f168201915b50505050600483015460058401805460408051602080840282018101909252828152959a506001600160401b0384169950600160401b90930460ff1697509092509083018282801561092c57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161090e575b505050505091505091939590929450565b6060600180548060200260200160405190810160405280929190818152602001828054801561099557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610977575b505050505090505b90565b610a0460018054806020026020016040519081016040528092919081815260200182805480156109f957602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116109db575b505050505033611283565b610a43576040805162461bcd60e51b815260206004820152601b6024820152600080516020611ce7833981519152604482015290519081900360640190fd5b816040518060400160405280601581526020017472656d6f76655f6d756c74697369675f70726f787960581b815250600080356001600160e01b03191660003660405160200180846001600160e01b0319166001600160e01b03191681526004018383808284378083019250505093505050506040516020818303038152906040528051906020012090506000610ad86112d9565b600054039050610aeb81858585336112f0565b610af6575050610b22565b610aff82611968565b50506001600160a01b0383166000908152600560205260409020805460ff191690555b50505050565b6003602052600090815260409020546001600160401b031681565b6001600160a01b031660009081526005602052604090205460ff1690565b60005481565b600060036000836040516020018082805190602001908083835b60208310610ba05780518252601f199092019160209182019101610b81565b51815160209384036101000a60001901801990921691161790526040805192909401828103601f1901835284528151918101919091208652850195909552929092016000205460016001600160401b039091160195945050505050565b3360009081526005602052604081205460ff16610c61576040805162461bcd60e51b815260206004820181905260248201527f6f6e6c7920616e20617574682070726f78792063616e2063616c6c2074686973604482015290519081900360640190fd5b6000610c6b6112d9565b600054039050610c7e81878787876112f0565b610c8c576000915050610c9b565b610c9584611968565b60019150505b949350505050565b610d0560018054806020026020016040519081016040528092919081815260200182805480156109f9576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116109db57505050505033611283565b610d44576040805162461bcd60e51b815260206004820152601b6024820152600080516020611ce7833981519152604482015290519081900360640190fd5b818180806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250508251600311159150610dba90505760405162461bcd60e51b8152600401808060200182810382526021815260200180611cc66021913960400191505060405180910390fd5b836040518060400160405280600e81526020016d7265666f726d5f7369676e65727360901b815250600080356001600160e01b03191660003660405160200180846001600160e01b0319166001600160e01b03191681526004018383808284378083019250505093505050506040516020818303038152906040528051906020012090506000610e486112d9565b600054039050610e5b81858585336112f0565b610e665750506110e4565b610e6f82611968565b60606001805480602002602001604051908101604052809291908181526020018280548015610ec757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ea9575b50939450600093505050505b87811015610f5857610f00828a8a84818110610eeb57fe5b905060200201356001600160a01b0316611283565b15610f0a57610f50565b43600460008b8b85818110610f1b57fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020819055505b600101610ed3565b5060005b815181101561100757610fb68989808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505085518692508591508110610fa957fe5b6020026020010151611283565b15610fc057610fff565b600060046000848481518110610fd257fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055505b600101610f5c565b50600087905561101960018989611b71565b507ff0e485890d6e70afabeb5f8d0bd74ed147aaf78b4885beca243eda092002373d816001604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561108257818101518382015260200161106a565b5050505090500183810382528481815481526020019150805480156110d057602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116110b2575b505094505050505060405180910390a15050505b505050505050565b61114e60018054806020026020016040519081016040528092919081815260200182805480156109f9576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116109db57505050505033611283565b61118d576040805162461bcd60e51b815260206004820152601b6024820152600080516020611ce7833981519152604482015290519081900360640190fd5b81604051806040016040528060128152602001716164645f6d756c74697369675f70726f787960701b815250600080356001600160e01b03191660003660405160200180846001600160e01b0319166001600160e01b0319168152600401838380828437808301925050509350505050604051602081830303815290604052805190602001209050600061121f6112d9565b60005403905061123281858585336112f0565b61123d575050610b22565b61124682611968565b50506001600160a01b0383166000908152600560205260409020805460ff1916600117905550505050565b60046020526000908152604090205481565b6000805b83518110156112cf57826001600160a01b03168482815181106112a657fe5b60200260200101516001600160a01b031614156112c7576001915050610723565b600101611287565b5060009392505050565b60006002600054816112e757fe5b04600101905090565b60006112fb826106bd565b61133a576040805162461bcd60e51b815260206004820152601b6024820152600080516020611ce7833981519152604482015290519081900360640190fd5b6000846040516020018082805190602001908083835b6020831061136f5780518252601f199092019160209182019101611350565b51815160209384036101000a60001901801990921691161790526040805192909401828103601f19018352845281519181019190912060008181526003909252929020549194505060016001600160401b03918216018116908916111591506114219050576040805162461bcd60e51b815260206004820152601a60248201527f796f75277265207573696e67206120746f6f206269672069642e000000000000604482015290519081900360640190fd5b6000818152600360205260409020546001600160401b03908116908716111561146d576000818152600360205260409020805467ffffffffffffffff19166001600160401b0388161790555b600084815260026020526040902060060154610100900460ff1661160f5760008481526002602090815260409091204381556001810186905586516114ba92600390920191880190611bd4565b50600084815260026020818152604080842060048101805460ff60401b196001600160401b038e1667ffffffffffffffff19909216821716909155600582018054600181810183559188528588200180546001600160a01b038c166001600160a01b0319918216179091558b88526006840180549490970180549091163317905561ffff199092166101001790945581518084019490945290830181905243606084018190526080840189905260a08085528a519085015289517ff285930b0accbbfa30dda3af27ab89c3c4f7d9d5dd9cc7c14da1dccb4307e897958b958d958c939192839260c08401928a01918190849084905b838110156115c75781810151838201526020016115af565b50505050905090810190601f1680156115f45780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a1600091505061195f565b60008481526002602090815260409182902060058101805484518185028101850190955280855291936116839390929083018282801561167857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161165a575b505050505085611283565b156116d5576040805162461bcd60e51b815260206004820152601e60248201527f796f7520616c72656164792063616c6c65642074686973206d6574686f640000604482015290519081900360640190fd5b6001600160a01b038416600090815260046020526040812054815b60058401548110156117d6578354821061173b5760405162461bcd60e51b8152600401808060200182810382526039815260200180611c8d6039913960400191505060405180910390fd5b6117c2600180548060200260200160405190810160405280929190818152602001828054801561179457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611776575b50505050508560050183815481106117a857fe5b6000918252602090912001546001600160a01b0316611283565b156117ce576001909201915b6001016116f0565b50826005018690806001815401808255809150509060018203906000526020600020016000909192909190916101000a8154816001600160a01b0302191690836001600160a01b031602179055505081806001019250507ff285930b0accbbfa30dda3af27ab89c3c4f7d9d5dd9cc7c14da1dccb4307e897888a8486600001548b6040518080602001866001600160401b03166001600160401b03168152602001856001600160401b03166001600160401b03168152602001848152602001838152602001828103825287818151815260200191508051906020019080838360005b838110156118d05781810151838201526020016118b8565b50505050905090810190601f1680156118fd5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a16004830154600160401b900460ff161561192f57600094505050505061195f565b896000540382101561194857600094505050505061195f565b5050600601805460ff191660019081179091559150505b95945050505050565b60008181526002602052604090206006810154610100900460ff166119c7576040805162461bcd60e51b815260206004820152601060248201526f37379039bab1b410333ab731ba34b7b760811b604482015290519081900360640190fd5b6004810154600160401b900460ff1615611a19576040805162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e4818d85b1b195960921b604482015290519081900360640190fd5b600681015460ff16611a72576040805162461bcd60e51b815260206004820152601b60248201527f63616e6e6f742063616c6c20746869732073657061726174656c790000000000604482015290519081900360640190fd5b60048101805460ff60401b1916600160401b179081905560068201805460ff191690558154604080516001600160401b0390931660208401819052908301829052606083018590526080808452600385018054600260001960018316156101000201909116049185018290527f2d35538915bdff5999fb69b45099413de06f9501969ebf47033b4eaa118ae01194909391879190819060a082019087908015611b5c5780601f10611b3157610100808354040283529160200191611b5c565b820191906000526020600020905b815481529060010190602001808311611b3f57829003601f168201915b50509550505050505060405180910390a15050565b828054828255906000526020600020908101928215611bc4579160200282015b82811115611bc45781546001600160a01b0319166001600160a01b03843516178255602090920191600190910190611b91565b50611bd0929150611c4e565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611c1557805160ff1916838001178555611c42565b82800160010185558215611c42579182015b82811115611c42578251825591602001919060010190611c27565b50611bd0929150611c72565b61099d91905b80821115611bd05780546001600160a01b0319168155600101611c54565b61099d91905b80821115611bd05760008155600101611c7856fe746869732070726f706f73616c20697320616c7265616479206578697374206265666f726520796f75206265636f6d652061207369676e6572746865206e756d626572206f66207369676e657273206d757374206265203e3d336f6e6c792061207369676e65722063616e2063616c6c20746869730000000000a265627a7a723058209aca20dc228a63a8233bee6f7c0ff93b2faf1393670fa1fbc21a3a7813c1145064736f6c634300050a0032

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

0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000500000000000000000000000057955d7aa271dbdde92d67e0ef52d90c6e4089ca0000000000000000000000004aa66237b79d0b9be8f6fe9e416d3975d480ec2000000000000000000000000006790b9e80a921824cbcf0e22df100a72bb832be0000000000000000000000006369159805ceef28a86a0dc4547829324c6dee8b000000000000000000000000e5d4382b7c97c085ede3f12662445f0686a92bc8

-----Decoded View---------------
Arg [0] : s (address[]): 0x57955d7AA271DbDDE92D67e0EF52D90c6E4089cA,0x4Aa66237b79d0B9bE8F6FE9e416d3975D480ec20,0x06790B9e80A921824CBCF0E22DF100A72bB832Be,0x6369159805ceef28A86A0Dc4547829324c6DEE8B,0xe5d4382b7c97C085EdE3F12662445f0686a92bc8

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000020
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [2] : 00000000000000000000000057955d7aa271dbdde92d67e0ef52d90c6e4089ca
Arg [3] : 0000000000000000000000004aa66237b79d0b9be8f6fe9e416d3975d480ec20
Arg [4] : 00000000000000000000000006790b9e80a921824cbcf0e22df100a72bb832be
Arg [5] : 0000000000000000000000006369159805ceef28a86a0dc4547829324c6dee8b
Arg [6] : 000000000000000000000000e5d4382b7c97c085ede3f12662445f0686a92bc8


Deployed Bytecode Sourcemap

69:6893:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;69:6893:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;366:24;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;366:24:0;;:::i;:::-;;;;-1:-1:-1;;;;;366:24:0;;;;;;;;;;;;;;1307:106;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1307:106:0;-1:-1:-1;;;;;1307:106:0;;:::i;:::-;;;;;;;;;;;;;;;;;;395:49;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;395:49:0;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;395:49:0;;;;;;;;;-1:-1:-1;;;;;395:49:0;;;;;;;;;-1:-1:-1;395:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;395:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6291:668;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6291:668:0;;:::i;:::-;;;;;;;-1:-1:-1;;;;;6291:668:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6291:668:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6291:668:0;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6291:668:0;;;;;;;;;;;;;;;;;;;;;;6198:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6198:87:0;;;;;;;;;;;;;;;;;3933:163;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3933:163:0;;-1:-1:-1;;;;;3933:163:0;;;;;-1:-1:-1;;;;;3933:163:0;;:::i;:::-;;449:50;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;449:50:0;;:::i;:::-;;;;-1:-1:-1;;;;;449:50:0;;;;;;;;;;;;;;3812:117;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3812:117:0;-1:-1:-1;;;;;3812:117:0;;:::i;336:25::-;;;:::i;:::-;;;;;;;;;;;;;;;;6043:151;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6043:151:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;6043:151:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6043:151: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;6043:151:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6043:151:0;;-1:-1:-1;6043:151:0;;-1:-1:-1;;;;;6043:151:0:i;4102:332::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;4102:332:0;;-1:-1:-1;;;;;4102:332:0;;;;;;-1:-1:-1;4102:332:0;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;4102:332:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4102:332: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;4102:332:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;4102:332:0;;-1:-1:-1;;4102:332:0;;;-1:-1:-1;;;4102:332:0;;;-1:-1:-1;;;;;4102:332:0;;:::i;5397:640::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5397:640:0;;-1:-1:-1;;;;;5397:640:0;;;;;;-1:-1:-1;5397:640:0;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;5397:640:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5397:640:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;5397:640:0;;-1:-1:-1;5397:640:0;-1:-1:-1;5397:640:0;:::i;3652:156::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3652:156:0;;-1:-1:-1;;;;;3652:156:0;;;;;-1:-1:-1;;;;;3652:156:0;;:::i;504:50::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;504:50:0;-1:-1:-1;;;;;504:50:0;;:::i;366:24::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;366:24:0;;-1:-1:-1;366:24:0;:::o;1307:106::-;1361:4;1380:27;1392:7;1380:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1380:27:0;;;-1:-1:-1;1380:27:0;;;;;;;;;;;;;;;;;1401:5;1380:11;:27::i;:::-;1373:34;1307:106;-1:-1:-1;;1307:106:0:o;395:49::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;395:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;395:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;395:49:0;;;;;;;;;;;-1:-1:-1;;;;;395:49:0;;;-1:-1:-1;;;395:49:0;;;;;;;;-1:-1:-1;395:49:0;;;;;;;;;:::o;6291:668::-;6352:19;6751:13;;;:7;:13;;;;;;;;6788:21;;6828:16;;;6816:28;;;;;;;;;;-1:-1:-1;;6816:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;6788:21;;6436:23;;6352:19;;;;6436:23;;6751:13;6828:16;6816:28;;6828:16;6816:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;6863:16:0;;;;6932:21;;;6915:38;;;;;;;;;;;;;;;;;;;6816:28;;-1:-1:-1;;;;;;6863:16:0;;;-1:-1:-1;;;;6895:13:0;;;;;;-1:-1:-1;6932:21:0;;-1:-1:-1;6915:38:0;;;6932:21;6915:38;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6915:38:0;;;-1:-1:-1;6915:38:0;;;;;;;;;;;;;;;;;;;6291:668;;;;;;;;:::o;6198:87::-;6241:16;6272:7;6265:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6265:14:0;;;-1:-1:-1;6265:14:0;;;;;;;;;;;;;;;;;;;6198:87;;:::o;3933:163::-;1223:32;1235:7;1223:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1223:32:0;;;-1:-1:-1;1223:32:0;;;;;;;;;;;;;;;;;1244:10;1223:11;:32::i;:::-;1215:72;;;;;-1:-1:-1;;;1215:72:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1215:72:0;;;;;;;;;;;;;;;4442:302;;;;;;;;;;;-1:-1:-1;;;4442:302:0;;;;;;;;4530:35;;-1:-1:-1;4547:7:0;;-1:-1:-1;;;;;;4547:7:0;4530:35;;;;;;4025:2;;-1:-1:-1;;;;4556:8:0;;4530:35;;-1:-1:-1;4556:8:0;;-1:-1:-1;4530:35:0;1:33:-1;57:3;49:6;45:16;35:26;;4530:35:0;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;4530:35:0;;;4520:46;;;;;;4505:61;;4573:13;4605:21;:19;:21::i;:::-;4589:13;;:37;4573:53;;4637:54;4654:8;4664:2;4668:4;4674;4680:10;4637:16;:54::i;:::-;4633:75;;4700:8;;;;4633:75;4714:16;4725:4;4714:10;:16::i;:::-;-1:-1:-1;;;;;;;4060:22:0;;4085:5;4060:22;;;:15;:22;;;;;:30;;-1:-1:-1;;4060:30:0;;;1294:1;;;3933:163;;:::o;449:50::-;;;;;;;;;;;;-1:-1:-1;;;;;449:50:0;;:::o;3812:117::-;-1:-1:-1;;;;;3901:22:0;3882:4;3901:22;;;:15;:22;;;;;;;;;3812:117::o;336:25::-;;;;:::o;6043:151::-;6113:6;6134:15;:50;6177:4;6160:22;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;6160:22:0;;;;;;;26:21:-1;;;-1:-1;;22:32;6:49;;6160:22:0;;6150:33;;;;;;;;;6134:50;;;;;;;;;;;;-1:-1:-1;6134:50:0;;274:1:-1;-1:-1;;;;;6134:50:0;;;:54;;;-1:-1:-1;;;;;6043:151:0:o;4102:332::-;3584:10;4240:4;3568:27;;;:15;:27;;;;;;;;3560:72;;;;;-1:-1:-1;;;3560:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4252:13;4284:21;:19;:21::i;:::-;4268:13;;:37;4252:53;;4316:50;4333:8;4343:2;4347:4;4353;4359:6;4316:16;:50::i;:::-;4312:75;;4382:5;4375:12;;;;;4312:75;4394:16;4405:4;4394:10;:16::i;:::-;4424:4;4417:11;;;3639:1;4102:332;;;;;;:::o;5397:640::-;1223:32;1235:7;1223:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1223:32:0;;;;;;;;;-1:-1:-1;1223:32:0;;;;;;;;;;;;;;;1244:10;1223:11;:32::i;:::-;1215:72;;;;;-1:-1:-1;;;1215:72:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1215:72:0;;;;;;;;;;;;;;;5505:1;;840:122;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;;898:8:0;;909:1;-1:-1:-1;898:12:0;;-1:-1:-1;890:58:0;;-1:-1:-1;890:58:0;;;-1:-1:-1;;;890:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4442:302;;;;;;;;;;;-1:-1:-1;;;4442:302:0;;;;;;;;4530:35;;-1:-1:-1;4547:7:0;;-1:-1:-1;;;;;;4547:7:0;4530:35;;;;;;5529:2;;-1:-1:-1;;;;4556:8:0;;4530:35;;-1:-1:-1;4556:8:0;;-1:-1:-1;4530:35:0;1:33:-1;57:3;49:6;45:16;35:26;;4530:35:0;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;4530:35:0;;;4520:46;;;;;;4505:61;;4573:13;4605:21;:19;:21::i;:::-;4589:13;;:37;4573:53;;4637:54;4654:8;4664:2;4668:4;4674;4680:10;4637:16;:54::i;:::-;4633:75;;4700:8;;;;4633:75;4714:16;4725:4;4714:10;:16::i;:::-;5557:28;5588:7;5557:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5557:38:0;;;-1:-1:-1;5557:38:0;;;;;;;;;;;;-1:-1:-1;5557:38:0;;-1:-1:-1;5606:6:0;;-1:-1:-1;;;;5602:158:0;5618:12;;;5602:158;;;5648:30;5660:11;5673:1;;5675;5673:4;;;;;;;;;;;;;-1:-1:-1;;;;;5673:4:0;5648:11;:30::i;:::-;5645:108;;;;;;5731:12;5704:18;:24;5723:1;;5725;5723:4;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5723:4:0;5704:24;;-1:-1:-1;5704:24:0;;;;;;;;-1:-1:-1;5704:24:0;:39;5645:108;5632:3;;5602:158;;;-1:-1:-1;5770:6:0;5766:167;5786:11;:18;5782:1;:22;5766:167;;;5822:30;5834:1;;5822:30;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;;5837:14:0;;:11;;-1:-1:-1;5849:1:0;;-1:-1:-1;5837:14:0;;;;;;;;;;;;5822:11;:30::i;:::-;5819:107;;;;;;5915:1;5878:18;:34;5897:11;5909:1;5897:14;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5878:34:0;;;;;;;;;;;-1:-1:-1;5878:34:0;:38;5819:107;5806:3;;5766:167;;;-1:-1:-1;5939:13:0;:24;;;5970:11;:7;5955:1;;5970:11;:::i;:::-;;5993:38;6010:11;6023:7;5993:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;5993:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5993:38:0;;;-1:-1:-1;5993:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;4737:1;955;;;;;1294;5397:640;;;:::o;3652:156::-;1223:32;1235:7;1223:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1223:32:0;;;;;;;;;-1:-1:-1;1223:32:0;;;;;;;;;;;;;;;1244:10;1223:11;:32::i;:::-;1215:72;;;;;-1:-1:-1;;;1215:72:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1215:72:0;;;;;;;;;;;;;;;4442:302;;;;;;;;;;;-1:-1:-1;;;4442:302:0;;;;;;;;4530:35;;-1:-1:-1;4547:7:0;;-1:-1:-1;;;;;;4547:7:0;4530:35;;;;;;3741:2;;-1:-1:-1;;;;4556:8:0;;4530:35;;-1:-1:-1;4556:8:0;;-1:-1:-1;4530:35:0;1:33:-1;57:3;49:6;45:16;35:26;;4530:35:0;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;4530:35:0;;;4520:46;;;;;;4505:61;;4573:13;4605:21;:19;:21::i;:::-;4589:13;;:37;4573:53;;4637:54;4654:8;4664:2;4668:4;4674;4680:10;4637:16;:54::i;:::-;4633:75;;4700:8;;;;4633:75;4714:16;4725:4;4714:10;:16::i;:::-;-1:-1:-1;;;;;;;;;3773:22:0;;;;;:15;:22;;;;;:29;;-1:-1:-1;;3773:29:0;-1:-1:-1;3773:29:0;;;-1:-1:-1;3652:156:0:o;504:50::-;;;;;;;;;;;;;:::o;1521:225::-;1603:4;;1615:107;1635:8;:15;1632:1;:18;1615:107;;;1668:11;;-1:-1:-1;;;;;1668:14:0;;;:8;;1677:1;;1668:11;;;;;;;;;;;;-1:-1:-1;;;;;1668:14:0;;1664:51;;;1701:4;1694:11;;;;;1664:51;1651:3;;1615:107;;;-1:-1:-1;1735:5:0;;1521:225;-1:-1:-1;;;1521:225:0:o;1419:96::-;1471:4;1504:1;1490:13;;:15;;;;;;1508:1;1490:19;1483:26;;1419:96;:::o;1752:1721::-;1870:4;1890:17;1900:6;1890:9;:17::i;:::-;1882:57;;;;;-1:-1:-1;;;1882:57:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1882:57:0;;;;;;;;;;;;;;;1948:9;1987:4;1970:22;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1970:22:0;;;;;;;26:21:-1;;;-1:-1;;22:32;6:49;;1970:22:0;;1960:33;;;;;;;;;-1:-1:-1;2014:18:0;;;:15;:18;;;;;;;1960:33;;-1:-1:-1;;274:1;-1:-1;;;;;2014:18:0;;;:22;2008:28;;;;;;;;-1:-1:-1;2000:67:0;;-1:-1:-1;2000:67:0;;;;-1:-1:-1;;;2000:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;2084:18;;;;:15;:18;;;;;;-1:-1:-1;;;;;2084:18:0;;;2079:23;;;;2076:67;;;2112:18;;;;:15;:18;;;;;:23;;-1:-1:-1;;2112:23:0;-1:-1:-1;;;;;2112:23:0;;;;;2076:67;2155:13;;;;:7;:13;;;;;:20;;;;;;;;2151:493;;2185:13;;;;:7;:13;;;;;;;;2216:12;2185:43;;2237:25;;;:32;;;2278:29;;;;:23;;;;;:29;;;;:::i;:::-;-1:-1:-1;2316:13:0;;;;:7;:13;;;;;;;;:23;;;:27;;-1:-1:-1;;;;;;;;;2316:27:0;;-1:-1:-1;;2316:27:0;;;;;2352;;;;2388:28;;;27:10:-1;;-1:-1;23:18;;;45:23;;2388:41:0;;;;;;;;;-1:-1:-1;;;;;2388:41:0;;-1:-1:-1;;;;;;2388:41:0;;;;;;;2438:13;;;:24;;;:31;;2478:23;;;;:36;;;;;2504:10;2478:36;;;-1:-1:-1;;2523:26:0;;;2316:27;2523:26;;;;2563:52;;;;;;;;;;;;;;;2596:12;2563:52;;;;;;;;;;;;-1:-1:-1;2563:52:0;;;;;;;;;;;;;;;2316:27;;:13;;2563:52;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2563:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2631:5;2624:12;;;;;2151:493;2652:28;2683:13;;;:7;:13;;;;;;;;;2724:21;;;2712:42;;;;;;;;;;;;;;;;;2683:13;;2712:42;;;;;;;2724:21;2712:42;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2712:42:0;;;-1:-1:-1;2712:42:0;;;;;;;;;;;;;;;;;2747:6;2712:11;:42::i;:::-;2711:43;2703:86;;;;;-1:-1:-1;;;2703:86:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2849:26:0;;2798:21;2849:26;;;:18;:26;;;;;;2798:21;2882:274;2902:21;;;:28;2898:32;;2882:274;;;2967:21;;2953:35;;2945:105;;;;-1:-1:-1;;;2945:105:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3062:46;3074:7;3062:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3062:46:0;;;-1:-1:-1;3062:46:0;;;;;;;;;;;;;;;;;3083:6;:21;;3105:1;3083:24;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3083:24:0;3062:11;:46::i;:::-;3059:90;;;3120:19;;;;;3059:90;2932:3;;2882:274;;;;3162:6;:21;;3189:6;3162:34;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;3162:34:0;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3162:34:0;;;;;-1:-1:-1;;;;;3162:34:0;;;;;;;3203:19;;;;;;;3234:84;3254:4;3260:2;3271:16;3290:6;:21;;;3313:4;3234:84;;;;;;;-1:-1:-1;;;;;3234:84:0;-1:-1:-1;;;;;3234:84:0;;;;;;-1:-1:-1;;;;;3234:84:0;-1:-1:-1;;;;;3234:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3234:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3328:13;;;;-1:-1:-1;;;3328:13:0;;;;3325:30;;;3350:5;3343:12;;;;;;;;3325:30;3398:6;3384:13;;:20;3365:16;:39;3362:56;;;3413:5;3406:12;;;;;;;;3362:56;-1:-1:-1;;3425:17:0;;:24;;-1:-1:-1;;3425:24:0;3445:4;3425:24;;;;;;3445:4;-1:-1:-1;;1752:1721:0;;;;;;;;:::o;4979:412::-;5029:28;5060:13;;;:7;:13;;;;;5088;;;;;;;;;5080:42;;;;;-1:-1:-1;;;5080:42:0;;;;;;;;;;;;-1:-1:-1;;;5080:42:0;;;;;;;;;;;;;;;5138:13;;;;-1:-1:-1;;;5138:13:0;;;;5137:14;5129:41;;;;;-1:-1:-1;;;5129:41:0;;;;;;;;;;;;-1:-1:-1;;;5129:41:0;;;;;;;;;;;;;;;5185:17;;;;;;5177:57;;;;;-1:-1:-1;;;5177:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;5241:13;;;:20;;-1:-1:-1;;;;5241:20:0;-1:-1:-1;;;5241:20:0;;;;;5268:17;;;:25;;-1:-1:-1;;5268:25:0;;;5357:21;;-1:-1:-1;5305:80:0;;-1:-1:-1;;;;;5339:16:0;;;5305:80;;;;;;;;;;;;;;;;;;;;;;5321:16;;;5305:80;;;-1:-1:-1;;;5305:80:0;;;5241:20;5305:80;;;;;;;;;;;;;;5321:16;;5357:21;5305:80;;;;;;;;;5321:16;;5305:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4979:412;;:::o;69:6893::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;69:6893:0;-1:-1:-1;;;;;69:6893:0;;;;;;;;;;;-1:-1:-1;69:6893:0;;;;;;;-1:-1:-1;69:6893:0;;;-1:-1:-1;69:6893:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;69:6893:0;;;-1:-1:-1;69:6893:0;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;69:6893:0;;;-1:-1:-1;69:6893:0;;;;;;;;;;;;;;;;;;;;

Swarm Source

bzzr://9aca20dc228a63a8233bee6f7c0ff93b2faf1393670fa1fbc21a3a7813c11450

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.