ETH Price: $3,480.77 (+7.23%)
Gas: 8 Gwei

Contract

0x29af9d1D936955B17D850E09678022ba869f4AB8
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

1 address found via
Transaction Hash
Method
Block
From
To
Place Order168884072023-03-23 6:15:59480 days ago1679552159IN
0x29af9d1D...a869f4AB8
0.12131028 ETH0.0002814911.25836699
Place Order157514892022-10-15 5:41:11639 days ago1665812471IN
0x29af9d1D...a869f4AB8
0.2309562 ETH0.0006683716.64991971
Place Order157416982022-10-13 20:53:11641 days ago1665694391IN
0x29af9d1D...a869f4AB8
0.20156238 ETH0.0004844919.38667969
Place Order157416702022-10-13 20:47:35641 days ago1665694055IN
0x29af9d1D...a869f4AB8
0.20166003 ETH0.0004671918.69467886
Place Order157416452022-10-13 20:42:23641 days ago1665693743IN
0x29af9d1D...a869f4AB8
0.20117178 ETH0.000439417.58258241
Place Order153846352022-08-21 15:08:33694 days ago1661094513IN
0x29af9d1D...a869f4AB8
0.14168465 ETH0.0011615128.93431844
Place Order153161942022-08-10 19:26:22705 days ago1660159582IN
0x29af9d1D...a869f4AB8
0.14131028 ETH0.0004346317.38344717
Place Order153161942022-08-10 19:26:22705 days ago1660159582IN
0x29af9d1D...a869f4AB8
0.071465 ETH0.0004221316.88344717
Place Order153161942022-08-10 19:26:22705 days ago1660159582IN
0x29af9d1D...a869f4AB8
0.14121669 ETH0.0004221316.88344717
Place Order153159312022-08-10 18:21:17705 days ago1660155677IN
0x29af9d1D...a869f4AB8
0.14121669 ETH0.0005888523.55153388
Set Status152034092022-07-24 5:19:49722 days ago1658639989IN
0x29af9d1D...a869f4AB8
0 ETH0.0003502312.22124482
Place Order152029082022-07-24 3:28:44722 days ago1658633324IN
0x29af9d1D...a869f4AB8
1.32107968 ETH0.002348928.32874968
Place Order152029052022-07-24 3:28:21722 days ago1658633301IN
0x29af9d1D...a869f4AB8
0.0907325 ETH0.001539318.49118819
Place Order152029022022-07-24 3:27:21722 days ago1658633241IN
0x29af9d1D...a869f4AB8
0.09066771 ETH0.001837379.26243652
Place Order152029022022-07-24 3:27:21722 days ago1658633241IN
0x29af9d1D...a869f4AB8
1.05104305 ETH0.002612249.26243652
Place Order152028972022-07-24 3:25:09722 days ago1658633109IN
0x29af9d1D...a869f4AB8
0.87087856 ETH0.002124387.53231507
Place Order152028902022-07-24 3:23:27722 days ago1658633007IN
0x29af9d1D...a869f4AB8
0.07036625 ETH0.001239826.01068122
Place Order152028892022-07-24 3:22:34722 days ago1658632954IN
0x29af9d1D...a869f4AB8
0.18074873 ETH0.00140256.50988344
Place Order152028892022-07-24 3:22:34722 days ago1658632954IN
0x29af9d1D...a869f4AB8
0.10065514 ETH0.00134286.50988344
Place Order152028882022-07-24 3:22:25722 days ago1658632945IN
0x29af9d1D...a869f4AB8
0.06044514 ETH0.000972215.14032124
Place Order152028862022-07-24 3:21:58722 days ago1658632918IN
0x29af9d1D...a869f4AB8
0.09051933 ETH0.001133385.71343113
Place Order152028742022-07-24 3:20:28722 days ago1658632828IN
0x29af9d1D...a869f4AB8
0.14102951 ETH0.001214787.53375716
Place Order152028742022-07-24 3:20:28722 days ago1658632828IN
0x29af9d1D...a869f4AB8
0.14102951 ETH0.001214787.53375716
Place Order152028682022-07-24 3:18:43722 days ago1658632723IN
0x29af9d1D...a869f4AB8
0.05064094 ETH0.001419368.24816304
Place Order152028592022-07-24 3:17:18722 days ago1658632638IN
0x29af9d1D...a869f4AB8
0.09074191 ETH0.001736649.58225362
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
152029082022-07-24 3:28:44722 days ago1658633324
0x29af9d1D...a869f4AB8
1.32107968 ETH
152029052022-07-24 3:28:21722 days ago1658633301
0x29af9d1D...a869f4AB8
0.0907325 ETH
152029022022-07-24 3:27:21722 days ago1658633241
0x29af9d1D...a869f4AB8
0.09066771 ETH
152029022022-07-24 3:27:21722 days ago1658633241
0x29af9d1D...a869f4AB8
1.05104305 ETH
152028972022-07-24 3:25:09722 days ago1658633109
0x29af9d1D...a869f4AB8
0.87087856 ETH
152028902022-07-24 3:23:27722 days ago1658633007
0x29af9d1D...a869f4AB8
0.07036625 ETH
152028892022-07-24 3:22:34722 days ago1658632954
0x29af9d1D...a869f4AB8
0.18074873 ETH
152028892022-07-24 3:22:34722 days ago1658632954
0x29af9d1D...a869f4AB8
0.10065514 ETH
152028882022-07-24 3:22:25722 days ago1658632945
0x29af9d1D...a869f4AB8
0.06044514 ETH
152028862022-07-24 3:21:58722 days ago1658632918
0x29af9d1D...a869f4AB8
0.09051933 ETH
152028742022-07-24 3:20:28722 days ago1658632828
0x29af9d1D...a869f4AB8
0.14102951 ETH
152028742022-07-24 3:20:28722 days ago1658632828
0x29af9d1D...a869f4AB8
0.14102951 ETH
152028682022-07-24 3:18:43722 days ago1658632723
0x29af9d1D...a869f4AB8
0.05064094 ETH
152028592022-07-24 3:17:18722 days ago1658632638
0x29af9d1D...a869f4AB8
0.09074191 ETH
152028532022-07-24 3:14:41722 days ago1658632481
0x29af9d1D...a869f4AB8
0.10084232 ETH
152028412022-07-24 3:11:16722 days ago1658632276
0x29af9d1D...a869f4AB8
0.07054937 ETH
152028402022-07-24 3:10:58722 days ago1658632258
0x29af9d1D...a869f4AB8
0.0907325 ETH
152028332022-07-24 3:09:42722 days ago1658632182
0x29af9d1D...a869f4AB8
0.0507325 ETH
152028172022-07-24 3:06:27722 days ago1658631987
0x29af9d1D...a869f4AB8
0.09045781 ETH
152028042022-07-24 3:03:23722 days ago1658631803
0x29af9d1D...a869f4AB8
0.09054937 ETH
152027882022-07-24 3:00:26722 days ago1658631626
0x29af9d1D...a869f4AB8
0.27078237 ETH
152027822022-07-24 2:57:40722 days ago1658631460
0x29af9d1D...a869f4AB8
0.14065514 ETH
152027752022-07-24 2:57:08722 days ago1658631428
0x29af9d1D...a869f4AB8
0.09064094 ETH
152027512022-07-24 2:50:38722 days ago1658631038
0x29af9d1D...a869f4AB8
0.0907325 ETH
152027462022-07-24 2:49:49722 days ago1658630989
0x29af9d1D...a869f4AB8
0.09051933 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Sales

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-07-22
*/

// File: @openzeppelin\contracts\utils\Counters.sol


// OpenZeppelin Contracts v4.4.1 (utils/Counters.sol)

pragma solidity ^0.8.0;

/**
 * @title Counters
 * @author Matt Condon (@shrugs)
 * @dev Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number
 * of elements in a mapping, issuing ERC721 ids, or counting request ids.
 *
 * Include with `using Counters for Counters.Counter;`
 */
library Counters {
    struct Counter {
        // This variable should never be directly accessed by users of the library: interactions must be restricted to
        // the library's function. As of Solidity v0.5.2, this cannot be enforced, though there is a proposal to add
        // this feature: see https://github.com/ethereum/solidity/issues/4637
        uint256 _value; // default: 0
    }

    function current(Counter storage counter) internal view returns (uint256) {
        return counter._value;
    }

    function increment(Counter storage counter) internal {
        unchecked {
            counter._value += 1;
        }
    }

    function decrement(Counter storage counter) internal {
        uint256 value = counter._value;
        require(value > 0, "Counter: decrement overflow");
        unchecked {
            counter._value = value - 1;
        }
    }

    function reset(Counter storage counter) internal {
        counter._value = 0;
    }
}

// File: contracts\SalesContract\SalesStorage.sol


pragma solidity ^0.8.4;

/**
> Collection
@notice this contract is standard ERC721 to used as xanalia user's collection managing his NFTs
 */
contract SalesStorage {
using Counters for Counters.Counter;

    mapping(address => bool) _allowAddress;

    uint256 status;
    struct VIPPass {
        uint256 price;
        uint256 limit;
        uint256 maxSupply;
        bytes32 merkleRoot;
        bool isWhiteList;
        uint256 supply;
    }

    mapping(uint256 => VIPPass) public _vip;
    
    uint256[] public vipPassIds;

    struct productDetail {
        uint256 vipPassId;
        uint256 amount;
        address buyer;
        bytes32[] proof;
    }

    struct Order {
        uint256 amount;
        // uint256 vip1; //alpha pass
        // uint256 vip2; //ultraman
        // uint256 vip3; //astroboy
        // uint256 vip4; //rooster fighter
        // uint256 vip5; //whitelist
        mapping (uint256=> uint256) productCount;
        uint256 paid;
        address buyer;

    }

    mapping(uint256 => Order) order;

    mapping(address => uint256[]) userOrders;

    
    //adddress => vip pass id => user bought count
    mapping (address=> mapping(uint256 => uint256)) public userBought;

    uint256 orderId;

    address seller;

    mapping (uint256=> bytes32) whitelistRoot;

    bool public saleWhiteList;

    uint256 public whiteListSaleId;


    uint256 startTime;

    uint256 whitelistStartTime;

    uint256 endTime;
    


}

// File: @openzeppelin\contracts\utils\Context.sol


// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

// File: contracts\SalesContract\Ownable.sol



pragma solidity ^0.8.0;

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _setOwner(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) internal {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

// File: contracts\SalesContract\MerkleProof.sol

pragma solidity ^0.8.4;

library MerkleProof {
    
    function verify(
        bytes32[] memory proof,
        bytes32 root,
        bytes32 leaf
    ) internal pure returns (bool) {
        return processProof(proof, leaf) == root;
    }

    function processProof(bytes32[] memory proof, bytes32 leaf) internal pure returns (bytes32) {
        bytes32 computedHash = leaf;
        for (uint256 i = 0; i < proof.length; i++) {
            bytes32 proofElement = proof[i];
            if (computedHash <= proofElement) {
                // Hash(current computed hash + current element of the proof)
                computedHash = _efficientHash(computedHash, proofElement);
            } else {
                // Hash(current element of the proof + current computed hash)
                computedHash = _efficientHash(proofElement, computedHash);
            }
        }
        return computedHash;
    }

    function _efficientHash(bytes32 a, bytes32 b) private pure returns (bytes32 value) {
        assembly {
            mstore(0x00, a)
            mstore(0x20, b)
            value := keccak256(0x00, 0x40)
        }
    }
}

// File: contracts\SalesContract\Sales.sol


pragma solidity ^0.8.4;
/**
> Collection
@notice this contract is standard ERC721 to used as xanalia user's collection managing his NFTs
 */
contract Sales is  Ownable, SalesStorage{



  constructor() public {
   
    _allowAddress[msg.sender] = true;
  
  }
modifier isValid() {
  require(_allowAddress[msg.sender], "not authorize");
  _;
}

    function addAllowedAddress(address _address) onlyOwner public {
        _allowAddress[_address] = !_allowAddress[_address];
    }

    function setSales(uint256 _startTime, uint256 _endTime, uint256 _whitelistStartTime) onlyOwner public {
        startTime = _startTime;
        endTime = _endTime;
        whitelistStartTime = _whitelistStartTime;
        status = 1;
    }

    function getStatus() public view returns(uint256) {
        return status;
    }

    function setVIPPASS(uint256 vipPassId, uint256 price, uint256 limit, bool isWhitelist) public onlyOwner {
        _vip[vipPassId].price = price;
        _vip[vipPassId].limit = limit;
        _vip[vipPassId].isWhiteList = isWhitelist;
        if(isWhitelist){
            saleWhiteList = true;
            whiteListSaleId = vipPassId;
        }
    }

    function setVipPassIds(uint256[] memory _vipPassIds) public onlyOwner {
       vipPassIds = _vipPassIds;
    
    }
    function getVipPassIds() public view returns(uint256[] memory) {
       return vipPassIds;
    }

     function setVIPPASSBulk(VIPPass[] memory vipPass) public onlyOwner {
        for (uint256 index = 0; index < vipPass.length; index++) {
             _vip[index + 1] = vipPass[index];
        }
    }

    function getVipPassDetails() public view returns(VIPPass[] memory vipPass) {
        for (uint256 index = 0; index < vipPassIds.length; index++) {
            vipPass[index] = _vip[vipPassIds[index]];
        }
    }

    function getUserBought(address _add) public view returns(productDetail[] memory userBoughtDetails) {
        bytes32[] memory temp;
        for (uint256 index = 0; index < vipPassIds.length; index++) {
            userBoughtDetails[index] = productDetail(vipPassIds[index], userBought[_add][vipPassIds[index]], _add,temp);

        }  
    }

    function placeOrder(productDetail[] calldata _productDetail, uint256 totalAmount ) payable external {
        require(status == 1, "0");
        require(msg.value > 0, "1" );
        require(totalAmount > 0, "2" );
        require(startTime < block.timestamp, "3");
        require(endTime > block.timestamp, "4");
        
        uint256 amount = 0;
        uint256 price = 0;
        orderId++;
        bool valid = true;
        bool whiteListSale = true;
        for (uint256 index = 0; index < _productDetail.length; index++) {
            productDetail calldata tempProduct = _productDetail[index];
            amount += tempProduct.amount;
            price += ( _vip[tempProduct.vipPassId].price * tempProduct.amount);
            order[orderId].productCount[tempProduct.vipPassId] = tempProduct.amount;
            _vip[tempProduct.vipPassId].supply += tempProduct.amount;
            userBought[msg.sender][tempProduct.vipPassId] += tempProduct.amount;
            if(tempProduct.vipPassId == whiteListSaleId){
                whiteListSale = whitelistStartTime < block.timestamp;
                valid = _verify(_leaf(msg.sender), tempProduct.proof, whitelistRoot[whiteListSaleId]);
            }
        }
        require(whiteListSale, "5");
        require(amount == totalAmount, "6");
        require(valid, "7");
         uint256 depositAmount = msg.value;
        require(price <= depositAmount, "8");
        userOrders[msg.sender].push(orderId);
        order[orderId].buyer = msg.sender;
        order[orderId].amount = amount;
        payable(seller).call{value: msg.value}("");
        emit PlaceOrder(_productDetail, orderId, totalAmount, msg.value, msg.sender, seller, price);
    }

    function setSellerAddress(address _add) onlyOwner public {
        seller = _add;
    }


    function setStatus(uint256 _status) onlyOwner public  {
        status = _status;
    }

    	function isWhitelisted(address account, bytes32[] calldata proof, uint256 _vipId) public view returns (bool) {
        return _verify(_leaf(account), proof, whitelistRoot[_vipId]);
    }
    function setWhitelistRoot(bytes32 newWhitelistroot, uint256 _vipId) public onlyOwner {
        whitelistRoot[_vipId] = newWhitelistroot;
    }
    function _leaf(address account) internal pure returns (bytes32) {
        return keccak256(abi.encodePacked(account));
    }
    function _verify(bytes32 leaf,bytes32[] memory proof,bytes32 root) internal pure returns (bool) {
        return MerkleProof.verify(proof, root, leaf);
    }

    function getSaleTime() public view returns(uint256 _startTime, uint256 _whitelistStartTime, uint256 _endTime) {
        _startTime = startTime;
        _whitelistStartTime = whitelistStartTime;
        _endTime = endTime;
    }
    fallback() payable external {}
    receive() payable external {}

  // events
  event PlaceOrder(productDetail[] ProductDetails, uint256 indexed orderId, uint256 totalAmount, uint256 totalPrice, address buyer, address seller, uint256 orderPrice);
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"uint256","name":"vipPassId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"buyer","type":"address"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"indexed":false,"internalType":"struct SalesStorage.productDetail[]","name":"ProductDetails","type":"tuple[]"},{"indexed":true,"internalType":"uint256","name":"orderId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalPrice","type":"uint256"},{"indexed":false,"internalType":"address","name":"buyer","type":"address"},{"indexed":false,"internalType":"address","name":"seller","type":"address"},{"indexed":false,"internalType":"uint256","name":"orderPrice","type":"uint256"}],"name":"PlaceOrder","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_vip","outputs":[{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"limit","type":"uint256"},{"internalType":"uint256","name":"maxSupply","type":"uint256"},{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"},{"internalType":"bool","name":"isWhiteList","type":"bool"},{"internalType":"uint256","name":"supply","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"addAllowedAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getSaleTime","outputs":[{"internalType":"uint256","name":"_startTime","type":"uint256"},{"internalType":"uint256","name":"_whitelistStartTime","type":"uint256"},{"internalType":"uint256","name":"_endTime","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStatus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_add","type":"address"}],"name":"getUserBought","outputs":[{"components":[{"internalType":"uint256","name":"vipPassId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"buyer","type":"address"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"internalType":"struct SalesStorage.productDetail[]","name":"userBoughtDetails","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getVipPassDetails","outputs":[{"components":[{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"limit","type":"uint256"},{"internalType":"uint256","name":"maxSupply","type":"uint256"},{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"},{"internalType":"bool","name":"isWhiteList","type":"bool"},{"internalType":"uint256","name":"supply","type":"uint256"}],"internalType":"struct SalesStorage.VIPPass[]","name":"vipPass","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getVipPassIds","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"},{"internalType":"uint256","name":"_vipId","type":"uint256"}],"name":"isWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"vipPassId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"buyer","type":"address"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"internalType":"struct SalesStorage.productDetail[]","name":"_productDetail","type":"tuple[]"},{"internalType":"uint256","name":"totalAmount","type":"uint256"}],"name":"placeOrder","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"saleWhiteList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_startTime","type":"uint256"},{"internalType":"uint256","name":"_endTime","type":"uint256"},{"internalType":"uint256","name":"_whitelistStartTime","type":"uint256"}],"name":"setSales","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_add","type":"address"}],"name":"setSellerAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_status","type":"uint256"}],"name":"setStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"vipPassId","type":"uint256"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"limit","type":"uint256"},{"internalType":"bool","name":"isWhitelist","type":"bool"}],"name":"setVIPPASS","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"limit","type":"uint256"},{"internalType":"uint256","name":"maxSupply","type":"uint256"},{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"},{"internalType":"bool","name":"isWhiteList","type":"bool"},{"internalType":"uint256","name":"supply","type":"uint256"}],"internalType":"struct SalesStorage.VIPPass[]","name":"vipPass","type":"tuple[]"}],"name":"setVIPPASSBulk","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_vipPassIds","type":"uint256[]"}],"name":"setVipPassIds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"newWhitelistroot","type":"bytes32"},{"internalType":"uint256","name":"_vipId","type":"uint256"}],"name":"setWhitelistRoot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"userBought","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"vipPassIds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"whiteListSaleId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405234801561001057600080fd5b5061001a3361003c565b336000908152600160208190526040909120805460ff1916909117905561008c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6119458061009b6000396000f3fe6080604052600436106101385760003560e01c8063a8ca7343116100b0578063cbf21fe41161006c578063cbf21fe4146103cf578063d839753814610400578063ed812a4514610420578063ef10dc7c14610458578063f2fde38b14610478578063f610b75f1461049857005b8063a8ca73431461031d578063b179bc2514610330578063b5e0a8811461034a578063c0efbfbb14610360578063c5130e781461038d578063cb2cd75e146103af57005b80637755e9bd116100ff5780637755e9bd146102455780637d8517881461026557806381788e2b146102855780638da5cb5b146102a5578063a12df12e146102cd578063a371a062146102ed57005b8063087c69c7146101415780634e69d5601461016c5780636717f4b21461018b57806369ba1a7514610210578063715018a61461023057005b3661013f57005b005b34801561014d57600080fd5b506101566104b8565b60405161016391906114ed565b60405180910390f35b34801561017857600080fd5b506002545b604051908152602001610163565b34801561019757600080fd5b506101e16101a6366004611438565b6003602081905260009182526040909120805460018201546002830154938301546004840154600590940154929491939192909160ff169086565b6040805196875260208701959095529385019290925260608401521515608083015260a082015260c001610163565b34801561021c57600080fd5b5061013f61022b366004611438565b61059f565b34801561023c57600080fd5b5061013f6105d7565b34801561025157600080fd5b5061013f610260366004611450565b61060d565b34801561027157600080fd5b5061013f610280366004611384565b61064a565b34801561029157600080fd5b5061013f6102a03660046111ae565b61068b565b3480156102b157600080fd5b506000546040516001600160a01b039091168152602001610163565b3480156102d957600080fd5b5061013f6102e83660046111ae565b6106de565b3480156102f957600080fd5b5061030d6103083660046111cf565b61072a565b6040519015158152602001610163565b61013f61032b36600461133a565b610787565b34801561033c57600080fd5b50600b5461030d9060ff1681565b34801561035657600080fd5b5061017d600c5481565b34801561036c57600080fd5b5061038061037b3660046111ae565b610c01565b6040516101639190611687565b34801561039957600080fd5b506103a2610d0c565b6040516101639190611733565b3480156103bb57600080fd5b5061013f6103ca366004611417565b610d64565b3480156103db57600080fd5b50600d54600e54600f5460408051938452602084019290925290820152606001610163565b34801561040c57600080fd5b5061013f61041b366004611250565b610d9f565b34801561042c57600080fd5b5061017d61043b366004611227565b600760209081526000928352604080842090915290825290205481565b34801561046457600080fd5b5061013f61047336600461147b565b610e76565b34801561048457600080fd5b5061013f6104933660046111ae565b610ee9565b3480156104a457600080fd5b5061017d6104b3366004611438565b610f84565b606060005b60045481101561059b5760036000600483815481106104ec57634e487b7160e01b600052603260045260246000fd5b906000526020600020015481526020019081526020016000206040518060c0016040529081600082015481526020016001820154815260200160028201548152602001600382015481526020016004820160009054906101000a900460ff1615151515815260200160058201548152505082828151811061057d57634e487b7160e01b600052603260045260246000fd5b60200260200101819052508080610593906118c8565b9150506104bd565b5090565b6000546001600160a01b031633146105d25760405162461bcd60e51b81526004016105c990611777565b60405180910390fd5b600255565b6000546001600160a01b031633146106015760405162461bcd60e51b81526004016105c990611777565b61060b6000610fa5565b565b6000546001600160a01b031633146106375760405162461bcd60e51b81526004016105c990611777565b600d92909255600f55600e556001600255565b6000546001600160a01b031633146106745760405162461bcd60e51b81526004016105c990611777565b80516106879060049060208401906110e1565b5050565b6000546001600160a01b031633146106b55760405162461bcd60e51b81526004016105c990611777565b6001600160a01b03166000908152600160205260409020805460ff19811660ff90911615179055565b6000546001600160a01b031633146107085760405162461bcd60e51b81526004016105c990611777565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b600061077e61073886610ff5565b8585808060200260200160405190810160405280939291908181526020018383602002808284376000920182905250888152600a60205260409020549250611034915050565b95945050505050565b6002546001146107bd5760405162461bcd60e51b81526020600482015260016024820152600360fc1b60448201526064016105c9565b600034116107f15760405162461bcd60e51b81526020600482015260016024820152603160f81b60448201526064016105c9565b600081116108255760405162461bcd60e51b81526020600482015260016024820152601960f91b60448201526064016105c9565b42600d541061085a5760405162461bcd60e51b81526020600482015260016024820152603360f81b60448201526064016105c9565b42600f541161088f5760405162461bcd60e51b81526020600482015260016024820152600d60fa1b60448201526064016105c9565b60088054600091829190826108a3836118c8565b90915550600190508060005b86811015610a2f57368888838181106108d857634e487b7160e01b600052603260045260246000fd5b90506020028101906108ea91906117f4565b90506108fa602082013587611891565b813560009081526003602090815260409091205491975061091f9190830135906118a9565b6109299086611891565b600854600090815260056020818152604080842086358552600101825280842082870135908190556003909252832090910180549398509092909190610970908490611891565b909155505033600090815260076020908152604080832084358452825282208054918401359290916109a3908490611891565b9091555050600c5481351415610a1c5742600e54109250610a196109c633610ff5565b6109d360608401846117ac565b808060200260200160405190810160405280939291908181526020018383602002808284376000920182905250600c548152600a60205260409020549250611034915050565b93505b5080610a27816118c8565b9150506108af565b5080610a615760405162461bcd60e51b81526020600482015260016024820152603560f81b60448201526064016105c9565b848414610a945760405162461bcd60e51b81526020600482015260016024820152601b60f91b60448201526064016105c9565b81610ac55760405162461bcd60e51b81526020600482015260016024820152603760f81b60448201526064016105c9565b3480841115610afa5760405162461bcd60e51b81526020600482015260016024820152600760fb1b60448201526064016105c9565b3360008181526006602090815260408083206008805482546001810184559286528486209092019190915580548452600590925280832060030180546001600160a01b03191690941790935554815281812087905560095491516001600160a01b0390921691349181818185875af1925050503d8060008114610b99576040519150601f19603f3d011682016040523d82523d6000602084013e610b9e565b606091505b50506008546009546040519192507f211a1b45f7ff77abc22e6a989135dbfc1f19ce2ae05583e3606bdda3d06cbd2591610bef918c918c918c91349133916001600160a01b03909116908d90611567565b60405180910390a25050505050505050565b60608060005b600454811015610d0557604051806080016040528060048381548110610c3d57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154815260200160076000876001600160a01b03166001600160a01b03168152602001908152602001600020600060048581548110610c9557634e487b7160e01b600052603260045260246000fd5b90600052602060002001548152602001908152602001600020548152602001856001600160a01b0316815260200183815250838281518110610ce757634e487b7160e01b600052603260045260246000fd5b60200260200101819052508080610cfd906118c8565b915050610c07565b5050919050565b60606004805480602002602001604051908101604052809291908181526020018280548015610d5a57602002820191906000526020600020905b815481526020019060010190808311610d46575b5050505050905090565b6000546001600160a01b03163314610d8e5760405162461bcd60e51b81526004016105c990611777565b6000908152600a6020526040902055565b6000546001600160a01b03163314610dc95760405162461bcd60e51b81526004016105c990611777565b60005b815181101561068757818181518110610df557634e487b7160e01b600052603260045260246000fd5b602002602001015160036000836001610e0e9190611891565b8152602080820192909252604090810160002083518155918301516001830155820151600282015560608201516003820155608082015160048201805460ff191691151591909117905560a09091015160059091015580610e6e816118c8565b915050610dcc565b6000546001600160a01b03163314610ea05760405162461bcd60e51b81526004016105c990611777565b600084815260036020526040902083815560018101839055600401805460ff19168215801591909117909155610ee357600b805460ff19166001179055600c8490555b50505050565b6000546001600160a01b03163314610f135760405162461bcd60e51b81526004016105c990611777565b6001600160a01b038116610f785760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105c9565b610f8181610fa5565b50565b60048181548110610f9457600080fd5b600091825260209091200154905081565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040516bffffffffffffffffffffffff19606083901b166020820152600090603401604051602081830303815290604052805190602001209050919050565b6000611041838386611049565b949350505050565b600082611056858461105f565b14949350505050565b600081815b84518110156110d957600085828151811061108f57634e487b7160e01b600052603260045260246000fd5b602002602001015190508083116110b557600083815260208290526040902092506110c6565b600081815260208490526040902092505b50806110d1816118c8565b915050611064565b509392505050565b82805482825590600052602060002090810192821561111c579160200282015b8281111561111c578251825591602001919060010190611101565b5061059b9291505b8082111561059b5760008155600101611124565b80356001600160a01b038116811461114f57600080fd5b919050565b60008083601f840112611165578182fd5b50813567ffffffffffffffff81111561117c578182fd5b6020830191508360208260051b850101111561119757600080fd5b9250929050565b8035801515811461114f57600080fd5b6000602082840312156111bf578081fd5b6111c882611138565b9392505050565b600080600080606085870312156111e4578283fd5b6111ed85611138565b9350602085013567ffffffffffffffff811115611208578384fd5b61121487828801611154565b9598909750949560400135949350505050565b60008060408385031215611239578182fd5b61124283611138565b946020939093013593505050565b60006020808385031215611262578182fd5b823567ffffffffffffffff811115611278578283fd5b8301601f81018513611288578283fd5b803561129b6112968261186d565b61183c565b8181528381019083850160c0808502860187018a10156112b9578788fd5b8795505b8486101561132c5780828b0312156112d3578788fd5b6112db611813565b8235815287830135888201526040808401359082015260608084013590820152608061130881850161119e565b9082015260a0838101359082015284526001959095019492860192908101906112bd565b509098975050505050505050565b60008060006040848603121561134e578283fd5b833567ffffffffffffffff811115611364578384fd5b61137086828701611154565b909790965060209590950135949350505050565b60006020808385031215611396578182fd5b823567ffffffffffffffff8111156113ac578283fd5b8301601f810185136113bc578283fd5b80356113ca6112968261186d565b80828252848201915084840188868560051b87010111156113e9578687fd5b8694505b8385101561140b5780358352600194909401939185019185016113ed565b50979650505050505050565b60008060408385031215611429578182fd5b50508035926020909101359150565b600060208284031215611449578081fd5b5035919050565b600080600060608486031215611464578283fd5b505081359360208301359350604090920135919050565b60008060008060808587031215611490578384fd5b8435935060208501359250604085013591506114ae6060860161119e565b905092959194509250565b81835260006001600160fb1b038311156114d1578081fd5b8260051b80836020870137939093016020019283525090919050565b602080825282518282018190526000919060409081850190868401855b8281101561155a57815180518552868101518786015285810151868601526060808201519086015260808082015115159086015260a0908101519085015260c0909301929085019060010161150a565b5091979650505050505050565b60c080825281018790526000600560e0808401908a831b8501018b845b8c8110156116405786830360df190184528135368f9003607e190181126115a9578687fd5b8e01803584526020808201358186015260809060406001600160a01b036115d1828601611138565b169087015260608381013536859003601e190181126115ee578a8bfd5b8401803567ffffffffffffffff811115611606578b8cfd5b808b1b3603861315611616578b8cfd5b84838a015261162a858a01828685016114b9565b9984019998505050940193505050600101611584565b505080935050505086602083015285604083015261166960608301866001600160a01b03169052565b6001600160a01b0393909316608082015260a0015295945050505050565b60006020808301818452808551808352604092508286019150828160051b870101848801865b8381101561132c57888303603f190185528151805184528781015188850152868101516001600160a01b0316878501526060908101516080918501829052805191850182905288019060a08501908a905b8082101561171e5783518352928a0192918a0191600191909101906116fe565b505095880195935050908601906001016116ad565b6020808252825182820181905260009190848201906040850190845b8181101561176b5783518352928401929184019160010161174f565b50909695505050505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000808335601e198436030181126117c2578283fd5b83018035915067ffffffffffffffff8211156117dc578283fd5b6020019150600581901b360382131561119757600080fd5b60008235607e19833603018112611809578182fd5b9190910192915050565b60405160c0810167ffffffffffffffff81118282101715611836576118366118f9565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611865576118656118f9565b604052919050565b600067ffffffffffffffff821115611887576118876118f9565b5060051b60200190565b600082198211156118a4576118a46118e3565b500190565b60008160001904831182151516156118c3576118c36118e3565b500290565b60006000198214156118dc576118dc6118e3565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea264697066735822122010ca5bb2ef5de8c9d6074bf2bb3f8ad53fcbd758b754b414d2b8af9454bf7dfc64736f6c63430008040033

Deployed Bytecode

0x6080604052600436106101385760003560e01c8063a8ca7343116100b0578063cbf21fe41161006c578063cbf21fe4146103cf578063d839753814610400578063ed812a4514610420578063ef10dc7c14610458578063f2fde38b14610478578063f610b75f1461049857005b8063a8ca73431461031d578063b179bc2514610330578063b5e0a8811461034a578063c0efbfbb14610360578063c5130e781461038d578063cb2cd75e146103af57005b80637755e9bd116100ff5780637755e9bd146102455780637d8517881461026557806381788e2b146102855780638da5cb5b146102a5578063a12df12e146102cd578063a371a062146102ed57005b8063087c69c7146101415780634e69d5601461016c5780636717f4b21461018b57806369ba1a7514610210578063715018a61461023057005b3661013f57005b005b34801561014d57600080fd5b506101566104b8565b60405161016391906114ed565b60405180910390f35b34801561017857600080fd5b506002545b604051908152602001610163565b34801561019757600080fd5b506101e16101a6366004611438565b6003602081905260009182526040909120805460018201546002830154938301546004840154600590940154929491939192909160ff169086565b6040805196875260208701959095529385019290925260608401521515608083015260a082015260c001610163565b34801561021c57600080fd5b5061013f61022b366004611438565b61059f565b34801561023c57600080fd5b5061013f6105d7565b34801561025157600080fd5b5061013f610260366004611450565b61060d565b34801561027157600080fd5b5061013f610280366004611384565b61064a565b34801561029157600080fd5b5061013f6102a03660046111ae565b61068b565b3480156102b157600080fd5b506000546040516001600160a01b039091168152602001610163565b3480156102d957600080fd5b5061013f6102e83660046111ae565b6106de565b3480156102f957600080fd5b5061030d6103083660046111cf565b61072a565b6040519015158152602001610163565b61013f61032b36600461133a565b610787565b34801561033c57600080fd5b50600b5461030d9060ff1681565b34801561035657600080fd5b5061017d600c5481565b34801561036c57600080fd5b5061038061037b3660046111ae565b610c01565b6040516101639190611687565b34801561039957600080fd5b506103a2610d0c565b6040516101639190611733565b3480156103bb57600080fd5b5061013f6103ca366004611417565b610d64565b3480156103db57600080fd5b50600d54600e54600f5460408051938452602084019290925290820152606001610163565b34801561040c57600080fd5b5061013f61041b366004611250565b610d9f565b34801561042c57600080fd5b5061017d61043b366004611227565b600760209081526000928352604080842090915290825290205481565b34801561046457600080fd5b5061013f61047336600461147b565b610e76565b34801561048457600080fd5b5061013f6104933660046111ae565b610ee9565b3480156104a457600080fd5b5061017d6104b3366004611438565b610f84565b606060005b60045481101561059b5760036000600483815481106104ec57634e487b7160e01b600052603260045260246000fd5b906000526020600020015481526020019081526020016000206040518060c0016040529081600082015481526020016001820154815260200160028201548152602001600382015481526020016004820160009054906101000a900460ff1615151515815260200160058201548152505082828151811061057d57634e487b7160e01b600052603260045260246000fd5b60200260200101819052508080610593906118c8565b9150506104bd565b5090565b6000546001600160a01b031633146105d25760405162461bcd60e51b81526004016105c990611777565b60405180910390fd5b600255565b6000546001600160a01b031633146106015760405162461bcd60e51b81526004016105c990611777565b61060b6000610fa5565b565b6000546001600160a01b031633146106375760405162461bcd60e51b81526004016105c990611777565b600d92909255600f55600e556001600255565b6000546001600160a01b031633146106745760405162461bcd60e51b81526004016105c990611777565b80516106879060049060208401906110e1565b5050565b6000546001600160a01b031633146106b55760405162461bcd60e51b81526004016105c990611777565b6001600160a01b03166000908152600160205260409020805460ff19811660ff90911615179055565b6000546001600160a01b031633146107085760405162461bcd60e51b81526004016105c990611777565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b600061077e61073886610ff5565b8585808060200260200160405190810160405280939291908181526020018383602002808284376000920182905250888152600a60205260409020549250611034915050565b95945050505050565b6002546001146107bd5760405162461bcd60e51b81526020600482015260016024820152600360fc1b60448201526064016105c9565b600034116107f15760405162461bcd60e51b81526020600482015260016024820152603160f81b60448201526064016105c9565b600081116108255760405162461bcd60e51b81526020600482015260016024820152601960f91b60448201526064016105c9565b42600d541061085a5760405162461bcd60e51b81526020600482015260016024820152603360f81b60448201526064016105c9565b42600f541161088f5760405162461bcd60e51b81526020600482015260016024820152600d60fa1b60448201526064016105c9565b60088054600091829190826108a3836118c8565b90915550600190508060005b86811015610a2f57368888838181106108d857634e487b7160e01b600052603260045260246000fd5b90506020028101906108ea91906117f4565b90506108fa602082013587611891565b813560009081526003602090815260409091205491975061091f9190830135906118a9565b6109299086611891565b600854600090815260056020818152604080842086358552600101825280842082870135908190556003909252832090910180549398509092909190610970908490611891565b909155505033600090815260076020908152604080832084358452825282208054918401359290916109a3908490611891565b9091555050600c5481351415610a1c5742600e54109250610a196109c633610ff5565b6109d360608401846117ac565b808060200260200160405190810160405280939291908181526020018383602002808284376000920182905250600c548152600a60205260409020549250611034915050565b93505b5080610a27816118c8565b9150506108af565b5080610a615760405162461bcd60e51b81526020600482015260016024820152603560f81b60448201526064016105c9565b848414610a945760405162461bcd60e51b81526020600482015260016024820152601b60f91b60448201526064016105c9565b81610ac55760405162461bcd60e51b81526020600482015260016024820152603760f81b60448201526064016105c9565b3480841115610afa5760405162461bcd60e51b81526020600482015260016024820152600760fb1b60448201526064016105c9565b3360008181526006602090815260408083206008805482546001810184559286528486209092019190915580548452600590925280832060030180546001600160a01b03191690941790935554815281812087905560095491516001600160a01b0390921691349181818185875af1925050503d8060008114610b99576040519150601f19603f3d011682016040523d82523d6000602084013e610b9e565b606091505b50506008546009546040519192507f211a1b45f7ff77abc22e6a989135dbfc1f19ce2ae05583e3606bdda3d06cbd2591610bef918c918c918c91349133916001600160a01b03909116908d90611567565b60405180910390a25050505050505050565b60608060005b600454811015610d0557604051806080016040528060048381548110610c3d57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154815260200160076000876001600160a01b03166001600160a01b03168152602001908152602001600020600060048581548110610c9557634e487b7160e01b600052603260045260246000fd5b90600052602060002001548152602001908152602001600020548152602001856001600160a01b0316815260200183815250838281518110610ce757634e487b7160e01b600052603260045260246000fd5b60200260200101819052508080610cfd906118c8565b915050610c07565b5050919050565b60606004805480602002602001604051908101604052809291908181526020018280548015610d5a57602002820191906000526020600020905b815481526020019060010190808311610d46575b5050505050905090565b6000546001600160a01b03163314610d8e5760405162461bcd60e51b81526004016105c990611777565b6000908152600a6020526040902055565b6000546001600160a01b03163314610dc95760405162461bcd60e51b81526004016105c990611777565b60005b815181101561068757818181518110610df557634e487b7160e01b600052603260045260246000fd5b602002602001015160036000836001610e0e9190611891565b8152602080820192909252604090810160002083518155918301516001830155820151600282015560608201516003820155608082015160048201805460ff191691151591909117905560a09091015160059091015580610e6e816118c8565b915050610dcc565b6000546001600160a01b03163314610ea05760405162461bcd60e51b81526004016105c990611777565b600084815260036020526040902083815560018101839055600401805460ff19168215801591909117909155610ee357600b805460ff19166001179055600c8490555b50505050565b6000546001600160a01b03163314610f135760405162461bcd60e51b81526004016105c990611777565b6001600160a01b038116610f785760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105c9565b610f8181610fa5565b50565b60048181548110610f9457600080fd5b600091825260209091200154905081565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040516bffffffffffffffffffffffff19606083901b166020820152600090603401604051602081830303815290604052805190602001209050919050565b6000611041838386611049565b949350505050565b600082611056858461105f565b14949350505050565b600081815b84518110156110d957600085828151811061108f57634e487b7160e01b600052603260045260246000fd5b602002602001015190508083116110b557600083815260208290526040902092506110c6565b600081815260208490526040902092505b50806110d1816118c8565b915050611064565b509392505050565b82805482825590600052602060002090810192821561111c579160200282015b8281111561111c578251825591602001919060010190611101565b5061059b9291505b8082111561059b5760008155600101611124565b80356001600160a01b038116811461114f57600080fd5b919050565b60008083601f840112611165578182fd5b50813567ffffffffffffffff81111561117c578182fd5b6020830191508360208260051b850101111561119757600080fd5b9250929050565b8035801515811461114f57600080fd5b6000602082840312156111bf578081fd5b6111c882611138565b9392505050565b600080600080606085870312156111e4578283fd5b6111ed85611138565b9350602085013567ffffffffffffffff811115611208578384fd5b61121487828801611154565b9598909750949560400135949350505050565b60008060408385031215611239578182fd5b61124283611138565b946020939093013593505050565b60006020808385031215611262578182fd5b823567ffffffffffffffff811115611278578283fd5b8301601f81018513611288578283fd5b803561129b6112968261186d565b61183c565b8181528381019083850160c0808502860187018a10156112b9578788fd5b8795505b8486101561132c5780828b0312156112d3578788fd5b6112db611813565b8235815287830135888201526040808401359082015260608084013590820152608061130881850161119e565b9082015260a0838101359082015284526001959095019492860192908101906112bd565b509098975050505050505050565b60008060006040848603121561134e578283fd5b833567ffffffffffffffff811115611364578384fd5b61137086828701611154565b909790965060209590950135949350505050565b60006020808385031215611396578182fd5b823567ffffffffffffffff8111156113ac578283fd5b8301601f810185136113bc578283fd5b80356113ca6112968261186d565b80828252848201915084840188868560051b87010111156113e9578687fd5b8694505b8385101561140b5780358352600194909401939185019185016113ed565b50979650505050505050565b60008060408385031215611429578182fd5b50508035926020909101359150565b600060208284031215611449578081fd5b5035919050565b600080600060608486031215611464578283fd5b505081359360208301359350604090920135919050565b60008060008060808587031215611490578384fd5b8435935060208501359250604085013591506114ae6060860161119e565b905092959194509250565b81835260006001600160fb1b038311156114d1578081fd5b8260051b80836020870137939093016020019283525090919050565b602080825282518282018190526000919060409081850190868401855b8281101561155a57815180518552868101518786015285810151868601526060808201519086015260808082015115159086015260a0908101519085015260c0909301929085019060010161150a565b5091979650505050505050565b60c080825281018790526000600560e0808401908a831b8501018b845b8c8110156116405786830360df190184528135368f9003607e190181126115a9578687fd5b8e01803584526020808201358186015260809060406001600160a01b036115d1828601611138565b169087015260608381013536859003601e190181126115ee578a8bfd5b8401803567ffffffffffffffff811115611606578b8cfd5b808b1b3603861315611616578b8cfd5b84838a015261162a858a01828685016114b9565b9984019998505050940193505050600101611584565b505080935050505086602083015285604083015261166960608301866001600160a01b03169052565b6001600160a01b0393909316608082015260a0015295945050505050565b60006020808301818452808551808352604092508286019150828160051b870101848801865b8381101561132c57888303603f190185528151805184528781015188850152868101516001600160a01b0316878501526060908101516080918501829052805191850182905288019060a08501908a905b8082101561171e5783518352928a0192918a0191600191909101906116fe565b505095880195935050908601906001016116ad565b6020808252825182820181905260009190848201906040850190845b8181101561176b5783518352928401929184019160010161174f565b50909695505050505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000808335601e198436030181126117c2578283fd5b83018035915067ffffffffffffffff8211156117dc578283fd5b6020019150600581901b360382131561119757600080fd5b60008235607e19833603018112611809578182fd5b9190910192915050565b60405160c0810167ffffffffffffffff81118282101715611836576118366118f9565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611865576118656118f9565b604052919050565b600067ffffffffffffffff821115611887576118876118f9565b5060051b60200190565b600082198211156118a4576118a46118e3565b500190565b60008160001904831182151516156118c3576118c36118e3565b500290565b60006000198214156118dc576118dc6118e3565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea264697066735822122010ca5bb2ef5de8c9d6074bf2bb3f8ad53fcbd758b754b414d2b8af9454bf7dfc64736f6c63430008040033

Deployed Bytecode Sourcemap

7638:5171:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9147:220;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8250:82;;;;;;;;;;-1:-1:-1;8318:6:0;;8250:82;;;17032:25:1;;;17020:2;17005:18;8250:82:0;16987:76:1;1993:39:0;;;;;;;;;;-1:-1:-1;1993:39:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17673:25:1;;;17729:2;17714:18;;17707:34;;;;17757:18;;;17750:34;;;;17815:2;17800:18;;17793:34;17871:14;17864:22;17858:3;17843:19;;17836:51;17918:3;17903:19;;17896:35;17660:3;17645:19;1993:39:0;17627:310:1;11578:89:0;;;;;;;;;;-1:-1:-1;11578:89:0;;;;;:::i;:::-;;:::i;5590:94::-;;;;;;;;;;;;;:::i;7998:244::-;;;;;;;;;;-1:-1:-1;7998:244:0;;;;;:::i;:::-;;:::i;8706:118::-;;;;;;;;;;-1:-1:-1;8706:118:0;;;;;:::i;:::-;;:::i;7859:131::-;;;;;;;;;;-1:-1:-1;7859:131:0;;;;;:::i;:::-;;:::i;4939:87::-;;;;;;;;;;-1:-1:-1;4985:7:0;5012:6;4939:87;;-1:-1:-1;;;;;5012:6:0;;;7181:51:1;;7169:2;7154:18;4939:87:0;7136:102:1;11479:89:0;;;;;;;;;;-1:-1:-1;11479:89:0;;;;;:::i;:::-;;:::i;11676:188::-;;;;;;;;;;-1:-1:-1;11676:188:0;;;;;:::i;:::-;;:::i;:::-;;;13130:14:1;;13123:22;13105:41;;13093:2;13078:18;11676:188:0;13060:92:1;9730:1741:0;;;;;;:::i;:::-;;:::i;2888:25::-;;;;;;;;;;-1:-1:-1;2888:25:0;;;;;;;;2922:30;;;;;;;;;;;;;;;;9375:347;;;;;;;;;;-1:-1:-1;9375:347:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;8830:98::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;11870:144::-;;;;;;;;;;-1:-1:-1;11870:144:0;;;;;:::i;:::-;;:::i;12319:231::-;;;;;;;;;;-1:-1:-1;12453:9:0;;12495:18;;12535:7;;12319:231;;;17270:25:1;;;17326:2;17311:18;;17304:34;;;;17354:18;;;17347:34;17258:2;17243:18;12319:231:0;17225:162:1;8937:202:0;;;;;;;;;;-1:-1:-1;8937:202:0;;;;;:::i;:::-;;:::i;2717:65::-;;;;;;;;;;-1:-1:-1;2717:65:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;8340:358;;;;;;;;;;-1:-1:-1;8340:358:0;;;;;:::i;:::-;;:::i;5839:192::-;;;;;;;;;;-1:-1:-1;5839:192:0;;;;;:::i;:::-;;:::i;2045:27::-;;;;;;;;;;-1:-1:-1;2045:27:0;;;;;:::i;:::-;;:::i;9147:220::-;9196:24;9238:13;9233:127;9265:10;:17;9257:25;;9233:127;;;9325:4;:23;9330:10;9341:5;9330:17;;;;;;-1:-1:-1;;;9330:17:0;;;;;;;;;;;;;;;;;9325:23;;;;;;;;;;;9308:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:7;9316:5;9308:14;;;;;;-1:-1:-1;;;9308:14:0;;;;;;;;;;;;;;:40;;;;9284:7;;;;;:::i;:::-;;;;9233:127;;;;9147:220;:::o;11578:89::-;4985:7;5012:6;-1:-1:-1;;;;;5012:6:0;3816:10;5159:23;5151:68;;;;-1:-1:-1;;;5151:68:0;;;;;;;:::i;:::-;;;;;;;;;11643:6:::1;:16:::0;11578:89::o;5590:94::-;4985:7;5012:6;-1:-1:-1;;;;;5012:6:0;3816:10;5159:23;5151:68;;;;-1:-1:-1;;;5151:68:0;;;;;;;:::i;:::-;5655:21:::1;5673:1;5655:9;:21::i;:::-;5590:94::o:0;7998:244::-;4985:7;5012:6;-1:-1:-1;;;;;5012:6:0;3816:10;5159:23;5151:68;;;;-1:-1:-1;;;5151:68:0;;;;;;;:::i;:::-;8111:9:::1;:22:::0;;;;8144:7:::1;:18:::0;8173::::1;:40:::0;-1:-1:-1;8224:6:0::1;:10:::0;7998:244::o;8706:118::-;4985:7;5012:6;-1:-1:-1;;;;;5012:6:0;3816:10;5159:23;5151:68;;;;-1:-1:-1;;;5151:68:0;;;;;;;:::i;:::-;8786:24;;::::1;::::0;:10:::1;::::0;:24:::1;::::0;::::1;::::0;::::1;:::i;:::-;;8706:118:::0;:::o;7859:131::-;4985:7;5012:6;-1:-1:-1;;;;;5012:6:0;3816:10;5159:23;5151:68;;;;-1:-1:-1;;;5151:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7959:23:0::1;;::::0;;;:13:::1;:23;::::0;;;;;;-1:-1:-1;;7932:50:0;::::1;7959:23;::::0;;::::1;7958:24;7932:50;::::0;;7859:131::o;11479:89::-;4985:7;5012:6;-1:-1:-1;;;;;5012:6:0;3816:10;5159:23;5151:68;;;;-1:-1:-1;;;5151:68:0;;;;;;;:::i;:::-;11547:6:::1;:13:::0;;-1:-1:-1;;;;;;11547:13:0::1;-1:-1:-1::0;;;;;11547:13:0;;;::::1;::::0;;;::::1;::::0;;11479:89::o;11676:188::-;11779:4;11803:53;11811:14;11817:7;11811:5;:14::i;:::-;11827:5;;11803:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11834:21:0;;;:13;:21;;;;;;;-1:-1:-1;11803:7:0;;-1:-1:-1;;11803:53:0:i;:::-;11796:60;11676:188;-1:-1:-1;;;;;11676:188:0:o;9730:1741::-;9849:6;;9859:1;9849:11;9841:25;;;;-1:-1:-1;;;9841:25:0;;13359:2:1;9841:25:0;;;13341:21:1;13398:1;13378:18;;;13371:29;-1:-1:-1;;;13416:18:1;;;13409:31;13457:18;;9841:25:0;13331:150:1;9841:25:0;9897:1;9885:9;:13;9877:28;;;;-1:-1:-1;;;9877:28:0;;15772:2:1;9877:28:0;;;15754:21:1;15811:1;15791:18;;;15784:29;-1:-1:-1;;;15829:18:1;;;15822:31;15870:18;;9877:28:0;15744:150:1;9877:28:0;9938:1;9924:11;:15;9916:30;;;;-1:-1:-1;;;9916:30:0;;15443:2:1;9916:30:0;;;15425:21:1;15482:1;15462:18;;;15455:29;-1:-1:-1;;;15500:18:1;;;15493:31;15541:18;;9916:30:0;15415:150:1;9916:30:0;9977:15;9965:9;;:27;9957:41;;;;-1:-1:-1;;;9957:41:0;;14424:2:1;9957:41:0;;;14406:21:1;14463:1;14443:18;;;14436:29;-1:-1:-1;;;14481:18:1;;;14474:31;14522:18;;9957:41:0;14396:150:1;9957:41:0;10027:15;10017:7;;:25;10009:39;;;;-1:-1:-1;;;10009:39:0;;13688:2:1;10009:39:0;;;13670:21:1;13727:1;13707:18;;;13700:29;-1:-1:-1;;;13745:18:1;;;13738:31;13786:18;;10009:39:0;13660:150:1;10009:39:0;10126:7;:9;;10069:14;;;;10126:9;10069:14;10126:9;;;:::i;:::-;;;;-1:-1:-1;10159:4:0;;-1:-1:-1;10159:4:0;10146:10;10210:761;10234:29;;;10210:761;;;10289:34;10326:14;;10341:5;10326:21;;;;;-1:-1:-1;;;10326:21:0;;;;;;;;;;;;;;;;;;;;:::i;:::-;10289:58;-1:-1:-1;10362:28:0;10372:18;;;;10362:28;;:::i;:::-;10421:21;;10416:27;;;;:4;10452:18;10416:27;;;;;;;:33;10362:28;;-1:-1:-1;10416:54:0;;10452:18;;;;;10416:54;:::i;:::-;10405:66;;;;:::i;:::-;10492:7;;10486:14;;;;:5;10539:18;10486:14;;;;;;;10514:21;;10486:50;;:27;;:50;;;;;10539:18;;;;10486:71;;;;10572:4;:27;;;;;:34;;;:56;;10405:66;;-1:-1:-1;10539:18:0;;10572:34;;10486:14;10572:56;;10539:18;;10572:56;:::i;:::-;;;;-1:-1:-1;;10654:10:0;10643:22;;;;:10;10692:18;10643:22;;;;;;;10666:21;;10643:45;;;;;;:67;;10692:18;;;;;10643:45;;:67;;10692:18;;10643:67;:::i;:::-;;;;-1:-1:-1;;10753:15:0;;10728:21;;:40;10725:235;;;10825:15;10804:18;;:36;10788:52;;10867:77;10875:17;10881:10;10875:5;:17::i;:::-;10894;;;;:11;:17;:::i;:::-;10867:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10927:15:0;;10913:30;;:13;:30;;;;;;;-1:-1:-1;10867:7:0;;-1:-1:-1;;10867:77:0:i;:::-;10859:85;;10725:235;-1:-1:-1;10265:7:0;;;;:::i;:::-;;;;10210:761;;;;10989:13;10981:27;;;;-1:-1:-1;;;10981:27:0;;16101:2:1;10981:27:0;;;16083:21:1;16140:1;16120:18;;;16113:29;-1:-1:-1;;;16158:18:1;;;16151:31;16199:18;;10981:27:0;16073:150:1;10981:27:0;11037:11;11027:6;:21;11019:35;;;;-1:-1:-1;;;11019:35:0;;16430:2:1;11019:35:0;;;16412:21:1;16469:1;16449:18;;;16442:29;-1:-1:-1;;;16487:18:1;;;16480:31;16528:18;;11019:35:0;16402:150:1;11019:35:0;11073:5;11065:19;;;;-1:-1:-1;;;11065:19:0;;14753:2:1;11065:19:0;;;14735:21:1;14792:1;14772:18;;;14765:29;-1:-1:-1;;;14810:18:1;;;14803:31;14851:18;;11065:19:0;14725:150:1;11065:19:0;11120:9;11148:22;;;;11140:36;;;;-1:-1:-1;;;11140:36:0;;16759:2:1;11140:36:0;;;16741:21:1;16798:1;16778:18;;;16771:29;-1:-1:-1;;;16816:18:1;;;16809:31;16857:18;;11140:36:0;16731:150:1;11140:36:0;11198:10;11187:22;;;;:10;:22;;;;;;;;11215:7;;;11187:36;;;;;;;;;;;;;;;;;;;;11240:7;;11234:14;;:5;:14;;;;;;:20;;:33;;-1:-1:-1;;;;;;11234:33:0;;;;;;;11284:7;11278:14;;;;;:30;;;11327:6;;11319:42;;-1:-1:-1;;;;;11327:6:0;;;;11347:9;;11319:42;11187:22;11319:42;11347:9;11327:6;11319:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11404:7:0;;11449:6;;11377:86;;11404:7;;-1:-1:-1;11377:86:0;;;;11388:14;;;;11413:11;;11426:9;;11437:10;;-1:-1:-1;;;;;11449:6:0;;;;11457:5;;11377:86;:::i;:::-;;;;;;;;9730:1741;;;;;;;;:::o;9375:347::-;9432:40;9485:21;9522:13;9517:196;9549:10;:17;9541:25;;9517:196;;;9619:80;;;;;;;;9633:10;9644:5;9633:17;;;;;;-1:-1:-1;;;9633:17:0;;;;;;;;;;;;;;;;;9619:80;;;;9652:10;:16;9663:4;-1:-1:-1;;;;;9652:16:0;-1:-1:-1;;;;;9652:16:0;;;;;;;;;;;;:35;9669:10;9680:5;9669:17;;;;;;-1:-1:-1;;;9669:17:0;;;;;;;;;;;;;;;;;9652:35;;;;;;;;;;;;9619:80;;;;9689:4;-1:-1:-1;;;;;9619:80:0;;;;;9694:4;9619:80;;;9592:17;9610:5;9592:24;;;;;;-1:-1:-1;;;9592:24:0;;;;;;;;;;;;;;:107;;;;9568:7;;;;;:::i;:::-;;;;9517:196;;;;9375:347;;;;:::o;8830:98::-;8875:16;8910:10;8903:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8830:98;:::o;11870:144::-;4985:7;5012:6;-1:-1:-1;;;;;5012:6:0;3816:10;5159:23;5151:68;;;;-1:-1:-1;;;5151:68:0;;;;;;;:::i;:::-;11966:21:::1;::::0;;;:13:::1;:21;::::0;;;;:40;11870:144::o;8937:202::-;4985:7;5012:6;-1:-1:-1;;;;;5012:6:0;3816:10;5159:23;5151:68;;;;-1:-1:-1;;;5151:68:0;;;;;;;:::i;:::-;9020:13:::1;9015:117;9047:7;:14;9039:5;:22;9015:117;;;9106:7;9114:5;9106:14;;;;;;-1:-1:-1::0;;;9106:14:0::1;;;;;;;;;;;;;;;9088:4;:15;9093:5;9101:1;9093:9;;;;:::i;:::-;9088:15:::0;;::::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;9088:15:0;:32;;;;;;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;-1:-1:-1;;9088:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;9063:7;::::1;::::0;::::1;:::i;:::-;;;;9015:117;;8340:358:::0;4985:7;5012:6;-1:-1:-1;;;;;5012:6:0;3816:10;5159:23;5151:68;;;;-1:-1:-1;;;5151:68:0;;;;;;;:::i;:::-;8455:15:::1;::::0;;;:4:::1;:15;::::0;;;;:29;;;8495:21:::1;::::0;::::1;:29:::0;;;8535:27:::1;;:41:::0;;-1:-1:-1;;8535:41:0::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;8587:104:::1;;8617:13;:20:::0;;-1:-1:-1;;8617:20:0::1;8633:4;8617:20;::::0;;8652:15:::1;:27:::0;;;8587:104:::1;8340:358:::0;;;;:::o;5839:192::-;4985:7;5012:6;-1:-1:-1;;;;;5012:6:0;3816:10;5159:23;5151:68;;;;-1:-1:-1;;;5151:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5928:22:0;::::1;5920:73;;;::::0;-1:-1:-1;;;5920:73:0;;14017:2:1;5920:73:0::1;::::0;::::1;13999:21:1::0;14056:2;14036:18;;;14029:30;14095:34;14075:18;;;14068:62;-1:-1:-1;;;14146:18:1;;;14139:36;14192:19;;5920:73:0::1;13989:228:1::0;5920:73:0::1;6004:19;6014:8;6004:9;:19::i;:::-;5839:192:::0;:::o;2045:27::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2045:27:0;:::o;6039:174::-;6096:16;6115:6;;-1:-1:-1;;;;;6132:17:0;;;-1:-1:-1;;;;;;6132:17:0;;;;;;6165:40;;6115:6;;;;;;;6165:40;;6096:16;6165:40;6039:174;;:::o;12020:126::-;12112:25;;-1:-1:-1;;6740:2:1;6736:15;;;6732:53;12112:25:0;;;6720:66:1;12075:7:0;;6802:12:1;;12112:25:0;;;;;;;;;;;;12102:36;;;;;;12095:43;;12020:126;;;:::o;12152:159::-;12242:4;12266:37;12285:5;12292:4;12298;12266:18;:37::i;:::-;12259:44;12152:159;-1:-1:-1;;;;12152:159:0:o;6332:190::-;6457:4;6510;6481:25;6494:5;6501:4;6481:12;:25::i;:::-;:33;;6332:190;-1:-1:-1;;;;6332:190:0:o;6530:675::-;6613:7;6656:4;6613:7;6671:497;6695:5;:12;6691:1;:16;6671:497;;;6729:20;6752:5;6758:1;6752:8;;;;;;-1:-1:-1;;;6752:8:0;;;;;;;;;;;;;;;6729:31;;6795:12;6779;:28;6775:382;;7281:13;7331:15;;;7367:4;7360:15;;;7414:4;7398:21;;6907:57;;6775:382;;;7281:13;7331:15;;;7367:4;7360:15;;;7414:4;7398:21;;7084:57;;6775:382;-1:-1:-1;6709:3:0;;;;:::i;:::-;;;;6671:497;;;-1:-1:-1;7185:12:0;6530:675;-1:-1:-1;;;6530:675:0:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:173:1;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:2;;177:1;174;167:12;111:2;63:124;;;:::o;192:395::-;255:8;265:6;319:3;312:4;304:6;300:17;296:27;286:2;;344:8;334;327:26;286:2;-1:-1:-1;374:20:1;;417:18;406:30;;403:2;;;456:8;446;439:26;403:2;500:4;492:6;488:17;476:29;;560:3;553:4;543:6;540:1;536:14;528:6;524:27;520:38;517:47;514:2;;;577:1;574;567:12;514:2;276:311;;;;;:::o;592:160::-;657:20;;713:13;;706:21;696:32;;686:2;;742:1;739;732:12;757:196;816:6;869:2;857:9;848:7;844:23;840:32;837:2;;;890:6;882;875:22;837:2;918:29;937:9;918:29;:::i;:::-;908:39;827:126;-1:-1:-1;;;827:126:1:o;958:599::-;1062:6;1070;1078;1086;1139:2;1127:9;1118:7;1114:23;1110:32;1107:2;;;1160:6;1152;1145:22;1107:2;1188:29;1207:9;1188:29;:::i;:::-;1178:39;;1268:2;1257:9;1253:18;1240:32;1295:18;1287:6;1284:30;1281:2;;;1332:6;1324;1317:22;1281:2;1376:70;1438:7;1429:6;1418:9;1414:22;1376:70;:::i;:::-;1097:460;;1465:8;;-1:-1:-1;1350:96:1;;1547:2;1532:18;1519:32;;1097:460;-1:-1:-1;;;;1097:460:1:o;1562:264::-;1630:6;1638;1691:2;1679:9;1670:7;1666:23;1662:32;1659:2;;;1712:6;1704;1697:22;1659:2;1740:29;1759:9;1740:29;:::i;:::-;1730:39;1816:2;1801:18;;;;1788:32;;-1:-1:-1;;;1649:177:1:o;1831:1571::-;1938:6;1969:2;2012;2000:9;1991:7;1987:23;1983:32;1980:2;;;2033:6;2025;2018:22;1980:2;2078:9;2065:23;2111:18;2103:6;2100:30;2097:2;;;2148:6;2140;2133:22;2097:2;2176:22;;2229:4;2221:13;;2217:27;-1:-1:-1;2207:2:1;;2263:6;2255;2248:22;2207:2;2304;2291:16;2327:67;2343:50;2390:2;2343:50;:::i;:::-;2327:67;:::i;:::-;2428:15;;;2459:12;;;;2491:11;;;2521:4;2552:11;;;2544:20;;2540:29;;2537:42;-1:-1:-1;2534:2:1;;;2597:6;2589;2582:22;2534:2;2624:6;2615:15;;2639:733;2653:2;2650:1;2647:9;2639:733;;;2724:2;2718:3;2709:7;2705:17;2701:26;2698:2;;;2745:6;2737;2730:22;2698:2;2780:22;;:::i;:::-;2829:17;;2815:32;;2896:12;;;2883:26;2867:14;;;2860:50;2933:2;2984:12;;;2971:26;2955:14;;;2948:50;3021:2;3072:12;;;3059:26;3043:14;;;3036:50;3109:3;3148:29;3164:12;;;3148:29;:::i;:::-;3132:14;;;3125:53;3201:3;3253:12;;;3240:26;3224:14;;;3217:50;3280:18;;2671:1;2664:9;;;;;3318:12;;;;3350;;;;2639:733;;;-1:-1:-1;3391:5:1;;1949:1453;-1:-1:-1;;;;;;;;1949:1453:1:o;3407:557::-;3534:6;3542;3550;3603:2;3591:9;3582:7;3578:23;3574:32;3571:2;;;3624:6;3616;3609:22;3571:2;3669:9;3656:23;3702:18;3694:6;3691:30;3688:2;;;3739:6;3731;3724:22;3688:2;3783:70;3845:7;3836:6;3825:9;3821:22;3783:70;:::i;:::-;3872:8;;3757:96;;-1:-1:-1;3954:2:1;3939:18;;;;3926:32;;3561:403;-1:-1:-1;;;;3561:403:1:o;3969:954::-;4053:6;4084:2;4127;4115:9;4106:7;4102:23;4098:32;4095:2;;;4148:6;4140;4133:22;4095:2;4193:9;4180:23;4226:18;4218:6;4215:30;4212:2;;;4263:6;4255;4248:22;4212:2;4291:22;;4344:4;4336:13;;4332:27;-1:-1:-1;4322:2:1;;4378:6;4370;4363:22;4322:2;4419;4406:16;4442:67;4458:50;4505:2;4458:50;:::i;4442:67::-;4531:3;4555:2;4550:3;4543:15;4583:2;4578:3;4574:12;4567:19;;4614:2;4610;4606:11;4662:7;4657:2;4651;4648:1;4644:10;4640:2;4636:19;4632:28;4629:41;4626:2;;;4688:6;4680;4673:22;4626:2;4715:6;4706:15;;4730:163;4744:2;4741:1;4738:9;4730:163;;;4801:17;;4789:30;;4762:1;4755:9;;;;;4839:12;;;;4871;;4730:163;;;-1:-1:-1;4912:5:1;4064:859;-1:-1:-1;;;;;;;4064:859:1:o;4928:258::-;4996:6;5004;5057:2;5045:9;5036:7;5032:23;5028:32;5025:2;;;5078:6;5070;5063:22;5025:2;-1:-1:-1;;5106:23:1;;;5176:2;5161:18;;;5148:32;;-1:-1:-1;5015:171:1:o;5191:190::-;5250:6;5303:2;5291:9;5282:7;5278:23;5274:32;5271:2;;;5324:6;5316;5309:22;5271:2;-1:-1:-1;5352:23:1;;5261:120;-1:-1:-1;5261:120:1:o;5386:326::-;5463:6;5471;5479;5532:2;5520:9;5511:7;5507:23;5503:32;5500:2;;;5553:6;5545;5538:22;5500:2;-1:-1:-1;;5581:23:1;;;5651:2;5636:18;;5623:32;;-1:-1:-1;5702:2:1;5687:18;;;5674:32;;5490:222;-1:-1:-1;5490:222:1:o;5717:395::-;5800:6;5808;5816;5824;5877:3;5865:9;5856:7;5852:23;5848:33;5845:2;;;5899:6;5891;5884:22;5845:2;5940:9;5927:23;5917:33;;5997:2;5986:9;5982:18;5969:32;5959:42;;6048:2;6037:9;6033:18;6020:32;6010:42;;6071:35;6102:2;6091:9;6087:18;6071:35;:::i;:::-;6061:45;;5835:277;;;;;;;:::o;6226:360::-;6314:19;;;6296:3;-1:-1:-1;;;;;6345:31:1;;6342:2;;;6391:3;6386;6379:16;6342:2;6429:6;6426:1;6422:14;6481:8;6474:5;6467:4;6462:3;6458:14;6445:45;6513:18;;;;6533:4;6509:29;6547:15;;;-1:-1:-1;6509:29:1;;6304:282;-1:-1:-1;6304:282:1:o;7243:1098::-;7460:2;7512:21;;;7582:13;;7485:18;;;7604:22;;;7431:4;;7460:2;7645;;7663:18;;;;7704:15;;;7431:4;7750:565;7764:6;7761:1;7758:13;7750:565;;;7823:13;;7861:9;;7849:22;;7911:11;;;7905:18;7891:12;;;7884:40;7964:11;;;7958:18;7944:12;;;7937:40;8000:4;8044:11;;;8038:18;8024:12;;;8017:40;8080:4;8138:11;;;8132:18;8125:26;8118:34;8104:12;;;8097:56;8176:4;8220:11;;;8214:18;8200:12;;;8193:40;8262:4;8253:14;;;;8290:15;;;;7786:1;7779:9;7750:565;;;-1:-1:-1;8332:3:1;;7440:901;-1:-1:-1;;;;;;;7440:901:1:o;8346:2283::-;8748:3;8761:22;;;8733:19;;8818:22;;;8700:4;8894:1;8871:3;8856:19;;;;8937:15;;;8922:31;;8918:41;8982:6;8700:4;9019:1333;9033:6;9030:1;9027:13;9019:1333;;;9098:22;;;-1:-1:-1;;9094:37:1;9082:50;;9171:20;;9246:14;9242:27;;;-1:-1:-1;;9238:42:1;9214:67;;9204:2;;9298:4;9292;9285:18;9204:2;9331:31;;9417:19;;9402:35;;9460:4;9514:14;;;9501:28;9484:15;;;9477:53;9385:4;;9553;-1:-1:-1;;;;;9598:34:1;9617:14;;;9598:34;:::i;:::-;9594:60;9577:15;;;9570:85;9678:4;9736:14;;;9723:28;9808:14;9804:26;;;-1:-1:-1;;9800:40:1;9774:67;;9764:2;;9858:4;9852;9845:18;9764:2;9893:32;;9952:21;;10000:18;9989:30;;9986:2;;;10035:4;10029;10022:18;9986:2;10097:6;10093:2;10089:15;10073:14;10069:36;10062:5;10058:48;10055:2;;;10122:4;10116;10109:18;10055:2;10166;10161;10153:6;10149:15;10142:27;10192:80;10268:2;10260:6;10256:15;10248:6;10243:2;10234:7;10230:16;10192:80;:::i;:::-;10330:12;;;;10182:90;-1:-1:-1;;;10295:15:1;;;-1:-1:-1;;;9055:1:1;9048:9;9019:1333;;;9023:3;;10369:6;10361:14;;;;;10413:6;10406:4;10395:9;10391:20;10384:36;10458:6;10451:4;10440:9;10436:20;10429:36;10474:48;10516:4;10505:9;10501:20;10493:6;-1:-1:-1;;;;;6183:31:1;6171:44;;6161:60;10474:48;-1:-1:-1;;;;;6183:31:1;;;;10573:4;10558:20;;6171:44;10610:3;10595:19;10588:35;8709:1920;;-1:-1:-1;;;;;8709:1920:1:o;10634:1686::-;10836:4;10865:2;10905;10894:9;10890:18;10935:2;10924:9;10917:21;10958:6;10993;10987:13;11024:6;11016;11009:22;11050:2;11040:12;;11083:2;11072:9;11068:18;11061:25;;11145:2;11135:6;11132:1;11128:14;11117:9;11113:30;11109:39;11183:2;11175:6;11171:15;11204:4;11217:1074;11231:6;11228:1;11225:13;11217:1074;;;11296:22;;;-1:-1:-1;;11292:36:1;11280:49;;11352:13;;11462:9;;11447:25;;11515:11;;;11509:18;11492:15;;;11485:43;11575:11;;;11569:18;-1:-1:-1;;;;;11565:44:1;11548:15;;;11541:69;11633:4;11676:11;;;11670:18;11388:4;11708:15;;;11701:27;;;11789:19;;11419:15;;;11821:24;;;11912:21;;;11597:3;11867:16;;;11957:4;;11974:209;11990:8;11985:3;11982:17;11974:209;;;12067:15;;12053:30;;12152:17;;;;12109:14;;;;12018:1;12009:11;;;;;11974:209;;;-1:-1:-1;;12269:12:1;;;;12206:5;-1:-1:-1;;12234:15:1;;;;11253:1;11246:9;11217:1074;;12325:635;12496:2;12548:21;;;12618:13;;12521:18;;;12640:22;;;12467:4;;12496:2;12719:15;;;;12693:2;12678:18;;;12467:4;12765:169;12779:6;12776:1;12773:13;12765:169;;;12840:13;;12828:26;;12909:15;;;;12874:12;;;;12801:1;12794:9;12765:169;;;-1:-1:-1;12951:3:1;;12476:484;-1:-1:-1;;;;;;12476:484:1:o;14880:356::-;15082:2;15064:21;;;15101:18;;;15094:30;15160:34;15155:2;15140:18;;15133:62;15227:2;15212:18;;15054:182::o;17942:557::-;18035:4;18041:6;18101:11;18088:25;18195:2;18191:7;18180:8;18164:14;18160:29;18156:43;18136:18;18132:68;18122:2;;18217:4;18211;18204:18;18122:2;18247:33;;18299:20;;;-1:-1:-1;18342:18:1;18331:30;;18328:2;;;18377:4;18371;18364:18;18328:2;18413:4;18401:17;;-1:-1:-1;18464:1:1;18460:14;;;18444;18440:35;18430:46;;18427:2;;;18489:1;18486;18479:12;18504:336;18602:4;18660:11;18647:25;18754:3;18750:8;18739;18723:14;18719:29;18715:44;18695:18;18691:69;18681:2;;18777:4;18771;18764:18;18681:2;18801:33;;;;;18611:229;-1:-1:-1;;18611:229:1:o;18845:253::-;18917:2;18911:9;18959:4;18947:17;;18994:18;18979:34;;19015:22;;;18976:62;18973:2;;;19041:18;;:::i;:::-;19077:2;19070:22;18891:207;:::o;19103:275::-;19174:2;19168:9;19239:2;19220:13;;-1:-1:-1;;19216:27:1;19204:40;;19274:18;19259:34;;19295:22;;;19256:62;19253:2;;;19321:18;;:::i;:::-;19357:2;19350:22;19148:230;;-1:-1:-1;19148:230:1:o;19383:190::-;19450:4;19483:18;19475:6;19472:30;19469:2;;;19505:18;;:::i;:::-;-1:-1:-1;19550:1:1;19546:14;19562:4;19542:25;;19459:114::o;19578:128::-;19618:3;19649:1;19645:6;19642:1;19639:13;19636:2;;;19655:18;;:::i;:::-;-1:-1:-1;19691:9:1;;19626:80::o;19711:168::-;19751:7;19817:1;19813;19809:6;19805:14;19802:1;19799:21;19794:1;19787:9;19780:17;19776:45;19773:2;;;19824:18;;:::i;:::-;-1:-1:-1;19864:9:1;;19763:116::o;19884:135::-;19923:3;-1:-1:-1;;19944:17:1;;19941:2;;;19964:18;;:::i;:::-;-1:-1:-1;20011:1:1;20000:13;;19931:88::o;20024:127::-;20085:10;20080:3;20076:20;20073:1;20066:31;20116:4;20113:1;20106:15;20140:4;20137:1;20130:15;20156:127;20217:10;20212:3;20208:20;20205:1;20198:31;20248:4;20245:1;20238:15;20272:4;20269:1;20262:15

Swarm Source

ipfs://10ca5bb2ef5de8c9d6074bf2bb3f8ad53fcbd758b754b414d2b8af9454bf7dfc

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.