ETH Price: $3,264.33 (+3.91%)
Gas: 6 Gwei

Contract

0x165440036Ce972C5F8EBef667086707e48B2623e
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve198786242024-05-15 23:19:5971 days ago1715815199IN
0x16544003...e48B2623e
0 ETH0.000165223.58760397
Approve198662572024-05-14 5:46:4773 days ago1715665607IN
0x16544003...e48B2623e
0 ETH0.000249085.40832771
Approve198385442024-05-10 8:48:4777 days ago1715330927IN
0x16544003...e48B2623e
0 ETH0.000169063.6661259
Approve198380002024-05-10 6:59:3577 days ago1715324375IN
0x16544003...e48B2623e
0 ETH0.000211014.57574158
Approve197770942024-05-01 18:32:3585 days ago1714588355IN
0x16544003...e48B2623e
0 ETH0.000429899.33680276
Approve197294182024-04-25 2:31:4792 days ago1714012307IN
0x16544003...e48B2623e
0 ETH0.000377168.1301312
Transfer197234342024-04-24 6:24:3593 days ago1713939875IN
0x16544003...e48B2623e
0 ETH0.000511219.49239339
Approve196297642024-04-11 3:40:11106 days ago1712806811IN
0x16544003...e48B2623e
0 ETH0.0004098117
Approve188856142023-12-28 17:33:11210 days ago1703784791IN
0x16544003...e48B2623e
0 ETH0.0008212734.06806818
Approve187986942023-12-16 12:41:59223 days ago1702730519IN
0x16544003...e48B2623e
0 ETH0.0019032978.95177668
Approve186378962023-11-24 0:07:11245 days ago1700784431IN
0x16544003...e48B2623e
0 ETH0.0008945319.3075004
Approve170718142023-04-18 6:31:35465 days ago1681799495IN
0x16544003...e48B2623e
0 ETH0.0008269134.30193651
Approve170247032023-04-11 11:57:23472 days ago1681214243IN
0x16544003...e48B2623e
0 ETH0.0005142121.33071308
Approve168321392023-03-15 8:33:11499 days ago1678869191IN
0x16544003...e48B2623e
0 ETH0.0004518518.74365813
Approve167750632023-03-07 7:53:11507 days ago1678175591IN
0x16544003...e48B2623e
0 ETH0.0011188924.15
Transfer167750242023-03-07 7:44:59507 days ago1678175099IN
0x16544003...e48B2623e
0 ETH0.00094619.29399354
Approve156270052022-09-27 20:15:11667 days ago1664309711IN
0x16544003...e48B2623e
0 ETH0.0003817515.83599181
Approve155653052022-09-19 4:52:47676 days ago1663563167IN
0x16544003...e48B2623e
0 ETH0.000105614.38128942
Approve152125702022-07-25 15:44:33731 days ago1658763873IN
0x16544003...e48B2623e
0 ETH0.0005544422.99952673
Approve151261812022-07-12 6:11:07745 days ago1657606267IN
0x16544003...e48B2623e
0 ETH0.0004679419.4113513
Transfer151143612022-07-10 10:20:09747 days ago1657448409IN
0x16544003...e48B2623e
0 ETH0.000453619.25391141
Approve149082932022-06-05 9:13:28782 days ago1654420408IN
0x16544003...e48B2623e
0 ETH0.0011473924.73306758
Approve142637642022-02-23 17:51:23883 days ago1645638683IN
0x16544003...e48B2623e
0 ETH0.00308569128
Approve142292602022-02-18 9:28:32889 days ago1645176512IN
0x16544003...e48B2623e
0 ETH0.0031098129
Approve139060962021-12-30 10:21:03939 days ago1640859663IN
0x16544003...e48B2623e
0 ETH0.0042871792.4139929
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Graph

Compiler Version
v0.6.0+commit.26b70077

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-08-15
*/

pragma solidity 0.6.0;

/*

                                       https://UniGraph.app

      ___           ___                       ___           ___           ___           ___           ___     
     /\__\         /\__\          ___        /\  \         /\  \         /\  \         /\  \         /\__\    
    /:/  /        /::|  |        /\  \      /::\  \       /::\  \       /::\  \       /::\  \       /:/  /    
   /:/  /        /:|:|  |        \:\  \    /:/\:\  \     /:/\:\  \     /:/\:\  \     /:/\:\  \     /:/__/     
  /:/  /  ___   /:/|:|  |__      /::\__\  /:/  \:\  \   /::\~\:\  \   /::\~\:\  \   /::\~\:\  \   /::\  \ ___ 
 /:/__/  /\__\ /:/ |:| /\__\  __/:/\/__/ /:/__/_\:\__\ /:/\:\ \:\__\ /:/\:\ \:\__\ /:/\:\ \:\__\ /:/\:\  /\__\
 \:\  \ /:/  / \/__|:|/:/  / /\/:/  /    \:\  /\ \/__/ \/_|::\/:/  / \/__\:\/:/  / \/__\:\/:/  / \/__\:\/:/  /
  \:\  /:/  /      |:/:/  /  \::/__/      \:\ \:\__\      |:|::/  /       \::/  /       \::/  /       \::/  / 
   \:\/:/  /       |::/  /    \:\__\       \:\/:/  /      |:|\/__/        /:/  /         \/__/        /:/  /  
    \::/  /        /:/  /      \/__/        \::/  /       |:|  |         /:/  /                      /:/  /   
     \/__/         \/__/                     \/__/         \|__|         \/__/                       \/__/    


*/

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) {
        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;
    }
}

contract Ownable {
    address public _owner;

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

    constructor () public {
        _owner = msg.sender;
        emit OwnershipTransferred(address(0), msg.sender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == msg.sender, "Ownable: caller is not the owner");
        _;
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

// Uniswap v2 interfaces
interface IUniswapV2Pair {
    function sync() external;
}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

contract Graph is Ownable {
    string public name = "UniGraph";
    string public symbol = "GRAPH";
    uint256 public constant decimals = 18;
    
    using SafeMath for uint256;

    event LogRebase(uint256 indexed epoch, uint256 totalSupply);

    modifier validRecipient(address to) {
        require(to != address(0x0));
        require(to != address(this));
        _;
    }
    
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    
    constructor() public override {
        _owner = msg.sender;
        _feeTaker = msg.sender;
        
        _totalSupply = INITIAL_FRAGMENTS_SUPPLY;
        _gonBalances[_owner] = TOTAL_GONS;
        _gonsPerFragment = TOTAL_GONS.div(_totalSupply);
        lastPoolFeeTime = now;
        
        emit Transfer(address(0x0), _owner, _totalSupply);
    }

    function updateBranding(string memory newName, string memory newSymbol) public onlyOwner {
        name = newName;
        symbol = newSymbol;
    }

    uint256 private constant DECIMALS = 18;
    uint256 private constant MAX_UINT256 = ~uint256(0);
    uint256 private constant INITIAL_FRAGMENTS_SUPPLY = 100_000 * 10**DECIMALS;

    uint256 private constant TOTAL_GONS = MAX_UINT256 - (MAX_UINT256 % INITIAL_FRAGMENTS_SUPPLY);

    uint256 private constant MAX_SUPPLY = ~uint128(0);  // (2^128) - 1

    uint256 private _totalSupply;
    uint256 private _gonsPerFragment;
    mapping(address => uint256) private _gonBalances;

    mapping (address => mapping (address => uint256)) private _allowedFragments;
    
    address public _feeTaker;
    event FeeTakerTransferred(address indexed previousFeeTaker, address indexed newFeeTaker);
    function transferFeeTaker(address newFeeTaker) public virtual onlyOwner {
        emit FeeTakerTransferred(_feeTaker, newFeeTaker);
        _feeTaker = newFeeTaker;
    }
    function feeTaker() public view returns (address) {
        return _feeTaker;
    }
    
    uint256 epoch = 0;
    
    function rebasePer(uint256 supplyPercent) external onlyOwner returns (uint256) {
        epoch = epoch.add(1);
        if(supplyPercent <= 50 || supplyPercent >= 100) {
            revert();
        }
        uint256 absSupplyPercent = uint256(supplyPercent);
        _totalSupply = _totalSupply.mul(absSupplyPercent).div(100);
        
        if (_totalSupply > MAX_SUPPLY) {
            _totalSupply = MAX_SUPPLY;
        }

        _gonsPerFragment = TOTAL_GONS.div(_totalSupply);

        emit LogRebase(epoch, _totalSupply);
        return _totalSupply;
    }

    function rebase(int256 supplyDelta) external onlyOwner returns (uint256) {
        epoch = epoch.add(1);
        if (supplyDelta == 0) {
            emit LogRebase(epoch, _totalSupply);
            return _totalSupply;
        }

        uint256 absSupplyDelta = uint256(supplyDelta);
        if(supplyDelta < 0) {
            absSupplyDelta = uint256(-supplyDelta);
        }
        if(supplyDelta < 0) {
            _totalSupply = _totalSupply.sub(absSupplyDelta);
        }
        else {
            _totalSupply = _totalSupply.add(absSupplyDelta);
        }

        
        if (_totalSupply > MAX_SUPPLY) {
            _totalSupply = MAX_SUPPLY;
        }

        _gonsPerFragment = TOTAL_GONS.div(_totalSupply);

        emit LogRebase(epoch, _totalSupply);
        return _totalSupply;
    }

    function totalSupply()
        public
        view
        returns (uint256)
    {
        return _totalSupply;
    }

    function balanceOf(address who)
        public
        view
        returns (uint256)
    {
        return _gonBalances[who].div(_gonsPerFragment);
    }

    function transfer(address to, uint256 value)
        public
        validRecipient(to)
        returns (bool)
    {
        uint256 gonValue = value.mul(_gonsPerFragment);
        _gonBalances[msg.sender] = _gonBalances[msg.sender].sub(gonValue);
        _gonBalances[to] = _gonBalances[to].add(gonValue);
        emit Transfer(msg.sender, to, value);
        return true;
    }

    function allowance(address owner_, address spender)
        public
        view
        returns (uint256)
    {
        return _allowedFragments[owner_][spender];
    }

    function transferFrom(address from, address to, uint256 value)
        public
        validRecipient(to)
        returns (bool)
    {
        _allowedFragments[from][msg.sender] = _allowedFragments[from][msg.sender].sub(value);

        uint256 gonValue = value.mul(_gonsPerFragment);
        _gonBalances[from] = _gonBalances[from].sub(gonValue);
        _gonBalances[to] = _gonBalances[to].add(gonValue);
        emit Transfer(from, to, value);

        return true;
    }

    function approve(address spender, uint256 value)
        public
        returns (bool)
    {
        _allowedFragments[msg.sender][spender] = value;
        emit Approval(msg.sender, spender, value);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue)
        public
        returns (bool)
    {
        _allowedFragments[msg.sender][spender] =
            _allowedFragments[msg.sender][spender].add(addedValue);
        emit Approval(msg.sender, spender, _allowedFragments[msg.sender][spender]);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        returns (bool)
    {
        uint256 oldValue = _allowedFragments[msg.sender][spender];
        if (subtractedValue >= oldValue) {
            _allowedFragments[msg.sender][spender] = 0;
        } else {
            _allowedFragments[msg.sender][spender] = oldValue.sub(subtractedValue);
        }
        emit Approval(msg.sender, spender, _allowedFragments[msg.sender][spender]);
        return true;
    }
    
    // Uniswap Pool Methods
    IUniswapV2Factory public uniswapFactory = IUniswapV2Factory(0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f);
    
    uint256 public POOL_FEE_DAILY_PERCENT = 1;
    
    function setPoolFeePercent(uint256 newPer) public onlyOwner {
        require(newPer >= 0);
        require(newPer < 5);
        POOL_FEE_DAILY_PERCENT = newPer;
    }
    
    function poolFeeAvailable() public view returns (uint256) {
        uint256 timeBetweenLastPoolBurn = now - lastPoolFeeTime;
        uint256 tokensInUniswapPool = balanceOf(uniswapPool);
        uint256 dayInSeconds = 1 days;
        return (tokensInUniswapPool.mul(POOL_FEE_DAILY_PERCENT)
            .mul(timeBetweenLastPoolBurn))
            .div(dayInSeconds)
            .div(100);
    }
    
    function pretty() public view returns (uint256) {
        return _totalSupply.div(1e18);
    }

    address public uniswapPool;
    uint256 public lastPoolFeeTime;
    event PoolFeeDropped(uint256 amount, uint256 poolBalance);
    function processFeePool() external onlyOwner {
        // Reset last fee time
        lastPoolFeeTime = now;

        uint256 feeQty = poolFeeAvailable();

        _totalSupply = _totalSupply.sub(feeQty);
        
        uint256 burnQtyInGons = _gonsPerFragment  * feeQty;
        
        _gonBalances[uniswapPool] = _gonBalances[uniswapPool].sub(burnQtyInGons);
        _gonBalances[_owner] = _gonBalances[_owner].add(burnQtyInGons);

        IUniswapV2Pair(uniswapPool).sync();

        emit PoolFeeDropped(feeQty, balanceOf(uniswapPool));
    }
    
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousFeeTaker","type":"address"},{"indexed":true,"internalType":"address","name":"newFeeTaker","type":"address"}],"name":"FeeTakerTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"epoch","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalSupply","type":"uint256"}],"name":"LogRebase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"poolBalance","type":"uint256"}],"name":"PoolFeeDropped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"POOL_FEE_DAILY_PERCENT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_feeTaker","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeTaker","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastPoolFeeTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poolFeeAvailable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pretty","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"processFeePool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"int256","name":"supplyDelta","type":"int256"}],"name":"rebase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"supplyPercent","type":"uint256"}],"name":"rebasePer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newPer","type":"uint256"}],"name":"setPoolFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newFeeTaker","type":"address"}],"name":"transferFeeTaker","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapFactory","outputs":[{"internalType":"contract IUniswapV2Factory","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapPool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"newName","type":"string"},{"internalType":"string","name":"newSymbol","type":"string"}],"name":"updateBranding","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60c060405260086080819052670aadcd28ee4c2e0d60c31b60a09081526200002b916001919062000295565b506040805180820190915260058082526408ea482a0960db1b60209092019182526200005a9160029162000295565b506000600855600980546001600160a01b031916735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f1790556001600a553480156200009857600080fd5b50600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a360008054336001600160a01b031991821681178084556007805490931690911790915569152d02c7e14af680000060039081556001600160a01b03909116825260056020908152604090922069085afffa6ff50bffffff199081905590546200014a926200019d811b6200134f17901c565b60045542600c556000805460035460408051918252516001600160a01b0390921692917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a36200033a565b6000620001e783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620001ee60201b60201c565b9392505050565b600081836200027e5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200024257818101518382015260200162000228565b50505050905090810190601f168015620002705780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816200028b57fe5b0495945050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002d857805160ff191683800117855562000308565b8280016001018555821562000308579182015b8281111562000308578251825591602001919060010190620002eb565b50620003169291506200031a565b5090565b6200033791905b8082111562000316576000815560010162000321565b90565b61161b806200034a6000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c80638bdb2afa116100f9578063a9059cbb11610097578063bdd3d82511610071578063bdd3d8251461058b578063d1e2826214610593578063dd62ed3e146105b0578063f2fde38b146105de576101c4565b8063a9059cbb1461054f578063ad1443691461057b578063b2bdfa7b14610583576101c4565b806391868da7116100d357806391868da7146104ed57806395d89b41146104f55780639a512489146104fd578063a457c2d714610523576101c4565b80638bdb2afa146104d55780638da5cb5b146104dd5780638eb644ae146104e5576101c4565b8063313ce567116101665780635b2f529d116101405780635b2f529d1461047b57806370a0823114610483578063749f1044146104a95780637ebf94c9146104cd576101c4565b8063313ce5671461031a57806339509351146103225780633d47a8771461034e576101c4565b806318160ddd116101a257806318160ddd146102b55780631e8cdab3146102bd57806323b872dd146102c55780632c79aa93146102fb576101c4565b806306fdde03146101c9578063095ea7b3146102465780630ab114f914610286575b600080fd5b6101d1610604565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561020b5781810151838201526020016101f3565b50505050905090810190601f1680156102385780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102726004803603604081101561025c57600080fd5b506001600160a01b038135169060200135610691565b604080519115158252519081900360200190f35b6102a36004803603602081101561029c57600080fd5b50356106f8565b60408051918252519081900360200190f35b6102a361086b565b6102a3610872565b610272600480360360608110156102db57600080fd5b506001600160a01b03813581169160208101359091169060400135610895565b6103186004803603602081101561031157600080fd5b50356109f4565b005b6102a3610a53565b6102726004803603604081101561033857600080fd5b506001600160a01b038135169060200135610a58565b6103186004803603604081101561036457600080fd5b81019060208101813564010000000081111561037f57600080fd5b82018360208201111561039157600080fd5b803590602001918460018302840111640100000000831117156103b357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561040657600080fd5b82018360208201111561041857600080fd5b8035906020019184600183028401116401000000008311171561043a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610af1945050505050565b610318610b6a565b6102a36004803603602081101561049957600080fd5b50356001600160a01b0316610d10565b6104b1610d3e565b604080516001600160a01b039092168252519081900360200190f35b6104b1610d4d565b6104b1610d5c565b6104b1610d6b565b6102a3610d7a565b6102a3610d80565b6101d1610dec565b6103186004803603602081101561051357600080fd5b50356001600160a01b0316610e44565b6102726004803603604081101561053957600080fd5b506001600160a01b038135169060200135610eed565b6102726004803603604081101561056557600080fd5b506001600160a01b038135169060200135610fdc565b6102a36110d4565b6104b16110da565b6104b16110e9565b6102a3600480360360208110156105a957600080fd5b50356110f8565b6102a3600480360360408110156105c657600080fd5b506001600160a01b0381358116916020013516611194565b610318600480360360208110156105f457600080fd5b50356001600160a01b03166111bf565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106895780601f1061065e57610100808354040283529160200191610689565b820191906000526020600020905b81548152906001019060200180831161066c57829003601f168201915b505050505081565b3360008181526006602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b600080546001600160a01b03163314610746576040805162461bcd60e51b815260206004820181905260248201526000805160206115c6833981519152604482015290519081900360640190fd5b60085461075a90600163ffffffff6112ac16565b600855816107a35760085460035460408051918252517f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f29181900360200190a250600354610866565b8160008112156107b4578260000390505b60008312156107d8576003546107d0908263ffffffff61130d16565b6003556107ef565b6003546107eb908263ffffffff6112ac16565b6003555b6003546001600160801b03101561080c576001600160801b036003555b6003546108259069085afffa6ff50bffffff199061134f565b60045560085460035460408051918252517f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f29181900360200190a250506003545b919050565b6003545b90565b60035460009061089090670de0b6b3a764000063ffffffff61134f16565b905090565b6000826001600160a01b0381166108ab57600080fd5b6001600160a01b0381163014156108c157600080fd5b6001600160a01b03851660009081526006602090815260408083203384529091529020546108f5908463ffffffff61130d16565b6001600160a01b038616600090815260066020908152604080832033845290915281209190915560045461093090859063ffffffff61139116565b6001600160a01b03871660009081526005602052604090205490915061095c908263ffffffff61130d16565b6001600160a01b038088166000908152600560205260408082209390935590871681522054610991908263ffffffff6112ac16565b6001600160a01b0380871660008181526005602090815260409182902094909455805188815290519193928a16927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a350600195945050505050565b6000546001600160a01b03163314610a41576040805162461bcd60e51b815260206004820181905260248201526000805160206115c6833981519152604482015290519081900360640190fd5b60058110610a4e57600080fd5b600a55565b601281565b3360009081526006602090815260408083206001600160a01b0386168452909152812054610a8c908363ffffffff6112ac16565b3360008181526006602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6000546001600160a01b03163314610b3e576040805162461bcd60e51b815260206004820181905260248201526000805160206115c6833981519152604482015290519081900360640190fd5b8151610b519060019060208501906114e6565b508051610b659060029060208401906114e6565b505050565b6000546001600160a01b03163314610bb7576040805162461bcd60e51b815260206004820181905260248201526000805160206115c6833981519152604482015290519081900360640190fd5b42600c556000610bc5610d80565b600354909150610bdb908263ffffffff61130d16565b600355600454600b546001600160a01b031660009081526005602052604090205490820290610c10908263ffffffff61130d16565b600b546001600160a01b0390811660009081526005602052604080822093909355805490911681522054610c4a908263ffffffff6112ac16565b600080546001600160a01b0390811682526005602052604080832093909355600b54835160016209351760e01b03198152935191169263fff6cae992600480830193919282900301818387803b158015610ca357600080fd5b505af1158015610cb7573d6000803e3d6000fd5b5050600b547fda697c13e34b3b7212b57c5180b1a4af1af15f0d8aa43ec8f8ecb2ec24b62c469250849150610cf4906001600160a01b0316610d10565b6040805192835260208301919091528051918290030190a15050565b6004546001600160a01b03821660009081526005602052604081205490916106f2919063ffffffff61134f16565b6007546001600160a01b031690565b6007546001600160a01b031681565b6009546001600160a01b031681565b6000546001600160a01b031690565b600c5481565b600c54600b546000914203908290610da0906001600160a01b0316610d10565b90506000620151809050610de46064610dd883610dd887610dcc600a548961139190919063ffffffff16565b9063ffffffff61139116565b9063ffffffff61134f16565b935050505090565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156106895780601f1061065e57610100808354040283529160200191610689565b6000546001600160a01b03163314610e91576040805162461bcd60e51b815260206004820181905260248201526000805160206115c6833981519152604482015290519081900360640190fd5b6007546040516001600160a01b038084169216907f4e1859f4ffa533d581987fc7f9f1b7845dcafe0f24a6e901732faf4ebdecbb0190600090a3600780546001600160a01b0319166001600160a01b0392909216919091179055565b3360009081526006602090815260408083206001600160a01b0386168452909152812054808310610f41573360009081526006602090815260408083206001600160a01b0388168452909152812055610f76565b610f51818463ffffffff61130d16565b3360009081526006602090815260408083206001600160a01b03891684529091529020555b3360008181526006602090815260408083206001600160a01b0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6000826001600160a01b038116610ff257600080fd5b6001600160a01b03811630141561100857600080fd5b600061101f6004548561139190919063ffffffff16565b33600090815260056020526040902054909150611042908263ffffffff61130d16565b33600090815260056020526040808220929092556001600160a01b03871681522054611074908263ffffffff6112ac16565b6001600160a01b0386166000818152600560209081526040918290209390935580518781529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3506001949350505050565b600a5481565b6000546001600160a01b031681565b600b546001600160a01b031681565b600080546001600160a01b03163314611146576040805162461bcd60e51b815260206004820181905260248201526000805160206115c6833981519152604482015290519081900360640190fd5b60085461115a90600163ffffffff6112ac16565b60085560328211158061116e575060648210155b1561117857600080fd5b60035482906107eb90606490610dd8908463ffffffff61139116565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b6000546001600160a01b0316331461120c576040805162461bcd60e51b815260206004820181905260248201526000805160206115c6833981519152604482015290519081900360640190fd5b6001600160a01b0381166112515760405162461bcd60e51b815260040180806020018281038252602681526020018061157f6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082820183811015611306576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600061130683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113ea565b600061130683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611481565b6000826113a0575060006106f2565b828202828482816113ad57fe5b04146113065760405162461bcd60e51b81526004018080602001828103825260218152602001806115a56021913960400191505060405180910390fd5b600081848411156114795760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561143e578181015183820152602001611426565b50505050905090810190601f16801561146b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836114d05760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561143e578181015183820152602001611426565b5060008385816114dc57fe5b0495945050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061152757805160ff1916838001178555611554565b82800160010185558215611554579182015b82811115611554578251825591602001919060010190611539565b50611560929150611564565b5090565b61086f91905b80821115611560576000815560010161156a56fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a2646970667358221220547ca9cdd31d0ea380f5a929488719b00382f33284d07ceb85170871fafead6464736f6c63430006000033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101c45760003560e01c80638bdb2afa116100f9578063a9059cbb11610097578063bdd3d82511610071578063bdd3d8251461058b578063d1e2826214610593578063dd62ed3e146105b0578063f2fde38b146105de576101c4565b8063a9059cbb1461054f578063ad1443691461057b578063b2bdfa7b14610583576101c4565b806391868da7116100d357806391868da7146104ed57806395d89b41146104f55780639a512489146104fd578063a457c2d714610523576101c4565b80638bdb2afa146104d55780638da5cb5b146104dd5780638eb644ae146104e5576101c4565b8063313ce567116101665780635b2f529d116101405780635b2f529d1461047b57806370a0823114610483578063749f1044146104a95780637ebf94c9146104cd576101c4565b8063313ce5671461031a57806339509351146103225780633d47a8771461034e576101c4565b806318160ddd116101a257806318160ddd146102b55780631e8cdab3146102bd57806323b872dd146102c55780632c79aa93146102fb576101c4565b806306fdde03146101c9578063095ea7b3146102465780630ab114f914610286575b600080fd5b6101d1610604565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561020b5781810151838201526020016101f3565b50505050905090810190601f1680156102385780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102726004803603604081101561025c57600080fd5b506001600160a01b038135169060200135610691565b604080519115158252519081900360200190f35b6102a36004803603602081101561029c57600080fd5b50356106f8565b60408051918252519081900360200190f35b6102a361086b565b6102a3610872565b610272600480360360608110156102db57600080fd5b506001600160a01b03813581169160208101359091169060400135610895565b6103186004803603602081101561031157600080fd5b50356109f4565b005b6102a3610a53565b6102726004803603604081101561033857600080fd5b506001600160a01b038135169060200135610a58565b6103186004803603604081101561036457600080fd5b81019060208101813564010000000081111561037f57600080fd5b82018360208201111561039157600080fd5b803590602001918460018302840111640100000000831117156103b357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561040657600080fd5b82018360208201111561041857600080fd5b8035906020019184600183028401116401000000008311171561043a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610af1945050505050565b610318610b6a565b6102a36004803603602081101561049957600080fd5b50356001600160a01b0316610d10565b6104b1610d3e565b604080516001600160a01b039092168252519081900360200190f35b6104b1610d4d565b6104b1610d5c565b6104b1610d6b565b6102a3610d7a565b6102a3610d80565b6101d1610dec565b6103186004803603602081101561051357600080fd5b50356001600160a01b0316610e44565b6102726004803603604081101561053957600080fd5b506001600160a01b038135169060200135610eed565b6102726004803603604081101561056557600080fd5b506001600160a01b038135169060200135610fdc565b6102a36110d4565b6104b16110da565b6104b16110e9565b6102a3600480360360208110156105a957600080fd5b50356110f8565b6102a3600480360360408110156105c657600080fd5b506001600160a01b0381358116916020013516611194565b610318600480360360208110156105f457600080fd5b50356001600160a01b03166111bf565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106895780601f1061065e57610100808354040283529160200191610689565b820191906000526020600020905b81548152906001019060200180831161066c57829003601f168201915b505050505081565b3360008181526006602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b600080546001600160a01b03163314610746576040805162461bcd60e51b815260206004820181905260248201526000805160206115c6833981519152604482015290519081900360640190fd5b60085461075a90600163ffffffff6112ac16565b600855816107a35760085460035460408051918252517f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f29181900360200190a250600354610866565b8160008112156107b4578260000390505b60008312156107d8576003546107d0908263ffffffff61130d16565b6003556107ef565b6003546107eb908263ffffffff6112ac16565b6003555b6003546001600160801b03101561080c576001600160801b036003555b6003546108259069085afffa6ff50bffffff199061134f565b60045560085460035460408051918252517f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f29181900360200190a250506003545b919050565b6003545b90565b60035460009061089090670de0b6b3a764000063ffffffff61134f16565b905090565b6000826001600160a01b0381166108ab57600080fd5b6001600160a01b0381163014156108c157600080fd5b6001600160a01b03851660009081526006602090815260408083203384529091529020546108f5908463ffffffff61130d16565b6001600160a01b038616600090815260066020908152604080832033845290915281209190915560045461093090859063ffffffff61139116565b6001600160a01b03871660009081526005602052604090205490915061095c908263ffffffff61130d16565b6001600160a01b038088166000908152600560205260408082209390935590871681522054610991908263ffffffff6112ac16565b6001600160a01b0380871660008181526005602090815260409182902094909455805188815290519193928a16927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a350600195945050505050565b6000546001600160a01b03163314610a41576040805162461bcd60e51b815260206004820181905260248201526000805160206115c6833981519152604482015290519081900360640190fd5b60058110610a4e57600080fd5b600a55565b601281565b3360009081526006602090815260408083206001600160a01b0386168452909152812054610a8c908363ffffffff6112ac16565b3360008181526006602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6000546001600160a01b03163314610b3e576040805162461bcd60e51b815260206004820181905260248201526000805160206115c6833981519152604482015290519081900360640190fd5b8151610b519060019060208501906114e6565b508051610b659060029060208401906114e6565b505050565b6000546001600160a01b03163314610bb7576040805162461bcd60e51b815260206004820181905260248201526000805160206115c6833981519152604482015290519081900360640190fd5b42600c556000610bc5610d80565b600354909150610bdb908263ffffffff61130d16565b600355600454600b546001600160a01b031660009081526005602052604090205490820290610c10908263ffffffff61130d16565b600b546001600160a01b0390811660009081526005602052604080822093909355805490911681522054610c4a908263ffffffff6112ac16565b600080546001600160a01b0390811682526005602052604080832093909355600b54835160016209351760e01b03198152935191169263fff6cae992600480830193919282900301818387803b158015610ca357600080fd5b505af1158015610cb7573d6000803e3d6000fd5b5050600b547fda697c13e34b3b7212b57c5180b1a4af1af15f0d8aa43ec8f8ecb2ec24b62c469250849150610cf4906001600160a01b0316610d10565b6040805192835260208301919091528051918290030190a15050565b6004546001600160a01b03821660009081526005602052604081205490916106f2919063ffffffff61134f16565b6007546001600160a01b031690565b6007546001600160a01b031681565b6009546001600160a01b031681565b6000546001600160a01b031690565b600c5481565b600c54600b546000914203908290610da0906001600160a01b0316610d10565b90506000620151809050610de46064610dd883610dd887610dcc600a548961139190919063ffffffff16565b9063ffffffff61139116565b9063ffffffff61134f16565b935050505090565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156106895780601f1061065e57610100808354040283529160200191610689565b6000546001600160a01b03163314610e91576040805162461bcd60e51b815260206004820181905260248201526000805160206115c6833981519152604482015290519081900360640190fd5b6007546040516001600160a01b038084169216907f4e1859f4ffa533d581987fc7f9f1b7845dcafe0f24a6e901732faf4ebdecbb0190600090a3600780546001600160a01b0319166001600160a01b0392909216919091179055565b3360009081526006602090815260408083206001600160a01b0386168452909152812054808310610f41573360009081526006602090815260408083206001600160a01b0388168452909152812055610f76565b610f51818463ffffffff61130d16565b3360009081526006602090815260408083206001600160a01b03891684529091529020555b3360008181526006602090815260408083206001600160a01b0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6000826001600160a01b038116610ff257600080fd5b6001600160a01b03811630141561100857600080fd5b600061101f6004548561139190919063ffffffff16565b33600090815260056020526040902054909150611042908263ffffffff61130d16565b33600090815260056020526040808220929092556001600160a01b03871681522054611074908263ffffffff6112ac16565b6001600160a01b0386166000818152600560209081526040918290209390935580518781529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3506001949350505050565b600a5481565b6000546001600160a01b031681565b600b546001600160a01b031681565b600080546001600160a01b03163314611146576040805162461bcd60e51b815260206004820181905260248201526000805160206115c6833981519152604482015290519081900360640190fd5b60085461115a90600163ffffffff6112ac16565b60085560328211158061116e575060648210155b1561117857600080fd5b60035482906107eb90606490610dd8908463ffffffff61139116565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b6000546001600160a01b0316331461120c576040805162461bcd60e51b815260206004820181905260248201526000805160206115c6833981519152604482015290519081900360640190fd5b6001600160a01b0381166112515760405162461bcd60e51b815260040180806020018281038252602681526020018061157f6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082820183811015611306576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600061130683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113ea565b600061130683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611481565b6000826113a0575060006106f2565b828202828482816113ad57fe5b04146113065760405162461bcd60e51b81526004018080602001828103825260218152602001806115a56021913960400191505060405180910390fd5b600081848411156114795760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561143e578181015183820152602001611426565b50505050905090810190601f16801561146b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836114d05760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561143e578181015183820152602001611426565b5060008385816114dc57fe5b0495945050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061152757805160ff1916838001178555611554565b82800160010185558215611554579182015b82811115611554578251825591602001919060010190611539565b50611560929150611564565b5090565b61086f91905b80821115611560576000815560010161156a56fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a2646970667358221220547ca9cdd31d0ea380f5a929488719b00382f33284d07ceb85170871fafead6464736f6c63430006000033

Deployed Bytecode Sourcemap

3755:7636:0:-:0;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3755:7636:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3788:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3788:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8669:233;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8669:233:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;6461:829;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6461:829:0;;:::i;:::-;;;;;;;;;;;;;;;;7298:123;;;:::i;10579:96::-;;;:::i;8174:487::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8174:487:0;;;;;;;;;;;;;;;;;:::i;9984:171::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9984:171:0;;:::i;:::-;;3863:37;;;:::i;8910:343::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8910:343:0;;;;;;;;:::i;4702:151::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4702:151:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;4702:151:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4702:151:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;4702:151:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;4702:151:0;;;;;;;;-1:-1:-1;4702:151:0;;-1:-1:-1;;21:11;5:28;;2:2;;;46:1;43;36:12;2:2;4702:151:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4702:151:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;4702:151:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;4702:151:0;;-1:-1:-1;4702:151:0;;-1:-1:-1;;;;;4702:151:0:i;10817:565::-;;;:::i;7429:159::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7429:159:0;-1:-1:-1;;;;;7429:159:0;;:::i;5745:85::-;;;:::i;:::-;;;;-1:-1:-1;;;;;5745:85:0;;;;;;;;;;;;;;5440:24;;;:::i;9814:103::-;;;:::i;3076:79::-;;;:::i;10716:30::-;;;:::i;10167:400::-;;;:::i;3826:30::-;;;:::i;5566:173::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5566:173:0;-1:-1:-1;;;;;5566:173:0;;:::i;9261:512::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;9261:512:0;;;;;;;;:::i;7596:388::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7596:388:0;;;;;;;;:::i;9930:41::-;;;:::i;2826:21::-;;;:::i;10683:26::-;;;:::i;5872:581::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5872:581:0;;:::i;7992:174::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7992:174:0;;;;;;;;;;:::i;3288:244::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3288:244:0;-1:-1:-1;;;;;3288:244:0;;:::i;3788:31::-;;;;;;;;;;;;;;;-1:-1:-1;;3788:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8669:233::-;8792:10;8752:4;8774:29;;;:17;:29;;;;;;;;-1:-1:-1;;;;;8774:38:0;;;;;;;;;;;:46;;;8836:36;;;;;;;8752:4;;8774:38;;8792:10;;8836:36;;;;;;;;-1:-1:-1;8890:4:0;8669:233;;;;;:::o;6461:829::-;6525:7;3203:6;;-1:-1:-1;;;;;3203:6:0;3213:10;3203:20;3195:65;;;;;-1:-1:-1;;;3195:65:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3195:65:0;;;;;;;;;;;;;;;6553:5:::1;::::0;:12:::1;::::0;6563:1:::1;6553:12;:9;:12;:::i;:::-;6545:5;:20:::0;6580:16;6576:118:::1;;6628:5;::::0;6635:12:::1;::::0;6618:30:::1;::::0;;;;;;::::1;::::0;;;;::::1;::::0;;::::1;-1:-1:-1::0;6670:12:0::1;::::0;6663:19:::1;;6576:118;6739:11:::0;6706:22:::1;6765:15:::0;::::1;6762:85;;;6823:11;6822:12;;6797:38;;6762:85;6874:1;6860:11;:15;6857:183;;;6907:12;::::0;:32:::1;::::0;6924:14;6907:32:::1;:16;:32;:::i;:::-;6892:12;:47:::0;6857:183:::1;;;6996:12;::::0;:32:::1;::::0;7013:14;6996:32:::1;:16;:32;:::i;:::-;6981:12;:47:::0;6857:183:::1;7066:12;::::0;-1:-1:-1;;;;;;7062:83:0::1;;;-1:-1:-1::0;;;;;7108:12:0::1;:25:::0;7062:83:::1;7191:12;::::0;7176:28:::1;::::0;-1:-1:-1;;5084:54:0;7176:14:::1;:28::i;:::-;7157:16;:47:::0;7232:5:::1;::::0;7239:12:::1;::::0;7222:30:::1;::::0;;;;;;::::1;::::0;;;;::::1;::::0;;::::1;-1:-1:-1::0;;7270:12:0::1;::::0;3271:1:::1;6461:829:::0;;;:::o;7298:123::-;7401:12;;7298:123;;:::o;10579:96::-;10645:12;;10618:7;;10645:22;;10662:4;10645:22;:16;:22;:::i;:::-;10638:29;;10579:96;:::o;8174:487::-;8299:4;8277:2;-1:-1:-1;;;;;4071:18:0;;4063:27;;;;;;-1:-1:-1;;;;;4109:19:0;;4123:4;4109:19;;4101:28;;;;;;-1:-1:-1;;;;;8359:23:0;::::1;;::::0;;;:17:::1;:23;::::0;;;;;;;8383:10:::1;8359:35:::0;;;;;;;;:46:::1;::::0;8399:5;8359:46:::1;:39;:46;:::i;:::-;-1:-1:-1::0;;;;;8321:23:0;::::1;;::::0;;;:17:::1;:23;::::0;;;;;;;8345:10:::1;8321:35:::0;;;;;;;:84;;;;8447:16:::1;::::0;8437:27:::1;::::0;:5;;:27:::1;:9;:27;:::i;:::-;-1:-1:-1::0;;;;;8496:18:0;::::1;;::::0;;;:12:::1;:18;::::0;;;;;8418:46;;-1:-1:-1;8496:32:0::1;::::0;8418:46;8496:32:::1;:22;:32;:::i;:::-;-1:-1:-1::0;;;;;8475:18:0;;::::1;;::::0;;;:12:::1;:18;::::0;;;;;:53;;;;8558:16;;::::1;::::0;;;;:30:::1;::::0;8579:8;8558:30:::1;:20;:30;:::i;:::-;-1:-1:-1::0;;;;;8539:16:0;;::::1;;::::0;;;:12:::1;:16;::::0;;;;;;;;:49;;;;8604:25;;;;;;;8539:16;;8604:25;;::::1;::::0;::::1;::::0;;;;;;;::::1;-1:-1:-1::0;8649:4:0::1;::::0;8174:487;-1:-1:-1;;;;;8174:487:0:o;9984:171::-;3203:6;;-1:-1:-1;;;;;3203:6:0;3213:10;3203:20;3195:65;;;;;-1:-1:-1;;;3195:65:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3195:65:0;;;;;;;;;;;;;;;10103:1:::1;10094:6;:10;10086:19;;;::::0;::::1;;10116:22;:31:::0;9984:171::o;3863:37::-;3898:2;3863:37;:::o;8910:343::-;9102:10;9008:4;9084:29;;;:17;:29;;;;;;;;-1:-1:-1;;;;;9084:38:0;;;;;;;;;;:54;;9127:10;9084:54;:42;:54;:::i;:::-;9048:10;9030:29;;;;:17;:29;;;;;;;;-1:-1:-1;;;;;9030:38:0;;;;;;;;;;;;:108;;;9154:69;;;;;;9030:38;;9154:69;;;;;;;;;;;-1:-1:-1;9241:4:0;8910:343;;;;:::o;4702:151::-;3203:6;;-1:-1:-1;;;;;3203:6:0;3213:10;3203:20;3195:65;;;;;-1:-1:-1;;;3195:65:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3195:65:0;;;;;;;;;;;;;;;4802:14;;::::1;::::0;:4:::1;::::0;:14:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;4827:18:0;;::::1;::::0;:6:::1;::::0;:18:::1;::::0;::::1;::::0;::::1;:::i;:::-;;4702:151:::0;;:::o;10817:565::-;3203:6;;-1:-1:-1;;;;;3203:6:0;3213:10;3203:20;3195:65;;;;;-1:-1:-1;;;3195:65:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3195:65:0;;;;;;;;;;;;;;;10923:3:::1;10905:15;:21:::0;10939:14:::1;10956:18;:16;:18::i;:::-;11002:12;::::0;10939:35;;-1:-1:-1;11002:24:0::1;::::0;10939:35;11002:24:::1;:16;:24;:::i;:::-;10987:12;:39:::0;11071:16:::1;::::0;11159:11:::1;::::0;-1:-1:-1;;;;;11159:11:0::1;11047:21;11146:25:::0;;;:12:::1;:25;::::0;;;;;11071:26;;::::1;::::0;11146:44:::1;::::0;11071:26;11146:44:::1;:29;:44;:::i;:::-;11131:11;::::0;-1:-1:-1;;;;;11131:11:0;;::::1;11118:25;::::0;;;:12:::1;:25;::::0;;;;;:72;;;;11237:6;;;;::::1;11224:20:::0;;;;:39:::1;::::0;11249:13;11224:39:::1;:24;:39;:::i;:::-;11201:20;11214:6:::0;;-1:-1:-1;;;;;11214:6:0;;::::1;11201:20:::0;;:12:::1;:20;::::0;;;;;:62;;;;11291:11:::1;::::0;11276:34;;-1:-1:-1;;;;;;11276:34:0;;;;11291:11;::::1;::::0;11276:32:::1;::::0;:34:::1;::::0;;::::1;::::0;11201:20;;11276:34;;;;;11201:20;11291:11;11276:34;::::1;;5:2:-1::0;::::1;;;30:1;27::::0;20:12:::1;5:2;11276:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;-1:-1:::0;;11361:11:0::1;::::0;11328:46:::1;::::0;-1:-1:-1;11343:6:0;;-1:-1:-1;11351:22:0::1;::::0;-1:-1:-1;;;;;11361:11:0::1;11351:9;:22::i;:::-;11328:46;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;::::1;3271:1;;10817:565::o:0;7429:159::-;7563:16;;-1:-1:-1;;;;;7541:17:0;;7509:7;7541:17;;;:12;:17;;;;;;7509:7;;7541:39;;:17;:39;:21;:39;:::i;5745:85::-;5813:9;;-1:-1:-1;;;;;5813:9:0;5745:85;:::o;5440:24::-;;;-1:-1:-1;;;;;5440:24:0;;:::o;9814:103::-;;;-1:-1:-1;;;;;9814:103:0;;:::o;3076:79::-;3114:7;3141:6;-1:-1:-1;;;;;3141:6:0;3076:79;:::o;10716:30::-;;;;:::o;10167:400::-;10276:15;;10342:11;;10216:7;;10270:3;:21;;10216:7;;10332:22;;-1:-1:-1;;;;;10342:11:0;10332:9;:22::i;:::-;10302:52;;10365:20;10388:6;10365:29;;10412:147;10555:3;10412:124;10523:12;10413:90;10479:23;10413:47;10437:22;;10413:19;:23;;:47;;;;:::i;:::-;:65;:90;:65;:90;:::i;:::-;10412:110;:124;:110;:124;:::i;:147::-;10405:154;;;;;10167:400;:::o;3826:30::-;;;;;;;;;;;;;;-1:-1:-1;;3826:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5566:173;3203:6;;-1:-1:-1;;;;;3203:6:0;3213:10;3203:20;3195:65;;;;;-1:-1:-1;;;3195:65:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3195:65:0;;;;;;;;;;;;;;;5674:9:::1;::::0;5654:43:::1;::::0;-1:-1:-1;;;;;5654:43:0;;::::1;::::0;5674:9:::1;::::0;5654:43:::1;::::0;5674:9:::1;::::0;5654:43:::1;5708:9;:23:::0;;-1:-1:-1;;;;;;5708:23:0::1;-1:-1:-1::0;;;;;5708:23:0;;;::::1;::::0;;;::::1;::::0;;5566:173::o;9261:512::-;9423:10;9364:4;9405:29;;;:17;:29;;;;;;;;-1:-1:-1;;;;;9405:38:0;;;;;;;;;;9458:27;;;9454:205;;9520:10;9543:1;9502:29;;;:17;:29;;;;;;;;-1:-1:-1;;;;;9502:38:0;;;;;;;;;:42;9454:205;;;9618:29;:8;9631:15;9618:29;:12;:29;:::i;:::-;9595:10;9577:29;;;;:17;:29;;;;;;;;-1:-1:-1;;;;;9577:38:0;;;;;;;;;:70;9454:205;9683:10;9704:29;;;;:17;:29;;;;;;;;-1:-1:-1;;;;;9674:69:0;;9704:38;;;;;;;;;;;9674:69;;;;;;;;;9683:10;9674:69;;;;;;;;;;;-1:-1:-1;9761:4:0;;9261:512;-1:-1:-1;;;9261:512:0:o;7596:388::-;7703:4;7681:2;-1:-1:-1;;;;;4071:18:0;;4063:27;;;;;;-1:-1:-1;;;;;4109:19:0;;4123:4;4109:19;;4101:28;;;;;;7725:16:::1;7744:27;7754:16;;7744:5;:9;;:27;;;;:::i;:::-;7822:10;7809:24;::::0;;;:12:::1;:24;::::0;;;;;7725:46;;-1:-1:-1;7809:38:0::1;::::0;7725:46;7809:38:::1;:28;:38;:::i;:::-;7795:10;7782:24;::::0;;;:12:::1;:24;::::0;;;;;:65;;;;-1:-1:-1;;;;;7877:16:0;::::1;::::0;;;;:30:::1;::::0;7898:8;7877:30:::1;:20;:30;:::i;:::-;-1:-1:-1::0;;;;;7858:16:0;::::1;;::::0;;;:12:::1;:16;::::0;;;;;;;;:49;;;;7923:31;;;;;;;7858:16;;7932:10:::1;::::0;7923:31:::1;::::0;;;;;;;;::::1;-1:-1:-1::0;7972:4:0::1;::::0;7596:388;-1:-1:-1;;;;7596:388:0:o;9930:41::-;;;;:::o;2826:21::-;;;-1:-1:-1;;;;;2826:21:0;;:::o;10683:26::-;;;-1:-1:-1;;;;;10683:26:0;;:::o;5872:581::-;5942:7;3203:6;;-1:-1:-1;;;;;3203:6:0;3213:10;3203:20;3195:65;;;;;-1:-1:-1;;;3195:65:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3195:65:0;;;;;;;;;;;;;;;5970:5:::1;::::0;:12:::1;::::0;5980:1:::1;5970:12;:9;:12;:::i;:::-;5962:5;:20:::0;6013:2:::1;5996:19:::0;::::1;;::::0;:43:::1;;;6036:3;6019:13;:20;;5996:43;5993:83;;;6056:8;::::0;::::1;5993:83;6161:12;::::0;6121:13;;6161:43:::1;::::0;6200:3:::1;::::0;6161:34:::1;::::0;6121:13;6161:34:::1;:16;:34;:::i;7992:174::-:0;-1:-1:-1;;;;;8124:25:0;;;8092:7;8124:25;;;:17;:25;;;;;;;;:34;;;;;;;;;;;;;7992:174::o;3288:244::-;3203:6;;-1:-1:-1;;;;;3203:6:0;3213:10;3203:20;3195:65;;;;;-1:-1:-1;;;3195:65:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3195:65:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;3377:22:0;::::1;3369:73;;;;-1:-1:-1::0;;;3369:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3479:6;::::0;;3458:38:::1;::::0;-1:-1:-1;;;;;3458:38:0;;::::1;::::0;3479:6;::::1;::::0;3458:38:::1;::::0;::::1;3507:6;:17:::0;;-1:-1:-1;;;;;;3507:17:0::1;-1:-1:-1::0;;;;;3507:17:0;;;::::1;::::0;;;::::1;::::0;;3288:244::o;1361:181::-;1419:7;1451:5;;;1475:6;;;;1467:46;;;;;-1:-1:-1;;;1467:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;1533:1;1361:181;-1:-1:-1;;;1361:181:0:o;1550:136::-;1608:7;1635:43;1639:1;1642;1635:43;;;;;;;;;;;;;;;;;:3;:43::i;2152:132::-;2210:7;2237:39;2241:1;2244;2237:39;;;;;;;;;;;;;;;;;:3;:39::i;1894:250::-;1952:7;1976:6;1972:47;;-1:-1:-1;2006:1:0;1999:8;;1972:47;2043:5;;;2047:1;2043;:5;:1;2067:5;;;;;:10;2059:56;;;;-1:-1:-1;;;2059:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1694:192;1780:7;1816:12;1808:6;;;;1800:29;;;;-1:-1:-1;;;1800:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1800:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1852:5:0;;;1694:192::o;2292:191::-;2378:7;2413:12;2406:5;2398:28;;;;-1:-1:-1;;;2398:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;2398:28:0;;2437:9;2453:1;2449;:5;;;;;;;2292:191;-1:-1:-1;;;;;2292:191:0:o;3755:7636::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3755:7636:0;;;-1:-1:-1;3755:7636:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;

Swarm Source

ipfs://547ca9cdd31d0ea380f5a929488719b00382f33284d07ceb85170871fafead64

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

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.