More Info
Private Name Tags
ContractCreator
Multi Chain
Multichain Addresses
9 addresses found via
Latest 25 from a total of 1,875 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Batch Deposit | 18186937 | 11 hrs 44 mins ago | IN | 32 ETH | 0.00107972 | ||||
Batch Deposit | 18179973 | 1 day 11 hrs ago | IN | 256 ETH | 0.00634838 | ||||
Batch Deposit | 18179973 | 1 day 11 hrs ago | IN | 320 ETH | 0.00780651 | ||||
Batch Deposit | 18179840 | 1 day 11 hrs ago | IN | 3,200 ETH | 0.04777428 | ||||
Batch Deposit | 18179364 | 1 day 13 hrs ago | IN | 96 ETH | 0.00267952 | ||||
Batch Deposit | 18179364 | 1 day 13 hrs ago | IN | 32 ETH | 0.00138976 | ||||
Batch Deposit | 18172215 | 2 days 13 hrs ago | IN | 32 ETH | 0.00132788 | ||||
Batch Deposit | 18171348 | 2 days 16 hrs ago | IN | 32 ETH | 0.00545216 | ||||
Batch Deposit | 18165547 | 3 days 11 hrs ago | IN | 3,200 ETH | 0.05472927 | ||||
Batch Deposit | 18165106 | 3 days 13 hrs ago | IN | 32 ETH | 0.00164824 | ||||
Batch Deposit | 18158060 | 4 days 12 hrs ago | IN | 32 ETH | 0.00059147 | ||||
Batch Deposit | 18153037 | 5 days 6 hrs ago | IN | 160 ETH | 0.0016206 | ||||
Batch Deposit | 18144507 | 6 days 10 hrs ago | IN | 32 ETH | 0.00086207 | ||||
Batch Deposit | 18142035 | 6 days 19 hrs ago | IN | 3,552 ETH | 0.26913528 | ||||
Batch Deposit | 18142012 | 6 days 19 hrs ago | IN | 3,200 ETH | 0.24251088 | ||||
Batch Deposit | 18141990 | 6 days 19 hrs ago | IN | 3,200 ETH | 0.24320608 | ||||
Batch Deposit | 18141947 | 6 days 19 hrs ago | IN | 32 ETH | 0.00521408 | ||||
Batch Deposit | 18140009 | 7 days 2 hrs ago | IN | 160 ETH | 0.00223638 | ||||
Batch Deposit | 18137956 | 7 days 9 hrs ago | IN | 128 ETH | 0.001749 | ||||
Batch Deposit | 18137224 | 7 days 11 hrs ago | IN | 2,496 ETH | 0.07981701 | ||||
Batch Deposit | 18136755 | 7 days 13 hrs ago | IN | 32 ETH | 0.00187395 | ||||
Batch Deposit | 18136752 | 7 days 13 hrs ago | IN | 32 ETH | 0.00173966 | ||||
Batch Deposit | 18133205 | 8 days 1 hr ago | IN | 32 ETH | 0.00086227 | ||||
Batch Deposit | 18129634 | 8 days 13 hrs ago | IN | 32 ETH | 0.00108523 | ||||
Batch Deposit | 18122513 | 9 days 13 hrs ago | IN | 32 ETH | 0.0011448 |
Latest 25 internal transactions (View All)
Parent Txn Hash | Block | From | To | Value | ||
---|---|---|---|---|---|---|
18186937 | 11 hrs 44 mins ago | 32 ETH | ||||
18179973 | 1 day 11 hrs ago | 32 ETH | ||||
18179973 | 1 day 11 hrs ago | 32 ETH | ||||
18179973 | 1 day 11 hrs ago | 32 ETH | ||||
18179973 | 1 day 11 hrs ago | 32 ETH | ||||
18179973 | 1 day 11 hrs ago | 32 ETH | ||||
18179973 | 1 day 11 hrs ago | 32 ETH | ||||
18179973 | 1 day 11 hrs ago | 32 ETH | ||||
18179973 | 1 day 11 hrs ago | 32 ETH | ||||
18179973 | 1 day 11 hrs ago | 32 ETH | ||||
18179973 | 1 day 11 hrs ago | 32 ETH | ||||
18179973 | 1 day 11 hrs ago | 32 ETH | ||||
18179973 | 1 day 11 hrs ago | 32 ETH | ||||
18179973 | 1 day 11 hrs ago | 32 ETH | ||||
18179973 | 1 day 11 hrs ago | 32 ETH | ||||
18179973 | 1 day 11 hrs ago | 32 ETH | ||||
18179973 | 1 day 11 hrs ago | 32 ETH | ||||
18179973 | 1 day 11 hrs ago | 32 ETH | ||||
18179973 | 1 day 11 hrs ago | 32 ETH | ||||
18179840 | 1 day 11 hrs ago | 32 ETH | ||||
18179840 | 1 day 11 hrs ago | 32 ETH | ||||
18179840 | 1 day 11 hrs ago | 32 ETH | ||||
18179840 | 1 day 11 hrs ago | 32 ETH | ||||
18179840 | 1 day 11 hrs ago | 32 ETH | ||||
18179840 | 1 day 11 hrs ago | 32 ETH |
Loading...
Loading
Contract Name:
BatchDeposit
Compiler Version
v0.5.11+commit.22be8592
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-11-23 */ pragma solidity 0.5.11; /// npm package/version - @openzeppelin/contracts-ethereum-package: 2.5.0 /** * @dev Collection of functions related to the address type */ 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); } /** * @dev Converts an `address` into `address payable`. Note that this is * simply a type cast: the actual underlying value is not changed. * * _Available since v2.4.0._ */ function toPayable(address account) internal pure returns (address payable) { return address(uint160(account)); } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. * * _Available since v2.4.0._ */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-call-value (bool success, ) = recipient.call.value(amount)(""); require(success, "Address: unable to send value, recipient may have reverted"); } } pragma solidity 0.5.11; /// npm package/version - @openzeppelin/contracts-ethereum-package: 2.5.0 /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. * * _Available since v2.4.0._ */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. * * _Available since v2.4.0._ */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. * * _Available since v2.4.0._ */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } // SPDX-License-Identifier: MIT pragma solidity 0.5.11; /// @notice Interface of the official Deposit contract from the ETH /// Foundation. interface IDeposit { /// @notice Submit a Phase 0 DepositData object. /// /// @param pubkey - A BLS12-381 public key. /// @param withdrawal_credentials - Commitment to a public key for withdrawals. /// @param signature - A BLS12-381 signature. /// @param deposit_data_root - The SHA-256 hash of the SSZ-encoded DepositData object. /// Used as a protection against malformed input. function deposit( bytes calldata pubkey, bytes calldata withdrawal_credentials, bytes calldata signature, bytes32 deposit_data_root ) external payable; } // SPDX-License-Identifier: MIT pragma solidity 0.5.11; pragma experimental ABIEncoderV2; /// @notice Batch ETH2 deposits, uses the official Deposit contract from the ETH /// Foundation for each atomic deposit. This contract acts as a for loop. /// Each deposit size will be an optimal 32 ETH. /// /// @dev The batch size has an upper bound due to the block gas limit. Each atomic /// deposit costs ~62,000 gas. The current block gas-limit is ~12,400,000 gas. /// /// Author: Staked Securely, Inc. (https://staked.us/) contract BatchDeposit { using Address for address payable; using SafeMath for uint256; /*************** STORAGE VARIABLE DECLARATIONS **************/ uint256 public constant DEPOSIT_AMOUNT = 32 ether; // currently points at the Mainnet Deposit Contract address public constant DEPOSIT_CONTRACT_ADDRESS = 0x00000000219ab540356cBB839Cbe05303d7705Fa; IDeposit private constant DEPOSIT_CONTRACT = IDeposit(DEPOSIT_CONTRACT_ADDRESS); /*************** EVENT DECLARATIONS **************/ /// @notice Signals a refund of sent-in Ether that was extra and not required. /// /// @dev The refund is sent to the msg.sender. /// /// @param to - The ETH address receiving the ETH. /// @param amount - The amount of ETH being refunded. event LogSendDepositLeftover(address to, uint256 amount); /////////////////////// FUNCTION DECLARATIONS BEGIN /////////////////////// /********************* PUBLIC FUNCTIONS **********************/ /// @notice Empty constructor. constructor() public {} /// @notice Fallback function. /// /// @dev Used to address parties trying to send in Ether with a helpful /// error message. function() external payable { revert("#BatchDeposit fallback(): Use the `batchDeposit(...)` function to send Ether to this contract."); } /// @notice Submit index-matching arrays that form Phase 0 DepositData objects. /// Will create a deposit transaction per index of the arrays submitted. /// /// @param pubkeys - An array of BLS12-381 public keys. /// @param withdrawal_credentials - An array of public keys for withdrawals. /// @param signatures - An array of BLS12-381 signatures. /// @param deposit_data_roots - An array of the SHA-256 hash of the SSZ-encoded DepositData object. function batchDeposit( bytes[] calldata pubkeys, bytes[] calldata withdrawal_credentials, bytes[] calldata signatures, bytes32[] calldata deposit_data_roots ) external payable { require( pubkeys.length == withdrawal_credentials.length && pubkeys.length == signatures.length && pubkeys.length == deposit_data_roots.length, "#BatchDeposit batchDeposit(): All parameter array's must have the same length." ); require( pubkeys.length > 0, "#BatchDeposit batchDeposit(): All parameter array's must have a length greater than zero." ); require( msg.value >= DEPOSIT_AMOUNT.mul(pubkeys.length), "#BatchDeposit batchDeposit(): Ether deposited needs to be at least: 32 * (parameter `pubkeys[]` length)." ); uint256 deposited = 0; // Loop through DepositData arrays submitting deposits for (uint256 i = 0; i < pubkeys.length; i++) { DEPOSIT_CONTRACT.deposit.value(DEPOSIT_AMOUNT)( pubkeys[i], withdrawal_credentials[i], signatures[i], deposit_data_roots[i] ); deposited = deposited.add(DEPOSIT_AMOUNT); } assert(deposited == DEPOSIT_AMOUNT.mul(pubkeys.length)); uint256 ethToReturn = msg.value.sub(deposited); if (ethToReturn > 0) { // Emit `LogSendDepositLeftover` log emit LogSendDepositLeftover(msg.sender, ethToReturn); // This function doesn't guard against re-entrancy, and we're calling an // untrusted address, but in this situation there is no state, etc. to // take advantage of, so re-entrancy guard is unneccesary gas cost. // This function uses call.value(), and handles return values/failures by // reverting the transaction. (msg.sender).sendValue(ethToReturn); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"DEPOSIT_CONTRACT_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes[]","name":"pubkeys","type":"bytes[]"},{"internalType":"bytes[]","name":"withdrawal_credentials","type":"bytes[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"},{"internalType":"bytes32[]","name":"deposit_data_roots","type":"bytes32[]"}],"name":"batchDeposit","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"DEPOSIT_AMOUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogSendDepositLeftover","type":"event"}]
Contract Creation Code
608060405234801561001057600080fd5b50611044806100206000396000f3fe6080604052600436106100345760003560e01c8063a524679e1461006f578063ca0bfcce1461009a578063ec6925a7146100b6575b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161006690610ddf565b60405180910390fd5b34801561007b57600080fd5b506100846100e1565b6040516100919190610d19565b60405180910390f35b6100b460048036036100af91908101906107d1565b6100f5565b005b3480156100c257600080fd5b506100cb6104bb565b6040516100d89190610edf565b60405180910390f35b6f219ab540356cbb839cbe05303d7705fa81565b858590508888905014801561010f57508383905088889050145b801561012057508181905088889050145b61015f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015690610e1f565b60405180910390fd5b600088889050116101a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161019c90610ebf565b60405180910390fd5b6101c4888890506801bc16d674ec8000006104c890919063ffffffff16565b341015610206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101fd90610e9f565b60405180910390fd5b600080905060008090505b89899050811015610404576f219ab540356cbb839cbe05303d7705fa73ffffffffffffffffffffffffffffffffffffffff1663228951186801bc16d674ec8000008c8c8581811061025e57fe5b905060200281018035600160200383360303811261027b57600080fd5b8083019250508135905060208201915067ffffffffffffffff8111156102a057600080fd5b6001810236038213156102b257600080fd5b8c8c878181106102be57fe5b90506020028101803560016020038336030381126102db57600080fd5b8083019250508135905060208201915067ffffffffffffffff81111561030057600080fd5b60018102360382131561031257600080fd5b8c8c8981811061031e57fe5b905060200281018035600160200383360303811261033b57600080fd5b8083019250508135905060208201915067ffffffffffffffff81111561036057600080fd5b60018102360382131561037257600080fd5b8c8c8b81811061037e57fe5b905060200201356040518963ffffffff1660e01b81526004016103a79796959493929190610d5d565b6000604051808303818588803b1580156103c057600080fd5b505af11580156103d4573d6000803e3d6000fd5b50505050506103f56801bc16d674ec8000008361053890919063ffffffff16565b91508080600101915050610211565b50610424898990506801bc16d674ec8000006104c890919063ffffffff16565b811461042c57fe5b6000610441823461058d90919063ffffffff16565b905060008111156104af577f5bf796d990a3e234f75e4f1e307ccc21ddd796f87f41563e8320696505ee268a338260405161047d929190610d34565b60405180910390a16104ae813373ffffffffffffffffffffffffffffffffffffffff166105d790919063ffffffff16565b5b50505050505050505050565b6801bc16d674ec80000081565b6000808314156104db5760009050610532565b60008284029050828482816104ec57fe5b041461052d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052490610e7f565b60405180910390fd5b809150505b92915050565b600080828401905083811015610583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057a90610dff565b60405180910390fd5b8091505092915050565b60006105cf83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506106e2565b905092915050565b803073ffffffffffffffffffffffffffffffffffffffff16311015610631576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062890610e5f565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405161065790610d04565b60006040518083038185875af1925050503d8060008114610694576040519150601f19603f3d011682016040523d82523d6000602084013e610699565b606091505b50509050806106dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d490610e3f565b60405180910390fd5b505050565b600083831115829061072a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107219190610dbd565b60405180910390fd5b5060008385039050809150509392505050565b60008083601f84011261074f57600080fd5b8235905067ffffffffffffffff81111561076857600080fd5b60208301915083602082028301111561078057600080fd5b9250929050565b60008083601f84011261079957600080fd5b8235905067ffffffffffffffff8111156107b257600080fd5b6020830191508360208202830111156107ca57600080fd5b9250929050565b6000806000806000806000806080898b0312156107ed57600080fd5b600089013567ffffffffffffffff81111561080757600080fd5b6108138b828c01610787565b9850985050602089013567ffffffffffffffff81111561083257600080fd5b61083e8b828c01610787565b9650965050604089013567ffffffffffffffff81111561085d57600080fd5b6108698b828c01610787565b9450945050606089013567ffffffffffffffff81111561088857600080fd5b6108948b828c0161073d565b92509250509295985092959890939650565b6108af81610f78565b82525050565b6108be81610f32565b82525050565b6108cd81610f44565b82525050565b60006108df8385610f05565b93506108ec838584610fae565b6108f583610ff0565b840190509392505050565b600061090b82610efa565b6109158185610f21565b9350610925818560208601610fbd565b61092e81610ff0565b840191505092915050565b6000610946605e83610f21565b91507f2342617463684465706f7369742066616c6c6261636b28293a2055736520746860008301527f65206062617463684465706f736974282e2e2e29602066756e6374696f6e207460208301527f6f2073656e6420457468657220746f207468697320636f6e74726163742e00006040830152606082019050919050565b60006109d2601b83610f21565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b6000610a12604e83610f21565b91507f2342617463684465706f7369742062617463684465706f73697428293a20416c60008301527f6c20706172616d657465722061727261792773206d757374206861766520746860208301527f652073616d65206c656e6774682e0000000000000000000000000000000000006040830152606082019050919050565b6000610a9e603a83610f21565b91507f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008301527f6563697069656e74206d617920686176652072657665727465640000000000006020830152604082019050919050565b6000610b04601d83610f21565b91507f416464726573733a20696e73756666696369656e742062616c616e63650000006000830152602082019050919050565b6000610b44602183610f21565b91507f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008301527f77000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000610baa600083610f16565b9150600082019050919050565b6000610bc4606883610f21565b91507f2342617463684465706f7369742062617463684465706f73697428293a20457460008301527f686572206465706f7369746564206e6565647320746f206265206174206c656160208301527f73743a203332202a2028706172616d6574657220607075626b6579735b5d602060408301527f6c656e677468292e0000000000000000000000000000000000000000000000006060830152608082019050919050565b6000610c76605983610f21565b91507f2342617463684465706f7369742062617463684465706f73697428293a20416c60008301527f6c20706172616d657465722061727261792773206d757374206861766520612060208301527f6c656e6774682067726561746572207468616e207a65726f2e000000000000006040830152606082019050919050565b610cfe81610f6e565b82525050565b6000610d0f82610b9d565b9150819050919050565b6000602082019050610d2e60008301846108b5565b92915050565b6000604082019050610d4960008301856108a6565b610d566020830184610cf5565b9392505050565b60006080820190508181036000830152610d7881898b6108d3565b90508181036020830152610d8d8187896108d3565b90508181036040830152610da28185876108d3565b9050610db160608301846108c4565b98975050505050505050565b60006020820190508181036000830152610dd78184610900565b905092915050565b60006020820190508181036000830152610df881610939565b9050919050565b60006020820190508181036000830152610e18816109c5565b9050919050565b60006020820190508181036000830152610e3881610a05565b9050919050565b60006020820190508181036000830152610e5881610a91565b9050919050565b60006020820190508181036000830152610e7881610af7565b9050919050565b60006020820190508181036000830152610e9881610b37565b9050919050565b60006020820190508181036000830152610eb881610bb7565b9050919050565b60006020820190508181036000830152610ed881610c69565b9050919050565b6000602082019050610ef46000830184610cf5565b92915050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000610f3d82610f4e565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610f8382610f8a565b9050919050565b6000610f9582610f9c565b9050919050565b6000610fa782610f4e565b9050919050565b82818337600083830152505050565b60005b83811015610fdb578082015181840152602081019050610fc0565b83811115610fea576000848401525b50505050565b6000601f19601f830116905091905056fea365627a7a72315820e2656b628c68ffd1e92b24afd82b4ca42816054a2e4c9addcff9c1da6bf3c00b6c6578706572696d656e74616cf564736f6c634300050b0040
Deployed Bytecode
0x6080604052600436106100345760003560e01c8063a524679e1461006f578063ca0bfcce1461009a578063ec6925a7146100b6575b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161006690610ddf565b60405180910390fd5b34801561007b57600080fd5b506100846100e1565b6040516100919190610d19565b60405180910390f35b6100b460048036036100af91908101906107d1565b6100f5565b005b3480156100c257600080fd5b506100cb6104bb565b6040516100d89190610edf565b60405180910390f35b6f219ab540356cbb839cbe05303d7705fa81565b858590508888905014801561010f57508383905088889050145b801561012057508181905088889050145b61015f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015690610e1f565b60405180910390fd5b600088889050116101a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161019c90610ebf565b60405180910390fd5b6101c4888890506801bc16d674ec8000006104c890919063ffffffff16565b341015610206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101fd90610e9f565b60405180910390fd5b600080905060008090505b89899050811015610404576f219ab540356cbb839cbe05303d7705fa73ffffffffffffffffffffffffffffffffffffffff1663228951186801bc16d674ec8000008c8c8581811061025e57fe5b905060200281018035600160200383360303811261027b57600080fd5b8083019250508135905060208201915067ffffffffffffffff8111156102a057600080fd5b6001810236038213156102b257600080fd5b8c8c878181106102be57fe5b90506020028101803560016020038336030381126102db57600080fd5b8083019250508135905060208201915067ffffffffffffffff81111561030057600080fd5b60018102360382131561031257600080fd5b8c8c8981811061031e57fe5b905060200281018035600160200383360303811261033b57600080fd5b8083019250508135905060208201915067ffffffffffffffff81111561036057600080fd5b60018102360382131561037257600080fd5b8c8c8b81811061037e57fe5b905060200201356040518963ffffffff1660e01b81526004016103a79796959493929190610d5d565b6000604051808303818588803b1580156103c057600080fd5b505af11580156103d4573d6000803e3d6000fd5b50505050506103f56801bc16d674ec8000008361053890919063ffffffff16565b91508080600101915050610211565b50610424898990506801bc16d674ec8000006104c890919063ffffffff16565b811461042c57fe5b6000610441823461058d90919063ffffffff16565b905060008111156104af577f5bf796d990a3e234f75e4f1e307ccc21ddd796f87f41563e8320696505ee268a338260405161047d929190610d34565b60405180910390a16104ae813373ffffffffffffffffffffffffffffffffffffffff166105d790919063ffffffff16565b5b50505050505050505050565b6801bc16d674ec80000081565b6000808314156104db5760009050610532565b60008284029050828482816104ec57fe5b041461052d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052490610e7f565b60405180910390fd5b809150505b92915050565b600080828401905083811015610583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057a90610dff565b60405180910390fd5b8091505092915050565b60006105cf83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506106e2565b905092915050565b803073ffffffffffffffffffffffffffffffffffffffff16311015610631576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062890610e5f565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405161065790610d04565b60006040518083038185875af1925050503d8060008114610694576040519150601f19603f3d011682016040523d82523d6000602084013e610699565b606091505b50509050806106dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d490610e3f565b60405180910390fd5b505050565b600083831115829061072a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107219190610dbd565b60405180910390fd5b5060008385039050809150509392505050565b60008083601f84011261074f57600080fd5b8235905067ffffffffffffffff81111561076857600080fd5b60208301915083602082028301111561078057600080fd5b9250929050565b60008083601f84011261079957600080fd5b8235905067ffffffffffffffff8111156107b257600080fd5b6020830191508360208202830111156107ca57600080fd5b9250929050565b6000806000806000806000806080898b0312156107ed57600080fd5b600089013567ffffffffffffffff81111561080757600080fd5b6108138b828c01610787565b9850985050602089013567ffffffffffffffff81111561083257600080fd5b61083e8b828c01610787565b9650965050604089013567ffffffffffffffff81111561085d57600080fd5b6108698b828c01610787565b9450945050606089013567ffffffffffffffff81111561088857600080fd5b6108948b828c0161073d565b92509250509295985092959890939650565b6108af81610f78565b82525050565b6108be81610f32565b82525050565b6108cd81610f44565b82525050565b60006108df8385610f05565b93506108ec838584610fae565b6108f583610ff0565b840190509392505050565b600061090b82610efa565b6109158185610f21565b9350610925818560208601610fbd565b61092e81610ff0565b840191505092915050565b6000610946605e83610f21565b91507f2342617463684465706f7369742066616c6c6261636b28293a2055736520746860008301527f65206062617463684465706f736974282e2e2e29602066756e6374696f6e207460208301527f6f2073656e6420457468657220746f207468697320636f6e74726163742e00006040830152606082019050919050565b60006109d2601b83610f21565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b6000610a12604e83610f21565b91507f2342617463684465706f7369742062617463684465706f73697428293a20416c60008301527f6c20706172616d657465722061727261792773206d757374206861766520746860208301527f652073616d65206c656e6774682e0000000000000000000000000000000000006040830152606082019050919050565b6000610a9e603a83610f21565b91507f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008301527f6563697069656e74206d617920686176652072657665727465640000000000006020830152604082019050919050565b6000610b04601d83610f21565b91507f416464726573733a20696e73756666696369656e742062616c616e63650000006000830152602082019050919050565b6000610b44602183610f21565b91507f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008301527f77000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000610baa600083610f16565b9150600082019050919050565b6000610bc4606883610f21565b91507f2342617463684465706f7369742062617463684465706f73697428293a20457460008301527f686572206465706f7369746564206e6565647320746f206265206174206c656160208301527f73743a203332202a2028706172616d6574657220607075626b6579735b5d602060408301527f6c656e677468292e0000000000000000000000000000000000000000000000006060830152608082019050919050565b6000610c76605983610f21565b91507f2342617463684465706f7369742062617463684465706f73697428293a20416c60008301527f6c20706172616d657465722061727261792773206d757374206861766520612060208301527f6c656e6774682067726561746572207468616e207a65726f2e000000000000006040830152606082019050919050565b610cfe81610f6e565b82525050565b6000610d0f82610b9d565b9150819050919050565b6000602082019050610d2e60008301846108b5565b92915050565b6000604082019050610d4960008301856108a6565b610d566020830184610cf5565b9392505050565b60006080820190508181036000830152610d7881898b6108d3565b90508181036020830152610d8d8187896108d3565b90508181036040830152610da28185876108d3565b9050610db160608301846108c4565b98975050505050505050565b60006020820190508181036000830152610dd78184610900565b905092915050565b60006020820190508181036000830152610df881610939565b9050919050565b60006020820190508181036000830152610e18816109c5565b9050919050565b60006020820190508181036000830152610e3881610a05565b9050919050565b60006020820190508181036000830152610e5881610a91565b9050919050565b60006020820190508181036000830152610e7881610af7565b9050919050565b60006020820190508181036000830152610e9881610b37565b9050919050565b60006020820190508181036000830152610eb881610bb7565b9050919050565b60006020820190508181036000830152610ed881610c69565b9050919050565b6000602082019050610ef46000830184610cf5565b92915050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000610f3d82610f4e565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610f8382610f8a565b9050919050565b6000610f9582610f9c565b9050919050565b6000610fa782610f4e565b9050919050565b82818337600083830152505050565b60005b83811015610fdb578082015181840152602081019050610fc0565b83811115610fea576000848401525b50505050565b6000601f19601f830116905091905056fea365627a7a72315820e2656b628c68ffd1e92b24afd82b4ca42816054a2e4c9addcff9c1da6bf3c00b6c6578706572696d656e74616cf564736f6c634300050b0040
Deployed Bytecode Sourcemap
10018:3957:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;11314:104;;;;;;;;;;;;;;;;;;;10305:93;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10305:93:0;;;:::i;:::-;;;;;;;;;;;;;;;;11925:2047;;;;;;;;;;;;;;;;:::i;:::-;;10192:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10192:49:0;;;:::i;:::-;;;;;;;;;;;;;;;;10305:93;10356:42;10305:93;:::o;11925:2047::-;12193:22;;:29;;12175:7;;:14;;:47;:99;;;;;12257:10;;:17;;12239:7;;:14;;:35;12175:99;:159;;;;;12309:18;;:25;;12291:7;;:14;;:43;12175:159;12153:287;;;;;;;;;;;;;;;;;;;;;;12490:1;12473:7;;:14;;:18;12451:157;;;;;;;;;;;;;;;;;;;;;;12654:34;12673:7;;:14;;10233:8;12654:18;;:34;;;;:::i;:::-;12641:9;:47;;12619:201;;;;;;;;;;;;;;;;;;;;;;12831:17;12851:1;12831:21;;12934:9;12946:1;12934:13;;12929:334;12953:7;;:14;;12949:1;:18;12929:334;;;10356:42;12989:24;;;10233:8;13054:7;;13062:1;13054:10;;;;;;;;;;;;;43:11:-1;30:25;137:1;131:4;127:12;116:8;100:14;96:29;92:48;72:18;68:73;58:2;;155:1;152;145:12;58:2;188:18;178:8;174:33;162:45;;0:210;29:8;16:22;6:32;;69:4;59:8;55:19;43:31;;93:18;85:6;82:30;79:2;;;125:1;122;115:12;79:2;183:3;175:6;171:16;155:14;151:37;141:8;137:52;134:2;;;202:1;199;192:12;134:2;13083:22:0;;13106:1;13083:25;;;;;;;;;;;;;43:11:-1;30:25;137:1;131:4;127:12;116:8;100:14;96:29;92:48;72:18;68:73;58:2;;155:1;152;145:12;58:2;188:18;178:8;174:33;162:45;;0:210;29:8;16:22;6:32;;69:4;59:8;55:19;43:31;;93:18;85:6;82:30;79:2;;;125:1;122;115:12;79:2;183:3;175:6;171:16;155:14;151:37;141:8;137:52;134:2;;;202:1;199;192:12;134:2;13127:10:0;;13138:1;13127:13;;;;;;;;;;;;;43:11:-1;30:25;137:1;131:4;127:12;116:8;100:14;96:29;92:48;72:18;68:73;58:2;;155:1;152;145:12;58:2;188:18;178:8;174:33;162:45;;0:210;29:8;16:22;6:32;;69:4;59:8;55:19;43:31;;93:18;85:6;82:30;79:2;;;125:1;122;115:12;79:2;183:3;175:6;171:16;155:14;151:37;141:8;137:52;134:2;;;202:1;199;192:12;134:2;13159:18:0;;13178:1;13159:21;;;;;;;;;;;;;12989:206;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12989:206:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12989:206:0;;;;;13222:29;10233:8;13222:9;:13;;:29;;;;:::i;:::-;13210:41;;12969:3;;;;;;;12929:334;;;;13293:34;13312:7;;:14;;10233:8;13293:18;;:34;;;;:::i;:::-;13280:9;:47;13273:55;;;;13339:19;13361:24;13375:9;13361;:13;;:24;;;;:::i;:::-;13339:46;;13414:1;13400:11;:15;13396:569;;;13485:47;13508:10;13520:11;13485:47;;;;;;;;;;;;;;;;13918:35;13941:11;13919:10;13918:22;;;;:35;;;;:::i;:::-;13396:569;11925:2047;;;;;;;;;;:::o;10192:49::-;10233:8;10192:49;:::o;5413:471::-;5471:7;5721:1;5716;:6;5712:47;;;5746:1;5739:8;;;;5712:47;5771:9;5787:1;5783;:5;5771:17;;5816:1;5811;5807;:5;;;;;;:10;5799:56;;;;;;;;;;;;;;;;;;;;;;5875:1;5868:8;;;5413:471;;;;;:::o;4041:181::-;4099:7;4119:9;4135:1;4131;:5;4119:17;;4160:1;4155;:6;;4147:46;;;;;;;;;;;;;;;;;;;;;;4213:1;4206:8;;;4041:181;;;;:::o;4497:136::-;4555:7;4582:43;4586:1;4589;4582:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4575:50;;4497:136;;;;:::o;2725:371::-;2840:6;2823:4;2815:21;;;:31;;2807:73;;;;;;;;;;;;;;;;;;;;;;2949:12;2967:9;:14;;2988:6;2967:32;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;2948:51:0;;;3018:7;3010:78;;;;;;;;;;;;;;;;;;;;;;2725:371;;;:::o;4970:192::-;5056:7;5089:1;5084;:6;;5092:12;5076:29;;;;;;;;;;;;;;;;;;;;;;;;;5116:9;5132:1;5128;:5;5116:17;;5153:1;5146:8;;;4970:192;;;;;:::o;23:352:-1:-;;;153:3;146:4;138:6;134:17;130:27;120:2;;171:1;168;161:12;120:2;204:6;191:20;181:30;;231:18;223:6;220:30;217:2;;;263:1;260;253:12;217:2;297:4;289:6;285:17;273:29;;348:3;340:4;332:6;328:17;318:8;314:32;311:41;308:2;;;365:1;362;355:12;308:2;113:262;;;;;;399:359;;;536:3;529:4;521:6;517:17;513:27;503:2;;554:1;551;544:12;503:2;587:6;574:20;564:30;;614:18;606:6;603:30;600:2;;;646:1;643;636:12;600:2;680:4;672:6;668:17;656:29;;731:3;723:4;715:6;711:17;701:8;697:32;694:41;691:2;;;748:1;745;738:12;691:2;496:262;;;;;;766:1283;;;;;;;;;1082:3;1070:9;1061:7;1057:23;1053:33;1050:2;;;1099:1;1096;1089:12;1050:2;1162:1;1151:9;1147:17;1134:31;1185:18;1177:6;1174:30;1171:2;;;1217:1;1214;1207:12;1171:2;1245:87;1324:7;1315:6;1304:9;1300:22;1245:87;;;1235:97;;;;1113:225;1397:2;1386:9;1382:18;1369:32;1421:18;1413:6;1410:30;1407:2;;;1453:1;1450;1443:12;1407:2;1481:87;1560:7;1551:6;1540:9;1536:22;1481:87;;;1471:97;;;;1348:226;1633:2;1622:9;1618:18;1605:32;1657:18;1649:6;1646:30;1643:2;;;1689:1;1686;1679:12;1643:2;1717:87;1796:7;1787:6;1776:9;1772:22;1717:87;;;1707:97;;;;1584:226;1869:2;1858:9;1854:18;1841:32;1893:18;1885:6;1882:30;1879:2;;;1925:1;1922;1915:12;1879:2;1953:80;2025:7;2016:6;2005:9;2001:22;1953:80;;;1943:90;;;;1820:219;1044:1005;;;;;;;;;;;;2056:142;2147:45;2186:5;2147:45;;;2142:3;2135:58;2129:69;;;2205:113;2288:24;2306:5;2288:24;;;2283:3;2276:37;2270:48;;;2325:113;2408:24;2426:5;2408:24;;;2403:3;2396:37;2390:48;;;2468:293;;2578:70;2641:6;2636:3;2578:70;;;2571:77;;2660:43;2696:6;2691:3;2684:5;2660:43;;;2725:29;2747:6;2725:29;;;2720:3;2716:39;2709:46;;2564:197;;;;;;2769:347;;2881:39;2914:5;2881:39;;;2932:71;2996:6;2991:3;2932:71;;;2925:78;;3008:52;3053:6;3048:3;3041:4;3034:5;3030:16;3008:52;;;3081:29;3103:6;3081:29;;;3076:3;3072:39;3065:46;;2861:255;;;;;;3124:566;;3284:67;3348:2;3343:3;3284:67;;;3277:74;;3384:66;3380:1;3375:3;3371:11;3364:87;3485:66;3480:2;3475:3;3471:12;3464:88;3586:66;3581:2;3576:3;3572:12;3565:88;3681:2;3676:3;3672:12;3665:19;;3270:420;;;;3699:364;;3859:67;3923:2;3918:3;3859:67;;;3852:74;;3959:66;3955:1;3950:3;3946:11;3939:87;4054:2;4049:3;4045:12;4038:19;;3845:218;;;;4072:566;;4232:67;4296:2;4291:3;4232:67;;;4225:74;;4332:66;4328:1;4323:3;4319:11;4312:87;4433:66;4428:2;4423:3;4419:12;4412:88;4534:66;4529:2;4524:3;4520:12;4513:88;4629:2;4624:3;4620:12;4613:19;;4218:420;;;;4647:465;;4807:67;4871:2;4866:3;4807:67;;;4800:74;;4907:66;4903:1;4898:3;4894:11;4887:87;5008:66;5003:2;4998:3;4994:12;4987:88;5103:2;5098:3;5094:12;5087:19;;4793:319;;;;5121:364;;5281:67;5345:2;5340:3;5281:67;;;5274:74;;5381:66;5377:1;5372:3;5368:11;5361:87;5476:2;5471:3;5467:12;5460:19;;5267:218;;;;5494:465;;5654:67;5718:2;5713:3;5654:67;;;5647:74;;5754:66;5750:1;5745:3;5741:11;5734:87;5855:66;5850:2;5845:3;5841:12;5834:88;5950:2;5945:3;5941:12;5934:19;;5640:319;;;;5968:296;;6145:83;6226:1;6221:3;6145:83;;;6138:90;;6256:1;6251:3;6247:11;6240:18;;6131:133;;;;6273:669;;6433:68;6497:3;6492;6433:68;;;6426:75;;6534:66;6530:1;6525:3;6521:11;6514:87;6635:66;6630:2;6625:3;6621:12;6614:88;6736:66;6731:2;6726:3;6722:12;6715:88;6837:66;6832:2;6827:3;6823:12;6816:88;6932:3;6927;6923:13;6916:20;;6419:523;;;;6951:566;;7111:67;7175:2;7170:3;7111:67;;;7104:74;;7211:66;7207:1;7202:3;7198:11;7191:87;7312:66;7307:2;7302:3;7298:12;7291:88;7413:66;7408:2;7403:3;7399:12;7392:88;7508:2;7503:3;7499:12;7492:19;;7097:420;;;;7525:113;7608:24;7626:5;7608:24;;;7603:3;7596:37;7590:48;;;7645:370;;7843:147;7986:3;7843:147;;;7836:154;;8007:3;8000:10;;7824:191;;;;8022:213;;8140:2;8129:9;8125:18;8117:26;;8154:71;8222:1;8211:9;8207:17;8198:6;8154:71;;;8111:124;;;;;8242:340;;8396:2;8385:9;8381:18;8373:26;;8410:79;8486:1;8475:9;8471:17;8462:6;8410:79;;;8500:72;8568:2;8557:9;8553:18;8544:6;8500:72;;;8367:215;;;;;;8589:835;;8863:3;8852:9;8848:19;8840:27;;8914:9;8908:4;8904:20;8900:1;8889:9;8885:17;8878:47;8939:82;9016:4;9007:6;8999;8939:82;;;8931:90;;9069:9;9063:4;9059:20;9054:2;9043:9;9039:18;9032:48;9094:82;9171:4;9162:6;9154;9094:82;;;9086:90;;9224:9;9218:4;9214:20;9209:2;9198:9;9194:18;9187:48;9249:82;9326:4;9317:6;9309;9249:82;;;9241:90;;9342:72;9410:2;9399:9;9395:18;9386:6;9342:72;;;8834:590;;;;;;;;;;;9431:301;;9569:2;9558:9;9554:18;9546:26;;9619:9;9613:4;9609:20;9605:1;9594:9;9590:17;9583:47;9644:78;9717:4;9708:6;9644:78;;;9636:86;;9540:192;;;;;9739:407;;9930:2;9919:9;9915:18;9907:26;;9980:9;9974:4;9970:20;9966:1;9955:9;9951:17;9944:47;10005:131;10131:4;10005:131;;;9997:139;;9901:245;;;;10153:407;;10344:2;10333:9;10329:18;10321:26;;10394:9;10388:4;10384:20;10380:1;10369:9;10365:17;10358:47;10419:131;10545:4;10419:131;;;10411:139;;10315:245;;;;10567:407;;10758:2;10747:9;10743:18;10735:26;;10808:9;10802:4;10798:20;10794:1;10783:9;10779:17;10772:47;10833:131;10959:4;10833:131;;;10825:139;;10729:245;;;;10981:407;;11172:2;11161:9;11157:18;11149:26;;11222:9;11216:4;11212:20;11208:1;11197:9;11193:17;11186:47;11247:131;11373:4;11247:131;;;11239:139;;11143:245;;;;11395:407;;11586:2;11575:9;11571:18;11563:26;;11636:9;11630:4;11626:20;11622:1;11611:9;11607:17;11600:47;11661:131;11787:4;11661:131;;;11653:139;;11557:245;;;;11809:407;;12000:2;11989:9;11985:18;11977:26;;12050:9;12044:4;12040:20;12036:1;12025:9;12021:17;12014:47;12075:131;12201:4;12075:131;;;12067:139;;11971:245;;;;12223:407;;12414:2;12403:9;12399:18;12391:26;;12464:9;12458:4;12454:20;12450:1;12439:9;12435:17;12428:47;12489:131;12615:4;12489:131;;;12481:139;;12385:245;;;;12637:407;;12828:2;12817:9;12813:18;12805:26;;12878:9;12872:4;12868:20;12864:1;12853:9;12849:17;12842:47;12903:131;13029:4;12903:131;;;12895:139;;12799:245;;;;13051:213;;13169:2;13158:9;13154:18;13146:26;;13183:71;13251:1;13240:9;13236:17;13227:6;13183:71;;;13140:124;;;;;13271:122;;13365:5;13359:12;13349:22;;13330:63;;;;13401:162;;13515:6;13510:3;13503:19;13552:4;13547:3;13543:14;13528:29;;13496:67;;;;;13572:144;;13707:3;13692:18;;13685:31;;;;;13725:163;;13840:6;13835:3;13828:19;13877:4;13872:3;13868:14;13853:29;;13821:67;;;;;13896:91;;13958:24;13976:5;13958:24;;;13947:35;;13941:46;;;;13994:72;;14056:5;14045:16;;14039:27;;;;14073:121;;14146:42;14139:5;14135:54;14124:65;;14118:76;;;;14201:72;;14263:5;14252:16;;14246:27;;;;14280:129;;14367:37;14398:5;14367:37;;;14354:50;;14348:61;;;;14416:121;;14495:37;14526:5;14495:37;;;14482:50;;14476:61;;;;14544:108;;14623:24;14641:5;14623:24;;;14610:37;;14604:48;;;;14660:145;14741:6;14736:3;14731;14718:30;14797:1;14788:6;14783:3;14779:16;14772:27;14711:94;;;;14814:268;14879:1;14886:101;14900:6;14897:1;14894:13;14886:101;;;14976:1;14971:3;14967:11;14961:18;14957:1;14952:3;14948:11;14941:39;14922:2;14919:1;14915:10;14910:15;;14886:101;;;15002:6;14999:1;14996:13;14993:2;;;15067:1;15058:6;15053:3;15049:16;15042:27;14993:2;14863:219;;;;;15090:97;;15178:2;15174:7;15169:2;15162:5;15158:14;15154:28;15144:38;;15138:49;;;
Swarm Source
bzzr://e2656b628c68ffd1e92b24afd82b4ca42816054a2e4c9addcff9c1da6bf3c00b
Loading...
Loading
Loading...
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.
[ 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.