ETH Price: $3,199.41 (-4.15%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve215261442025-01-01 0:50:4731 days ago1735692647IN
0xd63b2Ecf...3B1F73E16
0 ETH0.000119964.53561335
Approve215067952024-12-29 8:00:4734 days ago1735459247IN
0xd63b2Ecf...3B1F73E16
0 ETH0.000084953.21199957
Approve214957652024-12-27 19:03:5936 days ago1735326239IN
0xd63b2Ecf...3B1F73E16
0 ETH0.000230118.70021488
Approve214942152024-12-27 13:52:4736 days ago1735307567IN
0xd63b2Ecf...3B1F73E16
0 ETH0.000161846.11907937
Approve214938902024-12-27 12:47:3536 days ago1735303655IN
0xd63b2Ecf...3B1F73E16
0 ETH0.000156995.93574398
Approve214936942024-12-27 12:08:1136 days ago1735301291IN
0xd63b2Ecf...3B1F73E16
0 ETH0.00028276.09951973
Approve204820762024-08-08 6:29:11177 days ago1723098551IN
0xd63b2Ecf...3B1F73E16
0 ETH0.000046951.93291302
Approve198134212024-05-06 20:27:35270 days ago1715027255IN
0xd63b2Ecf...3B1F73E16
0 ETH0.000182197.51854766
Transfer195657192024-04-02 4:24:59305 days ago1712031899IN
0xd63b2Ecf...3B1F73E16
0 ETH0.0012111617.9716379
Approve195487442024-03-30 19:08:59308 days ago1711825739IN
0xd63b2Ecf...3B1F73E16
0 ETH0.0009634720.80352198
Approve195487322024-03-30 19:06:35308 days ago1711825595IN
0xd63b2Ecf...3B1F73E16
0 ETH0.0011181924.03851558
Approve195486492024-03-30 18:49:47308 days ago1711824587IN
0xd63b2Ecf...3B1F73E16
0 ETH0.0010933323.47363245
Approve195485972024-03-30 18:39:11308 days ago1711823951IN
0xd63b2Ecf...3B1F73E16
0 ETH0.0012270426.34448307
Transfer195480292024-03-30 16:43:59308 days ago1711817039IN
0xd63b2Ecf...3B1F73E16
0 ETH0.0016766224.87833575
Approve195479352024-03-30 16:25:11308 days ago1711815911IN
0xd63b2Ecf...3B1F73E16
0 ETH0.0012200926.34460025
Transfer195479262024-03-30 16:23:11308 days ago1711815791IN
0xd63b2Ecf...3B1F73E16
0 ETH0.0012426124.70753851
Approve195479222024-03-30 16:22:23308 days ago1711815743IN
0xd63b2Ecf...3B1F73E16
0 ETH0.0006470924.31130664
Transfer195479222024-03-30 16:22:23308 days ago1711815743IN
0xd63b2Ecf...3B1F73E16
0 ETH0.0015757324.32140096
Approve195479222024-03-30 16:22:23308 days ago1711815743IN
0xd63b2Ecf...3B1F73E16
0 ETH0.0011773525.31030664
Transfer195479202024-03-30 16:21:59308 days ago1711815719IN
0xd63b2Ecf...3B1F73E16
0 ETH0.0017474124.21286906
Approve195479132024-03-30 16:20:35308 days ago1711815635IN
0xd63b2Ecf...3B1F73E16
0 ETH0.0006756223.1751708
Approve195479032024-03-30 16:18:35308 days ago1711815515IN
0xd63b2Ecf...3B1F73E16
0 ETH0.0011297724.43877175
Approve195478962024-03-30 16:17:11308 days ago1711815431IN
0xd63b2Ecf...3B1F73E16
0 ETH0.001248927.01566854
Approve195478922024-03-30 16:16:11308 days ago1711815371IN
0xd63b2Ecf...3B1F73E16
0 ETH0.0011892825.5665821
Transfer195478912024-03-30 16:15:59308 days ago1711815359IN
0xd63b2Ecf...3B1F73E16
0 ETH0.0018799326.05345464
View all transactions

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block
From
To
195476292024-03-30 15:22:59308 days ago1711812179
0xd63b2Ecf...3B1F73E16
2.5 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SHAI

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-29
*/

/**

Website: https://sharkai.finance
Utility: https://app.sharkai.finance
Docs: https://docs.sharkai.finance
Twitter: https://twitter.com/sharkai_finance
Telegram: https://t.me/shark_ai_official


*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.15;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

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

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );

    function factory() external pure returns (address);

    function WETH() external pure returns (address);
}

contract SHAI is Context, IERC20, Ownable {
    uint256 private constant _totalSupply = 100_000_000e18;
    uint256 private constant _onePercent = 1_000_000e18;
    uint256 private _minSwappingSize = 107*1e18;
    uint256 private _maxSwappingSize = _onePercent;
    uint8 private constant _decimals = 18;

    IUniswapV2Router02 immutable _dexRouter;
    address private _dexPair;
    address immutable WETH;
    address payable _sharkai;

    uint256 private _taxSharkBuy;
    uint256 private _taxSharkSell;
    uint256 private _taxSharkLiq;

    uint8 private _tradingOpen;
    uint8 private _isInSwap;

    uint256 private _maxBuySellTokens = _onePercent * 2;
    uint256 private _maxWalletHoldings = _onePercent * 2;

    string private constant _name = "Shark AI";
    string private constant _symbol = "SHAI";

    mapping(address => uint256) private _balance;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _exceptForTradeShark;
    mapping(address => bool) private _excemptForSharkAI;

    constructor() {
        _dexRouter = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        WETH = _dexRouter.WETH();
        _sharkai = payable(0xA2Dd7dCa64073a24ec706197bF76Bc24cB0b1F32);
        _balance[msg.sender] = _totalSupply;
        _exceptForTradeShark[_sharkai] = true;
        _exceptForTradeShark[address(this)] = true;
        _excemptForSharkAI[address(this)] = true;
        _excemptForSharkAI[address(_dexRouter)] = true;
        _excemptForSharkAI[address(0)] = true;
        _excemptForSharkAI[address(0xDEAD)] = true;
        _excemptForSharkAI[msg.sender] = true;
        _allowances[address(this)][address(_dexRouter)] = type(uint256).max;
        _allowances[msg.sender][address(_dexRouter)] = type(uint256).max;

        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

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

    function balanceOf(address account) public view override returns (uint256) {
        return _balance[account];
    }

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

    function allowance(address owner, address spender)
        public
        view
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()] - amount
        );
        return true;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");

        uint256 _tax;
        if (from == address(this) || to == address(this)) {
            _balance[from] -= amount;
            _balance[to] += amount;

            emit Transfer(from, to, amount);
            return;
        }
        if (!_exceptForTradeShark[from] && !_exceptForTradeShark[to]) {
            require(
                _tradingOpen != 0 && amount <= _maxBuySellTokens,
                "Launch / Max TxAmount at launch"
            );
            if (!_excemptForSharkAI[to]) {
                require(
                    _balance[to] + amount <= _maxWalletHoldings,
                    "Exceeds max wallet balance"
                );
            }

            if (_isInSwap == 1) {
                //No tax transfer
                _balance[from] -= amount;
                _balance[to] += amount;

                emit Transfer(from, to, amount);
                return;
            }

            if (from == _dexPair) {
                _tax = _taxSharkBuy + _taxSharkLiq;
            } else if (to == _dexPair) {
                uint256 tokensInContract = _balance[address(this)];
                if (amount > _minSwappingSize && _isInSwap == 0) {
                    if (tokensInContract > _minSwappingSize) {
                        if (tokensInContract > _maxSwappingSize) {
                            tokensInContract = _maxSwappingSize;
                        }

                        uint256 lpTokensForSwap = (tokensInContract * _taxSharkLiq) /
                            (((_taxSharkBuy + _taxSharkSell) / 2) + _taxSharkLiq);
                        uint256 tokensTosell = tokensInContract - lpTokensForSwap;

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

                        _dexRouter
                            .swapExactTokensForETHSupportingFeeOnTransferTokens(
                                tokensTosell,
                                0,
                                path,
                                _sharkai,
                                block.timestamp
                            );

                        if (lpTokensForSwap > 0) {
                            _dexRouter
                                .swapExactTokensForETHSupportingFeeOnTransferTokens(
                                    lpTokensForSwap / 2,
                                    0,
                                    path,
                                    address(this),
                                    block.timestamp
                                );

                            uint256 newBal = address(this).balance;
                            _dexRouter.addLiquidityETH{value: newBal}(
                                address(this),
                                lpTokensForSwap / 2,
                                0,
                                0,
                                owner(),
                                block.timestamp
                            );
                        }
                        _isInSwap = 0;
                    }
                }

                _tax = _taxSharkSell + _taxSharkLiq;
            } else {
                _tax = 0;
            }
        }

        bool _takeTax = _isTakeFeeSwap(from, to);

        if (_takeTax) {
            //Tax transfer
            uint256 transferAmount = takkingFees(from, to, amount, _tax);

            _balance[to] += transferAmount;
            emit Transfer(from, to, transferAmount);
        } else {
            _balance[to] += amount;

            emit Transfer(from, to, amount);
        }
    }

    function _isTakeFeeSwap(address from, address to)
        internal
        view
        returns (bool)
    {
        return !_exceptForTradeShark[from];
    }

    function takkingFees(
        address from,
        address to,
        uint256 amount,
        uint256 taxRate
    ) internal returns (uint256) {
        uint256 taxTokens = (amount * taxRate) / 100;
        uint256 transferAmount = amount - taxTokens;

        _balance[from] -= amount;
        _balance[address(this)] += taxTokens;
        emit Transfer(from, address(this), taxTokens);

        return transferAmount;
    }

    function startShark() external onlyOwner {
        require(_tradingOpen == 0, "already launched");
        _tradingOpen = 1;
        _taxSharkBuy = 30;
        _taxSharkSell = 30;
    }

    function addSharkLiquidity() external onlyOwner {
        require(_tradingOpen == 0, "already opened");
        _dexPair = IUniswapV2Factory(_dexRouter.factory()).createPair(
            address(this),
            WETH
        );
        _excemptForSharkAI[address(_dexPair)] = true;

        uint256 ethBalance = address(this).balance;
        _dexRouter.addLiquidityETH{value: ethBalance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
    }    

    function removeLimits() external onlyOwner {
        _maxBuySellTokens = type(uint256).max;
        _maxWalletHoldings = type(uint256).max;
    }

    function reduceFees(
        uint256 _feeOnBuy,
        uint256 _feeOnSell
    ) external onlyOwner {
        _taxSharkBuy = _feeOnBuy;
        _taxSharkSell = _feeOnSell;
        require(_feeOnBuy <= 10 && _feeOnSell <= 10);
    }

    receive() external payable {}
}

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"},{"inputs":[],"name":"addSharkLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"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":"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":"_feeOnBuy","type":"uint256"},{"internalType":"uint256","name":"_feeOnSell","type":"uint256"}],"name":"reduceFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startShark","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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"},{"stateMutability":"payable","type":"receive"}]

60c06040526805ccec5d16f6cc000060025569d3c21bcecceda100000060035569d3c21bcecceda10000006002620000389190620002b1565b600a556200005269d3c21bcecceda10000006002620002b1565b600b5534801562000061575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350737a250d5630b4cf539739df2c5dacb4c659f2488d6080819052604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa158015620000f6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200011c9190620002db565b6001600160a01b0390811660a052600580546001600160a01b03191673a2dd7dca64073a24ec706197bf76bc24cb0b1f32178155335f818152600c602090815260408083206a52b7d2dcc80cd2e40000009055935485168252600e8152838220805460ff199081166001908117909255308085528685208054831684179055600f8452868520805483168417905560805190971680855286852080548316841790557ff4803e074bd026baaf6ed2e288c9515f68c72fb7216eebdd7cae1718a53ec37580548316841790557f99629f56119585bf27511b6b7d295dffb54757453fcc3dabcf51d92028301f10805483168417905585855286852080549092169092179055948252600d80825284832086845282528483205f1990819055938352815283822094825293909352912055620002533390565b6001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a52b7d2dcc80cd2e4000000604051620002a391815260200190565b60405180910390a36200030a565b8082028115828204841417620002d557634e487b7160e01b5f52601160045260245ffd5b92915050565b5f60208284031215620002ec575f80fd5b81516001600160a01b038116811462000303575f80fd5b9392505050565b60805160a0516114f76200034f5f395f81816105670152610ceb01525f81816104cc0152818161061701528181610d4501528181610dc30152610e4f01526114f75ff3fe6080604052600436106100f2575f3560e01c80637b15d34811610087578063a844677c11610057578063a844677c146102b2578063a9059cbb146102c6578063dd62ed3e146102e5578063f2fde38b14610329575f80fd5b80637b15d3481461022d5780638da5cb5b1461024157806395d89b4114610267578063a08fc5c714610293575f80fd5b8063313ce567116100c2578063313ce567146101b457806370a08231146101cf578063715018a614610203578063751039fc14610219575f80fd5b806306fdde03146100fd578063095ea7b31461013f57806318160ddd1461016e57806323b872dd14610195575f80fd5b366100f957005b5f80fd5b348015610108575f80fd5b50604080518082019091526008815267536861726b20414960c01b60208201525b60405161013691906111a8565b60405180910390f35b34801561014a575f80fd5b5061015e610159366004611208565b610348565b6040519015158152602001610136565b348015610179575f80fd5b506a52b7d2dcc80cd2e40000005b604051908152602001610136565b3480156101a0575f80fd5b5061015e6101af366004611232565b61035e565b3480156101bf575f80fd5b5060405160128152602001610136565b3480156101da575f80fd5b506101876101e9366004611270565b6001600160a01b03165f908152600c602052604090205490565b34801561020e575f80fd5b506102176103ae565b005b348015610224575f80fd5b50610217610428565b348015610238575f80fd5b5061021761045d565b34801561024c575f80fd5b505f546040516001600160a01b039091168152602001610136565b348015610272575f80fd5b506040805180820190915260048152635348414960e01b6020820152610129565b34801561029e575f80fd5b506102176102ad366004611292565b6106d8565b3480156102bd575f80fd5b50610217610729565b3480156102d1575f80fd5b5061015e6102e0366004611208565b6107b1565b3480156102f0575f80fd5b506101876102ff3660046112b2565b6001600160a01b039182165f908152600d6020908152604080832093909416825291909152205490565b348015610334575f80fd5b50610217610343366004611270565b6107bd565b5f6103543384846107f2565b5060015b92915050565b5f61036a848484610915565b6001600160a01b0384165f908152600d60209081526040808320338085529252909120546103a491869161039f9086906112fd565b6107f2565b5060019392505050565b5f546001600160a01b031633146103e05760405162461bcd60e51b81526004016103d790611310565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146104515760405162461bcd60e51b81526004016103d790611310565b5f19600a819055600b55565b5f546001600160a01b031633146104865760405162461bcd60e51b81526004016103d790611310565b60095460ff16156104ca5760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481bdc195b995960921b60448201526064016103d7565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610526573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061054a9190611345565b6040516364e329cb60e11b81523060048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063c9c65396906044016020604051808303815f875af11580156105b7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105db9190611345565b600480546001600160a01b039283166001600160a01b031990911681179091555f908152600f60205260409020805460ff1916600117905547907f00000000000000000000000000000000000000000000000000000000000000001663f305d719823061065c816001600160a01b03165f908152600c602052604090205490565b5f8061066f5f546001600160a01b031690565b426040518863ffffffff1660e01b815260040161069196959493929190611360565b60606040518083038185885af11580156106ad573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906106d2919061139b565b50505050565b5f546001600160a01b031633146107015760405162461bcd60e51b81526004016103d790611310565b60068290556007819055600a821180159061071d5750600a8111155b610725575f80fd5b5050565b5f546001600160a01b031633146107525760405162461bcd60e51b81526004016103d790611310565b60095460ff16156107985760405162461bcd60e51b815260206004820152601060248201526f185b1c9958591e481b185d5b98da195960821b60448201526064016103d7565b6009805460ff19166001179055601e6006819055600755565b5f610354338484610915565b5f546001600160a01b031633146107e65760405162461bcd60e51b81526004016103d790611310565b6107ef8161103a565b50565b6001600160a01b0383166108545760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103d7565b6001600160a01b0382166108b55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103d7565b6001600160a01b038381165f818152600d602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166109795760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103d7565b5f6001600160a01b03841630148061099957506001600160a01b03831630145b15610a38576001600160a01b0384165f908152600c6020526040812080548492906109c59084906112fd565b90915550506001600160a01b0383165f908152600c6020526040812080548492906109f19084906113c6565b92505081905550826001600160a01b0316846001600160a01b03165f805160206114a283398151915284604051610a2a91815260200190565b60405180910390a350505050565b6001600160a01b0384165f908152600e602052604090205460ff16158015610a7857506001600160a01b0383165f908152600e602052604090205460ff16155b15610f285760095460ff1615801590610a935750600a548211155b610adf5760405162461bcd60e51b815260206004820152601f60248201527f4c61756e6368202f204d6178205478416d6f756e74206174206c61756e63680060448201526064016103d7565b6001600160a01b0383165f908152600f602052604090205460ff16610b7257600b546001600160a01b0384165f908152600c6020526040902054610b249084906113c6565b1115610b725760405162461bcd60e51b815260206004820152601a60248201527f45786365656473206d61782077616c6c65742062616c616e636500000000000060448201526064016103d7565b600954610100900460ff16600103610bab576001600160a01b0384165f908152600c6020526040812080548492906109c59084906112fd565b6004546001600160a01b0390811690851603610bd857600854600654610bd191906113c6565b9050610f28565b6004546001600160a01b0390811690841603610f2557305f908152600c602052604090205460025483118015610c165750600954610100900460ff16155b15610f0d57600254811115610f0d57600354811115610c3457506003545b5f6008546002600754600654610c4a91906113c6565b610c5491906113d9565b610c5e91906113c6565b600854610c6b90846113f8565b610c7591906113d9565b90505f610c8282846112fd565b6009805461ff0019166101001790556040805160028082526060820183529293505f92909160208301908036833701905050905030815f81518110610cc957610cc961140f565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610d1d57610d1d61140f565b6001600160a01b03928316602091820292909201015260055460405163791ac94760e01b81527f000000000000000000000000000000000000000000000000000000000000000083169263791ac94792610d849287925f9288929116904290600401611466565b5f604051808303815f87803b158015610d9b575f80fd5b505af1158015610dad573d5f803e3d5ffd5b505050505f831115610efe576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663791ac947610df36002866113d9565b5f8430426040518663ffffffff1660e01b8152600401610e17959493929190611466565b5f604051808303815f87803b158015610e2e575f80fd5b505af1158015610e40573d5f803e3d5ffd5b50479250506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016905063f305d7198230610e836002896113d9565b5f80610e965f546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610eb896959493929190611360565b60606040518083038185885af1158015610ed4573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ef9919061139b565b505050505b50506009805461ff0019169055505b600854600754610f1d91906113c6565b915050610f28565b505f5b6001600160a01b0384165f908152600e602052604090205460ff16158015610fca575f610f57868686866110f8565b6001600160a01b0386165f908152600c6020526040812080549293508392909190610f839084906113c6565b92505081905550846001600160a01b0316866001600160a01b03165f805160206114a283398151915283604051610fbc91815260200190565b60405180910390a350611033565b6001600160a01b0384165f908152600c602052604081208054859290610ff19084906113c6565b92505081905550836001600160a01b0316856001600160a01b03165f805160206114a28339815191528560405161102a91815260200190565b60405180910390a35b5050505050565b6001600160a01b03811661109f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103d7565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f80606461110684866113f8565b61111091906113d9565b90505f61111d82866112fd565b6001600160a01b0388165f908152600c60205260408120805492935087929091906111499084906112fd565b9091555050305f908152600c60205260408120805484929061116c9084906113c6565b909155505060405182815230906001600160a01b038916905f805160206114a28339815191529060200160405180910390a39695505050505050565b5f602080835283518060208501525f5b818110156111d4578581018301518582016040015282016111b8565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146107ef575f80fd5b5f8060408385031215611219575f80fd5b8235611224816111f4565b946020939093013593505050565b5f805f60608486031215611244575f80fd5b833561124f816111f4565b9250602084013561125f816111f4565b929592945050506040919091013590565b5f60208284031215611280575f80fd5b813561128b816111f4565b9392505050565b5f80604083850312156112a3575f80fd5b50508035926020909101359150565b5f80604083850312156112c3575f80fd5b82356112ce816111f4565b915060208301356112de816111f4565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610358576103586112e9565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611355575f80fd5b815161128b816111f4565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b5f805f606084860312156113ad575f80fd5b8351925060208401519150604084015190509250925092565b80820180821115610358576103586112e9565b5f826113f357634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417610358576103586112e9565b634e487b7160e01b5f52603260045260245ffd5b5f815180845260208085019450602084015f5b8381101561145b5781516001600160a01b031687529582019590820190600101611436565b509495945050505050565b85815284602082015260a060408201525f61148460a0830186611423565b6001600160a01b039490941660608301525060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212206f4cdf556f8019f1ff0ba0a7853f9eb9748994661f8ed5a8ab9c7e27a44d6b7a64736f6c63430008160033

Deployed Bytecode

0x6080604052600436106100f2575f3560e01c80637b15d34811610087578063a844677c11610057578063a844677c146102b2578063a9059cbb146102c6578063dd62ed3e146102e5578063f2fde38b14610329575f80fd5b80637b15d3481461022d5780638da5cb5b1461024157806395d89b4114610267578063a08fc5c714610293575f80fd5b8063313ce567116100c2578063313ce567146101b457806370a08231146101cf578063715018a614610203578063751039fc14610219575f80fd5b806306fdde03146100fd578063095ea7b31461013f57806318160ddd1461016e57806323b872dd14610195575f80fd5b366100f957005b5f80fd5b348015610108575f80fd5b50604080518082019091526008815267536861726b20414960c01b60208201525b60405161013691906111a8565b60405180910390f35b34801561014a575f80fd5b5061015e610159366004611208565b610348565b6040519015158152602001610136565b348015610179575f80fd5b506a52b7d2dcc80cd2e40000005b604051908152602001610136565b3480156101a0575f80fd5b5061015e6101af366004611232565b61035e565b3480156101bf575f80fd5b5060405160128152602001610136565b3480156101da575f80fd5b506101876101e9366004611270565b6001600160a01b03165f908152600c602052604090205490565b34801561020e575f80fd5b506102176103ae565b005b348015610224575f80fd5b50610217610428565b348015610238575f80fd5b5061021761045d565b34801561024c575f80fd5b505f546040516001600160a01b039091168152602001610136565b348015610272575f80fd5b506040805180820190915260048152635348414960e01b6020820152610129565b34801561029e575f80fd5b506102176102ad366004611292565b6106d8565b3480156102bd575f80fd5b50610217610729565b3480156102d1575f80fd5b5061015e6102e0366004611208565b6107b1565b3480156102f0575f80fd5b506101876102ff3660046112b2565b6001600160a01b039182165f908152600d6020908152604080832093909416825291909152205490565b348015610334575f80fd5b50610217610343366004611270565b6107bd565b5f6103543384846107f2565b5060015b92915050565b5f61036a848484610915565b6001600160a01b0384165f908152600d60209081526040808320338085529252909120546103a491869161039f9086906112fd565b6107f2565b5060019392505050565b5f546001600160a01b031633146103e05760405162461bcd60e51b81526004016103d790611310565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146104515760405162461bcd60e51b81526004016103d790611310565b5f19600a819055600b55565b5f546001600160a01b031633146104865760405162461bcd60e51b81526004016103d790611310565b60095460ff16156104ca5760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481bdc195b995960921b60448201526064016103d7565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610526573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061054a9190611345565b6040516364e329cb60e11b81523060048201526001600160a01b037f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281166024830152919091169063c9c65396906044016020604051808303815f875af11580156105b7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105db9190611345565b600480546001600160a01b039283166001600160a01b031990911681179091555f908152600f60205260409020805460ff1916600117905547907f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d1663f305d719823061065c816001600160a01b03165f908152600c602052604090205490565b5f8061066f5f546001600160a01b031690565b426040518863ffffffff1660e01b815260040161069196959493929190611360565b60606040518083038185885af11580156106ad573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906106d2919061139b565b50505050565b5f546001600160a01b031633146107015760405162461bcd60e51b81526004016103d790611310565b60068290556007819055600a821180159061071d5750600a8111155b610725575f80fd5b5050565b5f546001600160a01b031633146107525760405162461bcd60e51b81526004016103d790611310565b60095460ff16156107985760405162461bcd60e51b815260206004820152601060248201526f185b1c9958591e481b185d5b98da195960821b60448201526064016103d7565b6009805460ff19166001179055601e6006819055600755565b5f610354338484610915565b5f546001600160a01b031633146107e65760405162461bcd60e51b81526004016103d790611310565b6107ef8161103a565b50565b6001600160a01b0383166108545760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103d7565b6001600160a01b0382166108b55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103d7565b6001600160a01b038381165f818152600d602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166109795760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103d7565b5f6001600160a01b03841630148061099957506001600160a01b03831630145b15610a38576001600160a01b0384165f908152600c6020526040812080548492906109c59084906112fd565b90915550506001600160a01b0383165f908152600c6020526040812080548492906109f19084906113c6565b92505081905550826001600160a01b0316846001600160a01b03165f805160206114a283398151915284604051610a2a91815260200190565b60405180910390a350505050565b6001600160a01b0384165f908152600e602052604090205460ff16158015610a7857506001600160a01b0383165f908152600e602052604090205460ff16155b15610f285760095460ff1615801590610a935750600a548211155b610adf5760405162461bcd60e51b815260206004820152601f60248201527f4c61756e6368202f204d6178205478416d6f756e74206174206c61756e63680060448201526064016103d7565b6001600160a01b0383165f908152600f602052604090205460ff16610b7257600b546001600160a01b0384165f908152600c6020526040902054610b249084906113c6565b1115610b725760405162461bcd60e51b815260206004820152601a60248201527f45786365656473206d61782077616c6c65742062616c616e636500000000000060448201526064016103d7565b600954610100900460ff16600103610bab576001600160a01b0384165f908152600c6020526040812080548492906109c59084906112fd565b6004546001600160a01b0390811690851603610bd857600854600654610bd191906113c6565b9050610f28565b6004546001600160a01b0390811690841603610f2557305f908152600c602052604090205460025483118015610c165750600954610100900460ff16155b15610f0d57600254811115610f0d57600354811115610c3457506003545b5f6008546002600754600654610c4a91906113c6565b610c5491906113d9565b610c5e91906113c6565b600854610c6b90846113f8565b610c7591906113d9565b90505f610c8282846112fd565b6009805461ff0019166101001790556040805160028082526060820183529293505f92909160208301908036833701905050905030815f81518110610cc957610cc961140f565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110610d1d57610d1d61140f565b6001600160a01b03928316602091820292909201015260055460405163791ac94760e01b81527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d83169263791ac94792610d849287925f9288929116904290600401611466565b5f604051808303815f87803b158015610d9b575f80fd5b505af1158015610dad573d5f803e3d5ffd5b505050505f831115610efe576001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d1663791ac947610df36002866113d9565b5f8430426040518663ffffffff1660e01b8152600401610e17959493929190611466565b5f604051808303815f87803b158015610e2e575f80fd5b505af1158015610e40573d5f803e3d5ffd5b50479250506001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d16905063f305d7198230610e836002896113d9565b5f80610e965f546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610eb896959493929190611360565b60606040518083038185885af1158015610ed4573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ef9919061139b565b505050505b50506009805461ff0019169055505b600854600754610f1d91906113c6565b915050610f28565b505f5b6001600160a01b0384165f908152600e602052604090205460ff16158015610fca575f610f57868686866110f8565b6001600160a01b0386165f908152600c6020526040812080549293508392909190610f839084906113c6565b92505081905550846001600160a01b0316866001600160a01b03165f805160206114a283398151915283604051610fbc91815260200190565b60405180910390a350611033565b6001600160a01b0384165f908152600c602052604081208054859290610ff19084906113c6565b92505081905550836001600160a01b0316856001600160a01b03165f805160206114a28339815191528560405161102a91815260200190565b60405180910390a35b5050505050565b6001600160a01b03811661109f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103d7565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f80606461110684866113f8565b61111091906113d9565b90505f61111d82866112fd565b6001600160a01b0388165f908152600c60205260408120805492935087929091906111499084906112fd565b9091555050305f908152600c60205260408120805484929061116c9084906113c6565b909155505060405182815230906001600160a01b038916905f805160206114a28339815191529060200160405180910390a39695505050505050565b5f602080835283518060208501525f5b818110156111d4578581018301518582016040015282016111b8565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146107ef575f80fd5b5f8060408385031215611219575f80fd5b8235611224816111f4565b946020939093013593505050565b5f805f60608486031215611244575f80fd5b833561124f816111f4565b9250602084013561125f816111f4565b929592945050506040919091013590565b5f60208284031215611280575f80fd5b813561128b816111f4565b9392505050565b5f80604083850312156112a3575f80fd5b50508035926020909101359150565b5f80604083850312156112c3575f80fd5b82356112ce816111f4565b915060208301356112de816111f4565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610358576103586112e9565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611355575f80fd5b815161128b816111f4565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b5f805f606084860312156113ad575f80fd5b8351925060208401519150604084015190509250925092565b80820180821115610358576103586112e9565b5f826113f357634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417610358576103586112e9565b634e487b7160e01b5f52603260045260245ffd5b5f815180845260208085019450602084015f5b8381101561145b5781516001600160a01b031687529582019590820190600101611436565b509495945050505050565b85815284602082015260a060408201525f61148460a0830186611423565b6001600160a01b039490941660608301525060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212206f4cdf556f8019f1ff0ba0a7853f9eb9748994661f8ed5a8ab9c7e27a44d6b7a64736f6c63430008160033

Deployed Bytecode Sourcemap

3255:9639:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5217:83;;;;;;;;;;-1:-1:-1;5287:5:0;;;;;;;;;;;;-1:-1:-1;;;5287:5:0;;;;5217:83;;;;;;;:::i;:::-;;;;;;;;6127:193;;;;;;;;;;-1:-1:-1;6127:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6127:193:0;1023:187:1;5494:100:0;;;;;;;;;;-1:-1:-1;3344:14:0;5494:100;;;1361:25:1;;;1349:2;1334:18;5494:100:0;1215:177:1;6328:350:0;;;;;;;;;;-1:-1:-1;6328:350:0;;;;;:::i;:::-;;:::i;5403:83::-;;;;;;;;;;-1:-1:-1;5403:83:0;;3561:2;2000:36:1;;1988:2;1973:18;5403:83:0;1858:184:1;5602:118:0;;;;;;;;;;-1:-1:-1;5602:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;5695:17:0;5668:7;5695:17;;;:8;:17;;;;;;;5602:118;2207:148;;;;;;;;;;;;;:::i;:::-;;12460;;;;;;;;;;;;;:::i;11879:569::-;;;;;;;;;;;;;:::i;1602:79::-;;;;;;;;;;-1:-1:-1;1640:7:0;1667:6;1602:79;;-1:-1:-1;;;;;1667:6:0;;;2445:51:1;;2433:2;2418:18;1602:79:0;2299:203:1;5308:87:0;;;;;;;;;;-1:-1:-1;5380:7:0;;;;;;;;;;;;-1:-1:-1;;;5380:7:0;;;;5308:87;;12616:238;;;;;;;;;;-1:-1:-1;12616:238:0;;;;;:::i;:::-;;:::i;11681:190::-;;;;;;;;;;;;;:::i;5728:199::-;;;;;;;;;;-1:-1:-1;5728:199:0;;;;;:::i;:::-;;:::i;5935:184::-;;;;;;;;;;-1:-1:-1;5935:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;6084:18:0;;;6052:7;6084:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5935:184;1816:109;;;;;;;;;;-1:-1:-1;1816:109:0;;;;;:::i;:::-;;:::i;6127:193::-;6229:4;6251:39;396:10;6274:7;6283:6;6251:8;:39::i;:::-;-1:-1:-1;6308:4:0;6127:193;;;;;:::o;6328:350::-;6460:4;6477:36;6487:6;6495:9;6506:6;6477:9;:36::i;:::-;-1:-1:-1;;;;;6595:19:0;;;;;;:11;:19;;;;;;;;396:10;6595:33;;;;;;;;;6524:124;;6547:6;;6595:42;;6631:6;;6595:42;:::i;:::-;6524:8;:124::i;:::-;-1:-1:-1;6666:4:0;6328:350;;;;;:::o;2207:148::-;1729:6;;-1:-1:-1;;;;;1729:6:0;396:10;1729:22;1721:67;;;;-1:-1:-1;;;1721:67:0;;;;;;;:::i;:::-;;;;;;;;;2314:1:::1;2298:6:::0;;2277:40:::1;::::0;-1:-1:-1;;;;;2298:6:0;;::::1;::::0;2277:40:::1;::::0;2314:1;;2277:40:::1;2345:1;2328:19:::0;;-1:-1:-1;;;;;;2328:19:0::1;::::0;;2207:148::o;12460:::-;1729:6;;-1:-1:-1;;;;;1729:6:0;396:10;1729:22;1721:67;;;;-1:-1:-1;;;1721:67:0;;;;;;;:::i;:::-;-1:-1:-1;;12514:17:0::1;:37:::0;;;12562:18:::1;:38:::0;12460:148::o;11879:569::-;1729:6;;-1:-1:-1;;;;;1729:6:0;396:10;1729:22;1721:67;;;;-1:-1:-1;;;1721:67:0;;;;;;;:::i;:::-;11946:12:::1;::::0;::::1;;:17:::0;11938:44:::1;;;::::0;-1:-1:-1;;;11938:44:0;;3981:2:1;11938:44:0::1;::::0;::::1;3963:21:1::0;4020:2;4000:18;;;3993:30;-1:-1:-1;;;4039:18:1;;;4032:44;4093:18;;11938:44:0::1;3779:338:1::0;11938:44:0::1;12022:10;-1:-1:-1::0;;;;;12022:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12004:108;::::0;-1:-1:-1;;;12004:108:0;;12077:4:::1;12004:108;::::0;::::1;4590:34:1::0;-1:-1:-1;;;;;12097:4:0::1;4660:15:1::0;;4640:18;;;4633:43;12004:50:0;;;::::1;::::0;::::1;::::0;4525:18:1;;12004:108:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11993:8;:119:::0;;-1:-1:-1;;;;;11993:119:0;;::::1;-1:-1:-1::0;;;;;;11993:119:0;;::::1;::::0;::::1;::::0;;;:8:::1;12123:37:::0;;;:18:::1;:37;::::0;;;;:44;;-1:-1:-1;;12123:44:0::1;11993:119:::0;12123:44:::1;::::0;;12201:21:::1;::::0;12233:10:::1;:26;;12201:21:::0;12301:4:::1;12321:24;12301:4:::0;-1:-1:-1;;;;;5695:17:0;5668:7;5695:17;;;:8;:17;;;;;;;5602:118;12321:24:::1;12360:1;12376::::0;12392:7:::1;1640::::0;1667:6;-1:-1:-1;;;;;1667:6:0;;1602:79;12392:7:::1;12414:15;12233:207;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11927:521;11879:569::o:0;12616:238::-;1729:6;;-1:-1:-1;;;;;1729:6:0;396:10;1729:22;1721:67;;;;-1:-1:-1;;;1721:67:0;;;;;;;:::i;:::-;12730:12:::1;:24:::0;;;12765:13:::1;:26:::0;;;12823:2:::1;12810:15:::0;::::1;::::0;::::1;::::0;:35:::1;;;12843:2;12829:10;:16;;12810:35;12802:44;;;::::0;::::1;;12616:238:::0;;:::o;11681:190::-;1729:6;;-1:-1:-1;;;;;1729:6:0;396:10;1729:22;1721:67;;;;-1:-1:-1;;;1721:67:0;;;;;;;:::i;:::-;11741:12:::1;::::0;::::1;;:17:::0;11733:46:::1;;;::::0;-1:-1:-1;;;11733:46:0;;5812:2:1;11733:46:0::1;::::0;::::1;5794:21:1::0;5851:2;5831:18;;;5824:30;-1:-1:-1;;;5870:18:1;;;5863:46;5926:18;;11733:46:0::1;5610:340:1::0;11733:46:0::1;11790:12;:16:::0;;-1:-1:-1;;11790:16:0::1;11805:1;11790:16;::::0;;11832:2:::1;11817:12;:17:::0;;;11845:13:::1;:18:::0;11681:190::o;5728:199::-;5833:4;5855:42;396:10;5879:9;5890:6;5855:9;:42::i;1816:109::-;1729:6;;-1:-1:-1;;;;;1729:6:0;396:10;1729:22;1721:67;;;;-1:-1:-1;;;1721:67:0;;;;;;;:::i;:::-;1889:28:::1;1908:8;1889:18;:28::i;:::-;1816:109:::0;:::o;6686:369::-;-1:-1:-1;;;;;6813:19:0;;6805:68;;;;-1:-1:-1;;;6805:68:0;;6157:2:1;6805:68:0;;;6139:21:1;6196:2;6176:18;;;6169:30;6235:34;6215:18;;;6208:62;-1:-1:-1;;;6286:18:1;;;6279:34;6330:19;;6805:68:0;5955:400:1;6805:68:0;-1:-1:-1;;;;;6892:21:0;;6884:68;;;;-1:-1:-1;;;6884:68:0;;6562:2:1;6884:68:0;;;6544:21:1;6601:2;6581:18;;;6574:30;6640:34;6620:18;;;6613:62;-1:-1:-1;;;6691:18:1;;;6684:32;6733:19;;6884:68:0;6360:398:1;6884:68:0;-1:-1:-1;;;;;6963:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7015:32;;1361:25:1;;;7015:32:0;;1334:18:1;7015:32:0;;;;;;;6686:369;;;:::o;7063:3989::-;-1:-1:-1;;;;;7185:18:0;;7177:68;;;;-1:-1:-1;;;7177:68:0;;6965:2:1;7177:68:0;;;6947:21:1;7004:2;6984:18;;;6977:30;7043:34;7023:18;;;7016:62;-1:-1:-1;;;7094:18:1;;;7087:35;7139:19;;7177:68:0;6763:401:1;7177:68:0;7258:12;-1:-1:-1;;;;;7285:21:0;;7301:4;7285:21;;:44;;-1:-1:-1;;;;;;7310:19:0;;7324:4;7310:19;7285:44;7281:207;;;-1:-1:-1;;;;;7346:14:0;;;;;;:8;:14;;;;;:24;;7364:6;;7346:14;:24;;7364:6;;7346:24;:::i;:::-;;;;-1:-1:-1;;;;;;;7385:12:0;;;;;;:8;:12;;;;;:22;;7401:6;;7385:12;:22;;7401:6;;7385:22;:::i;:::-;;;;;;;;7444:2;-1:-1:-1;;;;;7429:26:0;7438:4;-1:-1:-1;;;;;7429:26:0;-1:-1:-1;;;;;;;;;;;7448:6:0;7429:26;;;;1361:25:1;;1349:2;1334:18;;1215:177;7429:26:0;;;;;;;;7470:7;7063:3989;;;:::o;7281:207::-;-1:-1:-1;;;;;7503:26:0;;;;;;:20;:26;;;;;;;;7502:27;:56;;;;-1:-1:-1;;;;;;7534:24:0;;;;;;:20;:24;;;;;;;;7533:25;7502:56;7498:3149;;;7601:12;;;;:17;;;;:48;;;7632:17;;7622:6;:27;;7601:48;7575:141;;;;-1:-1:-1;;;7575:141:0;;7501:2:1;7575:141:0;;;7483:21:1;7540:2;7520:18;;;7513:30;7579:33;7559:18;;;7552:61;7630:18;;7575:141:0;7299:355:1;7575:141:0;-1:-1:-1;;;;;7736:22:0;;;;;;:18;:22;;;;;;;;7731:207;;7834:18;;-1:-1:-1;;;;;7809:12:0;;;;;;:8;:12;;;;;;:21;;7824:6;;7809:21;:::i;:::-;:43;;7779:143;;;;-1:-1:-1;;;7779:143:0;;7861:2:1;7779:143:0;;;7843:21:1;7900:2;7880:18;;;7873:30;7939:28;7919:18;;;7912:56;7985:18;;7779:143:0;7659:350:1;7779:143:0;7958:9;;;;;;;;:14;7954:232;;-1:-1:-1;;;;;8028:14:0;;;;;;:8;:14;;;;;:24;;8046:6;;8028:14;:24;;8046:6;;8028:24;:::i;7954:232::-;8214:8;;-1:-1:-1;;;;;8214:8:0;;;8206:16;;;;8202:2434;;8265:12;;8250;;:27;;;;:::i;:::-;8243:34;;8202:2434;;;8309:8;;-1:-1:-1;;;;;8309:8:0;;;8303:14;;;;8299:2337;;8382:4;8338:24;8365:23;;;:8;:23;;;;;;8420:16;;8411:25;;:43;;;;-1:-1:-1;8440:9:0;;;;;;;:14;8411:43;8407:2109;;;8502:16;;8483;:35;8479:2018;;;8570:16;;8551;:35;8547:135;;;-1:-1:-1;8638:16:0;;8547:135;8710:23;8841:12;;8836:1;8819:13;;8804:12;;:28;;;;:::i;:::-;8803:34;;;;:::i;:::-;8802:51;;;;:::i;:::-;8756:12;;8737:31;;:16;:31;:::i;:::-;8736:118;;;;:::i;:::-;8710:144;-1:-1:-1;8881:20:0;8904:34;8710:144;8904:16;:34;:::i;:::-;8967:9;:13;;-1:-1:-1;;8967:13:0;;;;;9031:16;;;9045:1;9031:16;;;;;;;;8881:57;;-1:-1:-1;;;9031:16:0;;;;;;;;;;;;-1:-1:-1;9031:16:0;9007:40;;9092:4;9074;9079:1;9074:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;9074:23:0;;;-1:-1:-1;;;;;9074:23:0;;;;;9134:4;9124;9129:1;9124:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9124:14:0;;;:7;;;;;;;;;:14;9415:8;;9167:337;;-1:-1:-1;;;9167:337:0;;:10;:91;;;;;:337;;9293:12;;9340:1;;9376:4;;9415:8;;;9458:15;;9167:337;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9555:1;9537:15;:19;9533:901;;;-1:-1:-1;;;;;9589:10:0;:95;;9723:19;9741:1;9723:15;:19;:::i;:::-;9781:1;9821:4;9872;9916:15;9589:377;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10016:21:0;;-1:-1:-1;;;;;;;10068:10:0;:26;;-1:-1:-1;10068:26:0;10016:21;10152:4;10192:19;10210:1;10192:15;:19;:::i;:::-;10246:1;10282;10318:7;1640;1667:6;-1:-1:-1;;;;;1667:6:0;;1602:79;10318:7;10360:15;10068:338;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;9558:876;9533:901;-1:-1:-1;;10460:9:0;:13;;-1:-1:-1;;10460:13:0;;;-1:-1:-1;8479:2018:0;10559:12;;10543:13;;:28;;;;:::i;:::-;10536:35;;8319:2268;8299:2337;;;-1:-1:-1;10619:1:0;8299:2337;-1:-1:-1;;;;;11190:26:0;;10659:13;11190:26;;;:20;:26;;;;;;;;11189:27;10712:333;;;;10769:22;10794:35;10806:4;10812:2;10816:6;10824:4;10794:11;:35::i;:::-;-1:-1:-1;;;;;10846:12:0;;;;;;:8;:12;;;;;:30;;10769:60;;-1:-1:-1;10769:60:0;;10846:12;;;:30;;10769:60;;10846:30;:::i;:::-;;;;;;;;10911:2;-1:-1:-1;;;;;10896:34:0;10905:4;-1:-1:-1;;;;;10896:34:0;-1:-1:-1;;;;;;;;;;;10915:14:0;10896:34;;;;1361:25:1;;1349:2;1334:18;;1215:177;10896:34:0;;;;;;;;10726:216;10712:333;;;-1:-1:-1;;;;;10963:12:0;;;;;;:8;:12;;;;;:22;;10979:6;;10963:12;:22;;10979:6;;10963:22;:::i;:::-;;;;;;;;11022:2;-1:-1:-1;;;;;11007:26:0;11016:4;-1:-1:-1;;;;;11007:26:0;-1:-1:-1;;;;;;;;;;;11026:6:0;11007:26;;;;1361:25:1;;1349:2;1334:18;;1215:177;11007:26:0;;;;;;;;10712:333;7166:3886;;7063:3989;;;:::o;1933:266::-;-1:-1:-1;;;;;2021:22:0;;1999:110;;;;-1:-1:-1;;;1999:110:0;;10527:2:1;1999:110:0;;;10509:21:1;10566:2;10546:18;;;10539:30;10605:34;10585:18;;;10578:62;-1:-1:-1;;;10656:18:1;;;10649:36;10702:19;;1999:110:0;10325:402:1;1999:110:0;2146:6;;;2125:38;;-1:-1:-1;;;;;2125:38:0;;;;2146:6;;;2125:38;;;2174:6;:17;;-1:-1:-1;;;;;;2174:17:0;-1:-1:-1;;;;;2174:17:0;;;;;;;;;;1933:266::o;11232:441::-;11373:7;;11434:3;11414:16;11423:7;11414:6;:16;:::i;:::-;11413:24;;;;:::i;:::-;11393:44;-1:-1:-1;11448:22:0;11473:18;11393:44;11473:6;:18;:::i;:::-;-1:-1:-1;;;;;11504:14:0;;;;;;:8;:14;;;;;:24;;11448:43;;-1:-1:-1;11522:6:0;;11504:14;;;:24;;11522:6;;11504:24;:::i;:::-;;;;-1:-1:-1;;11556:4:0;11539:23;;;;:8;:23;;;;;:36;;11566:9;;11539:23;:36;;11566:9;;11539:36;:::i;:::-;;;;-1:-1:-1;;11591:40:0;;1361:25:1;;;11614:4:0;;-1:-1:-1;;;;;11591:40:0;;;-1:-1:-1;;;;;;;;;;;11591:40:0;1349:2:1;1334:18;11591:40:0;;;;;;;11651:14;11232:441;-1:-1:-1;;;;;;11232:441:0:o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;:::-;2283:5;2047:247;-1:-1:-1;;;2047:247:1:o;2507:248::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;-1:-1:-1;;2675:23:1;;;2745:2;2730:18;;;2717:32;;-1:-1:-1;2507:248:1:o;2760:388::-;2828:6;2836;2889:2;2877:9;2868:7;2864:23;2860:32;2857:52;;;2905:1;2902;2895:12;2857:52;2944:9;2931:23;2963:31;2988:5;2963:31;:::i;:::-;3013:5;-1:-1:-1;3070:2:1;3055:18;;3042:32;3083:33;3042:32;3083:33;:::i;:::-;3135:7;3125:17;;;2760:388;;;;;:::o;3153:127::-;3214:10;3209:3;3205:20;3202:1;3195:31;3245:4;3242:1;3235:15;3269:4;3266:1;3259:15;3285:128;3352:9;;;3373:11;;;3370:37;;;3387:18;;:::i;3418:356::-;3620:2;3602:21;;;3639:18;;;3632:30;3698:34;3693:2;3678:18;;3671:62;3765:2;3750:18;;3418:356::o;4122:251::-;4192:6;4245:2;4233:9;4224:7;4220:23;4216:32;4213:52;;;4261:1;4258;4251:12;4213:52;4293:9;4287:16;4312:31;4337:5;4312:31;:::i;4687:607::-;-1:-1:-1;;;;;5046:15:1;;;5028:34;;5093:2;5078:18;;5071:34;;;;5136:2;5121:18;;5114:34;;;;5179:2;5164:18;;5157:34;;;;5228:15;;;5222:3;5207:19;;5200:44;5008:3;5260:19;;5253:35;;;;4977:3;4962:19;;4687:607::o;5299:306::-;5387:6;5395;5403;5456:2;5444:9;5435:7;5431:23;5427:32;5424:52;;;5472:1;5469;5462:12;5424:52;5501:9;5495:16;5485:26;;5551:2;5540:9;5536:18;5530:25;5520:35;;5595:2;5584:9;5580:18;5574:25;5564:35;;5299:306;;;;;:::o;7169:125::-;7234:9;;;7255:10;;;7252:36;;;7268:18;;:::i;8014:217::-;8054:1;8080;8070:132;;8124:10;8119:3;8115:20;8112:1;8105:31;8159:4;8156:1;8149:15;8187:4;8184:1;8177:15;8070:132;-1:-1:-1;8216:9:1;;8014:217::o;8236:168::-;8309:9;;;8340;;8357:15;;;8351:22;;8337:37;8327:71;;8378:18;;:::i;8541:127::-;8602:10;8597:3;8593:20;8590:1;8583:31;8633:4;8630:1;8623:15;8657:4;8654:1;8647:15;8673:465;8726:3;8764:5;8758:12;8791:6;8786:3;8779:19;8817:4;8846;8841:3;8837:14;8830:21;;8885:4;8878:5;8874:16;8908:1;8918:195;8932:6;8929:1;8926:13;8918:195;;;8997:13;;-1:-1:-1;;;;;8993:39:1;8981:52;;9053:12;;;;9088:15;;;;9029:1;8947:9;8918:195;;;-1:-1:-1;9129:3:1;;8673:465;-1:-1:-1;;;;;8673:465:1:o;9143:590::-;9450:6;9439:9;9432:25;9493:6;9488:2;9477:9;9473:18;9466:34;9536:3;9531:2;9520:9;9516:18;9509:31;9413:4;9557:57;9609:3;9598:9;9594:19;9586:6;9557:57;:::i;:::-;-1:-1:-1;;;;;9650:32:1;;;;9645:2;9630:18;;9623:60;-1:-1:-1;9714:3:1;9699:19;9692:35;9549:65;9143:590;-1:-1:-1;;;9143:590:1:o

Swarm Source

ipfs://6f4cdf556f8019f1ff0ba0a7853f9eb9748994661f8ed5a8ab9c7e27a44d6b7a

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.