ETH Price: $2,583.39 (-3.79%)
Gas: 4 Gwei

Token

Ordinal Network (oNetwork)
 

Overview

Max Total Supply

10,000,000 oNetwork

Holders

41

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000001 oNetwork

Value
$0.00
0x2fc6f6fa1ed0fb4888cbfbfc36b5f3cebff894dd
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
OrdinalNetwork

Compiler Version
v0.8.5+commit.a4f2e591

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-03-05
*/

// Ordinal Network - Empowering Decentralized Finance
// OrdinalNetwork serve as a platform for decentralized finance applications, such as lending, 
// borrowing, trading, and asset management, that operate on the Ethereum blockchain. 

//https://t.me/oNetworkETH
//https://twitter.com/oNetworkETH
//https://ordinalnetwork.net/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.5;
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;
    }
}

interface ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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);
}

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {
        owner = _owner;
    }
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }
    function renounceOwnership() public onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(address(0));
    }  
    event OwnershipTransferred(address owner);
}

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract OrdinalNetwork is ERC20, Ownable {
    using SafeMath for uint256;
    address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address DEAD = 0x000000000000000000000000000000000000dEaD;

    string constant _name = "Ordinal Network";
    string constant _symbol = "oNetwork";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 10_000_000 * (10 ** _decimals);
    uint256 public _maxWalletAmount = (_totalSupply * 3) / 100;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;

    uint256 liquidityFee = 0; 
    uint256 marketingFee = 5;
    uint256 totalFee = liquidityFee + marketingFee;
    uint256 feeDenominator = 100;

    address public marketingFeeReceiver = msg.sender;

    IDEXRouter public router;
    address public pair;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 10000 * 1; // 0.01%
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Ownable(msg.sender) {
        router = IDEXRouter(routerAdress);
        pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        address _owner = owner;
        isFeeExempt[msg.sender] = true;
        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[DEAD] = true;

        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

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

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }
        
        if (recipient != pair && recipient != DEAD && recipient != routerAdress && recipient != marketingFeeReceiver && recipient != address(this)) {
            require(isTxLimitExempt[recipient] || _balances[recipient] + amount <= _maxWalletAmount, "Transfer amount exceeds the bag size.");
        }
        
        if(shouldSwapBack() && recipient != DEAD && recipient != marketingFeeReceiver && recipient != address(this)){ swapBack(); } 

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = shouldTakeFee(sender) ? takeFee(sender, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount.mul(totalFee).div(feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }
    function toggleSwap (bool _swapEnabled) external onlyOwner {
        swapEnabled = _swapEnabled;
    }


    function swapBack() internal swapping {
        uint256 contractTokenBalance = balanceOf(address(this));
        uint256 amountToLiquify = contractTokenBalance.mul(liquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = contractTokenBalance.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 amountETH = address(this).balance.sub(balanceBefore);
        uint256 totalETHFee = totalFee.sub(liquidityFee.div(2));
        uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);


        (bool MarketingSuccess, /* bytes memory data */) = payable(marketingFeeReceiver).call{value: amountETHMarketing, gas: 30000}("");
        require(MarketingSuccess, "receiver rejected ETH transfer");

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                marketingFeeReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

    function buyTokens(uint256 amount, address to) internal swapping {
        address[] memory path = new address[](2);
        path[0] = router.WETH();
        path[1] = address(this);

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(
            0,
            path,
            to,
            block.timestamp
        );
    }

    function clearStuckBalance() external {
        payable(marketingFeeReceiver).transfer(address(this).balance);
    }

    function setWalletLimit(uint256 amountPercent) external onlyOwner {
        _maxWalletAmount = (_totalSupply * amountPercent ) / 1000;
    }

    function setFee(uint256 _liquidityFee, uint256 _marketingFee) external onlyOwner {
         liquidityFee = _liquidityFee; 
         marketingFee = _marketingFee;
         totalFee = liquidityFee + marketingFee;
    }    
    
    event AutoLiquify(uint256 amountETH, uint256 amountBOG);
}

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":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","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":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600180546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d179091556002805490911661dead179055620000486009600a62000443565b62000057906298968062000504565b60038181556064916200006a9162000504565b620000769190620003d7565b600455600060098190556005600a8190556200009291620003bc565b600b556064600c55600d80546001600160a01b03191633179055600f805460ff60a01b1916600160a01b179055600354620000d19061271090620003d7565b620000de90600162000504565b601055348015620000ee57600080fd5b5060008054336001600160a01b031991821617909155600154600e80546001600160a01b039092169190921681179091556040805163c45a015560e01b8152905163c45a015591600480820192602092909190829003018186803b1580156200015657600080fd5b505afa1580156200016b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019191906200038a565b6001600160a01b031663c9c65396600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620001ee57600080fd5b505afa15801562000203573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022991906200038a565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381600087803b1580156200027157600080fd5b505af115801562000286573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ac91906200038a565b600f80546001600160a01b0319166001600160a01b03928316179055306000908152600660209081526040808320600e54851684528252808320600019905582543380855260078452828520805460ff19908116600190811790925592871680875260088652848720805485168317905591865283862080548416821790556002549096168552828520805490921690951790556003548484526005835281842081905590519081528392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3506200053c565b6000602082840312156200039d57600080fd5b81516001600160a01b0381168114620003b557600080fd5b9392505050565b60008219821115620003d257620003d262000526565b500190565b600082620003f557634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156200043b5781600019048211156200041f576200041f62000526565b808516156200042d57918102915b93841c9390800290620003ff565b509250929050565b6000620003b560ff8416836000826200045f57506001620004fe565b816200046e57506000620004fe565b81600181146200048757600281146200049257620004b2565b6001915050620004fe565b60ff841115620004a657620004a662000526565b50506001821b620004fe565b5060208310610133831016604e8410600b8410161715620004d7575081810a620004fe565b620004e38383620003fa565b8060001904821115620004fa57620004fa62000526565b0290505b92915050565b600081600019048311821515161562000521576200052162000526565b500290565b634e487b7160e01b600052601160045260246000fd5b6114f2806200054c6000396000f3fe6080604052600436106101445760003560e01c80636d8aa8f8116100b6578063a8aa1b311161006f578063a8aa1b31146103c6578063a9059cbb146103e6578063dd62ed3e14610406578063e96fada21461044c578063f1d5f5171461046c578063f887ea401461048c57600080fd5b80636d8aa8f8146102d75780636ddd1713146102f757806370a0823114610318578063715018a61461034e578063893d20e81461036357806395d89b411461039557600080fd5b80632f54bf6e116101085780632f54bf6e1461021f578063313ce5671461024e578063364333f41461026a57806352f7c98814610281578063571ac8b0146102a15780636c0a24eb146102c157600080fd5b80630445b6671461015057806306fdde0314610179578063095ea7b3146101ba57806318160ddd146101ea57806323b872dd146101ff57600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b5061016660105481565b6040519081526020015b60405180910390f35b34801561018557600080fd5b5060408051808201909152600f81526e4f7264696e616c204e6574776f726b60881b60208201525b6040516101709190611325565b3480156101c657600080fd5b506101da6101d536600461126e565b6104ac565b6040519015158152602001610170565b3480156101f657600080fd5b50600354610166565b34801561020b57600080fd5b506101da61021a36600461122d565b610519565b34801561022b57600080fd5b506101da61023a3660046111ba565b6000546001600160a01b0391821691161490565b34801561025a57600080fd5b5060405160098152602001610170565b34801561027657600080fd5b5061027f6105db565b005b34801561028d57600080fd5b5061027f61029c3660046112d5565b610617565b3480156102ad57600080fd5b506101da6102bc3660046111ba565b610665565b3480156102cd57600080fd5b5061016660045481565b3480156102e357600080fd5b5061027f6102f236600461129a565b610673565b34801561030357600080fd5b50600f546101da90600160a01b900460ff1681565b34801561032457600080fd5b506101666103333660046111ba565b6001600160a01b031660009081526005602052604090205490565b34801561035a57600080fd5b5061027f6106bb565b34801561036f57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610170565b3480156103a157600080fd5b506040805180820190915260088152676f4e6574776f726b60c01b60208201526101ad565b3480156103d257600080fd5b50600f5461037d906001600160a01b031681565b3480156103f257600080fd5b506101da61040136600461126e565b61072a565b34801561041257600080fd5b506101666104213660046111f4565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561045857600080fd5b50600d5461037d906001600160a01b031681565b34801561047857600080fd5b5061027f6104873660046112bc565b610737565b34801561049857600080fd5b50600e5461037d906001600160a01b031681565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105079086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383166000908152600660209081526040808320338452909152812054600019146105c6576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526006825283812033825290915291909120546105a1918490610782565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b6105d18484846107bc565b90505b9392505050565b600d546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610614573d6000803e3d6000fd5b50565b6000546001600160a01b0316331461064a5760405162461bcd60e51b81526004016106419061137a565b60405180910390fd5b6009829055600a81905561065e818361140b565b600b555050565b6000610513826000196104ac565b6000546001600160a01b0316331461069d5760405162461bcd60e51b81526004016106419061137a565b600f8054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b031633146106e55760405162461bcd60e51b81526004016106419061137a565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b60006105d43384846107bc565b6000546001600160a01b031633146107615760405162461bcd60e51b81526004016106419061137a565b6103e8816003546107729190611445565b61077c9190611423565b60045550565b600081848411156107a65760405162461bcd60e51b81526004016106419190611325565b5060006107b38486611464565b95945050505050565b60115460009060ff16156107dc576107d5848484610a78565b90506105d4565b600f546001600160a01b0384811691161480159061080857506002546001600160a01b03848116911614155b801561082257506001546001600160a01b03848116911614155b801561083c5750600d546001600160a01b03848116911614155b801561085157506001600160a01b0383163014155b156108fc576001600160a01b03831660009081526008602052604090205460ff16806108a257506004546001600160a01b03841660009081526005602052604090205461089f90849061140b565b11155b6108fc5760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b6064820152608401610641565b610904610b5e565b801561091e57506002546001600160a01b03848116911614155b80156109385750600d546001600160a01b03848116911614155b801561094d57506001600160a01b0383163014155b1561095a5761095a610bb6565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600590915291909120546109ac918490610782565b6001600160a01b038516600090815260056020908152604080832093909355600790529081205460ff16156109e157826109eb565b6109eb8584610f84565b6001600160a01b038516600090815260056020526040902054909150610a11908261102a565b6001600160a01b0380861660008181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a659085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600590915291822054610ac9918490610782565b6001600160a01b038086166000908152600560205260408082209390935590851681522054610af8908361102a565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b4c9086815260200190565b60405180910390a35060019392505050565b600f546000906001600160a01b03163314801590610b7f575060115460ff16155b8015610b945750600f54600160a01b900460ff165b8015610bb157506010543060009081526005602052604090205410155b905090565b6011805460ff191660011790553060009081526005602052604081205490506000610bfd6002610bf7600b54610bf76009548761108990919063ffffffff16565b90611108565b90506000610c0b838361114a565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610c4557610c45611491565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610c9957600080fd5b505afa158015610cad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd191906111d7565b81600181518110610ce457610ce4611491565b6001600160a01b039283166020918202929092010152600e5460405163791ac94760e01b81524792919091169063791ac94790610d2e90869060009087903090429060040161139a565b600060405180830381600087803b158015610d4857600080fd5b505af1158015610d5c573d6000803e3d6000fd5b505050506000610d75824761114a90919063ffffffff16565b90506000610d9b610d92600260095461110890919063ffffffff16565b600b549061114a565b90506000610dbd6002610bf784610bf76009548861108990919063ffffffff16565b90506000610dda83610bf7600a548761108990919063ffffffff16565b600d546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d8060008114610e31576040519150601f19603f3d011682016040523d82523d6000602084013e610e36565b606091505b5050905080610e875760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e7366657200006044820152606401610641565b8815610f6e57600e54600d5460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c4016060604051808303818588803b158015610ef857600080fd5b505af1158015610f0c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f3191906112f7565b505060408051858152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506011805460ff191690555050505050505050565b600080610fa2600c54610bf7600b548661108990919063ffffffff16565b30600090815260056020526040902054909150610fbf908261102a565b30600081815260056020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110109085815260200190565b60405180910390a3611022838261114a565b949350505050565b600080611037838561140b565b9050838110156105d45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610641565b60008261109857506000610513565b60006110a48385611445565b9050826110b18583611423565b146105d45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610641565b60006105d483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061118c565b60006105d483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610782565b600081836111ad5760405162461bcd60e51b81526004016106419190611325565b5060006107b38486611423565b6000602082840312156111cc57600080fd5b81356105d4816114a7565b6000602082840312156111e957600080fd5b81516105d4816114a7565b6000806040838503121561120757600080fd5b8235611212816114a7565b91506020830135611222816114a7565b809150509250929050565b60008060006060848603121561124257600080fd5b833561124d816114a7565b9250602084013561125d816114a7565b929592945050506040919091013590565b6000806040838503121561128157600080fd5b823561128c816114a7565b946020939093013593505050565b6000602082840312156112ac57600080fd5b813580151581146105d457600080fd5b6000602082840312156112ce57600080fd5b5035919050565b600080604083850312156112e857600080fd5b50508035926020909101359150565b60008060006060848603121561130c57600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b8181101561135257858101830151858201604001528201611336565b81811115611364576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156113ea5784516001600160a01b0316835293830193918301916001016113c5565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561141e5761141e61147b565b500190565b60008261144057634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561145f5761145f61147b565b500290565b6000828210156114765761147661147b565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811461061457600080fdfea264697066735822122040b404ea7ac86a084d5ac7d763236f4e2401240f0bf101644ee5a851561f8d0664736f6c63430008050033

Deployed Bytecode

0x6080604052600436106101445760003560e01c80636d8aa8f8116100b6578063a8aa1b311161006f578063a8aa1b31146103c6578063a9059cbb146103e6578063dd62ed3e14610406578063e96fada21461044c578063f1d5f5171461046c578063f887ea401461048c57600080fd5b80636d8aa8f8146102d75780636ddd1713146102f757806370a0823114610318578063715018a61461034e578063893d20e81461036357806395d89b411461039557600080fd5b80632f54bf6e116101085780632f54bf6e1461021f578063313ce5671461024e578063364333f41461026a57806352f7c98814610281578063571ac8b0146102a15780636c0a24eb146102c157600080fd5b80630445b6671461015057806306fdde0314610179578063095ea7b3146101ba57806318160ddd146101ea57806323b872dd146101ff57600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b5061016660105481565b6040519081526020015b60405180910390f35b34801561018557600080fd5b5060408051808201909152600f81526e4f7264696e616c204e6574776f726b60881b60208201525b6040516101709190611325565b3480156101c657600080fd5b506101da6101d536600461126e565b6104ac565b6040519015158152602001610170565b3480156101f657600080fd5b50600354610166565b34801561020b57600080fd5b506101da61021a36600461122d565b610519565b34801561022b57600080fd5b506101da61023a3660046111ba565b6000546001600160a01b0391821691161490565b34801561025a57600080fd5b5060405160098152602001610170565b34801561027657600080fd5b5061027f6105db565b005b34801561028d57600080fd5b5061027f61029c3660046112d5565b610617565b3480156102ad57600080fd5b506101da6102bc3660046111ba565b610665565b3480156102cd57600080fd5b5061016660045481565b3480156102e357600080fd5b5061027f6102f236600461129a565b610673565b34801561030357600080fd5b50600f546101da90600160a01b900460ff1681565b34801561032457600080fd5b506101666103333660046111ba565b6001600160a01b031660009081526005602052604090205490565b34801561035a57600080fd5b5061027f6106bb565b34801561036f57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610170565b3480156103a157600080fd5b506040805180820190915260088152676f4e6574776f726b60c01b60208201526101ad565b3480156103d257600080fd5b50600f5461037d906001600160a01b031681565b3480156103f257600080fd5b506101da61040136600461126e565b61072a565b34801561041257600080fd5b506101666104213660046111f4565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561045857600080fd5b50600d5461037d906001600160a01b031681565b34801561047857600080fd5b5061027f6104873660046112bc565b610737565b34801561049857600080fd5b50600e5461037d906001600160a01b031681565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105079086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383166000908152600660209081526040808320338452909152812054600019146105c6576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526006825283812033825290915291909120546105a1918490610782565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b6105d18484846107bc565b90505b9392505050565b600d546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610614573d6000803e3d6000fd5b50565b6000546001600160a01b0316331461064a5760405162461bcd60e51b81526004016106419061137a565b60405180910390fd5b6009829055600a81905561065e818361140b565b600b555050565b6000610513826000196104ac565b6000546001600160a01b0316331461069d5760405162461bcd60e51b81526004016106419061137a565b600f8054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b031633146106e55760405162461bcd60e51b81526004016106419061137a565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b60006105d43384846107bc565b6000546001600160a01b031633146107615760405162461bcd60e51b81526004016106419061137a565b6103e8816003546107729190611445565b61077c9190611423565b60045550565b600081848411156107a65760405162461bcd60e51b81526004016106419190611325565b5060006107b38486611464565b95945050505050565b60115460009060ff16156107dc576107d5848484610a78565b90506105d4565b600f546001600160a01b0384811691161480159061080857506002546001600160a01b03848116911614155b801561082257506001546001600160a01b03848116911614155b801561083c5750600d546001600160a01b03848116911614155b801561085157506001600160a01b0383163014155b156108fc576001600160a01b03831660009081526008602052604090205460ff16806108a257506004546001600160a01b03841660009081526005602052604090205461089f90849061140b565b11155b6108fc5760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b6064820152608401610641565b610904610b5e565b801561091e57506002546001600160a01b03848116911614155b80156109385750600d546001600160a01b03848116911614155b801561094d57506001600160a01b0383163014155b1561095a5761095a610bb6565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600590915291909120546109ac918490610782565b6001600160a01b038516600090815260056020908152604080832093909355600790529081205460ff16156109e157826109eb565b6109eb8584610f84565b6001600160a01b038516600090815260056020526040902054909150610a11908261102a565b6001600160a01b0380861660008181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a659085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600590915291822054610ac9918490610782565b6001600160a01b038086166000908152600560205260408082209390935590851681522054610af8908361102a565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b4c9086815260200190565b60405180910390a35060019392505050565b600f546000906001600160a01b03163314801590610b7f575060115460ff16155b8015610b945750600f54600160a01b900460ff165b8015610bb157506010543060009081526005602052604090205410155b905090565b6011805460ff191660011790553060009081526005602052604081205490506000610bfd6002610bf7600b54610bf76009548761108990919063ffffffff16565b90611108565b90506000610c0b838361114a565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610c4557610c45611491565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610c9957600080fd5b505afa158015610cad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd191906111d7565b81600181518110610ce457610ce4611491565b6001600160a01b039283166020918202929092010152600e5460405163791ac94760e01b81524792919091169063791ac94790610d2e90869060009087903090429060040161139a565b600060405180830381600087803b158015610d4857600080fd5b505af1158015610d5c573d6000803e3d6000fd5b505050506000610d75824761114a90919063ffffffff16565b90506000610d9b610d92600260095461110890919063ffffffff16565b600b549061114a565b90506000610dbd6002610bf784610bf76009548861108990919063ffffffff16565b90506000610dda83610bf7600a548761108990919063ffffffff16565b600d546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d8060008114610e31576040519150601f19603f3d011682016040523d82523d6000602084013e610e36565b606091505b5050905080610e875760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e7366657200006044820152606401610641565b8815610f6e57600e54600d5460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c4016060604051808303818588803b158015610ef857600080fd5b505af1158015610f0c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f3191906112f7565b505060408051858152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506011805460ff191690555050505050505050565b600080610fa2600c54610bf7600b548661108990919063ffffffff16565b30600090815260056020526040902054909150610fbf908261102a565b30600081815260056020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110109085815260200190565b60405180910390a3611022838261114a565b949350505050565b600080611037838561140b565b9050838110156105d45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610641565b60008261109857506000610513565b60006110a48385611445565b9050826110b18583611423565b146105d45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610641565b60006105d483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061118c565b60006105d483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610782565b600081836111ad5760405162461bcd60e51b81526004016106419190611325565b5060006107b38486611423565b6000602082840312156111cc57600080fd5b81356105d4816114a7565b6000602082840312156111e957600080fd5b81516105d4816114a7565b6000806040838503121561120757600080fd5b8235611212816114a7565b91506020830135611222816114a7565b809150509250929050565b60008060006060848603121561124257600080fd5b833561124d816114a7565b9250602084013561125d816114a7565b929592945050506040919091013590565b6000806040838503121561128157600080fd5b823561128c816114a7565b946020939093013593505050565b6000602082840312156112ac57600080fd5b813580151581146105d457600080fd5b6000602082840312156112ce57600080fd5b5035919050565b600080604083850312156112e857600080fd5b50508035926020909101359150565b60008060006060848603121561130c57600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b8181101561135257858101830151858201604001528201611336565b81811115611364576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156113ea5784516001600160a01b0316835293830193918301916001016113c5565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561141e5761141e61147b565b500190565b60008261144057634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561145f5761145f61147b565b500290565b6000828210156114765761147661147b565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811461061457600080fdfea264697066735822122040b404ea7ac86a084d5ac7d763236f4e2401240f0bf101644ee5a851561f8d0664736f6c63430008050033

Deployed Bytecode Sourcemap

4420:7951:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5410:55;;;;;;;;;;;;;;;;;;;6776:25:1;;;6764:2;6749:18;5410:55:0;;;;;;;;6433:80;;;;;;;;;;-1:-1:-1;6505:5:0;;;;;;;;;;;;-1:-1:-1;;;6505:5:0;;;;6433:80;;;;;;;:::i;6855:216::-;;;;;;;;;;-1:-1:-1;6855:216:0;;;;;:::i;:::-;;:::i;:::-;;;3918:14:1;;3911:22;3893:41;;3881:2;3866:18;6855:216:0;3848:92:1;6163:88:0;;;;;;;;;;-1:-1:-1;6236:12:0;;6163:88;;7373:370;;;;;;;;;;-1:-1:-1;7373:370:0;;;;;:::i;:::-;;:::i;2658:103::-;;;;;;;;;;-1:-1:-1;2658:103:0;;;;;:::i;:::-;2713:4;2748:5;-1:-1:-1;;;;;2737:16:0;;;2748:5;;2737:16;;2658:103;6257:80;;;;;;;;;;-1:-1:-1;6257:80:0;;4758:1;8192:36:1;;8180:2;8165:18;6257:80:0;8147:87:1;11800:118:0;;;;;;;;;;;;;:::i;:::-;;12076:220;;;;;;;;;;-1:-1:-1;12076:220:0;;;;;:::i;:::-;;:::i;7079:122::-;;;;;;;;;;-1:-1:-1;7079:122:0;;;;;:::i;:::-;;:::i;4828:58::-;;;;;;;;;;;;;;;;9739:104;;;;;;;;;;-1:-1:-1;9739:104:0;;;;;:::i;:::-;;:::i;5373:30::-;;;;;;;;;;-1:-1:-1;5373:30:0;;;;-1:-1:-1;;;5373:30:0;;;;;;6603:105;;;;;;;;;;-1:-1:-1;6603:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;6687:18:0;6669:7;6687:18;;;:9;:18;;;;;;;6603:105;2767:131;;;;;;;;;;;;;:::i;6519:78::-;;;;;;;;;;-1:-1:-1;6571:7:0;6589:5;-1:-1:-1;;;;;6589:5:0;6519:78;;;-1:-1:-1;;;;;3097:32:1;;;3079:51;;3067:2;3052:18;6519:78:0;3034:102:1;6343:84:0;;;;;;;;;;-1:-1:-1;6417:7:0;;;;;;;;;;;;-1:-1:-1;;;6417:7:0;;;;6343:84;;5345:19;;;;;;;;;;-1:-1:-1;5345:19:0;;;;-1:-1:-1;;;;;5345:19:0;;;7209:156;;;;;;;;;;-1:-1:-1;7209:156:0;;;;;:::i;:::-;;:::i;6714:133::-;;;;;;;;;;-1:-1:-1;6714:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;6816:19:0;;;6798:7;6816:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;6714:133;5257:48;;;;;;;;;;-1:-1:-1;5257:48:0;;;;-1:-1:-1;;;;;5257:48:0;;;11926:142;;;;;;;;;;-1:-1:-1;11926:142:0;;;;;:::i;:::-;;:::i;5314:24::-;;;;;;;;;;-1:-1:-1;5314:24:0;;;;-1:-1:-1;;;;;5314:24:0;;;6855:216;6959:10;6930:4;6947:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;6947:32:0;;;;;;;;;;:41;;;7004:37;6930:4;;6947:32;;7004:37;;;;6982:6;6776:25:1;;6764:2;6749:18;;6731:76;7004:37:0;;;;;;;;-1:-1:-1;7059:4:0;6855:216;;;;;:::o;7373:370::-;-1:-1:-1;;;;;7493:19:0;;7473:4;7493:19;;;:11;:19;;;;;;;;7513:10;7493:31;;;;;;;;-1:-1:-1;;7493:52:0;7490:186;;7595:69;;;;;;;;;;;-1:-1:-1;;;7595:69:0;;;;;;;;-1:-1:-1;;;;;7595:19:0;;-1:-1:-1;7595:19:0;;;:11;:19;;;;;7615:10;7595:31;;;;;;;;;;:69;;7631:6;;7595:35;:69::i;:::-;-1:-1:-1;;;;;7561:19:0;;;;;;:11;:19;;;;;;;;7581:10;7561:31;;;;;;;:103;7490:186;7695:40;7709:6;7717:9;7728:6;7695:13;:40::i;:::-;7688:47;;7373:370;;;;;;:::o;11800:118::-;11857:20;;11849:61;;-1:-1:-1;;;;;11857:20:0;;;;11888:21;11849:61;;;;;11857:20;11849:61;11857:20;11849:61;11888:21;11857:20;11849:61;;;;;;;;;;;;;;;;;;;;;11800:118::o;12076:220::-;2713:4;2748:5;-1:-1:-1;;;;;2748:5:0;2619:10;2737:16;2603:38;;;;-1:-1:-1;;;2603:38:0;;;;;;;:::i;:::-;;;;;;;;;12169:12:::1;:28:::0;;;12210:12:::1;:28:::0;;;12261:27:::1;12225:13:::0;12184;12261:27:::1;:::i;:::-;12250:8;:38:::0;-1:-1:-1;;12076:220:0:o;7079:122::-;7134:4;7158:35;7166:7;-1:-1:-1;;7158:7:0;:35::i;9739:104::-;2713:4;2748:5;-1:-1:-1;;;;;2748:5:0;2619:10;2737:16;2603:38;;;;-1:-1:-1;;;2603:38:0;;;;;;;:::i;:::-;9809:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;9809:26:0::1;-1:-1:-1::0;;;;9809:26:0;;::::1;::::0;;;::::1;::::0;;9739:104::o;2767:131::-;2713:4;2748:5;-1:-1:-1;;;;;2748:5:0;2619:10;2737:16;2603:38;;;;-1:-1:-1;;;2603:38:0;;;;;;;:::i;:::-;2840:1:::1;2824:18:::0;;-1:-1:-1;;;;;;2824:18:0::1;::::0;;2858:32:::1;::::0;3079:51:1;;;2858:32:0::1;::::0;3067:2:1;3052:18;2858:32:0::1;;;;;;;2767:131::o:0;7209:156::-;7289:4;7313:44;7327:10;7339:9;7350:6;7313:13;:44::i;11926:142::-;2713:4;2748:5;-1:-1:-1;;;;;2748:5:0;2619:10;2737:16;2603:38;;;;-1:-1:-1;;;2603:38:0;;;;;;;:::i;:::-;12056:4:::1;12038:13;12023:12;;:28;;;;:::i;:::-;12022:38;;;;:::i;:::-;12003:16;:57:::0;-1:-1:-1;11926:142:0:o;747:190::-;833:7;869:12;861:6;;;;853:29;;;;-1:-1:-1;;;853:29:0;;;;;;;;:::i;:::-;-1:-1:-1;893:9:0;905:5;909:1;905;:5;:::i;:::-;893:17;747:190;-1:-1:-1;;;;;747:190:0:o;7751:976::-;7863:6;;7843:4;;7863:6;;7860:63;;;7879:41;7894:6;7902:9;7913:6;7879:14;:41::i;:::-;7872:48;;;;7860:63;7960:4;;-1:-1:-1;;;;;7947:17:0;;;7960:4;;7947:17;;;;:38;;-1:-1:-1;7981:4:0;;-1:-1:-1;;;;;7968:17:0;;;7981:4;;7968:17;;7947:38;:67;;;;-1:-1:-1;8002:12:0;;-1:-1:-1;;;;;7989:25:0;;;8002:12;;7989:25;;7947:67;:104;;;;-1:-1:-1;8031:20:0;;-1:-1:-1;;;;;8018:33:0;;;8031:20;;8018:33;;7947:104;:134;;;;-1:-1:-1;;;;;;8055:26:0;;8076:4;8055:26;;7947:134;7943:296;;;-1:-1:-1;;;;;8106:26:0;;;;;;:15;:26;;;;;;;;;:79;;-1:-1:-1;8169:16:0;;-1:-1:-1;;;;;8136:20:0;;;;;;:9;:20;;;;;;:29;;8159:6;;8136:29;:::i;:::-;:49;;8106:79;8098:129;;;;-1:-1:-1;;;8098:129:0;;4975:2:1;8098:129:0;;;4957:21:1;5014:2;4994:18;;;4987:30;5053:34;5033:18;;;5026:62;-1:-1:-1;;;5104:18:1;;;5097:35;5149:19;;8098:129:0;4947:227:1;8098:129:0;8262:16;:14;:16::i;:::-;:37;;;;-1:-1:-1;8295:4:0;;-1:-1:-1;;;;;8282:17:0;;;8295:4;;8282:17;;8262:37;:74;;;;-1:-1:-1;8316:20:0;;-1:-1:-1;;;;;8303:33:0;;;8316:20;;8303:33;;8262:74;:104;;;;-1:-1:-1;;;;;;8340:26:0;;8361:4;8340:26;;8262:104;8259:123;;;8369:10;:8;:10::i;:::-;8415:53;;;;;;;;;;;-1:-1:-1;;;8415:53:0;;;;;;;;-1:-1:-1;;;;;8415:17:0;;-1:-1:-1;8415:17:0;;;:9;:17;;;;;;;;:53;;8437:6;;8415:21;:53::i;:::-;-1:-1:-1;;;;;8395:17:0;;;;;;:9;:17;;;;;;;;:73;;;;9164:11;:19;;;;;;;;9163:20;8506:56;;8556:6;8506:56;;;8530:23;8538:6;8546;8530:7;:23::i;:::-;-1:-1:-1;;;;;8596:20:0;;;;;;:9;:20;;;;;;8481:81;;-1:-1:-1;8596:40:0;;8481:81;8596:24;:40::i;:::-;-1:-1:-1;;;;;8573:20:0;;;;;;;:9;:20;;;;;;;:63;;;;8654:43;;;;;;;;;;8682:14;6776:25:1;;6764:2;6749:18;;6731:76;8654:43:0;;;;;;;;-1:-1:-1;8715:4:0;;7751:976;-1:-1:-1;;;;7751:976:0:o;8739:330::-;8869:53;;;;;;;;;;;-1:-1:-1;;;8869:53:0;;;;;;;;-1:-1:-1;;;;;8869:17:0;;8832:4;8869:17;;;:9;:17;;;;;;;:53;;8891:6;;8869:21;:53::i;:::-;-1:-1:-1;;;;;8849:17:0;;;;;;;:9;:17;;;;;;:73;;;;8956:20;;;;;;;:32;;8981:6;8956:24;:32::i;:::-;-1:-1:-1;;;;;8933:20:0;;;;;;;:9;:20;;;;;;;:55;;;;9004:35;;;;;;;;;;9032:6;6776:25:1;;6764:2;6749:18;;6731:76;9004:35:0;;;;;;;;-1:-1:-1;9057:4:0;8739:330;;;;;:::o;9536:197::-;9623:4;;9585;;-1:-1:-1;;;;;9623:4:0;9609:10;:18;;;;:38;;-1:-1:-1;9641:6:0;;;;9640:7;9609:38;:62;;;;-1:-1:-1;9660:11:0;;-1:-1:-1;;;9660:11:0;;;;9609:62;:116;;;;-1:-1:-1;9712:13:0;;9702:4;9684:24;;;;:9;:24;;;;;;:41;;9609:116;9602:123;;9536:197;:::o;9853:1561::-;5521:6;:13;;-1:-1:-1;;5521:13:0;5530:4;5521:13;;;9951:4:::1;-1:-1:-1::0;6687:18:0;;;:9;:18;;;;;;9902:55:::1;;9968:23;9994:59;10051:1;9994:52;10037:8;;9994:38;10019:12;;9994:20;:24;;:38;;;;:::i;:::-;:42:::0;::::1;:52::i;:59::-;9968:85:::0;-1:-1:-1;10064:20:0::1;10087:41;:20:::0;9968:85;10087:24:::1;:41::i;:::-;10165:16;::::0;;10179:1:::1;10165:16:::0;;;;;::::1;::::0;;10064:64;;-1:-1:-1;10141:21:0::1;::::0;10165:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10165:16:0::1;10141:40;;10210:4;10192;10197:1;10192:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10192:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10236:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;10236:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;10192:7;;10236:13;;;;;:6;:13;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10226:4;10231:1;10226:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10226:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;10320:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;10320:188:0;;10286:21:::1;::::0;10320:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;10392:12;;10262:21:::1;::::0;10435:4;;10462::::1;::::0;10482:15:::1;::::0;10320:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10519:17;10539:40;10565:13;10539:21;:25;;:40;;;;:::i;:::-;10519:60;;10590:19;10612:33;10625:19;10642:1;10625:12;;:16;;:19;;;;:::i;:::-;10612:8;::::0;;:12:::1;:33::i;:::-;10590:55;;10656:26;10685:51;10734:1;10685:44;10717:11;10685:27;10699:12;;10685:9;:13;;:27;;;;:::i;:51::-;10656:80;;10747:26;10776:44;10808:11;10776:27;10790:12;;10776:9;:13;;:27;;;;:::i;:44::-;10894:20;::::0;10886:77:::1;::::0;10747:73;;-1:-1:-1;10836:21:0::1;::::0;-1:-1:-1;;;;;10894:20:0;;::::1;::::0;10953:5:::1;::::0;10747:73;;10836:21;10886:77;10836:21;10886:77;10747:73;10894:20;10953:5;10886:77:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10835:128;;;10982:16;10974:59;;;::::0;-1:-1:-1;;;10974:59:0;;5737:2:1;10974:59:0::1;::::0;::::1;5719:21:1::0;5776:2;5756:18;;;5749:30;5815:32;5795:18;;;5788:60;5865:18;;10974:59:0::1;5709:180:1::0;10974:59:0::1;11049:19:::0;;11046:361:::1;;11084:6;::::0;11258:20:::1;::::0;11084:243:::1;::::0;-1:-1:-1;;;11084:243:0;;11160:4:::1;11084:243;::::0;::::1;3482:34:1::0;3532:18;;;3525:34;;;11084:6:0::1;3575:18:1::0;;;3568:34;;;3618:18;;;3611:34;-1:-1:-1;;;;;11258:20:0;;::::1;3661:19:1::0;;;3654:44;11297:15:0::1;3714:19:1::0;;;3707:35;11084:6:0;::::1;::::0;:22:::1;::::0;11114:18;;3416:19:1;;11084:243:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11347:48:0::1;::::0;;7971:25:1;;;8027:2;8012:18;;8005:34;;;11347:48:0::1;::::0;-1:-1:-1;7944:18:1;11347:48:0::1;;;;;;;11046:361;-1:-1:-1::0;;5539:6:0;:14;;-1:-1:-1;;5539:14:0;;;-1:-1:-1;;;;;;;;9853:1561:0:o;9199:329::-;9266:7;9286:17;9306:40;9331:14;;9306:20;9317:8;;9306:6;:10;;:20;;;;:::i;:40::-;9402:4;9384:24;;;;:9;:24;;;;;;9286:60;;-1:-1:-1;9384:39:0;;9286:60;9384:28;:39::i;:::-;9375:4;9357:24;;;;:9;:24;;;;;;;:66;;;;9439:42;;-1:-1:-1;;;;;9439:42:0;;;;;;;9471:9;6776:25:1;;6764:2;6749:18;;6731:76;9439:42:0;;;;;;;;9499:21;:6;9510:9;9499:10;:21::i;:::-;9492:28;9199:329;-1:-1:-1;;;;9199:329:0:o;420:179::-;478:7;;510:5;514:1;510;:5;:::i;:::-;498:17;;539:1;534;:6;;526:46;;;;-1:-1:-1;;;526:46:0;;5381:2:1;526:46:0;;;5363:21:1;5420:2;5400:18;;;5393:30;5459:29;5439:18;;;5432:57;5506:18;;526:46:0;5353:177:1;943:246:0;1001:7;1025:6;1021:47;;-1:-1:-1;1055:1:0;1048:8;;1021:47;1078:9;1090:5;1094:1;1090;:5;:::i;:::-;1078:17;-1:-1:-1;1123:1:0;1114:5;1118:1;1078:17;1114:5;:::i;:::-;:10;1106:56;;;;-1:-1:-1;;;1106:56:0;;6096:2:1;1106:56:0;;;6078:21:1;6135:2;6115:18;;;6108:30;6174:34;6154:18;;;6147:62;-1:-1:-1;;;6225:18:1;;;6218:31;6266:19;;1106:56:0;6068:223:1;1195:132:0;1253:7;1280:39;1284:1;1287;1280:39;;;;;;;;;;;;;;;;;:3;:39::i;605:136::-;663:7;690:43;694:1;697;690:43;;;;;;;;;;;;;;;;;:3;:43::i;1333:189::-;1419:7;1454:12;1447:5;1439:28;;;;-1:-1:-1;;;1439:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1478:9:0;1490:5;1494:1;1490;:5;:::i;14:247:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;142:1;139;132:12;94:2;181:9;168:23;200:31;225:5;200:31;:::i;266:251::-;336:6;389:2;377:9;368:7;364:23;360:32;357:2;;;405:1;402;395:12;357:2;437:9;431:16;456:31;481:5;456:31;:::i;522:388::-;590:6;598;651:2;639:9;630:7;626:23;622:32;619:2;;;667:1;664;657:12;619:2;706:9;693:23;725:31;750:5;725:31;:::i;:::-;775:5;-1:-1:-1;832:2:1;817:18;;804:32;845:33;804:32;845:33;:::i;:::-;897:7;887:17;;;609:301;;;;;:::o;915:456::-;992:6;1000;1008;1061:2;1049:9;1040:7;1036:23;1032:32;1029:2;;;1077:1;1074;1067:12;1029:2;1116:9;1103:23;1135:31;1160:5;1135:31;:::i;:::-;1185:5;-1:-1:-1;1242:2:1;1227:18;;1214:32;1255:33;1214:32;1255:33;:::i;:::-;1019:352;;1307:7;;-1:-1:-1;;;1361:2:1;1346:18;;;;1333:32;;1019:352::o;1376:315::-;1444:6;1452;1505:2;1493:9;1484:7;1480:23;1476:32;1473:2;;;1521:1;1518;1511:12;1473:2;1560:9;1547:23;1579:31;1604:5;1579:31;:::i;:::-;1629:5;1681:2;1666:18;;;;1653:32;;-1:-1:-1;;;1463:228:1:o;1696:273::-;1752:6;1805:2;1793:9;1784:7;1780:23;1776:32;1773:2;;;1821:1;1818;1811:12;1773:2;1860:9;1847:23;1913:5;1906:13;1899:21;1892:5;1889:32;1879:2;;1935:1;1932;1925:12;1974:180;2033:6;2086:2;2074:9;2065:7;2061:23;2057:32;2054:2;;;2102:1;2099;2092:12;2054:2;-1:-1:-1;2125:23:1;;2044:110;-1:-1:-1;2044:110:1:o;2159:248::-;2227:6;2235;2288:2;2276:9;2267:7;2263:23;2259:32;2256:2;;;2304:1;2301;2294:12;2256:2;-1:-1:-1;;2327:23:1;;;2397:2;2382:18;;;2369:32;;-1:-1:-1;2246:161:1:o;2412:306::-;2500:6;2508;2516;2569:2;2557:9;2548:7;2544:23;2540:32;2537:2;;;2585:1;2582;2575:12;2537:2;2614:9;2608:16;2598:26;;2664:2;2653:9;2649:18;2643:25;2633:35;;2708:2;2697:9;2693:18;2687:25;2677:35;;2527:191;;;;;:::o;4171:597::-;4283:4;4312:2;4341;4330:9;4323:21;4373:6;4367:13;4416:6;4411:2;4400:9;4396:18;4389:34;4441:1;4451:140;4465:6;4462:1;4459:13;4451:140;;;4560:14;;;4556:23;;4550:30;4526:17;;;4545:2;4522:26;4515:66;4480:10;;4451:140;;;4609:6;4606:1;4603:13;4600:2;;;4679:1;4674:2;4665:6;4654:9;4650:22;4646:31;4639:42;4600:2;-1:-1:-1;4752:2:1;4731:15;-1:-1:-1;;4727:29:1;4712:45;;;;4759:2;4708:54;;4292:476;-1:-1:-1;;;4292:476:1:o;6296:329::-;6498:2;6480:21;;;6537:1;6517:18;;;6510:29;-1:-1:-1;;;6570:2:1;6555:18;;6548:36;6616:2;6601:18;;6470:155::o;6812:980::-;7074:4;7122:3;7111:9;7107:19;7153:6;7142:9;7135:25;7179:2;7217:6;7212:2;7201:9;7197:18;7190:34;7260:3;7255:2;7244:9;7240:18;7233:31;7284:6;7319;7313:13;7350:6;7342;7335:22;7388:3;7377:9;7373:19;7366:26;;7427:2;7419:6;7415:15;7401:29;;7448:1;7458:195;7472:6;7469:1;7466:13;7458:195;;;7537:13;;-1:-1:-1;;;;;7533:39:1;7521:52;;7628:15;;;;7593:12;;;;7569:1;7487:9;7458:195;;;-1:-1:-1;;;;;;;7709:32:1;;;;7704:2;7689:18;;7682:60;-1:-1:-1;;;7773:3:1;7758:19;7751:35;7670:3;7083:709;-1:-1:-1;;;7083:709:1:o;8239:128::-;8279:3;8310:1;8306:6;8303:1;8300:13;8297:2;;;8316:18;;:::i;:::-;-1:-1:-1;8352:9:1;;8287:80::o;8372:217::-;8412:1;8438;8428:2;;8482:10;8477:3;8473:20;8470:1;8463:31;8517:4;8514:1;8507:15;8545:4;8542:1;8535:15;8428:2;-1:-1:-1;8574:9:1;;8418:171::o;8594:168::-;8634:7;8700:1;8696;8692:6;8688:14;8685:1;8682:21;8677:1;8670:9;8663:17;8659:45;8656:2;;;8707:18;;:::i;:::-;-1:-1:-1;8747:9:1;;8646:116::o;8767:125::-;8807:4;8835:1;8832;8829:8;8826:2;;;8840:18;;:::i;:::-;-1:-1:-1;8877:9:1;;8816:76::o;8897:127::-;8958:10;8953:3;8949:20;8946:1;8939:31;8989:4;8986:1;8979:15;9013:4;9010:1;9003:15;9029:127;9090:10;9085:3;9081:20;9078:1;9071:31;9121:4;9118:1;9111:15;9145:4;9142:1;9135:15;9293:131;-1:-1:-1;;;;;9368:31:1;;9358:42;;9348:2;;9414:1;9411;9404:12

Swarm Source

ipfs://40b404ea7ac86a084d5ac7d763236f4e2401240f0bf101644ee5a851561f8d06
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.