ETH Price: $2,484.73 (+2.81%)

Contract

0xAD358024feCB1B5d58125f5bef06FaBFE657e4C7
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Execute158267592022-10-25 18:04:11712 days ago1666721051IN
0xAD358024...FE657e4C7
0 ETH0.0024994745.74441184
Execute158267592022-10-25 18:04:11712 days ago1666721051IN
0xAD358024...FE657e4C7
0 ETH0.0046603945.74441184
Execute158267592022-10-25 18:04:11712 days ago1666721051IN
0xAD358024...FE657e4C7
0 ETH0.002873845.74441184
Execute158267592022-10-25 18:04:11712 days ago1666721051IN
0xAD358024...FE657e4C7
0 ETH0.0028723345.74441184
Execute158267592022-10-25 18:04:11712 days ago1666721051IN
0xAD358024...FE657e4C7
0 ETH0.0028768645.74441184
Execute158267592022-10-25 18:04:11712 days ago1666721051IN
0xAD358024...FE657e4C7
0 ETH0.0028693145.74441184
Execute158267592022-10-25 18:04:11712 days ago1666721051IN
0xAD358024...FE657e4C7
0 ETH0.0028768645.74441184
Execute158267592022-10-25 18:04:11712 days ago1666721051IN
0xAD358024...FE657e4C7
0 ETH0.0028687645.74441184
Execute158267592022-10-25 18:04:11712 days ago1666721051IN
0xAD358024...FE657e4C7
0 ETH0.0035133767.43009103
Execute158267592022-10-25 18:04:11712 days ago1666721051IN
0xAD358024...FE657e4C7
0 ETH0.00603581115.76160772
Execute157923412022-10-20 22:37:23717 days ago1666305443IN
0xAD358024...FE657e4C7
0 ETH0.0024466131.64030369
Execute157448032022-10-14 7:17:23723 days ago1665731843IN
0xAD358024...FE657e4C7
0 ETH0.001338217.30336792
Execute157447542022-10-14 7:07:11723 days ago1665731231IN
0xAD358024...FE657e4C7
0 ETH0.0011407614.75491576
Execute157336032022-10-12 17:45:11725 days ago1665596711IN
0xAD358024...FE657e4C7
0 ETH0.0031552528.12045127
Execute157335992022-10-12 17:44:23725 days ago1665596663IN
0xAD358024...FE657e4C7
0 ETH0.003171324.52576134
Execute157169362022-10-10 9:54:23727 days ago1665395663IN
0xAD358024...FE657e4C7
0 ETH0.0102533237.46313867
Execute156873862022-10-06 6:50:35731 days ago1665039035IN
0xAD358024...FE657e4C7
0 ETH0.000812086.28038914
Execute156873842022-10-06 6:50:11731 days ago1665039011IN
0xAD358024...FE657e4C7
0 ETH0.000781446.90080234
Execute156660122022-10-03 7:03:35734 days ago1664780615IN
0xAD358024...FE657e4C7
0 ETH0.0013385610.35197239
Execute156304072022-09-28 7:41:11739 days ago1664350871IN
0xAD358024...FE657e4C7
0 ETH0.0017781113.75133985
Execute155943112022-09-23 6:39:35744 days ago1663915175IN
0xAD358024...FE657e4C7
0 ETH0.0023487311.51532302
Execute155801802022-09-21 7:00:23746 days ago1663743623IN
0xAD358024...FE657e4C7
0 ETH0.0017292710.16418785
Execute155452752022-09-16 9:24:59751 days ago1663320299IN
0xAD358024...FE657e4C7
0 ETH0.001499117.34941214
Execute155381092022-09-15 9:08:11752 days ago1663232891IN
0xAD358024...FE657e4C7
0 ETH0.0022385811.97885826
Execute155201392022-09-12 9:23:43755 days ago1662974623IN
0xAD358024...FE657e4C7
0 ETH0.001370247.29194505
View all transactions

Latest 10 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
158267592022-10-25 18:04:11712 days ago1666721051
0xAD358024...FE657e4C7
18.45 ETH
157923412022-10-20 22:37:23717 days ago1666305443
0xAD358024...FE657e4C7
1 ETH
157448032022-10-14 7:17:23723 days ago1665731843
0xAD358024...FE657e4C7
0.15 ETH
157447542022-10-14 7:07:11723 days ago1665731231
0xAD358024...FE657e4C7
0.3 ETH
152375282022-07-29 13:06:54800 days ago1659100014
0xAD358024...FE657e4C7
1 ETH
150297462022-06-26 15:52:36833 days ago1656258756
0xAD358024...FE657e4C7
1 ETH
150180622022-06-24 11:29:16835 days ago1656070156
0xAD358024...FE657e4C7
0.1 ETH
149738972022-06-16 14:49:59843 days ago1655390999
0xAD358024...FE657e4C7
2 ETH
147410822022-05-09 7:18:57881 days ago1652080737
0xAD358024...FE657e4C7
20 ETH
111931452020-11-04 21:26:011432 days ago1604525161  Contract Creation0 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MultiSig

Compiler Version
v0.7.4+commit.3f05b770

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 1 of 5: MultiSig.sol
/**
 * SPDX-License-Identifier: MIT
 */

pragma solidity >=0.7;

import "./Address.sol";
import "./RLPEncode.sol";
import "./Nonce.sol";

contract MultiSig is Nonce {

  mapping (address => uint8) public signers; // The addresses that can co-sign transactions and the number of signatures needed

  uint16 public signerCount;
  bytes public contractId; // most likely unique id of this contract

  event SignerChange(
    address indexed signer,
    uint8 cosignaturesNeeded
  );

  event Transacted(
    address indexed toAddress,  // The address the transaction was sent to
    bytes4 selector, // selected operation
    address[] signers // Addresses of the signers used to initiate the transaction
  );

  constructor (address owner) {
    // We use the gas price to get a unique id into our transactions.
    // Note that 32 bits do not guarantee that no one can generate a contract with the
    // same id, but it practically rules out that someone accidentally creates two
    // two multisig contracts with the same id, and that's all we need to prevent
    // replay-attacks.
    contractId = toBytes(uint32(address(this)));
    _setSigner(owner, 1); // set initial owner
  }

  /**
   * It should be possible to store ether on this address.
   */
  receive() external payable {
  }

  /**
   * Checks if the provided signatures suffice to sign the transaction and if the nonce is correct.
   */
  function checkSignatures(uint128 nonce, address to, uint value, bytes calldata data,
    uint8[] calldata v, bytes32[] calldata r, bytes32[] calldata s) public view returns (address[] memory) {
    bytes32 transactionHash = calculateTransactionHash(nonce, contractId, to, value, data);
    return verifySignatures(transactionHash, v, r, s);
  }

  /**
   * Checks if the execution of a transaction would succeed if it was properly signed.
   */
  function checkExecution(address to, uint value, bytes calldata data) public {
    Address.functionCallWithValue(to, data, value);
    require(false, "Test passed. Reverting.");
  }

  function execute(uint128 nonce, address to, uint value, bytes calldata data, uint8[] calldata v, bytes32[] calldata r, bytes32[] calldata s) public returns (bytes memory) {
    bytes32 transactionHash = calculateTransactionHash(nonce, contractId, to, value, data);
    address[] memory found = verifySignatures(transactionHash, v, r, s);
    bytes memory returndata = Address.functionCallWithValue(to, data, value);
    flagUsed(nonce);
    emit Transacted(to, extractSelector(data), found);
    return returndata;
  }

  function extractSelector(bytes calldata data) private pure returns (bytes4){
    if (data.length < 4){
      return bytes4(0);
    } else {
      return bytes4(data[0]) | (bytes4(data[1]) >> 8) | (bytes4(data[2]) >> 16) | (bytes4(data[3]) >> 24);
    }
  }

  function toBytes(uint number) internal pure returns (bytes memory){
    uint len = 0;
    uint temp = 1;
    while (number >= temp){
      temp = temp << 8;
      len++;
    }
    temp = number;
    bytes memory data = new bytes(len);
    for (uint i = len; i>0; i--) {
      data[i-1] = bytes1(uint8(temp));
      temp = temp >> 8;
    }
    return data;
  }

  // Note: does not work with contract creation
  function calculateTransactionHash(uint128 sequence, bytes storage id, address to, uint value, bytes calldata data)
    private pure returns (bytes32){
    bytes[] memory all = new bytes[](9);
    all[0] = toBytes(sequence); // sequence number instead of nonce
    all[1] = id; // contract id instead of gas price
    all[2] = toBytes(21000); // gas limit
    all[3] = abi.encodePacked(to);
    all[4] = toBytes(value);
    all[5] = data;
    all[6] = toBytes(1);
    all[7] = toBytes(0);
    for (uint i = 0; i<8; i++){
      all[i] = RLPEncode.encodeBytes(all[i]);
    }
    all[8] = all[7];
    return keccak256(RLPEncode.encodeList(all));
  }

  function verifySignatures(bytes32 transactionHash, uint8[] calldata v, bytes32[] calldata r, bytes32[] calldata s)
    private view returns (address[] memory) {
    address[] memory found = new address[](r.length);
    for (uint i = 0; i < r.length; i++) {
      address signer = ecrecover(transactionHash, v[i], r[i], s[i]);
      uint8 cosignaturesNeeded = signers[signer];
      require(cosignaturesNeeded > 0 && cosignaturesNeeded <= r.length, "cosigner error");
      found[i] = signer;
    }
    requireNoDuplicates(found);
    return found;
  }

  function requireNoDuplicates(address[] memory found) private pure {
    for (uint i = 0; i < found.length; i++) {
      for (uint j = i+1; j < found.length; j++) {
        require(found[i] != found[j], "duplicate signature");
      }
    }
  }

  /**
   * Call this method through execute
   */
  function setSigner(address signer, uint8 cosignaturesNeeded) public authorized {
    _setSigner(signer, cosignaturesNeeded);
    require(signerCount > 0);
  }

  function migrate(address destination) public {
    _migrate(msg.sender, destination);
  }

  function migrate(address source, address destination) public authorized {
    _migrate(source, destination);
  }

  function _migrate(address source, address destination) private {
    require(signers[destination] == 0); // do not overwrite existing signer!
    _setSigner(destination, signers[source]);
    _setSigner(source, 0);
  }

  function _setSigner(address signer, uint8 cosignaturesNeeded) private {
    require(!Address.isContract(signer), "signer cannot be a contract");
    uint8 prevValue = signers[signer];
    signers[signer] = cosignaturesNeeded;
    if (prevValue > 0 && cosignaturesNeeded == 0){
      signerCount--;
    } else if (prevValue == 0 && cosignaturesNeeded > 0){
      signerCount++;
    }
    emit SignerChange(signer, cosignaturesNeeded);
  }

  modifier authorized() {
    require(address(this) == msg.sender || signers[msg.sender] == 1, "not authorized");
    _;
  }

}

File 2 of 5: Address.sol
// SPDX-License-Identifier: MIT
// Copied from https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/Address.sol
// and modified it.

pragma solidity >=0.7;

library Address {
    /**
     * @dev Returns true if `account` is a contract.
     *
     * [IMPORTANT]
     * ====
     * It is unsafe to assume that an address for which this function returns
     * false is an externally-owned account (EOA) and not a contract.
     *
     * Among others, `isContract` will return false for the following
     * types of addresses:
     *
     *  - an externally-owned account
     *  - a contract in construction
     *  - an address where a contract will be created
     *  - an address where a contract lived, but was destroyed
     * ====
     */
    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }

    function functionCallWithValue(address target, bytes memory data, uint256 weiValue) internal returns (bytes memory) {
        // solhint-disable-next-line avoid-low-level-calls
        require(data.length == 0 || isContract(target));
        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            revert(string(returndata));
        }
    }
}

File 3 of 5: MultiSigFactory.sol
/**
 * SPDX-License-Identifier: MIT
 */

pragma solidity >=0.7;

import "./MultiSig.sol";

contract MultiSigFactory {

  event ContractCreated(address contractAddress, string typeName);

  function create(address owner) public returns (address) {
    address instance = address(new MultiSig(owner));
    emit ContractCreated(instance, "MultiSig");
    return instance;
  }

  function predict(address owner, bytes32 salt) public view returns (address) {
    return address(uint(keccak256(abi.encodePacked(byte(0xff), address(this), salt,
            keccak256(abi.encodePacked(type(MultiSig).creationCode, owner))
        ))));
  }

  function create(address owner, bytes32 salt) public returns (address) {
    address instance = address(new MultiSig{salt: salt}(owner));
    emit ContractCreated(instance, "MultiSig");
    return instance;
  }
}

File 4 of 5: Nonce.sol
/**
* SPDX-License-Identifier: LicenseRef-Aktionariat
*
* MIT License with Automated License Fee Payments
*
* Copyright (c) 2020 Aktionariat AG (aktionariat.com)
*
* Permission is hereby granted to any person obtaining a copy of this software
* and associated documentation files (the "Software"), to deal in the Software
* without restriction, including without limitation the rights to use, copy,
* modify, merge, publish, distribute, sublicense, and/or sell copies of the
* Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* - The above copyright notice and this permission notice shall be included in
*   all copies or substantial portions of the Software.
* - All automated license fee payments integrated into this and related Software
*   are preserved.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/

pragma solidity 0.7.4;

contract Nonce {

    uint256 public constant MAX_INCREASE = 100;
    
    uint256 private compound;
    
    constructor(){
        setBoth(128, 0);
    }
    
    /**
     * The next recommended nonce, which is the highest nonce ever used plus one.
     */
    function nextNonce() public view returns (uint256){
        return getMax() + 1;
    }

    /**
     * Returns whether the provided nonce can be used.
     * For the 100 nonces in the interval [nextNonce(), nextNonce + 99], this is always true.
     * For the nonces in the interval [nextNonce() - 129, nextNonce() - 1], this is true for the nonces that have not been used yet.
     */ 
    function isFree(uint128 nonce) public view returns (bool){
        uint128 max = getMax();
        return isValidHighNonce(max, nonce) || isValidLowNonce(max, getRegister(), nonce);
    }

    /**
     * Flags the given nonce as used.
     * Reverts if the provided nonce is not free.
     */
    function flagUsed(uint128 nonce) public {
        uint256 comp = compound;
        uint128 max = uint128(comp);
        uint128 reg = uint128(comp >> 128);
        if (isValidHighNonce(max, nonce)){
            setBoth(nonce, ((reg << 1) | 0x1) << (nonce - max - 1));
        } else if (isValidLowNonce(max, reg, nonce)){
            setBoth(max, uint128(reg | 0x1 << (max - nonce - 1)));
        } else {
            require(false);
        }
    }
    
    function getMax() private view returns (uint128) {
        return uint128(compound);
    }
    
    function getRegister() private view returns (uint128) {
        return uint128(compound >> 128);
    }
    
    function setBoth(uint128 max, uint128 reg) private {
        compound = uint256(reg) << 128 | max;
    }

    function isValidHighNonce(uint128 max, uint128 nonce) private pure returns (bool){
        return nonce > max && nonce <= max + MAX_INCREASE;
    }

    function isValidLowNonce(uint128 max, uint128 reg, uint256 nonce) private pure returns (bool){
        uint256 diff = max - nonce;
        return diff > 0 && diff <= 128 && ((0x1 << (diff - 1)) & reg == 0);
    }
    
}

File 5 of 5: RLPEncode.sol
/// SPDX-License-Identifier: MIT
/// @title RLP Encoding Library for Solidity
/// @author Sam Mayo ([email protected])
/// @dev Library for rlp encoding arbitrary bytes or lists.

pragma solidity >=0.7;

library RLPEncode {
    uint8 constant STRING_SHORT_PREFIX = 0x80;
    uint8 constant STRING_LONG_PREFIX = 0xb7;
    uint8 constant LIST_SHORT_PREFIX = 0xc0;
    uint8 constant LIST_LONG_PREFIX = 0xf7;

    /// @dev Rlp encodes a bytes
    /// @param self The bytes to be encoded
    /// @return The rlp encoded bytes
    function encodeBytes(bytes memory self) internal pure returns (bytes memory) {
        if(self.length == 1 && self[0] < 0x80) {
            return self;
        } else {
            return encode(self, STRING_SHORT_PREFIX, STRING_LONG_PREFIX);
        }
    }
    
    /// @dev Rlp encodes a bytes[]. Note that the items in the bytes[] will not automatically be rlp encoded.
    /// @param self The bytes[] to be encoded
    /// @return The rlp encoded bytes[]
    function encodeList(bytes[] memory self) internal pure returns (bytes memory) {
        bytes memory list = flatten(self);
        return encode(list, LIST_SHORT_PREFIX, LIST_LONG_PREFIX);
    }

    function encode(bytes memory self, uint8 prefix1, uint8 prefix2) private pure returns (bytes memory) {
        uint selfPtr;
        assembly { selfPtr := add(self, 0x20) }

        uint len = self.length;
        if(len <= 55) {
            bytes memory encoded = new bytes(len+1);
            uint8 lenshort = uint8(len);
            // length encoding byte
            encoded[0] = byte(prefix1+lenshort);

            // string/list contents
            uint encodedPtr;
            assembly { encodedPtr := add(encoded, 0x21) }
            memcpy(encodedPtr, selfPtr, len);
            return encoded;
        } else {
            uint8 lenLen;
            uint i = 0x1;
            while(len/i != 0) {
                lenLen++;
                i *= 0x100;
            }

            // 1 is the length of the length of the length
           bytes memory encoded = new bytes(1+lenLen+len);

            // length of the length encoding byte
            encoded[0] = byte(prefix2+lenLen);

            // length bytes
            for(i=1; i<=lenLen; i++) {
                encoded[i] = byte(uint8((len/(0x100**(lenLen-i)))%0x100));
            }

            // string/list contents
            uint encodedPtr;
            assembly { encodedPtr := add(add(encoded, 0x21), lenLen) }
            memcpy(encodedPtr, selfPtr, len);
            return encoded;
        }
    }
    
    function flatten(bytes[] memory self) private pure returns (bytes memory) {
        if(self.length == 0) {
            return new bytes(0);
        }

        uint len;
        for(uint i=0; i<self.length; i++) {
            len += self[i].length;
        }

        bytes memory flattened = new bytes(len);
        uint flattenedPtr;
        assembly { flattenedPtr := add(flattened, 0x20) }

        for(uint i=0; i<self.length; i++) {
            bytes memory item = self[i];
            
            uint selfPtr;
            assembly { selfPtr := add(item, 0x20)}

            memcpy(flattenedPtr, selfPtr, item.length);
            flattenedPtr += self[i].length;
        }

        return flattened;
    }

    /// This function is from Nick Johnson's string utils library
    function memcpy(uint dest, uint src, uint len) private pure {
        // Copy word-length chunks while possible
        for(; len >= 32; len -= 32) {
            assembly {
                mstore(dest, mload(src))
            }
            dest += 32;
            src += 32;
        }

        // Copy remaining bytes
        uint mask = 256 ** (32 - len) - 1;
        assembly {
            let srcpart := and(mload(src), not(mask))
            let destpart := and(mload(dest), mask)
            mstore(dest, or(destpart, srcpart))
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"signer","type":"address"},{"indexed":false,"internalType":"uint8","name":"cosignaturesNeeded","type":"uint8"}],"name":"SignerChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"toAddress","type":"address"},{"indexed":false,"internalType":"bytes4","name":"selector","type":"bytes4"},{"indexed":false,"internalType":"address[]","name":"signers","type":"address[]"}],"name":"Transacted","type":"event"},{"inputs":[],"name":"MAX_INCREASE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"checkExecution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint128","name":"nonce","type":"uint128"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint8[]","name":"v","type":"uint8[]"},{"internalType":"bytes32[]","name":"r","type":"bytes32[]"},{"internalType":"bytes32[]","name":"s","type":"bytes32[]"}],"name":"checkSignatures","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractId","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint128","name":"nonce","type":"uint128"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint8[]","name":"v","type":"uint8[]"},{"internalType":"bytes32[]","name":"r","type":"bytes32[]"},{"internalType":"bytes32[]","name":"s","type":"bytes32[]"}],"name":"execute","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint128","name":"nonce","type":"uint128"}],"name":"flagUsed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint128","name":"nonce","type":"uint128"}],"name":"isFree","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"source","type":"address"},{"internalType":"address","name":"destination","type":"address"}],"name":"migrate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"destination","type":"address"}],"name":"migrate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"nextNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"uint8","name":"cosignaturesNeeded","type":"uint8"}],"name":"setSigner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"signerCount","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"signers","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040523480156200001157600080fd5b5060405162001d4338038062001d43833981810160405260208110156200003757600080fd5b5051620000476080600062000083565b6200005863ffffffff3016620000a4565b80516200006e91600391602090910190620002db565b506200007c8160016200015a565b5062000387565b6001600160801b031960809190911b166001600160801b0390911617600055565b6060600060015b808410620000c25760019091019060081b620000ab565b50826060826001600160401b0381118015620000dd57600080fd5b506040519080825280601f01601f19166020018201604052801562000109576020820181803683370190505b509050825b801562000151578260f81b8260018303815181106200012957fe5b60200101906001600160f81b031916908160001a90535060089290921c91600019016200010e565b50949350505050565b62000170826200029e60201b62000bc81760201c565b15620001c3576040805162461bcd60e51b815260206004820152601b60248201527f7369676e65722063616e6e6f74206265206120636f6e74726163740000000000604482015290519081900360640190fd5b6001600160a01b0382166000908152600160205260409020805460ff83811660ff19831617909255168015801590620001fd575060ff8216155b1562000223576002805461ffff19811661ffff9182166000190190911617905562000257565b60ff811615801562000238575060008260ff16115b1562000257576002805461ffff8082166001011661ffff199091161790555b6040805160ff8416815290516001600160a01b038516917f7f00bf87056fc9622b70d830cce34aa24d6c12881ebbc71d3bf22d0c5ae295b7919081900360200190a2505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590620002d357508115155b949350505050565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826200031357600085556200035e565b82601f106200032e57805160ff19168380011785556200035e565b828001600101855582156200035e579182015b828111156200035e57825182559160200191906001019062000341565b506200036c92915062000370565b5090565b5b808211156200036c576000815560010162000371565b6119ac80620003976000396000f3fe6080604052600436106100c65760003560e01c80638291286c1161007f578063c1e38e8d11610059578063c1e38e8d146104d8578063ce5494bb1461050b578063d69c3d301461053e578063ecec0dfd14610553576100cd565b80638291286c146103ec578063b5fe516314610401578063b6e404de14610448576100cd565b80630f43d678146100d25780631068361f1461011057806348753d001461014b578063736c0d5b146103505780637ca548c6146103995780637cedbb80146103c5576100cd565b366100cd57005b600080fd5b3480156100de57600080fd5b5061010e600480360360408110156100f557600080fd5b5080356001600160a01b0316906020013560ff16610733565b005b34801561011c57600080fd5b5061010e6004803603604081101561013357600080fd5b506001600160a01b03813581169160200135166107b4565b34801561015757600080fd5b506102db600480360360e081101561016e57600080fd5b6001600160801b03823516916001600160a01b036020820135169160408201359190810190608081016060820135600160201b8111156101ad57600080fd5b8201836020820111156101bf57600080fd5b803590602001918460018302840111600160201b831117156101e057600080fd5b919390929091602081019035600160201b8111156101fd57600080fd5b82018360208201111561020f57600080fd5b803590602001918460208302840111600160201b8311171561023057600080fd5b919390929091602081019035600160201b81111561024d57600080fd5b82018360208201111561025f57600080fd5b803590602001918460208302840111600160201b8311171561028057600080fd5b919390929091602081019035600160201b81111561029d57600080fd5b8201836020820111156102af57600080fd5b803590602001918460208302840111600160201b831117156102d057600080fd5b509092509050610821565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103155781810151838201526020016102fd565b50505050905090810190601f1680156103425780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561035c57600080fd5b506103836004803603602081101561037357600080fd5b50356001600160a01b0316610951565b6040805160ff9092168252519081900360200190f35b3480156103a557600080fd5b506103ae610966565b6040805161ffff9092168252519081900360200190f35b3480156103d157600080fd5b506103da610970565b60408051918252519081900360200190f35b3480156103f857600080fd5b506102db610975565b34801561040d57600080fd5b506104346004803603602081101561042457600080fd5b50356001600160801b0316610a03565b604080519115158252519081900360200190f35b34801561045457600080fd5b5061010e6004803603606081101561046b57600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561049a57600080fd5b8201836020820111156104ac57600080fd5b803590602001918460018302840111600160201b831117156104cd57600080fd5b509092509050610a44565b3480156104e457600080fd5b5061010e600480360360208110156104fb57600080fd5b50356001600160801b0316610ada565b34801561051757600080fd5b5061010e6004803603602081101561052e57600080fd5b50356001600160a01b0316610b6b565b34801561054a57600080fd5b506103da610b78565b34801561055f57600080fd5b506106e3600480360360e081101561057657600080fd5b6001600160801b03823516916001600160a01b036020820135169160408201359190810190608081016060820135600160201b8111156105b557600080fd5b8201836020820111156105c757600080fd5b803590602001918460018302840111600160201b831117156105e857600080fd5b919390929091602081019035600160201b81111561060557600080fd5b82018360208201111561061757600080fd5b803590602001918460208302840111600160201b8311171561063857600080fd5b919390929091602081019035600160201b81111561065557600080fd5b82018360208201111561066757600080fd5b803590602001918460208302840111600160201b8311171561068857600080fd5b919390929091602081019035600160201b8111156106a557600080fd5b8201836020820111156106b757600080fd5b803590602001918460208302840111600160201b831117156106d857600080fd5b509092509050610b93565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561071f578181015183820152602001610707565b505050509050019250505060405180910390f35b3033148061075457503360009081526001602081905260409091205460ff16145b610796576040805162461bcd60e51b815260206004820152600e60248201526d1b9bdd08185d5d1a1bdc9a5e995960921b604482015290519081900360640190fd5b6107a08282610c04565b60025461ffff166107b057600080fd5b5050565b303314806107d557503360009081526001602081905260409091205460ff16145b610817576040805162461bcd60e51b815260206004820152600e60248201526d1b9bdd08185d5d1a1bdc9a5e995960921b604482015290519081900360640190fd5b6107b08282610d35565b606060006108348d60038e8e8e8e610d8d565b90506060610847828a8a8a8a8a8a61103f565b9050606061089a8e8d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508f6111eb565b90506108a58f610ada565b8d6001600160a01b03167f64ada3f9bcd41ebd407b399dc401184273a19bc294825172626af05a15c95d256108da8e8e611350565b8460405180836001600160e01b031916815260200180602001828103825283818151815260200191508051906020019060200280838360005b8381101561092b578181015183820152602001610913565b50505050905001935050505060405180910390a29e9d5050505050505050505050505050565b60016020526000908152604090205460ff1681565b60025461ffff1681565b606481565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156109fb5780601f106109d0576101008083540402835291602001916109fb565b820191906000526020600020905b8154815290600101906020018083116109de57829003601f168201915b505050505081565b600080610a0e6113f4565b9050610a1a81846113fa565b80610a3b5750610a3b81610a2c61142e565b856001600160801b0316611437565b9150505b919050565b610a868483838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508892506111eb915050565b506040805162461bcd60e51b815260206004820152601760248201527f54657374207061737365642e20526576657274696e672e000000000000000000604482015290519081900360640190fd5b50505050565b60005480608081901c610aed82856113fa565b15610b2b57610b26846001848703036001600160801b03166001846001600160801b0316901b6001176001600160801b0316901b61147b565b610ad4565b610b3f8282866001600160801b0316611437565b156100cd57610b26826001868503036001600160801b03166001901b836001600160801b03161761147b565b610b753382610d35565b50565b6000610b826113f4565b6001016001600160801b0316905090565b60606000610ba68d60038e8e8e8e610d8d565b9050610bb78189898989898961103f565b9d9c50505050505050505050505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590610bfc57508115155b949350505050565b610c0d82610bc8565b15610c5f576040805162461bcd60e51b815260206004820152601b60248201527f7369676e65722063616e6e6f74206265206120636f6e74726163740000000000604482015290519081900360640190fd5b6001600160a01b0382166000908152600160205260409020805460ff83811660ff19831617909255168015801590610c98575060ff8216155b15610cbc576002805461ffff19811661ffff91821660001901909116179055610cee565b60ff8116158015610cd0575060008260ff16115b15610cee576002805461ffff8082166001011661ffff199091161790555b6040805160ff8416815290516001600160a01b038516917f7f00bf87056fc9622b70d830cce34aa24d6c12881ebbc71d3bf22d0c5ae295b7919081900360200190a2505050565b6001600160a01b03811660009081526001602052604090205460ff1615610d5b57600080fd5b6001600160a01b038216600090815260016020526040902054610d8290829060ff16610c04565b6107b0826000610c04565b604080516009808252610140820190925260009160609190816020015b6060815260200190600190039081610daa579050509050610dd3886001600160801b03166114a5565b81600081518110610de057fe5b602090810291909101810191909152875460408051601f6002600019610100600187161502019094169390930492830184900484028101840190915281815291899190830182828015610e745780601f10610e4957610100808354040283529160200191610e74565b820191906000526020600020905b815481529060010190602001808311610e5757829003601f168201915b505050505081600181518110610e8657fe5b6020026020010181905250610e9c6152086114a5565b81600281518110610ea957fe5b60200260200101819052508560405160200180826001600160a01b031660601b815260140191505060405160208183030381529060405281600381518110610eed57fe5b6020026020010181905250610f01856114a5565b81600481518110610f0e57fe5b602002602001018190525083838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250508351849250600591508110610f5e57fe5b6020026020010181905250610f7360016114a5565b81600681518110610f8057fe5b6020026020010181905250610f9560006114a5565b81600781518110610fa257fe5b602002602001018190525060005b6008811015610ff457610fd5828281518110610fc857fe5b6020026020010151611555565b828281518110610fe157fe5b6020908102919091010152600101610fb0565b508060078151811061100257fe5b60200260200101518160088151811061101757fe5b602002602001018190525061102b816115a6565b805190602001209150509695505050505050565b6060808467ffffffffffffffff8111801561105957600080fd5b50604051908082528060200260200182016040528015611083578160200160208202803683370190505b50905060005b858110156111d557600060018b8b8b858181106110a257fe5b9050602002013560ff168a8a868181106110b857fe5b905060200201358989878181106110cb57fe5b9050602002013560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611126573d6000803e3d6000fd5b505060408051601f1901516001600160a01b03811660009081526001602052919091205490925060ff1690508015801590611164575060ff81168810155b6111a6576040805162461bcd60e51b815260206004820152600e60248201526d31b7b9b4b3b732b91032b93937b960911b604482015290519081900360640190fd5b818484815181106111b357fe5b6001600160a01b03909216602092830291909101909101525050600101611089565b506111df816115c1565b98975050505050505050565b6060825160001480611201575061120184610bc8565b61120a57600080fd5b60006060856001600160a01b031684866040518082805190602001908083835b602083106112495780518252601f19909201916020918201910161122a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146112ab576040519150601f19603f3d011682016040523d82523d6000602084013e6112b0565b606091505b509150915081156112c45791506113499050565b8060405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561130e5781810151838201526020016112f6565b50505050905090810190601f16801561133b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b9392505050565b60006004821015611363575060006113ee565b60188383600381811061137257fe5b909101356001600160f81b03191690911c905060108484600281811061139457fe5b909101356001600160f81b03191690911c90506008858560018181106113b657fe5b909101356001600160f81b03191690911c905085856000816113d457fe5b9050013560f81c60f81b6001600160f81b03191617171790505b92915050565b60005490565b6000826001600160801b0316826001600160801b03161180156113495750506001600160801b039182166064019116111590565b60005460801c90565b60006001600160801b0384168290038015801590611456575060808111155b80156114725750600160001982011b84166001600160801b0316155b95945050505050565b6fffffffffffffffffffffffffffffffff1960809190911b166001600160801b0390911617600055565b6060600060015b8084106114c15760019091019060081b6114ac565b508260608267ffffffffffffffff811180156114dc57600080fd5b506040519080825280601f01601f191660200182016040528015611507576020820181803683370190505b509050825b801561154c578260f81b82600183038151811061152557fe5b60200101906001600160f81b031916908160001a90535060089290921c916000190161150c565b50949350505050565b6060815160011480156115865750608060f81b8260008151811061157557fe5b01602001516001600160f81b031916105b15611592575080610a3f565b61159f82608060b761166f565b9050610a3f565b6060806115b28361182e565b9050610a3b8160c060f761166f565b60005b81518110156107b057600181015b8251811015611666578281815181106115e757fe5b60200260200101516001600160a01b031683838151811061160457fe5b60200260200101516001600160a01b0316141561165e576040805162461bcd60e51b81526020600482015260136024820152726475706c6963617465207369676e617475726560681b604482015290519081900360640190fd5b6001016115d2565b506001016115c4565b82516060906020850190603781116117165760608160010167ffffffffffffffff8111801561169d57600080fd5b506040519080825280601f01601f1916602001820160405280156116c8576020820181803683370190505b509050600082905080870160f81b826000815181106116e357fe5b60200101906001600160f81b031916908160001a90535060218201611709818686611938565b8295505050505050611349565b600060015b80838161172457fe5b0415611739576001909101906101000261171b565b6060838360010160ff160167ffffffffffffffff8111801561175a57600080fd5b506040519080825280601f01601f191660200182016040528015611785576020820181803683370190505b50905082870160f81b8160008151811061179b57fe5b60200101906001600160f81b031916908160001a905350600191505b8260ff16821161181057610100828460ff16036101000a85816117d657fe5b04816117de57fe5b0660f81b8183815181106117ee57fe5b60200101906001600160f81b031916908160001a9053506001909101906117b7565b808301602101611821818787611938565b5094506113499350505050565b606081516000141561184f5750604080516000815260208101909152610a3f565b6000805b83518110156118825783818151811061186857fe5b602002602001015151820191508080600101915050611853565b5060608167ffffffffffffffff8111801561189c57600080fd5b506040519080825280601f01601f1916602001820160405280156118c7576020820181803683370190505b5090506020810160005b855181101561192e5760608682815181106118e857fe5b60200260200101519050600060208201905061190684828451611938565b87838151811061191257fe5b60200260200101515184019350505080806001019150506118d1565b5090949350505050565b5b60208110611958578151835260209283019290910190601f1901611939565b905182516020929092036101000a600019018019909116911617905256fea26469706673582212209469361f0335e52310c37059766104d2dc4c55fa72972b7172fcbbcc974cfdc164736f6c634300070400330000000000000000000000005a57dd9c623e1403af1d810673183d89724a4e0c

Deployed Bytecode

0x6080604052600436106100c65760003560e01c80638291286c1161007f578063c1e38e8d11610059578063c1e38e8d146104d8578063ce5494bb1461050b578063d69c3d301461053e578063ecec0dfd14610553576100cd565b80638291286c146103ec578063b5fe516314610401578063b6e404de14610448576100cd565b80630f43d678146100d25780631068361f1461011057806348753d001461014b578063736c0d5b146103505780637ca548c6146103995780637cedbb80146103c5576100cd565b366100cd57005b600080fd5b3480156100de57600080fd5b5061010e600480360360408110156100f557600080fd5b5080356001600160a01b0316906020013560ff16610733565b005b34801561011c57600080fd5b5061010e6004803603604081101561013357600080fd5b506001600160a01b03813581169160200135166107b4565b34801561015757600080fd5b506102db600480360360e081101561016e57600080fd5b6001600160801b03823516916001600160a01b036020820135169160408201359190810190608081016060820135600160201b8111156101ad57600080fd5b8201836020820111156101bf57600080fd5b803590602001918460018302840111600160201b831117156101e057600080fd5b919390929091602081019035600160201b8111156101fd57600080fd5b82018360208201111561020f57600080fd5b803590602001918460208302840111600160201b8311171561023057600080fd5b919390929091602081019035600160201b81111561024d57600080fd5b82018360208201111561025f57600080fd5b803590602001918460208302840111600160201b8311171561028057600080fd5b919390929091602081019035600160201b81111561029d57600080fd5b8201836020820111156102af57600080fd5b803590602001918460208302840111600160201b831117156102d057600080fd5b509092509050610821565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103155781810151838201526020016102fd565b50505050905090810190601f1680156103425780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561035c57600080fd5b506103836004803603602081101561037357600080fd5b50356001600160a01b0316610951565b6040805160ff9092168252519081900360200190f35b3480156103a557600080fd5b506103ae610966565b6040805161ffff9092168252519081900360200190f35b3480156103d157600080fd5b506103da610970565b60408051918252519081900360200190f35b3480156103f857600080fd5b506102db610975565b34801561040d57600080fd5b506104346004803603602081101561042457600080fd5b50356001600160801b0316610a03565b604080519115158252519081900360200190f35b34801561045457600080fd5b5061010e6004803603606081101561046b57600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561049a57600080fd5b8201836020820111156104ac57600080fd5b803590602001918460018302840111600160201b831117156104cd57600080fd5b509092509050610a44565b3480156104e457600080fd5b5061010e600480360360208110156104fb57600080fd5b50356001600160801b0316610ada565b34801561051757600080fd5b5061010e6004803603602081101561052e57600080fd5b50356001600160a01b0316610b6b565b34801561054a57600080fd5b506103da610b78565b34801561055f57600080fd5b506106e3600480360360e081101561057657600080fd5b6001600160801b03823516916001600160a01b036020820135169160408201359190810190608081016060820135600160201b8111156105b557600080fd5b8201836020820111156105c757600080fd5b803590602001918460018302840111600160201b831117156105e857600080fd5b919390929091602081019035600160201b81111561060557600080fd5b82018360208201111561061757600080fd5b803590602001918460208302840111600160201b8311171561063857600080fd5b919390929091602081019035600160201b81111561065557600080fd5b82018360208201111561066757600080fd5b803590602001918460208302840111600160201b8311171561068857600080fd5b919390929091602081019035600160201b8111156106a557600080fd5b8201836020820111156106b757600080fd5b803590602001918460208302840111600160201b831117156106d857600080fd5b509092509050610b93565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561071f578181015183820152602001610707565b505050509050019250505060405180910390f35b3033148061075457503360009081526001602081905260409091205460ff16145b610796576040805162461bcd60e51b815260206004820152600e60248201526d1b9bdd08185d5d1a1bdc9a5e995960921b604482015290519081900360640190fd5b6107a08282610c04565b60025461ffff166107b057600080fd5b5050565b303314806107d557503360009081526001602081905260409091205460ff16145b610817576040805162461bcd60e51b815260206004820152600e60248201526d1b9bdd08185d5d1a1bdc9a5e995960921b604482015290519081900360640190fd5b6107b08282610d35565b606060006108348d60038e8e8e8e610d8d565b90506060610847828a8a8a8a8a8a61103f565b9050606061089a8e8d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508f6111eb565b90506108a58f610ada565b8d6001600160a01b03167f64ada3f9bcd41ebd407b399dc401184273a19bc294825172626af05a15c95d256108da8e8e611350565b8460405180836001600160e01b031916815260200180602001828103825283818151815260200191508051906020019060200280838360005b8381101561092b578181015183820152602001610913565b50505050905001935050505060405180910390a29e9d5050505050505050505050505050565b60016020526000908152604090205460ff1681565b60025461ffff1681565b606481565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156109fb5780601f106109d0576101008083540402835291602001916109fb565b820191906000526020600020905b8154815290600101906020018083116109de57829003601f168201915b505050505081565b600080610a0e6113f4565b9050610a1a81846113fa565b80610a3b5750610a3b81610a2c61142e565b856001600160801b0316611437565b9150505b919050565b610a868483838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508892506111eb915050565b506040805162461bcd60e51b815260206004820152601760248201527f54657374207061737365642e20526576657274696e672e000000000000000000604482015290519081900360640190fd5b50505050565b60005480608081901c610aed82856113fa565b15610b2b57610b26846001848703036001600160801b03166001846001600160801b0316901b6001176001600160801b0316901b61147b565b610ad4565b610b3f8282866001600160801b0316611437565b156100cd57610b26826001868503036001600160801b03166001901b836001600160801b03161761147b565b610b753382610d35565b50565b6000610b826113f4565b6001016001600160801b0316905090565b60606000610ba68d60038e8e8e8e610d8d565b9050610bb78189898989898961103f565b9d9c50505050505050505050505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590610bfc57508115155b949350505050565b610c0d82610bc8565b15610c5f576040805162461bcd60e51b815260206004820152601b60248201527f7369676e65722063616e6e6f74206265206120636f6e74726163740000000000604482015290519081900360640190fd5b6001600160a01b0382166000908152600160205260409020805460ff83811660ff19831617909255168015801590610c98575060ff8216155b15610cbc576002805461ffff19811661ffff91821660001901909116179055610cee565b60ff8116158015610cd0575060008260ff16115b15610cee576002805461ffff8082166001011661ffff199091161790555b6040805160ff8416815290516001600160a01b038516917f7f00bf87056fc9622b70d830cce34aa24d6c12881ebbc71d3bf22d0c5ae295b7919081900360200190a2505050565b6001600160a01b03811660009081526001602052604090205460ff1615610d5b57600080fd5b6001600160a01b038216600090815260016020526040902054610d8290829060ff16610c04565b6107b0826000610c04565b604080516009808252610140820190925260009160609190816020015b6060815260200190600190039081610daa579050509050610dd3886001600160801b03166114a5565b81600081518110610de057fe5b602090810291909101810191909152875460408051601f6002600019610100600187161502019094169390930492830184900484028101840190915281815291899190830182828015610e745780601f10610e4957610100808354040283529160200191610e74565b820191906000526020600020905b815481529060010190602001808311610e5757829003601f168201915b505050505081600181518110610e8657fe5b6020026020010181905250610e9c6152086114a5565b81600281518110610ea957fe5b60200260200101819052508560405160200180826001600160a01b031660601b815260140191505060405160208183030381529060405281600381518110610eed57fe5b6020026020010181905250610f01856114a5565b81600481518110610f0e57fe5b602002602001018190525083838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250508351849250600591508110610f5e57fe5b6020026020010181905250610f7360016114a5565b81600681518110610f8057fe5b6020026020010181905250610f9560006114a5565b81600781518110610fa257fe5b602002602001018190525060005b6008811015610ff457610fd5828281518110610fc857fe5b6020026020010151611555565b828281518110610fe157fe5b6020908102919091010152600101610fb0565b508060078151811061100257fe5b60200260200101518160088151811061101757fe5b602002602001018190525061102b816115a6565b805190602001209150509695505050505050565b6060808467ffffffffffffffff8111801561105957600080fd5b50604051908082528060200260200182016040528015611083578160200160208202803683370190505b50905060005b858110156111d557600060018b8b8b858181106110a257fe5b9050602002013560ff168a8a868181106110b857fe5b905060200201358989878181106110cb57fe5b9050602002013560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611126573d6000803e3d6000fd5b505060408051601f1901516001600160a01b03811660009081526001602052919091205490925060ff1690508015801590611164575060ff81168810155b6111a6576040805162461bcd60e51b815260206004820152600e60248201526d31b7b9b4b3b732b91032b93937b960911b604482015290519081900360640190fd5b818484815181106111b357fe5b6001600160a01b03909216602092830291909101909101525050600101611089565b506111df816115c1565b98975050505050505050565b6060825160001480611201575061120184610bc8565b61120a57600080fd5b60006060856001600160a01b031684866040518082805190602001908083835b602083106112495780518252601f19909201916020918201910161122a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146112ab576040519150601f19603f3d011682016040523d82523d6000602084013e6112b0565b606091505b509150915081156112c45791506113499050565b8060405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561130e5781810151838201526020016112f6565b50505050905090810190601f16801561133b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b9392505050565b60006004821015611363575060006113ee565b60188383600381811061137257fe5b909101356001600160f81b03191690911c905060108484600281811061139457fe5b909101356001600160f81b03191690911c90506008858560018181106113b657fe5b909101356001600160f81b03191690911c905085856000816113d457fe5b9050013560f81c60f81b6001600160f81b03191617171790505b92915050565b60005490565b6000826001600160801b0316826001600160801b03161180156113495750506001600160801b039182166064019116111590565b60005460801c90565b60006001600160801b0384168290038015801590611456575060808111155b80156114725750600160001982011b84166001600160801b0316155b95945050505050565b6fffffffffffffffffffffffffffffffff1960809190911b166001600160801b0390911617600055565b6060600060015b8084106114c15760019091019060081b6114ac565b508260608267ffffffffffffffff811180156114dc57600080fd5b506040519080825280601f01601f191660200182016040528015611507576020820181803683370190505b509050825b801561154c578260f81b82600183038151811061152557fe5b60200101906001600160f81b031916908160001a90535060089290921c916000190161150c565b50949350505050565b6060815160011480156115865750608060f81b8260008151811061157557fe5b01602001516001600160f81b031916105b15611592575080610a3f565b61159f82608060b761166f565b9050610a3f565b6060806115b28361182e565b9050610a3b8160c060f761166f565b60005b81518110156107b057600181015b8251811015611666578281815181106115e757fe5b60200260200101516001600160a01b031683838151811061160457fe5b60200260200101516001600160a01b0316141561165e576040805162461bcd60e51b81526020600482015260136024820152726475706c6963617465207369676e617475726560681b604482015290519081900360640190fd5b6001016115d2565b506001016115c4565b82516060906020850190603781116117165760608160010167ffffffffffffffff8111801561169d57600080fd5b506040519080825280601f01601f1916602001820160405280156116c8576020820181803683370190505b509050600082905080870160f81b826000815181106116e357fe5b60200101906001600160f81b031916908160001a90535060218201611709818686611938565b8295505050505050611349565b600060015b80838161172457fe5b0415611739576001909101906101000261171b565b6060838360010160ff160167ffffffffffffffff8111801561175a57600080fd5b506040519080825280601f01601f191660200182016040528015611785576020820181803683370190505b50905082870160f81b8160008151811061179b57fe5b60200101906001600160f81b031916908160001a905350600191505b8260ff16821161181057610100828460ff16036101000a85816117d657fe5b04816117de57fe5b0660f81b8183815181106117ee57fe5b60200101906001600160f81b031916908160001a9053506001909101906117b7565b808301602101611821818787611938565b5094506113499350505050565b606081516000141561184f5750604080516000815260208101909152610a3f565b6000805b83518110156118825783818151811061186857fe5b602002602001015151820191508080600101915050611853565b5060608167ffffffffffffffff8111801561189c57600080fd5b506040519080825280601f01601f1916602001820160405280156118c7576020820181803683370190505b5090506020810160005b855181101561192e5760608682815181106118e857fe5b60200260200101519050600060208201905061190684828451611938565b87838151811061191257fe5b60200260200101515184019350505080806001019150506118d1565b5090949350505050565b5b60208110611958578151835260209283019290910190601f1901611939565b905182516020929092036101000a600019018019909116911617905256fea26469706673582212209469361f0335e52310c37059766104d2dc4c55fa72972b7172fcbbcc974cfdc164736f6c63430007040033

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

0000000000000000000000005a57dd9c623e1403af1d810673183d89724a4e0c

-----Decoded View---------------
Arg [0] : owner (address): 0x5a57dD9C623e1403AF1D810673183D89724a4e0c

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000005a57dd9c623e1403af1d810673183d89724a4e0c


Deployed Bytecode Sourcemap

148:5916:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4869:161;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4869:161:1;;-1:-1:-1;;;;;4869:161:1;;;;;;;;:::i;:::-;;5133:114;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5133:114:1;;;;;;;;;;:::i;2099:525::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2099:525:1;;;;;;-1:-1:-1;;;;;2099:525:1;;;;;;;;;;;-1:-1:-1;2099:525:1;;;;;;-1:-1:-1;;;2099:525:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2099:525:1;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2099:525:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2099:525:1;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2099:525:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2099:525:1;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2099:525:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2099:525:1;;;;;;;;;;-1:-1:-1;2099:525:1;;-1:-1:-1;2099:525:1;-1:-1:-1;2099:525:1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;182:41;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;182:41:1;-1:-1:-1;;;;;182:41:1;;:::i;:::-;;;;;;;;;;;;;;;;;;;313:25;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1388:42:3;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;343:23:1;;;;;;;;;;;;;:::i;2040:190:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2040:190:3;-1:-1:-1;;;;;2040:190:3;;:::i;:::-;;;;;;;;;;;;;;;;;;1910:183:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1910:183:1;;;;;;;;;;;;;;;;;-1:-1:-1;;;1910:183:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1910:183:1;;;;;;;;;;-1:-1:-1;1910:183:1;;-1:-1:-1;1910:183:1;-1:-1:-1;1910:183:1;:::i;2346:460:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2346:460:3;-1:-1:-1;;;;;2346:460:3;;:::i;5036:91:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5036:91:1;-1:-1:-1;;;;;5036:91:1;;:::i;1640:88:3:-;;;;;;;;;;;;;:::i;1454:348:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1454:348:1;;;;;;-1:-1:-1;;;;;1454:348:1;;;;;;;;;;;-1:-1:-1;1454:348:1;;;;;;-1:-1:-1;;;1454:348:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1454:348:1;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1454:348:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1454:348:1;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1454:348:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1454:348:1;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1454:348:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1454:348:1;;;;;;;;;;-1:-1:-1;1454:348:1;;-1:-1:-1;1454:348:1;-1:-1:-1;1454:348:1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4869:161;5979:4;5988:10;5971:27;;:55;;-1:-1:-1;6010:10:1;6002:19;;;;:7;:19;;;;;;;;;;;:24;5971:55;5963:82;;;;;-1:-1:-1;;;5963:82:1;;;;;;;;;;;;-1:-1:-1;;;5963:82:1;;;;;;;;;;;;;;;4955:38:::1;4966:6;4974:18;4955:10;:38::i;:::-;5008:11;::::0;::::1;;5000:24;;;::::0;::::1;;4869:161:::0;;:::o;5133:114::-;5979:4;5988:10;5971:27;;:55;;-1:-1:-1;6010:10:1;6002:19;;;;:7;:19;;;;;;;;;;;:24;5971:55;5963:82;;;;;-1:-1:-1;;;5963:82:1;;;;;;;;;;;;-1:-1:-1;;;5963:82:1;;;;;;;;;;;;;;;5212:29:::1;5221:6;5229:11;5212:8;:29::i;2099:525::-:0;2256:12;2277:23;2303:60;2328:5;2335:10;2347:2;2351:5;2358:4;;2303:24;:60::i;:::-;2277:86;;2370:22;2395:42;2412:15;2429:1;;2432;;2435;;2395:16;:42::i;:::-;2370:67;;2444:23;2470:46;2500:2;2504:4;;2470:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2510:5;2470:29;:46::i;:::-;2444:72;;2523:15;2532:5;2523:8;:15::i;:::-;-1:-1:-1;;;;;2550:44:1;;;2565:21;2581:4;;2565:15;:21::i;:::-;2550:44;;;-1:-1:-1;;;;;;2550:44:1;;;;;;;;;;;;;;;;;;;;;;2588:5;;2550:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2608:10;2099:525;-1:-1:-1;;;;;;;;;;;;;;2099:525:1:o;182:41::-;;;;;;;;;;;;;;;:::o;313:25::-;;;;;;:::o;1388:42:3:-;1427:3;1388:42;:::o;343:23:1:-;;;;;;;;;;;;;;;-1:-1:-1;;343:23:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2040:190:3:-;2092:4;2108:11;2122:8;:6;:8::i;:::-;2108:22;;2148:28;2165:3;2170:5;2148:16;:28::i;:::-;:74;;;;2180:42;2196:3;2201:13;:11;:13::i;:::-;-1:-1:-1;;;;;2180:42:3;;:15;:42::i;:::-;2141:81;;;2040:190;;;;:::o;1910:183:1:-;1993:46;2023:2;2027:4;;1993:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2033:5:1;;-1:-1:-1;1993:29:1;;-1:-1:-1;;1993:46:1:i;:::-;-1:-1:-1;2046:41:1;;;-1:-1:-1;;;2046:41:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;1910:183;;;;:::o;2346:460:3:-;2397:12;2412:8;;2499:3;2491:11;;;2518:28;2412:8;2540:5;2518:16;:28::i;:::-;2514:285;;;2562:55;2570:5;-1:-1:-1;;;;;2614:1:3;2579:8;;;;;2578:16;2577:39;;2600:11;;;-1:-1:-1;;2600:15:3;2577:39;;;;2562:7;:55::i;:::-;2514:285;;;2639:32;2655:3;2660;-1:-1:-1;;;;;2639:32:3;;:15;:32::i;:::-;2635:164;;;2687:53;2695:3;2736:1;2722:11;;;-1:-1:-1;;2722:15:3;-1:-1:-1;;;;;2714:24:3;;;;;;;2708:30;;;;2687:7;:53::i;5036:91:1:-;5088:33;5097:10;5109:11;5088:8;:33::i;:::-;5036:91;:::o;1640:88:3:-;1682:7;1708:8;:6;:8::i;:::-;1719:1;1708:12;-1:-1:-1;;;;;1701:19:3;;;-1:-1:-1;1640:88:3:o;1454:348:1:-;1629:16;1654:23;1680:60;1705:5;1712:10;1724:2;1728:5;1735:4;;1680:24;:60::i;:::-;1654:86;;1754:42;1771:15;1788:1;;1791;;1794;;1754:16;:42::i;:::-;1747:49;1454:348;-1:-1:-1;;;;;;;;;;;;;1454:348:1:o;803:619:0:-;863:4;1331:20;;1174:66;1371:23;;;;;;:42;;-1:-1:-1;1398:15:0;;;1371:42;1363:51;803:619;-1:-1:-1;;;;803:619:0:o;5481:447:1:-;5567:26;5586:6;5567:18;:26::i;:::-;5566:27;5558:67;;;;;-1:-1:-1;;;5558:67:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5650:15:1;;5632;5650;;;-1:-1:-1;5650:15:1;;;;;;;;5672:36;;;-1:-1:-1;;5672:36:1;;;;;;5650:15;5719:13;;;;;:40;;-1:-1:-1;5736:23:1;;;;5719:40;5715:156;;;5769:11;:13;;-1:-1:-1;;5769:13:1;;;;;;-1:-1:-1;;5769:13:1;;;;;;;5715:156;;;5800:14;;;;:40;;;;;5839:1;5818:18;:22;;;5800:40;5796:75;;;5850:11;:13;;;;;;;;;-1:-1:-1;;5850:13:1;;;;;;5796:75;5882:40;;;;;;;;;;-1:-1:-1;;;;;5882:40:1;;;;;;;;;;;;;5481:447;;;:::o;5253:222::-;-1:-1:-1;;;;;5331:20:1;;;;;;-1:-1:-1;5331:20:1;;;;;;;;:25;5323:34;;;;;;-1:-1:-1;;;;;5425:15:1;;;;;;-1:-1:-1;5425:15:1;;;;;;5401:40;;5412:11;;5425:15;;5401:10;:40::i;:::-;5448:21;5459:6;5467:1;5448:10;:21::i;3326:661::-;3504:14;;;3516:1;3504:14;;;;;;;;;3468:7;;3483:18;;3504:14;;;;;;;;;;;;;;;;;;-1:-1:-1;3483:35:1;;-1:-1:-1;3534:17:1;;-1:-1:-1;;;;;;3534:17:1;;:7;:17::i;:::-;3525:3;3529:1;3525:6;;;;;;;;;;;;;;;;;;:26;;;;3594:11;;;;;;;;;;;;-1:-1:-1;;3594:11:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:3;3598:1;3594:6;;;;;;;;;;;;;:11;;;;3657:14;3665:5;3657:7;:14::i;:::-;3648:3;3652:1;3648:6;;;;;;;;;;;;;:23;;;;3717:2;3700:20;;;;;;-1:-1:-1;;;;;3700:20:1;;;;;;;;;;;;;;;;;;;;;;3691:3;3695:1;3691:6;;;;;;;;;;;;;:29;;;;3736:14;3744:5;3736:7;:14::i;:::-;3727:3;3731:1;3727:6;;;;;;;;;;;;;:23;;;;3766:4;;3757:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3757:6:1;;:3;;-1:-1:-1;3761:1:1;;-1:-1:-1;3757:6:1;;;;;;;;;;;:13;;;;3786:10;3794:1;3786:7;:10::i;:::-;3777:3;3781:1;3777:6;;;;;;;;;;;;;:19;;;;3812:10;3820:1;3812:7;:10::i;:::-;3803:3;3807:1;3803:6;;;;;;;;;;;;;:19;;;;3834:6;3829:81;3848:1;3846;:3;3829:81;;;3873:29;3895:3;3899:1;3895:6;;;;;;;;;;;;;;3873:21;:29::i;:::-;3864:3;3868:1;3864:6;;;;;;;;;;;;;;;;;:38;3851:3;;3829:81;;;;3925:3;3929:1;3925:6;;;;;;;;;;;;;;3916:3;3920:1;3916:6;;;;;;;;;;;;;:15;;;;3955:25;3976:3;3955:20;:25::i;:::-;3945:36;;;;;;3938:43;;;3326:661;;;;;;;;:::o;3993:562::-;4135:16;;4199:1;4185:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4185:23:1;;4160:48;;4220:6;4215:283;4232:12;;;4215:283;;;4260:14;4277:44;4287:15;4304:1;;4306;4304:4;;;;;;;;;;;;;;;4310:1;;4312;4310:4;;;;;;;;;;;;;4316:1;;4318;4316:4;;;;;;;;;;;;;4277:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4277:44:1;;;-1:-1:-1;;4277:44:1;;-1:-1:-1;;;;;4357:15:1;;4330:24;4357:15;;;-1:-1:-1;4277:44:1;4357:15;;;;;;4277:44;;-1:-1:-1;4357:15:1;;;-1:-1:-1;4389:22:1;;;;;:56;;-1:-1:-1;4415:30:1;;;;-1:-1:-1;4415:30:1;4389:56;4381:83;;;;;-1:-1:-1;;;4381:83:1;;;;;;;;;;;;-1:-1:-1;;;4381:83:1;;;;;;;;;;;;;;;4484:6;4473:5;4479:1;4473:8;;;;;;;;-1:-1:-1;;;;;4473:17:1;;;;:8;;;;;;;;;;;:17;-1:-1:-1;;;4246:3:1;4215:283;;;;4504:26;4524:5;4504:19;:26::i;:::-;4544:5;3993:562;-1:-1:-1;;;;;;;;3993:562:1:o;1430:457:0:-;1532:12;1625:4;:11;1640:1;1625:16;:38;;;;1645:18;1656:6;1645:10;:18::i;:::-;1617:47;;;;;;1676:12;1690:23;1717:6;-1:-1:-1;;;;;1717:11:0;1737:8;1748:4;1717:36;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1717:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1675:78;;;;1768:7;1764:116;;;1799:10;-1:-1:-1;1792:17:0;;-1:-1:-1;1792:17:0;1764:116;1842:26;;-1:-1:-1;;;1842:26:0;;;;;;;;;;;;;;;;;1856:10;;1842:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1430:457;;;;;;:::o;2630:262:1:-;2698:6;2730:1;2716:15;;2712:175;;;-1:-1:-1;2755:1:1;2741:16;;2712:175;2876:2;2864:4;;2869:1;2864:7;;;;;;;;;;;-1:-1:-1;;;;;;2864:7:1;2857:21;;;;-1:-1:-1;2850:2:1;2838:4;;2843:1;2838:7;;;;;;;;;;;-1:-1:-1;;;;;;2838:7:1;2831:21;;;;-1:-1:-1;2825:1:1;2813:4;;-1:-1:-1;2813:7:1;;;;;;;;;;;-1:-1:-1;;;;;;2813:7:1;2806:20;;;;-1:-1:-1;2794:4:1;;2799:1;2794:4;:7;;;;;;;;;;;;-1:-1:-1;;;;;2787:15:1;;:40;:66;:92;2780:99;;2712:175;2630:262;;;;:::o;2818:92:3:-;2858:7;2893:8;2818:92;:::o;3152:149::-;3228:4;-1:-1:-1;;;;;3251:11:3;;;;;;;:42;;;;-1:-1:-1;;1427:3:3;-1:-1:-1;;;;;3275:18:3;;;;3266:27;;;;;3152:149::o;2922:104::-;2967:7;3002:8;3014:3;3002:15;2922:104;:::o;3309:215::-;3397:4;-1:-1:-1;;;;;3428:11:3;;;;;3457:8;;;;;:23;;;3477:3;3469:4;:11;;3457:23;:59;;;;-1:-1:-1;;;;;;3501:1:3;-1:-1:-1;;3494:8:3;;3486:17;3485:25;;;:30;3457:59;3450:66;3309:215;-1:-1:-1;;;;;3309:215:3:o;3038:106::-;-1:-1:-1;;;;;3111:25:3;;;;3127:3;3111:19;;;;-1:-1:-1;;3111:19:3;:25;3100:8;:36;3038:106::o;2898:373:1:-;2951:12;2971:8;3002:1;3010:69;3027:4;3017:6;:14;3010:69;;3066:5;;;;;3056:1;3048:9;3010:69;;;-1:-1:-1;3092:6:1;3105:17;3135:3;3125:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3125:14:1;-1:-1:-1;3105:34:1;-1:-1:-1;3160:3:1;3146:102;3165:3;;3146:102;;3209:4;3196:19;;3184:4;3191:1;3189;:3;3184:9;;;;;;;;-1:-1:-1;;;;;;3184:31:1;;;;;;;;;:9;;;:31;-1:-1:-1;3239:1:1;3231:9;;;;;-1:-1:-1;;3170:3:1;3146:102;;;-1:-1:-1;3261:4:1;2898:373;-1:-1:-1;;;;2898:373:1:o;545:265:4:-;608:12;636:4;:11;651:1;636:16;:34;;;;;666:4;656:14;;:4;661:1;656:7;;;;;;;;;;;;-1:-1:-1;;;;;;656:7:4;:14;636:34;633:170;;;-1:-1:-1;694:4:4;687:11;;633:170;738:53;745:4;276;323;738:6;:53::i;:::-;731:60;;;;1021:197;1085:12;1110:17;1130:13;1138:4;1130:7;:13::i;:::-;1110:33;;1161:49;1168:4;369;414;1161:6;:49::i;4561:249:1:-;4639:6;4634:171;4655:5;:12;4651:1;:16;4634:171;;;4699:1;4697:3;;4683:115;4706:5;:12;4702:1;:16;4683:115;;;4756:5;4762:1;4756:8;;;;;;;;;;;;;;-1:-1:-1;;;;;4744:20:1;:5;4750:1;4744:8;;;;;;;;;;;;;;-1:-1:-1;;;;;4744:20:1;;;4736:52;;;;;-1:-1:-1;;;4736:52:1;;;;;;;;;;;;-1:-1:-1;;;4736:52:1;;;;;;;;;;;;;;;4720:3;;4683:115;;;-1:-1:-1;4669:3:1;;4634:171;;1226:1417:4;1423:11;;1313:12;;1393:4;1383:15;;;1455:2;1448:9;;1445:1191;;1474:20;1507:3;1511:1;1507:5;1497:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1497:16:4;;1474:39;;1528:14;1551:3;1528:27;;1633:8;1625:7;:16;1620:22;;1607:7;1615:1;1607:10;;;;;;;;-1:-1:-1;;;;;;1607:35:4;;;;;;;;;:10;;;:35;-1:-1:-1;1764:4:4;1751:18;;1785:32;1751:18;1804:7;1813:3;1785:6;:32::i;:::-;1839:7;1832:14;;;;;;;;;1445:1191;1879:12;1915:3;1933:90;1943:1;1939:3;:5;;;;;;:10;1933:90;;1970:8;;;;;2002:5;1997:10;1933:90;;;2098:20;2140:3;2133:6;2131:1;:8;:12;;;2121:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2121:23:4;;2098:46;;2238:6;2230:7;:14;2225:20;;2212:7;2220:1;2212:10;;;;;;;;-1:-1:-1;;;;;;2212:33:4;;;;;;;;;:10;;;:33;;2297:1;2295:3;;2291:117;2303:6;2300:9;;:1;:9;2291:117;;2385:5;2380:1;2373:6;:8;;;2365:5;:17;2360:3;:23;;;;;;2359:31;;;;;;2348:44;;2335:7;2343:1;2335:10;;;;;;;;-1:-1:-1;;;;;;2335:57:4;;;;;;;;;:10;;;:57;-1:-1:-1;2311:3:4;;;;;2291:117;;;2516:31;;;2533:4;2516:31;2563:32;2516:31;2582:7;2591:3;2563:6;:32::i;:::-;-1:-1:-1;2617:7:4;-1:-1:-1;2610:14:4;;-1:-1:-1;;;;2610:14:4;2655:737;2715:12;2743:4;:11;2758:1;2743:16;2740:67;;;-1:-1:-1;2783:12:4;;;2793:1;2783:12;;;;;;;;2776:19;;2740:67;2819:8;;2838:82;2854:4;:11;2852:1;:13;2838:82;;;2894:4;2899:1;2894:7;;;;;;;;;;;;;;:14;2887:21;;;;2867:3;;;;;;;2838:82;;;;2932:22;2967:3;2957:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2957:14:4;-1:-1:-1;2932:39:4;-1:-1:-1;3052:4:4;3037:20;;2982:17;3071:285;3087:4;:11;3085:1;:13;3071:285;;;3120:17;3140:4;3145:1;3140:7;;;;;;;;;;;;;;3120:27;;3176:12;3235:4;3229;3225:15;3214:26;;3257:42;3264:12;3278:7;3287:4;:11;3257:6;:42::i;:::-;3330:4;3335:1;3330:7;;;;;;;;;;;;;;:14;3314:30;;;;3071:285;;3100:3;;;;;;;3071:285;;;-1:-1:-1;3375:9:4;;2655:737;-1:-1:-1;;;;2655:737:4:o;3467:565::-;3589:170;3602:2;3595:3;:9;3589:170;;3673:10;;3660:24;;3721:2;3713:10;;;;3738:9;;;;-1:-1:-1;;3606:9:4;3589:170;;;3891:10;;3947:11;;3824:2;:8;;;;3816:3;:17;-1:-1:-1;;3816:21:4;3903:9;;3887:26;;;3943:22;;3992:21;3979:35;;3857:168::o

Swarm Source

ipfs://9469361f0335e52310c37059766104d2dc4c55fa72972b7172fcbbcc974cfdc1

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.