ETH Price: $2,681.09 (+1.66%)

Contract

0xe0Ffe7c9A7ed9e6d5e1bf5C5d9D0f9FE7903A2AD
 

Overview

ETH Balance

0.018 ETH

Eth Value

$48.26 (@ $2,681.09/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Spend218176932025-02-10 17:44:4758 mins ago1739209487IN
0xe0Ffe7c9...E7903A2AD
0 ETH0.000311383.05366319
Spend217962702025-02-07 17:58:113 days ago1738951091IN
0xe0Ffe7c9...E7903A2AD
0 ETH0.000277282.71889524
Spend217962122025-02-07 17:46:353 days ago1738950395IN
0xe0Ffe7c9...E7903A2AD
0 ETH0.000409474.0156007
Spend217894462025-02-06 19:06:353 days ago1738868795IN
0xe0Ffe7c9...E7903A2AD
0 ETH0.000347834.09839276
Spend217826512025-02-05 20:21:474 days ago1738786907IN
0xe0Ffe7c9...E7903A2AD
0 ETH0.00027922.73803803
Spend217822212025-02-05 18:55:474 days ago1738781747IN
0xe0Ffe7c9...E7903A2AD
0 ETH0.000350764.13352073
Spend217755182025-02-04 20:27:475 days ago1738700867IN
0xe0Ffe7c9...E7903A2AD
0 ETH0.0012887212.63664867
Spend217747112025-02-04 17:45:116 days ago1738691111IN
0xe0Ffe7c9...E7903A2AD
0 ETH0.000435894.27472638
Spend217741332025-02-04 15:48:476 days ago1738684127IN
0xe0Ffe7c9...E7903A2AD
0 ETH0.000472484.63301591
Spend217736172025-02-04 14:05:116 days ago1738677911IN
0xe0Ffe7c9...E7903A2AD
0 ETH0.000414244.06190427
Spend217682802025-02-03 20:10:356 days ago1738613435IN
0xe0Ffe7c9...E7903A2AD
0 ETH0.002059320.19502032
Spend217675582025-02-03 17:45:477 days ago1738604747IN
0xe0Ffe7c9...E7903A2AD
0 ETH0.0014972314.68813076
Spend217663412025-02-03 13:41:117 days ago1738590071IN
0xe0Ffe7c9...E7903A2AD
0 ETH0.0012608812.36366554
Spend217465092025-01-31 19:10:599 days ago1738350659IN
0xe0Ffe7c9...E7903A2AD
0 ETH0.000984519.65596798
Spend217391612025-01-30 18:31:2311 days ago1738261883IN
0xe0Ffe7c9...E7903A2AD
0 ETH0.000767297.52377629
Spend217387892025-01-30 17:16:2311 days ago1738257383IN
0xe0Ffe7c9...E7903A2AD
0 ETH0.000853978.37367825
Spend217383742025-01-30 15:53:2311 days ago1738252403IN
0xe0Ffe7c9...E7903A2AD
0 ETH0.000879768.62863184
Spend217315102025-01-29 16:54:2312 days ago1738169663IN
0xe0Ffe7c9...E7903A2AD
0 ETH0.000508534.98592158
Spend217248942025-01-28 18:44:3512 days ago1738089875IN
0xe0Ffe7c9...E7903A2AD
0 ETH0.000982279.63065509
Spend217184332025-01-27 21:05:2313 days ago1738011923IN
0xe0Ffe7c9...E7903A2AD
0 ETH0.0012474512.2349044
Spend217173982025-01-27 17:37:4714 days ago1737999467IN
0xe0Ffe7c9...E7903A2AD
0 ETH0.0015335815.03762657
Spend217161402025-01-27 13:24:3514 days ago1737984275IN
0xe0Ffe7c9...E7903A2AD
0 ETH0.0017487317.1452825
Spend216953592025-01-24 15:48:4717 days ago1737733727IN
0xe0Ffe7c9...E7903A2AD
0 ETH0.0023775223.31295094
Spend216895602025-01-23 20:23:3517 days ago1737663815IN
0xe0Ffe7c9...E7903A2AD
0 ETH0.0026575926.05609714
Spend216892152025-01-23 19:14:2317 days ago1737659663IN
0xe0Ffe7c9...E7903A2AD
0 ETH0.0013207512.95070136
View all transactions

Latest 2 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
215169002024-12-30 17:51:3542 days ago1735581095
0xe0Ffe7c9...E7903A2AD
0.1 ETH
210372442024-10-24 18:26:47109 days ago1729794407
0xe0Ffe7c9...E7903A2AD
0.002 ETH
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xC10975E2...9210d923f
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
OwnbitMultiSig

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2022-10-16
*/

pragma solidity >=0.8.0 <0.9.0;

// This is the ETH/ERC20/NFT multisig contract for Ownbit.
//
// For 2-of-3 multisig, to authorize a spend, two signtures must be provided by 2 of the 3 owners.
// To generate the message to be signed, provide the destination address and
// spend amount (in wei) to the generateMessageToSign method.
// The signatures must be provided as the (v, r, s) hex-encoded coordinates.
// The S coordinate must be 0x00 or 0x01 corresponding to 0x1b and 0x1c, respectively.
//
// WARNING: The generated message is only valid until the next spend is executed.
//          after that, a new message will need to be calculated.
//
//
// INFO: This contract is ERC20/ERC721/ERC1155 compatible.
// This contract can both receive ETH, ERC20 and NFT (ERC721/ERC1155) tokens.
// Last update time: 2022-09-25.
// [email protected]

contract OwnbitMultiSig {
    
  uint constant public MAX_OWNER_COUNT = 9;

  // The N addresses which control the funds in this contract. The
  // owners of M of these addresses will need to both sign a message
  // allowing the funds in this contract to be spent.
  mapping(address => bool) private isOwner;
  address[] private owners;
  uint private required;

  // The contract nonce is not accessible to the contract so we
  // implement a nonce-like variable for replay protection.
  uint256 private spendNonce = 0;
  
  // An event sent when funds are received.
  event Funded(address from, uint value);
  
  // An event sent when a spend is triggered to the given address.
  event Spent(address to, uint value);

  modifier validRequirement(uint ownerCount, uint _required) {
    require (ownerCount <= MAX_OWNER_COUNT
            && _required <= ownerCount
            && _required >= 1);
    _;
  }
  
  /// @dev Contract constructor sets initial owners and required number of confirmations.
  /// @param _owners List of initial owners.
  /// @param _required Number of required confirmations.
  constructor(address[] memory _owners, uint _required) validRequirement(_owners.length, _required) {
    for (uint i = 0; i < _owners.length; i++) {
        //onwer should be distinct, and non-zero
        if (isOwner[_owners[i]] || _owners[i] == address(0x0)) {
            revert();
        }
        isOwner[_owners[i]] = true;
    }
    owners = _owners;
    required = _required;
  }

  // The fallback function for this contract.
  fallback() external payable {
    if (msg.value > 0) {
        emit Funded(msg.sender, msg.value);
    }
  }
  
  // @dev Returns list of owners.
  // @return List of owner addresses.
  function getOwners() public view returns (address[] memory) {
    return owners;
  }
    
  function getSpendNonce() public view returns (uint256) {
    return spendNonce;
  }
    
  function getRequired() public view returns (uint) {
    return required;
  }

  // Generates the message to sign given the output destination address and amount.
  // includes this contract's address and a nonce for replay protection.
  // One option to independently verify: https://leventozturk.com/engineering/sha3/ and select keccak
  function generateMessageToSign(address destination, uint256 value, bytes memory data) private view returns (bytes32) {
    //the sequence must match generateMultiSigV3 in JS
    bytes32 message = keccak256(abi.encodePacked(address(this), destination, value, data, spendNonce));
    return message;
  }
  
  function _messageToRecover(address destination, uint256 value, bytes memory data) private view returns (bytes32) {
    bytes32 hashedUnsignedMessage = generateMessageToSign(destination, value, data);
    bytes memory prefix = "\x19Ethereum Signed Message:\n32";
    return keccak256(abi.encodePacked(prefix, hashedUnsignedMessage));
  }
  
  //destination can be a normal address or a contract address, such as ERC20 contract address.
  //value is the wei transferred to the destination.
  //data for transfer ether: 0x
  //data for transfer erc20 example: 0xa9059cbb000000000000000000000000ac6342a7efb995d63cc91db49f6023e95873d25000000000000000000000000000000000000000000000000000000000000003e8
  //data for transfer erc721 example: 0x42842e0e00000000000000000000000097b65ad59c8c96f2dd786751e6279a1a6d34a4810000000000000000000000006cb33e7179860d24635c66850f1f6a5d4f8eee6d0000000000000000000000000000000000000000000000000000000000042134
  //data can contain any data to be executed. 
  function spend(address destination, uint256 value, uint8[] memory vs, bytes32[] memory rs, bytes32[] memory ss, bytes calldata data) external {
    require(destination != address(this), "Not allow sending to yourself");
    require(_validSignature(destination, value, vs, rs, ss, data), "invalid signatures");
    spendNonce = spendNonce + 1;
    //transfer tokens from this contract to the destination address
    (bool sent, bytes memory _ret) = destination.call{value: value}(data);
    if (sent) {
        emit Spent(destination, value);
    }
  }

  // Confirm that the signature triplets (v1, r1, s1) (v2, r2, s2) ...
  // authorize a spend of this contract's funds to the given destination address.
  function _validSignature(address destination, uint256 value, uint8[] memory vs, bytes32[] memory rs, bytes32[] memory ss, bytes memory data) private view returns (bool) {
    require(vs.length == rs.length);
    require(rs.length == ss.length);
    require(vs.length <= owners.length);
    require(vs.length >= required);
    bytes32 message = _messageToRecover(destination, value, data);
    address[] memory addrs = new address[](vs.length);
    for (uint i = 0; i < vs.length; i++) {
        //recover the address associated with the public key from elliptic curve signature or return zero on error 
        addrs[i] = ecrecover(message, vs[i]+27, rs[i], ss[i]);
    }
    require(_distinctOwners(addrs));
    return true;
  }
  
  // Confirm the addresses as distinct owners of this contract.
  function _distinctOwners(address[] memory addrs) private view returns (bool) {
    if (addrs.length > owners.length) {
        return false;
    }
    for (uint i = 0; i < addrs.length; i++) {
        if (!isOwner[addrs[i]]) {
            return false;
        }
        //address should be distinct
        for (uint j = 0; j < i; j++) {
            if (addrs[i] == addrs[j]) {
                return false;
            }
        }
    }
    return true;
  }

  //support ERC721 safeTransferFrom
  function onERC721Received(address _operator, address _from, uint256 _tokenId, bytes calldata _data) external returns(bytes4) {
      return bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"));
  }

  function onERC1155Received(address _operator, address _from, uint256 _id, uint256 _value, bytes calldata _data) external returns(bytes4) {
      return bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"));
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address[]","name":"_owners","type":"address[]"},{"internalType":"uint256","name":"_required","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Funded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Spent","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"MAX_OWNER_COUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwners","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRequired","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSpendNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"destination","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint8[]","name":"vs","type":"uint8[]"},{"internalType":"bytes32[]","name":"rs","type":"bytes32[]"},{"internalType":"bytes32[]","name":"ss","type":"bytes32[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"spend","outputs":[],"stateMutability":"nonpayable","type":"function"}]

Deployed Bytecode

0x6080604052600436106100745760003560e01c8063a0e67e2b1161004e578063a0e67e2b1461014b578063c6a2a9f114610176578063d74f8edd146101a1578063f23a6e61146101cc57610075565b80631398a5f6146100ba578063150b7a02146100e55780637c99df4a1461012257610075565b5b60003411156100b8577f5af8184bef8e4b45eb9f6ed7734d04da38ced226495548f46e0c8ff8d7d9a52433346040516100af929190610915565b60405180910390a15b005b3480156100c657600080fd5b506100cf610209565b6040516100dc919061093e565b60405180910390f35b3480156100f157600080fd5b5061010c60048036038101906101079190610a2a565b610213565b6040516101199190610aed565b60405180910390f35b34801561012e57600080fd5b5061014960048036038101906101449190610d89565b610241565b005b34801561015757600080fd5b50610160610412565b60405161016d9190610f4a565b60405180910390f35b34801561018257600080fd5b5061018b6104a0565b604051610198919061093e565b60405180910390f35b3480156101ad57600080fd5b506101b66104aa565b6040516101c3919061093e565b60405180910390f35b3480156101d857600080fd5b506101f360048036038101906101ee9190610f6c565b6104af565b6040516102009190610aed565b60405180910390f35b6000600254905090565b60007f150b7a023d4804d13e8c85fb27262cb750cf6ba9f9dd3bb30d90f482ceeb4b1f905095945050505050565b3073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16036102af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102a690611063565b60405180910390fd5b610301878787878787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506104de565b610340576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610337906110cf565b60405180910390fd5b600160035461034f919061111e565b6003819055506000808873ffffffffffffffffffffffffffffffffffffffff16888585604051610380929190611191565b60006040518083038185875af1925050503d80600081146103bd576040519150601f19603f3d011682016040523d82523d6000602084013e6103c2565b606091505b50915091508115610407577fd3eec71143c45f28685b24760ea218d476917aa0ac0392a55e5304cef40bd2b689896040516103fe929190610915565b60405180910390a15b505050505050505050565b6060600180548060200260200160405190810160405280929190818152602001828054801561049657602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161044c575b5050505050905090565b6000600354905090565b600981565b60007ff23a6e612e1ff4830e658fe43f4e3cb4a5f8170bd5d9e69fb5d7a7fa9e4fdf9790509695505050505050565b600083518551146104ee57600080fd5b82518451146104fc57600080fd5b6001805490508551111561050f57600080fd5b6002548551101561051f57600080fd5b600061052c8888856106b4565b90506000865167ffffffffffffffff81111561054b5761054a610b19565b5b6040519080825280602002602001820160405280156105795781602001602082028036833780820191505090505b50905060005b875181101561069157600183601b8a84815181106105a05761059f6111aa565b5b60200260200101516105b291906111d9565b8984815181106105c5576105c46111aa565b5b60200260200101518985815181106105e0576105df6111aa565b5b602002602001015160405160008152602001604052604051610605949392919061122c565b6020604051602081039080840390855afa158015610627573d6000803e3d6000fd5b50505060206040510351828281518110610644576106436111aa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050808061068990611271565b91505061057f565b5061069b81610732565b6106a457600080fd5b6001925050509695505050505050565b6000806106c285858561087a565b905060006040518060400160405280601c81526020017f19457468657265756d205369676e6564204d6573736167653a0a33320000000081525090508082604051602001610711929190611340565b60405160208183030381529060405280519060200120925050509392505050565b60006001805490508251111561074b5760009050610875565b60005b825181101561086f5760008084838151811061076d5761076c6111aa565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166107cb576000915050610875565b60005b8181101561085b578381815181106107e9576107e86111aa565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1684838151811061081a576108196111aa565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff160361084857600092505050610875565b808061085390611271565b9150506107ce565b50808061086790611271565b91505061074e565b50600190505b919050565b600080308585856003546040516020016108989594939291906113d1565b604051602081830303815290604052805190602001209050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006108e6826108bb565b9050919050565b6108f6816108db565b82525050565b6000819050919050565b61090f816108fc565b82525050565b600060408201905061092a60008301856108ed565b6109376020830184610906565b9392505050565b60006020820190506109536000830184610906565b92915050565b6000604051905090565b600080fd5b600080fd5b610976816108db565b811461098157600080fd5b50565b6000813590506109938161096d565b92915050565b6109a2816108fc565b81146109ad57600080fd5b50565b6000813590506109bf81610999565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126109ea576109e96109c5565b5b8235905067ffffffffffffffff811115610a0757610a066109ca565b5b602083019150836001820283011115610a2357610a226109cf565b5b9250929050565b600080600080600060808688031215610a4657610a45610963565b5b6000610a5488828901610984565b9550506020610a6588828901610984565b9450506040610a76888289016109b0565b935050606086013567ffffffffffffffff811115610a9757610a96610968565b5b610aa3888289016109d4565b92509250509295509295909350565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610ae781610ab2565b82525050565b6000602082019050610b026000830184610ade565b92915050565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610b5182610b08565b810181811067ffffffffffffffff82111715610b7057610b6f610b19565b5b80604052505050565b6000610b83610959565b9050610b8f8282610b48565b919050565b600067ffffffffffffffff821115610baf57610bae610b19565b5b602082029050602081019050919050565b600060ff82169050919050565b610bd681610bc0565b8114610be157600080fd5b50565b600081359050610bf381610bcd565b92915050565b6000610c0c610c0784610b94565b610b79565b90508083825260208201905060208402830185811115610c2f57610c2e6109cf565b5b835b81811015610c585780610c448882610be4565b845260208401935050602081019050610c31565b5050509392505050565b600082601f830112610c7757610c766109c5565b5b8135610c87848260208601610bf9565b91505092915050565b600067ffffffffffffffff821115610cab57610caa610b19565b5b602082029050602081019050919050565b6000819050919050565b610ccf81610cbc565b8114610cda57600080fd5b50565b600081359050610cec81610cc6565b92915050565b6000610d05610d0084610c90565b610b79565b90508083825260208201905060208402830185811115610d2857610d276109cf565b5b835b81811015610d515780610d3d8882610cdd565b845260208401935050602081019050610d2a565b5050509392505050565b600082601f830112610d7057610d6f6109c5565b5b8135610d80848260208601610cf2565b91505092915050565b600080600080600080600060c0888a031215610da857610da7610963565b5b6000610db68a828b01610984565b9750506020610dc78a828b016109b0565b965050604088013567ffffffffffffffff811115610de857610de7610968565b5b610df48a828b01610c62565b955050606088013567ffffffffffffffff811115610e1557610e14610968565b5b610e218a828b01610d5b565b945050608088013567ffffffffffffffff811115610e4257610e41610968565b5b610e4e8a828b01610d5b565b93505060a088013567ffffffffffffffff811115610e6f57610e6e610968565b5b610e7b8a828b016109d4565b925092505092959891949750929550565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b610ec1816108db565b82525050565b6000610ed38383610eb8565b60208301905092915050565b6000602082019050919050565b6000610ef782610e8c565b610f018185610e97565b9350610f0c83610ea8565b8060005b83811015610f3d578151610f248882610ec7565b9750610f2f83610edf565b925050600181019050610f10565b5085935050505092915050565b60006020820190508181036000830152610f648184610eec565b905092915050565b60008060008060008060a08789031215610f8957610f88610963565b5b6000610f9789828a01610984565b9650506020610fa889828a01610984565b9550506040610fb989828a016109b0565b9450506060610fca89828a016109b0565b935050608087013567ffffffffffffffff811115610feb57610fea610968565b5b610ff789828a016109d4565b92509250509295509295509295565b600082825260208201905092915050565b7f4e6f7420616c6c6f772073656e64696e6720746f20796f757273656c66000000600082015250565b600061104d601d83611006565b915061105882611017565b602082019050919050565b6000602082019050818103600083015261107c81611040565b9050919050565b7f696e76616c6964207369676e6174757265730000000000000000000000000000600082015250565b60006110b9601283611006565b91506110c482611083565b602082019050919050565b600060208201905081810360008301526110e8816110ac565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611129826108fc565b9150611134836108fc565b925082820190508082111561114c5761114b6110ef565b5b92915050565b600081905092915050565b82818337600083830152505050565b60006111788385611152565b935061118583858461115d565b82840190509392505050565b600061119e82848661116c565b91508190509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006111e482610bc0565b91506111ef83610bc0565b9250828201905060ff811115611208576112076110ef565b5b92915050565b61121781610cbc565b82525050565b61122681610bc0565b82525050565b6000608082019050611241600083018761120e565b61124e602083018661121d565b61125b604083018561120e565b611268606083018461120e565b95945050505050565b600061127c826108fc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036112ae576112ad6110ef565b5b600182019050919050565b600081519050919050565b60005b838110156112e25780820151818401526020810190506112c7565b60008484015250505050565b60006112f9826112b9565b6113038185611152565b93506113138185602086016112c4565b80840191505092915050565b6000819050919050565b61133a61133582610cbc565b61131f565b82525050565b600061134c82856112ee565b91506113588284611329565b6020820191508190509392505050565b60008160601b9050919050565b600061138082611368565b9050919050565b600061139282611375565b9050919050565b6113aa6113a5826108db565b611387565b82525050565b6000819050919050565b6113cb6113c6826108fc565b6113b0565b82525050565b60006113dd8288611399565b6014820191506113ed8287611399565b6014820191506113fd82866113ba565b60208201915061140d82856112ee565b915061141982846113ba565b602082019150819050969550505050505056fea26469706673582212207814c6826ba0a1cd65cbabb7fec975a43710687fd922ba4dea534f426fad55da64736f6c63430008110033

Deployed Bytecode Sourcemap

867:6143:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2505:1;2493:9;:13;2489:72;;;2524:29;2531:10;2543:9;2524:29;;;;;;;:::i;:::-;;;;;;;;2489:72;867:6143;2839:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6550:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4496:560;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2648:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2744:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;902:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6771:236;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2839:78;2883:4;2903:8;;2896:15;;2839:78;:::o;6550:215::-;6667:6;6698:60;6684:75;;6550:215;;;;;;;:::o;4496:560::-;4676:4;4653:28;;:11;:28;;;4645:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;4730:53;4746:11;4759:5;4766:2;4770;4774;4778:4;;4730:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:15;:53::i;:::-;4722:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;4839:1;4826:10;;:14;;;;:::i;:::-;4813:10;:27;;;;4917:9;4928:17;4949:11;:16;;4973:5;4980:4;;4949:36;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4916:69;;;;4996:4;4992:59;;;5018:25;5024:11;5037:5;5018:25;;;;;;;:::i;:::-;;;;;;;;4992:59;4638:418;;4496:560;;;;;;;:::o;2648:86::-;2690:16;2722:6;2715:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2648:86;:::o;2744:85::-;2790:7;2813:10;;2806:17;;2744:85;:::o;902:40::-;941:1;902:40;:::o;6771:236::-;6900:6;6931:69;6917:84;;6771:236;;;;;;;;:::o;5217:742::-;5380:4;5414:2;:9;5401:2;:9;:22;5393:31;;;;;;5452:2;:9;5439:2;:9;:22;5431:31;;;;;;5490:6;:13;;;;5477:2;:9;:26;;5469:35;;;;;;5532:8;;5519:2;:9;:21;;5511:30;;;;;;5548:15;5566:43;5584:11;5597:5;5604:4;5566:17;:43::i;:::-;5548:61;;5616:22;5655:2;:9;5641:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5616:49;;5677:6;5672:226;5693:2;:9;5689:1;:13;5672:226;;;5848:42;5858:7;5873:2;5867;5870:1;5867:5;;;;;;;;:::i;:::-;;;;;;;;:8;;;;:::i;:::-;5877:2;5880:1;5877:5;;;;;;;;:::i;:::-;;;;;;;;5884:2;5887:1;5884:5;;;;;;;;:::i;:::-;;;;;;;;5848:42;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5837:5;5843:1;5837:8;;;;;;;;:::i;:::-;;;;;;;:53;;;;;;;;;;;5704:3;;;;;:::i;:::-;;;;5672:226;;;;5912:22;5928:5;5912:15;:22::i;:::-;5904:31;;;;;;5949:4;5942:11;;;;5217:742;;;;;;;;:::o;3498:340::-;3602:7;3618:29;3650:47;3672:11;3685:5;3692:4;3650:21;:47::i;:::-;3618:79;;3704:19;:56;;;;;;;;;;;;;;;;;;;3801:6;3809:21;3784:47;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3774:58;;;;;;3767:65;;;;3498:340;;;;;:::o;6032:475::-;6103:4;6135:6;:13;;;;6120:5;:12;:28;6116:65;;;6168:5;6161:12;;;;6116:65;6192:6;6187:297;6208:5;:12;6204:1;:16;6187:297;;;6243:7;:17;6251:5;6257:1;6251:8;;;;;;;;:::i;:::-;;;;;;;;6243:17;;;;;;;;;;;;;;;;;;;;;;;;;6238:63;;6284:5;6277:12;;;;;6238:63;6354:6;6349:128;6370:1;6366;:5;6349:128;;;6409:5;6415:1;6409:8;;;;;;;;:::i;:::-;;;;;;;;6397:20;;:5;6403:1;6397:8;;;;;;;;:::i;:::-;;;;;;;;:20;;;6393:73;;6445:5;6438:12;;;;;;6393:73;6373:3;;;;;:::i;:::-;;;;6349:128;;;;6222:3;;;;;:::i;:::-;;;;6187:297;;;;6497:4;6490:11;;6032:475;;;;:::o;3185:305::-;3293:7;3365:15;3418:4;3425:11;3438:5;3445:4;3451:10;;3393:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3383:80;;;;;;3365:98;;3477:7;3470:14;;;3185:305;;;;;:::o;7:126:1:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:77::-;402:7;431:5;420:16;;365:77;;;:::o;448:118::-;535:24;553:5;535:24;:::i;:::-;530:3;523:37;448:118;;:::o;572:332::-;693:4;731:2;720:9;716:18;708:26;;744:71;812:1;801:9;797:17;788:6;744:71;:::i;:::-;825:72;893:2;882:9;878:18;869:6;825:72;:::i;:::-;572:332;;;;;:::o;910:222::-;1003:4;1041:2;1030:9;1026:18;1018:26;;1054:71;1122:1;1111:9;1107:17;1098:6;1054:71;:::i;:::-;910:222;;;;:::o;1138:75::-;1171:6;1204:2;1198:9;1188:19;;1138:75;:::o;1219:117::-;1328:1;1325;1318:12;1342:117;1451:1;1448;1441:12;1465:122;1538:24;1556:5;1538:24;:::i;:::-;1531:5;1528:35;1518:63;;1577:1;1574;1567:12;1518:63;1465:122;:::o;1593:139::-;1639:5;1677:6;1664:20;1655:29;;1693:33;1720:5;1693:33;:::i;:::-;1593:139;;;;:::o;1738:122::-;1811:24;1829:5;1811:24;:::i;:::-;1804:5;1801:35;1791:63;;1850:1;1847;1840:12;1791:63;1738:122;:::o;1866:139::-;1912:5;1950:6;1937:20;1928:29;;1966:33;1993:5;1966:33;:::i;:::-;1866:139;;;;:::o;2011:117::-;2120:1;2117;2110:12;2134:117;2243:1;2240;2233:12;2257:117;2366:1;2363;2356:12;2393:552;2450:8;2460:6;2510:3;2503:4;2495:6;2491:17;2487:27;2477:122;;2518:79;;:::i;:::-;2477:122;2631:6;2618:20;2608:30;;2661:18;2653:6;2650:30;2647:117;;;2683:79;;:::i;:::-;2647:117;2797:4;2789:6;2785:17;2773:29;;2851:3;2843:4;2835:6;2831:17;2821:8;2817:32;2814:41;2811:128;;;2858:79;;:::i;:::-;2811:128;2393:552;;;;;:::o;2951:963::-;3048:6;3056;3064;3072;3080;3129:3;3117:9;3108:7;3104:23;3100:33;3097:120;;;3136:79;;:::i;:::-;3097:120;3256:1;3281:53;3326:7;3317:6;3306:9;3302:22;3281:53;:::i;:::-;3271:63;;3227:117;3383:2;3409:53;3454:7;3445:6;3434:9;3430:22;3409:53;:::i;:::-;3399:63;;3354:118;3511:2;3537:53;3582:7;3573:6;3562:9;3558:22;3537:53;:::i;:::-;3527:63;;3482:118;3667:2;3656:9;3652:18;3639:32;3698:18;3690:6;3687:30;3684:117;;;3720:79;;:::i;:::-;3684:117;3833:64;3889:7;3880:6;3869:9;3865:22;3833:64;:::i;:::-;3815:82;;;;3610:297;2951:963;;;;;;;;:::o;3920:149::-;3956:7;3996:66;3989:5;3985:78;3974:89;;3920:149;;;:::o;4075:115::-;4160:23;4177:5;4160:23;:::i;:::-;4155:3;4148:36;4075:115;;:::o;4196:218::-;4287:4;4325:2;4314:9;4310:18;4302:26;;4338:69;4404:1;4393:9;4389:17;4380:6;4338:69;:::i;:::-;4196:218;;;;:::o;4420:102::-;4461:6;4512:2;4508:7;4503:2;4496:5;4492:14;4488:28;4478:38;;4420:102;;;:::o;4528:180::-;4576:77;4573:1;4566:88;4673:4;4670:1;4663:15;4697:4;4694:1;4687:15;4714:281;4797:27;4819:4;4797:27;:::i;:::-;4789:6;4785:40;4927:6;4915:10;4912:22;4891:18;4879:10;4876:34;4873:62;4870:88;;;4938:18;;:::i;:::-;4870:88;4978:10;4974:2;4967:22;4757:238;4714:281;;:::o;5001:129::-;5035:6;5062:20;;:::i;:::-;5052:30;;5091:33;5119:4;5111:6;5091:33;:::i;:::-;5001:129;;;:::o;5136:309::-;5211:4;5301:18;5293:6;5290:30;5287:56;;;5323:18;;:::i;:::-;5287:56;5373:4;5365:6;5361:17;5353:25;;5433:4;5427;5423:15;5415:23;;5136:309;;;:::o;5451:86::-;5486:7;5526:4;5519:5;5515:16;5504:27;;5451:86;;;:::o;5543:118::-;5614:22;5630:5;5614:22;:::i;:::-;5607:5;5604:33;5594:61;;5651:1;5648;5641:12;5594:61;5543:118;:::o;5667:135::-;5711:5;5749:6;5736:20;5727:29;;5765:31;5790:5;5765:31;:::i;:::-;5667:135;;;;:::o;5823:704::-;5917:5;5942:79;5958:62;6013:6;5958:62;:::i;:::-;5942:79;:::i;:::-;5933:88;;6041:5;6070:6;6063:5;6056:21;6104:4;6097:5;6093:16;6086:23;;6157:4;6149:6;6145:17;6137:6;6133:30;6186:3;6178:6;6175:15;6172:122;;;6205:79;;:::i;:::-;6172:122;6320:6;6303:218;6337:6;6332:3;6329:15;6303:218;;;6412:3;6441:35;6472:3;6460:10;6441:35;:::i;:::-;6436:3;6429:48;6506:4;6501:3;6497:14;6490:21;;6379:142;6363:4;6358:3;6354:14;6347:21;;6303:218;;;6307:21;5923:604;;5823:704;;;;;:::o;6548:366::-;6617:5;6666:3;6659:4;6651:6;6647:17;6643:27;6633:122;;6674:79;;:::i;:::-;6633:122;6791:6;6778:20;6816:92;6904:3;6896:6;6889:4;6881:6;6877:17;6816:92;:::i;:::-;6807:101;;6623:291;6548:366;;;;:::o;6920:311::-;6997:4;7087:18;7079:6;7076:30;7073:56;;;7109:18;;:::i;:::-;7073:56;7159:4;7151:6;7147:17;7139:25;;7219:4;7213;7209:15;7201:23;;6920:311;;;:::o;7237:77::-;7274:7;7303:5;7292:16;;7237:77;;;:::o;7320:122::-;7393:24;7411:5;7393:24;:::i;:::-;7386:5;7383:35;7373:63;;7432:1;7429;7422:12;7373:63;7320:122;:::o;7448:139::-;7494:5;7532:6;7519:20;7510:29;;7548:33;7575:5;7548:33;:::i;:::-;7448:139;;;;:::o;7610:710::-;7706:5;7731:81;7747:64;7804:6;7747:64;:::i;:::-;7731:81;:::i;:::-;7722:90;;7832:5;7861:6;7854:5;7847:21;7895:4;7888:5;7884:16;7877:23;;7948:4;7940:6;7936:17;7928:6;7924:30;7977:3;7969:6;7966:15;7963:122;;;7996:79;;:::i;:::-;7963:122;8111:6;8094:220;8128:6;8123:3;8120:15;8094:220;;;8203:3;8232:37;8265:3;8253:10;8232:37;:::i;:::-;8227:3;8220:50;8299:4;8294:3;8290:14;8283:21;;8170:144;8154:4;8149:3;8145:14;8138:21;;8094:220;;;8098:21;7712:608;;7610:710;;;;;:::o;8343:370::-;8414:5;8463:3;8456:4;8448:6;8444:17;8440:27;8430:122;;8471:79;;:::i;:::-;8430:122;8588:6;8575:20;8613:94;8703:3;8695:6;8688:4;8680:6;8676:17;8613:94;:::i;:::-;8604:103;;8420:293;8343:370;;;;:::o;8719:1881::-;8907:6;8915;8923;8931;8939;8947;8955;9004:3;8992:9;8983:7;8979:23;8975:33;8972:120;;;9011:79;;:::i;:::-;8972:120;9131:1;9156:53;9201:7;9192:6;9181:9;9177:22;9156:53;:::i;:::-;9146:63;;9102:117;9258:2;9284:53;9329:7;9320:6;9309:9;9305:22;9284:53;:::i;:::-;9274:63;;9229:118;9414:2;9403:9;9399:18;9386:32;9445:18;9437:6;9434:30;9431:117;;;9467:79;;:::i;:::-;9431:117;9572:76;9640:7;9631:6;9620:9;9616:22;9572:76;:::i;:::-;9562:86;;9357:301;9725:2;9714:9;9710:18;9697:32;9756:18;9748:6;9745:30;9742:117;;;9778:79;;:::i;:::-;9742:117;9883:78;9953:7;9944:6;9933:9;9929:22;9883:78;:::i;:::-;9873:88;;9668:303;10038:3;10027:9;10023:19;10010:33;10070:18;10062:6;10059:30;10056:117;;;10092:79;;:::i;:::-;10056:117;10197:78;10267:7;10258:6;10247:9;10243:22;10197:78;:::i;:::-;10187:88;;9981:304;10352:3;10341:9;10337:19;10324:33;10384:18;10376:6;10373:30;10370:117;;;10406:79;;:::i;:::-;10370:117;10519:64;10575:7;10566:6;10555:9;10551:22;10519:64;:::i;:::-;10501:82;;;;10295:298;8719:1881;;;;;;;;;;:::o;10606:114::-;10673:6;10707:5;10701:12;10691:22;;10606:114;;;:::o;10726:184::-;10825:11;10859:6;10854:3;10847:19;10899:4;10894:3;10890:14;10875:29;;10726:184;;;;:::o;10916:132::-;10983:4;11006:3;10998:11;;11036:4;11031:3;11027:14;11019:22;;10916:132;;;:::o;11054:108::-;11131:24;11149:5;11131:24;:::i;:::-;11126:3;11119:37;11054:108;;:::o;11168:179::-;11237:10;11258:46;11300:3;11292:6;11258:46;:::i;:::-;11336:4;11331:3;11327:14;11313:28;;11168:179;;;;:::o;11353:113::-;11423:4;11455;11450:3;11446:14;11438:22;;11353:113;;;:::o;11502:732::-;11621:3;11650:54;11698:5;11650:54;:::i;:::-;11720:86;11799:6;11794:3;11720:86;:::i;:::-;11713:93;;11830:56;11880:5;11830:56;:::i;:::-;11909:7;11940:1;11925:284;11950:6;11947:1;11944:13;11925:284;;;12026:6;12020:13;12053:63;12112:3;12097:13;12053:63;:::i;:::-;12046:70;;12139:60;12192:6;12139:60;:::i;:::-;12129:70;;11985:224;11972:1;11969;11965:9;11960:14;;11925:284;;;11929:14;12225:3;12218:10;;11626:608;;;11502:732;;;;:::o;12240:373::-;12383:4;12421:2;12410:9;12406:18;12398:26;;12470:9;12464:4;12460:20;12456:1;12445:9;12441:17;12434:47;12498:108;12601:4;12592:6;12498:108;:::i;:::-;12490:116;;12240:373;;;;:::o;12619:1109::-;12725:6;12733;12741;12749;12757;12765;12814:3;12802:9;12793:7;12789:23;12785:33;12782:120;;;12821:79;;:::i;:::-;12782:120;12941:1;12966:53;13011:7;13002:6;12991:9;12987:22;12966:53;:::i;:::-;12956:63;;12912:117;13068:2;13094:53;13139:7;13130:6;13119:9;13115:22;13094:53;:::i;:::-;13084:63;;13039:118;13196:2;13222:53;13267:7;13258:6;13247:9;13243:22;13222:53;:::i;:::-;13212:63;;13167:118;13324:2;13350:53;13395:7;13386:6;13375:9;13371:22;13350:53;:::i;:::-;13340:63;;13295:118;13480:3;13469:9;13465:19;13452:33;13512:18;13504:6;13501:30;13498:117;;;13534:79;;:::i;:::-;13498:117;13647:64;13703:7;13694:6;13683:9;13679:22;13647:64;:::i;:::-;13629:82;;;;13423:298;12619:1109;;;;;;;;:::o;13734:169::-;13818:11;13852:6;13847:3;13840:19;13892:4;13887:3;13883:14;13868:29;;13734:169;;;;:::o;13909:179::-;14049:31;14045:1;14037:6;14033:14;14026:55;13909:179;:::o;14094:366::-;14236:3;14257:67;14321:2;14316:3;14257:67;:::i;:::-;14250:74;;14333:93;14422:3;14333:93;:::i;:::-;14451:2;14446:3;14442:12;14435:19;;14094:366;;;:::o;14466:419::-;14632:4;14670:2;14659:9;14655:18;14647:26;;14719:9;14713:4;14709:20;14705:1;14694:9;14690:17;14683:47;14747:131;14873:4;14747:131;:::i;:::-;14739:139;;14466:419;;;:::o;14891:168::-;15031:20;15027:1;15019:6;15015:14;15008:44;14891:168;:::o;15065:366::-;15207:3;15228:67;15292:2;15287:3;15228:67;:::i;:::-;15221:74;;15304:93;15393:3;15304:93;:::i;:::-;15422:2;15417:3;15413:12;15406:19;;15065:366;;;:::o;15437:419::-;15603:4;15641:2;15630:9;15626:18;15618:26;;15690:9;15684:4;15680:20;15676:1;15665:9;15661:17;15654:47;15718:131;15844:4;15718:131;:::i;:::-;15710:139;;15437:419;;;:::o;15862:180::-;15910:77;15907:1;15900:88;16007:4;16004:1;15997:15;16031:4;16028:1;16021:15;16048:191;16088:3;16107:20;16125:1;16107:20;:::i;:::-;16102:25;;16141:20;16159:1;16141:20;:::i;:::-;16136:25;;16184:1;16181;16177:9;16170:16;;16205:3;16202:1;16199:10;16196:36;;;16212:18;;:::i;:::-;16196:36;16048:191;;;;:::o;16245:147::-;16346:11;16383:3;16368:18;;16245:147;;;;:::o;16398:146::-;16495:6;16490:3;16485;16472:30;16536:1;16527:6;16522:3;16518:16;16511:27;16398:146;;;:::o;16572:327::-;16686:3;16707:88;16788:6;16783:3;16707:88;:::i;:::-;16700:95;;16805:56;16854:6;16849:3;16842:5;16805:56;:::i;:::-;16886:6;16881:3;16877:16;16870:23;;16572:327;;;;;:::o;16905:291::-;17045:3;17067:103;17166:3;17157:6;17149;17067:103;:::i;:::-;17060:110;;17187:3;17180:10;;16905:291;;;;;:::o;17202:180::-;17250:77;17247:1;17240:88;17347:4;17344:1;17337:15;17371:4;17368:1;17361:15;17388:188;17426:3;17445:18;17461:1;17445:18;:::i;:::-;17440:23;;17477:18;17493:1;17477:18;:::i;:::-;17472:23;;17518:1;17515;17511:9;17504:16;;17541:4;17536:3;17533:13;17530:39;;;17549:18;;:::i;:::-;17530:39;17388:188;;;;:::o;17582:118::-;17669:24;17687:5;17669:24;:::i;:::-;17664:3;17657:37;17582:118;;:::o;17706:112::-;17789:22;17805:5;17789:22;:::i;:::-;17784:3;17777:35;17706:112;;:::o;17824:545::-;17997:4;18035:3;18024:9;18020:19;18012:27;;18049:71;18117:1;18106:9;18102:17;18093:6;18049:71;:::i;:::-;18130:68;18194:2;18183:9;18179:18;18170:6;18130:68;:::i;:::-;18208:72;18276:2;18265:9;18261:18;18252:6;18208:72;:::i;:::-;18290;18358:2;18347:9;18343:18;18334:6;18290:72;:::i;:::-;17824:545;;;;;;;:::o;18375:233::-;18414:3;18437:24;18455:5;18437:24;:::i;:::-;18428:33;;18483:66;18476:5;18473:77;18470:103;;18553:18;;:::i;:::-;18470:103;18600:1;18593:5;18589:13;18582:20;;18375:233;;;:::o;18614:98::-;18665:6;18699:5;18693:12;18683:22;;18614:98;;;:::o;18718:246::-;18799:1;18809:113;18823:6;18820:1;18817:13;18809:113;;;18908:1;18903:3;18899:11;18893:18;18889:1;18884:3;18880:11;18873:39;18845:2;18842:1;18838:10;18833:15;;18809:113;;;18956:1;18947:6;18942:3;18938:16;18931:27;18780:184;18718:246;;;:::o;18970:386::-;19074:3;19102:38;19134:5;19102:38;:::i;:::-;19156:88;19237:6;19232:3;19156:88;:::i;:::-;19149:95;;19253:65;19311:6;19306:3;19299:4;19292:5;19288:16;19253:65;:::i;:::-;19343:6;19338:3;19334:16;19327:23;;19078:278;18970:386;;;;:::o;19362:79::-;19401:7;19430:5;19419:16;;19362:79;;;:::o;19447:157::-;19552:45;19572:24;19590:5;19572:24;:::i;:::-;19552:45;:::i;:::-;19547:3;19540:58;19447:157;;:::o;19610:412::-;19768:3;19790:93;19879:3;19870:6;19790:93;:::i;:::-;19783:100;;19893:75;19964:3;19955:6;19893:75;:::i;:::-;19993:2;19988:3;19984:12;19977:19;;20013:3;20006:10;;19610:412;;;;;:::o;20028:94::-;20061:8;20109:5;20105:2;20101:14;20080:35;;20028:94;;;:::o;20128:::-;20167:7;20196:20;20210:5;20196:20;:::i;:::-;20185:31;;20128:94;;;:::o;20228:100::-;20267:7;20296:26;20316:5;20296:26;:::i;:::-;20285:37;;20228:100;;;:::o;20334:157::-;20439:45;20459:24;20477:5;20459:24;:::i;:::-;20439:45;:::i;:::-;20434:3;20427:58;20334:157;;:::o;20497:79::-;20536:7;20565:5;20554:16;;20497:79;;;:::o;20582:157::-;20687:45;20707:24;20725:5;20707:24;:::i;:::-;20687:45;:::i;:::-;20682:3;20675:58;20582:157;;:::o;20745:835::-;20987:3;21002:75;21073:3;21064:6;21002:75;:::i;:::-;21102:2;21097:3;21093:12;21086:19;;21115:75;21186:3;21177:6;21115:75;:::i;:::-;21215:2;21210:3;21206:12;21199:19;;21228:75;21299:3;21290:6;21228:75;:::i;:::-;21328:2;21323:3;21319:12;21312:19;;21348:93;21437:3;21428:6;21348:93;:::i;:::-;21341:100;;21451:75;21522:3;21513:6;21451:75;:::i;:::-;21551:2;21546:3;21542:12;21535:19;;21571:3;21564:10;;20745:835;;;;;;;;:::o

Swarm Source

ipfs://7814c6826ba0a1cd65cbabb7fec975a43710687fd922ba4dea534f426fad55da

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.