ETH Price: $3,302.58 (-1.93%)
Gas: 1 Gwei

Token

Buddy AI (BAI)
 

Overview

Max Total Supply

100,000,000 BAI

Holders

70

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
790,442.815365521 BAI

Value
$0.00
0x2694dd90227326de32cdbd4477c767fe2c14684b
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:
BAI

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-03-09
*/

/**

Website: https://buddyaieth.com
Whitepaper: https://docs.buddyaieth.com
Twitter: https://twitter.com/buddyaieth
Telegram: https://t.me/buddyaieth
 
*/

// SPDX-License-Identifier: No

pragma solidity ^0.8.15;

//--- Context ---//
abstract contract Context {
    constructor() {
    }

    function _msgSender() internal view returns (address payable) {
        return payable(msg.sender);
    }

    function _msgData() internal view returns (bytes memory) {
        this;
        return msg.data;
    }
}

//--- Ownable ---//
abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

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

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

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

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

interface IFactoryV2 {
    event PairCreated(address indexed token0, address indexed token1, address uniswapPair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address uniswapPair);
    function createPair(address tokenA, address tokenB) external returns (address uniswapPair);
}

interface IV2Pair {
    function factory() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function sync() external;
}

interface IRouter01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    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 swapExactETHForTokens(
        uint amountOutMin, 
        address[] calldata path, 
        address to, uint deadline
    ) external payable returns (uint[] memory amounts);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IRouter02 is IRouter01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        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 swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
}

//--- Interface for ERC20 ---//
interface IERC20 {
    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);
}

contract BAI is Context, Ownable, IERC20 {

    function totalSupply() external view override returns (uint256) { if (_totalSupply == 0) { revert(); } return _totalSupply - balanceOf(address(DEAD)); }
    function decimals() external pure override returns (uint8) { if (_totalSupply == 0) { revert(); } 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 allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    function balanceOf(address account) public view override returns (uint256) {
        return balance[account];
    }

    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludeFromFees;
    mapping (address => bool) private _isAMMPair;
    mapping (address => uint256) private balance;

    uint256 constant public _totalSupply = 100000000 * 10**9;
    uint256 constant public feeDenominator = 100;
    uint256 public taxFeeBuy = 0;
    uint256 public taxFeeSell = 0;
    uint256 public transferfee = 0;
    uint256 private maxWalletHolding = _totalSupply * 2 / 100;
    uint256 constant private _swapLimitTokens = _totalSupply * 7 / 1000000;
    uint256 constant private _maxSwapTokens = _totalSupply * 1 / 100;

    IRouter02 public swapRouter;
    string constant private _name = "Buddy AI";
    string constant private _symbol = "BAI";
    uint8 constant private _decimals = 9;
    address constant public DEAD = 0x000000000000000000000000000000000000dEaD;
    address payable private _buddyWallet = payable(0xA0F68eFc57464C4D555e16787A8eAd32C987d423);
    address public uniswapPair;
    bool private _tradingActive = false;
    bool private _swapEnabled = false;
    bool private _swapping;

    modifier lockSwap {
        _swapping = true;
        _;
        _swapping = false;
    }


    event _enableTrading();

    constructor () {
        _isExcludeFromFees[msg.sender] = true;
        _isExcludeFromFees[address(this)] = true;
        _isExcludeFromFees[_buddyWallet] = true;

        swapRouter = IRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        balance[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }
    
    receive() external payable {}

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function approve(address spender, uint256 amount) external override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function _approve(address sender, address spender, uint256 amount) internal {
        require(sender != address(0), "ERC20: Zero Address");
        require(spender != address(0), "ERC20: Zero Address");

        _allowances[sender][spender] = 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] -= amount;
        }

        return _transfer(sender, recipient, amount);
    }

    function _checkIsBuy(address ins, address out) internal view returns (bool) {
        bool result = !_isAMMPair[out] && _isAMMPair[ins];
        return result;
    }

    function _checkIsSell(address ins, address out) internal view returns (bool) { 
        bool result = _isAMMPair[out] && !_isAMMPair[ins];
        return result;
    } 

    function canSwap(address ins, address out, uint256 amount) internal view returns (bool) {
        return _swapEnabled && !_isExcludeFromFees[ins] && !_isExcludeFromFees[out] && amount >= _swapLimitTokens;
    }

    function _transfer(address from, address to, uint256 amount) internal returns  (bool) {
        bool takeFee = true;
        require(to != address(0), "ERC20: transfer to the zero address");
        require(from != address(0), "ERC20: transfer from the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (!_isExcludeFromFees[from] && !_isExcludeFromFees[to]) {
            require(_tradingActive,"Trading is not enabled");
        }

        if(!_isExcludeFromFees[from] && !_isExcludeFromFees[to] && !_isAMMPair[to] && to != address(DEAD)){
            require(balance[to]+amount <= maxWalletHolding, "Exceeds maximum wallet amount.");
        }

        if(_checkIsSell(from, to) && !_swapping && canSwap(from, to, amount)) {
            uint256 contractTokenBalance = balanceOf(address(this));
            if(contractTokenBalance >= _swapLimitTokens) { 
                if (contractTokenBalance >= _maxSwapTokens) contractTokenBalance = _maxSwapTokens;
                swapBack(contractTokenBalance);
            }
        }

        if (_isExcludeFromFees[from] || _isExcludeFromFees[to]){
            takeFee = false;
        }

        uint256 amountFeeAfter = (takeFee) ? takeTaxFees(from, _checkIsBuy(from, to), _checkIsSell(from, to), amount) : amount;
        if (_isExcludeFromFees[from] && from != address(this) && from != owner()) amount = amount - amountFeeAfter;
        balance[from] -= amount; 
        balance[to] += amountFeeAfter; emit Transfer(from, to, amountFeeAfter);

        return true;

    }

    function takeTaxFees(address from, bool isbuy, bool issell, uint256 amount) internal returns (uint256) {
        uint256 fee;
        if (isbuy)  fee = taxFeeBuy;  else if (issell)  fee = taxFeeSell;  else  fee = transferfee; 
        if (fee == 0)  return amount;
        uint256 feeAmount = amount * fee / feeDenominator;
        if (feeAmount > 0) {
            balance[address(this)] += feeAmount;
            emit Transfer(from, address(this), feeAmount);            
        }
        return amount - feeAmount;
    }

    function swapBack(uint256 contractTokenBalance) internal lockSwap {
        
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = swapRouter.WETH();

        if (_allowances[address(this)][address(swapRouter)] != type(uint256).max) {
            _allowances[address(this)][address(swapRouter)] = type(uint256).max;
        }

        try swapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            contractTokenBalance,
            0,
            path,
            address(this),
            block.timestamp
        ) {} catch {
            return;
        }

        payable(_buddyWallet).transfer(address(this).balance);

    }
    
    function reduceFee(uint256 _fee) external onlyOwner {
        taxFeeBuy = _fee;
        taxFeeSell = _fee;

        require(_fee <= 5);
    }

    function removeMaxHolding() external onlyOwner {
        maxWalletHolding = _totalSupply;
    }

    function addBuddyPool() external payable onlyOwner {
        uniswapPair = IFactoryV2(swapRouter.factory()).createPair(swapRouter.WETH(), address(this));
        _isAMMPair[uniswapPair] = true;
        _approve(address(this), address(swapRouter), type(uint256).max);

        swapRouter.addLiquidityETH{value: msg.value}(
            address(this),
            balance[address(this)],
            0,
            0,
            owner(),
            block.timestamp);
    }

    function startBuddy() external onlyOwner {
        require(!_tradingActive, "Trading already enabled");
        taxFeeBuy = 27;
        taxFeeSell = 19;
        _tradingActive = true;
        _swapEnabled = true;
    }
}

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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","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"},{"anonymous":false,"inputs":[],"name":"_enableTrading","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addBuddyPool","outputs":[],"stateMutability":"payable","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeMaxHolding","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startBuddy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxFeeBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxFeeSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040525f6005555f6006555f600755606467016345785d8a000060026100279190610188565b61003191906101b1565b600855600a80546001600160a01b03191673a0f68efc57464c4d555e16787a8ead32c987d423179055600b805461ffff60a01b19169055348015610073575f80fd5b5061007d33610139565b335f818152600260209081526040808320805460ff1990811660019081179092553085528285208054821683179055600a546001600160a01b0316855282852080549091169091179055600980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790558383526004825280832067016345785d8a00009081905590519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36101d0565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80820281158282048414176101ab57634e487b7160e01b5f52601160045260245ffd5b92915050565b5f826101cb57634e487b7160e01b5f52601260045260245ffd5b500490565b61169980620001de5f395ff3fe608060405260043610610164575f3560e01c806370a08231116100cd578063a9059cbb11610087578063d45d05e111610062578063d45d05e1146103e9578063dd62ed3e146103f1578063ec1f3f6314610435578063f2fde38b14610454575f80fd5b8063a9059cbb1461038c578063c31c9c07146103ab578063c816841b146103ca575f80fd5b806370a08231146102e9578063715018a61461031d5780638330a32214610331578063893d20e8146103455780638da5cb5b1461034557806395d89b4114610361575f80fd5b8063313ce5671161011e578063313ce5671461025e5780633978f4e3146102795780633eaaf86b1461028e57806354de7bee146102a9578063557d112e146102be5780636a6a126f146102d4575f80fd5b806303fd2a451461016f57806306fdde03146101a1578063095ea7b3146101da578063180b0d7e1461020957806318160ddd1461022b57806323b872dd1461023f575f80fd5b3661016b57005b5f80fd5b34801561017a575f80fd5b5061018461dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101ac575f80fd5b50604080518082019091526008815267427564647920414960c01b60208201525b60405161019891906113bb565b3480156101e5575f80fd5b506101f96101f436600461141b565b610473565b6040519015158152602001610198565b348015610214575f80fd5b5061021d606481565b604051908152602001610198565b348015610236575f80fd5b5061021d610489565b34801561024a575f80fd5b506101f9610259366004611445565b6104cd565b348015610269575f80fd5b5060405160098152602001610198565b348015610284575f80fd5b5061021d60055481565b348015610299575f80fd5b5061021d67016345785d8a000081565b3480156102b4575f80fd5b5061021d60075481565b3480156102c9575f80fd5b506102d2610542565b005b3480156102df575f80fd5b5061021d60065481565b3480156102f4575f80fd5b5061021d610303366004611483565b6001600160a01b03165f9081526004602052604090205490565b348015610328575f80fd5b506102d26105ef565b34801561033c575f80fd5b506102d2610623565b348015610350575f80fd5b505f546001600160a01b0316610184565b34801561036c575f80fd5b5060408051808201909152600381526242414960e81b60208201526101cd565b348015610397575f80fd5b506101f96103a636600461141b565b61065a565b3480156103b6575f80fd5b50600954610184906001600160a01b031681565b3480156103d5575f80fd5b50600b54610184906001600160a01b031681565b6102d2610670565b3480156103fc575f80fd5b5061021d61040b3660046114a5565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610440575f80fd5b506102d261044f3660046114dc565b61090f565b34801561045f575f80fd5b506102d261046e366004611483565b610950565b5f61047f3384846109e7565b5060015b92915050565b5f61dead5f5260046020527f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd546104c89067016345785d8a0000611507565b905090565b6001600160a01b0383165f9081526001602090815260408083203384529091528120545f191461052f576001600160a01b0384165f90815260016020908152604080832033845290915281208054849290610529908490611507565b90915550505b61053a848484610aaa565b949350505050565b5f546001600160a01b031633146105745760405162461bcd60e51b815260040161056b9061151a565b60405180910390fd5b600b54600160a01b900460ff16156105ce5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720616c726561647920656e61626c6564000000000000000000604482015260640161056b565b601b6005556013600655600b805461ffff60a01b191661010160a01b179055565b5f546001600160a01b031633146106185760405162461bcd60e51b815260040161056b9061151a565b6106215f610f9e565b565b5f546001600160a01b0316331461064c5760405162461bcd60e51b815260040161056b9061151a565b67016345785d8a0000600855565b5f610666338484610aaa565b5060019392505050565b5f546001600160a01b031633146106995760405162461bcd60e51b815260040161056b9061151a565b60095f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106e9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061070d919061154f565b6001600160a01b031663c9c6539660095f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561076b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061078f919061154f565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303815f875af11580156107d8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107fc919061154f565b600b80546001600160a01b0319166001600160a01b039283169081179091555f908152600360205260409020805460ff19166001179055600954610844913091165f196109e7565b600954305f818152600460205260408120546001600160a01b039093169263f305d7199234929091908061087f5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108e5573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061090a919061156a565b505050565b5f546001600160a01b031633146109385760405162461bcd60e51b815260040161056b9061151a565b6005818155600682905581111561094d575f80fd5b50565b5f546001600160a01b031633146109795760405162461bcd60e51b815260040161056b9061151a565b6001600160a01b0381166109de5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161056b565b61094d81610f9e565b6001600160a01b038316610a335760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640161056b565b6001600160a01b038216610a7f5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640161056b565b6001600160a01b039283165f9081526001602090815260408083209490951682529290925291902055565b5f60016001600160a01b038416610b0f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161056b565b6001600160a01b038516610b735760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161056b565b5f8311610bd45760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161056b565b6001600160a01b0385165f9081526002602052604090205460ff16158015610c1457506001600160a01b0384165f9081526002602052604090205460ff16155b15610c6b57600b54600160a01b900460ff16610c6b5760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd08195b98589b195960521b604482015260640161056b565b6001600160a01b0385165f9081526002602052604090205460ff16158015610cab57506001600160a01b0384165f9081526002602052604090205460ff16155b8015610ccf57506001600160a01b0384165f9081526003602052604090205460ff16155b8015610ce657506001600160a01b03841661dead14155b15610d5f576008546001600160a01b0385165f90815260046020526040902054610d11908590611595565b1115610d5f5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161056b565b610d698585610fed565b8015610d7f5750600b54600160b01b900460ff16155b8015610d915750610d91858585611032565b15610e1e57305f90815260046020526040902054620f4240610dbc67016345785d8a000060076115a8565b610dc691906115bf565b8110610e1c576064610de167016345785d8a000060016115a8565b610deb91906115bf565b8110610e13576064610e0667016345785d8a000060016115a8565b610e1091906115bf565b90505b610e1c816110bc565b505b6001600160a01b0385165f9081526002602052604090205460ff1680610e5b57506001600160a01b0384165f9081526002602052604090205460ff165b15610e6357505f5b5f81610e6f5783610e8d565b610e8d86610e7d88886112a9565b610e878989610fed565b876112ee565b6001600160a01b0387165f9081526002602052604090205490915060ff168015610ec057506001600160a01b0386163014155b8015610ed957505f546001600160a01b03878116911614155b15610eeb57610ee88185611507565b93505b6001600160a01b0386165f9081526004602052604081208054869290610f12908490611507565b90915550506001600160a01b0385165f9081526004602052604081208054839290610f3e908490611595565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610f8a91815260200190565b60405180910390a350600195945050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381165f90815260036020526040812054819060ff16801561053a57505050506001600160a01b03165f9081526003602052604090205460ff161590565b600b545f90600160a81b900460ff16801561106557506001600160a01b0384165f9081526002602052604090205460ff16155b801561108957506001600160a01b0383165f9081526002602052604090205460ff16155b801561053a5750620f42406110a767016345785d8a000060076115a8565b6110b191906115bf565b909110159392505050565b600b805460ff60b01b1916600160b01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611102576111026115de565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611159573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061117d919061154f565b81600181518110611190576111906115de565b6001600160a01b03928316602091820292909201810191909152305f90815260018252604080822060095490941682529290915220545f19146111f657305f9081526001602090815260408083206009546001600160a01b0316845290915290205f1990555b60095460405163791ac94760e01b81526001600160a01b039091169063791ac9479061122e9085905f908690309042906004016115f2565b5f604051808303815f87803b158015611245575f80fd5b505af1925050508015611256575060015b6112605750611299565b600a546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015611296573d5f803e3d5ffd5b50505b50600b805460ff60b01b19169055565b6001600160a01b0381165f90815260036020526040812054819060ff1615801561053a57505050506001600160a01b03165f9081526003602052604090205460ff1690565b5f8084156112ff5750600554611313565b831561130e5750600654611313565b506007545b805f03611323578291505061053a565b5f606461133083866115a8565b61133a91906115bf565b905080156113a657305f9081526004602052604081208054839290611360908490611595565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b6113b08185611507565b979650505050505050565b5f602080835283518060208501525f5b818110156113e7578581018301518582016040015282016113cb565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461094d575f80fd5b5f806040838503121561142c575f80fd5b823561143781611407565b946020939093013593505050565b5f805f60608486031215611457575f80fd5b833561146281611407565b9250602084013561147281611407565b929592945050506040919091013590565b5f60208284031215611493575f80fd5b813561149e81611407565b9392505050565b5f80604083850312156114b6575f80fd5b82356114c181611407565b915060208301356114d181611407565b809150509250929050565b5f602082840312156114ec575f80fd5b5035919050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610483576104836114f3565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f6020828403121561155f575f80fd5b815161149e81611407565b5f805f6060848603121561157c575f80fd5b8351925060208401519150604084015190509250925092565b80820180821115610483576104836114f3565b8082028115828204841417610483576104836114f3565b5f826115d957634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156116425784516001600160a01b03168352938301939183019160010161161d565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220203e60facf738f9be7d2921414115773e1bd7c8e93459b7be67fc3159e4cb58764736f6c63430008160033

Deployed Bytecode

0x608060405260043610610164575f3560e01c806370a08231116100cd578063a9059cbb11610087578063d45d05e111610062578063d45d05e1146103e9578063dd62ed3e146103f1578063ec1f3f6314610435578063f2fde38b14610454575f80fd5b8063a9059cbb1461038c578063c31c9c07146103ab578063c816841b146103ca575f80fd5b806370a08231146102e9578063715018a61461031d5780638330a32214610331578063893d20e8146103455780638da5cb5b1461034557806395d89b4114610361575f80fd5b8063313ce5671161011e578063313ce5671461025e5780633978f4e3146102795780633eaaf86b1461028e57806354de7bee146102a9578063557d112e146102be5780636a6a126f146102d4575f80fd5b806303fd2a451461016f57806306fdde03146101a1578063095ea7b3146101da578063180b0d7e1461020957806318160ddd1461022b57806323b872dd1461023f575f80fd5b3661016b57005b5f80fd5b34801561017a575f80fd5b5061018461dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101ac575f80fd5b50604080518082019091526008815267427564647920414960c01b60208201525b60405161019891906113bb565b3480156101e5575f80fd5b506101f96101f436600461141b565b610473565b6040519015158152602001610198565b348015610214575f80fd5b5061021d606481565b604051908152602001610198565b348015610236575f80fd5b5061021d610489565b34801561024a575f80fd5b506101f9610259366004611445565b6104cd565b348015610269575f80fd5b5060405160098152602001610198565b348015610284575f80fd5b5061021d60055481565b348015610299575f80fd5b5061021d67016345785d8a000081565b3480156102b4575f80fd5b5061021d60075481565b3480156102c9575f80fd5b506102d2610542565b005b3480156102df575f80fd5b5061021d60065481565b3480156102f4575f80fd5b5061021d610303366004611483565b6001600160a01b03165f9081526004602052604090205490565b348015610328575f80fd5b506102d26105ef565b34801561033c575f80fd5b506102d2610623565b348015610350575f80fd5b505f546001600160a01b0316610184565b34801561036c575f80fd5b5060408051808201909152600381526242414960e81b60208201526101cd565b348015610397575f80fd5b506101f96103a636600461141b565b61065a565b3480156103b6575f80fd5b50600954610184906001600160a01b031681565b3480156103d5575f80fd5b50600b54610184906001600160a01b031681565b6102d2610670565b3480156103fc575f80fd5b5061021d61040b3660046114a5565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610440575f80fd5b506102d261044f3660046114dc565b61090f565b34801561045f575f80fd5b506102d261046e366004611483565b610950565b5f61047f3384846109e7565b5060015b92915050565b5f61dead5f5260046020527f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd546104c89067016345785d8a0000611507565b905090565b6001600160a01b0383165f9081526001602090815260408083203384529091528120545f191461052f576001600160a01b0384165f90815260016020908152604080832033845290915281208054849290610529908490611507565b90915550505b61053a848484610aaa565b949350505050565b5f546001600160a01b031633146105745760405162461bcd60e51b815260040161056b9061151a565b60405180910390fd5b600b54600160a01b900460ff16156105ce5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720616c726561647920656e61626c6564000000000000000000604482015260640161056b565b601b6005556013600655600b805461ffff60a01b191661010160a01b179055565b5f546001600160a01b031633146106185760405162461bcd60e51b815260040161056b9061151a565b6106215f610f9e565b565b5f546001600160a01b0316331461064c5760405162461bcd60e51b815260040161056b9061151a565b67016345785d8a0000600855565b5f610666338484610aaa565b5060019392505050565b5f546001600160a01b031633146106995760405162461bcd60e51b815260040161056b9061151a565b60095f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106e9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061070d919061154f565b6001600160a01b031663c9c6539660095f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561076b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061078f919061154f565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303815f875af11580156107d8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107fc919061154f565b600b80546001600160a01b0319166001600160a01b039283169081179091555f908152600360205260409020805460ff19166001179055600954610844913091165f196109e7565b600954305f818152600460205260408120546001600160a01b039093169263f305d7199234929091908061087f5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108e5573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061090a919061156a565b505050565b5f546001600160a01b031633146109385760405162461bcd60e51b815260040161056b9061151a565b6005818155600682905581111561094d575f80fd5b50565b5f546001600160a01b031633146109795760405162461bcd60e51b815260040161056b9061151a565b6001600160a01b0381166109de5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161056b565b61094d81610f9e565b6001600160a01b038316610a335760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640161056b565b6001600160a01b038216610a7f5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640161056b565b6001600160a01b039283165f9081526001602090815260408083209490951682529290925291902055565b5f60016001600160a01b038416610b0f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161056b565b6001600160a01b038516610b735760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161056b565b5f8311610bd45760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161056b565b6001600160a01b0385165f9081526002602052604090205460ff16158015610c1457506001600160a01b0384165f9081526002602052604090205460ff16155b15610c6b57600b54600160a01b900460ff16610c6b5760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd08195b98589b195960521b604482015260640161056b565b6001600160a01b0385165f9081526002602052604090205460ff16158015610cab57506001600160a01b0384165f9081526002602052604090205460ff16155b8015610ccf57506001600160a01b0384165f9081526003602052604090205460ff16155b8015610ce657506001600160a01b03841661dead14155b15610d5f576008546001600160a01b0385165f90815260046020526040902054610d11908590611595565b1115610d5f5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161056b565b610d698585610fed565b8015610d7f5750600b54600160b01b900460ff16155b8015610d915750610d91858585611032565b15610e1e57305f90815260046020526040902054620f4240610dbc67016345785d8a000060076115a8565b610dc691906115bf565b8110610e1c576064610de167016345785d8a000060016115a8565b610deb91906115bf565b8110610e13576064610e0667016345785d8a000060016115a8565b610e1091906115bf565b90505b610e1c816110bc565b505b6001600160a01b0385165f9081526002602052604090205460ff1680610e5b57506001600160a01b0384165f9081526002602052604090205460ff165b15610e6357505f5b5f81610e6f5783610e8d565b610e8d86610e7d88886112a9565b610e878989610fed565b876112ee565b6001600160a01b0387165f9081526002602052604090205490915060ff168015610ec057506001600160a01b0386163014155b8015610ed957505f546001600160a01b03878116911614155b15610eeb57610ee88185611507565b93505b6001600160a01b0386165f9081526004602052604081208054869290610f12908490611507565b90915550506001600160a01b0385165f9081526004602052604081208054839290610f3e908490611595565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610f8a91815260200190565b60405180910390a350600195945050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381165f90815260036020526040812054819060ff16801561053a57505050506001600160a01b03165f9081526003602052604090205460ff161590565b600b545f90600160a81b900460ff16801561106557506001600160a01b0384165f9081526002602052604090205460ff16155b801561108957506001600160a01b0383165f9081526002602052604090205460ff16155b801561053a5750620f42406110a767016345785d8a000060076115a8565b6110b191906115bf565b909110159392505050565b600b805460ff60b01b1916600160b01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611102576111026115de565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611159573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061117d919061154f565b81600181518110611190576111906115de565b6001600160a01b03928316602091820292909201810191909152305f90815260018252604080822060095490941682529290915220545f19146111f657305f9081526001602090815260408083206009546001600160a01b0316845290915290205f1990555b60095460405163791ac94760e01b81526001600160a01b039091169063791ac9479061122e9085905f908690309042906004016115f2565b5f604051808303815f87803b158015611245575f80fd5b505af1925050508015611256575060015b6112605750611299565b600a546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015611296573d5f803e3d5ffd5b50505b50600b805460ff60b01b19169055565b6001600160a01b0381165f90815260036020526040812054819060ff1615801561053a57505050506001600160a01b03165f9081526003602052604090205460ff1690565b5f8084156112ff5750600554611313565b831561130e5750600654611313565b506007545b805f03611323578291505061053a565b5f606461133083866115a8565b61133a91906115bf565b905080156113a657305f9081526004602052604081208054839290611360908490611595565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b6113b08185611507565b979650505050505050565b5f602080835283518060208501525f5b818110156113e7578581018301518582016040015282016113cb565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461094d575f80fd5b5f806040838503121561142c575f80fd5b823561143781611407565b946020939093013593505050565b5f805f60608486031215611457575f80fd5b833561146281611407565b9250602084013561147281611407565b929592945050506040919091013590565b5f60208284031215611493575f80fd5b813561149e81611407565b9392505050565b5f80604083850312156114b6575f80fd5b82356114c181611407565b915060208301356114d181611407565b809150509250929050565b5f602082840312156114ec575f80fd5b5035919050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610483576104836114f3565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f6020828403121561155f575f80fd5b815161149e81611407565b5f805f6060848603121561157c575f80fd5b8351925060208401519150604084015190509250925092565b80820180821115610483576104836114f3565b8082028115828204841417610483576104836114f3565b5f826115d957634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156116425784516001600160a01b03168352938301939183019160010161161d565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220203e60facf738f9be7d2921414115773e1bd7c8e93459b7be67fc3159e4cb58764736f6c63430008160033

Deployed Bytecode Sourcemap

5024:7926:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6728:73;;;;;;;;;;;;6759:42;6728:73;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;6728:73:0;;;;;;;;5445:80;;;;;;;;;;-1:-1:-1;5517:5:0;;;;;;;;;;;;-1:-1:-1;;;5517:5:0;;;;5445:80;;;;;;;:::i;7767:161::-;;;;;;;;;;-1:-1:-1;7767:161:0;;;;;:::i;:::-;;:::i;:::-;;;1396:14:1;;1389:22;1371:41;;1359:2;1344:18;7767:161:0;1231:187:1;6183:44:0;;;;;;;;;;;;6224:3;6183:44;;;;;1569:25:1;;;1557:2;1542:18;6183:44:0;1423:177:1;5074:152:0;;;;;;;;;;;;;:::i;8205:306::-;;;;;;;;;;-1:-1:-1;8205:306:0;;;;;:::i;:::-;;:::i;5232:117::-;;;;;;;;;;-1:-1:-1;5232:117:0;;6720:1;2208:36:1;;2196:2;2181:18;5232:117:0;2066:184:1;6234:28:0;;;;;;;;;;;;;;;;6120:56;;;;;;;;;;;;6159:17;6120:56;;6305:30;;;;;;;;;;;;;;;;12723:224;;;;;;;;;;;;;:::i;:::-;;6269:29;;;;;;;;;;;;;;;;5756:117;;;;;;;;;;-1:-1:-1;5756:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;5849:16:0;5822:7;5849:16;;;:7;:16;;;;;;;5756:117;1015:94;;;;;;;;;;;;;:::i;12127:97::-;;;;;;;;;;;;;:::i;5531:80::-;;;;;;;;;;-1:-1:-1;5583:7:0;865:6;-1:-1:-1;;;;;865:6:0;5531:80;5074:152;5355:84;;;;;;;;;;-1:-1:-1;5429:7:0;;;;;;;;;;;;-1:-1:-1;;;5429:7:0;;;;5355:84;;7594:165;;;;;;;;;;-1:-1:-1;7594:165:0;;;;;:::i;:::-;;:::i;6556:27::-;;;;;;;;;;-1:-1:-1;6556:27:0;;;;-1:-1:-1;;;;;6556:27:0;;;6905:26;;;;;;;;;;-1:-1:-1;6905:26:0;;;;-1:-1:-1;;;;;6905:26:0;;;12232:483;;;:::i;5617:133::-;;;;;;;;;;-1:-1:-1;5617:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;5719:19:0;;;5701:7;5719:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;5617:133;11973:146;;;;;;;;;;-1:-1:-1;11973:146:0;;;;;:::i;:::-;;:::i;1117:192::-;;;;;;;;;;-1:-1:-1;1117:192:0;;;;;:::i;:::-;;:::i;7767:161::-;7844:4;7861:37;7870:10;7882:7;7891:6;7861:8;:37::i;:::-;-1:-1:-1;7916:4:0;7767:161;;;;;:::o;5074:152::-;5129:7;6759:42;5822:7;5849:16;:7;:16;;;;5184:39;;6159:17;5184:39;:::i;:::-;5177:46;;5074:152;:::o;8205:306::-;-1:-1:-1;;;;;8326:19:0;;8305:4;8326:19;;;:11;:19;;;;;;;;8346:10;8326:31;;;;;;;;-1:-1:-1;;8326:52:0;8322:126;;-1:-1:-1;;;;;8395:19:0;;;;;;:11;:19;;;;;;;;8415:10;8395:31;;;;;;;:41;;8430:6;;8395:19;:41;;8430:6;;8395:41;:::i;:::-;;;;-1:-1:-1;;8322:126:0;8467:36;8477:6;8485:9;8496:6;8467:9;:36::i;:::-;8460:43;8205:306;-1:-1:-1;;;;8205:306:0:o;12723:224::-;838:7;865:6;-1:-1:-1;;;;;865:6:0;400:10;927:23;919:68;;;;-1:-1:-1;;;919:68:0;;;;;;;:::i;:::-;;;;;;;;;12784:14:::1;::::0;-1:-1:-1;;;12784:14:0;::::1;;;12783:15;12775:51;;;::::0;-1:-1:-1;;;12775:51:0;;4138:2:1;12775:51:0::1;::::0;::::1;4120:21:1::0;4177:2;4157:18;;;4150:30;4216:25;4196:18;;;4189:53;4259:18;;12775:51:0::1;3936:347:1::0;12775:51:0::1;12849:2;12837:9;:14:::0;12875:2:::1;12862:10;:15:::0;12888:14:::1;:21:::0;;-1:-1:-1;;;;12920:19:0;-1:-1:-1;;;12920:19:0;;;12723:224::o;1015:94::-;838:7;865:6;-1:-1:-1;;;;;865:6:0;400:10;927:23;919:68;;;;-1:-1:-1;;;919:68:0;;;;;;;:::i;:::-;1080:21:::1;1098:1;1080:9;:21::i;:::-;1015:94::o:0;12127:97::-;838:7;865:6;-1:-1:-1;;;;;865:6:0;400:10;927:23;919:68;;;;-1:-1:-1;;;919:68:0;;;;;;;:::i;:::-;6159:17:::1;12185:16;:31:::0;12127:97::o;7594:165::-;7672:4;7689:40;7699:10;7711:9;7722:6;7689:9;:40::i;:::-;-1:-1:-1;7747:4:0;;7594:165;-1:-1:-1;;;7594:165:0:o;12232:483::-;838:7;865:6;-1:-1:-1;;;;;865:6:0;400:10;927:23;919:68;;;;-1:-1:-1;;;919:68:0;;;;;;;:::i;:::-;12319:10:::1;;;;;;;;;-1:-1:-1::0;;;;;12319:10:0::1;-1:-1:-1::0;;;;;12319:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12308:43:0::1;;12352:10;;;;;;;;;-1:-1:-1::0;;;;;12352:10:0::1;-1:-1:-1::0;;;;;12352:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12308:77;::::0;-1:-1:-1;;;;;;12308:77:0::1;::::0;;;;;;-1:-1:-1;;;;;4774:15:1;;;12308:77:0::1;::::0;::::1;4756:34:1::0;12379:4:0::1;4806:18:1::0;;;4799:43;4691:18;;12308:77:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12294:11;:91:::0;;-1:-1:-1;;;;;;12294:91:0::1;-1:-1:-1::0;;;;;12294:91:0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;12396:23:0;;;:10:::1;:23;::::0;;;;:30;;-1:-1:-1;;12396:30:0::1;-1:-1:-1::0;12396:30:0::1;::::0;;12469:10:::1;::::0;12437:63:::1;::::0;12454:4:::1;::::0;12469:10:::1;-1:-1:-1::0;;12437:8:0::1;:63::i;:::-;12513:10;::::0;12580:4:::1;12513:10;12600:22:::0;;;:7:::1;:22;::::0;;;;;-1:-1:-1;;;;;12513:10:0;;::::1;::::0;:26:::1;::::0;12547:9:::1;::::0;12580:4;;12600:22;12513:10;12669:7:::1;838::::0;865:6;-1:-1:-1;;;;;865:6:0;;792:87;12669:7:::1;12513:194;::::0;::::1;::::0;;;-1:-1:-1;;;;;;12513:194:0;;;-1:-1:-1;;;;;5212:15:1;;;12513:194:0::1;::::0;::::1;5194:34:1::0;5244:18;;;5237:34;;;;5287:18;;;5280:34;;;;5330:18;;;5323:34;5394:15;;;5373:19;;;5366:44;12691:15:0::1;5426:19:1::0;;;5419:35;5128:19;;12513:194:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12232:483::o:0;11973:146::-;838:7;865:6;-1:-1:-1;;;;;865:6:0;400:10;927:23;919:68;;;;-1:-1:-1;;;919:68:0;;;;;;;:::i;:::-;12036:9:::1;:16:::0;;;12063:10:::1;:17:::0;;;12101:9;::::1;;12093:18;;;::::0;::::1;;11973:146:::0;:::o;1117:192::-;838:7;865:6;-1:-1:-1;;;;;865:6:0;400:10;927:23;919:68;;;;-1:-1:-1;;;919:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1206:22:0;::::1;1198:73;;;::::0;-1:-1:-1;;;1198:73:0;;5978:2:1;1198:73:0::1;::::0;::::1;5960:21:1::0;6017:2;5997:18;;;5990:30;6056:34;6036:18;;;6029:62;-1:-1:-1;;;6107:18:1;;;6100:36;6153:19;;1198:73:0::1;5776:402:1::0;1198:73:0::1;1282:19;1292:8;1282:9;:19::i;7936:261::-:0;-1:-1:-1;;;;;8031:20:0;;8023:52;;;;-1:-1:-1;;;8023:52:0;;6385:2:1;8023:52:0;;;6367:21:1;6424:2;6404:18;;;6397:30;-1:-1:-1;;;6443:18:1;;;6436:49;6502:18;;8023:52:0;6183:343:1;8023:52:0;-1:-1:-1;;;;;8094:21:0;;8086:53;;;;-1:-1:-1;;;8086:53:0;;6385:2:1;8086:53:0;;;6367:21:1;6424:2;6404:18;;;6397:30;-1:-1:-1;;;6443:18:1;;;6436:49;6502:18;;8086:53:0;6183:343:1;8086:53:0;-1:-1:-1;;;;;8152:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;7936:261::o;9094:1604::-;9174:4;9206;-1:-1:-1;;;;;9229:16:0;;9221:64;;;;-1:-1:-1;;;9221:64:0;;6733:2:1;9221:64:0;;;6715:21:1;6772:2;6752:18;;;6745:30;6811:34;6791:18;;;6784:62;-1:-1:-1;;;6862:18:1;;;6855:33;6905:19;;9221:64:0;6531:399:1;9221:64:0;-1:-1:-1;;;;;9304:18:0;;9296:68;;;;-1:-1:-1;;;9296:68:0;;7137:2:1;9296:68:0;;;7119:21:1;7176:2;7156:18;;;7149:30;7215:34;7195:18;;;7188:62;-1:-1:-1;;;7266:18:1;;;7259:35;7311:19;;9296:68:0;6935:401:1;9296:68:0;9392:1;9383:6;:10;9375:64;;;;-1:-1:-1;;;9375:64:0;;7543:2:1;9375:64:0;;;7525:21:1;7582:2;7562:18;;;7555:30;7621:34;7601:18;;;7594:62;-1:-1:-1;;;7672:18:1;;;7665:39;7721:19;;9375:64:0;7341:405:1;9375:64:0;-1:-1:-1;;;;;9457:24:0;;;;;;:18;:24;;;;;;;;9456:25;:52;;;;-1:-1:-1;;;;;;9486:22:0;;;;;;:18;:22;;;;;;;;9485:23;9456:52;9452:133;;;9533:14;;-1:-1:-1;;;9533:14:0;;;;9525:48;;;;-1:-1:-1;;;9525:48:0;;7953:2:1;9525:48:0;;;7935:21:1;7992:2;7972:18;;;7965:30;-1:-1:-1;;;8011:18:1;;;8004:52;8073:18;;9525:48:0;7751:346:1;9525:48:0;-1:-1:-1;;;;;9601:24:0;;;;;;:18;:24;;;;;;;;9600:25;:52;;;;-1:-1:-1;;;;;;9630:22:0;;;;;;:18;:22;;;;;;;;9629:23;9600:52;:71;;;;-1:-1:-1;;;;;;9657:14:0;;;;;;:10;:14;;;;;;;;9656:15;9600:71;:94;;;;-1:-1:-1;;;;;;9675:19:0;;6759:42;9675:19;;9600:94;9597:206;;;9740:16;;-1:-1:-1;;;;;9718:11:0;;;;;;:7;:11;;;;;;:18;;9730:6;;9718:18;:::i;:::-;:38;;9710:81;;;;-1:-1:-1;;;9710:81:0;;8434:2:1;9710:81:0;;;8416:21:1;8473:2;8453:18;;;8446:30;8512:32;8492:18;;;8485:60;8562:18;;9710:81:0;8232:354:1;9710:81:0;9818:22;9831:4;9837:2;9818:12;:22::i;:::-;:36;;;;-1:-1:-1;9845:9:0;;-1:-1:-1;;;9845:9:0;;;;9844:10;9818:36;:65;;;;;9858:25;9866:4;9872:2;9876:6;9858:7;:25::i;:::-;9815:377;;;9949:4;9900:28;5849:16;;;:7;:16;;;;;;6469:7;6450:16;6159:17;6465:1;6450:16;:::i;:::-;:26;;;;:::i;:::-;9973:20;:40;9970:211;;6544:3;6525:16;6159:17;6540:1;6525:16;:::i;:::-;:22;;;;:::i;:::-;10039:20;:38;10035:81;;6544:3;6525:16;6159:17;6540:1;6525:16;:::i;:::-;:22;;;;:::i;:::-;10079:37;;10035:81;10135:30;10144:20;10135:8;:30::i;:::-;9885:307;9815:377;-1:-1:-1;;;;;10208:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;10236:22:0;;;;;;:18;:22;;;;;;;;10208:50;10204:97;;;-1:-1:-1;10284:5:0;10204:97;10313:22;10339:7;10338:93;;10425:6;10338:93;;;10350:72;10362:4;10368:21;10380:4;10386:2;10368:11;:21::i;:::-;10391:22;10404:4;10410:2;10391:12;:22::i;:::-;10415:6;10350:11;:72::i;:::-;-1:-1:-1;;;;;10446:24:0;;;;;;:18;:24;;;;;;10313:118;;-1:-1:-1;10446:24:0;;:49;;;;-1:-1:-1;;;;;;10474:21:0;;10490:4;10474:21;;10446:49;:68;;;;-1:-1:-1;838:7:0;865:6;-1:-1:-1;;;;;10499:15:0;;;865:6;;10499:15;;10446:68;10442:106;;;10525:23;10534:14;10525:6;:23;:::i;:::-;10516:32;;10442:106;-1:-1:-1;;;;;10559:13:0;;;;;;:7;:13;;;;;:23;;10576:6;;10559:13;:23;;10576:6;;10559:23;:::i;:::-;;;;-1:-1:-1;;;;;;;10594:11:0;;;;;;:7;:11;;;;;:29;;10609:14;;10594:11;:29;;10609:14;;10594:29;:::i;:::-;;;;;;;;10645:2;-1:-1:-1;;;;;10630:34:0;10639:4;-1:-1:-1;;;;;10630:34:0;;10649:14;10630:34;;;;1569:25:1;;1557:2;1542:18;;1423:177;10630:34:0;;;;;;;;-1:-1:-1;10684:4:0;;9094:1604;-1:-1:-1;;;;;9094:1604:0:o;1317:173::-;1373:16;1392:6;;-1:-1:-1;;;;;1409:17:0;;;-1:-1:-1;;;;;;1409:17:0;;;;;;1442:40;;1392:6;;;;;;;1442:40;;1373:16;1442:40;1362:128;1317:173;:::o;8695:170::-;-1:-1:-1;;;;;8798:15:0;;8766:4;8798:15;;;:10;:15;;;;;;8766:4;;8798:15;;:35;;;;-1:-1:-1;;;;;;;;;8818:15:0;;;;;:10;:15;;;;;;;;8817:16;;8695:170::o;8874:212::-;8980:12;;8956:4;;-1:-1:-1;;;8980:12:0;;;;:40;;;;-1:-1:-1;;;;;;8997:23:0;;;;;;:18;:23;;;;;;;;8996:24;8980:40;:68;;;;-1:-1:-1;;;;;;9025:23:0;;;;;;:18;:23;;;;;;;;9024:24;8980:68;:98;;;;-1:-1:-1;6469:7:0;6450:16;6159:17;6465:1;6450:16;:::i;:::-;:26;;;;:::i;:::-;9052;;;;;8874:212;-1:-1:-1;;;8874:212:0:o;11247:714::-;7080:9;:16;;-1:-1:-1;;;;7080:16:0;-1:-1:-1;;;7080:16:0;;;11358::::1;::::0;;11372:1:::1;11358:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11358:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11358:16:0::1;11334:40;;11403:4;11385;11390:1;11385:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11385:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11429:10:::1;::::0;:17:::1;::::0;;-1:-1:-1;;;11429:17:0;;;;:10;;;::::1;::::0;:15:::1;::::0;:17:::1;::::0;;::::1;::::0;11385:7;;11429:17;;;;;:10;:17:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11419:4;11424:1;11419:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11419:27:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:27;;;;11483:4:::1;11463:26;::::0;;;:11:::1;:26:::0;;;;;;11498:10:::1;::::0;;;::::1;11463:47:::0;;;;;;;;-1:-1:-1;;11463:68:0::1;11459:168;;11568:4;11548:26;::::0;;;:11:::1;:26;::::0;;;;;;;11583:10:::1;::::0;-1:-1:-1;;;;;11583:10:0::1;11548:47:::0;;;;;;;-1:-1:-1;;11548:67:0;;11459:168:::1;11643:10;::::0;:200:::1;::::0;-1:-1:-1;;;11643:200:0;;-1:-1:-1;;;;;11643:10:0;;::::1;::::0;:61:::1;::::0;:200:::1;::::0;11719:20;;11643:10:::1;::::0;11770:4;;11797::::1;::::0;11817:15:::1;::::0;11643:200:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;11639:247;;11868:7;;;11639:247;11906:12;::::0;11898:53:::1;::::0;-1:-1:-1;;;;;11906:12:0;;::::1;::::0;11929:21:::1;11898:53:::0;::::1;;;::::0;11906:12:::1;11898:53:::0;11906:12;11898:53;11929:21;11906:12;11898:53;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;11313:648;7107:1;-1:-1:-1::0;7119:9:0;:17;;-1:-1:-1;;;;7119:17:0;;;11247:714::o;8519:168::-;-1:-1:-1;;;;;8621:15:0;;8589:4;8621:15;;;:10;:15;;;;;;8589:4;;8621:15;;8620:16;:35;;;;-1:-1:-1;;;;;;;;;8640:15:0;;;;;:10;:15;;;;;;;;;8519:168::o;10706:533::-;10800:7;10820:11;10846:5;10842:90;;;-1:-1:-1;10860:9:0;;10842:90;;;10881:6;10877:55;;;-1:-1:-1;10896:10:0;;10877:55;;;-1:-1:-1;10921:11:0;;10877:55;10948:3;10955:1;10948:8;10944:28;;10966:6;10959:13;;;;;10944:28;10983:17;6224:3;11003:12;11012:3;11003:6;:12;:::i;:::-;:29;;;;:::i;:::-;10983:49;-1:-1:-1;11047:13:0;;11043:153;;11093:4;11077:22;;;;:7;:22;;;;;:35;;11103:9;;11077:22;:35;;11103:9;;11077:35;:::i;:::-;;;;-1:-1:-1;;11132:40:0;;1569:25:1;;;11155:4:0;;-1:-1:-1;;;;;11132:40:0;;;;;1557:2:1;1542:18;11132:40:0;;;;;;;11043:153;11213:18;11222:9;11213:6;:18;:::i;:::-;11206:25;10706:533;-1:-1:-1;;;;;;;10706:533:0:o;222:548:1:-;334:4;363:2;392;381:9;374:21;424:6;418:13;467:6;462:2;451:9;447:18;440:34;492:1;502:140;516:6;513:1;510:13;502:140;;;611:14;;;607:23;;601:30;577:17;;;596:2;573:26;566:66;531:10;;502:140;;;506:3;691:1;686:2;677:6;666:9;662:22;658:31;651:42;761:2;754;750:7;745:2;737:6;733:15;729:29;718:9;714:45;710:54;702:62;;;;222:548;;;;:::o;775:131::-;-1:-1:-1;;;;;850:31:1;;840:42;;830:70;;896:1;893;886:12;911:315;979:6;987;1040:2;1028:9;1019:7;1015:23;1011:32;1008:52;;;1056:1;1053;1046:12;1008:52;1095:9;1082:23;1114:31;1139:5;1114:31;:::i;:::-;1164:5;1216:2;1201:18;;;;1188:32;;-1:-1:-1;;;911:315:1:o;1605:456::-;1682:6;1690;1698;1751:2;1739:9;1730:7;1726:23;1722:32;1719:52;;;1767:1;1764;1757:12;1719:52;1806:9;1793:23;1825:31;1850:5;1825:31;:::i;:::-;1875:5;-1:-1:-1;1932:2:1;1917:18;;1904:32;1945:33;1904:32;1945:33;:::i;:::-;1605:456;;1997:7;;-1:-1:-1;;;2051:2:1;2036:18;;;;2023:32;;1605:456::o;2255:247::-;2314:6;2367:2;2355:9;2346:7;2342:23;2338:32;2335:52;;;2383:1;2380;2373:12;2335:52;2422:9;2409:23;2441:31;2466:5;2441:31;:::i;:::-;2491:5;2255:247;-1:-1:-1;;;2255:247:1:o;2732:388::-;2800:6;2808;2861:2;2849:9;2840:7;2836:23;2832:32;2829:52;;;2877:1;2874;2867:12;2829:52;2916:9;2903:23;2935:31;2960:5;2935:31;:::i;:::-;2985:5;-1:-1:-1;3042:2:1;3027:18;;3014:32;3055:33;3014:32;3055:33;:::i;:::-;3107:7;3097:17;;;2732:388;;;;;:::o;3125:180::-;3184:6;3237:2;3225:9;3216:7;3212:23;3208:32;3205:52;;;3253:1;3250;3243:12;3205:52;-1:-1:-1;3276:23:1;;3125:180;-1:-1:-1;3125:180:1:o;3310:127::-;3371:10;3366:3;3362:20;3359:1;3352:31;3402:4;3399:1;3392:15;3426:4;3423:1;3416:15;3442:128;3509:9;;;3530:11;;;3527:37;;;3544:18;;:::i;3575:356::-;3777:2;3759:21;;;3796:18;;;3789:30;3855:34;3850:2;3835:18;;3828:62;3922:2;3907:18;;3575:356::o;4288:251::-;4358:6;4411:2;4399:9;4390:7;4386:23;4382:32;4379:52;;;4427:1;4424;4417:12;4379:52;4459:9;4453:16;4478:31;4503:5;4478:31;:::i;5465:306::-;5553:6;5561;5569;5622:2;5610:9;5601:7;5597:23;5593:32;5590:52;;;5638:1;5635;5628:12;5590:52;5667:9;5661:16;5651:26;;5717:2;5706:9;5702:18;5696:25;5686:35;;5761:2;5750:9;5746:18;5740:25;5730:35;;5465:306;;;;;:::o;8102:125::-;8167:9;;;8188:10;;;8185:36;;;8201:18;;:::i;8591:168::-;8664:9;;;8695;;8712:15;;;8706:22;;8692:37;8682:71;;8733:18;;:::i;8764:217::-;8804:1;8830;8820:132;;8874:10;8869:3;8865:20;8862:1;8855:31;8909:4;8906:1;8899:15;8937:4;8934:1;8927:15;8820:132;-1:-1:-1;8966:9:1;;8764:217::o;9118:127::-;9179:10;9174:3;9170:20;9167:1;9160:31;9210:4;9207:1;9200:15;9234:4;9231:1;9224:15;9250:980;9512:4;9560:3;9549:9;9545:19;9591:6;9580:9;9573:25;9617:2;9655:6;9650:2;9639:9;9635:18;9628:34;9698:3;9693:2;9682:9;9678:18;9671:31;9722:6;9757;9751:13;9788:6;9780;9773:22;9826:3;9815:9;9811:19;9804:26;;9865:2;9857:6;9853:15;9839:29;;9886:1;9896:195;9910:6;9907:1;9904:13;9896:195;;;9975:13;;-1:-1:-1;;;;;9971:39:1;9959:52;;10066:15;;;;10031:12;;;;10007:1;9925:9;9896:195;;;-1:-1:-1;;;;;;;10147:32:1;;;;10142:2;10127:18;;10120:60;-1:-1:-1;;;10211:3:1;10196:19;10189:35;10108:3;9250:980;-1:-1:-1;;;9250:980:1:o

Swarm Source

ipfs://203e60facf738f9be7d2921414115773e1bd7c8e93459b7be67fc3159e4cb587
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.