POL Price: $0.220021 (+4.28%)
Gas: 36 GWei
 

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Add Allowed Cont...685573032025-03-02 13:01:3751 days ago1740920497IN
Gains Network: GNS Pool
0 POL0.0007355930.55799464
Unstake685571422025-03-02 12:55:4951 days ago1740920149IN
Gains Network: GNS Pool
0 POL0.0007402631.02940298
Unstake685570742025-03-02 12:53:2551 days ago1740920005IN
Gains Network: GNS Pool
0 POL0.0007408431.03789929
Unstake685568862025-03-02 12:46:4551 days ago1740919605IN
Gains Network: GNS Pool
0 POL0.0007653232.06375968
Unstake685567842025-03-02 12:43:0951 days ago1740919389IN
Gains Network: GNS Pool
0 POL0.0008114833.99743666
Unstake685564022025-03-02 12:27:2451 days ago1740918444IN
Gains Network: GNS Pool
0 POL0.0042781131.02964903
Unstake672366282025-01-28 5:51:2885 days ago1738043488IN
Gains Network: GNS Pool
0 POL0.0045497733.00000002
Unstake650763952024-12-04 14:40:08139 days ago1733323208IN
Gains Network: GNS Pool
0 POL0.209448081,157.56826828
Harvest650747532024-12-04 13:41:58139 days ago1733319718IN
Gains Network: GNS Pool
0 POL0.0069256887.87044143
Unstake650745812024-12-04 13:35:51139 days ago1733319351IN
Gains Network: GNS Pool
0 POL0.0113891.73128896
Unstake650745332024-12-04 13:34:09139 days ago1733319249IN
Gains Network: GNS Pool
0 POL0.0173239197.19542781
Unstake637010982024-10-31 5:06:33174 days ago1730351193IN
Gains Network: GNS Pool
0 POL0.004900835.54915604
Harvest636986652024-10-31 3:39:06174 days ago1730345946IN
Gains Network: GNS Pool
0 POL0.0026772433.96789111
Unstake636986162024-10-31 3:37:22174 days ago1730345842IN
Gains Network: GNS Pool
0 POL0.0052702138.99241568
Harvest636420882024-10-29 17:59:57175 days ago1730224797IN
Gains Network: GNS Pool
0 POL0.0052191432.28191075
Unstake625471122024-10-02 15:50:43202 days ago1727884243IN
Gains Network: GNS Pool
0 POL0.0049147830.00000147
Harvest609440622024-08-23 14:07:43242 days ago1724422063IN
Gains Network: GNS Pool
0 POL0.0045375828.06625792
Unstake597141752024-07-23 14:32:05273 days ago1721745125IN
Gains Network: GNS Pool
0 POL0.006491847.08162098
Harvest597138682024-07-23 14:21:13273 days ago1721744473IN
Gains Network: GNS Pool
0 POL0.0036008245.68584133
Harvest578048222024-06-05 17:48:31321 days ago1717609711IN
Gains Network: GNS Pool
0 POL0.0023645130.00000003
Harvest578048042024-06-05 17:47:53321 days ago1717609673IN
Gains Network: GNS Pool
0 POL0.0023645130.00000003
Unstake570794082024-05-17 18:10:40340 days ago1715969440IN
Gains Network: GNS Pool
0 POL0.0062492134.53787582
Unstake559899752024-04-19 2:37:49369 days ago1713494269IN
Gains Network: GNS Pool
0 POL0.05789587428.3506468
Harvest559897642024-04-19 2:29:49369 days ago1713493789IN
Gains Network: GNS Pool
0 POL0.07526073520.56894319
Harvest557367622024-04-12 11:57:09375 days ago1712923029IN
Gains Network: GNS Pool
0 POL0.02007176254.66287414
View all transactions

Parent Transaction Hash Block From To
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
GNSPoolV5

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 999 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at polygonscan.com on 2021-10-27
*/

// File: contracts\interfaces\TokenInterfaceV5.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.7;

interface TokenInterfaceV5{
    function burn(address, uint256) external;
    function mint(address, uint256) external;
    function transfer(address, uint256) external returns (bool);
    function transferFrom(address, address, uint256) external returns(bool);
    function balanceOf(address) external view returns(uint256);
    function hasRole(bytes32, address) external view returns (bool);
    function approve(address, uint256) external returns (bool);
    function allowance(address, address) external view returns (uint256);
}

// File: contracts\interfaces\LpInterfaceV5.sol

pragma solidity 0.8.7;

interface LpInterfaceV5{
   	function getReserves() external view returns (uint112, uint112, uint32);
    function token0() external view returns (address);
    function transfer(address, uint) external returns (bool);
    function transferFrom(address, address, uint256) external;
    function totalSupply() external view returns (uint);
    function balanceOf(address) external view returns (uint);
    function approve(address, uint256) external returns (bool);
}

// File: contracts\interfaces\NftInterfaceV5.sol

pragma solidity 0.8.7;

interface NftInterfaceV5{
    function balanceOf(address) external view returns (uint);
    function ownerOf(uint) external view returns (address);
    function transferFrom(address, address, uint) external;
    function tokenOfOwnerByIndex(address, uint) external view returns(uint);
}

// File: contracts\interfaces\QuickStakingContractInterfaceV5.sol

pragma solidity 0.8.7;

interface QuickStakingContractInterfaceV5{
	function earned(address) external view returns (uint256);
	function getReward() external;
	function stake(uint) external;
	function withdraw(uint) external;
	function balanceOf(address) external view returns (uint256);
}

// File: contracts\GNSPoolV5.sol





pragma solidity 0.8.7;

contract GNSPoolV5{

    // Constants
    bytes32 public constant MINTER_ROLE = 0x9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6;
    TokenInterfaceV5 public constant quick = TokenInterfaceV5(0xf28164A485B0B2C90639E47b0f377b4a438a16B1);

    // Contracts & Addresses
    TokenInterfaceV5 public token; // GNS
    LpInterfaceV5 public lp; // GNS/DAI
    QuickStakingContractInterfaceV5 public quickStakingContract;
    address public govFund = 0xC66FbE50Dd33c9AAdd65707F7088D597C86fE00F;

    // Pool variables
    uint public accTokensPerLp;
    uint public accQuickPerLp; // Dual rewards
    uint public lpBalance;

    // Pool parameters
    uint public maxNftsStaked = 3;
    uint public referralP = 6; // % 2 == 0
    uint[5] public boostsP = [2, 3, 5, 8, 13];

    // Pool stats
    uint public rewardsToken; // 1e18
    uint public rewardsQuick; // 1e18

    // Mappings
    mapping(address => User) public users;
    mapping(address => mapping(uint => StakedNft)) public userNfts;
    mapping(address => bool) public allowedContracts;

    // Structs
    struct StakedNft{
        uint nftId;
        uint nftType;
    }
    struct User{
        uint provided;
        uint debtToken;
        uint debtQuick;
        uint stakedNftsCount;
        uint totalBoost;
        address referral;
        uint referralRewardsToken;
    }

    // Events
    event AddressUpdated(string name, address a);
    event ContractAllowed(address a, bool allowed);
    event BoostsUpdated(uint[5]);
    event NumberUpdated(string name, uint value);

    constructor(address _tradingStorage){
        require(_tradingStorage != address(0), "ADDRESS_0");
        allowedContracts[_tradingStorage] = true;
    }

    // GOV => UPDATE VARIABLES & MANAGE PAIRS

    // 0. Modifiers
    modifier onlyGov(){
        require(msg.sender == govFund, "GOV_ONLY");
        _;
    }

    // Set addresses
    function setGovFund(address _gov) external onlyGov{
        require(_gov != address(0), "ADDRESS_0");
        govFund = _gov;
        emit AddressUpdated("govFund", _gov);
    }
    function setToken(TokenInterfaceV5 _token) external onlyGov{
        require(address(_token) != address(0), "ADDRESS_0");
        require(address(token) == address(0), "ALREADY_SET");
        token = _token;
        emit AddressUpdated("token", address(_token));
    }
    function setLp(LpInterfaceV5 _lp) external onlyGov{
        require(address(_lp) != address(0), "ADDRESS_0");
        require(address(lp) == address(0), "ALREADY_SET");
        lp = _lp;
        emit AddressUpdated("lp", address(_lp));
    }
    function setQuickStakingContract(QuickStakingContractInterfaceV5 _quickStaking) external onlyGov{
        require(address(_quickStaking) != address(0), "ADDRESS_0");
        require(address(quickStakingContract) == address(0), "ALREADY_SET");
        quickStakingContract = _quickStaking;
        emit AddressUpdated("quickStakingContract", address(_quickStaking));
    }
    function addAllowedContract(address c) external onlyGov{
        require(c != address(0), "ADDRESS_0");
        require(token.hasRole(MINTER_ROLE, c), "NOT_MINTER");
        allowedContracts[c] = true;
        emit ContractAllowed(c, true);
    }
    function removeAllowedContract(address c) external onlyGov{
        require(c != address(0), "ADDRESS_0");
        allowedContracts[c] = false;
        emit ContractAllowed(c, false);
    }
    function setBoostsP(uint _bronze, uint _silver, uint _gold, uint _platinum, uint _diamond) external onlyGov{
        require(_bronze < _silver && _silver < _gold && _gold < _platinum && _platinum < _diamond && _bronze > 0, "WRONG_VALUES");
        boostsP = [_bronze, _silver, _gold, _platinum, _diamond];
        emit BoostsUpdated(boostsP);
    }
    function setMaxNftsStaked(uint _maxNftsStaked) external onlyGov{
        require(_maxNftsStaked >= 3, "BELOW_3");
        maxNftsStaked = _maxNftsStaked;
        emit NumberUpdated("maxNftsStaked", _maxNftsStaked);
    }
    function setReferralP(uint _referralP) external onlyGov{
        require(_referralP % 2 == 0, "NOT_EVEN");
        referralP = _referralP;
        emit NumberUpdated("referralP", _referralP);
    }

    // USEFUL FUNCTIONS

    // Remove access to contracts
    modifier notContract(){
        require(tx.origin == msg.sender, "CONTRACT");
        _;
    }

    // Get reserves LP
    function reservesLp() public view returns(uint, uint){
        (uint112 reserves0, uint112 reserves1, ) = lp.getReserves();
        return lp.token0() == address(token) ? (reserves0, reserves1) : (reserves1, reserves0);
    }

    // Called by Gains.farm ecosystem allowed contracts (trading, casino, etc.)
    function increaseAccTokensPerLp(uint _amount) external{
        require(allowedContracts[msg.sender] && token.hasRole(MINTER_ROLE, msg.sender), "ONLY_ALLOWED_CONTRACTS");
        if(lpBalance > 0){
            accTokensPerLp += _amount * 1e18 / lpBalance;
            rewardsToken += _amount;
        }
    }

    // Compute NFT boosts
    function setBoosts() private{
        User storage u = users[msg.sender];
        u.totalBoost = 0;
        for(uint i = 0; i < u.stakedNftsCount; i++){
            u.totalBoost += u.provided * boostsP[userNfts[msg.sender][i].nftType-1] / 100;
        }
        u.debtToken = (u.provided + u.totalBoost) * accTokensPerLp / 1e18;
        u.debtQuick = (u.provided + u.totalBoost) * accQuickPerLp / 1e18;
    }

    // Rewards to be harvested
    function pendingRewardToken() view public returns(uint){
        User storage u = users[msg.sender];
        return (u.provided + u.totalBoost) * accTokensPerLp / 1e18 - u.debtToken;
    }
    function pendingRewardQuick() view public returns(uint){
        if(lpBalance == 0){ return 0; }
        User storage u = users[msg.sender];
        uint pendingAccQuickPerLp = accQuickPerLp + quickStakingContract.earned(address(this)) * 1e18 / lpBalance;
        return (u.provided + u.totalBoost) * pendingAccQuickPerLp / 1e18 - u.debtQuick;
    }

    // EXTERNAL FUNCTIONS

    // Harvest rewards
    function harvest() public{
        if(lpBalance == 0){ return; }
        
        User storage u = users[msg.sender];

        uint pendingTokens = pendingRewardToken();

        if(pendingTokens > 0){
            if(u.referral == address(0)){
                token.mint(msg.sender, pendingTokens - pendingTokens * referralP / 100);
            }else{
                uint referralReward = pendingTokens * referralP / 200;

                token.mint(msg.sender, pendingTokens - referralReward);
                token.mint(u.referral, referralReward);

                users[u.referral].referralRewardsToken += referralReward;
            }
        }

        u.debtToken = (u.provided + u.totalBoost) * accTokensPerLp / 1e18;

        uint pendingQuick = pendingRewardQuick();
        uint pendingQuickTotal = quickStakingContract.earned(address(this));

        quickStakingContract.getReward();
        accQuickPerLp += pendingQuickTotal * 1e18 / lpBalance;

        u.debtQuick = (u.provided + u.totalBoost) * accQuickPerLp / 1e18;
        rewardsQuick += pendingQuickTotal;

        if(pendingQuick > 0){ quick.transfer(msg.sender, pendingQuick); }
    }

    // Stake LPs
    function stake(uint amount, address referral) external{
        User storage u = users[msg.sender];
        
        // 1. Transfer the LPs to the contract
        lp.transferFrom(msg.sender, address(this), amount);

        // 2. Harvest pending rewards
        harvest();

        // 3. Stake in quickswap contract
        require(lp.approve(address(quickStakingContract), amount), "APPROVE_FAILED");
        quickStakingContract.stake(amount);

        // 4. Reset lp balance
        lpBalance -= (u.provided + u.totalBoost);

        // 5. Set user provided
        u.provided += amount;

        // 6. Set boosts and debt
        setBoosts();

        // 7. Update lp balance
        lpBalance += (u.provided + u.totalBoost);

        // 8. Set referral
        if(u.referral == address(0) && referral != address(0) && referral != msg.sender){
            u.referral = referral;
        }
    }

    // Stake NFT
    // NFT types: 1, 2, 3, 4, 5
    function stakeNft(uint nftType, uint nftId) external notContract{
        User storage u = users[msg.sender];

        // 0. If didn't already stake NFT + nft type is either platinum or diamond
        require(u.stakedNftsCount < maxNftsStaked, "MAX_NFTS_ALREADY_STAKED");
        require(nftType >= 1 && nftType <= 5, "WRONG_NFT_TYPE");

        // 1. Transfer the NFT to the contract
        require(nfts()[nftType-1].balanceOf(msg.sender) >= 1, "NOT_NFT_OWNER");
        nfts()[nftType-1].transferFrom(msg.sender, address(this), nftId);

        // 2. Harvest pending rewards
        harvest();

        // 3. Reset lp balance
        lpBalance -= (u.provided + u.totalBoost);

        // 4. Store NFT info
        StakedNft storage stakedNft = userNfts[msg.sender][u.stakedNftsCount];
        stakedNft.nftType = nftType;
        stakedNft.nftId = nftId;
        u.stakedNftsCount ++;

        // 5. Set user boosts & debt
        setBoosts();

        // 6. Update lp balance
        lpBalance += (u.provided + u.totalBoost);
    }

    // Unstake NFT
    function unstakeNft(uint nftIndex) external{
        User storage u = users[msg.sender];
        StakedNft memory stakedNft = userNfts[msg.sender][nftIndex];

        // 1. Harvest pending rewards
        harvest();

        // 2. Reset lp balance
        lpBalance -= (u.provided + u.totalBoost);

        // 3. Remove NFT from storage => replace by last one and remove last one
        userNfts[msg.sender][nftIndex] = userNfts[msg.sender][u.stakedNftsCount-1];
        delete userNfts[msg.sender][u.stakedNftsCount-1];
        u.stakedNftsCount -= 1;

        // 4. Set user boosts & debt
        setBoosts();

        // 5. Update lp balance
        lpBalance += (u.provided + u.totalBoost);

        // 6. Transfer the NFT to the user
        nfts()[stakedNft.nftType-1].transferFrom(address(this), msg.sender, stakedNft.nftId);
    }

    // Unstake LPs
    function unstake(uint amount) external{
        // 1. Verify he doesn't unstake more than provided
        User storage u = users[msg.sender];
        require(amount <= u.provided, "AMOUNT_TOO_BIG");

        // 2. Harvest pending rewards
        harvest();

        // 3. Unstake from quickswap contract
        quickStakingContract.withdraw(amount);

        // 4. Reset lp balance
        lpBalance -= (u.provided + u.totalBoost);

        // 5. Set user provided
        u.provided -= amount;

        // 6. Set boosts and debt
        setBoosts();

        // 7. Update lp balance
        lpBalance += (u.provided + u.totalBoost);

        // 8. Transfer the LPs to the address
        lp.transfer(msg.sender, amount);
    }

    // READ-ONLY VIEW FUNCTIONS

    // 1e5 precision
    function tvl() external view returns(uint){
        if(lp.totalSupply() == 0){ return 0; }

        (, uint reserveDai) = reservesLp();
        uint lpPriceDai = reserveDai * 1e5 * 2 / lp.totalSupply();

        return quickStakingContract.balanceOf(address(this)) * lpPriceDai / 1e18;
    }
    // 1e5 precision
    function tvlWithBoosts() external view returns(uint){
        if(lp.totalSupply() == 0){ return 0; }

        (, uint reserveDai) = reservesLp();
        uint lpPriceDai = reserveDai * 1e5 * 2 / lp.totalSupply();

        return lpBalance * lpPriceDai / 1e18;
    }

    // NFTs list
    function nfts() public pure returns(NftInterfaceV5[5] memory){
        return [
            NftInterfaceV5(0xF9A4c522E327935BD1F5a338c121E14e4cc1f898),
            NftInterfaceV5(0x77cd42B925e1A82f41d852D6BE727CFc88fddBbC),
            NftInterfaceV5(0x3378AD81D09DE23725Ee9B9270635c97Ed601921),
            NftInterfaceV5(0x02e2c5825C1a3b69C0417706DbE1327C2Af3e6C2),
            NftInterfaceV5(0x2D266A94469d05C9e06D52A4D0d9C23b157767c2)
        ];
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_tradingStorage","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"name","type":"string"},{"indexed":false,"internalType":"address","name":"a","type":"address"}],"name":"AddressUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256[5]","name":"","type":"uint256[5]"}],"name":"BoostsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"a","type":"address"},{"indexed":false,"internalType":"bool","name":"allowed","type":"bool"}],"name":"ContractAllowed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"name","type":"string"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"NumberUpdated","type":"event"},{"inputs":[],"name":"MINTER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"accQuickPerLp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"accTokensPerLp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"c","type":"address"}],"name":"addAllowedContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"allowedContracts","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"boostsP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"govFund","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"harvest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"increaseAccTokensPerLp","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lp","outputs":[{"internalType":"contract LpInterfaceV5","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxNftsStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nfts","outputs":[{"internalType":"contract NftInterfaceV5[5]","name":"","type":"address[5]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pendingRewardQuick","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingRewardToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"quick","outputs":[{"internalType":"contract TokenInterfaceV5","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"quickStakingContract","outputs":[{"internalType":"contract QuickStakingContractInterfaceV5","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"referralP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"c","type":"address"}],"name":"removeAllowedContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"reservesLp","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsQuick","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_bronze","type":"uint256"},{"internalType":"uint256","name":"_silver","type":"uint256"},{"internalType":"uint256","name":"_gold","type":"uint256"},{"internalType":"uint256","name":"_platinum","type":"uint256"},{"internalType":"uint256","name":"_diamond","type":"uint256"}],"name":"setBoostsP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_gov","type":"address"}],"name":"setGovFund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract LpInterfaceV5","name":"_lp","type":"address"}],"name":"setLp","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxNftsStaked","type":"uint256"}],"name":"setMaxNftsStaked","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract QuickStakingContractInterfaceV5","name":"_quickStaking","type":"address"}],"name":"setQuickStakingContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_referralP","type":"uint256"}],"name":"setReferralP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract TokenInterfaceV5","name":"_token","type":"address"}],"name":"setToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"referral","type":"address"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"nftType","type":"uint256"},{"internalType":"uint256","name":"nftId","type":"uint256"}],"name":"stakeNft","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract TokenInterfaceV5","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tvl","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tvlWithBoosts","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"nftIndex","type":"uint256"}],"name":"unstakeNft","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"userNfts","outputs":[{"internalType":"uint256","name":"nftId","type":"uint256"},{"internalType":"uint256","name":"nftType","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"users","outputs":[{"internalType":"uint256","name":"provided","type":"uint256"},{"internalType":"uint256","name":"debtToken","type":"uint256"},{"internalType":"uint256","name":"debtQuick","type":"uint256"},{"internalType":"uint256","name":"stakedNftsCount","type":"uint256"},{"internalType":"uint256","name":"totalBoost","type":"uint256"},{"internalType":"address","name":"referral","type":"address"},{"internalType":"uint256","name":"referralRewardsToken","type":"uint256"}],"stateMutability":"view","type":"function"}]

600380546001600160a01b03191673c66fbe50dd33c9aadd65707f7088d597c86fe00f1781556007819055600660089081556101206040526002608090815260a092909252600560c081905260e091909152600d61010052620000659160099162000105565b503480156200007357600080fd5b5060405162002dd638038062002dd6833981016040819052620000969162000164565b6001600160a01b038116620000dd5760405162461bcd60e51b81526020600482015260096024820152680414444524553535f360bc1b604482015260640160405180910390fd5b6001600160a01b03166000908152601260205260409020805460ff1916600117905562000196565b82600581019282156200013b579160200282015b828111156200013b578251829060ff1690559160200191906001019062000119565b50620001499291506200014d565b5090565b5b808211156200014957600081556001016200014e565b6000602082840312156200017757600080fd5b81516001600160a01b03811681146200018f57600080fd5b9392505050565b612c3080620001a66000396000f3fe608060405234801561001057600080fd5b50600436106102925760003560e01c8063865f12e811610160578063d5391393116100d8578063ebaef5a01161008c578063fb8b7cec11610071578063fb8b7cec146105c9578063fc0c546a146105d1578063fdd3a879146105e457600080fd5b8063ebaef5a0146105ae578063f4c2baa9146105b657600080fd5b8063e5328e06116100bd578063e5328e0614610580578063e539e4b214610588578063e6d5c0031461059b57600080fd5b8063d539139314610546578063e09cc52f1461056d57600080fd5b8063befe88781161012f578063ca15ed4811610114578063ca15ed4814610521578063cab6693114610534578063d1af0c7d1461053d57600080fd5b8063befe887814610505578063c412dcfc1461050e57600080fd5b8063865f12e8146104455780639800fc1614610458578063a87430ba1461046b578063b763d4fc146104fd57600080fd5b806351e0e26b1161020e5780636b426000116101c25780637acb7757116101a75780637acb7757146104165780637c74f1af14610429578063846fe2551461043c57600080fd5b80636b426000146103f057806379cbeb2d1461040357600080fd5b80635db800e4116101f35780635db800e41461038357806368fc22801461039657806369b262b6146103a957600080fd5b806351e0e26b146103475780635458d0fe1461037a57600080fd5b80632059f615116102655780632e17de781161024a5780632e17de7814610301578063313c06a0146103145780634641257d1461033f57600080fd5b80632059f615146102e55780632c56462f146102ee57600080fd5b80630df0961c14610297578063144fa6d7146102b35780631710f259146102c85780631714f2e0146102d0575b600080fd5b6102a060075481565b6040519081526020015b60405180910390f35b6102c66102c1366004612912565b6105ff565b005b6102a061075f565b6102d86108c7565b6040516102aa9190612ab0565b6102a060065481565b6102c66102fc366004612912565b61095e565b6102c661030f3660046129f1565b610b2f565b600154610327906001600160a01b031681565b6040516001600160a01b0390911681526020016102aa565b6102c6610d06565b61036a610355366004612912565b60126020526000908152604090205460ff1681565b60405190151581526020016102aa565b6102a060045481565b6102c66103913660046129f1565b6111ae565b6102c66103a4366004612912565b6112b7565b6103db6103b7366004612953565b60116020908152600092835260408084209091529082529020805460019091015482565b604080519283526020830191909152016102aa565b6102c66103fe3660046129f1565b61140b565b6102c6610411366004612a53565b6115f0565b6102c6610424366004612a23565b611921565b6102c6610437366004612912565b611bda565b6102a060085481565b600354610327906001600160a01b031681565b6102c6610466366004612912565b611ce7565b6104bf610479366004612912565b6010602052600090815260409020805460018201546002830154600384015460048501546005860154600690960154949593949293919290916001600160a01b03169087565b60408051978852602088019690965294860193909352606085019190915260808401526001600160a01b031660a083015260c082015260e0016102aa565b6102a0611dc5565b6102a0600f5481565b6102c661051c3660046129f1565b611e1b565b6102c661052f366004612a75565b611f7c565b6102a060055481565b6102a0600e5481565b6102a07f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6102a061057b3660046129f1565b6120b4565b6102a06120cb565b600254610327906001600160a01b031681565b6102c66105a93660046129f1565b61229b565b6102a061239d565b6102c66105c4366004612912565b6124ac565b6103db612600565b600054610327906001600160a01b031681565b61032773f28164a485b0b2c90639e47b0f377b4a438a16b181565b6003546001600160a01b031633146106495760405162461bcd60e51b8152602060048201526008602482015267474f565f4f4e4c5960c01b60448201526064015b60405180910390fd5b6001600160a01b03811661068b5760405162461bcd60e51b81526020600482015260096024820152680414444524553535f360bc1b6044820152606401610640565b6000546001600160a01b0316156106d25760405162461bcd60e51b815260206004820152600b60248201526a1053149150511657d4d15560aa1b6044820152606401610640565b600080546001600160a01b0319166001600160a01b038316908117909155604080518181526005918101919091527f746f6b656e000000000000000000000000000000000000000000000000000000606082015260208101919091527f943e9d45a11aaae5d87503e3bc248665d9807856e5cf2bdb4a988bee44422781906080015b60405180910390a150565b600154604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b1580156107a457600080fd5b505afa1580156107b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107dc9190612a0a565b6107e65750600090565b60006107f0612600565b9150506000600160009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561084357600080fd5b505afa158015610857573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087b9190612a0a565b61088883620186a0612b3e565b610893906002612b3e565b61089d9190612b2a565b9050670de0b6b3a7640000816006546108b69190612b3e565b6108c09190612b2a565b9250505090565b6108cf61287e565b506040805160a08101825273f9a4c522e327935bd1f5a338c121e14e4cc1f89881527377cd42b925e1a82f41d852d6be727cfc88fddbbc6020820152733378ad81d09de23725ee9b9270635c97ed601921918101919091527302e2c5825c1a3b69c0417706dbe1327c2af3e6c26060820152732d266a94469d05c9e06d52a4d0d9c23b157767c2608082015290565b6003546001600160a01b031633146109a35760405162461bcd60e51b8152602060048201526008602482015267474f565f4f4e4c5960c01b6044820152606401610640565b6001600160a01b0381166109e55760405162461bcd60e51b81526020600482015260096024820152680414444524553535f360bc1b6044820152606401610640565b600054604051632474521560e21b81527f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a660048201526001600160a01b038381166024830152909116906391d148549060440160206040518083038186803b158015610a5057600080fd5b505afa158015610a64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a88919061297f565b610ad45760405162461bcd60e51b815260206004820152600a60248201527f4e4f545f4d494e544552000000000000000000000000000000000000000000006044820152606401610640565b6001600160a01b038116600081815260126020908152604091829020805460ff191660019081179091558251938452908301527fa309ceeb30d412988552937096581dead170a31af7ef5fff94b34f7d22e15ca59101610754565b3360009081526010602052604090208054821115610b8f5760405162461bcd60e51b815260206004820152600e60248201527f414d4f554e545f544f4f5f4249470000000000000000000000000000000000006044820152606401610640565b610b97610d06565b6002546040517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018490526001600160a01b0390911690632e1a7d4d90602401600060405180830381600087803b158015610bf657600080fd5b505af1158015610c0a573d6000803e3d6000fd5b50505060048201548254610c1e9250612b12565b60066000828254610c2f9190612b5d565b9091555050805482908290600090610c48908490612b5d565b90915550610c569050612763565b60048101548154610c679190612b12565b60066000828254610c789190612b12565b909155505060015460405163a9059cbb60e01b8152336004820152602481018490526001600160a01b039091169063a9059cbb90604401602060405180830381600087803b158015610cc957600080fd5b505af1158015610cdd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d01919061297f565b505050565b600654610d0f57565b33600090815260106020526040812090610d27611dc5565b90508015610f615760058201546001600160a01b0316610df7576000546008546001600160a01b03909116906340c10f19903390606490610d689086612b3e565b610d729190612b2a565b610d7c9085612b5d565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015610dda57600080fd5b505af1158015610dee573d6000803e3d6000fd5b50505050610f61565b600060c860085483610e099190612b3e565b610e139190612b2a565b6000549091506001600160a01b03166340c10f1933610e328486612b5d565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015610e9057600080fd5b505af1158015610ea4573d6000803e3d6000fd5b505060005460058601546040517f40c10f190000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260248101869052911692506340c10f199150604401600060405180830381600087803b158015610f1357600080fd5b505af1158015610f27573d6000803e3d6000fd5b5050505060058301546001600160a01b031660009081526010602052604081206006018054839290610f5a908490612b12565b9091555050505b670de0b6b3a764000060045483600401548460000154610f819190612b12565b610f8b9190612b3e565b610f959190612b2a565b60018301556000610fa461239d565b6002546040516246613160e11b81523060048201529192506000916001600160a01b0390911690628cc2629060240160206040518083038186803b158015610feb57600080fd5b505afa158015610fff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110239190612a0a565b9050600260009054906101000a90046001600160a01b03166001600160a01b0316633d18b9126040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561107557600080fd5b505af1158015611089573d6000803e3d6000fd5b5050505060065481670de0b6b3a76400006110a49190612b3e565b6110ae9190612b2a565b600560008282546110bf9190612b12565b909155505060055460048501548554670de0b6b3a764000092916110e291612b12565b6110ec9190612b3e565b6110f69190612b2a565b846002018190555080600f60008282546111109190612b12565b909155505081156111a85760405163a9059cbb60e01b81523360048201526024810183905273f28164a485b0b2c90639e47b0f377b4a438a16b19063a9059cbb90604401602060405180830381600087803b15801561116e57600080fd5b505af1158015611182573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a6919061297f565b505b50505050565b6003546001600160a01b031633146111f35760405162461bcd60e51b8152602060048201526008602482015267474f565f4f4e4c5960c01b6044820152606401610640565b6111fe600282612b8f565b1561124b5760405162461bcd60e51b815260206004820152600860248201527f4e4f545f4556454e0000000000000000000000000000000000000000000000006044820152606401610640565b6008819055604080518181526009918101919091527f726566657272616c5000000000000000000000000000000000000000000000006060820152602081018290527f8cf3e35f6221b16e1670a3413180c9484bf5aa71787905909fa82a6a2662e9ab90608001610754565b6003546001600160a01b031633146112fc5760405162461bcd60e51b8152602060048201526008602482015267474f565f4f4e4c5960c01b6044820152606401610640565b6001600160a01b03811661133e5760405162461bcd60e51b81526020600482015260096024820152680414444524553535f360bc1b6044820152606401610640565b6002546001600160a01b0316156113855760405162461bcd60e51b815260206004820152600b60248201526a1053149150511657d4d15560aa1b6044820152606401610640565b600280546001600160a01b0319166001600160a01b038316908117909155604080518181526014918101919091527f717569636b5374616b696e67436f6e7472616374000000000000000000000000606082015260208101919091527f943e9d45a11aaae5d87503e3bc248665d9807856e5cf2bdb4a988bee4442278190608001610754565b33600090815260106020908152604080832060118352818420858552835292819020815180830190925280548252600101549181019190915261144c610d06565b6004820154825461145d9190612b12565b6006600082825461146e9190612b5d565b9091555050336000908152601160205260408120600384015490919061149690600190612b5d565b81526020808201929092526040908101600090812033808352601180865284842089855280875294842083548155600193840154908401559083529093526003850154919290916114e79190612b5d565b815260200190815260200160002060008082016000905560018201600090555050600182600301600082825461151d9190612b5d565b9091555061152b9050612763565b6004820154825461153c9190612b12565b6006600082825461154d9190612b12565b9091555061155b90506108c7565b6001826020015161156c9190612b5d565b6005811061157c5761157c612bcf565b602002015181516040516323b872dd60e01b815230600482015233602482015260448101919091526001600160a01b03909116906323b872dd90606401600060405180830381600087803b1580156115d357600080fd5b505af11580156115e7573d6000803e3d6000fd5b50505050505050565b32331461163f5760405162461bcd60e51b815260206004820152600860248201527f434f4e54524143540000000000000000000000000000000000000000000000006044820152606401610640565b3360009081526010602052604090206007546003820154106116a35760405162461bcd60e51b815260206004820152601760248201527f4d41585f4e4654535f414c52454144595f5354414b45440000000000000000006044820152606401610640565b600183101580156116b5575060058311155b6117015760405162461bcd60e51b815260206004820152600e60248201527f57524f4e475f4e46545f545950450000000000000000000000000000000000006044820152606401610640565b600161170b6108c7565b611716600186612b5d565b6005811061172657611726612bcf565b60200201516040516370a0823160e01b81523360048201526001600160a01b03909116906370a082319060240160206040518083038186803b15801561176b57600080fd5b505afa15801561177f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a39190612a0a565b10156117f15760405162461bcd60e51b815260206004820152600d60248201527f4e4f545f4e46545f4f574e4552000000000000000000000000000000000000006044820152606401610640565b6117f96108c7565b611804600185612b5d565b6005811061181457611814612bcf565b60200201516040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd90606401600060405180830381600087803b15801561186857600080fd5b505af115801561187c573d6000803e3d6000fd5b50505050611888610d06565b600481015481546118999190612b12565b600660008282546118aa9190612b5d565b909155505033600090815260116020908152604080832060038501805485529252822060018101869055848155815490929091906118e783612b74565b91905055506118f4612763565b600482015482546119059190612b12565b600660008282546119169190612b12565b909155505050505050565b336000818152601060205260409081902060015491516323b872dd60e01b8152600481019390935230602484015260448301859052916001600160a01b03909116906323b872dd90606401600060405180830381600087803b15801561198657600080fd5b505af115801561199a573d6000803e3d6000fd5b505050506119a6610d06565b6001546002546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201526024810186905291169063095ea7b390604401602060405180830381600087803b158015611a0f57600080fd5b505af1158015611a23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a47919061297f565b611a935760405162461bcd60e51b815260206004820152600e60248201527f415050524f56455f4641494c45440000000000000000000000000000000000006044820152606401610640565b6002546040517fa694fc3a000000000000000000000000000000000000000000000000000000008152600481018590526001600160a01b039091169063a694fc3a90602401600060405180830381600087803b158015611af257600080fd5b505af1158015611b06573d6000803e3d6000fd5b50505060048201548254611b1a9250612b12565b60066000828254611b2b9190612b5d565b9091555050805483908290600090611b44908490612b12565b90915550611b529050612763565b60048101548154611b639190612b12565b60066000828254611b749190612b12565b909155505060058101546001600160a01b0316158015611b9c57506001600160a01b03821615155b8015611bb157506001600160a01b0382163314155b15610d01576005810180546001600160a01b0384166001600160a01b0319909116179055505050565b6003546001600160a01b03163314611c1f5760405162461bcd60e51b8152602060048201526008602482015267474f565f4f4e4c5960c01b6044820152606401610640565b6001600160a01b038116611c615760405162461bcd60e51b81526020600482015260096024820152680414444524553535f360bc1b6044820152606401610640565b600380546001600160a01b0319166001600160a01b038316908117909155604080518181526007918101919091527f676f7646756e6400000000000000000000000000000000000000000000000000606082015260208101919091527f943e9d45a11aaae5d87503e3bc248665d9807856e5cf2bdb4a988bee4442278190608001610754565b6003546001600160a01b03163314611d2c5760405162461bcd60e51b8152602060048201526008602482015267474f565f4f4e4c5960c01b6044820152606401610640565b6001600160a01b038116611d6e5760405162461bcd60e51b81526020600482015260096024820152680414444524553535f360bc1b6044820152606401610640565b6001600160a01b0381166000818152601260209081526040808320805460ff191690558051938452908301919091527fa309ceeb30d412988552937096581dead170a31af7ef5fff94b34f7d22e15ca59101610754565b336000908152601060205260408120600181015460048054908301548354670de0b6b3a76400009291611df791612b12565b611e019190612b3e565b611e0b9190612b2a565b611e159190612b5d565b91505090565b3360009081526012602052604090205460ff168015611ed65750600054604051632474521560e21b81527f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a660048201523360248201526001600160a01b03909116906391d148549060440160206040518083038186803b158015611e9e57600080fd5b505afa158015611eb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ed6919061297f565b611f225760405162461bcd60e51b815260206004820152601660248201527f4f4e4c595f414c4c4f5745445f434f4e545241435453000000000000000000006044820152606401610640565b60065415611f7957600654611f3f82670de0b6b3a7640000612b3e565b611f499190612b2a565b60046000828254611f5a9190612b12565b9250508190555080600e6000828254611f739190612b12565b90915550505b50565b6003546001600160a01b03163314611fc15760405162461bcd60e51b8152602060048201526008602482015267474f565f4f4e4c5960c01b6044820152606401610640565b8385108015611fcf57508284105b8015611fda57508183105b8015611fe557508082105b8015611ff15750600085115b61203d5760405162461bcd60e51b815260206004820152600c60248201527f57524f4e475f56414c55455300000000000000000000000000000000000000006044820152606401610640565b6040518060a0016040528086815260200185815260200184815260200183815260200182815250600990600561207492919061289c565b507fd4f83e5841eed0062f973ea6c98ae700fab452a244757ca90231c5c53dd9f3d160096040516120a59190612aea565b60405180910390a15050505050565b600981600581106120c457600080fd5b0154905081565b600154604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b15801561211057600080fd5b505afa158015612124573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121489190612a0a565b6121525750600090565b600061215c612600565b9150506000600160009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156121af57600080fd5b505afa1580156121c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121e79190612a0a565b6121f483620186a0612b3e565b6121ff906002612b3e565b6122099190612b2a565b6002546040516370a0823160e01b8152306004820152919250670de0b6b3a76400009183916001600160a01b0316906370a082319060240160206040518083038186803b15801561225957600080fd5b505afa15801561226d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122919190612a0a565b6108b69190612b3e565b6003546001600160a01b031633146122e05760405162461bcd60e51b8152602060048201526008602482015267474f565f4f4e4c5960c01b6044820152606401610640565b60038110156123315760405162461bcd60e51b815260206004820152600760248201527f42454c4f575f33000000000000000000000000000000000000000000000000006044820152606401610640565b600781905560408051818152600d918101919091527f6d61784e6674735374616b6564000000000000000000000000000000000000006060820152602081018290527f8cf3e35f6221b16e1670a3413180c9484bf5aa71787905909fa82a6a2662e9ab90608001610754565b6000600654600014156123b05750600090565b3360009081526010602052604080822060065460025492516246613160e11b815230600482015291939290916001600160a01b0390911690628cc2629060240160206040518083038186803b15801561240857600080fd5b505afa15801561241c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124409190612a0a565b61245290670de0b6b3a7640000612b3e565b61245c9190612b2a565b6005546124699190612b12565b90508160020154670de0b6b3a7640000828460040154856000015461248e9190612b12565b6124989190612b3e565b6124a29190612b2a565b6108c09190612b5d565b6003546001600160a01b031633146124f15760405162461bcd60e51b8152602060048201526008602482015267474f565f4f4e4c5960c01b6044820152606401610640565b6001600160a01b0381166125335760405162461bcd60e51b81526020600482015260096024820152680414444524553535f360bc1b6044820152606401610640565b6001546001600160a01b03161561257a5760405162461bcd60e51b815260206004820152600b60248201526a1053149150511657d4d15560aa1b6044820152606401610640565b600180546001600160a01b0319166001600160a01b038316908117909155604080518181526002918101919091527f6c70000000000000000000000000000000000000000000000000000000000000606082015260208101919091527f943e9d45a11aaae5d87503e3bc248665d9807856e5cf2bdb4a988bee4442278190608001610754565b600080600080600160009054906101000a90046001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561265457600080fd5b505afa158015612668573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061268c91906129a1565b50600054600154604080517f0dfe168100000000000000000000000000000000000000000000000000000000815290519496509294506001600160a01b0391821693911691630dfe1681916004808301926020929190829003018186803b1580156126f657600080fd5b505afa15801561270a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061272e9190612936565b6001600160a01b031614612743578082612746565b81815b6dffffffffffffffffffffffffffff918216969116945092505050565b33600090815260106020526040812060048101829055905b816003015481101561280a5733600090815260116020908152604080832084845290915290206001908101546064916009916127b79190612b5d565b600581106127c7576127c7612bcf565b015483546127d59190612b3e565b6127df9190612b2a565b8260040160008282546127f29190612b12565b9091555081905061280281612b74565b91505061277b565b50670de0b6b3a76400006004548260040154836000015461282b9190612b12565b6128359190612b3e565b61283f9190612b2a565b600182015560055460048201548254670de0b6b3a7640000929161286291612b12565b61286c9190612b3e565b6128769190612b2a565b600290910155565b6040518060a001604052806005906020820280368337509192915050565b82600581019282156128ca579160200282015b828111156128ca5782518255916020019190600101906128af565b506128d69291506128da565b5090565b5b808211156128d657600081556001016128db565b80516dffffffffffffffffffffffffffff8116811461290d57600080fd5b919050565b60006020828403121561292457600080fd5b813561292f81612be5565b9392505050565b60006020828403121561294857600080fd5b815161292f81612be5565b6000806040838503121561296657600080fd5b823561297181612be5565b946020939093013593505050565b60006020828403121561299157600080fd5b8151801515811461292f57600080fd5b6000806000606084860312156129b657600080fd5b6129bf846128ef565b92506129cd602085016128ef565b9150604084015163ffffffff811681146129e657600080fd5b809150509250925092565b600060208284031215612a0357600080fd5b5035919050565b600060208284031215612a1c57600080fd5b5051919050565b60008060408385031215612a3657600080fd5b823591506020830135612a4881612be5565b809150509250929050565b60008060408385031215612a6657600080fd5b50508035926020909101359150565b600080600080600060a08688031215612a8d57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60a08101818360005b6005811015612ae15781516001600160a01b0316835260209283019290910190600101612ab9565b50505092915050565b60a08101818360005b6005811015612ae1578154835260209092019160019182019101612af3565b60008219821115612b2557612b25612ba3565b500190565b600082612b3957612b39612bb9565b500490565b6000816000190483118215151615612b5857612b58612ba3565b500290565b600082821015612b6f57612b6f612ba3565b500390565b6000600019821415612b8857612b88612ba3565b5060010190565b600082612b9e57612b9e612bb9565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114611f7957600080fdfea264697066735822122062453395a0e9924bca49929a1e1e5cbb441a1cd6a58d3d09def34be79618002f64736f6c63430008070033000000000000000000000000aee4d11a16b2bc65edd6416fb626eb404a6d65bd

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106102925760003560e01c8063865f12e811610160578063d5391393116100d8578063ebaef5a01161008c578063fb8b7cec11610071578063fb8b7cec146105c9578063fc0c546a146105d1578063fdd3a879146105e457600080fd5b8063ebaef5a0146105ae578063f4c2baa9146105b657600080fd5b8063e5328e06116100bd578063e5328e0614610580578063e539e4b214610588578063e6d5c0031461059b57600080fd5b8063d539139314610546578063e09cc52f1461056d57600080fd5b8063befe88781161012f578063ca15ed4811610114578063ca15ed4814610521578063cab6693114610534578063d1af0c7d1461053d57600080fd5b8063befe887814610505578063c412dcfc1461050e57600080fd5b8063865f12e8146104455780639800fc1614610458578063a87430ba1461046b578063b763d4fc146104fd57600080fd5b806351e0e26b1161020e5780636b426000116101c25780637acb7757116101a75780637acb7757146104165780637c74f1af14610429578063846fe2551461043c57600080fd5b80636b426000146103f057806379cbeb2d1461040357600080fd5b80635db800e4116101f35780635db800e41461038357806368fc22801461039657806369b262b6146103a957600080fd5b806351e0e26b146103475780635458d0fe1461037a57600080fd5b80632059f615116102655780632e17de781161024a5780632e17de7814610301578063313c06a0146103145780634641257d1461033f57600080fd5b80632059f615146102e55780632c56462f146102ee57600080fd5b80630df0961c14610297578063144fa6d7146102b35780631710f259146102c85780631714f2e0146102d0575b600080fd5b6102a060075481565b6040519081526020015b60405180910390f35b6102c66102c1366004612912565b6105ff565b005b6102a061075f565b6102d86108c7565b6040516102aa9190612ab0565b6102a060065481565b6102c66102fc366004612912565b61095e565b6102c661030f3660046129f1565b610b2f565b600154610327906001600160a01b031681565b6040516001600160a01b0390911681526020016102aa565b6102c6610d06565b61036a610355366004612912565b60126020526000908152604090205460ff1681565b60405190151581526020016102aa565b6102a060045481565b6102c66103913660046129f1565b6111ae565b6102c66103a4366004612912565b6112b7565b6103db6103b7366004612953565b60116020908152600092835260408084209091529082529020805460019091015482565b604080519283526020830191909152016102aa565b6102c66103fe3660046129f1565b61140b565b6102c6610411366004612a53565b6115f0565b6102c6610424366004612a23565b611921565b6102c6610437366004612912565b611bda565b6102a060085481565b600354610327906001600160a01b031681565b6102c6610466366004612912565b611ce7565b6104bf610479366004612912565b6010602052600090815260409020805460018201546002830154600384015460048501546005860154600690960154949593949293919290916001600160a01b03169087565b60408051978852602088019690965294860193909352606085019190915260808401526001600160a01b031660a083015260c082015260e0016102aa565b6102a0611dc5565b6102a0600f5481565b6102c661051c3660046129f1565b611e1b565b6102c661052f366004612a75565b611f7c565b6102a060055481565b6102a0600e5481565b6102a07f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6102a061057b3660046129f1565b6120b4565b6102a06120cb565b600254610327906001600160a01b031681565b6102c66105a93660046129f1565b61229b565b6102a061239d565b6102c66105c4366004612912565b6124ac565b6103db612600565b600054610327906001600160a01b031681565b61032773f28164a485b0b2c90639e47b0f377b4a438a16b181565b6003546001600160a01b031633146106495760405162461bcd60e51b8152602060048201526008602482015267474f565f4f4e4c5960c01b60448201526064015b60405180910390fd5b6001600160a01b03811661068b5760405162461bcd60e51b81526020600482015260096024820152680414444524553535f360bc1b6044820152606401610640565b6000546001600160a01b0316156106d25760405162461bcd60e51b815260206004820152600b60248201526a1053149150511657d4d15560aa1b6044820152606401610640565b600080546001600160a01b0319166001600160a01b038316908117909155604080518181526005918101919091527f746f6b656e000000000000000000000000000000000000000000000000000000606082015260208101919091527f943e9d45a11aaae5d87503e3bc248665d9807856e5cf2bdb4a988bee44422781906080015b60405180910390a150565b600154604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b1580156107a457600080fd5b505afa1580156107b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107dc9190612a0a565b6107e65750600090565b60006107f0612600565b9150506000600160009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561084357600080fd5b505afa158015610857573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087b9190612a0a565b61088883620186a0612b3e565b610893906002612b3e565b61089d9190612b2a565b9050670de0b6b3a7640000816006546108b69190612b3e565b6108c09190612b2a565b9250505090565b6108cf61287e565b506040805160a08101825273f9a4c522e327935bd1f5a338c121e14e4cc1f89881527377cd42b925e1a82f41d852d6be727cfc88fddbbc6020820152733378ad81d09de23725ee9b9270635c97ed601921918101919091527302e2c5825c1a3b69c0417706dbe1327c2af3e6c26060820152732d266a94469d05c9e06d52a4d0d9c23b157767c2608082015290565b6003546001600160a01b031633146109a35760405162461bcd60e51b8152602060048201526008602482015267474f565f4f4e4c5960c01b6044820152606401610640565b6001600160a01b0381166109e55760405162461bcd60e51b81526020600482015260096024820152680414444524553535f360bc1b6044820152606401610640565b600054604051632474521560e21b81527f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a660048201526001600160a01b038381166024830152909116906391d148549060440160206040518083038186803b158015610a5057600080fd5b505afa158015610a64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a88919061297f565b610ad45760405162461bcd60e51b815260206004820152600a60248201527f4e4f545f4d494e544552000000000000000000000000000000000000000000006044820152606401610640565b6001600160a01b038116600081815260126020908152604091829020805460ff191660019081179091558251938452908301527fa309ceeb30d412988552937096581dead170a31af7ef5fff94b34f7d22e15ca59101610754565b3360009081526010602052604090208054821115610b8f5760405162461bcd60e51b815260206004820152600e60248201527f414d4f554e545f544f4f5f4249470000000000000000000000000000000000006044820152606401610640565b610b97610d06565b6002546040517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018490526001600160a01b0390911690632e1a7d4d90602401600060405180830381600087803b158015610bf657600080fd5b505af1158015610c0a573d6000803e3d6000fd5b50505060048201548254610c1e9250612b12565b60066000828254610c2f9190612b5d565b9091555050805482908290600090610c48908490612b5d565b90915550610c569050612763565b60048101548154610c679190612b12565b60066000828254610c789190612b12565b909155505060015460405163a9059cbb60e01b8152336004820152602481018490526001600160a01b039091169063a9059cbb90604401602060405180830381600087803b158015610cc957600080fd5b505af1158015610cdd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d01919061297f565b505050565b600654610d0f57565b33600090815260106020526040812090610d27611dc5565b90508015610f615760058201546001600160a01b0316610df7576000546008546001600160a01b03909116906340c10f19903390606490610d689086612b3e565b610d729190612b2a565b610d7c9085612b5d565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015610dda57600080fd5b505af1158015610dee573d6000803e3d6000fd5b50505050610f61565b600060c860085483610e099190612b3e565b610e139190612b2a565b6000549091506001600160a01b03166340c10f1933610e328486612b5d565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015610e9057600080fd5b505af1158015610ea4573d6000803e3d6000fd5b505060005460058601546040517f40c10f190000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260248101869052911692506340c10f199150604401600060405180830381600087803b158015610f1357600080fd5b505af1158015610f27573d6000803e3d6000fd5b5050505060058301546001600160a01b031660009081526010602052604081206006018054839290610f5a908490612b12565b9091555050505b670de0b6b3a764000060045483600401548460000154610f819190612b12565b610f8b9190612b3e565b610f959190612b2a565b60018301556000610fa461239d565b6002546040516246613160e11b81523060048201529192506000916001600160a01b0390911690628cc2629060240160206040518083038186803b158015610feb57600080fd5b505afa158015610fff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110239190612a0a565b9050600260009054906101000a90046001600160a01b03166001600160a01b0316633d18b9126040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561107557600080fd5b505af1158015611089573d6000803e3d6000fd5b5050505060065481670de0b6b3a76400006110a49190612b3e565b6110ae9190612b2a565b600560008282546110bf9190612b12565b909155505060055460048501548554670de0b6b3a764000092916110e291612b12565b6110ec9190612b3e565b6110f69190612b2a565b846002018190555080600f60008282546111109190612b12565b909155505081156111a85760405163a9059cbb60e01b81523360048201526024810183905273f28164a485b0b2c90639e47b0f377b4a438a16b19063a9059cbb90604401602060405180830381600087803b15801561116e57600080fd5b505af1158015611182573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a6919061297f565b505b50505050565b6003546001600160a01b031633146111f35760405162461bcd60e51b8152602060048201526008602482015267474f565f4f4e4c5960c01b6044820152606401610640565b6111fe600282612b8f565b1561124b5760405162461bcd60e51b815260206004820152600860248201527f4e4f545f4556454e0000000000000000000000000000000000000000000000006044820152606401610640565b6008819055604080518181526009918101919091527f726566657272616c5000000000000000000000000000000000000000000000006060820152602081018290527f8cf3e35f6221b16e1670a3413180c9484bf5aa71787905909fa82a6a2662e9ab90608001610754565b6003546001600160a01b031633146112fc5760405162461bcd60e51b8152602060048201526008602482015267474f565f4f4e4c5960c01b6044820152606401610640565b6001600160a01b03811661133e5760405162461bcd60e51b81526020600482015260096024820152680414444524553535f360bc1b6044820152606401610640565b6002546001600160a01b0316156113855760405162461bcd60e51b815260206004820152600b60248201526a1053149150511657d4d15560aa1b6044820152606401610640565b600280546001600160a01b0319166001600160a01b038316908117909155604080518181526014918101919091527f717569636b5374616b696e67436f6e7472616374000000000000000000000000606082015260208101919091527f943e9d45a11aaae5d87503e3bc248665d9807856e5cf2bdb4a988bee4442278190608001610754565b33600090815260106020908152604080832060118352818420858552835292819020815180830190925280548252600101549181019190915261144c610d06565b6004820154825461145d9190612b12565b6006600082825461146e9190612b5d565b9091555050336000908152601160205260408120600384015490919061149690600190612b5d565b81526020808201929092526040908101600090812033808352601180865284842089855280875294842083548155600193840154908401559083529093526003850154919290916114e79190612b5d565b815260200190815260200160002060008082016000905560018201600090555050600182600301600082825461151d9190612b5d565b9091555061152b9050612763565b6004820154825461153c9190612b12565b6006600082825461154d9190612b12565b9091555061155b90506108c7565b6001826020015161156c9190612b5d565b6005811061157c5761157c612bcf565b602002015181516040516323b872dd60e01b815230600482015233602482015260448101919091526001600160a01b03909116906323b872dd90606401600060405180830381600087803b1580156115d357600080fd5b505af11580156115e7573d6000803e3d6000fd5b50505050505050565b32331461163f5760405162461bcd60e51b815260206004820152600860248201527f434f4e54524143540000000000000000000000000000000000000000000000006044820152606401610640565b3360009081526010602052604090206007546003820154106116a35760405162461bcd60e51b815260206004820152601760248201527f4d41585f4e4654535f414c52454144595f5354414b45440000000000000000006044820152606401610640565b600183101580156116b5575060058311155b6117015760405162461bcd60e51b815260206004820152600e60248201527f57524f4e475f4e46545f545950450000000000000000000000000000000000006044820152606401610640565b600161170b6108c7565b611716600186612b5d565b6005811061172657611726612bcf565b60200201516040516370a0823160e01b81523360048201526001600160a01b03909116906370a082319060240160206040518083038186803b15801561176b57600080fd5b505afa15801561177f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a39190612a0a565b10156117f15760405162461bcd60e51b815260206004820152600d60248201527f4e4f545f4e46545f4f574e4552000000000000000000000000000000000000006044820152606401610640565b6117f96108c7565b611804600185612b5d565b6005811061181457611814612bcf565b60200201516040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd90606401600060405180830381600087803b15801561186857600080fd5b505af115801561187c573d6000803e3d6000fd5b50505050611888610d06565b600481015481546118999190612b12565b600660008282546118aa9190612b5d565b909155505033600090815260116020908152604080832060038501805485529252822060018101869055848155815490929091906118e783612b74565b91905055506118f4612763565b600482015482546119059190612b12565b600660008282546119169190612b12565b909155505050505050565b336000818152601060205260409081902060015491516323b872dd60e01b8152600481019390935230602484015260448301859052916001600160a01b03909116906323b872dd90606401600060405180830381600087803b15801561198657600080fd5b505af115801561199a573d6000803e3d6000fd5b505050506119a6610d06565b6001546002546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201526024810186905291169063095ea7b390604401602060405180830381600087803b158015611a0f57600080fd5b505af1158015611a23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a47919061297f565b611a935760405162461bcd60e51b815260206004820152600e60248201527f415050524f56455f4641494c45440000000000000000000000000000000000006044820152606401610640565b6002546040517fa694fc3a000000000000000000000000000000000000000000000000000000008152600481018590526001600160a01b039091169063a694fc3a90602401600060405180830381600087803b158015611af257600080fd5b505af1158015611b06573d6000803e3d6000fd5b50505060048201548254611b1a9250612b12565b60066000828254611b2b9190612b5d565b9091555050805483908290600090611b44908490612b12565b90915550611b529050612763565b60048101548154611b639190612b12565b60066000828254611b749190612b12565b909155505060058101546001600160a01b0316158015611b9c57506001600160a01b03821615155b8015611bb157506001600160a01b0382163314155b15610d01576005810180546001600160a01b0384166001600160a01b0319909116179055505050565b6003546001600160a01b03163314611c1f5760405162461bcd60e51b8152602060048201526008602482015267474f565f4f4e4c5960c01b6044820152606401610640565b6001600160a01b038116611c615760405162461bcd60e51b81526020600482015260096024820152680414444524553535f360bc1b6044820152606401610640565b600380546001600160a01b0319166001600160a01b038316908117909155604080518181526007918101919091527f676f7646756e6400000000000000000000000000000000000000000000000000606082015260208101919091527f943e9d45a11aaae5d87503e3bc248665d9807856e5cf2bdb4a988bee4442278190608001610754565b6003546001600160a01b03163314611d2c5760405162461bcd60e51b8152602060048201526008602482015267474f565f4f4e4c5960c01b6044820152606401610640565b6001600160a01b038116611d6e5760405162461bcd60e51b81526020600482015260096024820152680414444524553535f360bc1b6044820152606401610640565b6001600160a01b0381166000818152601260209081526040808320805460ff191690558051938452908301919091527fa309ceeb30d412988552937096581dead170a31af7ef5fff94b34f7d22e15ca59101610754565b336000908152601060205260408120600181015460048054908301548354670de0b6b3a76400009291611df791612b12565b611e019190612b3e565b611e0b9190612b2a565b611e159190612b5d565b91505090565b3360009081526012602052604090205460ff168015611ed65750600054604051632474521560e21b81527f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a660048201523360248201526001600160a01b03909116906391d148549060440160206040518083038186803b158015611e9e57600080fd5b505afa158015611eb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ed6919061297f565b611f225760405162461bcd60e51b815260206004820152601660248201527f4f4e4c595f414c4c4f5745445f434f4e545241435453000000000000000000006044820152606401610640565b60065415611f7957600654611f3f82670de0b6b3a7640000612b3e565b611f499190612b2a565b60046000828254611f5a9190612b12565b9250508190555080600e6000828254611f739190612b12565b90915550505b50565b6003546001600160a01b03163314611fc15760405162461bcd60e51b8152602060048201526008602482015267474f565f4f4e4c5960c01b6044820152606401610640565b8385108015611fcf57508284105b8015611fda57508183105b8015611fe557508082105b8015611ff15750600085115b61203d5760405162461bcd60e51b815260206004820152600c60248201527f57524f4e475f56414c55455300000000000000000000000000000000000000006044820152606401610640565b6040518060a0016040528086815260200185815260200184815260200183815260200182815250600990600561207492919061289c565b507fd4f83e5841eed0062f973ea6c98ae700fab452a244757ca90231c5c53dd9f3d160096040516120a59190612aea565b60405180910390a15050505050565b600981600581106120c457600080fd5b0154905081565b600154604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b15801561211057600080fd5b505afa158015612124573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121489190612a0a565b6121525750600090565b600061215c612600565b9150506000600160009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156121af57600080fd5b505afa1580156121c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121e79190612a0a565b6121f483620186a0612b3e565b6121ff906002612b3e565b6122099190612b2a565b6002546040516370a0823160e01b8152306004820152919250670de0b6b3a76400009183916001600160a01b0316906370a082319060240160206040518083038186803b15801561225957600080fd5b505afa15801561226d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122919190612a0a565b6108b69190612b3e565b6003546001600160a01b031633146122e05760405162461bcd60e51b8152602060048201526008602482015267474f565f4f4e4c5960c01b6044820152606401610640565b60038110156123315760405162461bcd60e51b815260206004820152600760248201527f42454c4f575f33000000000000000000000000000000000000000000000000006044820152606401610640565b600781905560408051818152600d918101919091527f6d61784e6674735374616b6564000000000000000000000000000000000000006060820152602081018290527f8cf3e35f6221b16e1670a3413180c9484bf5aa71787905909fa82a6a2662e9ab90608001610754565b6000600654600014156123b05750600090565b3360009081526010602052604080822060065460025492516246613160e11b815230600482015291939290916001600160a01b0390911690628cc2629060240160206040518083038186803b15801561240857600080fd5b505afa15801561241c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124409190612a0a565b61245290670de0b6b3a7640000612b3e565b61245c9190612b2a565b6005546124699190612b12565b90508160020154670de0b6b3a7640000828460040154856000015461248e9190612b12565b6124989190612b3e565b6124a29190612b2a565b6108c09190612b5d565b6003546001600160a01b031633146124f15760405162461bcd60e51b8152602060048201526008602482015267474f565f4f4e4c5960c01b6044820152606401610640565b6001600160a01b0381166125335760405162461bcd60e51b81526020600482015260096024820152680414444524553535f360bc1b6044820152606401610640565b6001546001600160a01b03161561257a5760405162461bcd60e51b815260206004820152600b60248201526a1053149150511657d4d15560aa1b6044820152606401610640565b600180546001600160a01b0319166001600160a01b038316908117909155604080518181526002918101919091527f6c70000000000000000000000000000000000000000000000000000000000000606082015260208101919091527f943e9d45a11aaae5d87503e3bc248665d9807856e5cf2bdb4a988bee4442278190608001610754565b600080600080600160009054906101000a90046001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561265457600080fd5b505afa158015612668573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061268c91906129a1565b50600054600154604080517f0dfe168100000000000000000000000000000000000000000000000000000000815290519496509294506001600160a01b0391821693911691630dfe1681916004808301926020929190829003018186803b1580156126f657600080fd5b505afa15801561270a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061272e9190612936565b6001600160a01b031614612743578082612746565b81815b6dffffffffffffffffffffffffffff918216969116945092505050565b33600090815260106020526040812060048101829055905b816003015481101561280a5733600090815260116020908152604080832084845290915290206001908101546064916009916127b79190612b5d565b600581106127c7576127c7612bcf565b015483546127d59190612b3e565b6127df9190612b2a565b8260040160008282546127f29190612b12565b9091555081905061280281612b74565b91505061277b565b50670de0b6b3a76400006004548260040154836000015461282b9190612b12565b6128359190612b3e565b61283f9190612b2a565b600182015560055460048201548254670de0b6b3a7640000929161286291612b12565b61286c9190612b3e565b6128769190612b2a565b600290910155565b6040518060a001604052806005906020820280368337509192915050565b82600581019282156128ca579160200282015b828111156128ca5782518255916020019190600101906128af565b506128d69291506128da565b5090565b5b808211156128d657600081556001016128db565b80516dffffffffffffffffffffffffffff8116811461290d57600080fd5b919050565b60006020828403121561292457600080fd5b813561292f81612be5565b9392505050565b60006020828403121561294857600080fd5b815161292f81612be5565b6000806040838503121561296657600080fd5b823561297181612be5565b946020939093013593505050565b60006020828403121561299157600080fd5b8151801515811461292f57600080fd5b6000806000606084860312156129b657600080fd5b6129bf846128ef565b92506129cd602085016128ef565b9150604084015163ffffffff811681146129e657600080fd5b809150509250925092565b600060208284031215612a0357600080fd5b5035919050565b600060208284031215612a1c57600080fd5b5051919050565b60008060408385031215612a3657600080fd5b823591506020830135612a4881612be5565b809150509250929050565b60008060408385031215612a6657600080fd5b50508035926020909101359150565b600080600080600060a08688031215612a8d57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60a08101818360005b6005811015612ae15781516001600160a01b0316835260209283019290910190600101612ab9565b50505092915050565b60a08101818360005b6005811015612ae1578154835260209092019160019182019101612af3565b60008219821115612b2557612b25612ba3565b500190565b600082612b3957612b39612bb9565b500490565b6000816000190483118215151615612b5857612b58612ba3565b500290565b600082821015612b6f57612b6f612ba3565b500390565b6000600019821415612b8857612b88612ba3565b5060010190565b600082612b9e57612b9e612bb9565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114611f7957600080fdfea264697066735822122062453395a0e9924bca49929a1e1e5cbb441a1cd6a58d3d09def34be79618002f64736f6c63430008070033

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

000000000000000000000000aee4d11a16b2bc65edd6416fb626eb404a6d65bd

-----Decoded View---------------
Arg [0] : _tradingStorage (address): 0xaee4d11a16B2bc65EDD6416Fb626EB404a6D65BD

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000aee4d11a16b2bc65edd6416fb626eb404a6d65bd


Deployed Bytecode Sourcemap

2025:12343:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2705:29;;;;;;;;;6645:25:1;;;6633:2;6618:18;2705:29:0;;;;;;;;4182:273;;;;;;:::i;:::-;;:::i;:::-;;13604:272;;;:::i;13902:463::-;;;:::i;:::-;;;;;;;:::i;2651:21::-;;;;;;5095:251;;;;;;:::i;:::-;;:::i;12459:754::-;;;;;;:::i;:::-;;:::i;2364:23::-;;;;;-1:-1:-1;;;;;2364:23:0;;;;;;-1:-1:-1;;;;;4181:55:1;;;4163:74;;4151:2;4136:18;2364:23:0;4017:226:1;8273:1191:0;;;:::i;3064:48::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6472:14:1;;6465:22;6447:41;;6435:2;6420:18;3064:48:0;6307:187:1;2570:26:0;;;;;;6139:201;;;;;;:::i;:::-;;:::i;4713:376::-;;;;;;:::i;:::-;;:::i;2995:62::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15555:25:1;;;15611:2;15596:18;;15589:34;;;;15528:18;2995:62:0;15381:248:1;11569:862:0;;;;;;:::i;:::-;;:::i;10477:1064::-;;;;;;:::i;:::-;;:::i;9490:928::-;;;;;;:::i;:::-;;:::i;3995:181::-;;;;;;:::i;:::-;;:::i;2741:25::-;;;;;;2471:67;;;;;-1:-1:-1;;;;;2471:67:0;;;5352:193;;;;;;:::i;:::-;;:::i;2951:37::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2951:37:0;;;;;;;;15949:25:1;;;16005:2;15990:18;;15983:34;;;;16033:18;;;16026:34;;;;16091:2;16076:18;;16069:34;;;;16134:3;16119:19;;16112:35;-1:-1:-1;;;;;16184:55:1;16178:3;16163:19;;16156:84;16271:3;16256:19;;16249:35;15936:3;15921:19;2951:37:0;15634:656:1;7661:191:0;;;:::i;2893:24::-;;;;;;6856:314;;;;;;:::i;:::-;;:::i;5551:352::-;;;;;;:::i;:::-;;:::i;2603:25::-;;;;;;2854:24;;;;;;2070:104;;2108:66;2070:104;;2785:41;;;;;;:::i;:::-;;:::i;13278:298::-;;;:::i;2405:59::-;;;;;-1:-1:-1;;;;;2405:59:0;;;5909:224;;;;;;:::i;:::-;;:::i;7858:354::-;;;:::i;4461:246::-;;;;;;:::i;:::-;;:::i;6539:228::-;;;:::i;2321:29::-;;;;;-1:-1:-1;;;;;2321:29:0;;;2181:101;;2239:42;2181:101;;4182:273;3925:7;;-1:-1:-1;;;;;3925:7:0;3911:10;:21;3903:42;;;;-1:-1:-1;;;3903:42:0;;14722:2:1;3903:42:0;;;14704:21:1;14761:1;14741:18;;;14734:29;-1:-1:-1;;;14779:18:1;;;14772:38;14827:18;;3903:42:0;;;;;;;;;-1:-1:-1;;;;;4260:29:0;::::1;4252:51;;;::::0;-1:-1:-1;;;4252:51:0;;11867:2:1;4252:51:0::1;::::0;::::1;11849:21:1::0;11906:1;11886:18;;;11879:29;-1:-1:-1;;;11924:18:1;;;11917:39;11973:18;;4252:51:0::1;11665:332:1::0;4252:51:0::1;4348:1;4330:5:::0;-1:-1:-1;;;;;4330:5:0::1;4322:28:::0;4314:52:::1;;;::::0;-1:-1:-1;;;4314:52:0;;9050:2:1;4314:52:0::1;::::0;::::1;9032:21:1::0;9089:2;9069:18;;;9062:30;-1:-1:-1;;;9108:18:1;;;9101:41;9159:18;;4314:52:0::1;8848:335:1::0;4314:52:0::1;4377:5;:14:::0;;-1:-1:-1;;;;;;4377:14:0::1;-1:-1:-1::0;;;;;4377:14:0;::::1;::::0;;::::1;::::0;;;4407:40:::1;::::0;;12672:21:1;;;12729:1;12709:18;;;12702:29;;;;12767:7;12762:2;12747:18;;12740:35;12842:4;12827:20;;12820:85;;;;4407:40:0::1;::::0;12807:3:1;12792:19;4407:40:0::1;;;;;;;;4182:273:::0;:::o;13604:272::-;13670:2;;:16;;;-1:-1:-1;;;13670:16:0;;;;13651:4;;-1:-1:-1;;;;;13670:2:0;;:14;;:16;;;;;;;;;;;;;;:2;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13667:38;;-1:-1:-1;13701:1:0;;13604:272::o;13667:38::-;13720:15;13739:12;:10;:12::i;:::-;13717:34;;;13762:15;13803:2;;;;;;;;;-1:-1:-1;;;;;13803:2:0;-1:-1:-1;;;;;13803:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13780;:10;13793:3;13780:16;:::i;:::-;:20;;13799:1;13780:20;:::i;:::-;:39;;;;:::i;:::-;13762:57;;13864:4;13851:10;13839:9;;:22;;;;:::i;:::-;:29;;;;:::i;:::-;13832:36;;;;13604:272;:::o;13902:463::-;13938:24;;:::i;:::-;-1:-1:-1;13974:383:0;;;;;;;;14011:42;13974:383;;14084:42;13974:383;;;;14157:42;13974:383;;;;;;;14230:42;13974:383;;;;14303:42;13974:383;;;;;13902:463::o;5095:251::-;3925:7;;-1:-1:-1;;;;;3925:7:0;3911:10;:21;3903:42;;;;-1:-1:-1;;;3903:42:0;;14722:2:1;3903:42:0;;;14704:21:1;14761:1;14741:18;;;14734:29;-1:-1:-1;;;14779:18:1;;;14772:38;14827:18;;3903:42:0;14520:331:1;3903:42:0;-1:-1:-1;;;;;5169:15:0;::::1;5161:37;;;::::0;-1:-1:-1;;;5161:37:0;;11867:2:1;5161:37:0::1;::::0;::::1;11849:21:1::0;11906:1;11886:18;;;11879:29;-1:-1:-1;;;11924:18:1;;;11917:39;11973:18;;5161:37:0::1;11665:332:1::0;5161:37:0::1;5217:5;::::0;:29:::1;::::0;-1:-1:-1;;;5217:29:0;;2108:66:::1;5217:29;::::0;::::1;6855:25:1::0;-1:-1:-1;;;;;6916:55:1;;;6896:18;;;6889:83;5217:5:0;;::::1;::::0;:13:::1;::::0;6828:18:1;;5217:29:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5209:52;;;::::0;-1:-1:-1;;;5209:52:0;;10068:2:1;5209:52:0::1;::::0;::::1;10050:21:1::0;10107:2;10087:18;;;10080:30;10146:12;10126:18;;;10119:40;10176:18;;5209:52:0::1;9866:334:1::0;5209:52:0::1;-1:-1:-1::0;;;;;5272:19:0;::::1;;::::0;;;:16:::1;:19;::::0;;;;;;;;:26;;-1:-1:-1;;5272:26:0::1;5294:4;5272:26:::0;;::::1;::::0;;;5314:24;;4819:74:1;;;4909:18;;;4902:50;5314:24:0::1;::::0;4792:18:1;5314:24:0::1;4651:307:1::0;12459:754:0;12591:10;12568:14;12585:17;;;:5;:17;;;;;12631:10;;12621:20;;;12613:47;;;;-1:-1:-1;;;12613:47:0;;15058:2:1;12613:47:0;;;15040:21:1;15097:2;15077:18;;;15070:30;15136:16;15116:18;;;15109:44;15170:18;;12613:47:0;14856:338:1;12613:47:0;12712:9;:7;:9::i;:::-;12781:20;;:37;;;;;;;;6645:25:1;;;-1:-1:-1;;;;;12781:20:0;;;;:29;;6618:18:1;;12781:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12890:12:0;;;;12877:10;;:25;;-1:-1:-1;12877:25:0;:::i;:::-;12863:9;;:40;;;;;;;:::i;:::-;;;;-1:-1:-1;;12949:20:0;;12963:6;;12949:1;;:10;;:20;;12963:6;;12949:20;:::i;:::-;;;;-1:-1:-1;13017:11:0;;-1:-1:-1;13017:9:0;:11::i;:::-;13101:12;;;;13088:10;;:25;;13101:12;13088:25;:::i;:::-;13074:9;;:40;;;;;;;:::i;:::-;;;;-1:-1:-1;;13174:2:0;;:31;;-1:-1:-1;;;13174:31:0;;13186:10;13174:31;;;5137:74:1;5227:18;;;5220:34;;;-1:-1:-1;;;;;13174:2:0;;;;:11;;5110:18:1;;13174:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12497:716;12459:754;:::o;8273:1191::-;8312:9;;8309:29;;8273:1191::o;8309:29::-;8381:10;8358:14;8375:17;;;:5;:17;;;;;;8426:20;:18;:20::i;:::-;8405:41;-1:-1:-1;8462:17:0;;8459:482;;8498:10;;;;-1:-1:-1;;;;;8498:10:0;8495:435;;8542:5;;8597:9;;-1:-1:-1;;;;;8542:5:0;;;;:10;;8553;;8609:3;;8581:25;;:13;:25;:::i;:::-;:31;;;;:::i;:::-;8565:47;;:13;:47;:::i;:::-;8542:71;;;;;;;;;;-1:-1:-1;;;;;5155:55:1;;;8542:71:0;;;5137:74:1;5227:18;;;5220:34;5110:18;;8542:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8495:435;;;8652:19;8702:3;8690:9;;8674:13;:25;;;;:::i;:::-;:31;;;;:::i;:::-;8726:5;;8652:53;;-1:-1:-1;;;;;;8726:5:0;:10;8737;8749:30;8652:53;8749:13;:30;:::i;:::-;8726:54;;;;;;;;;;-1:-1:-1;;;;;5155:55:1;;;8726:54:0;;;5137:74:1;5227:18;;;5220:34;5110:18;;8726:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8799:5:0;;8810:10;;;;8799:38;;;;;-1:-1:-1;;;;;8810:10:0;;;8799:38;;;5137:74:1;5227:18;;;5220:34;;;8799:5:0;;;-1:-1:-1;8799:10:0;;-1:-1:-1;5110:18:1;;8799:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;8864:10:0;;;;-1:-1:-1;;;;;8864:10:0;8858:17;;;;:5;:17;;;;;:38;;:56;;8900:14;;8858:17;:56;;8900:14;;8858:56;:::i;:::-;;;;-1:-1:-1;;;8495:435:0;9014:4;8997:14;;8981:1;:12;;;8968:1;:10;;;:25;;;;:::i;:::-;8967:44;;;;:::i;:::-;:51;;;;:::i;:::-;8953:11;;;:65;9031:17;9051:20;:18;:20::i;:::-;9107;;:42;;-1:-1:-1;;;9107:42:0;;9143:4;9107:42;;;4163:74:1;9031:40:0;;-1:-1:-1;9082:22:0;;-1:-1:-1;;;;;9107:20:0;;;;:27;;4136:18:1;;9107:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9082:67;;9162:20;;;;;;;;;-1:-1:-1;;;;;9162:20:0;-1:-1:-1;;;;;9162:30:0;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9249:9;;9222:17;9242:4;9222:24;;;;:::i;:::-;:36;;;;:::i;:::-;9205:13;;:53;;;;;;;:::i;:::-;;;;-1:-1:-1;;9315:13:0;;9299:12;;;;9286:10;;9331:4;;9315:13;9286:25;;;:::i;:::-;9285:43;;;;:::i;:::-;:50;;;;:::i;:::-;9271:1;:11;;:64;;;;9362:17;9346:12;;:33;;;;;;;:::i;:::-;;;;-1:-1:-1;;9395:16:0;;9392:65;;9414:40;;-1:-1:-1;;;9414:40:0;;9429:10;9414:40;;;5137:74:1;5227:18;;;5220:34;;;2239:42:0;;9414:14;;5110:18:1;;9414:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9392:65;8298:1166;;;;8273:1191::o;6139:201::-;3925:7;;-1:-1:-1;;;;;3925:7:0;3911:10;:21;3903:42;;;;-1:-1:-1;;;3903:42:0;;14722:2:1;3903:42:0;;;14704:21:1;14761:1;14741:18;;;14734:29;-1:-1:-1;;;14779:18:1;;;14772:38;14827:18;;3903:42:0;14520:331:1;3903:42:0;6213:14:::1;6226:1;6213:10:::0;:14:::1;:::i;:::-;:19:::0;6205:40:::1;;;::::0;-1:-1:-1;;;6205:40:0;;8303:2:1;6205:40:0::1;::::0;::::1;8285:21:1::0;8342:1;8322:18;;;8315:29;8380:10;8360:18;;;8353:38;8408:18;;6205:40:0::1;8101:331:1::0;6205:40:0::1;6256:9;:22:::0;;;6294:38:::1;::::0;;8649:21:1;;;8706:1;8686:18;;;8679:29;;;;8744:11;8739:2;8724:18;;8717:39;8823:4;8808:20;;8801:36;;;6294:38:0::1;::::0;8788:3:1;8773:19;6294:38:0::1;8437:406:1::0;4713:376:0;3925:7;;-1:-1:-1;;;;;3925:7:0;3911:10;:21;3903:42;;;;-1:-1:-1;;;3903:42:0;;14722:2:1;3903:42:0;;;14704:21:1;14761:1;14741:18;;;14734:29;-1:-1:-1;;;14779:18:1;;;14772:38;14827:18;;3903:42:0;14520:331:1;3903:42:0;-1:-1:-1;;;;;4828:36:0;::::1;4820:58;;;::::0;-1:-1:-1;;;4820:58:0;;11867:2:1;4820:58:0::1;::::0;::::1;11849:21:1::0;11906:1;11886:18;;;11879:29;-1:-1:-1;;;11924:18:1;;;11917:39;11973:18;;4820:58:0::1;11665:332:1::0;4820:58:0::1;4905:20;::::0;-1:-1:-1;;;;;4905:20:0::1;4897:43:::0;4889:67:::1;;;::::0;-1:-1:-1;;;4889:67:0;;9050:2:1;4889:67:0::1;::::0;::::1;9032:21:1::0;9089:2;9069:18;;;9062:30;-1:-1:-1;;;9108:18:1;;;9101:41;9159:18;;4889:67:0::1;8848:335:1::0;4889:67:0::1;4967:20;:36:::0;;-1:-1:-1;;;;;;4967:36:0::1;-1:-1:-1::0;;;;;4967:36:0;::::1;::::0;;::::1;::::0;;;5019:62:::1;::::0;;14260:21:1;;;14317:2;14297:18;;;14290:30;;;;14356:22;14351:2;14336:18;;14329:50;14446:4;14431:20;;14424:85;;;;5019:62:0::1;::::0;14411:3:1;14396:19;5019:62:0::1;14048:467:1::0;11569:862:0;11646:10;11623:14;11640:17;;;:5;:17;;;;;;;;11697:8;:20;;;;;:30;;;;;;;;;11668:59;;;;;;;;;;;;;;;;;;;;;;11779:9;:7;:9::i;:::-;11860:12;;;;11847:10;;:25;;11860:12;11847:25;:::i;:::-;11833:9;;:40;;;;;;;:::i;:::-;;;;-1:-1:-1;;12010:10:0;12001:20;;;;:8;:20;;;;;12022:17;;;;12001:20;;;12022:19;;12040:1;;12022:19;:::i;:::-;12001:41;;;;;;;;;;;;;;-1:-1:-1;12001:41:0;;;11977:10;11968:20;;;:8;:20;;;;;;:30;;;;;;;;;:74;;;;;;;;;;;;;12060:20;;;;;;12081:17;;;;11968:20;;-1:-1:-1;;12081:19:0;;11968:74;12081:19;:::i;:::-;12060:41;;;;;;;;;;;;12053:48;;;;;;;;;;;;;;12133:1;12112;:17;;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;12185:11:0;;-1:-1:-1;12185:9:0;:11::i;:::-;12269:12;;;;12256:10;;:25;;12269:12;12256:25;:::i;:::-;12242:9;;:40;;;;;;;:::i;:::-;;;;-1:-1:-1;12339:6:0;;-1:-1:-1;12339:4:0;:6::i;:::-;12364:1;12346:9;:17;;;:19;;;;:::i;:::-;12339:27;;;;;;;:::i;:::-;;;;;12407:15;;12339:84;;-1:-1:-1;;;12339:84:0;;12388:4;12339:84;;;4511:34:1;12395:10:0;4561:18:1;;;4554:43;4613:18;;;4606:34;;;;-1:-1:-1;;;;;12339:40:0;;;;;;4423:18:1;;12339:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11612:819;;11569:862;:::o;10477:1064::-;6451:9;6464:10;6451:23;6443:44;;;;-1:-1:-1;;;6443:44:0;;13118:2:1;6443:44:0;;;13100:21:1;13157:1;13137:18;;;13130:29;13195:10;13175:18;;;13168:38;13223:18;;6443:44:0;12916:331:1;6443:44:0;10575:10:::1;10552:14;10569:17:::0;;;:5:::1;:17;::::0;;;;10711:13:::1;::::0;10691:17:::1;::::0;::::1;::::0;:33:::1;10683:69;;;::::0;-1:-1:-1;;;10683:69:0;;11099:2:1;10683:69:0::1;::::0;::::1;11081:21:1::0;11138:2;11118:18;;;11111:30;11177:25;11157:18;;;11150:53;11220:18;;10683:69:0::1;10897:347:1::0;10683:69:0::1;10782:1;10771:7;:12;;:28;;;;;10798:1;10787:7;:12;;10771:28;10763:55;;;::::0;-1:-1:-1;;;10763:55:0;;9390:2:1;10763:55:0::1;::::0;::::1;9372:21:1::0;9429:2;9409:18;;;9402:30;9468:16;9448:18;;;9441:44;9502:18;;10763:55:0::1;9188:338:1::0;10763:55:0::1;10930:1;10887:6;:4;:6::i;:::-;10894:9;10902:1;10894:7:::0;:9:::1;:::i;:::-;10887:17;;;;;;;:::i;:::-;;;;::::0;:39:::1;::::0;-1:-1:-1;;;10887:39:0;;10915:10:::1;10887:39;::::0;::::1;4163:74:1::0;-1:-1:-1;;;;;10887:27:0;;::::1;::::0;::::1;::::0;4136:18:1;;10887:39:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:44;;10879:70;;;::::0;-1:-1:-1;;;10879:70:0;;7961:2:1;10879:70:0::1;::::0;::::1;7943:21:1::0;8000:2;7980:18;;;7973:30;8039:15;8019:18;;;8012:43;8072:18;;10879:70:0::1;7759:337:1::0;10879:70:0::1;10960:6;:4;:6::i;:::-;10967:9;10975:1;10967:7:::0;:9:::1;:::i;:::-;10960:17;;;;;;;:::i;:::-;;;;::::0;:64:::1;::::0;-1:-1:-1;;;10960:64:0;;10991:10:::1;10960:64;::::0;::::1;4511:34:1::0;11011:4:0::1;4561:18:1::0;;;4554:43;4613:18;;;4606:34;;;-1:-1:-1;;;;;10960:30:0;;::::1;::::0;::::1;::::0;4423:18:1;;10960:64:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11076:9;:7;:9::i;:::-;11157:12;::::0;::::1;::::0;11144:10;;:25:::1;::::0;11157:12;11144:25:::1;:::i;:::-;11130:9;;:40;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;11252:10:0::1;11213:27;11243:20:::0;;;:8:::1;:20;::::0;;;;;;;11264:17:::1;::::0;::::1;::::0;;11243:39;;;;;;11293:17:::1;::::0;::::1;:27:::0;;;11331:23;;;11365:20;;11243:39;;11365:20;;11264:17;11365:20:::1;::::0;::::1;:::i;:::-;;;;;;11436:11;:9;:11::i;:::-;11520:12;::::0;::::1;::::0;11507:10;;:25:::1;::::0;11520:12;11507:25:::1;:::i;:::-;11493:9;;:40;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;;;;;10477:1064:0:o;9490:928::-;9578:10;9555:14;9572:17;;;:5;:17;;;;;;;9658:2;;:50;;-1:-1:-1;;;9658:50:0;;;;;4511:34:1;;;;9694:4:0;4561:18:1;;;4554:43;4613:18;;;4606:34;;;9572:17:0;-1:-1:-1;;;;;9658:2:0;;;;:15;;4423:18:1;;9658:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9760:9;:7;:9::i;:::-;9833:2;;9852:20;;9833:49;;;;;-1:-1:-1;;;;;9852:20:0;;;9833:49;;;5137:74:1;5227:18;;;5220:34;;;9833:2:0;;;:10;;5110:18:1;;9833:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9825:76;;;;-1:-1:-1;;;9825:76:0;;13907:2:1;9825:76:0;;;13889:21:1;13946:2;13926:18;;;13919:30;13985:16;13965:18;;;13958:44;14019:18;;9825:76:0;13705:338:1;9825:76:0;9912:20;;:34;;;;;;;;6645:25:1;;;-1:-1:-1;;;;;9912:20:0;;;;:26;;6618:18:1;;9912:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10018:12:0;;;;10005:10;;:25;;-1:-1:-1;10005:25:0;:::i;:::-;9991:9;;:40;;;;;;;:::i;:::-;;;;-1:-1:-1;;10077:20:0;;10091:6;;10077:1;;:10;;:20;;10091:6;;10077:20;:::i;:::-;;;;-1:-1:-1;10145:11:0;;-1:-1:-1;10145:9:0;:11::i;:::-;10229:12;;;;10216:10;;:25;;10229:12;10216:25;:::i;:::-;10202:9;;:40;;;;;;;:::i;:::-;;;;-1:-1:-1;;10286:10:0;;;;-1:-1:-1;;;;;10286:10:0;:24;:50;;;;-1:-1:-1;;;;;;10314:22:0;;;;10286:50;:76;;;;-1:-1:-1;;;;;;10340:22:0;;10352:10;10340:22;;10286:76;10283:128;;;10378:10;;;:21;;-1:-1:-1;;;;;10378:21:0;;-1:-1:-1;;;;;;10378:21:0;;;;;;9544:874;9490:928;;:::o;3995:181::-;3925:7;;-1:-1:-1;;;;;3925:7:0;3911:10;:21;3903:42;;;;-1:-1:-1;;;3903:42:0;;14722:2:1;3903:42:0;;;14704:21:1;14761:1;14741:18;;;14734:29;-1:-1:-1;;;14779:18:1;;;14772:38;14827:18;;3903:42:0;14520:331:1;3903:42:0;-1:-1:-1;;;;;4064:18:0;::::1;4056:40;;;::::0;-1:-1:-1;;;4056:40:0;;11867:2:1;4056:40:0::1;::::0;::::1;11849:21:1::0;11906:1;11886:18;;;11879:29;-1:-1:-1;;;11924:18:1;;;11917:39;11973:18;;4056:40:0::1;11665:332:1::0;4056:40:0::1;4107:7;:14:::0;;-1:-1:-1;;;;;;4107:14:0::1;-1:-1:-1::0;;;;;4107:14:0;::::1;::::0;;::::1;::::0;;;4137:31:::1;::::0;;12214:21:1;;;12271:1;12251:18;;;12244:29;;;;12309:9;12304:2;12289:18;;12282:37;12386:4;12371:20;;12364:85;;;;4137:31:0::1;::::0;12351:3:1;12336:19;4137:31:0::1;12002:453:1::0;5352:193:0;3925:7;;-1:-1:-1;;;;;3925:7:0;3911:10;:21;3903:42;;;;-1:-1:-1;;;3903:42:0;;14722:2:1;3903:42:0;;;14704:21:1;14761:1;14741:18;;;14734:29;-1:-1:-1;;;14779:18:1;;;14772:38;14827:18;;3903:42:0;14520:331:1;3903:42:0;-1:-1:-1;;;;;5429:15:0;::::1;5421:37;;;::::0;-1:-1:-1;;;5421:37:0;;11867:2:1;5421:37:0::1;::::0;::::1;11849:21:1::0;11906:1;11886:18;;;11879:29;-1:-1:-1;;;11924:18:1;;;11917:39;11973:18;;5421:37:0::1;11665:332:1::0;5421:37:0::1;-1:-1:-1::0;;;;;5469:19:0;::::1;5491:5;5469:19:::0;;;:16:::1;:19;::::0;;;;;;;:27;;-1:-1:-1;;5469:27:0::1;::::0;;5512:25;;4819:74:1;;;4909:18;;;4902:50;;;;5512:25:0::1;::::0;4792:18:1;5512:25:0::1;4651:307:1::0;7661:191:0;7750:10;7711:4;7744:17;;;:5;:17;;;;;7833:11;;;;7809:14;;;7793:12;;;;7780:10;;7826:4;;7809:14;7780:25;;;:::i;:::-;7779:44;;;;:::i;:::-;:51;;;;:::i;:::-;:65;;;;:::i;:::-;7772:72;;;7661:191;:::o;6856:314::-;6946:10;6929:28;;;;:16;:28;;;;;;;;:70;;;;-1:-1:-1;6961:5:0;;:38;;-1:-1:-1;;;6961:38:0;;2108:66;6961:38;;;6855:25:1;6988:10:0;6896:18:1;;;6889:83;-1:-1:-1;;;;;6961:5:0;;;;:13;;6828:18:1;;6961:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6921:105;;;;-1:-1:-1;;;6921:105:0;;10407:2:1;6921:105:0;;;10389:21:1;10446:2;10426:18;;;10419:30;10485:24;10465:18;;;10458:52;10527:18;;6921:105:0;10205:346:1;6921:105:0;7040:9;;:13;7037:126;;7104:9;;7087:14;:7;7097:4;7087:14;:::i;:::-;:26;;;;:::i;:::-;7069:14;;:44;;;;;;;:::i;:::-;;;;;;;;7144:7;7128:12;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;7037:126:0;6856:314;:::o;5551:352::-;3925:7;;-1:-1:-1;;;;;3925:7:0;3911:10;:21;3903:42;;;;-1:-1:-1;;;3903:42:0;;14722:2:1;3903:42:0;;;14704:21:1;14761:1;14741:18;;;14734:29;-1:-1:-1;;;14779:18:1;;;14772:38;14827:18;;3903:42:0;14520:331:1;3903:42:0;5687:7:::1;5677;:17;:36;;;;;5708:5;5698:7;:15;5677:36;:57;;;;;5725:9;5717:5;:17;5677:57;:81;;;;;5750:8;5738:9;:20;5677:81;:96;;;;;5772:1;5762:7;:11;5677:96;5669:121;;;::::0;-1:-1:-1;;;5669:121:0;;10758:2:1;5669:121:0::1;::::0;::::1;10740:21:1::0;10797:2;10777:18;;;10770:30;10836:14;10816:18;;;10809:42;10868:18;;5669:121:0::1;10556:336:1::0;5669:121:0::1;5801:56;;;;;;;;5812:7;5801:56;;;;5821:7;5801:56;;;;5830:5;5801:56;;;;5837:9;5801:56;;;;5848:8;5801:56;;::::0;:7:::1;:56;;;;;;;:::i;:::-;;5873:22;5887:7;5873:22;;;;;;:::i;:::-;;;;;;;;5551:352:::0;;;;;:::o;2785:41::-;;;;;;;;;;;;;;;-1:-1:-1;2785:41:0;:::o;13278:298::-;13334:2;;:16;;;-1:-1:-1;;;13334:16:0;;;;13315:4;;-1:-1:-1;;;;;13334:2:0;;:14;;:16;;;;;;;;;;;;;;:2;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13331:38;;-1:-1:-1;13365:1:0;;13278:298::o;13331:38::-;13384:15;13403:12;:10;:12::i;:::-;13381:34;;;13426:15;13467:2;;;;;;;;;-1:-1:-1;;;;;13467:2:0;-1:-1:-1;;;;;13467:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13444;:10;13457:3;13444:16;:::i;:::-;:20;;13463:1;13444:20;:::i;:::-;:39;;;;:::i;:::-;13503:20;;:45;;-1:-1:-1;;;13503:45:0;;13542:4;13503:45;;;4163:74:1;13426:57:0;;-1:-1:-1;13564:4:0;;13426:57;;-1:-1:-1;;;;;13503:20:0;;:30;;4136:18:1;;13503:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:58;;;;:::i;5909:224::-;3925:7;;-1:-1:-1;;;;;3925:7:0;3911:10;:21;3903:42;;;;-1:-1:-1;;;3903:42:0;;14722:2:1;3903:42:0;;;14704:21:1;14761:1;14741:18;;;14734:29;-1:-1:-1;;;14779:18:1;;;14772:38;14827:18;;3903:42:0;14520:331:1;3903:42:0;6009:1:::1;5991:14;:19;;5983:39;;;::::0;-1:-1:-1;;;5983:39:0;;9733:2:1;5983:39:0::1;::::0;::::1;9715:21:1::0;9772:1;9752:18;;;9745:29;9810:9;9790:18;;;9783:37;9837:18;;5983:39:0::1;9531:330:1::0;5983:39:0::1;6033:13;:30:::0;;;6079:46:::1;::::0;;11461:21:1;;;11518:2;11498:18;;;11491:30;;;;11557:15;11552:2;11537:18;;11530:43;11640:4;11625:20;;11618:36;;;6079:46:0::1;::::0;11605:3:1;11590:19;6079:46:0::1;11249:411:1::0;7858:354:0;7908:4;7927:9;;7940:1;7927:14;7924:31;;;-1:-1:-1;7951:1:0;;7858:354::o;7924:31::-;7988:10;7965:14;7982:17;;;:5;:17;;;;;;8106:9;;8054:20;;:42;;-1:-1:-1;;;8054:42:0;;8090:4;8054:42;;;4163:74:1;7982:17:0;;7965:14;8106:9;;-1:-1:-1;;;;;8054:20:0;;;;:27;;4136:18:1;;8054:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:49;;8099:4;8054:49;:::i;:::-;:61;;;;:::i;:::-;8038:13;;:77;;;;:::i;:::-;8010:105;;8193:1;:11;;;8186:4;8163:20;8147:1;:12;;;8134:1;:10;;;:25;;;;:::i;:::-;8133:50;;;;:::i;:::-;:57;;;;:::i;:::-;:71;;;;:::i;4461:246::-;3925:7;;-1:-1:-1;;;;;3925:7:0;3911:10;:21;3903:42;;;;-1:-1:-1;;;3903:42:0;;14722:2:1;3903:42:0;;;14704:21:1;14761:1;14741:18;;;14734:29;-1:-1:-1;;;14779:18:1;;;14772:38;14827:18;;3903:42:0;14520:331:1;3903:42:0;-1:-1:-1;;;;;4530:26:0;::::1;4522:48;;;::::0;-1:-1:-1;;;4522:48:0;;11867:2:1;4522:48:0::1;::::0;::::1;11849:21:1::0;11906:1;11886:18;;;11879:29;-1:-1:-1;;;11924:18:1;;;11917:39;11973:18;;4522:48:0::1;11665:332:1::0;4522:48:0::1;4597:2;::::0;-1:-1:-1;;;;;4597:2:0::1;4589:25:::0;4581:49:::1;;;::::0;-1:-1:-1;;;4581:49:0;;9050:2:1;4581:49:0::1;::::0;::::1;9032:21:1::0;9089:2;9069:18;;;9062:30;-1:-1:-1;;;9108:18:1;;;9101:41;9159:18;;4581:49:0::1;8848:335:1::0;4581:49:0::1;4641:2;:8:::0;;-1:-1:-1;;;;;;4641:8:0::1;-1:-1:-1::0;;;;;4641:8:0;::::1;::::0;;::::1;::::0;;;4665:34:::1;::::0;;13464:21:1;;;13521:1;13501:18;;;13494:29;;;;13559:4;13554:2;13539:18;;13532:32;13631:4;13616:20;;13609:85;;;;4665:34:0::1;::::0;13596:3:1;13581:19;4665:34:0::1;13252:448:1::0;6539:228:0;6581:4;6587;6604:17;6623;6646:2;;;;;;;;;-1:-1:-1;;;;;6646:2:0;-1:-1:-1;;;;;6646:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6703:5:0;;;6680:2;:11;;;;;;;;6603:59;;-1:-1:-1;6603:59:0;;-1:-1:-1;;;;;;6703:5:0;;;;6680:2;;;:9;;:11;;;;;;;;;;;;;;:2;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;6680:29:0;;:79;;6738:9;6749;6680:79;;;6713:9;6724;6680:79;6673:86;;;;;;;;-1:-1:-1;6539:228:0;-1:-1:-1;;;6539:228:0:o;7205:416::-;7267:10;7244:14;7261:17;;;:5;:17;;;;;7289:12;;;:16;;;7261:17;7316:147;7336:1;:17;;;7332:1;:21;7316:147;;;7420:10;7411:20;;;;:8;:20;;;;;;;;:23;;;;;;;;7443:1;7411:31;;;;7448:3;;7403:7;;7411:33;;7443:1;7411:33;:::i;:::-;7403:42;;;;;;;:::i;:::-;;;7390:10;;:55;;7403:42;7390:55;:::i;:::-;:61;;;;:::i;:::-;7374:1;:12;;;:77;;;;;;;:::i;:::-;;;;-1:-1:-1;7355:3:0;;-1:-1:-1;7355:3:0;;;:::i;:::-;;;;7316:147;;;;7534:4;7517:14;;7501:1;:12;;;7488:1;:10;;;:25;;;;:::i;:::-;7487:44;;;;:::i;:::-;:51;;;;:::i;:::-;7473:11;;;:65;7593:13;;7577:12;;;;7564:10;;7609:4;;7593:13;7564:25;;;:::i;:::-;7563:43;;;;:::i;:::-;:50;;;;:::i;:::-;7549:11;;;;:64;7205:416::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:188:1;93:13;;146:30;135:42;;125:53;;115:81;;192:1;189;182:12;115:81;14:188;;;:::o;207:247::-;266:6;319:2;307:9;298:7;294:23;290:32;287:52;;;335:1;332;325:12;287:52;374:9;361:23;393:31;418:5;393:31;:::i;:::-;443:5;207:247;-1:-1:-1;;;207:247:1:o;459:251::-;529:6;582:2;570:9;561:7;557:23;553:32;550:52;;;598:1;595;588:12;550:52;630:9;624:16;649:31;674:5;649:31;:::i;715:315::-;783:6;791;844:2;832:9;823:7;819:23;815:32;812:52;;;860:1;857;850:12;812:52;899:9;886:23;918:31;943:5;918:31;:::i;:::-;968:5;1020:2;1005:18;;;;992:32;;-1:-1:-1;;;715:315:1:o;1035:277::-;1102:6;1155:2;1143:9;1134:7;1130:23;1126:32;1123:52;;;1171:1;1168;1161:12;1123:52;1203:9;1197:16;1256:5;1249:13;1242:21;1235:5;1232:32;1222:60;;1278:1;1275;1268:12;2156:450;2243:6;2251;2259;2312:2;2300:9;2291:7;2287:23;2283:32;2280:52;;;2328:1;2325;2318:12;2280:52;2351:40;2381:9;2351:40;:::i;:::-;2341:50;;2410:49;2455:2;2444:9;2440:18;2410:49;:::i;:::-;2400:59;;2502:2;2491:9;2487:18;2481:25;2546:10;2539:5;2535:22;2528:5;2525:33;2515:61;;2572:1;2569;2562:12;2515:61;2595:5;2585:15;;;2156:450;;;;;:::o;2611:180::-;2670:6;2723:2;2711:9;2702:7;2698:23;2694:32;2691:52;;;2739:1;2736;2729:12;2691:52;-1:-1:-1;2762:23:1;;2611:180;-1:-1:-1;2611:180:1:o;2796:184::-;2866:6;2919:2;2907:9;2898:7;2894:23;2890:32;2887:52;;;2935:1;2932;2925:12;2887:52;-1:-1:-1;2958:16:1;;2796:184;-1:-1:-1;2796:184:1:o;2985:315::-;3053:6;3061;3114:2;3102:9;3093:7;3089:23;3085:32;3082:52;;;3130:1;3127;3120:12;3082:52;3166:9;3153:23;3143:33;;3226:2;3215:9;3211:18;3198:32;3239:31;3264:5;3239:31;:::i;:::-;3289:5;3279:15;;;2985:315;;;;;:::o;3305:248::-;3373:6;3381;3434:2;3422:9;3413:7;3409:23;3405:32;3402:52;;;3450:1;3447;3440:12;3402:52;-1:-1:-1;;3473:23:1;;;3543:2;3528:18;;;3515:32;;-1:-1:-1;3305:248:1:o;3558:454::-;3653:6;3661;3669;3677;3685;3738:3;3726:9;3717:7;3713:23;3709:33;3706:53;;;3755:1;3752;3745:12;3706:53;-1:-1:-1;;3778:23:1;;;3848:2;3833:18;;3820:32;;-1:-1:-1;3899:2:1;3884:18;;3871:32;;3950:2;3935:18;;3922:32;;-1:-1:-1;4001:3:1;3986:19;3973:33;;-1:-1:-1;3558:454:1;-1:-1:-1;3558:454:1:o;5265:566::-;5467:3;5452:19;;5456:9;5548:6;5425:4;5582:243;5596:4;5593:1;5590:11;5582:243;;;5659:13;;-1:-1:-1;;;;;5655:62:1;5643:75;;5741:4;5765:12;;;;5800:15;;;;5616:1;5609:9;5582:243;;;5586:3;;;5265:566;;;;:::o;5836:466::-;6013:3;5998:19;;6002:9;6094:6;5971:4;6128:168;6142:4;6139:1;6136:11;6128:168;;;6201:13;;6189:26;;6244:4;6235:14;;;;6284:1;6272:14;;;;6155:9;6128:168;;16295:128;16335:3;16366:1;16362:6;16359:1;16356:13;16353:39;;;16372:18;;:::i;:::-;-1:-1:-1;16408:9:1;;16295:128::o;16428:120::-;16468:1;16494;16484:35;;16499:18;;:::i;:::-;-1:-1:-1;16533:9:1;;16428:120::o;16553:168::-;16593:7;16659:1;16655;16651:6;16647:14;16644:1;16641:21;16636:1;16629:9;16622:17;16618:45;16615:71;;;16666:18;;:::i;:::-;-1:-1:-1;16706:9:1;;16553:168::o;16726:125::-;16766:4;16794:1;16791;16788:8;16785:34;;;16799:18;;:::i;:::-;-1:-1:-1;16836:9:1;;16726:125::o;16856:135::-;16895:3;-1:-1:-1;;16916:17:1;;16913:43;;;16936:18;;:::i;:::-;-1:-1:-1;16983:1:1;16972:13;;16856:135::o;16996:112::-;17028:1;17054;17044:35;;17059:18;;:::i;:::-;-1:-1:-1;17093:9:1;;16996:112::o;17113:184::-;-1:-1:-1;;;17162:1:1;17155:88;17262:4;17259:1;17252:15;17286:4;17283:1;17276:15;17302:184;-1:-1:-1;;;17351:1:1;17344:88;17451:4;17448:1;17441:15;17475:4;17472:1;17465:15;17491:184;-1:-1:-1;;;17540:1:1;17533:88;17640:4;17637:1;17630:15;17664:4;17661:1;17654:15;17680:154;-1:-1:-1;;;;;17759:5:1;17755:54;17748:5;17745:65;17735:93;;17824:1;17821;17814:12

Swarm Source

ipfs://62453395a0e9924bca49929a1e1e5cbb441a1cd6a58d3d09def34be79618002f

Block Transaction 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
[ 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.