ETH Price: $2,034.31 (+5.72%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Send Reward117148872021-01-23 23:39:461862 days ago1611445186IN
0xFA149C8a...55e80E89B
0 ETH0.0078488550
Send Reward116691282021-01-16 23:06:181869 days ago1610838378IN
0xFA149C8a...55e80E89B
0 ETH0.0082548948
Claim Reward All116550682021-01-14 19:23:371871 days ago1610652217IN
0xFA149C8a...55e80E89B
0 ETH0.0033914753
Send Reward116234052021-01-09 22:54:451876 days ago1610232885IN
0xFA149C8a...55e80E89B
0 ETH0.0098895563
Send Reward115311042020-12-26 19:02:131890 days ago1609009333IN
0xFA149C8a...55e80E89B
0 ETH0.0103825156
Send Reward114854532020-12-19 18:57:071897 days ago1608404227IN
0xFA149C8a...55e80E89B
0 ETH0.0049555433
Send Reward114399132020-12-12 19:00:011904 days ago1607799601IN
0xFA149C8a...55e80E89B
0 ETH0.0031081419.8
Send Reward113941982020-12-05 18:15:041911 days ago1607192104IN
0xFA149C8a...55e80E89B
0 ETH0.0030619917.9
Send Reward113417092020-11-27 16:52:021919 days ago1606495922IN
0xFA149C8a...55e80E89B
0 ETH0.0059524939
Deposit112599252020-11-15 3:19:591931 days ago1605410399IN
0xFA149C8a...55e80E89B
0 ETH0.0035013919.1
Set Vault Name112450092020-11-12 20:33:581934 days ago1605213238IN
0xFA149C8a...55e80E89B
0 ETH0.0003748312.50000056

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
pFDIVault

Compiler Version
v0.7.0+commit.9e61f92b

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2020-11-12
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.7.0;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;

        return c;
    }
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

library Address {
    function isContract(address account) internal view returns (bool) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != 0x0 && codehash != accountHash);
    }
    function toPayable(address account) internal pure returns (address payable) {
        return address(uint160(account));
    }
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-call-value
        (bool success, ) = recipient.call{ value : amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

library SafeERC20 {
    using SafeMath for uint256;
    using Address for address;

    function safeTransfer(IERC20 token, address to, uint256 value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }

    function safeApprove(IERC20 token, address spender, uint256 value) internal {
        require((value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }

    function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {
        uint256 newAllowance = token.allowance(address(this), spender).add(value);
        callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
    }

    function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal {
        uint256 newAllowance = token.allowance(address(this), spender).sub(value, "SafeERC20: decreased allowance below zero");
        callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
    }
    function callOptionalReturn(IERC20 token, bytes memory data) private {
        require(address(token).isContract(), "SafeERC20: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = address(token).call(data);
        require(success, "SafeERC20: low-level call failed");

        if (returndata.length > 0) { // Return data is optional
            // solhint-disable-next-line max-line-length
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

contract pFDIVault {
    using SafeERC20 for IERC20;
    using Address for address;
    using SafeMath for uint256;
    
    struct RewardDivide {
        uint256 amount;
        uint256 startTime;
        uint256 checkTime;
    }

    string public _vaultName;
    IERC20 public token0;
    IERC20 public token1;
    address public feeAddress;
    address public vaultAddress;
    uint32 public feePermill = 5;
    uint256 public delayDuration = 7 days;
    bool public withdrawable;
    
    address public gov;
    uint256 public totalDeposit;
    mapping(address => uint256) public depositBalances;
    mapping(address => uint256) public rewardBalances;
    address[] public addressIndices;

    mapping(uint256 => RewardDivide) public _rewards;
    uint256 public _rewardCount;

    event SentReward(uint256 amount);
    event Deposited(address indexed user, uint256 amount);
    event ClaimedReward(address indexed user, uint256 amount);
    event Withdrawn(address indexed user, uint256 amount);

    constructor (address _token0, address _token1, address _feeAddress, address _vaultAddress, string memory name) {
        token0 = IERC20(_token0);
        token1 = IERC20(_token1);
        feeAddress = _feeAddress;
        vaultAddress = _vaultAddress;
        _vaultName = name;
        gov = msg.sender;
    }

    modifier onlyGov() {
        require(msg.sender == gov, "!governance");
        _;
    }

    function setGovernance(address _gov)
        external
        onlyGov
    {
        gov = _gov;
    }

    function setToken0(address _token)
        external
        onlyGov
    {
        token0 = IERC20(_token);
    }

    function setToken1(address _token)
        external
        onlyGov
    {
        token1 = IERC20(_token);
    }

    function setFeeAddress(address _feeAddress)
        external
        onlyGov
    {
        feeAddress = _feeAddress;
    }

    function setVaultAddress(address _vaultAddress)
        external
        onlyGov
    {
        vaultAddress = _vaultAddress;
    }

    function setFeePermill(uint32 _feePermill)
        external
        onlyGov
    {
        feePermill = _feePermill;
    }

    function setDelayDuration(uint32 _delayDuration)
        external
        onlyGov
    {
        delayDuration = _delayDuration;
    }

    function setWithdrawable(bool _withdrawable)
        external
        onlyGov
    {
        withdrawable = _withdrawable;
    }

    function setVaultName(string memory name)
        external
        onlyGov
    {
        _vaultName = name;
    }

    function balance0()
        public
        view
        returns (uint256)
    {
        return token0.balanceOf(address(this));
    }

    function balance1()
        public
        view
        returns (uint256)
    {
        return token1.balanceOf(address(this));
    }

    function rewardUpdate()
        public
    {
        if (_rewardCount > 0) {
            uint256 i;
            uint256 j;

            for (i = _rewardCount - 1; _rewards[i].startTime < block.timestamp; --i) {
                uint256 duration;
                if (block.timestamp.sub(_rewards[i].startTime) > delayDuration) {
                    duration = _rewards[i].startTime.add(delayDuration).sub(_rewards[i].checkTime);
                    _rewards[i].startTime = uint256(-1);
                } else {
                    duration = block.timestamp.sub(_rewards[i].checkTime);
                }
                _rewards[i].checkTime = block.timestamp;
                uint256 timedAmount = _rewards[i].amount.mul(duration).div(delayDuration);
                uint256 addAmount;
                for (j = 0; j < addressIndices.length; j++) {
                    addAmount = timedAmount.mul(depositBalances[addressIndices[j]]).div(totalDeposit);
                    rewardBalances[addressIndices[j]] = rewardBalances[addressIndices[j]].add(addAmount);
                }
                if (i == 0) {
                    break;
                }
            }
        }
    }

    function depositAll()
        external
    {
        deposit(token0.balanceOf(msg.sender));
    }
    
    function deposit(uint256 _amount)
        public
    {
        require(_amount > 0, "can't deposit 0");

        rewardUpdate();

        uint256 arrayLength = addressIndices.length;
        bool found = false;
        for (uint256 i = 0; i < arrayLength; i++) {
            if (addressIndices[i]==msg.sender){
                found=true;
                break;
            }
        }
        
        if(!found){
            addressIndices.push(msg.sender);
        }
        
        uint256 feeAmount = _amount.mul(feePermill).div(1000);
        uint256 realAmount = _amount.sub(feeAmount);
        
        
        token0.safeTransferFrom(msg.sender, feeAddress, feeAmount);
        token0.safeTransferFrom(msg.sender, vaultAddress, realAmount);
        
        totalDeposit = totalDeposit.add(realAmount);
        depositBalances[msg.sender] = depositBalances[msg.sender].add(realAmount);
        emit Deposited(msg.sender, realAmount);
    }
    
    function sendReward(uint256 _amount)
        external
    {
        require(_amount > 0, "can't reward 0");
        require(totalDeposit > 0, "totalDeposit must bigger than 0");
        token1.safeTransferFrom(msg.sender, address(this), _amount);

        rewardUpdate();

        _rewards[_rewardCount].amount = _amount;
        _rewards[_rewardCount].startTime = block.timestamp;
        _rewards[_rewardCount].checkTime = block.timestamp;
        _rewardCount++;
        emit SentReward(_amount);
    }
    
    function claimRewardAll()
        external
    {
        claimReward(uint256(-1));
    }
    
    function claimReward(uint256 _amount)
        public
    {
        require(_rewardCount > 0, "no reward amount");

        rewardUpdate();

        if (_amount > rewardBalances[msg.sender]) {
            _amount = rewardBalances[msg.sender];
        }

        require(_amount > 0, "can't claim reward 0");

        token1.safeTransfer(msg.sender, _amount);
        
        rewardBalances[msg.sender] = rewardBalances[msg.sender].sub(_amount);
        emit ClaimedReward(msg.sender, _amount);
    }

    function withdrawAll()
        external
    {
        withdraw(uint256(-1));
    }

    function withdraw(uint256 _amount)
        public
    {
        require(token0.balanceOf(address(this)) > 0, "no withdraw amount");
        require(withdrawable, "not withdrawable");
        rewardUpdate();

        if (_amount > depositBalances[msg.sender]) {
            _amount = depositBalances[msg.sender];
        }

        require(_amount > 0, "can't withdraw 0");

        token0.safeTransfer(msg.sender, _amount);

        depositBalances[msg.sender] = depositBalances[msg.sender].sub(_amount);
        totalDeposit = totalDeposit.sub(_amount);

        emit Withdrawn(msg.sender, _amount);
    }

    function availableRewardAmount(address owner)
        public
        view
        returns(uint256)
    {
        uint256 i;
        uint256 availableReward = rewardBalances[owner];
        if (_rewardCount > 0) {
            for (i = _rewardCount - 1; _rewards[i].startTime < block.timestamp; --i) {
                uint256 duration;
                if (block.timestamp.sub(_rewards[i].startTime) > delayDuration) {
                    duration = _rewards[i].startTime.add(delayDuration).sub(_rewards[i].checkTime);
                } else {
                    duration = block.timestamp.sub(_rewards[i].checkTime);
                }
                uint256 timedAmount = _rewards[i].amount.mul(duration).div(delayDuration);
                uint256 addAmount = timedAmount.mul(depositBalances[owner]).div(totalDeposit);
                    availableReward = availableReward.add(addAmount);
                if (i == 0) {
                    break;
                }
            }
        }
        return availableReward;
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_token0","type":"address"},{"internalType":"address","name":"_token1","type":"address"},{"internalType":"address","name":"_feeAddress","type":"address"},{"internalType":"address","name":"_vaultAddress","type":"address"},{"internalType":"string","name":"name","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClaimedReward","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposited","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"SentReward","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdrawn","type":"event"},{"inputs":[],"name":"_rewardCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_rewards","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"startTime","type":"uint256"},{"internalType":"uint256","name":"checkTime","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_vaultName","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"addressIndices","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"availableRewardAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"balance0","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"balance1","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"claimReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimRewardAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"delayDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"depositAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"depositBalances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feePermill","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gov","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rewardBalances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardUpdate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"sendReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_delayDuration","type":"uint32"}],"name":"setDelayDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_feeAddress","type":"address"}],"name":"setFeeAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_feePermill","type":"uint32"}],"name":"setFeePermill","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_gov","type":"address"}],"name":"setGovernance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"setToken0","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"setToken1","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_vaultAddress","type":"address"}],"name":"setVaultAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"name":"setVaultName","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_withdrawable","type":"bool"}],"name":"setWithdrawable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token0","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token1","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vaultAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]

60806040526004805463ffffffff60a01b1916600560a01b17905562093a806005553480156200002e57600080fd5b5060405162001f0f38038062001f0f833981810160405260a08110156200005457600080fd5b81516020830151604080850151606086015160808701805193519597949692959194919392820192846401000000008211156200009057600080fd5b908301906020820185811115620000a657600080fd5b8251640100000000811182820188101715620000c157600080fd5b82525081516020918201929091019080838360005b83811015620000f0578181015183820152602001620000d6565b50505050905090810190601f1680156200011e5780820380516001836020036101000a031916815260200191505b506040525050600180546001600160a01b038089166001600160a01b0319928316179092556002805488841690831617905560038054878416908316179055600480549286169290911691909117905550805162000184906000906020840190620001a8565b505060068054610100600160a81b0319163361010002179055506200024492505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001eb57805160ff19168380011785556200021b565b828001600101855582156200021b579182015b828111156200021b578251825591602001919060010190620001fe565b50620002299291506200022d565b5090565b5b808211156200022957600081556001016200022e565b611cbb80620002546000396000f3fe608060405234801561001057600080fd5b50600436106102115760003560e01c8063a7df8c5711610125578063c78b6dea116100ad578063de5f62681161007c578063de5f6268146105da578063e2aa2a85146105e2578063e835dfbd146105ea578063f6153ccd146105f2578063fab980b7146105fa57610211565b8063c78b6dea14610573578063cbeb7ef214610590578063d21220a7146105af578063d86e1ef7146105b757610211565b8063b6b55f25116100f4578063b6b55f25146104df578063b79ea884146104fc578063b8f7928814610522578063c45c4f5814610545578063c6e426bd1461054d57610211565b8063a7df8c5714610477578063ab033ea914610494578063ae169a50146104ba578063b5984a36146104d757610211565b806344264d3d116101a857806385535cc51161017757806385535cc5146103a45780638705fcd4146103ca5780638d96bdbe146103f05780638f1e94051461041657806393c8dc6d1461045157610211565b806344264d3d146103575780635018830114610378578063637830ca14610394578063853828b61461039c57610211565b80631eb903cf116101e45780631eb903cf146103045780632e1a7d4d1461032a5780634127535814610347578063430bf08a1461034f57610211565b80630dfe16811461021657806311cc66b21461023a57806312d43a51146102e25780631c69ad00146102ea575b600080fd5b61021e610677565b604080516001600160a01b039092168252519081900360200190f35b6102e06004803603602081101561025057600080fd5b81019060208101813564010000000081111561026b57600080fd5b82018360208201111561027d57600080fd5b8035906020019184600183028401116401000000008311171561029f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610686945050505050565b005b61021e6106ef565b6102f2610703565b60408051918252519081900360200190f35b6102f26004803603602081101561031a57600080fd5b50356001600160a01b031661077f565b6102e06004803603602081101561034057600080fd5b5035610791565b61021e61099c565b61021e6109ab565b61035f6109ba565b6040805163ffffffff9092168252519081900360200190f35b6103806109cd565b604080519115158252519081900360200190f35b6102e06109d6565b6102e06109e3565b6102e0600480360360208110156103ba57600080fd5b50356001600160a01b03166109ee565b6102e0600480360360208110156103e057600080fd5b50356001600160a01b0316610a62565b6102f26004803603602081101561040657600080fd5b50356001600160a01b0316610ad6565b6104336004803603602081101561042c57600080fd5b5035610c25565b60408051938452602084019290925282820152519081900360600190f35b6102f26004803603602081101561046757600080fd5b50356001600160a01b0316610c46565b61021e6004803603602081101561048d57600080fd5b5035610c58565b6102e0600480360360208110156104aa57600080fd5b50356001600160a01b0316610c7f565b6102e0600480360360208110156104d057600080fd5b5035610cf9565b6102f2610e3d565b6102e0600480360360208110156104f557600080fd5b5035610e43565b6102e06004803603602081101561051257600080fd5b50356001600160a01b0316611020565b6102e06004803603602081101561053857600080fd5b503563ffffffff16611094565b6102f261110c565b6102e06004803603602081101561056357600080fd5b50356001600160a01b0316611157565b6102e06004803603602081101561058957600080fd5b50356111cb565b6102e0600480360360208110156105a657600080fd5b503515156112fc565b61021e611361565b6102e0600480360360208110156105cd57600080fd5b503563ffffffff16611370565b6102e06113cd565b6102f261144a565b6102e0611450565b6102f261162c565b610602611632565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561063c578181015183820152602001610624565b50505050905090810190601f1680156106695780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6001546001600160a01b031681565b60065461010090046001600160a01b031633146106d8576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b80516106eb906000906020840190611ba7565b5050565b60065461010090046001600160a01b031681565b600154604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561074e57600080fd5b505afa158015610762573d6000803e3d6000fd5b505050506040513d602081101561077857600080fd5b5051905090565b60086020526000908152604090205481565b600154604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b1580156107dc57600080fd5b505afa1580156107f0573d6000803e3d6000fd5b505050506040513d602081101561080657600080fd5b50511161084f576040805162461bcd60e51b81526020600482015260126024820152711b9bc81dda5d1a191c985dc8185b5bdd5b9d60721b604482015290519081900360640190fd5b60065460ff16610899576040805162461bcd60e51b815260206004820152601060248201526f6e6f7420776974686472617761626c6560801b604482015290519081900360640190fd5b6108a1611450565b336000908152600860205260409020548111156108ca5750336000908152600860205260409020545b60008111610912576040805162461bcd60e51b815260206004820152601060248201526f063616e277420776974686472617720360841b604482015290519081900360640190fd5b600154610929906001600160a01b031633836116c0565b336000908152600860205260409020546109439082611717565b336000908152600860205260409020556007546109609082611717565b60075560408051828152905133917f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5919081900360200190a250565b6003546001600160a01b031681565b6004546001600160a01b031681565b600454600160a01b900463ffffffff1681565b60065460ff1681565b6109e1600019610cf9565b565b6109e1600019610791565b60065461010090046001600160a01b03163314610a40576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b60065461010090046001600160a01b03163314610ab4576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038116600090815260096020526040812054600c5482919015610c1e576001600c540391505b6000828152600b6020526040902060010154421115610c1e576005546000838152600b6020526040812060010154909190610b3f904290611717565b1115610b7c576000838152600b602052604090206002810154600554600190920154610b7592610b6f9190611762565b90611717565b9050610b9c565b6000838152600b6020526040902060020154610b99904290611717565b90505b6005546000848152600b60205260408120549091610bc491610bbe90856117bc565b90611815565b6007546001600160a01b03881660009081526008602052604081205492935091610bf49190610bbe9085906117bc565b9050610c008482611762565b935084610c0f57505050610c1e565b50506000199092019150610b03565b9392505050565b600b6020526000908152604090208054600182015460029092015490919083565b60096020526000908152604090205481565b600a8181548110610c6557fe5b6000918252602090912001546001600160a01b0316905081565b60065461010090046001600160a01b03163314610cd1576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b600680546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000600c5411610d43576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81c995dd85c9908185b5bdd5b9d60821b604482015290519081900360640190fd5b610d4b611450565b33600090815260096020526040902054811115610d745750336000908152600960205260409020545b60008111610dc0576040805162461bcd60e51b8152602060048201526014602482015273063616e277420636c61696d2072657761726420360641b604482015290519081900360640190fd5b600254610dd7906001600160a01b031633836116c0565b33600090815260096020526040902054610df19082611717565b33600081815260096020908152604091829020939093558051848152905191927fd0813ff03c470dcc7baa9ce36914dc2febdfd276d639deffaac383fd3db42ba392918290030190a250565b60055481565b60008111610e8a576040805162461bcd60e51b815260206004820152600f60248201526e063616e2774206465706f736974203608c1b604482015290519081900360640190fd5b610e92611450565b600a546000805b82811015610ee457336001600160a01b0316600a8281548110610eb857fe5b6000918252602090912001546001600160a01b03161415610edc5760019150610ee4565b600101610e99565b5080610f2d57600a80546001810182556000919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b031916331790555b600454600090610f57906103e890610bbe90879063ffffffff600160a01b9091048116906117bc16565b90506000610f658583611717565b600354600154919250610f87916001600160a01b039081169133911685611857565b600454600154610fa6916001600160a01b039182169133911684611857565b600754610fb39082611762565b60075533600090815260086020526040902054610fd09082611762565b33600081815260086020908152604091829020939093558051848152905191927f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c492918290030190a25050505050565b60065461010090046001600160a01b03163314611072576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60065461010090046001600160a01b031633146110e6576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b6004805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b600254604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561074e57600080fd5b60065461010090046001600160a01b031633146111a9576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60008111611211576040805162461bcd60e51b815260206004820152600e60248201526d063616e27742072657761726420360941b604482015290519081900360640190fd5b600060075411611268576040805162461bcd60e51b815260206004820152601f60248201527f746f74616c4465706f736974206d75737420626967676572207468616e203000604482015290519081900360640190fd5b600254611280906001600160a01b0316333084611857565b611288611450565b600c80546000908152600b60209081526040808320859055835483528083204260019182018190558554855293829020600201939093558354909201909255805183815290517feae918ad14bd0bcaa9f9d22da2b810c02f44331bf6004a76f049a3360891f916929181900390910190a150565b60065461010090046001600160a01b0316331461134e576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b6006805460ff1916911515919091179055565b6002546001600160a01b031681565b60065461010090046001600160a01b031633146113c2576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b63ffffffff16600555565b600154604080516370a0823160e01b815233600482015290516109e1926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561141957600080fd5b505afa15801561142d573d6000803e3d6000fd5b505050506040513d602081101561144357600080fd5b5051610e43565b600c5481565b600c54156109e157600c546000190160005b6000828152600b60205260409020600101544211156106eb576005546000838152600b602052604081206001015490919061149e904290611717565b11156114ec576000838152600b6020526040902060028101546005546001909201546114ce92610b6f9190611762565b6000848152600b60205260409020600019600190910155905061150c565b6000838152600b6020526040902060020154611509904290611717565b90505b6000838152600b6020526040812042600282015560055490546115349190610bbe90856117bc565b905060008093505b600a548410156116105761158c600754610bbe60086000600a898154811061156057fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205485906117bc565b90506115ce8160096000600a88815481106115a357fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205490611762565b60096000600a87815481106115df57fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020556001939093019261153c565b8461161d575050506106eb565b50506000199092019150611462565b60075481565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156116b85780601f1061168d576101008083540402835291602001916116b8565b820191906000526020600020905b81548152906001019060200180831161169b57829003601f168201915b505050505081565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526117129084906118b7565b505050565b600061175983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a6f565b90505b92915050565b600082820183811015611759576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000826117cb5750600061175c565b828202828482816117d857fe5b04146117595760405162461bcd60e51b8152600401808060200182810382526021815260200180611c3b6021913960400191505060405180910390fd5b600061175983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b06565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526118b19085906118b7565b50505050565b6118c9826001600160a01b0316611b6b565b61191a576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106119585780518252601f199092019160209182019101611939565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146119ba576040519150601f19603f3d011682016040523d82523d6000602084013e6119bf565b606091505b509150915081611a16576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b8051156118b157808060200190516020811015611a3257600080fd5b50516118b15760405162461bcd60e51b815260040180806020018281038252602a815260200180611c5c602a913960400191505060405180910390fd5b60008184841115611afe5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611ac3578181015183820152602001611aab565b50505050905090810190601f168015611af05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183611b555760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611ac3578181015183820152602001611aab565b506000838581611b6157fe5b0495945050505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708115801590611b9f5750808214155b949350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611be857805160ff1916838001178555611c15565b82800160010185558215611c15579182015b82811115611c15578251825591602001919060010190611bfa565b50611c21929150611c25565b5090565b5b80821115611c215760008155600101611c2656fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a2646970667358221220be7118cd2cafe9596cbe5f978fb01c5c5e88846602753f41194e6be36c6e544d64736f6c6343000700003300000000000000000000000068a118ef45063051eac49c7e647ce5ace48a68a5000000000000000000000000d7b7d3c0bda57723fb54ab95fd8f9ea033af37f2000000000000000000000000d319d5a9d039f06858263e95235575bb0bd630bc00000000000000000000000046e98bbc449bdd840faa27c598c4faefcccf0bef00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000f424153454450594c4f4e5661756c740000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106102115760003560e01c8063a7df8c5711610125578063c78b6dea116100ad578063de5f62681161007c578063de5f6268146105da578063e2aa2a85146105e2578063e835dfbd146105ea578063f6153ccd146105f2578063fab980b7146105fa57610211565b8063c78b6dea14610573578063cbeb7ef214610590578063d21220a7146105af578063d86e1ef7146105b757610211565b8063b6b55f25116100f4578063b6b55f25146104df578063b79ea884146104fc578063b8f7928814610522578063c45c4f5814610545578063c6e426bd1461054d57610211565b8063a7df8c5714610477578063ab033ea914610494578063ae169a50146104ba578063b5984a36146104d757610211565b806344264d3d116101a857806385535cc51161017757806385535cc5146103a45780638705fcd4146103ca5780638d96bdbe146103f05780638f1e94051461041657806393c8dc6d1461045157610211565b806344264d3d146103575780635018830114610378578063637830ca14610394578063853828b61461039c57610211565b80631eb903cf116101e45780631eb903cf146103045780632e1a7d4d1461032a5780634127535814610347578063430bf08a1461034f57610211565b80630dfe16811461021657806311cc66b21461023a57806312d43a51146102e25780631c69ad00146102ea575b600080fd5b61021e610677565b604080516001600160a01b039092168252519081900360200190f35b6102e06004803603602081101561025057600080fd5b81019060208101813564010000000081111561026b57600080fd5b82018360208201111561027d57600080fd5b8035906020019184600183028401116401000000008311171561029f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610686945050505050565b005b61021e6106ef565b6102f2610703565b60408051918252519081900360200190f35b6102f26004803603602081101561031a57600080fd5b50356001600160a01b031661077f565b6102e06004803603602081101561034057600080fd5b5035610791565b61021e61099c565b61021e6109ab565b61035f6109ba565b6040805163ffffffff9092168252519081900360200190f35b6103806109cd565b604080519115158252519081900360200190f35b6102e06109d6565b6102e06109e3565b6102e0600480360360208110156103ba57600080fd5b50356001600160a01b03166109ee565b6102e0600480360360208110156103e057600080fd5b50356001600160a01b0316610a62565b6102f26004803603602081101561040657600080fd5b50356001600160a01b0316610ad6565b6104336004803603602081101561042c57600080fd5b5035610c25565b60408051938452602084019290925282820152519081900360600190f35b6102f26004803603602081101561046757600080fd5b50356001600160a01b0316610c46565b61021e6004803603602081101561048d57600080fd5b5035610c58565b6102e0600480360360208110156104aa57600080fd5b50356001600160a01b0316610c7f565b6102e0600480360360208110156104d057600080fd5b5035610cf9565b6102f2610e3d565b6102e0600480360360208110156104f557600080fd5b5035610e43565b6102e06004803603602081101561051257600080fd5b50356001600160a01b0316611020565b6102e06004803603602081101561053857600080fd5b503563ffffffff16611094565b6102f261110c565b6102e06004803603602081101561056357600080fd5b50356001600160a01b0316611157565b6102e06004803603602081101561058957600080fd5b50356111cb565b6102e0600480360360208110156105a657600080fd5b503515156112fc565b61021e611361565b6102e0600480360360208110156105cd57600080fd5b503563ffffffff16611370565b6102e06113cd565b6102f261144a565b6102e0611450565b6102f261162c565b610602611632565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561063c578181015183820152602001610624565b50505050905090810190601f1680156106695780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6001546001600160a01b031681565b60065461010090046001600160a01b031633146106d8576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b80516106eb906000906020840190611ba7565b5050565b60065461010090046001600160a01b031681565b600154604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561074e57600080fd5b505afa158015610762573d6000803e3d6000fd5b505050506040513d602081101561077857600080fd5b5051905090565b60086020526000908152604090205481565b600154604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b1580156107dc57600080fd5b505afa1580156107f0573d6000803e3d6000fd5b505050506040513d602081101561080657600080fd5b50511161084f576040805162461bcd60e51b81526020600482015260126024820152711b9bc81dda5d1a191c985dc8185b5bdd5b9d60721b604482015290519081900360640190fd5b60065460ff16610899576040805162461bcd60e51b815260206004820152601060248201526f6e6f7420776974686472617761626c6560801b604482015290519081900360640190fd5b6108a1611450565b336000908152600860205260409020548111156108ca5750336000908152600860205260409020545b60008111610912576040805162461bcd60e51b815260206004820152601060248201526f063616e277420776974686472617720360841b604482015290519081900360640190fd5b600154610929906001600160a01b031633836116c0565b336000908152600860205260409020546109439082611717565b336000908152600860205260409020556007546109609082611717565b60075560408051828152905133917f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5919081900360200190a250565b6003546001600160a01b031681565b6004546001600160a01b031681565b600454600160a01b900463ffffffff1681565b60065460ff1681565b6109e1600019610cf9565b565b6109e1600019610791565b60065461010090046001600160a01b03163314610a40576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b60065461010090046001600160a01b03163314610ab4576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038116600090815260096020526040812054600c5482919015610c1e576001600c540391505b6000828152600b6020526040902060010154421115610c1e576005546000838152600b6020526040812060010154909190610b3f904290611717565b1115610b7c576000838152600b602052604090206002810154600554600190920154610b7592610b6f9190611762565b90611717565b9050610b9c565b6000838152600b6020526040902060020154610b99904290611717565b90505b6005546000848152600b60205260408120549091610bc491610bbe90856117bc565b90611815565b6007546001600160a01b03881660009081526008602052604081205492935091610bf49190610bbe9085906117bc565b9050610c008482611762565b935084610c0f57505050610c1e565b50506000199092019150610b03565b9392505050565b600b6020526000908152604090208054600182015460029092015490919083565b60096020526000908152604090205481565b600a8181548110610c6557fe5b6000918252602090912001546001600160a01b0316905081565b60065461010090046001600160a01b03163314610cd1576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b600680546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000600c5411610d43576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81c995dd85c9908185b5bdd5b9d60821b604482015290519081900360640190fd5b610d4b611450565b33600090815260096020526040902054811115610d745750336000908152600960205260409020545b60008111610dc0576040805162461bcd60e51b8152602060048201526014602482015273063616e277420636c61696d2072657761726420360641b604482015290519081900360640190fd5b600254610dd7906001600160a01b031633836116c0565b33600090815260096020526040902054610df19082611717565b33600081815260096020908152604091829020939093558051848152905191927fd0813ff03c470dcc7baa9ce36914dc2febdfd276d639deffaac383fd3db42ba392918290030190a250565b60055481565b60008111610e8a576040805162461bcd60e51b815260206004820152600f60248201526e063616e2774206465706f736974203608c1b604482015290519081900360640190fd5b610e92611450565b600a546000805b82811015610ee457336001600160a01b0316600a8281548110610eb857fe5b6000918252602090912001546001600160a01b03161415610edc5760019150610ee4565b600101610e99565b5080610f2d57600a80546001810182556000919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b031916331790555b600454600090610f57906103e890610bbe90879063ffffffff600160a01b9091048116906117bc16565b90506000610f658583611717565b600354600154919250610f87916001600160a01b039081169133911685611857565b600454600154610fa6916001600160a01b039182169133911684611857565b600754610fb39082611762565b60075533600090815260086020526040902054610fd09082611762565b33600081815260086020908152604091829020939093558051848152905191927f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c492918290030190a25050505050565b60065461010090046001600160a01b03163314611072576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60065461010090046001600160a01b031633146110e6576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b6004805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b600254604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561074e57600080fd5b60065461010090046001600160a01b031633146111a9576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60008111611211576040805162461bcd60e51b815260206004820152600e60248201526d063616e27742072657761726420360941b604482015290519081900360640190fd5b600060075411611268576040805162461bcd60e51b815260206004820152601f60248201527f746f74616c4465706f736974206d75737420626967676572207468616e203000604482015290519081900360640190fd5b600254611280906001600160a01b0316333084611857565b611288611450565b600c80546000908152600b60209081526040808320859055835483528083204260019182018190558554855293829020600201939093558354909201909255805183815290517feae918ad14bd0bcaa9f9d22da2b810c02f44331bf6004a76f049a3360891f916929181900390910190a150565b60065461010090046001600160a01b0316331461134e576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b6006805460ff1916911515919091179055565b6002546001600160a01b031681565b60065461010090046001600160a01b031633146113c2576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b63ffffffff16600555565b600154604080516370a0823160e01b815233600482015290516109e1926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561141957600080fd5b505afa15801561142d573d6000803e3d6000fd5b505050506040513d602081101561144357600080fd5b5051610e43565b600c5481565b600c54156109e157600c546000190160005b6000828152600b60205260409020600101544211156106eb576005546000838152600b602052604081206001015490919061149e904290611717565b11156114ec576000838152600b6020526040902060028101546005546001909201546114ce92610b6f9190611762565b6000848152600b60205260409020600019600190910155905061150c565b6000838152600b6020526040902060020154611509904290611717565b90505b6000838152600b6020526040812042600282015560055490546115349190610bbe90856117bc565b905060008093505b600a548410156116105761158c600754610bbe60086000600a898154811061156057fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205485906117bc565b90506115ce8160096000600a88815481106115a357fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205490611762565b60096000600a87815481106115df57fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020556001939093019261153c565b8461161d575050506106eb565b50506000199092019150611462565b60075481565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156116b85780601f1061168d576101008083540402835291602001916116b8565b820191906000526020600020905b81548152906001019060200180831161169b57829003601f168201915b505050505081565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526117129084906118b7565b505050565b600061175983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a6f565b90505b92915050565b600082820183811015611759576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000826117cb5750600061175c565b828202828482816117d857fe5b04146117595760405162461bcd60e51b8152600401808060200182810382526021815260200180611c3b6021913960400191505060405180910390fd5b600061175983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b06565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526118b19085906118b7565b50505050565b6118c9826001600160a01b0316611b6b565b61191a576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106119585780518252601f199092019160209182019101611939565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146119ba576040519150601f19603f3d011682016040523d82523d6000602084013e6119bf565b606091505b509150915081611a16576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b8051156118b157808060200190516020811015611a3257600080fd5b50516118b15760405162461bcd60e51b815260040180806020018281038252602a815260200180611c5c602a913960400191505060405180910390fd5b60008184841115611afe5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611ac3578181015183820152602001611aab565b50505050905090810190601f168015611af05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183611b555760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611ac3578181015183820152602001611aab565b506000838581611b6157fe5b0495945050505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708115801590611b9f5750808214155b949350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611be857805160ff1916838001178555611c15565b82800160010185558215611c15579182015b82811115611c15578251825591602001919060010190611bfa565b50611c21929150611c25565b5090565b5b80821115611c215760008155600101611c2656fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a2646970667358221220be7118cd2cafe9596cbe5f978fb01c5c5e88846602753f41194e6be36c6e544d64736f6c63430007000033

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

00000000000000000000000068a118ef45063051eac49c7e647ce5ace48a68a5000000000000000000000000d7b7d3c0bda57723fb54ab95fd8f9ea033af37f2000000000000000000000000d319d5a9d039f06858263e95235575bb0bd630bc00000000000000000000000046e98bbc449bdd840faa27c598c4faefcccf0bef00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000f424153454450594c4f4e5661756c740000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _token0 (address): 0x68A118Ef45063051Eac49c7e647CE5Ace48a68a5
Arg [1] : _token1 (address): 0xD7B7d3C0bdA57723Fb54ab95Fd8F9EA033AF37f2
Arg [2] : _feeAddress (address): 0xD319d5a9D039f06858263E95235575Bb0Bd630BC
Arg [3] : _vaultAddress (address): 0x46E98bBc449Bdd840faA27C598c4faEfCCCF0bef
Arg [4] : name (string): BASEDPYLONVault

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 00000000000000000000000068a118ef45063051eac49c7e647ce5ace48a68a5
Arg [1] : 000000000000000000000000d7b7d3c0bda57723fb54ab95fd8f9ea033af37f2
Arg [2] : 000000000000000000000000d319d5a9d039f06858263e95235575bb0bd630bc
Arg [3] : 00000000000000000000000046e98bbc449bdd840faa27c598c4faefcccf0bef
Arg [4] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [5] : 000000000000000000000000000000000000000000000000000000000000000f
Arg [6] : 424153454450594c4f4e5661756c740000000000000000000000000000000000


Deployed Bytecode Sourcemap

5251:8206:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5529:20;;;:::i;:::-;;;;-1:-1:-1;;;;;5529:20:0;;;;;;;;;;;;;;7780:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7780:118:0;;-1:-1:-1;7780:118:0;;-1:-1:-1;;;;;7780:118:0:i;:::-;;5765:18;;;:::i;7906:139::-;;;:::i;:::-;;;;;;;;;;;;;;;;5824:50;;;;;;;;;;;;;;;;-1:-1:-1;5824:50:0;-1:-1:-1;;;;;5824:50:0;;:::i;11771:625::-;;;;;;;;;;;;;;;;-1:-1:-1;11771:625:0;;:::i;5583:25::-;;;:::i;5615:27::-;;;:::i;5649:28::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5728:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;11049:92;;;:::i;11677:86::-;;;:::i;7217:135::-;;;;;;;;;;;;;;;;-1:-1:-1;7217:135:0;-1:-1:-1;;;;;7217:135:0;;:::i;7082:127::-;;;;;;;;;;;;;;;;-1:-1:-1;7082:127:0;-1:-1:-1;;;;;7082:127:0;;:::i;12404:1050::-;;;;;;;;;;;;;;;;-1:-1:-1;12404:1050:0;-1:-1:-1;;;;;12404:1050:0;;:::i;5977:48::-;;;;;;;;;;;;;;;;-1:-1:-1;5977:48:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;5881:49;;;;;;;;;;;;;;;;-1:-1:-1;5881:49:0;-1:-1:-1;;;;;5881:49:0;;:::i;5937:31::-;;;;;;;;;;;;;;;;-1:-1:-1;5937:31:0;;:::i;6718:106::-;;;;;;;;;;;;;;;;-1:-1:-1;6718:106:0;-1:-1:-1;;;;;6718:106:0;;:::i;11153:516::-;;;;;;;;;;;;;;;;-1:-1:-1;11153:516:0;;:::i;5684:37::-;;;:::i;9526:980::-;;;;;;;;;;;;;;;;-1:-1:-1;9526:980:0;;:::i;6957:117::-;;;;;;;;;;;;;;;;-1:-1:-1;6957:117:0;-1:-1:-1;;;;;6957:117:0;;:::i;7360:126::-;;;;;;;;;;;;;;;;-1:-1:-1;7360:126:0;;;;:::i;8053:139::-;;;:::i;6832:117::-;;;;;;;;;;;;;;;;-1:-1:-1;6832:117:0;-1:-1:-1;;;;;6832:117:0;;:::i;10518:519::-;;;;;;;;;;;;;;;;-1:-1:-1;10518:519:0;;:::i;7640:132::-;;;;;;;;;;;;;;;;-1:-1:-1;7640:132:0;;;;:::i;5556:20::-;;;:::i;7494:138::-;;;;;;;;;;;;;;;;-1:-1:-1;7494:138:0;;;;:::i;9413:101::-;;;:::i;6032:27::-;;;:::i;8200:1205::-;;;:::i;5790:27::-;;;:::i;5498:24::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5529:20;;;-1:-1:-1;;;;;5529:20:0;;:::o;7780:118::-;6671:3;;;;;-1:-1:-1;;;;;6671:3:0;6657:10;:17;6649:41;;;;;-1:-1:-1;;;6649:41:0;;;;;;;;;;;;-1:-1:-1;;;6649:41:0;;;;;;;;;;;;;;;7873:17;;::::1;::::0;:10:::1;::::0;:17:::1;::::0;::::1;::::0;::::1;:::i;:::-;;7780:118:::0;:::o;5765:18::-;;;;;;-1:-1:-1;;;;;5765:18:0;;:::o;7906:139::-;8006:6;;:31;;;-1:-1:-1;;;8006:31:0;;8031:4;8006:31;;;;;;7974:7;;-1:-1:-1;;;;;8006:6:0;;:16;;:31;;;;;;;;;;;;;;:6;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8006:31:0;;-1:-1:-1;7906:139:0;:::o;5824:50::-;;;;;;;;;;;;;:::o;11771:625::-;11846:6;;:31;;;-1:-1:-1;;;11846:31:0;;11871:4;11846:31;;;;;;11880:1;;-1:-1:-1;;;;;11846:6:0;;:16;;:31;;;;;;;;;;;;;;:6;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11846:31:0;:35;11838:66;;;;;-1:-1:-1;;;11838:66:0;;;;;;;;;;;;-1:-1:-1;;;11838:66:0;;;;;;;;;;;;;;;11923:12;;;;11915:41;;;;;-1:-1:-1;;;11915:41:0;;;;;;;;;;;;-1:-1:-1;;;11915:41:0;;;;;;;;;;;;;;;11967:14;:12;:14::i;:::-;12024:10;12008:27;;;;:15;:27;;;;;;11998:37;;11994:107;;;-1:-1:-1;12078:10:0;12062:27;;;;:15;:27;;;;;;11994:107;12131:1;12121:7;:11;12113:40;;;;;-1:-1:-1;;;12113:40:0;;;;;;;;;;;;-1:-1:-1;;;12113:40:0;;;;;;;;;;;;;;;12166:6;;:40;;-1:-1:-1;;;;;12166:6:0;12186:10;12198:7;12166:19;:40::i;:::-;12265:10;12249:27;;;;:15;:27;;;;;;:40;;12281:7;12249:31;:40::i;:::-;12235:10;12219:27;;;;:15;:27;;;;;:70;12315:12;;:25;;12332:7;12315:16;:25::i;:::-;12300:12;:40;12358:30;;;;;;;;12368:10;;12358:30;;;;;;;;;;11771:625;:::o;5583:25::-;;;-1:-1:-1;;;;;5583:25:0;;:::o;5615:27::-;;;-1:-1:-1;;;;;5615:27:0;;:::o;5649:28::-;;;-1:-1:-1;;;5649:28:0;;;;;:::o;5728:24::-;;;;;;:::o;11049:92::-;11109:24;-1:-1:-1;;11109:11:0;:24::i;:::-;11049:92::o;11677:86::-;11734:21;-1:-1:-1;;11734:8:0;:21::i;7217:135::-;6671:3;;;;;-1:-1:-1;;;;;6671:3:0;6657:10;:17;6649:41;;;;;-1:-1:-1;;;6649:41:0;;;;;;;;;;;;-1:-1:-1;;;6649:41:0;;;;;;;;;;;;;;;7316:12:::1;:28:::0;;-1:-1:-1;;;;;;7316:28:0::1;-1:-1:-1::0;;;;;7316:28:0;;;::::1;::::0;;;::::1;::::0;;7217:135::o;7082:127::-;6671:3;;;;;-1:-1:-1;;;;;6671:3:0;6657:10;:17;6649:41;;;;;-1:-1:-1;;;6649:41:0;;;;;;;;;;;;-1:-1:-1;;;6649:41:0;;;;;;;;;;;;;;;7177:10:::1;:24:::0;;-1:-1:-1;;;;;;7177:24:0::1;-1:-1:-1::0;;;;;7177:24:0;;;::::1;::::0;;;::::1;::::0;;7082:127::o;12404:1050::-;-1:-1:-1;;;;;12568:21:0;;12497:7;12568:21;;;:14;:21;;;;;;12604:12;;12497:7;;12568:21;12604:16;12600:814;;12661:1;12646:12;;:16;12642:20;;12637:766;12664:11;;;;:8;:11;;;;;:21;;;12688:15;-1:-1:-1;12637:766:0;;;12813:13;;12729:16;12788:11;;;:8;:11;;;;;:21;;;12729:16;;12813:13;12768:42;;:15;;:19;:42::i;:::-;:58;12764:287;;;12907:11;;;;:8;:11;;;;;:21;;;;12888:13;;12862:21;;;;;:67;;:40;;:21;:25;:40::i;:::-;:44;;:67::i;:::-;12851:78;;12764:287;;;13009:11;;;;:8;:11;;;;;:21;;;12989:42;;:15;;:19;:42::i;:::-;12978:53;;12764:287;13128:13;;13069:19;13091:11;;;:8;:11;;;;;:18;13069:19;;13091:51;;:32;;13114:8;13091:22;:32::i;:::-;:36;;:51::i;:::-;13225:12;;-1:-1:-1;;;;;13197:22:0;;13161:17;13197:22;;;:15;:22;;;;;;13069:73;;-1:-1:-1;13161:17:0;13181:57;;13225:12;13181:39;;13069:73;;13181:15;:39::i;:57::-;13161:77;-1:-1:-1;13279:30:0;:15;13161:77;13279:19;:30::i;:::-;13261:48;-1:-1:-1;13332:6:0;13328:60;;13363:5;;;;;13328:60;-1:-1:-1;;;;12705:3:0;;;;-1:-1:-1;12637:766:0;;;13431:15;12404:1050;-1:-1:-1;;;12404:1050:0:o;5977:48::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5881:49::-;;;;;;;;;;;;;:::o;5937:31::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5937:31:0;;-1:-1:-1;5937:31:0;:::o;6718:106::-;6671:3;;;;;-1:-1:-1;;;;;6671:3:0;6657:10;:17;6649:41;;;;;-1:-1:-1;;;6649:41:0;;;;;;;;;;;;-1:-1:-1;;;6649:41:0;;;;;;;;;;;;;;;6806:3:::1;:10:::0;;-1:-1:-1;;;;;6806:10:0;;::::1;;;-1:-1:-1::0;;;;;;6806:10:0;;::::1;::::0;;;::::1;::::0;;6718:106::o;11153:516::-;11246:1;11231:12;;:16;11223:45;;;;;-1:-1:-1;;;11223:45:0;;;;;;;;;;;;-1:-1:-1;;;11223:45:0;;;;;;;;;;;;;;;11281:14;:12;:14::i;:::-;11337:10;11322:26;;;;:14;:26;;;;;;11312:36;;11308:105;;;-1:-1:-1;11390:10:0;11375:26;;;;:14;:26;;;;;;11308:105;11443:1;11433:7;:11;11425:44;;;;;-1:-1:-1;;;11425:44:0;;;;;;;;;;;;-1:-1:-1;;;11425:44:0;;;;;;;;;;;;;;;11482:6;;:40;;-1:-1:-1;;;;;11482:6:0;11502:10;11514:7;11482:19;:40::i;:::-;11587:10;11572:26;;;;:14;:26;;;;;;:39;;11603:7;11572:30;:39::i;:::-;11558:10;11543:26;;;;:14;:26;;;;;;;;;:68;;;;11627:34;;;;;;;11558:10;;11627:34;;;;;;;;;11153:516;:::o;5684:37::-;;;;:::o;9526:980::-;9610:1;9600:7;:11;9592:39;;;;;-1:-1:-1;;;9592:39:0;;;;;;;;;;;;-1:-1:-1;;;9592:39:0;;;;;;;;;;;;;;;9644:14;:12;:14::i;:::-;9693;:21;9671:19;;9754:171;9778:11;9774:1;:15;9754:171;;;9834:10;-1:-1:-1;;;;;9815:29:0;:14;9830:1;9815:17;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9815:17:0;:29;9811:103;;;9870:4;9864:10;;9893:5;;9811:103;9791:3;;9754:171;;;;9949:5;9945:68;;9970:14;:31;;;;;;;-1:-1:-1;9970:31:0;;;;;;;;-1:-1:-1;;;;;;9970:31:0;9990:10;9970:31;;;9945:68;10065:10;;10033:17;;10053:33;;10081:4;;10053:23;;:7;;10065:10;-1:-1:-1;;;10065:10:0;;;;;;10053:11;:23;:::i;:33::-;10033:53;-1:-1:-1;10097:18:0;10118:22;:7;10033:53;10118:11;:22::i;:::-;10207:10;;;10171:6;10097:43;;-1:-1:-1;10171:58:0;;-1:-1:-1;;;;;10171:6:0;;;;10195:10;;10207;10219:9;10171:23;:58::i;:::-;10276:12;;;10240:6;:61;;-1:-1:-1;;;;;10240:6:0;;;;10264:10;;10276:12;10290:10;10240:23;:61::i;:::-;10337:12;;:28;;10354:10;10337:16;:28::i;:::-;10322:12;:43;10422:10;10406:27;;;;:15;:27;;;;;;:43;;10438:10;10406:31;:43::i;:::-;10392:10;10376:27;;;;:15;:27;;;;;;;;;:73;;;;10465:33;;;;;;;10392:10;;10465:33;;;;;;;;;9526:980;;;;;:::o;6957:117::-;6671:3;;;;;-1:-1:-1;;;;;6671:3:0;6657:10;:17;6649:41;;;;;-1:-1:-1;;;6649:41:0;;;;;;;;;;;;-1:-1:-1;;;6649:41:0;;;;;;;;;;;;;;;7043:6:::1;:23:::0;;-1:-1:-1;;;;;;7043:23:0::1;-1:-1:-1::0;;;;;7043:23:0;;;::::1;::::0;;;::::1;::::0;;6957:117::o;7360:126::-;6671:3;;;;;-1:-1:-1;;;;;6671:3:0;6657:10;:17;6649:41;;;;;-1:-1:-1;;;6649:41:0;;;;;;;;;;;;-1:-1:-1;;;6649:41:0;;;;;;;;;;;;;;;7454:10:::1;:24:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;;7454:24:0::1;-1:-1:-1::0;;;;7454:24:0;;::::1;::::0;;;::::1;::::0;;7360:126::o;8053:139::-;8153:6;;:31;;;-1:-1:-1;;;8153:31:0;;8178:4;8153:31;;;;;;8121:7;;-1:-1:-1;;;;;8153:6:0;;:16;;:31;;;;;;;;;;;;;;:6;:31;;;;;;;;;;6832:117;6671:3;;;;;-1:-1:-1;;;;;6671:3:0;6657:10;:17;6649:41;;;;;-1:-1:-1;;;6649:41:0;;;;;;;;;;;;-1:-1:-1;;;6649:41:0;;;;;;;;;;;;;;;6918:6:::1;:23:::0;;-1:-1:-1;;;;;;6918:23:0::1;-1:-1:-1::0;;;;;6918:23:0;;;::::1;::::0;;;::::1;::::0;;6832:117::o;10518:519::-;10607:1;10597:7;:11;10589:38;;;;;-1:-1:-1;;;10589:38:0;;;;;;;;;;;;-1:-1:-1;;;10589:38:0;;;;;;;;;;;;;;;10661:1;10646:12;;:16;10638:60;;;;;-1:-1:-1;;;10638:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;10709:6;;:59;;-1:-1:-1;;;;;10709:6:0;10733:10;10753:4;10760:7;10709:23;:59::i;:::-;10781:14;:12;:14::i;:::-;10817:12;;;10808:22;;;;:8;:22;;;;;;;;:39;;;10867:12;;10858:22;;;;;10893:15;10858:32;;;;:50;;;10928:12;;10919:22;;;;;;:32;;:50;;;;10980:14;;;;;;;;11010:19;;;;;;;;;;;;;;;;;;10518:519;:::o;7640:132::-;6671:3;;;;;-1:-1:-1;;;;;6671:3:0;6657:10;:17;6649:41;;;;;-1:-1:-1;;;6649:41:0;;;;;;;;;;;;-1:-1:-1;;;6649:41:0;;;;;;;;;;;;;;;7736:12:::1;:28:::0;;-1:-1:-1;;7736:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7640:132::o;5556:20::-;;;-1:-1:-1;;;;;5556:20:0;;:::o;7494:138::-;6671:3;;;;;-1:-1:-1;;;;;6671:3:0;6657:10;:17;6649:41;;;;;-1:-1:-1;;;6649:41:0;;;;;;;;;;;;-1:-1:-1;;;6649:41:0;;;;;;;;;;;;;;;7594:30:::1;;:13;:30:::0;7494:138::o;9413:101::-;9477:6;;:28;;;-1:-1:-1;;;9477:28:0;;9494:10;9477:28;;;;;;9469:37;;-1:-1:-1;;;;;9477:6:0;;:16;;:28;;;;;;;;;;;;;;:6;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9477:28:0;9469:7;:37::i;6032:27::-;;;;:::o;8200:1205::-;8260:12;;:16;8256:1142;;8352:12;;-1:-1:-1;;8352:16:0;8293:9;8343:1044;8370:11;;;;:8;:11;;;;;:21;;;8394:15;-1:-1:-1;8343:1044:0;;;8519:13;;8435:16;8494:11;;;:8;:11;;;;;:21;;;8435:16;;8519:13;8474:42;;:15;;:19;:42::i;:::-;:58;8470:345;;;8613:11;;;;:8;:11;;;;;:21;;;;8594:13;;8568:21;;;;;:67;;:40;;:21;:25;:40::i;:67::-;8658:11;;;;:8;:11;;;;;-1:-1:-1;;8658:21:0;;;;:35;8557:78;-1:-1:-1;8470:345:0;;;8773:11;;;;:8;:11;;;;;:21;;;8753:42;;:15;;:19;:42::i;:::-;8742:53;;8470:345;8833:11;;;;:8;:11;;;;;8857:15;8833:21;;;:39;8950:13;;8913:18;;:51;;8950:13;8913:32;;8936:8;8913:22;:32::i;:51::-;8891:73;;8983:17;9028:1;9024:5;;9019:275;9035:14;:21;9031:25;;9019:275;;;9098:69;9154:12;;9098:51;9114:15;:34;9130:14;9145:1;9130:17;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9130:17:0;9114:34;;;;;;;;;;;;;9098:11;;:15;:51::i;:69::-;9086:81;;9226:48;9264:9;9226:14;:33;9241:14;9256:1;9241:17;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9241:17:0;9226:33;;;;;;;;;;;;;;:37;:48::i;:::-;9190:14;:33;9205:14;9220:1;9205:17;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9205:17:0;9190:33;;;;;;;;;;;;:84;9205:17;9058:3;;;;;9019:275;;;9316:6;9312:60;;9347:5;;;;;9312:60;-1:-1:-1;;;;8411:3:0;;;;-1:-1:-1;8343:1044:0;;5790:27;;;;:::o;5498:24::-;;;;;;;;;;;;;;;-1:-1:-1;;5498:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3266:176::-;3375:58;;;-1:-1:-1;;;;;3375:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3375:58:0;-1:-1:-1;;;3375:58:0;;;3349:85;;3368:5;;3349:18;:85::i;:::-;3266:176;;;:::o;949:136::-;1007:7;1034:43;1038:1;1041;1034:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1027:50;;949:136;;;;;:::o;762:181::-;820:7;852:5;;;876:6;;;;868:46;;;;;-1:-1:-1;;;868:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;1289:250;1347:7;1371:6;1367:47;;-1:-1:-1;1401:1:0;1394:8;;1367:47;1438:5;;;1442:1;1438;:5;:1;1462:5;;;;;:10;1454:56;;;;-1:-1:-1;;;1454:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1545:132;1603:7;1630:39;1634:1;1637;1630:39;;;;;;;;;;;;;;;;;:3;:39::i;3450:204::-;3577:68;;;-1:-1:-1;;;;;3577:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3577:68:0;-1:-1:-1;;;3577:68:0;;;3551:95;;3570:5;;3551:18;:95::i;:::-;3450:204;;;;:::o;4646:598::-;4734:27;4742:5;-1:-1:-1;;;;;4734:25:0;;:27::i;:::-;4726:71;;;;;-1:-1:-1;;;4726:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4871:12;4885:23;4920:5;-1:-1:-1;;;;;4912:19:0;4932:4;4912:25;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4912:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4870:67;;;;4956:7;4948:52;;;;;-1:-1:-1;;;4948:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5017:17;;:21;5013:224;;5159:10;5148:30;;;;;;;;;;;;;;;-1:-1:-1;5148:30:0;5140:85;;;;-1:-1:-1;;;5140:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1091:192;1177:7;1213:12;1205:6;;;;1197:29;;;;-1:-1:-1;;;1197:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1249:5:0;;;1091:192::o;1683:258::-;1769:7;1871:12;1864:5;1856:28;;;;-1:-1:-1;;;1856:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1895:9;1911:1;1907;:5;;;;;;;1683:258;-1:-1:-1;;;;;1683:258:0:o;2279:374::-;2339:4;2562:20;;2405:66;2602:15;;;;;:42;;;2633:11;2621:8;:23;;2602:42;2594:51;2279:374;-1:-1:-1;;;;2279:374:0:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;

Swarm Source

ipfs://be7118cd2cafe9596cbe5f978fb01c5c5e88846602753f41194e6be36c6e544d

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.