ETH Price: $3,385.87 (+0.75%)

Contract

0x57CA1f39b0757b8610617E90FA9b2980cCeBfecE
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

TokenTracker

OrdinalsFi (OrdiFi) (@$0.0002)

Multichain Info

Transaction Hash
Method
Block
From
To
Approve213304132024-12-04 16:45:3524 days ago1733330735IN
OrdinalsFi: OrdiFi Token
0 ETH0.0018152339.22209824
Approve213008542024-11-30 13:40:5928 days ago1732974059IN
OrdinalsFi: OrdiFi Token
0 ETH0.000419879.07471507
Approve212982162024-11-30 4:50:1129 days ago1732942211IN
OrdinalsFi: OrdiFi Token
0 ETH0.000149866.16807898
Approve212941692024-11-29 15:13:4729 days ago1732893227IN
OrdinalsFi: OrdiFi Token
0 ETH0.001057522.73187172
Approve212889482024-11-28 21:41:5930 days ago1732830119IN
OrdinalsFi: OrdiFi Token
0 ETH0.000362817.79884933
Approve212683782024-11-26 0:35:1133 days ago1732581311IN
OrdinalsFi: OrdiFi Token
0 ETH0.00030876.6823944
Approve212683722024-11-26 0:33:5933 days ago1732581239IN
OrdinalsFi: OrdiFi Token
0 ETH0.000186587.07586252
Approve212683572024-11-26 0:30:5933 days ago1732581059IN
OrdinalsFi: OrdiFi Token
0 ETH0.00020047.60018924
Approve212602792024-11-24 21:25:5934 days ago1732483559IN
OrdinalsFi: OrdiFi Token
0 ETH0.000359647.77298314
Transfer212597002024-11-24 19:29:3534 days ago1732476575IN
OrdinalsFi: OrdiFi Token
0 ETH0.000469818.23926596
Approve212401152024-11-22 1:53:4737 days ago1732240427IN
OrdinalsFi: OrdiFi Token
0 ETH0.0005185411.14654307
Approve211901502024-11-15 2:36:2344 days ago1731638183IN
OrdinalsFi: OrdiFi Token
0 ETH0.0004315217.76057944
Approve211543712024-11-10 2:46:4749 days ago1731206807IN
OrdinalsFi: OrdiFi Token
0 ETH0.000196438.10480764
Approve210914082024-11-01 7:49:3558 days ago1730447375IN
OrdinalsFi: OrdiFi Token
0 ETH0.000172046.54255131
Approve210914072024-11-01 7:49:2358 days ago1730447363IN
OrdinalsFi: OrdiFi Token
0 ETH0.000157226.47092971
Approve210607042024-10-28 0:58:2362 days ago1730077103IN
OrdinalsFi: OrdiFi Token
0 ETH0.000213964.62428582
Approve210471462024-10-26 3:35:2364 days ago1729913723IN
OrdinalsFi: OrdiFi Token
0 ETH0.000275785.92810534
Approve209787982024-10-16 14:43:4773 days ago1729089827IN
OrdinalsFi: OrdiFi Token
0 ETH0.0005299221.81014315
Approve209107132024-10-07 2:32:2383 days ago1728268343IN
OrdinalsFi: OrdiFi Token
0 ETH0.0003232712.29324081
Approve209107112024-10-07 2:31:5983 days ago1728268319IN
OrdinalsFi: OrdiFi Token
0 ETH0.000286811.80408882
Approve208961192024-10-05 1:43:2385 days ago1728092603IN
OrdinalsFi: OrdiFi Token
0 ETH0.00010424.28884471
Approve207079532024-09-08 19:23:35111 days ago1725823415IN
OrdinalsFi: OrdiFi Token
0 ETH0.000078091.67865892
Approve206690962024-09-03 9:16:47117 days ago1725355007IN
OrdinalsFi: OrdiFi Token
0 ETH0.000067862.8
Approve206681502024-09-03 6:06:23117 days ago1725343583IN
OrdinalsFi: OrdiFi Token
0 ETH0.000122172.62629485
Approve206513222024-08-31 21:45:23119 days ago1725140723IN
OrdinalsFi: OrdiFi Token
0 ETH0.000051041.10462875
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
199600152024-05-27 8:28:11216 days ago1716798491
OrdinalsFi: OrdiFi Token
0.0375757 ETH
199600152024-05-27 8:28:11216 days ago1716798491
OrdinalsFi: OrdiFi Token
0.0375757 ETH
198936462024-05-18 1:45:47225 days ago1715996747
OrdinalsFi: OrdiFi Token
0.06268838 ETH
198936462024-05-18 1:45:47225 days ago1715996747
OrdinalsFi: OrdiFi Token
0.06268838 ETH
198888682024-05-17 9:42:47226 days ago1715938967
OrdinalsFi: OrdiFi Token
0.0057669 ETH
198888682024-05-17 9:42:47226 days ago1715938967
OrdinalsFi: OrdiFi Token
0.0057669 ETH
198662702024-05-14 5:49:23229 days ago1715665763
OrdinalsFi: OrdiFi Token
0.00257089 ETH
198662702024-05-14 5:49:23229 days ago1715665763
OrdinalsFi: OrdiFi Token
0.00257089 ETH
197513692024-04-28 4:15:47245 days ago1714277747
OrdinalsFi: OrdiFi Token
0.0098856 ETH
197513692024-04-28 4:15:47245 days ago1714277747
OrdinalsFi: OrdiFi Token
0.0098856 ETH
197193672024-04-23 16:44:59249 days ago1713890699
OrdinalsFi: OrdiFi Token
0.01243878 ETH
197193672024-04-23 16:44:59249 days ago1713890699
OrdinalsFi: OrdiFi Token
0.01243878 ETH
196535572024-04-14 11:44:59259 days ago1713095099
OrdinalsFi: OrdiFi Token
0.00863993 ETH
196535572024-04-14 11:44:59259 days ago1713095099
OrdinalsFi: OrdiFi Token
0.00863993 ETH
194933062024-03-22 23:02:35281 days ago1711148555
OrdinalsFi: OrdiFi Token
0.08389894 ETH
194933062024-03-22 23:02:35281 days ago1711148555
OrdinalsFi: OrdiFi Token
0.08389894 ETH
193898232024-03-08 10:22:47296 days ago1709893367
OrdinalsFi: OrdiFi Token
0.06657179 ETH
193898232024-03-08 10:22:47296 days ago1709893367
OrdinalsFi: OrdiFi Token
0.06657179 ETH
193001552024-02-24 21:34:11308 days ago1708810451
OrdinalsFi: OrdiFi Token
0.15662636 ETH
193001552024-02-24 21:34:11308 days ago1708810451
OrdinalsFi: OrdiFi Token
0.15662636 ETH
192954512024-02-24 5:47:23309 days ago1708753643
OrdinalsFi: OrdiFi Token
0.01916363 ETH
192954512024-02-24 5:47:23309 days ago1708753643
OrdinalsFi: OrdiFi Token
0.01916363 ETH
192334462024-02-15 12:51:47318 days ago1708001507
OrdinalsFi: OrdiFi Token
0.07016333 ETH
192334462024-02-15 12:51:47318 days ago1708001507
OrdinalsFi: OrdiFi Token
0.07016333 ETH
192248582024-02-14 7:56:11319 days ago1707897371
OrdinalsFi: OrdiFi Token
0.02387421 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
OrdinalsFi

Compiler Version
v0.8.19+commit.7dd6d404

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

/**
OrdinalsFi

Unlocking the Future DeFi Ecosystem

Develop top-notch financial apps for Ethereum and Bitcoin Ordinals using OrdiFi. Immerse yourself in the core of decentralized innovation with OrdiFi, as we enhance the fundamentals of DeFi to provide a range of services that represent the cutting edge of decentralized financial technology.

OrdiFi Multichain Bridge Bot
OrdiFi Audit Tools
OrdiFi Staking dApps
OrdiFi Token Creator dApps
OrdiFi Token Locker dApps
OrdiFi Launchpad dApps

Socials 
Website      : https://ordinalsfi.io
Twitter/X    : https://x.com/Ordinalsfi
Whitepaper   : https://docs.ordinalsfi.io/
Channel      : https://t.me/OrdinalsFi
Medium       : http://medium.com/@ordinalsfi
Youtube      : https://youtube.com/@OrdinalsFi

*/

// SPDX-License-Identifier: MIT


pragma solidity 0.8.19;

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

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

}

contract Ownable is Context {
    address private _owner;
    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 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(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract OrdinalsFi is Context , IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable private _taxWallet;

    /// initial buy, sell fee till first 10 buys
    uint256 private _initialBuyTax=20;
    uint256 private _initialSellTax=30;

    ///final buy, sell fee
    uint256 private _finalBuyTax=5;
    uint256 private _finalSellTax=5;

    /// fee split info
    uint256 private _marketingFee = 5; 
    uint256 private _lpFee = 0;
    
    ///after how many buy sell should redue to final tax
    uint256 private _redBuyTaxAt=15;
    uint256 private _redSellTaxAt=20;
    uint256 private _preventSwapBefore=15;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 100000000 * 10**_decimals; // 100 million max supply
    string private constant _name = unicode"OrdinalsFi" ;
    string private constant _symbol = unicode"OrdiFi" ;
    uint256 public _maxTxAmount = 2000000 * 10**_decimals; // 2% of the supply
    uint256 public _maxWalletSize = 2000000 * 10**_decimals; // 2% of the supply
    uint256 public _taxSwapThreshold= 500000 * 10**_decimals;
    uint256 public _maxTaxSwap= 1000000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

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

    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 _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[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()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        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");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner() && from != address(this)) {
            

            if (transferDelayEnabled) {
                  if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                      require(
                          _holderLastTransferTimestamp[tx.origin] <
                              block.number,
                          "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                      );
                      _holderLastTransferTimestamp[tx.origin] = block.number;
                  }
              }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                taxAmount = amount.mul((_buyCount>_redBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyCount++;
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_redSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to   == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapAndLiquify(min(amount,min(contractTokenBalance,_maxTaxSwap)));
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    function swapAndLiquify (uint256 tokens) private lockTheSwap {
      uint256 lpTokens = (tokens * _lpFee) / 2;
      uint256 swapTokens = tokens - lpTokens;
      swapTokensForEth (swapTokens);
      uint256 ethBalance = address(this).balance;
      uint256 marketingPart = (ethBalance * _marketingFee) / (_marketingFee + _lpFee);
      if(marketingPart > 0){
      (bool success,) = _taxWallet.call{value: marketingPart}("");
      if (success && lpTokens > 0){
      addLiquidity(lpTokens, address(this).balance);
       }
      }
    }

    function swapTokensForEth(uint256 tokenAmount) private  {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity (uint256 tokens, uint256 eth) private {
        uint256 allowedTokens = allowance(address(this), address(uniswapV2Router));
        if(allowedTokens < tokens){
         _approve(address(this), address(uniswapV2Router), ~uint256(0));
        }
        uniswapV2Router.addLiquidityETH{value: eth}(
            address(this),
            tokens,
            0,
            0,
            _taxWallet,
            block.timestamp);
    }

    function removeLimit() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }


    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    
    function reduceFee(uint256 marketingFee, uint256 liquidityFee) external onlyOwner{
      uint256 totalFee = marketingFee + liquidityFee;
      require(totalFee<=_finalBuyTax &&totalFee <=_finalSellTax);
      _marketingFee = marketingFee;
      _lpFee = liquidityFee;
      _finalBuyTax= totalFee;
      _finalSellTax= totalFee;
    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapAndLiquify(tokenBalance);
        }
      
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"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":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526005805460ff1916600117815560146006819055601e60075560088290556009828155600a9283556000600b819055600f600c819055600d93909355600e83905590915562000053916200035c565b6200006290621e848062000374565b601055620000736009600a6200035c565b6200008290621e848062000374565b601155620000936009600a6200035c565b620000a2906207a12062000374565b601255620000b36009600a6200035c565b620000c290620f424062000374565b6013556015805461ffff60a81b19169055348015620000e057600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060058054610100600160a81b0319166101003302179055620001476009600a6200035c565b62000157906305f5e10062000374565b336000908152600160208190526040822092909255600390620001826000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260039093528183208054851660019081179091556005546101009004909116835291208054909216179055620001e63390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002206009600a6200035c565b62000230906305f5e10062000374565b60405190815260200160405180910390a36200038e565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200029e57816000190482111562000282576200028262000247565b808516156200029057918102915b93841c939080029062000262565b509250929050565b600082620002b75750600162000356565b81620002c65750600062000356565b8160018114620002df5760028114620002ea576200030a565b600191505062000356565b60ff841115620002fe57620002fe62000247565b50506001821b62000356565b5060208310610133831016604e8410600b84101617156200032f575081810a62000356565b6200033b83836200025d565b806000190482111562000352576200035262000247565b0290505b92915050565b60006200036d60ff841683620002a6565b9392505050565b808202811582820484141762000356576200035662000247565b611ab1806200039e6000396000f3fe6080604052600436106101235760003560e01c806372333356116100a0578063a9059cbb11610064578063a9059cbb14610333578063bf474bed14610353578063c876d0b914610369578063c9567bf914610383578063dd62ed3e1461039857600080fd5b806372333356146102905780637d1db4a5146102b05780638da5cb5b146102c65780638f9a55c0146102ee57806395d89b411461030457600080fd5b8063313ce567116100e7578063313ce567146101fd57806351bc3c8514610219578063622565891461023057806370a0823114610245578063715018a61461027b57600080fd5b806306fdde031461012f578063095ea7b3146101745780630faee56f146101a457806318160ddd146101c857806323b872dd146101dd57600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b5060408051808201909152600a8152694f7264696e616c73466960b01b60208201525b60405161016b9190611626565b60405180910390f35b34801561018057600080fd5b5061019461018f366004611689565b6103de565b604051901515815260200161016b565b3480156101b057600080fd5b506101ba60135481565b60405190815260200161016b565b3480156101d457600080fd5b506101ba6103f5565b3480156101e957600080fd5b506101946101f83660046116b5565b610416565b34801561020957600080fd5b506040516009815260200161016b565b34801561022557600080fd5b5061022e61047f565b005b34801561023c57600080fd5b5061022e6104c6565b34801561025157600080fd5b506101ba6102603660046116f6565b6001600160a01b031660009081526001602052604090205490565b34801561028757600080fd5b5061022e61058b565b34801561029c57600080fd5b5061022e6102ab366004611713565b6105ff565b3480156102bc57600080fd5b506101ba60105481565b3480156102d257600080fd5b506000546040516001600160a01b03909116815260200161016b565b3480156102fa57600080fd5b506101ba60115481565b34801561031057600080fd5b506040805180820190915260068152654f726469466960d01b602082015261015e565b34801561033f57600080fd5b5061019461034e366004611689565b610667565b34801561035f57600080fd5b506101ba60125481565b34801561037557600080fd5b506005546101949060ff1681565b34801561038f57600080fd5b5061022e610674565b3480156103a457600080fd5b506101ba6103b3366004611735565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b60006103eb338484610a08565b5060015b92915050565b60006104036009600a611868565b610411906305f5e100611877565b905090565b6000610423848484610b2c565b610475843361047085604051806060016040528060288152602001611a54602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611108565b610a08565b5060019392505050565b60055461010090046001600160a01b0316336001600160a01b0316146104a457600080fd5b3060009081526001602052604090205480156104c3576104c381611142565b50565b6000546001600160a01b031633146104f95760405162461bcd60e51b81526004016104f09061188e565b60405180910390fd5b6105056009600a611868565b610513906305f5e100611877565b6010556105226009600a611868565b610530906305f5e100611877565b6011556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61056a6009600a611868565b610578906305f5e100611877565b60405190815260200160405180910390a1565b6000546001600160a01b031633146105b55760405162461bcd60e51b81526004016104f09061188e565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106295760405162461bcd60e51b81526004016104f09061188e565b600061063582846118c3565b9050600854811115801561064b57506009548111155b61065457600080fd5b600a92909255600b556008819055600955565b60006103eb338484610b2c565b6000546001600160a01b0316331461069e5760405162461bcd60e51b81526004016104f09061188e565b601554600160a01b900460ff16156106f85760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104f0565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107419030906107336009600a611868565b610470906305f5e100611877565b601460009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610794573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b891906118d6565b6001600160a01b031663c9c6539630601460009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561081a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083e91906118d6565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561088b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108af91906118d6565b601580546001600160a01b039283166001600160a01b03199091161790556014541663f305d71947306108f7816001600160a01b031660009081526001602052604090205490565b60008061090c6000546001600160a01b031690565b426040518863ffffffff1660e01b815260040161092e969594939291906118f3565b60606040518083038185885af115801561094c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610971919061192e565b505060155460145460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af11580156109ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ee919061195c565b506015805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610a6a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104f0565b6001600160a01b038216610acb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104f0565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b905760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104f0565b6001600160a01b038216610bf25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104f0565b60008111610c545760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104f0565b600080546001600160a01b03858116911614801590610c8157506000546001600160a01b03848116911614155b8015610c9657506001600160a01b0384163014155b15610fc55760055460ff1615610d80576014546001600160a01b03848116911614801590610cd257506015546001600160a01b03848116911614155b15610d8057326000908152600460205260409020544311610d6d5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a4016104f0565b3260009081526004602052604090204390555b6015546001600160a01b038581169116148015610dab57506014546001600160a01b03848116911614155b8015610dd057506001600160a01b03831660009081526003602052604090205460ff16155b15610ee657601054821115610e275760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104f0565b610e536064610e4d600c54600f5411610e4257600654610e46565b6008545b859061124c565b906112d5565b905060115482610e78856001600160a01b031660009081526001602052604090205490565b610e8291906118c3565b1115610ed05760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104f0565b600f8054906000610ee08361197e565b91905055505b6015546001600160a01b038481169116148015610f0c57506001600160a01b0384163014155b15610f3957610f366064610e4d600d54600f5411610f2c57600754610e46565b600954859061124c565b90505b30600090815260016020526040902054601554600160a81b900460ff16158015610f7057506015546001600160a01b038581169116145b8015610f855750601554600160b01b900460ff165b8015610f92575060125481115b8015610fa15750600e54600f54115b15610fc357610fc3610fbe84610fb984601354611317565b611317565b611142565b505b801561103f5730600090815260016020526040902054610fe5908261132c565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110369085815260200190565b60405180910390a35b6001600160a01b038416600090815260016020526040902054611062908361138b565b6001600160a01b0385166000908152600160205260409020556110a7611088838361138b565b6001600160a01b0385166000908152600160205260409020549061132c565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6110f1858561138b565b60405190815260200160405180910390a350505050565b6000818484111561112c5760405162461bcd60e51b81526004016104f09190611626565b5060006111398486611997565b95945050505050565b6015805460ff60a81b1916600160a81b179055600b546000906002906111689084611877565b61117291906119aa565b905060006111808284611997565b905061118b816113cd565b600b54600a5447916000916111a091906118c3565b600a546111ad9084611877565b6111b791906119aa565b905080156112385760055460405160009161010090046001600160a01b03169083908381818185875af1925050503d8060008114611211576040519150601f19603f3d011682016040523d82523d6000602084013e611216565b606091505b505090508080156112275750600085115b15611236576112368547611527565b505b50506015805460ff60a81b19169055505050565b60008260000361125e575060006103ef565b600061126a8385611877565b90508261127785836119aa565b146112ce5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104f0565b9392505050565b60006112ce83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115f8565b600081831161132657826112ce565b50919050565b60008061133983856118c3565b9050838110156112ce5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104f0565b60006112ce83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611108565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611402576114026119cc565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561145b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147f91906118d6565b81600181518110611492576114926119cc565b6001600160a01b0392831660209182029290920101526014546114b89130911684610a08565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906114f19085906000908690309042906004016119e2565b600060405180830381600087803b15801561150b57600080fd5b505af115801561151f573d6000803e3d6000fd5b505050505050565b6014543060009081526002602090815260408083206001600160a01b039094168352929052205482811015611570576014546115709030906001600160a01b0316600019610a08565b60145460055460405163f305d71960e01b81526001600160a01b039283169263f305d7199286926115b59230928a9260009283926101009004169042906004016118f3565b60606040518083038185885af11580156115d3573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061151f919061192e565b600081836116195760405162461bcd60e51b81526004016104f09190611626565b50600061113984866119aa565b600060208083528351808285015260005b8181101561165357858101830151858201604001528201611637565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146104c357600080fd5b6000806040838503121561169c57600080fd5b82356116a781611674565b946020939093013593505050565b6000806000606084860312156116ca57600080fd5b83356116d581611674565b925060208401356116e581611674565b929592945050506040919091013590565b60006020828403121561170857600080fd5b81356112ce81611674565b6000806040838503121561172657600080fd5b50508035926020909101359150565b6000806040838503121561174857600080fd5b823561175381611674565b9150602083013561176381611674565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156117bf5781600019048211156117a5576117a561176e565b808516156117b257918102915b93841c9390800290611789565b509250929050565b6000826117d6575060016103ef565b816117e3575060006103ef565b81600181146117f957600281146118035761181f565b60019150506103ef565b60ff8411156118145761181461176e565b50506001821b6103ef565b5060208310610133831016604e8410600b8410161715611842575081810a6103ef565b61184c8383611784565b80600019048211156118605761186061176e565b029392505050565b60006112ce60ff8416836117c7565b80820281158282048414176103ef576103ef61176e565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b808201808211156103ef576103ef61176e565b6000602082840312156118e857600080fd5b81516112ce81611674565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b60008060006060848603121561194357600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561196e57600080fd5b815180151581146112ce57600080fd5b6000600182016119905761199061176e565b5060010190565b818103818111156103ef576103ef61176e565b6000826119c757634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a325784516001600160a01b031683529383019391830191600101611a0d565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209be3e7543117b8d7a7d59d3daed5873c1ae46f34dcd1bb952dc6bdb60e52de4e64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101235760003560e01c806372333356116100a0578063a9059cbb11610064578063a9059cbb14610333578063bf474bed14610353578063c876d0b914610369578063c9567bf914610383578063dd62ed3e1461039857600080fd5b806372333356146102905780637d1db4a5146102b05780638da5cb5b146102c65780638f9a55c0146102ee57806395d89b411461030457600080fd5b8063313ce567116100e7578063313ce567146101fd57806351bc3c8514610219578063622565891461023057806370a0823114610245578063715018a61461027b57600080fd5b806306fdde031461012f578063095ea7b3146101745780630faee56f146101a457806318160ddd146101c857806323b872dd146101dd57600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b5060408051808201909152600a8152694f7264696e616c73466960b01b60208201525b60405161016b9190611626565b60405180910390f35b34801561018057600080fd5b5061019461018f366004611689565b6103de565b604051901515815260200161016b565b3480156101b057600080fd5b506101ba60135481565b60405190815260200161016b565b3480156101d457600080fd5b506101ba6103f5565b3480156101e957600080fd5b506101946101f83660046116b5565b610416565b34801561020957600080fd5b506040516009815260200161016b565b34801561022557600080fd5b5061022e61047f565b005b34801561023c57600080fd5b5061022e6104c6565b34801561025157600080fd5b506101ba6102603660046116f6565b6001600160a01b031660009081526001602052604090205490565b34801561028757600080fd5b5061022e61058b565b34801561029c57600080fd5b5061022e6102ab366004611713565b6105ff565b3480156102bc57600080fd5b506101ba60105481565b3480156102d257600080fd5b506000546040516001600160a01b03909116815260200161016b565b3480156102fa57600080fd5b506101ba60115481565b34801561031057600080fd5b506040805180820190915260068152654f726469466960d01b602082015261015e565b34801561033f57600080fd5b5061019461034e366004611689565b610667565b34801561035f57600080fd5b506101ba60125481565b34801561037557600080fd5b506005546101949060ff1681565b34801561038f57600080fd5b5061022e610674565b3480156103a457600080fd5b506101ba6103b3366004611735565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b60006103eb338484610a08565b5060015b92915050565b60006104036009600a611868565b610411906305f5e100611877565b905090565b6000610423848484610b2c565b610475843361047085604051806060016040528060288152602001611a54602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611108565b610a08565b5060019392505050565b60055461010090046001600160a01b0316336001600160a01b0316146104a457600080fd5b3060009081526001602052604090205480156104c3576104c381611142565b50565b6000546001600160a01b031633146104f95760405162461bcd60e51b81526004016104f09061188e565b60405180910390fd5b6105056009600a611868565b610513906305f5e100611877565b6010556105226009600a611868565b610530906305f5e100611877565b6011556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61056a6009600a611868565b610578906305f5e100611877565b60405190815260200160405180910390a1565b6000546001600160a01b031633146105b55760405162461bcd60e51b81526004016104f09061188e565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106295760405162461bcd60e51b81526004016104f09061188e565b600061063582846118c3565b9050600854811115801561064b57506009548111155b61065457600080fd5b600a92909255600b556008819055600955565b60006103eb338484610b2c565b6000546001600160a01b0316331461069e5760405162461bcd60e51b81526004016104f09061188e565b601554600160a01b900460ff16156106f85760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104f0565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107419030906107336009600a611868565b610470906305f5e100611877565b601460009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610794573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b891906118d6565b6001600160a01b031663c9c6539630601460009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561081a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083e91906118d6565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561088b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108af91906118d6565b601580546001600160a01b039283166001600160a01b03199091161790556014541663f305d71947306108f7816001600160a01b031660009081526001602052604090205490565b60008061090c6000546001600160a01b031690565b426040518863ffffffff1660e01b815260040161092e969594939291906118f3565b60606040518083038185885af115801561094c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610971919061192e565b505060155460145460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af11580156109ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ee919061195c565b506015805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610a6a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104f0565b6001600160a01b038216610acb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104f0565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b905760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104f0565b6001600160a01b038216610bf25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104f0565b60008111610c545760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104f0565b600080546001600160a01b03858116911614801590610c8157506000546001600160a01b03848116911614155b8015610c9657506001600160a01b0384163014155b15610fc55760055460ff1615610d80576014546001600160a01b03848116911614801590610cd257506015546001600160a01b03848116911614155b15610d8057326000908152600460205260409020544311610d6d5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a4016104f0565b3260009081526004602052604090204390555b6015546001600160a01b038581169116148015610dab57506014546001600160a01b03848116911614155b8015610dd057506001600160a01b03831660009081526003602052604090205460ff16155b15610ee657601054821115610e275760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104f0565b610e536064610e4d600c54600f5411610e4257600654610e46565b6008545b859061124c565b906112d5565b905060115482610e78856001600160a01b031660009081526001602052604090205490565b610e8291906118c3565b1115610ed05760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104f0565b600f8054906000610ee08361197e565b91905055505b6015546001600160a01b038481169116148015610f0c57506001600160a01b0384163014155b15610f3957610f366064610e4d600d54600f5411610f2c57600754610e46565b600954859061124c565b90505b30600090815260016020526040902054601554600160a81b900460ff16158015610f7057506015546001600160a01b038581169116145b8015610f855750601554600160b01b900460ff165b8015610f92575060125481115b8015610fa15750600e54600f54115b15610fc357610fc3610fbe84610fb984601354611317565b611317565b611142565b505b801561103f5730600090815260016020526040902054610fe5908261132c565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110369085815260200190565b60405180910390a35b6001600160a01b038416600090815260016020526040902054611062908361138b565b6001600160a01b0385166000908152600160205260409020556110a7611088838361138b565b6001600160a01b0385166000908152600160205260409020549061132c565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6110f1858561138b565b60405190815260200160405180910390a350505050565b6000818484111561112c5760405162461bcd60e51b81526004016104f09190611626565b5060006111398486611997565b95945050505050565b6015805460ff60a81b1916600160a81b179055600b546000906002906111689084611877565b61117291906119aa565b905060006111808284611997565b905061118b816113cd565b600b54600a5447916000916111a091906118c3565b600a546111ad9084611877565b6111b791906119aa565b905080156112385760055460405160009161010090046001600160a01b03169083908381818185875af1925050503d8060008114611211576040519150601f19603f3d011682016040523d82523d6000602084013e611216565b606091505b505090508080156112275750600085115b15611236576112368547611527565b505b50506015805460ff60a81b19169055505050565b60008260000361125e575060006103ef565b600061126a8385611877565b90508261127785836119aa565b146112ce5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104f0565b9392505050565b60006112ce83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115f8565b600081831161132657826112ce565b50919050565b60008061133983856118c3565b9050838110156112ce5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104f0565b60006112ce83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611108565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611402576114026119cc565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561145b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147f91906118d6565b81600181518110611492576114926119cc565b6001600160a01b0392831660209182029290920101526014546114b89130911684610a08565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906114f19085906000908690309042906004016119e2565b600060405180830381600087803b15801561150b57600080fd5b505af115801561151f573d6000803e3d6000fd5b505050505050565b6014543060009081526002602090815260408083206001600160a01b039094168352929052205482811015611570576014546115709030906001600160a01b0316600019610a08565b60145460055460405163f305d71960e01b81526001600160a01b039283169263f305d7199286926115b59230928a9260009283926101009004169042906004016118f3565b60606040518083038185885af11580156115d3573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061151f919061192e565b600081836116195760405162461bcd60e51b81526004016104f09190611626565b50600061113984866119aa565b600060208083528351808285015260005b8181101561165357858101830151858201604001528201611637565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146104c357600080fd5b6000806040838503121561169c57600080fd5b82356116a781611674565b946020939093013593505050565b6000806000606084860312156116ca57600080fd5b83356116d581611674565b925060208401356116e581611674565b929592945050506040919091013590565b60006020828403121561170857600080fd5b81356112ce81611674565b6000806040838503121561172657600080fd5b50508035926020909101359150565b6000806040838503121561174857600080fd5b823561175381611674565b9150602083013561176381611674565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156117bf5781600019048211156117a5576117a561176e565b808516156117b257918102915b93841c9390800290611789565b509250929050565b6000826117d6575060016103ef565b816117e3575060006103ef565b81600181146117f957600281146118035761181f565b60019150506103ef565b60ff8411156118145761181461176e565b50506001821b6103ef565b5060208310610133831016604e8410600b8410161715611842575081810a6103ef565b61184c8383611784565b80600019048211156118605761186061176e565b029392505050565b60006112ce60ff8416836117c7565b80820281158282048414176103ef576103ef61176e565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b808201808211156103ef576103ef61176e565b6000602082840312156118e857600080fd5b81516112ce81611674565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b60008060006060848603121561194357600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561196e57600080fd5b815180151581146112ce57600080fd5b6000600182016119905761199061176e565b5060010190565b818103818111156103ef576103ef61176e565b6000826119c757634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a325784516001600160a01b031683529383019391830191600101611a0d565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209be3e7543117b8d7a7d59d3daed5873c1ae46f34dcd1bb952dc6bdb60e52de4e64736f6c63430008130033

Deployed Bytecode Sourcemap

4256:9237:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6451:83;;;;;;;;;;-1:-1:-1;6521:5:0;;;;;;;;;;;;-1:-1:-1;;;6521:5:0;;;;6451:83;;;;;;;:::i;:::-;;;;;;;;7284:161;;;;;;;;;;-1:-1:-1;7284:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7284:161:0;1023:187:1;5727:51:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;5727:51:0;1215:177:1;6728:95:0;;;;;;;;;;;;;:::i;7453:313::-;;;;;;;;;;-1:-1:-1;7453:313:0;;;;;:::i;:::-;;:::i;6637:83::-;;;;;;;;;;-1:-1:-1;6637:83:0;;5285:1;2000:36:1;;1988:2;1973:18;6637:83:0;1858:184:1;13262:228:0;;;;;;;;;;;;;:::i;:::-;;11986:195;;;;;;;;;;;;;:::i;6831:119::-;;;;;;;;;;-1:-1:-1;6831:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6924:18:0;6897:7;6924:18;;;:9;:18;;;;;;;6831:119;3337:148;;;;;;;;;;;;;:::i;12876:341::-;;;;;;;;;;-1:-1:-1;12876:341:0;;;;;:::i;:::-;;:::i;5502:53::-;;;;;;;;;;;;;;;;3123:79;;;;;;;;;;-1:-1:-1;3161:7:0;3188:6;3123:79;;-1:-1:-1;;;;;3188:6:0;;;2698:51:1;;2686:2;2671:18;3123:79:0;2552:203:1;5582:55:0;;;;;;;;;;;;;;;;6542:87;;;;;;;;;;-1:-1:-1;6614:7:0;;;;;;;;;;;;-1:-1:-1;;;6614:7:0;;;;6542:87;;6958:167;;;;;;;;;;-1:-1:-1;6958:167:0;;;;;:::i;:::-;;:::i;5664:56::-;;;;;;;;;;;;;;;;4604:39;;;;;;;;;;-1:-1:-1;4604:39:0;;;;;;;;12191:671;;;;;;;;;;;;;:::i;7133:143::-;;;;;;;;;;-1:-1:-1;7133:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7241:18:0;;;7214:7;7241:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7133:143;7284:161;7359:4;7376:39;958:10;7399:7;7408:6;7376:8;:39::i;:::-;-1:-1:-1;7433:4:0;7284:161;;;;;:::o;6728:95::-;6781:7;5340:13;5285:1;5340:2;:13;:::i;:::-;5328:25;;:9;:25;:::i;:::-;6801:14;;6728:95;:::o;7453:313::-;7551:4;7568:36;7578:6;7586:9;7597:6;7568:9;:36::i;:::-;7615:121;7624:6;958:10;7646:89;7684:6;7646:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7646:19:0;;;;;;:11;:19;;;;;;;;958:10;7646:33;;;;;;;;;;:37;:89::i;:::-;7615:8;:121::i;:::-;-1:-1:-1;7754:4:0;7453:313;;;;;:::o;13262:228::-;13326:10;;;;;-1:-1:-1;;;;;13326:10:0;958;-1:-1:-1;;;;;13312:24:0;;13304:33;;;;;;13387:4;13348:20;6924:18;;;:9;:18;;;;;;13407:14;;13404:71;;13435:28;13450:12;13435:14;:28::i;:::-;13293:197;13262:228::o;11986:195::-;3250:6;;-1:-1:-1;;;;;3250:6:0;958:10;3250:22;3242:67;;;;-1:-1:-1;;;3242:67:0;;;;;;;:::i;:::-;;;;;;;;;5340:13:::1;5285:1;5340:2;:13;:::i;:::-;5328:25;::::0;:9:::1;:25;:::i;:::-;12038:12;:22:::0;5340:13:::1;5285:1;5340:2;:13;:::i;:::-;5328:25;::::0;:9:::1;:25;:::i;:::-;12071:14;:22:::0;12104:20:::1;:26:::0;;-1:-1:-1;;12104:26:0::1;::::0;;12146:27:::1;5340:13;5285:1;5340:2;:13;:::i;:::-;5328:25;::::0;:9:::1;:25;:::i;:::-;12146:27;::::0;1361:25:1;;;1349:2;1334:18;12146:27:0::1;;;;;;;11986:195::o:0;3337:148::-;3250:6;;-1:-1:-1;;;;;3250:6:0;958:10;3250:22;3242:67;;;;-1:-1:-1;;;3242:67:0;;;;;;;:::i;:::-;3444:1:::1;3428:6:::0;;3407:40:::1;::::0;-1:-1:-1;;;;;3428:6:0;;::::1;::::0;3407:40:::1;::::0;3444:1;;3407:40:::1;3475:1;3458:19:::0;;-1:-1:-1;;;;;;3458:19:0::1;::::0;;3337:148::o;12876:341::-;3250:6;;-1:-1:-1;;;;;3250:6:0;958:10;3250:22;3242:67;;;;-1:-1:-1;;;3242:67:0;;;;;;;:::i;:::-;12966:16:::1;12985:27;13000:12:::0;12985;:27:::1;:::i;:::-;12966:46;;13039:12;;13029:8;:22;;:49;;;;;13065:13;;13054:8;:24;;13029:49;13021:58;;;::::0;::::1;;13088:13;:28:::0;;;;13125:6:::1;:21:::0;13155:12:::1;:22:::0;;;13186:13:::1;:23:::0;12876:341::o;6958:167::-;7036:4;7053:42;958:10;7077:9;7088:6;7053:9;:42::i;12191:671::-;3250:6;;-1:-1:-1;;;;;3250:6:0;958:10;3250:22;3242:67;;;;-1:-1:-1;;;3242:67:0;;;;;;;:::i;:::-;12255:11:::1;::::0;-1:-1:-1;;;12255:11:0;::::1;;;12254:12;12246:47;;;::::0;-1:-1:-1;;;12246:47:0;;5534:2:1;12246:47:0::1;::::0;::::1;5516:21:1::0;5573:2;5553:18;;;5546:30;5612:25;5592:18;;;5585:53;5655:18;;12246:47:0::1;5332:347:1::0;12246:47:0::1;12304:15;:80:::0;;-1:-1:-1;;;;;;12304:80:0::1;12341:42;12304:80:::0;;::::1;::::0;;;12395:58:::1;::::0;12412:4:::1;::::0;5340:13:::1;5285:1;5340:2;:13;:::i;:::-;5328:25;::::0;:9:::1;:25;:::i;12395:58::-;12498:15;;;;;;;;;-1:-1:-1::0;;;;;12498:15:0::1;-1:-1:-1::0;;;;;12498:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12480:55:0::1;;12544:4;12551:15;;;;;;;;;-1:-1:-1::0;;;;;12551:15:0::1;-1:-1:-1::0;;;;;12551:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12480:94;::::0;-1:-1:-1;;;;;;12480:94:0::1;::::0;;;;;;-1:-1:-1;;;;;6170:15:1;;;12480:94:0::1;::::0;::::1;6152:34:1::0;6222:15;;6202:18;;;6195:43;6087:18;;12480:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12464:13;:110:::0;;-1:-1:-1;;;;;12464:110:0;;::::1;-1:-1:-1::0;;;;;;12464:110:0;;::::1;;::::0;;12585:15:::1;::::0;::::1;:31;12624:21;12655:4;12661:24;12655:4:::0;-1:-1:-1;;;;;6924:18:0;6897:7;6924:18;;;:9;:18;;;;;;;6831:119;12661:24:::1;12686:1;12688::::0;12690:7:::1;3161::::0;3188:6;-1:-1:-1;;;;;3188:6:0;;3123:79;12690:7:::1;12698:15;12585:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12732:13:0::1;::::0;12763:15:::1;::::0;12725:71:::1;::::0;-1:-1:-1;;;12725:71:0;;-1:-1:-1;;;;;12763:15:0;;::::1;12725:71;::::0;::::1;7346:51:1::0;-1:-1:-1;;7413:18:1;;;7406:34;12732:13:0;::::1;::::0;-1:-1:-1;12725:29:0::1;::::0;7319:18:1;;12725:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;12807:11:0::1;:18:::0;;-1:-1:-1;;;;12836:18:0;-1:-1:-1;;;12836:18:0;;;12191:671::o;7774:335::-;-1:-1:-1;;;;;7867:19:0;;7859:68;;;;-1:-1:-1;;;7859:68:0;;7935:2:1;7859:68:0;;;7917:21:1;7974:2;7954:18;;;7947:30;8013:34;7993:18;;;7986:62;-1:-1:-1;;;8064:18:1;;;8057:34;8108:19;;7859:68:0;7733:400:1;7859:68:0;-1:-1:-1;;;;;7946:21:0;;7938:68;;;;-1:-1:-1;;;7938:68:0;;8340:2:1;7938:68:0;;;8322:21:1;8379:2;8359:18;;;8352:30;8418:34;8398:18;;;8391:62;-1:-1:-1;;;8469:18:1;;;8462:32;8511:19;;7938:68:0;8138:398:1;7938:68:0;-1:-1:-1;;;;;8017:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8069:32;;1361:25:1;;;8069:32:0;;1334:18:1;8069:32:0;;;;;;;7774:335;;;:::o;8117:2241::-;-1:-1:-1;;;;;8205:18:0;;8197:68;;;;-1:-1:-1;;;8197:68:0;;8743:2:1;8197:68:0;;;8725:21:1;8782:2;8762:18;;;8755:30;8821:34;8801:18;;;8794:62;-1:-1:-1;;;8872:18:1;;;8865:35;8917:19;;8197:68:0;8541:401:1;8197:68:0;-1:-1:-1;;;;;8284:16:0;;8276:64;;;;-1:-1:-1;;;8276:64:0;;9149:2:1;8276:64:0;;;9131:21:1;9188:2;9168:18;;;9161:30;9227:34;9207:18;;;9200:62;-1:-1:-1;;;9278:18:1;;;9271:33;9321:19;;8276:64:0;8947:399:1;8276:64:0;8368:1;8359:6;:10;8351:64;;;;-1:-1:-1;;;8351:64:0;;9553:2:1;8351:64:0;;;9535:21:1;9592:2;9572:18;;;9565:30;9631:34;9611:18;;;9604:62;-1:-1:-1;;;9682:18:1;;;9675:39;9731:19;;8351:64:0;9351:405:1;8351:64:0;8426:17;3188:6;;-1:-1:-1;;;;;8460:15:0;;;3188:6;;8460:15;;;;:32;;-1:-1:-1;3161:7:0;3188:6;-1:-1:-1;;;;;8479:13:0;;;3188:6;;8479:13;;8460:32;:57;;;;-1:-1:-1;;;;;;8496:21:0;;8512:4;8496:21;;8460:57;8456:1546;;;8554:20;;;;8550:508;;;8615:15;;-1:-1:-1;;;;;8601:30:0;;;8615:15;;8601:30;;;;:62;;-1:-1:-1;8649:13:0;;-1:-1:-1;;;;;8635:28:0;;;8649:13;;8635:28;;8601:62;8597:444;;;8755:9;8726:39;;;;:28;:39;;;;;;8799:12;-1:-1:-1;8690:250:0;;;;-1:-1:-1;;;8690:250:0;;9963:2:1;8690:250:0;;;9945:21:1;10002:2;9982:18;;;9975:30;10041:34;10021:18;;;10014:62;10112:34;10092:18;;;10085:62;-1:-1:-1;;;10163:19:1;;;10156:40;10213:19;;8690:250:0;9761:477:1;8690:250:0;8994:9;8965:39;;;;:28;:39;;;;;9007:12;8965:54;;8597:444;9086:13;;-1:-1:-1;;;;;9078:21:0;;;9086:13;;9078:21;:55;;;;-1:-1:-1;9117:15:0;;-1:-1:-1;;;;;9103:30:0;;;9117:15;;9103:30;;9078:55;:83;;;;-1:-1:-1;;;;;;9139:22:0;;;;;;:18;:22;;;;;;;;9137:24;9078:83;9074:417;;;9201:12;;9191:6;:22;;9183:60;;;;-1:-1:-1;;;9183:60:0;;10445:2:1;9183:60:0;;;10427:21:1;10484:2;10464:18;;;10457:30;10523:27;10503:18;;;10496:55;10568:18;;9183:60:0;10243:349:1;9183:60:0;9274:73;9343:3;9274:64;9296:12;;9286:9;;:22;9285:52;;9323:14;;9285:52;;;9310:12;;9285:52;9274:6;;:10;:64::i;:::-;:68;;:73::i;:::-;9262:85;;9400:14;;9390:6;9374:13;9384:2;-1:-1:-1;;;;;6924:18:0;6897:7;6924:18;;;:9;:18;;;;;;;6831:119;9374:13;:22;;;;:::i;:::-;:40;;9366:79;;;;-1:-1:-1;;;9366:79:0;;10799:2:1;9366:79:0;;;10781:21:1;10838:2;10818:18;;;10811:30;10877:28;10857:18;;;10850:56;10923:18;;9366:79:0;10597:350:1;9366:79:0;9464:9;:11;;;:9;:11;;;:::i;:::-;;;;;;9074:417;9516:13;;-1:-1:-1;;;;;9510:19:0;;;9516:13;;9510:19;:43;;;;-1:-1:-1;;;;;;9533:20:0;;9548:4;9533:20;;9510:43;9507:171;;;9586:76;9658:3;9586:67;9608:13;;9598:9;;:23;9597:55;;9637:15;;9597:55;;;9623:13;;9586:6;;:10;:67::i;:76::-;9574:88;;9507:171;9743:4;9694:28;6924:18;;;:9;:18;;;;;;9769:6;;-1:-1:-1;;;9769:6:0;;;;9768:7;:32;;;;-1:-1:-1;9787:13:0;;-1:-1:-1;;;;;9779:21:0;;;9787:13;;9779:21;9768:32;:47;;;;-1:-1:-1;9804:11:0;;-1:-1:-1;;;9804:11:0;;;;9768:47;:89;;;;;9840:17;;9819:20;:38;9768:89;:121;;;;;9871:18;;9861:9;;:28;9768:121;9764:227;;;9910:65;9925:49;9929:6;9936:37;9940:20;9961:11;;9936:3;:37::i;:::-;9925:3;:49::i;:::-;9910:14;:65::i;:::-;8519:1483;8456:1546;10017:11;;10014:161;;10085:4;10067:24;;;;:9;:24;;;;;;:39;;10096:9;10067:28;:39::i;:::-;10060:4;10042:24;;;;:9;:24;;;;;;;:64;;;;10124:39;;-1:-1:-1;;;;;10124:39:0;;;;;;;10153:9;1361:25:1;;1349:2;1334:18;;1215:177;10124:39:0;;;;;;;;10014:161;-1:-1:-1;;;;;10201:15:0;;;;;;:9;:15;;;;;;:27;;10221:6;10201:19;:27::i;:::-;-1:-1:-1;;;;;10185:15:0;;;;;;:9;:15;;;;;:43;10253:40;10271:21;:6;10282:9;10271:10;:21::i;:::-;-1:-1:-1;;;;;10253:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;10239:13:0;;;;;;;:9;:13;;;;;:54;;;;10309:41;;;10328:21;:6;10339:9;10328:10;:21::i;:::-;10309:41;;1361:25:1;;;1349:2;1334:18;10309:41:0;;;;;;;8186:2172;8117:2241;;;:::o;2015:190::-;2101:7;2137:12;2129:6;;;;2121:29;;;;-1:-1:-1;;;2121:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2161:9:0;2173:5;2177:1;2173;:5;:::i;:::-;2161:17;2015:190;-1:-1:-1;;;;;2015:190:0:o;10474:550::-;6060:6;:13;;-1:-1:-1;;;;6060:13:0;-1:-1:-1;;;6060:13:0;;;10573:6:::1;::::0;6060:13;;10583:1:::1;::::0;10564:15:::1;::::0;:6;:15:::1;:::i;:::-;10563:21;;;;:::i;:::-;10544:40:::0;-1:-1:-1;10593:18:0::1;10614:17;10544:40:::0;10614:6;:17:::1;:::i;:::-;10593:38;;10640:29;10658:10;10640:16;:29::i;:::-;10801:6;::::0;10785:13:::1;::::0;10699:21:::1;::::0;10678:18:::1;::::0;10785:22:::1;::::0;10801:6;10785:22:::1;:::i;:::-;10767:13;::::0;10754:26:::1;::::0;:10;:26:::1;:::i;:::-;10753:55;;;;:::i;:::-;10729:79:::0;-1:-1:-1;10820:17:0;;10817:200:::1;;10865:10;::::0;:41:::1;::::0;10848:12:::1;::::0;10865:10:::1;::::0;::::1;-1:-1:-1::0;;;;;10865:10:0::1;::::0;10888:13;;10848:12;10865:41;10848:12;10865:41;10888:13;10865:10;:41:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10847:59;;;10919:7;:23;;;;;10941:1;10930:8;:12;10919:23;10915:93;;;10952:45;10965:8;10975:21;10952:12;:45::i;:::-;10838:179;10817:200;-1:-1:-1::0;;6096:6:0;:14;;-1:-1:-1;;;;6096:14:0;;;-1:-1:-1;;;10474:550:0:o;2213:246::-;2271:7;2295:1;2300;2295:6;2291:47;;-1:-1:-1;2325:1:0;2318:8;;2291:47;2348:9;2360:5;2364:1;2360;:5;:::i;:::-;2348:17;-1:-1:-1;2393:1:0;2384:5;2388:1;2348:17;2384:5;:::i;:::-;:10;2376:56;;;;-1:-1:-1;;;2376:56:0;;11859:2:1;2376:56:0;;;11841:21:1;11898:2;11878:18;;;11871:30;11937:34;11917:18;;;11910:62;-1:-1:-1;;;11988:18:1;;;11981:31;12029:19;;2376:56:0;11657:397:1;2376:56:0;2450:1;2213:246;-1:-1:-1;;;2213:246:0:o;2467:132::-;2525:7;2552:39;2556:1;2559;2552:39;;;;;;;;;;;;;;;;;:3;:39::i;10368:98::-;10425:7;10452:1;10450;:3;10449:9;;10457:1;10449:9;;;-1:-1:-1;10455:1:0;10368:98;-1:-1:-1;10368:98:0:o;1684:179::-;1742:7;;1774:5;1778:1;1774;:5;:::i;:::-;1762:17;;1803:1;1798;:6;;1790:46;;;;-1:-1:-1;;;1790:46:0;;12261:2:1;1790:46:0;;;12243:21:1;12300:2;12280:18;;;12273:30;12339:29;12319:18;;;12312:57;12386:18;;1790:46:0;12059:351:1;1871:136:0;1929:7;1956:43;1960:1;1963;1956:43;;;;;;;;;;;;;;;;;:3;:43::i;11032:472::-;11123:16;;;11137:1;11123:16;;;;;;;;11099:21;;11123:16;;;;;;;;;;-1:-1:-1;11123:16:0;11099:40;;11168:4;11150;11155:1;11150:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11150:23:0;;;:7;;;;;;;;;;:23;;;;11194:15;;:22;;;-1:-1:-1;;;11194:22:0;;;;:15;;;;;:20;;:22;;;;;11150:7;;11194:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11184:4;11189:1;11184:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11184:32:0;;;:7;;;;;;;;;:32;11259:15;;11227:62;;11244:4;;11259:15;11277:11;11227:8;:62::i;:::-;11300:15;;:196;;-1:-1:-1;;;11300:196:0;;-1:-1:-1;;;;;11300:15:0;;;;:66;;:196;;11381:11;;11300:15;;11423:4;;11450;;11470:15;;11300:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11088:416;11032:472;:::o;11512:466::-;11640:15;;11625:4;11583:21;7241:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;11640:15:0;;;7241:27;;;;;;;11671:22;;;11668:112;;;11738:15;;11706:62;;11723:4;;-1:-1:-1;;;;;11738:15:0;-1:-1:-1;;11706:8:0;:62::i;:::-;11790:15;;11929:10;;11790:180;;-1:-1:-1;;;11790:180:0;;-1:-1:-1;;;;;11790:15:0;;;;:31;;11829:3;;11790:180;;11856:4;;11876:6;;11790:15;;;;;11929:10;;;;11954:15;;11790:180;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2607:189::-;2693:7;2728:12;2721:5;2713:28;;;;-1:-1:-1;;;2713:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2752:9:0;2764:5;2768:1;2764;:5;:::i;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;2299:248::-;2367:6;2375;2428:2;2416:9;2407:7;2403:23;2399:32;2396:52;;;2444:1;2441;2434:12;2396:52;-1:-1:-1;;2467:23:1;;;2537:2;2522:18;;;2509:32;;-1:-1:-1;2299: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:422;3374:1;3417:5;3374:1;3431:270;3452:7;3442:8;3439:21;3431:270;;;3511:4;3507:1;3503:6;3499:17;3493:4;3490:27;3487:53;;;3520:18;;:::i;:::-;3570:7;3560:8;3556:22;3553:55;;;3590:16;;;;3553:55;3669:22;;;;3629:15;;;;3431:270;;;3435:3;3285:422;;;;;:::o;3712:806::-;3761:5;3791:8;3781:80;;-1:-1:-1;3832:1:1;3846:5;;3781:80;3880:4;3870:76;;-1:-1:-1;3917:1:1;3931:5;;3870:76;3962:4;3980:1;3975:59;;;;4048:1;4043:130;;;;3955:218;;3975:59;4005:1;3996:10;;4019:5;;;4043:130;4080:3;4070:8;4067:17;4064:43;;;4087:18;;:::i;:::-;-1:-1:-1;;4143:1:1;4129:16;;4158:5;;3955:218;;4257:2;4247:8;4244:16;4238:3;4232:4;4229:13;4225:36;4219:2;4209:8;4206:16;4201:2;4195:4;4192:12;4188:35;4185:77;4182:159;;;-1:-1:-1;4294:19:1;;;4326:5;;4182:159;4373:34;4398:8;4392:4;4373:34;:::i;:::-;4443:6;4439:1;4435:6;4431:19;4422:7;4419:32;4416:58;;;4454:18;;:::i;:::-;4492:20;;3712:806;-1:-1:-1;;;3712:806:1:o;4523:140::-;4581:5;4610:47;4651:4;4641:8;4637:19;4631:4;4610:47;:::i;4668:168::-;4741:9;;;4772;;4789:15;;;4783:22;;4769:37;4759:71;;4810:18;;:::i;4841:356::-;5043:2;5025:21;;;5062:18;;;5055:30;5121:34;5116:2;5101:18;;5094:62;5188:2;5173:18;;4841:356::o;5202:125::-;5267:9;;;5288:10;;;5285:36;;;5301:18;;:::i;5684:251::-;5754:6;5807:2;5795:9;5786:7;5782:23;5778:32;5775:52;;;5823:1;5820;5813:12;5775:52;5855:9;5849:16;5874:31;5899:5;5874:31;:::i;6249:607::-;-1:-1:-1;;;;;6608:15:1;;;6590:34;;6655:2;6640:18;;6633:34;;;;6698:2;6683:18;;6676:34;;;;6741:2;6726:18;;6719:34;;;;6790:15;;;6784:3;6769:19;;6762:44;6570:3;6822:19;;6815:35;;;;6539:3;6524:19;;6249:607::o;6861:306::-;6949:6;6957;6965;7018:2;7006:9;6997:7;6993:23;6989:32;6986:52;;;7034:1;7031;7024:12;6986:52;7063:9;7057:16;7047:26;;7113:2;7102:9;7098:18;7092:25;7082:35;;7157:2;7146:9;7142:18;7136:25;7126:35;;6861:306;;;;;:::o;7451:277::-;7518:6;7571:2;7559:9;7550:7;7546:23;7542:32;7539:52;;;7587:1;7584;7577:12;7539:52;7619:9;7613:16;7672:5;7665:13;7658:21;7651:5;7648:32;7638:60;;7694:1;7691;7684:12;10952:135;10991:3;11012:17;;;11009:43;;11032:18;;:::i;:::-;-1:-1:-1;11079:1:1;11068:13;;10952:135::o;11092:128::-;11159:9;;;11180:11;;;11177:37;;;11194:18;;:::i;11225:217::-;11265:1;11291;11281:132;;11335:10;11330:3;11326:20;11323:1;11316:31;11370:4;11367:1;11360:15;11398:4;11395:1;11388:15;11281:132;-1:-1:-1;11427:9:1;;11225:217::o;12547:127::-;12608:10;12603:3;12599:20;12596:1;12589:31;12639:4;12636:1;12629:15;12663:4;12660:1;12653:15;12679:980;12941:4;12989:3;12978:9;12974:19;13020:6;13009:9;13002:25;13046:2;13084:6;13079:2;13068:9;13064:18;13057:34;13127:3;13122:2;13111:9;13107:18;13100:31;13151:6;13186;13180:13;13217:6;13209;13202:22;13255:3;13244:9;13240:19;13233:26;;13294:2;13286:6;13282:15;13268:29;;13315:1;13325:195;13339:6;13336:1;13333:13;13325:195;;;13404:13;;-1:-1:-1;;;;;13400:39:1;13388:52;;13495:15;;;;13460:12;;;;13436:1;13354:9;13325:195;;;-1:-1:-1;;;;;;;13576:32:1;;;;13571:2;13556:18;;13549:60;-1:-1:-1;;;13640:3:1;13625:19;13618:35;13537:3;12679:980;-1:-1:-1;;;12679:980:1:o

Swarm Source

ipfs://9be3e7543117b8d7a7d59d3daed5873c1ae46f34dcd1bb952dc6bdb60e52de4e

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

OVERVIEW

Develop top-notch financial apps for Ethereum and Bitcoin Ordinals using OrdiFi. Immerse yourself in the core of decentralized innovation with OrdiFi, as we enhance the fundamentals of DeFi to provide a range of services that represent the cutting edge of decentralized financial technology.

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.