ETH Price: $3,348.99 (+0.25%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer188443382023-12-22 22:24:47375 days ago1703283887IN
0x3E0Acc6C...3EDfb91B1
0 ETH0.0022742828.19069035
Approve187719922023-12-12 18:48:59386 days ago1702406939IN
0x3E0Acc6C...3EDfb91B1
0 ETH0.0022209548.14349178
Approve187715692023-12-12 17:23:35386 days ago1702401815IN
0x3E0Acc6C...3EDfb91B1
0 ETH0.002473253.19642968
Approve187713542023-12-12 16:39:59386 days ago1702399199IN
0x3E0Acc6C...3EDfb91B1
0 ETH0.0022800349.42406987
Approve187713172023-12-12 16:32:35386 days ago1702398755IN
0x3E0Acc6C...3EDfb91B1
0 ETH0.0024951653.73811372
Approve187712932023-12-12 16:27:47386 days ago1702398467IN
0x3E0Acc6C...3EDfb91B1
0 ETH0.0026350556.7507935
Approve187712492023-12-12 16:18:59386 days ago1702397939IN
0x3E0Acc6C...3EDfb91B1
0 ETH0.0030684766
Approve187712262023-12-12 16:14:11386 days ago1702397651IN
0x3E0Acc6C...3EDfb91B1
0 ETH0.0028218660.77411383
Approve187711892023-12-12 16:06:47386 days ago1702397207IN
0x3E0Acc6C...3EDfb91B1
0 ETH0.00490459106.26122056
Approve187711892023-12-12 16:06:47386 days ago1702397207IN
0x3E0Acc6C...3EDfb91B1
0 ETH0.00490459106.26122056
Approve187711892023-12-12 16:06:47386 days ago1702397207IN
0x3E0Acc6C...3EDfb91B1
0 ETH0.00490459106.26122056
Approve187711892023-12-12 16:06:47386 days ago1702397207IN
0x3E0Acc6C...3EDfb91B1
0 ETH0.00490459106.26122056
Approve187711572023-12-12 16:00:23386 days ago1702396823IN
0x3E0Acc6C...3EDfb91B1
0 ETH0.00496233106.73519882
Approve187711202023-12-12 15:52:59386 days ago1702396379IN
0x3E0Acc6C...3EDfb91B1
0 ETH0.0024888153.53206349
Renounce Ownersh...187710852023-12-12 15:45:59386 days ago1702395959IN
0x3E0Acc6C...3EDfb91B1
0 ETH0.0013113857.88488482
Set Fees187710842023-12-12 15:45:47386 days ago1702395947IN
0x3E0Acc6C...3EDfb91B1
0 ETH0.0021001158.16998918
Set Max Wallet187710832023-12-12 15:45:35386 days ago1702395935IN
0x3E0Acc6C...3EDfb91B1
0 ETH0.001560355.49708766
Set Max Wallet187710812023-12-12 15:45:11386 days ago1702395911IN
0x3E0Acc6C...3EDfb91B1
0 ETH0.0018781760.7529567
Approve187710752023-12-12 15:43:59386 days ago1702395839IN
0x3E0Acc6C...3EDfb91B1
0 ETH0.0030633165.88906697
Approve187710662023-12-12 15:42:11386 days ago1702395731IN
0x3E0Acc6C...3EDfb91B1
0 ETH0.0043952695.22632136
Approve187710662023-12-12 15:42:11386 days ago1702395731IN
0x3E0Acc6C...3EDfb91B1
0 ETH0.0043952695.22632136
Approve187710662023-12-12 15:42:11386 days ago1702395731IN
0x3E0Acc6C...3EDfb91B1
0 ETH0.0043952695.22632136
Approve187710662023-12-12 15:42:11386 days ago1702395731IN
0x3E0Acc6C...3EDfb91B1
0 ETH0.0043952695.22632136
Set Fee Swap Ena...187710512023-12-12 15:39:11386 days ago1702395551IN
0x3E0Acc6C...3EDfb91B1
0 ETH0.0017662661.57896653
Approve187710512023-12-12 15:39:11386 days ago1702395551IN
0x3E0Acc6C...3EDfb91B1
0 ETH0.0029970564.46396653
View all transactions

Latest 6 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
187711932023-12-12 16:07:35386 days ago1702397255
0x3E0Acc6C...3EDfb91B1
0.02490274 ETH
187711932023-12-12 16:07:35386 days ago1702397255
0x3E0Acc6C...3EDfb91B1
0.02490274 ETH
187711122023-12-12 15:51:23386 days ago1702396283
0x3E0Acc6C...3EDfb91B1
0.10166105 ETH
187711122023-12-12 15:51:23386 days ago1702396283
0x3E0Acc6C...3EDfb91B1
0.10166105 ETH
187710682023-12-12 15:42:35386 days ago1702395755
0x3E0Acc6C...3EDfb91B1
0.14124489 ETH
187710682023-12-12 15:42:35386 days ago1702395755
0x3E0Acc6C...3EDfb91B1
0.14124489 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
FRIN

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/**
A safe place for you to invest and borrow against your holdings.
Fast, easily and on your own terms.

Website: https://www.fringefinance.org
Telegram: https://t.me/frinfi_erc
Twitter: https://twitter.com/frinfi_erc
Dapp: https://app.fringefinance.org
 */

pragma solidity 0.8.21;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

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

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

interface IUniswapFactory {
    function createPair(address tokenA, address tokenB) external returns (address uniswapPair);
}

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

contract FRIN is IERC20, Ownable {
    using SafeMath for uint256;

    string constant _name = "Fringe Finance";
    string constant _symbol = "FRIN";
    uint8 constant _decimals = 9;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;
    mapping (address => bool) _isFeeExempt;
    mapping (address => bool) _isMaxTxExempt;

    address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address deadAddress = 0x000000000000000000000000000000000000dEaD;

    uint256 _totalSupply = 10 ** 9 * (10 ** _decimals);
    uint256 _lpFee = 0; 
    uint256 _mktFee = 25;
    uint256 _tFee = _lpFee + _mktFee;
    uint256 _denominator = 100;
    uint256 public maxTxAmount = (_totalSupply * 18) / 1000;
    address public marketingWallet;
    IUniswapRouter public uniswapRouter;
    address public uniswapPair;
    bool public feeSwapEnabled = false;
    uint256 public feeSwapThreshold = _totalSupply / 100000; // 0.1%
    bool _inswap;
    modifier lockSwap() { _inswap = true; _; _inswap = false; }

    constructor () Ownable(msg.sender) {
        uniswapRouter = IUniswapRouter(routerAddress);
        uniswapPair = IUniswapFactory(uniswapRouter.factory()).createPair(uniswapRouter.WETH(), address(this));
        _allowances[address(this)][address(uniswapRouter)] = type(uint256).max;
        address _owner = owner;
        marketingWallet = 0xD80AfdadFe1377C7C71054e28330241147F314FC;
        _isFeeExempt[marketingWallet] = true;
        _isMaxTxExempt[_owner] = true;
        _isMaxTxExempt[marketingWallet] = true;
        _isMaxTxExempt[deadAddress] = true;
        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    function takeFees(address sender, uint256 amount) internal returns (uint256) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        uint256 feeAmount = amount.mul(_tFee).div(_denominator);
        if (shouldChargeFee(sender) && !feeSwapEnabled) {
            feeAmount = 0;
        }
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }
    
    function shouldChargeFee(address sender) internal view returns (bool) {
        return !_isFeeExempt[sender];
    }

    function setMaxWallet(uint256 amountPercent) external onlyOwner {
        maxTxAmount = (_totalSupply * amountPercent ) / 1000;
    }

    function setFeeSwapEnabled(bool value) external onlyOwner {
        feeSwapEnabled = value;
    }

    function shouldSwap() internal view returns (bool) {
        return !_inswap
        && feeSwapEnabled
        && _balances[address(this)] >= feeSwapThreshold;
    }
    
    function swapAndLiquidify() internal lockSwap {
        uint256 contractTokenBalance = balanceOf(address(this));
        uint256 amountToLiquify = contractTokenBalance.mul(_lpFee).div(_tFee).div(2);
        uint256 amountToSwap = contractTokenBalance.sub(amountToLiquify);

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

        uint256 balanceBefore = address(this).balance;

        uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 amountETH = address(this).balance.sub(balanceBefore);
        uint256 totalETHFee = _tFee.sub(_lpFee.div(2));
        uint256 amountETHLiquidity = amountETH.mul(_lpFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(_mktFee).div(totalETHFee);


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

        if(amountToLiquify > 0){
            uniswapRouter.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                marketingWallet,
                block.timestamp
            );
        }
    }

    function _transferStandard(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }
    
    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

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

        return _transferFrom(sender, recipient, amount);
    }
    
    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }
    
    function setFees(uint256 liquidityFee_, uint256 marketingFee_) external onlyOwner {
         _lpFee = liquidityFee_; 
         _mktFee = marketingFee_;
         _tFee = _lpFee + _mktFee;
    }    
    
    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(_inswap){ return _transferStandard(sender, recipient, amount); }
        
        if (recipient != uniswapPair && recipient != deadAddress) {
            require(_isMaxTxExempt[recipient] || _balances[recipient] + amount <= maxTxAmount, "Transfer amount exceeds the bag size.");
        }        
        if(shouldSwap() && shouldChargeFee(sender) && recipient == uniswapPair && amount > feeSwapThreshold){ 
            swapAndLiquidify(); 
        } 
        bool shouldTax = shouldChargeFee(sender) || !feeSwapEnabled;
        if (shouldTax) {
            _balances[recipient] = _balances[recipient].add(takeFees(sender, amount));
        } else {
            _balances[recipient] = _balances[recipient].add(amount);
        }

        emit Transfer(sender, recipient, amount);
        return 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":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"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":"feeSwapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"setFeeSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidityFee_","type":"uint256"},{"internalType":"uint256","name":"marketingFee_","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setMaxWallet","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":"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":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapRouter","outputs":[{"internalType":"contract IUniswapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600580546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d179091556006805490911661dead179055620000486009600a62000476565b6200005890633b9aca006200048d565b6007555f6008819055601960098190556200007391620004a7565b600a556064600b556103e860075460126200008f91906200048d565b6200009b9190620004bd565b600c55600f805460ff60a01b19169055600754620000be90620186a090620004bd565b601055348015620000cd575f80fd5b505f8054336001600160a01b031991821617909155600554600e80546001600160a01b039092169190921681179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000137573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200015d9190620004dd565b6001600160a01b031663c9c65396600e5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001bc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001e29190620004dd565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303815f875af11580156200022c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002529190620004dd565b600f80546001600160a01b039283166001600160a01b031991821617909155305f908152600260209081526040808320600e548616845282528083205f1990558254600d805490951673d80afdadfe1377c7c71054e28330241147f314fc1785557f1e76b797d6ddcc41e1bcdabc62e25d29e1f908c2be83b23c880b82924f34af01805460ff1990811660019081179092559187168086526004855283862080548416831790559554871685528285208054831682179055600654909616845281842080549091168617905560075484845294825280832085905551938452919283927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000505565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620003bb57815f19048211156200039f576200039f62000367565b80851615620003ad57918102915b93841c939080029062000380565b509250929050565b5f82620003d35750600162000470565b81620003e157505f62000470565b8160018114620003fa5760028114620004055762000425565b600191505062000470565b60ff84111562000419576200041962000367565b50506001821b62000470565b5060208310610133831016604e8410600b84101617156200044a575081810a62000470565b6200045683836200037b565b805f19048211156200046c576200046c62000367565b0290505b92915050565b5f6200048660ff841683620003c3565b9392505050565b808202811582820484141762000470576200047062000367565b8082018082111562000470576200047062000367565b5f82620004d857634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215620004ee575f80fd5b81516001600160a01b038116811462000486575f80fd5b6113c080620005135f395ff3fe608060405260043610610129575f3560e01c8063715018a6116100a85780638d08c1681161006d5780638d08c1681461035b57806395d89b411461037a578063a9059cbb146103a6578063c816841b146103c5578063dd62ed3e146103e4578063de28707114610428575f80fd5b8063715018a6146102c0578063735de9f7146102d457806375f0a8741461030b578063893d20e81461032a5780638c0b5e2214610346575f80fd5b806323b872dd116100ee57806323b872dd146102065780632f54bf6e14610225578063313ce567146102525780635d0044ca1461026d57806370a082311461028c575f80fd5b806304866b801461013457806306fdde0314610169578063095ea7b3146101a85780630b78f9c0146101c757806318160ddd146101e8575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b50600f5461015490600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b348015610174575f80fd5b5060408051808201909152600e81526d4672696e67652046696e616e636560901b60208201525b60405161016091906110bf565b3480156101b3575f80fd5b506101546101c2366004611121565b61043d565b3480156101d2575f80fd5b506101e66101e136600461114b565b6104a9565b005b3480156101f3575f80fd5b506007545b604051908152602001610160565b348015610211575f80fd5b5061015461022036600461116b565b6104f6565b348015610230575f80fd5b5061015461023f3660046111a9565b5f546001600160a01b0391821691161490565b34801561025d575f80fd5b5060405160098152602001610160565b348015610278575f80fd5b506101e66102873660046111c4565b6105b4565b348015610297575f80fd5b506101f86102a63660046111a9565b6001600160a01b03165f9081526001602052604090205490565b3480156102cb575f80fd5b506101e66105fe565b3480156102df575f80fd5b50600e546102f3906001600160a01b031681565b6040516001600160a01b039091168152602001610160565b348015610316575f80fd5b50600d546102f3906001600160a01b031681565b348015610335575f80fd5b505f546001600160a01b03166102f3565b348015610351575f80fd5b506101f8600c5481565b348015610366575f80fd5b506101e66103753660046111db565b61066b565b348015610385575f80fd5b50604080518082019091526004815263232924a760e11b602082015261019b565b3480156103b1575f80fd5b506101546103c0366004611121565b6106b2565b3480156103d0575f80fd5b50600f546102f3906001600160a01b031681565b3480156103ef575f80fd5b506101f86103fe3660046111fa565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610433575f80fd5b506101f860105481565b335f8181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104979086815260200190565b60405180910390a35060015b92915050565b5f546001600160a01b031633146104db5760405162461bcd60e51b81526004016104d290611231565b60405180910390fd5b600882905560098190556104ef8183611265565b600a555050565b6001600160a01b0383165f9081526002602090815260408083203384529091528120545f191461059f576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f90815260028252838120338252909152919091205461057b9184906106be565b6001600160a01b0385165f9081526002602090815260408083203384529091529020555b6105aa8484846106f6565b90505b9392505050565b5f546001600160a01b031633146105dd5760405162461bcd60e51b81526004016104d290611231565b6103e8816007546105ee9190611278565b6105f8919061128f565b600c5550565b5f546001600160a01b031633146106275760405162461bcd60e51b81526004016104d290611231565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b031633146106945760405162461bcd60e51b81526004016104d290611231565b600f8054911515600160a01b0260ff60a01b19909216919091179055565b5f6105ad3384846106f6565b5f81848411156106e15760405162461bcd60e51b81526004016104d291906110bf565b505f6106ed84866112ae565b95945050505050565b6011545f9060ff16156107155761070e84848461095d565b90506105ad565b600f546001600160a01b0384811691161480159061074157506006546001600160a01b03848116911614155b156107ea576001600160a01b0383165f9081526004602052604090205460ff16806107905750600c546001600160a01b0384165f9081526001602052604090205461078d908490611265565b11155b6107ea5760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b60648201526084016104d2565b6107f2610a40565b801561081657506001600160a01b0384165f9081526003602052604090205460ff16155b801561082f5750600f546001600160a01b038481169116145b801561083c575060105482115b1561084957610849610a7f565b6001600160a01b0384165f9081526003602052604081205460ff16158061087a5750600f54600160a01b900460ff16155b905080156108ca576108ad61088f8685610def565b6001600160a01b0386165f9081526001602052604090205490610f35565b6001600160a01b0385165f90815260016020526040902055610905565b6001600160a01b0384165f908152600160205260409020546108ec9084610f35565b6001600160a01b0385165f908152600160205260409020555b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161094a91815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f9081526001909152918220546109ad9184906106be565b6001600160a01b038086165f9081526001602052604080822093909355908516815220546109db9083610f35565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a2e9086815260200190565b60405180910390a35060019392505050565b6011545f9060ff16158015610a5e5750600f54600160a01b900460ff165b8015610a7a5750601054305f9081526001602052604090205410155b905090565b6011805460ff191660011790555f610aab306001600160a01b03165f9081526001602052604090205490565b90505f610ad46002610ace600a54610ace60085487610f9390919063ffffffff16565b90611011565b90505f610ae18383611052565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f81518110610b1957610b196112c1565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610b70573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b9491906112d5565b81600181518110610ba757610ba76112c1565b6001600160a01b039283166020918202929092010152600e5460405163791ac94760e01b81524792919091169063791ac94790610bf09086905f908790309042906004016112f0565b5f604051808303815f87803b158015610c07575f80fd5b505af1158015610c19573d5f803e3d5ffd5b505050505f610c31824761105290919063ffffffff16565b90505f610c56610c4d600260085461101190919063ffffffff16565b600a5490611052565b90505f610c776002610ace84610ace60085488610f9390919063ffffffff16565b90505f610c9383610ace60095487610f9390919063ffffffff16565b600d546040519192505f916001600160a01b039091169061753090849084818181858888f193505050503d805f8114610ce7576040519150601f19603f3d011682016040523d82523d5f602084013e610cec565b606091505b5050905080610d3d5760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e73666572000060448201526064016104d2565b8815610dd957600e54600d5460405163f305d71960e01b8152306004820152602481018c90525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c40160606040518083038185885af1158015610db0573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610dd5919061135f565b5050505b50506011805460ff191690555050505050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0385165f908152600190915291822054610e3f9184906106be565b6001600160a01b0384165f90815260016020526040812091909155600b54600a54610e709190610ace908690610f93565b9050610e94846001600160a01b03165f9081526003602052604090205460ff161590565b8015610eaa5750600f54600160a01b900460ff16155b15610eb257505f5b305f90815260016020526040902054610ecb9082610f35565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f1b9085815260200190565b60405180910390a3610f2d8382611052565b949350505050565b5f80610f418385611265565b9050838110156105ad5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104d2565b5f825f03610fa257505f6104a3565b5f610fad8385611278565b905082610fba858361128f565b146105ad5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104d2565b5f6105ad83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611093565b5f6105ad83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506106be565b5f81836110b35760405162461bcd60e51b81526004016104d291906110bf565b505f6106ed848661128f565b5f6020808352835180828501525f5b818110156110ea578581018301518582016040015282016110ce565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461111e575f80fd5b50565b5f8060408385031215611132575f80fd5b823561113d8161110a565b946020939093013593505050565b5f806040838503121561115c575f80fd5b50508035926020909101359150565b5f805f6060848603121561117d575f80fd5b83356111888161110a565b925060208401356111988161110a565b929592945050506040919091013590565b5f602082840312156111b9575f80fd5b81356105ad8161110a565b5f602082840312156111d4575f80fd5b5035919050565b5f602082840312156111eb575f80fd5b813580151581146105ad575f80fd5b5f806040838503121561120b575f80fd5b82356112168161110a565b915060208301356112268161110a565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808201808211156104a3576104a3611251565b80820281158282048414176104a3576104a3611251565b5f826112a957634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156104a3576104a3611251565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156112e5575f80fd5b81516105ad8161110a565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561133e5784516001600160a01b031683529383019391830191600101611319565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611371575f80fd5b835192506020840151915060408401519050925092509256fea264697066735822122013348a378351e868206c104f62648b6891bc7e80d31904e3c617d24d69e4084564736f6c63430008150033

Deployed Bytecode

0x608060405260043610610129575f3560e01c8063715018a6116100a85780638d08c1681161006d5780638d08c1681461035b57806395d89b411461037a578063a9059cbb146103a6578063c816841b146103c5578063dd62ed3e146103e4578063de28707114610428575f80fd5b8063715018a6146102c0578063735de9f7146102d457806375f0a8741461030b578063893d20e81461032a5780638c0b5e2214610346575f80fd5b806323b872dd116100ee57806323b872dd146102065780632f54bf6e14610225578063313ce567146102525780635d0044ca1461026d57806370a082311461028c575f80fd5b806304866b801461013457806306fdde0314610169578063095ea7b3146101a85780630b78f9c0146101c757806318160ddd146101e8575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b50600f5461015490600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b348015610174575f80fd5b5060408051808201909152600e81526d4672696e67652046696e616e636560901b60208201525b60405161016091906110bf565b3480156101b3575f80fd5b506101546101c2366004611121565b61043d565b3480156101d2575f80fd5b506101e66101e136600461114b565b6104a9565b005b3480156101f3575f80fd5b506007545b604051908152602001610160565b348015610211575f80fd5b5061015461022036600461116b565b6104f6565b348015610230575f80fd5b5061015461023f3660046111a9565b5f546001600160a01b0391821691161490565b34801561025d575f80fd5b5060405160098152602001610160565b348015610278575f80fd5b506101e66102873660046111c4565b6105b4565b348015610297575f80fd5b506101f86102a63660046111a9565b6001600160a01b03165f9081526001602052604090205490565b3480156102cb575f80fd5b506101e66105fe565b3480156102df575f80fd5b50600e546102f3906001600160a01b031681565b6040516001600160a01b039091168152602001610160565b348015610316575f80fd5b50600d546102f3906001600160a01b031681565b348015610335575f80fd5b505f546001600160a01b03166102f3565b348015610351575f80fd5b506101f8600c5481565b348015610366575f80fd5b506101e66103753660046111db565b61066b565b348015610385575f80fd5b50604080518082019091526004815263232924a760e11b602082015261019b565b3480156103b1575f80fd5b506101546103c0366004611121565b6106b2565b3480156103d0575f80fd5b50600f546102f3906001600160a01b031681565b3480156103ef575f80fd5b506101f86103fe3660046111fa565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610433575f80fd5b506101f860105481565b335f8181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104979086815260200190565b60405180910390a35060015b92915050565b5f546001600160a01b031633146104db5760405162461bcd60e51b81526004016104d290611231565b60405180910390fd5b600882905560098190556104ef8183611265565b600a555050565b6001600160a01b0383165f9081526002602090815260408083203384529091528120545f191461059f576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f90815260028252838120338252909152919091205461057b9184906106be565b6001600160a01b0385165f9081526002602090815260408083203384529091529020555b6105aa8484846106f6565b90505b9392505050565b5f546001600160a01b031633146105dd5760405162461bcd60e51b81526004016104d290611231565b6103e8816007546105ee9190611278565b6105f8919061128f565b600c5550565b5f546001600160a01b031633146106275760405162461bcd60e51b81526004016104d290611231565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b031633146106945760405162461bcd60e51b81526004016104d290611231565b600f8054911515600160a01b0260ff60a01b19909216919091179055565b5f6105ad3384846106f6565b5f81848411156106e15760405162461bcd60e51b81526004016104d291906110bf565b505f6106ed84866112ae565b95945050505050565b6011545f9060ff16156107155761070e84848461095d565b90506105ad565b600f546001600160a01b0384811691161480159061074157506006546001600160a01b03848116911614155b156107ea576001600160a01b0383165f9081526004602052604090205460ff16806107905750600c546001600160a01b0384165f9081526001602052604090205461078d908490611265565b11155b6107ea5760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b60648201526084016104d2565b6107f2610a40565b801561081657506001600160a01b0384165f9081526003602052604090205460ff16155b801561082f5750600f546001600160a01b038481169116145b801561083c575060105482115b1561084957610849610a7f565b6001600160a01b0384165f9081526003602052604081205460ff16158061087a5750600f54600160a01b900460ff16155b905080156108ca576108ad61088f8685610def565b6001600160a01b0386165f9081526001602052604090205490610f35565b6001600160a01b0385165f90815260016020526040902055610905565b6001600160a01b0384165f908152600160205260409020546108ec9084610f35565b6001600160a01b0385165f908152600160205260409020555b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161094a91815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f9081526001909152918220546109ad9184906106be565b6001600160a01b038086165f9081526001602052604080822093909355908516815220546109db9083610f35565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a2e9086815260200190565b60405180910390a35060019392505050565b6011545f9060ff16158015610a5e5750600f54600160a01b900460ff165b8015610a7a5750601054305f9081526001602052604090205410155b905090565b6011805460ff191660011790555f610aab306001600160a01b03165f9081526001602052604090205490565b90505f610ad46002610ace600a54610ace60085487610f9390919063ffffffff16565b90611011565b90505f610ae18383611052565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f81518110610b1957610b196112c1565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610b70573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b9491906112d5565b81600181518110610ba757610ba76112c1565b6001600160a01b039283166020918202929092010152600e5460405163791ac94760e01b81524792919091169063791ac94790610bf09086905f908790309042906004016112f0565b5f604051808303815f87803b158015610c07575f80fd5b505af1158015610c19573d5f803e3d5ffd5b505050505f610c31824761105290919063ffffffff16565b90505f610c56610c4d600260085461101190919063ffffffff16565b600a5490611052565b90505f610c776002610ace84610ace60085488610f9390919063ffffffff16565b90505f610c9383610ace60095487610f9390919063ffffffff16565b600d546040519192505f916001600160a01b039091169061753090849084818181858888f193505050503d805f8114610ce7576040519150601f19603f3d011682016040523d82523d5f602084013e610cec565b606091505b5050905080610d3d5760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e73666572000060448201526064016104d2565b8815610dd957600e54600d5460405163f305d71960e01b8152306004820152602481018c90525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c40160606040518083038185885af1158015610db0573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610dd5919061135f565b5050505b50506011805460ff191690555050505050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0385165f908152600190915291822054610e3f9184906106be565b6001600160a01b0384165f90815260016020526040812091909155600b54600a54610e709190610ace908690610f93565b9050610e94846001600160a01b03165f9081526003602052604090205460ff161590565b8015610eaa5750600f54600160a01b900460ff16155b15610eb257505f5b305f90815260016020526040902054610ecb9082610f35565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f1b9085815260200190565b60405180910390a3610f2d8382611052565b949350505050565b5f80610f418385611265565b9050838110156105ad5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104d2565b5f825f03610fa257505f6104a3565b5f610fad8385611278565b905082610fba858361128f565b146105ad5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104d2565b5f6105ad83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611093565b5f6105ad83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506106be565b5f81836110b35760405162461bcd60e51b81526004016104d291906110bf565b505f6106ed848661128f565b5f6020808352835180828501525f5b818110156110ea578581018301518582016040015282016110ce565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461111e575f80fd5b50565b5f8060408385031215611132575f80fd5b823561113d8161110a565b946020939093013593505050565b5f806040838503121561115c575f80fd5b50508035926020909101359150565b5f805f6060848603121561117d575f80fd5b83356111888161110a565b925060208401356111988161110a565b929592945050506040919091013590565b5f602082840312156111b9575f80fd5b81356105ad8161110a565b5f602082840312156111d4575f80fd5b5035919050565b5f602082840312156111eb575f80fd5b813580151581146105ad575f80fd5b5f806040838503121561120b575f80fd5b82356112168161110a565b915060208301356112268161110a565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808201808211156104a3576104a3611251565b80820281158282048414176104a3576104a3611251565b5f826112a957634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156104a3576104a3611251565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156112e5575f80fd5b81516105ad8161110a565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561133e5784516001600160a01b031683529383019391830191600101611319565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611371575f80fd5b835192506020840151915060408401519050925092509256fea264697066735822122013348a378351e868206c104f62648b6891bc7e80d31904e3c617d24d69e4084564736f6c63430008150033

Deployed Bytecode Sourcemap

4372:7354:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5279:34;;;;;;;;;;-1:-1:-1;5279:34:0;;;;-1:-1:-1;;;5279:34:0;;;;;;;;;179:14:1;;172:22;154:41;;142:2;127:18;5279:34:0;;;;;;;;6471:80;;;;;;;;;;-1:-1:-1;6543:5:0;;;;;;;;;;;;-1:-1:-1;;;6543:5:0;;;;6471:80;;;;;;;:::i;9802:216::-;;;;;;;;;;-1:-1:-1;9802:216:0;;;;;:::i;:::-;;:::i;10576:196::-;;;;;;;;;;-1:-1:-1;10576:196:0;;;;;:::i;:::-;;:::i;:::-;;6201:88;;;;;;;;;;-1:-1:-1;6274:12:0;;6201:88;;;1614:25:1;;;1602:2;1587:18;6201:88:0;1468:177:1;10026:370:0;;;;;;;;;;-1:-1:-1;10026:370:0;;;;;:::i;:::-;;:::i;4075:103::-;;;;;;;;;;-1:-1:-1;4075:103:0;;;;;:::i;:::-;4130:4;4165:5;-1:-1:-1;;;;;4154:16:0;;;4165:5;;4154:16;;4075:103;6295:80;;;;;;;;;;-1:-1:-1;6295:80:0;;4560:1;2505:36:1;;2493:2;2478:18;6295:80:0;2363:184:1;7535:135:0;;;;;;;;;;-1:-1:-1;7535:135:0;;;;;:::i;:::-;;:::i;6641:105::-;;;;;;;;;;-1:-1:-1;6641:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;6725:18:0;6707:7;6725:18;;;:9;:18;;;;;;;6641:105;4184:131;;;;;;;;;;;;;:::i;5204:35::-;;;;;;;;;;-1:-1:-1;5204:35:0;;;;-1:-1:-1;;;;;5204:35:0;;;;;;-1:-1:-1;;;;;2923:32:1;;;2905:51;;2893:2;2878:18;5204:35:0;2737:225:1;5167:30:0;;;;;;;;;;-1:-1:-1;5167:30:0;;;;-1:-1:-1;;;;;5167:30:0;;;6557:78;;;;;;;;;;-1:-1:-1;6609:7:0;6627:5;-1:-1:-1;;;;;6627:5:0;6557:78;;5105:55;;;;;;;;;;;;;;;;7678:99;;;;;;;;;;-1:-1:-1;7678:99:0;;;;;:::i;:::-;;:::i;6381:84::-;;;;;;;;;;-1:-1:-1;6455:7:0;;;;;;;;;;;;-1:-1:-1;;;6455:7:0;;;;6381:84;;10408:156;;;;;;;;;;-1:-1:-1;10408:156:0;;;;;:::i;:::-;;:::i;5246:26::-;;;;;;;;;;-1:-1:-1;5246:26:0;;;;-1:-1:-1;;;;;5246:26:0;;;6752:133;;;;;;;;;;-1:-1:-1;6752:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;6854:19:0;;;6836:7;6854:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;6752:133;5320:55;;;;;;;;;;;;;;;;9802:216;9906:10;9877:4;9894:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9894:32:0;;;;;;;;;;:41;;;9951:37;9877:4;;9894:32;;9951:37;;;;9929:6;1614:25:1;;1602:2;1587:18;;1468:177;9951:37:0;;;;;;;;-1:-1:-1;10006:4:0;9802:216;;;;;:::o;10576:196::-;4130:4;4165:5;-1:-1:-1;;;;;4165:5:0;4036:10;4154:16;4020:38;;;;-1:-1:-1;;;4020:38:0;;;;;;;:::i;:::-;;;;;;;;;10670:6:::1;:22:::0;;;10705:7:::1;:23:::0;;;10748:16:::1;10715:13:::0;10679;10748:16:::1;:::i;:::-;10740:5;:24:::0;-1:-1:-1;;10576:196:0:o;10026:370::-;-1:-1:-1;;;;;10146:19:0;;10126:4;10146:19;;;:11;:19;;;;;;;;10166:10;10146:31;;;;;;;;-1:-1:-1;;10146:52:0;10143:186;;10248:69;;;;;;;;;;;-1:-1:-1;;;10248:69:0;;;;;;;;-1:-1:-1;;;;;10248:19:0;;-1:-1:-1;10248:19:0;;;:11;:19;;;;;10268:10;10248:31;;;;;;;;;;:69;;10284:6;;10248:35;:69::i;:::-;-1:-1:-1;;;;;10214:19:0;;;;;;:11;:19;;;;;;;;10234:10;10214:31;;;;;;;:103;10143:186;10348:40;10362:6;10370:9;10381:6;10348:13;:40::i;:::-;10341:47;;10026:370;;;;;;:::o;7535:135::-;4130:4;4165:5;-1:-1:-1;;;;;4165:5:0;4036:10;4154:16;4020:38;;;;-1:-1:-1;;;4020:38:0;;;;;;;:::i;:::-;7658:4:::1;7640:13;7625:12;;:28;;;;:::i;:::-;7624:38;;;;:::i;:::-;7610:11;:52:::0;-1:-1:-1;7535:135:0:o;4184:131::-;4130:4;4165:5;-1:-1:-1;;;;;4165:5:0;4036:10;4154:16;4020:38;;;;-1:-1:-1;;;4020:38:0;;;;;;;:::i;:::-;4257:1:::1;4241:18:::0;;-1:-1:-1;;;;;;4241:18:0::1;::::0;;4275:32:::1;::::0;2905:51:1;;;4275:32:0::1;::::0;2893:2:1;2878:18;4275:32:0::1;;;;;;;4184:131::o:0;7678:99::-;4130:4;4165:5;-1:-1:-1;;;;;4165:5:0;4036:10;4154:16;4020:38;;;;-1:-1:-1;;;4020:38:0;;;;;;;:::i;:::-;7747:14:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;7747:22:0::1;-1:-1:-1::0;;;;7747:22:0;;::::1;::::0;;;::::1;::::0;;7678:99::o;10408:156::-;10488:4;10512:44;10526:10;10538:9;10549:6;10512:13;:44::i;683:190::-;769:7;805:12;797:6;;;;789:29;;;;-1:-1:-1;;;789:29:0;;;;;;;;:::i;:::-;-1:-1:-1;829:9:0;841:5;845:1;841;:5;:::i;:::-;829:17;683:190;-1:-1:-1;;;;;683:190:0:o;10788:935::-;10900:7;;10880:4;;10900:7;;10897:67;;;10917:44;10935:6;10943:9;10954:6;10917:17;:44::i;:::-;10910:51;;;;10897:67;11001:11;;-1:-1:-1;;;;;10988:24:0;;;11001:11;;10988:24;;;;:52;;-1:-1:-1;11029:11:0;;-1:-1:-1;;;;;11016:24:0;;;11029:11;;11016:24;;10988:52;10984:208;;;-1:-1:-1;;;;;11065:25:0;;;;;;:14;:25;;;;;;;;;:73;;-1:-1:-1;11127:11:0;;-1:-1:-1;;;;;11094:20:0;;;;;;:9;:20;;;;;;:29;;11117:6;;11094:29;:::i;:::-;:44;;11065:73;11057:123;;;;-1:-1:-1;;;11057:123:0;;5172:2:1;11057:123:0;;;5154:21:1;5211:2;5191:18;;;5184:30;5250:34;5230:18;;;5223:62;-1:-1:-1;;;5301:18:1;;;5294:35;5346:19;;11057:123:0;4970:401:1;11057:123:0;11213:12;:10;:12::i;:::-;:39;;;;-1:-1:-1;;;;;;7499:20:0;;7474:4;7499:20;;;:12;:20;;;;;;;;7498:21;11229:23;11213:67;;;;-1:-1:-1;11269:11:0;;-1:-1:-1;;;;;11256:24:0;;;11269:11;;11256:24;11213:67;:96;;;;;11293:16;;11284:6;:25;11213:96;11210:147;;;11326:18;:16;:18::i;:::-;-1:-1:-1;;;;;7499:20:0;;11368:14;7499:20;;;:12;:20;;;;;;;;7498:21;11385:42;;;-1:-1:-1;11413:14:0;;-1:-1:-1;;;11413:14:0;;;;11412:15;11385:42;11368:59;;11442:9;11438:203;;;11491:50;11516:24;11525:6;11533;11516:8;:24::i;:::-;-1:-1:-1;;;;;11491:20:0;;;;;;:9;:20;;;;;;;:24;:50::i;:::-;-1:-1:-1;;;;;11468:20:0;;;;;;:9;:20;;;;;:73;11438:203;;;-1:-1:-1;;;;;11597:20:0;;;;;;:9;:20;;;;;;:32;;11622:6;11597:24;:32::i;:::-;-1:-1:-1;;;;;11574:20:0;;;;;;:9;:20;;;;;:55;11438:203;11675:9;-1:-1:-1;;;;;11658:35:0;11667:6;-1:-1:-1;;;;;11658:35:0;;11686:6;11658:35;;;;1614:25:1;;1602:2;1587:18;;1468:177;11658:35:0;;;;;;;;-1:-1:-1;11711:4:0;;10788:935;-1:-1:-1;;;;10788:935:0:o;9457:333::-;9590:53;;;;;;;;;;;-1:-1:-1;;;9590:53:0;;;;;;;;-1:-1:-1;;;;;9590:17:0;;9553:4;9590:17;;;:9;:17;;;;;;;:53;;9612:6;;9590:21;:53::i;:::-;-1:-1:-1;;;;;9570:17:0;;;;;;;:9;:17;;;;;;:73;;;;9677:20;;;;;;;:32;;9702:6;9677:24;:32::i;:::-;-1:-1:-1;;;;;9654:20:0;;;;;;;:9;:20;;;;;;;:55;;;;9725:35;;;;;;;;;;9753:6;1614:25:1;;1602:2;1587:18;;1468:177;9725:35:0;;;;;;;;-1:-1:-1;9778:4:0;9457:333;;;;;:::o;7785:169::-;7855:7;;7830:4;;7855:7;;7854:8;:35;;;;-1:-1:-1;7875:14:0;;-1:-1:-1;;;7875:14:0;;;;7854:35;:92;;;;-1:-1:-1;7930:16:0;;7920:4;7902:24;;;;:9;:24;;;;;;:44;;7854:92;7847:99;;7785:169;:::o;7966:1483::-;5431:7;:14;;-1:-1:-1;;5431:14:0;5441:4;5431:14;;;:7;8054:24:::1;8072:4;-1:-1:-1::0;;;;;6725:18:0;6707:7;6725:18;;;:9;:18;;;;;;;6641:105;8054:24:::1;8023:55;;8089:23;8115:50;8163:1;8115:43;8152:5;;8115:32;8140:6;;8115:20;:24;;:32;;;;:::i;:::-;:36:::0;::::1;:43::i;:50::-;8089:76:::0;-1:-1:-1;8176:20:0::1;8199:41;:20:::0;8089:76;8199:24:::1;:41::i;:::-;8277:16;::::0;;8291:1:::1;8277:16:::0;;;;;::::1;::::0;;8176:64;;-1:-1:-1;8253:21:0::1;::::0;8277:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;8277:16:0::1;8253:40;;8322:4;8304;8309:1;8304:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8304:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;8348:13:::1;::::0;:20:::1;::::0;;-1:-1:-1;;;8348:20:0;;;;:13;;;::::1;::::0;:18:::1;::::0;:20:::1;::::0;;::::1;::::0;8304:7;;8348:20;;;;;:13;:20:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8338:4;8343:1;8338:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8338:30:0;;::::1;:7;::::0;;::::1;::::0;;;;;:30;8439:13:::1;::::0;:195:::1;::::0;-1:-1:-1;;;8439:195:0;;8405:21:::1;::::0;8439:13;;;::::1;::::0;:64:::1;::::0;:195:::1;::::0;8518:12;;8381:21:::1;::::0;8561:4;;8588::::1;::::0;8608:15:::1;::::0;8439:195:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8645:17;8665:40;8691:13;8665:21;:25;;:40;;;;:::i;:::-;8645:60;;8716:19;8738:24;8748:13;8759:1;8748:6;;:10;;:13;;;;:::i;:::-;8738:5;::::0;;:9:::1;:24::i;:::-;8716:46;;8773:26;8802:45;8845:1;8802:38;8828:11;8802:21;8816:6;;8802:9;:13;;:21;;;;:::i;:45::-;8773:74;;8858:26;8887:39;8914:11;8887:22;8901:7;;8887:9;:13;;:22;;;;:::i;:39::-;9000:15;::::0;8992:72:::1;::::0;8858:68;;-1:-1:-1;8942:21:0::1;::::0;-1:-1:-1;;;;;9000:15:0;;::::1;::::0;9054:5:::1;::::0;8858:68;;8942:21;8992:72;8942:21;8992:72;8858:68;9000:15;9054:5;8992:72:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8941:123;;;9083:16;9075:59;;;::::0;-1:-1:-1;;;9075:59:0;;7293:2:1;9075:59:0::1;::::0;::::1;7275:21:1::0;7332:2;7312:18;;;7305:30;7371:32;7351:18;;;7344:60;7421:18;;9075:59:0::1;7091:354:1::0;9075:59:0::1;9150:19:::0;;9147:295:::1;;9185:13;::::0;9366:15:::1;::::0;9185:245:::1;::::0;-1:-1:-1;;;9185:245:0;;9268:4:::1;9185:245;::::0;::::1;7791:34:1::0;7841:18;;;7834:34;;;9185:13:0::1;7884:18:1::0;;;7877:34;;;7927:18;;;7920:34;-1:-1:-1;;;;;9366:15:0;;::::1;7970:19:1::0;;;7963:44;9400:15:0::1;8023:19:1::0;;;8016:35;9185:13:0;::::1;::::0;:29:::1;::::0;9222:18;;7725:19:1;;9185:245:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;9147:295;-1:-1:-1::0;;5450:7:0;:15;;-1:-1:-1;;5450:15:0;;;-1:-1:-1;;;;;;;;7966:1483:0:o;6891:507::-;6999:53;;;;;;;;;;;-1:-1:-1;;;6999:53:0;;;;;;;;-1:-1:-1;;;;;6999:17:0;;6959:7;6999:17;;;:9;:17;;;;;;;:53;;7021:6;;6999:21;:53::i;:::-;-1:-1:-1;;;;;6979:17:0;;;;;;:9;:17;;;;;:73;;;;7105:12;;7094:5;;7083:35;;7105:12;7083:17;;:6;;:10;:17::i;:35::-;7063:55;;7133:23;7149:6;-1:-1:-1;;;;;7499:20:0;7474:4;7499:20;;;:12;:20;;;;;;;;7498:21;;7410:117;7133:23;:42;;;;-1:-1:-1;7161:14:0;;-1:-1:-1;;;7161:14:0;;;;7160:15;7133:42;7129:88;;;-1:-1:-1;7204:1:0;7129:88;7272:4;7254:24;;;;:9;:24;;;;;;:39;;7283:9;7254:28;:39::i;:::-;7245:4;7227:24;;;;:9;:24;;;;;;;:66;;;;7309:42;;-1:-1:-1;;;;;7309:42:0;;;;;;;7341:9;1614:25:1;;1602:2;1587:18;;1468:177;7309:42:0;;;;;;;;7369:21;:6;7380:9;7369:10;:21::i;:::-;7362:28;6891:507;-1:-1:-1;;;;6891:507:0:o;356:179::-;414:7;;446:5;450:1;446;:5;:::i;:::-;434:17;;475:1;470;:6;;462:46;;;;-1:-1:-1;;;462:46:0;;8575:2:1;462:46:0;;;8557:21:1;8614:2;8594:18;;;8587:30;8653:29;8633:18;;;8626:57;8700:18;;462:46:0;8373:351:1;879:246:0;937:7;961:1;966;961:6;957:47;;-1:-1:-1;991:1:0;984:8;;957:47;1014:9;1026:5;1030:1;1026;:5;:::i;:::-;1014:17;-1:-1:-1;1059:1:0;1050:5;1054:1;1014:17;1050:5;:::i;:::-;:10;1042:56;;;;-1:-1:-1;;;1042:56:0;;8931:2:1;1042:56:0;;;8913:21:1;8970:2;8950:18;;;8943:30;9009:34;8989:18;;;8982:62;-1:-1:-1;;;9060:18:1;;;9053:31;9101:19;;1042:56:0;8729:397:1;1131:132:0;1189:7;1216:39;1220:1;1223;1216:39;;;;;;;;;;;;;;;;;:3;:39::i;541:136::-;599:7;626:43;630:1;633;626:43;;;;;;;;;;;;;;;;;:3;:43::i;1269:189::-;1355:7;1390:12;1383:5;1375:28;;;;-1:-1:-1;;;1375:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1414:9:0;1426:5;1430:1;1426;:5;:::i;206:548:1:-;318:4;347:2;376;365:9;358:21;408:6;402:13;451:6;446:2;435:9;431:18;424:34;476:1;486:140;500:6;497:1;494:13;486:140;;;595:14;;;591:23;;585:30;561:17;;;580:2;557:26;550:66;515:10;;486:140;;;490:3;675:1;670:2;661:6;650:9;646:22;642:31;635:42;745:2;738;734:7;729:2;721:6;717:15;713:29;702:9;698:45;694:54;686:62;;;;206:548;;;;:::o;759:131::-;-1:-1:-1;;;;;834:31:1;;824:42;;814:70;;880:1;877;870:12;814:70;759:131;:::o;895:315::-;963:6;971;1024:2;1012:9;1003:7;999:23;995:32;992:52;;;1040:1;1037;1030:12;992:52;1079:9;1066:23;1098:31;1123:5;1098:31;:::i;:::-;1148:5;1200:2;1185:18;;;;1172:32;;-1:-1:-1;;;895:315:1:o;1215:248::-;1283:6;1291;1344:2;1332:9;1323:7;1319:23;1315:32;1312:52;;;1360:1;1357;1350:12;1312:52;-1:-1:-1;;1383:23:1;;;1453:2;1438:18;;;1425:32;;-1:-1:-1;1215:248:1:o;1650:456::-;1727:6;1735;1743;1796:2;1784:9;1775:7;1771:23;1767:32;1764:52;;;1812:1;1809;1802:12;1764:52;1851:9;1838:23;1870:31;1895:5;1870:31;:::i;:::-;1920:5;-1:-1:-1;1977:2:1;1962:18;;1949:32;1990:33;1949:32;1990:33;:::i;:::-;1650:456;;2042:7;;-1:-1:-1;;;2096:2:1;2081:18;;;;2068:32;;1650:456::o;2111:247::-;2170:6;2223:2;2211:9;2202:7;2198:23;2194:32;2191:52;;;2239:1;2236;2229:12;2191:52;2278:9;2265:23;2297:31;2322:5;2297:31;:::i;2552:180::-;2611:6;2664:2;2652:9;2643:7;2639:23;2635:32;2632:52;;;2680:1;2677;2670:12;2632:52;-1:-1:-1;2703:23:1;;2552:180;-1:-1:-1;2552:180:1:o;3175:273::-;3231:6;3284:2;3272:9;3263:7;3259:23;3255:32;3252:52;;;3300:1;3297;3290:12;3252:52;3339:9;3326:23;3392:5;3385:13;3378:21;3371:5;3368:32;3358:60;;3414:1;3411;3404:12;3453:388;3521:6;3529;3582:2;3570:9;3561:7;3557:23;3553:32;3550:52;;;3598:1;3595;3588:12;3550:52;3637:9;3624:23;3656:31;3681:5;3656:31;:::i;:::-;3706:5;-1:-1:-1;3763:2:1;3748:18;;3735:32;3776:33;3735:32;3776:33;:::i;:::-;3828:7;3818:17;;;3453:388;;;;;:::o;3846:329::-;4048:2;4030:21;;;4087:1;4067:18;;;4060:29;-1:-1:-1;;;4120:2:1;4105:18;;4098:36;4166:2;4151:18;;3846:329::o;4180:127::-;4241:10;4236:3;4232:20;4229:1;4222:31;4272:4;4269:1;4262:15;4296:4;4293:1;4286:15;4312:125;4377:9;;;4398:10;;;4395:36;;;4411:18;;:::i;4442:168::-;4515:9;;;4546;;4563:15;;;4557:22;;4543:37;4533:71;;4584:18;;:::i;4615:217::-;4655:1;4681;4671:132;;4725:10;4720:3;4716:20;4713:1;4706:31;4760:4;4757:1;4750:15;4788:4;4785:1;4778:15;4671:132;-1:-1:-1;4817:9:1;;4615:217::o;4837:128::-;4904:9;;;4925:11;;;4922:37;;;4939:18;;:::i;5508:127::-;5569:10;5564:3;5560:20;5557:1;5550:31;5600:4;5597:1;5590:15;5624:4;5621:1;5614:15;5640:251;5710:6;5763:2;5751:9;5742:7;5738:23;5734:32;5731:52;;;5779:1;5776;5769:12;5731:52;5811:9;5805:16;5830:31;5855:5;5830:31;:::i;5896:980::-;6158:4;6206:3;6195:9;6191:19;6237:6;6226:9;6219:25;6263:2;6301:6;6296:2;6285:9;6281:18;6274:34;6344:3;6339:2;6328:9;6324:18;6317:31;6368:6;6403;6397:13;6434:6;6426;6419:22;6472:3;6461:9;6457:19;6450:26;;6511:2;6503:6;6499:15;6485:29;;6532:1;6542:195;6556:6;6553:1;6550:13;6542:195;;;6621:13;;-1:-1:-1;;;;;6617:39:1;6605:52;;6712:15;;;;6677:12;;;;6653:1;6571:9;6542:195;;;-1:-1:-1;;;;;;;6793:32:1;;;;6788:2;6773:18;;6766:60;-1:-1:-1;;;6857:3:1;6842:19;6835:35;6754:3;5896:980;-1:-1:-1;;;5896:980:1:o;8062:306::-;8150:6;8158;8166;8219:2;8207:9;8198:7;8194:23;8190:32;8187:52;;;8235:1;8232;8225:12;8187:52;8264:9;8258:16;8248:26;;8314:2;8303:9;8299:18;8293:25;8283:35;;8358:2;8347:9;8343:18;8337:25;8327:35;;8062:306;;;;;:::o

Swarm Source

ipfs://13348a378351e868206c104f62648b6891bc7e80d31904e3c617d24d69e40845

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.