ETH Price: $2,428.59 (-1.90%)
 

Overview

ETH Balance

0.01 ETH

Eth Value

$24.29 (@ $2,428.59/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Coin In204923832024-08-09 16:57:4787 days ago1723222667IN
0x7909dFfB...8434FbcCf
0.00135552 ETH0.000192164.51976226
Token In202454282024-07-06 5:37:11122 days ago1720244231IN
0x7909dFfB...8434FbcCf
0 ETH0.000125451.56453333
Token In202454042024-07-06 5:32:23122 days ago1720243943IN
0x7909dFfB...8434FbcCf
0 ETH0.000129661.6404864
Coin In201295622024-06-20 1:07:35138 days ago1718845655IN
0x7909dFfB...8434FbcCf
0.0056 ETH0.000226655.33102414
Token In201294832024-06-20 0:51:47138 days ago1718844707IN
0x7909dFfB...8434FbcCf
0 ETH0.000425065.37789088
Token In201164542024-06-18 5:05:47140 days ago1718687147IN
0x7909dFfB...8434FbcCf
0 ETH0.000476065.936089
Token In201164272024-06-18 5:00:23140 days ago1718686823IN
0x7909dFfB...8434FbcCf
0 ETH0.000472535.97761556
Token In201163472024-06-18 4:44:23140 days ago1718685863IN
0x7909dFfB...8434FbcCf
0 ETH0.000429765.3587693
Token In199751892024-05-29 11:21:11159 days ago1716981671IN
0x7909dFfB...8434FbcCf
0 ETH0.000896329.33557105
Token In199751242024-05-29 11:08:11159 days ago1716980891IN
0x7909dFfB...8434FbcCf
0 ETH0.000870358.94628123
Accept Ownership199741722024-05-29 7:57:23159 days ago1716969443IN
0x7909dFfB...8434FbcCf
0 ETH0.000184267.87103956
Accept Ownership199741692024-05-29 7:56:47159 days ago1716969407IN
0x7909dFfB...8434FbcCf
0 ETH0.000223597.85926467
Transfer Ownersh...199737222024-05-29 6:26:47160 days ago1716964007IN
0x7909dFfB...8434FbcCf
0 ETH0.000234858.09763011
Coin In199737012024-05-29 6:22:35160 days ago1716963755IN
0x7909dFfB...8434FbcCf
0.01 ETH0.000303417.5823742
Token In199736932024-05-29 6:20:59160 days ago1716963659IN
0x7909dFfB...8434FbcCf
0 ETH0.000554337.63558935
Set Token Reserv...199736782024-05-29 6:17:59160 days ago1716963479IN
0x7909dFfB...8434FbcCf
0 ETH0.000247938.5005723
Set Token Reserv...199736772024-05-29 6:17:47160 days ago1716963467IN
0x7909dFfB...8434FbcCf
0 ETH0.000240658.25101821
Set Fund Thresho...199736732024-05-29 6:16:59160 days ago1716963419IN
0x7909dFfB...8434FbcCf
0 ETH0.000226877.89289458
Rescue Native199691952024-05-28 15:15:11160 days ago1716909311IN
0x7909dFfB...8434FbcCf
0 ETH0.0007145923.21625807
Coin In199685902024-05-28 13:13:35160 days ago1716902015IN
0x7909dFfB...8434FbcCf
0.037 ETH0.0003703711.94767571
Transfer Ownersh...199683062024-05-28 12:16:11160 days ago1716898571IN
0x7909dFfB...8434FbcCf
0 ETH0.0007739816.78826848
Set Reserve Wall...199680602024-05-28 11:26:47160 days ago1716895607IN
0x7909dFfB...8434FbcCf
0 ETH0.0004881118.55111133
Change Signer199680092024-05-28 11:16:35160 days ago1716894995IN
0x7909dFfB...8434FbcCf
0 ETH0.0010977842.10437853
Set Reserve Wall...199667062024-05-28 6:54:35161 days ago1716879275IN
0x7909dFfB...8434FbcCf
0 ETH0.0005459318.75294075
Set Token Reserv...199663432024-05-28 5:41:35161 days ago1716874895IN
0x7909dFfB...8434FbcCf
0 ETH0.0005708512.33197347
View all transactions

Latest 4 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
204923832024-08-09 16:57:4787 days ago1723222667
0x7909dFfB...8434FbcCf
0.00135552 ETH
201295622024-06-20 1:07:35138 days ago1718845655
0x7909dFfB...8434FbcCf
0.0056 ETH
199737012024-05-29 6:22:35160 days ago1716963755
0x7909dFfB...8434FbcCf
0.01 ETH
199691952024-05-28 15:15:11160 days ago1716909311
0x7909dFfB...8434FbcCf
0.037 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Bridge

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-05-10
*/

//SPDX-License-Identifier: MIT
pragma solidity 0.8 .17;

interface ERC20Essential {

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

    function transfer(address _to, uint256 _amount) external returns(bool);

    function transferFrom(address _from, address _to, uint256 _amount) external returns(bool);

    function mint(address account, uint256 value) external;

    function burn(address account, uint256 value) external;

    function transferOwnership(address newOwner) external;

    function owner() external returns(address);

}


//USDT contract in Ethereum does not follow ERC20 standard so it needs different interface
interface usdtContract {
    function transferFrom(address _from, address _to, uint256 _amount) external;

    function transfer(address _to, uint256 _amount) external;

    function mint(address account, uint256 value) external;

    function burn(address account, uint256 value) external;

    function balanceOf(address user) external view returns(uint256);
}




//*******************************************************************//
//------------------ Contract to Manage Ownership -------------------//
//*******************************************************************//
contract owned {
    address public owner;
    address internal newOwner;
    mapping(address => bool) public signer;

    event OwnershipTransferred(address indexed _from, address indexed _to);
    event SignerUpdated(address indexed signer, bool indexed status);

    constructor() {
        owner = msg.sender;
        //owner does not become signer automatically.
    }

    modifier onlyOwner {
        require(msg.sender == owner);
        _;
    }


    modifier onlySigner {
        require(signer[msg.sender], 'caller must be signer');
        _;
    }


    function changeSigner(address _signer, bool _status) public onlyOwner {
        signer[_signer] = _status;
        emit SignerUpdated(_signer, _status);
    }

    function transferOwnership(address _newOwner) public onlyOwner {
        newOwner = _newOwner;
    }

    //the reason for this flow is to protect owners from sending ownership to unintended address due to human error
    function acceptOwnership() public {
        require(msg.sender == newOwner);
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
        newOwner = address(0);
    }
}




//****************************************************************************//
//---------------------        MAIN CODE STARTS HERE     ---------------------//
//****************************************************************************//

contract Bridge is owned {

    uint256 public orderID;
    uint256 public exraCoinRewards; // if we give users extra coins to cover gas cost of some initial transactions.

    address public feeWallet;
    address public reserveWallet;
    address public usdtAddress = 0xdAC17F958D2ee523a2206206994597C13D831ec7;
    uint256 public reserveFundThreshold = 10e18;
    uint256 public txFee;

    // /* This mapping contains the status of tokenAddresses who are not under our control like those which we cannot burn or mint*/
    // mapping(address=>bool) public noControl;
    mapping(address => uint256) public tokenFundThreshold;


    // This generates a public event of coin received by contract
    event CoinIn(uint256 indexed orderID, address indexed user, uint256 value, address outputCurrency);
    event CoinOut(uint256 indexed orderID, address indexed user, uint256 value);
    event CoinOutFailed(uint256 indexed orderID, address indexed user, uint256 value);
    event TokenIn(uint256 indexed orderID, address indexed tokenAddress, address indexed user, uint256 value, uint256 chainID, address outputCurrency);
    event TokenOut(uint256 indexed orderID, address indexed tokenAddress, address indexed user, uint256 value, uint256 chainID);
    event TokenOutFailed(uint256 indexed orderID, address indexed tokenAddress, address indexed user, uint256 value, uint256 chainID);




    receive() external payable {
        //nothing happens for incoming fund
    }

    constructor() {

        tokenFundThreshold[0xdAC17F958D2ee523a2206206994597C13D831ec7] = 100e6; /*USDT Ethereum*/
        tokenFundThreshold[0x55d398326f99059fF775485246999027B3197955] = 100e18; /*USDT Binance*/
        tokenFundThreshold[0xc2132D05D31c914a87C6611C10748AEb04B58e8F] = 100e6; /*USDT Matic*/
    }

    function coinIn(address outputCurrency) external payable returns(bool) {
        orderID++;
        uint256 amount = msg.value;


        if (address(this).balance >= reserveFundThreshold) {
            payable(owner).transfer(amount);
        }

        emit CoinIn(orderID, msg.sender, amount, outputCurrency);
        return true;
    }

    function coinOut(address user, uint256 amount, uint256 _orderID) external onlySigner returns(bool) {
        uint256 afterTax;
        uint256 tax;

        if (txFee != 0) {
            (afterTax, tax) = processTax(amount);
            if (feeWallet != address(0)) {
                payable(feeWallet).transfer(tax);
            }
            payable(user).transfer(afterTax);
        } else {
            payable(user).transfer(amount);
            afterTax = amount;
        }

        emit CoinOut(_orderID, user, afterTax);
        return true;
    }


    function tokenIn(address tokenAddress, uint256 tokenAmount, uint256 chainID, address outputCurrency) external returns(bool) {
        orderID++;

        if (tokenAddress == usdtAddress) {
            usdtContract(tokenAddress).transferFrom(msg.sender, address(this), tokenAmount);
            if (usdtContract(tokenAddress).balanceOf(address(this)) >= tokenFundThreshold[tokenAddress]) {
                usdtContract(tokenAddress).transfer(owner, tokenAmount);
            }

        } else {
            ERC20Essential(tokenAddress).transferFrom(msg.sender, address(this), tokenAmount);
            if (usdtContract(tokenAddress).balanceOf(address(this)) >= tokenFundThreshold[tokenAddress]) {
                ERC20Essential(tokenAddress).transfer(owner, tokenAmount);
            }
        }

        emit TokenIn(orderID, tokenAddress, msg.sender, tokenAmount, chainID, outputCurrency);
        return true;
    }


    function tokenOut(address tokenAddress, address user, uint256 tokenAmount, uint256 _orderID, uint256 chainID) external onlySigner returns(bool) {
        uint256 minted = tokenAmount;
        uint256 tax;
        uint256 afterTax;


        if (tokenAddress == usdtAddress) {
            if (txFee != 0) {
                (afterTax, tax) = processTax(tokenAmount);
                usdtContract(tokenAddress).transfer(user, afterTax);
                if (feeWallet != address(0)) {
                    usdtContract(tokenAddress).transfer(feeWallet, tax);
                }
                minted = afterTax;
            } else {
                usdtContract(tokenAddress).transfer(user, tokenAmount);
                minted = tokenAmount;
            }

        } else {
            if (txFee != 0) {
                (afterTax, tax) = processTax(tokenAmount);
                ERC20Essential(tokenAddress).transfer(user, afterTax);
                if (feeWallet != address(0)) {
                    ERC20Essential(tokenAddress).transfer(feeWallet, tax);
                }
                minted = afterTax;
            } else {
                ERC20Essential(tokenAddress).transfer(user, tokenAmount);
                minted = tokenAmount;
            }

        }


        emit TokenOut(_orderID, tokenAddress, user, minted, chainID);

        return true;
    }

    /* Process Tax*/
    function processTax(uint256 amount) internal view returns(uint256 afterTax, uint256 deductedTax) {
        require(amount>txFee, "Fee greater than amount");
        deductedTax = txFee;
        afterTax = amount - deductedTax;
    }


    /*Change feeWallet*/
    function setFeeWallet(address _feeWallet) external onlyOwner returns(address oldWallet, address newWallet) {
        oldWallet = feeWallet;
        feeWallet = _feeWallet;
        newWallet = feeWallet;
    }

    /*Change reserveWallet*/
    function setReserveWallet(address _reserveWallet) external onlyOwner returns(address oldWallet, address newWallet) {
        oldWallet = reserveWallet;
        reserveWallet = _reserveWallet;
        newWallet = reserveWallet;
    }

    /* set usdt token address*/
    function setUSDTAddress(address _tokenAddress) external onlyOwner returns(address newAddress) {
        require(_tokenAddress != address(0), "zero address not allowed");
        require(_tokenAddress != usdtAddress, "same as old address");
        usdtAddress = _tokenAddress;
        newAddress = usdtAddress;
    }

    /* set Threshold*/
    function setFundThreshold(uint256 _amount) external onlyOwner returns(uint256 oldAmount, uint256 newAmount) {
        oldAmount = reserveFundThreshold;
        reserveFundThreshold = _amount;
        newAmount = _amount;
    }

    /* Change owner of the given token contract*/
    function transferTokenOwnership(address ofTokenAddress, address toAddress) external onlyOwner returns(address oldOwner, address newOwner) {
        require(ofTokenAddress != address(0) && toAddress != address(0), "zero address not allowed");
        oldOwner = ERC20Essential(ofTokenAddress).owner();
        ERC20Essential(ofTokenAddress).transferOwnership(toAddress);
        newOwner = ERC20Essential(ofTokenAddress).owner();
    }

    /* Modify the token reserve threshold values
     */
    function setTokenReserveThreshold(address forToken, uint256 threshold) external onlyOwner {
        tokenFundThreshold[forToken] = threshold;
    }

    function rescueNative(uint256 rescueAmount) external onlyOwner {
        if (address(this).balance <= rescueAmount) {
            rescueAmount = address(this).balance;
        }
        payable(owner).transfer(rescueAmount);
    }
    function setTxFee(uint256 amount) external onlyOwner {
        txFee = amount;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"orderID","type":"uint256"},{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"address","name":"outputCurrency","type":"address"}],"name":"CoinIn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"orderID","type":"uint256"},{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"CoinOut","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"orderID","type":"uint256"},{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"CoinOutFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"signer","type":"address"},{"indexed":true,"internalType":"bool","name":"status","type":"bool"}],"name":"SignerUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"orderID","type":"uint256"},{"indexed":true,"internalType":"address","name":"tokenAddress","type":"address"},{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"chainID","type":"uint256"},{"indexed":false,"internalType":"address","name":"outputCurrency","type":"address"}],"name":"TokenIn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"orderID","type":"uint256"},{"indexed":true,"internalType":"address","name":"tokenAddress","type":"address"},{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"chainID","type":"uint256"}],"name":"TokenOut","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"orderID","type":"uint256"},{"indexed":true,"internalType":"address","name":"tokenAddress","type":"address"},{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"chainID","type":"uint256"}],"name":"TokenOutFailed","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_signer","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"changeSigner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"outputCurrency","type":"address"}],"name":"coinIn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"_orderID","type":"uint256"}],"name":"coinOut","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"exraCoinRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"orderID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rescueAmount","type":"uint256"}],"name":"rescueNative","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"reserveFundThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reserveWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_feeWallet","type":"address"}],"name":"setFeeWallet","outputs":[{"internalType":"address","name":"oldWallet","type":"address"},{"internalType":"address","name":"newWallet","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setFundThreshold","outputs":[{"internalType":"uint256","name":"oldAmount","type":"uint256"},{"internalType":"uint256","name":"newAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_reserveWallet","type":"address"}],"name":"setReserveWallet","outputs":[{"internalType":"address","name":"oldWallet","type":"address"},{"internalType":"address","name":"newWallet","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"forToken","type":"address"},{"internalType":"uint256","name":"threshold","type":"uint256"}],"name":"setTokenReserveThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"}],"name":"setUSDTAddress","outputs":[{"internalType":"address","name":"newAddress","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"signer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tokenFundThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"internalType":"uint256","name":"chainID","type":"uint256"},{"internalType":"address","name":"outputCurrency","type":"address"}],"name":"tokenIn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"internalType":"uint256","name":"_orderID","type":"uint256"},{"internalType":"uint256","name":"chainID","type":"uint256"}],"name":"tokenOut","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"ofTokenAddress","type":"address"},{"internalType":"address","name":"toAddress","type":"address"}],"name":"transferTokenOwnership","outputs":[{"internalType":"address","name":"oldOwner","type":"address"},{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"txFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"usdtAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600780546001600160a01b03191673dac17f958d2ee523a2206206994597c13d831ec7179055678ac7230489e8000060085534801561004257600080fd5b50600080546001600160a01b03191633178155600a6020526305f5e1007fb7e2958a2abfb668f1e99d86008b48267975d726df44a62b9676fda384beb19581905568056bc75e2d631000007fb0775d57c3eeb070f58d410e36e9ff396813a5d76997d9a91bdf10f0798296f05573c2132d05d31c914a87c6611c10748aeb04b58e8f9091527f8a10ac49449cc42ad5f1435ba0e39c8ff12ee5867371ae9a8b5024fb3f73cf0055611643806100f86000396000f3fe60806040526004361061016a5760003560e01c80639ab4a445116100d1578063dda4fa8f1161008a578063f25f4b5611610064578063f25f4b5614610465578063f2fde38b14610485578063f3a7cb61146104a5578063fea54d06146104c557600080fd5b8063dda4fa8f1461040f578063f05d16f71461042f578063f1c069061461044f57600080fd5b80639ab4a4451461034e578063b8fb28161461036e578063c7e0af6a1461038e578063cd23e147146103c3578063cf820461146103d9578063d72b11bd146103ef57600080fd5b806355eba8681161012357806355eba868146102705780636fba2983146102a857806379ba5097146102e357806381203d03146102f85780638da5cb5b1461030e57806390d49b9d1461032e57600080fd5b80630536b7231461017657806315a01045146101bb578063256c1ea3146101ce578063383fe467146101ee578063454aa6691461022e57806351295f011461025057600080fd5b3661017157005b600080fd5b34801561018257600080fd5b506101a66101913660046113c4565b60026020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6101a66101c93660046113c4565b6104e5565b3480156101da57600080fd5b506101a66101e93660046113e8565b610591565b3480156101fa57600080fd5b5061020e610209366004611439565b610969565b604080516001600160a01b039384168152929091166020830152016101b2565b34801561023a57600080fd5b5061024e610249366004611472565b610b1a565b005b34801561025c57600080fd5b5061024e61026b366004611499565b610b78565b34801561027c57600080fd5b5061029061028b3660046113c4565b610be3565b6040516001600160a01b0390911681526020016101b2565b3480156102b457600080fd5b506102d56102c33660046113c4565b600a6020526000908152604090205481565b6040519081526020016101b2565b3480156102ef57600080fd5b5061024e610cc3565b34801561030457600080fd5b506102d560035481565b34801561031a57600080fd5b50600054610290906001600160a01b031681565b34801561033a57600080fd5b5061020e6103493660046113c4565b610d3e565b34801561035a57600080fd5b50600754610290906001600160a01b031681565b34801561037a57600080fd5b5061024e6103893660046114c7565b610d80565b34801561039a57600080fd5b506103ae6103a9366004611472565b610db3565b604080519283526020830191909152016101b2565b3480156103cf57600080fd5b506102d560085481565b3480156103e557600080fd5b506102d560095481565b3480156103fb57600080fd5b50600654610290906001600160a01b031681565b34801561041b57600080fd5b5061020e61042a3660046113c4565b610dda565b34801561043b57600080fd5b5061024e61044a366004611472565b610e1c565b34801561045b57600080fd5b506102d560045481565b34801561047157600080fd5b50600554610290906001600160a01b031681565b34801561049157600080fd5b5061024e6104a03660046113c4565b610e38565b3480156104b157600080fd5b506101a66104c03660046114f3565b610e71565b3480156104d157600080fd5b506101a66104e036600461153d565b6111bd565b60038054600091826104f683611588565b90915550506008543490471061054157600080546040516001600160a01b039091169183156108fc02918491818181858888f1935050505015801561053f573d6000803e3d6000fd5b505b600354604080518381526001600160a01b03861660208201523392917f50ed54fdff2e8028310feac14aa2e8343c5eb6ab4fb192510bd3358cbe18fb1d910160405180910390a350600192915050565b3360009081526002602052604081205460ff166105ed5760405162461bcd60e51b815260206004820152601560248201527431b0b63632b91036bab9ba1031329039b4b3b732b960591b60448201526064015b60405180910390fd5b600754849060009081906001600160a01b03908116908a160361076f57600954156107055761061b87611343565b60405163a9059cbb60e01b81526001600160a01b038b81166004830152602482018490529194509192508a169063a9059cbb90604401600060405180830381600087803b15801561066b57600080fd5b505af115801561067f573d6000803e3d6000fd5b50506005546001600160a01b03161591506106fd90505760055460405163a9059cbb60e01b81526001600160a01b03918216600482015260248101849052908a169063a9059cbb90604401600060405180830381600087803b1580156106e457600080fd5b505af11580156106f8573d6000803e3d6000fd5b505050505b809250610903565b60405163a9059cbb60e01b81526001600160a01b038981166004830152602482018990528a169063a9059cbb90604401600060405180830381600087803b15801561074f57600080fd5b505af1158015610763573d6000803e3d6000fd5b50505050869250610903565b6009541561088b5761078087611343565b60405163a9059cbb60e01b81526001600160a01b038b81166004830152602482018490529194509192508a169063a9059cbb906044016020604051808303816000875af11580156107d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f991906115a1565b506005546001600160a01b0316156106fd5760055460405163a9059cbb60e01b81526001600160a01b03918216600482015260248101849052908a169063a9059cbb906044016020604051808303816000875af115801561085e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088291906115a1565b50809250610903565b60405163a9059cbb60e01b81526001600160a01b038981166004830152602482018990528a169063a9059cbb906044016020604051808303816000875af11580156108da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fe91906115a1565b508692505b876001600160a01b0316896001600160a01b0316877f227f62390ff31ea224acc601adb99ca571aafaeef45b6528a1f75af3fdee81b08689604051610952929190918252602082015260400190565b60405180910390a450600198975050505050505050565b6000805481906001600160a01b0316331461098357600080fd5b6001600160a01b038416158015906109a357506001600160a01b03831615155b6109ea5760405162461bcd60e51b81526020600482015260186024820152771e995c9bc81859191c995cdcc81b9bdd08185b1b1bddd95960421b60448201526064016105e4565b836001600160a01b0316638da5cb5b6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610a2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4e91906115be565b60405163f2fde38b60e01b81526001600160a01b0385811660048301529193509085169063f2fde38b90602401600060405180830381600087803b158015610a9557600080fd5b505af1158015610aa9573d6000803e3d6000fd5b50505050836001600160a01b0316638da5cb5b6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610aed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b1191906115be565b90509250929050565b6000546001600160a01b03163314610b3157600080fd5b804711610b3b5750475b600080546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015610b74573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610b8f57600080fd5b6001600160a01b038216600081815260026020526040808220805460ff191685151590811790915590519092917ffcaa24b1276bfa7dbf77797c0a984b9df924acbeaabd48cd2f1b0eca379b78fa91a35050565b600080546001600160a01b03163314610bfb57600080fd5b6001600160a01b038216610c4c5760405162461bcd60e51b81526020600482015260186024820152771e995c9bc81859191c995cdcc81b9bdd08185b1b1bddd95960421b60448201526064016105e4565b6007546001600160a01b0390811690831603610ca05760405162461bcd60e51b815260206004820152601360248201527273616d65206173206f6c64206164647265737360681b60448201526064016105e4565b50600780546001600160a01b039092166001600160a01b03199092168217905590565b6001546001600160a01b03163314610cda57600080fd5b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000805481906001600160a01b03163314610d5857600080fd5b5050600580546001600160a01b039283166001600160a01b0319821681179092559190911691565b6000546001600160a01b03163314610d9757600080fd5b6001600160a01b039091166000908152600a6020526040902055565b6000805481906001600160a01b03163314610dcd57600080fd5b5050600880549082905591565b6000805481906001600160a01b03163314610df457600080fd5b5050600680546001600160a01b039283166001600160a01b0319821681179092559190911691565b6000546001600160a01b03163314610e3357600080fd5b600955565b6000546001600160a01b03163314610e4f57600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6003805460009182610e8283611588565b90915550506007546001600160a01b0390811690861603610fee576040516323b872dd60e01b8152336004820152306024820152604481018590526001600160a01b038616906323b872dd90606401600060405180830381600087803b158015610eeb57600080fd5b505af1158015610eff573d6000803e3d6000fd5b505050506001600160a01b0385166000818152600a6020526040908190205490516370a0823160e01b81523060048201529091906370a0823190602401602060405180830381865afa158015610f59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7d91906115db565b10610fe95760005460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018690529086169063a9059cbb90604401600060405180830381600087803b158015610fd057600080fd5b505af1158015610fe4573d6000803e3d6000fd5b505050505b61115e565b6040516323b872dd60e01b8152336004820152306024820152604481018590526001600160a01b038616906323b872dd906064016020604051808303816000875af1158015611041573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106591906115a1565b506001600160a01b0385166000818152600a6020526040908190205490516370a0823160e01b81523060048201529091906370a0823190602401602060405180830381865afa1580156110bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e091906115db565b1061115e5760005460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018690529086169063a9059cbb906044016020604051808303816000875af1158015611138573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115c91906115a1565b505b60035460408051868152602081018690526001600160a01b03858116828401529151339392891692917f8a9f5b93a9427ed2074a269336914d74d6b34dfe5679f30c5cf172f5842aa795919081900360600190a4506001949350505050565b3360009081526002602052604081205460ff166112145760405162461bcd60e51b815260206004820152601560248201527431b0b63632b91036bab9ba1031329039b4b3b732b960591b60448201526064016105e4565b6000806009546000146112b85761122a85611343565b60055491935091506001600160a01b03161561127c576005546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561127a573d6000803e3d6000fd5b505b6040516001600160a01b0387169083156108fc029084906000818181858888f193505050501580156112b2573d6000803e3d6000fd5b506112f3565b6040516001600160a01b0387169086156108fc029087906000818181858888f193505050501580156112ee573d6000803e3d6000fd5b508491505b856001600160a01b0316847f9651479651fe91907cee7de24a0e47091421878d660c93c6fe0d04c7b7b2404b8460405161132f91815260200190565b60405180910390a350600195945050505050565b60008060095483116113975760405162461bcd60e51b815260206004820152601760248201527f4665652067726561746572207468616e20616d6f756e7400000000000000000060448201526064016105e4565b506009546113a581846115f4565b9150915091565b6001600160a01b03811681146113c157600080fd5b50565b6000602082840312156113d657600080fd5b81356113e1816113ac565b9392505050565b600080600080600060a0868803121561140057600080fd5b853561140b816113ac565b9450602086013561141b816113ac565b94979496505050506040830135926060810135926080909101359150565b6000806040838503121561144c57600080fd5b8235611457816113ac565b91506020830135611467816113ac565b809150509250929050565b60006020828403121561148457600080fd5b5035919050565b80151581146113c157600080fd5b600080604083850312156114ac57600080fd5b82356114b7816113ac565b915060208301356114678161148b565b600080604083850312156114da57600080fd5b82356114e5816113ac565b946020939093013593505050565b6000806000806080858703121561150957600080fd5b8435611514816113ac565b935060208501359250604085013591506060850135611532816113ac565b939692955090935050565b60008060006060848603121561155257600080fd5b833561155d816113ac565b95602085013595506040909401359392505050565b634e487b7160e01b600052601160045260246000fd5b60006001820161159a5761159a611572565b5060010190565b6000602082840312156115b357600080fd5b81516113e18161148b565b6000602082840312156115d057600080fd5b81516113e1816113ac565b6000602082840312156115ed57600080fd5b5051919050565b8181038181111561160757611607611572565b9291505056fea2646970667358221220a58dacd49772a9d775b9105635d01acd4d7356379c4a31cbda6c16f982044a6b64736f6c63430008110033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c80639ab4a445116100d1578063dda4fa8f1161008a578063f25f4b5611610064578063f25f4b5614610465578063f2fde38b14610485578063f3a7cb61146104a5578063fea54d06146104c557600080fd5b8063dda4fa8f1461040f578063f05d16f71461042f578063f1c069061461044f57600080fd5b80639ab4a4451461034e578063b8fb28161461036e578063c7e0af6a1461038e578063cd23e147146103c3578063cf820461146103d9578063d72b11bd146103ef57600080fd5b806355eba8681161012357806355eba868146102705780636fba2983146102a857806379ba5097146102e357806381203d03146102f85780638da5cb5b1461030e57806390d49b9d1461032e57600080fd5b80630536b7231461017657806315a01045146101bb578063256c1ea3146101ce578063383fe467146101ee578063454aa6691461022e57806351295f011461025057600080fd5b3661017157005b600080fd5b34801561018257600080fd5b506101a66101913660046113c4565b60026020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6101a66101c93660046113c4565b6104e5565b3480156101da57600080fd5b506101a66101e93660046113e8565b610591565b3480156101fa57600080fd5b5061020e610209366004611439565b610969565b604080516001600160a01b039384168152929091166020830152016101b2565b34801561023a57600080fd5b5061024e610249366004611472565b610b1a565b005b34801561025c57600080fd5b5061024e61026b366004611499565b610b78565b34801561027c57600080fd5b5061029061028b3660046113c4565b610be3565b6040516001600160a01b0390911681526020016101b2565b3480156102b457600080fd5b506102d56102c33660046113c4565b600a6020526000908152604090205481565b6040519081526020016101b2565b3480156102ef57600080fd5b5061024e610cc3565b34801561030457600080fd5b506102d560035481565b34801561031a57600080fd5b50600054610290906001600160a01b031681565b34801561033a57600080fd5b5061020e6103493660046113c4565b610d3e565b34801561035a57600080fd5b50600754610290906001600160a01b031681565b34801561037a57600080fd5b5061024e6103893660046114c7565b610d80565b34801561039a57600080fd5b506103ae6103a9366004611472565b610db3565b604080519283526020830191909152016101b2565b3480156103cf57600080fd5b506102d560085481565b3480156103e557600080fd5b506102d560095481565b3480156103fb57600080fd5b50600654610290906001600160a01b031681565b34801561041b57600080fd5b5061020e61042a3660046113c4565b610dda565b34801561043b57600080fd5b5061024e61044a366004611472565b610e1c565b34801561045b57600080fd5b506102d560045481565b34801561047157600080fd5b50600554610290906001600160a01b031681565b34801561049157600080fd5b5061024e6104a03660046113c4565b610e38565b3480156104b157600080fd5b506101a66104c03660046114f3565b610e71565b3480156104d157600080fd5b506101a66104e036600461153d565b6111bd565b60038054600091826104f683611588565b90915550506008543490471061054157600080546040516001600160a01b039091169183156108fc02918491818181858888f1935050505015801561053f573d6000803e3d6000fd5b505b600354604080518381526001600160a01b03861660208201523392917f50ed54fdff2e8028310feac14aa2e8343c5eb6ab4fb192510bd3358cbe18fb1d910160405180910390a350600192915050565b3360009081526002602052604081205460ff166105ed5760405162461bcd60e51b815260206004820152601560248201527431b0b63632b91036bab9ba1031329039b4b3b732b960591b60448201526064015b60405180910390fd5b600754849060009081906001600160a01b03908116908a160361076f57600954156107055761061b87611343565b60405163a9059cbb60e01b81526001600160a01b038b81166004830152602482018490529194509192508a169063a9059cbb90604401600060405180830381600087803b15801561066b57600080fd5b505af115801561067f573d6000803e3d6000fd5b50506005546001600160a01b03161591506106fd90505760055460405163a9059cbb60e01b81526001600160a01b03918216600482015260248101849052908a169063a9059cbb90604401600060405180830381600087803b1580156106e457600080fd5b505af11580156106f8573d6000803e3d6000fd5b505050505b809250610903565b60405163a9059cbb60e01b81526001600160a01b038981166004830152602482018990528a169063a9059cbb90604401600060405180830381600087803b15801561074f57600080fd5b505af1158015610763573d6000803e3d6000fd5b50505050869250610903565b6009541561088b5761078087611343565b60405163a9059cbb60e01b81526001600160a01b038b81166004830152602482018490529194509192508a169063a9059cbb906044016020604051808303816000875af11580156107d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f991906115a1565b506005546001600160a01b0316156106fd5760055460405163a9059cbb60e01b81526001600160a01b03918216600482015260248101849052908a169063a9059cbb906044016020604051808303816000875af115801561085e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088291906115a1565b50809250610903565b60405163a9059cbb60e01b81526001600160a01b038981166004830152602482018990528a169063a9059cbb906044016020604051808303816000875af11580156108da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fe91906115a1565b508692505b876001600160a01b0316896001600160a01b0316877f227f62390ff31ea224acc601adb99ca571aafaeef45b6528a1f75af3fdee81b08689604051610952929190918252602082015260400190565b60405180910390a450600198975050505050505050565b6000805481906001600160a01b0316331461098357600080fd5b6001600160a01b038416158015906109a357506001600160a01b03831615155b6109ea5760405162461bcd60e51b81526020600482015260186024820152771e995c9bc81859191c995cdcc81b9bdd08185b1b1bddd95960421b60448201526064016105e4565b836001600160a01b0316638da5cb5b6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610a2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4e91906115be565b60405163f2fde38b60e01b81526001600160a01b0385811660048301529193509085169063f2fde38b90602401600060405180830381600087803b158015610a9557600080fd5b505af1158015610aa9573d6000803e3d6000fd5b50505050836001600160a01b0316638da5cb5b6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610aed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b1191906115be565b90509250929050565b6000546001600160a01b03163314610b3157600080fd5b804711610b3b5750475b600080546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015610b74573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610b8f57600080fd5b6001600160a01b038216600081815260026020526040808220805460ff191685151590811790915590519092917ffcaa24b1276bfa7dbf77797c0a984b9df924acbeaabd48cd2f1b0eca379b78fa91a35050565b600080546001600160a01b03163314610bfb57600080fd5b6001600160a01b038216610c4c5760405162461bcd60e51b81526020600482015260186024820152771e995c9bc81859191c995cdcc81b9bdd08185b1b1bddd95960421b60448201526064016105e4565b6007546001600160a01b0390811690831603610ca05760405162461bcd60e51b815260206004820152601360248201527273616d65206173206f6c64206164647265737360681b60448201526064016105e4565b50600780546001600160a01b039092166001600160a01b03199092168217905590565b6001546001600160a01b03163314610cda57600080fd5b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000805481906001600160a01b03163314610d5857600080fd5b5050600580546001600160a01b039283166001600160a01b0319821681179092559190911691565b6000546001600160a01b03163314610d9757600080fd5b6001600160a01b039091166000908152600a6020526040902055565b6000805481906001600160a01b03163314610dcd57600080fd5b5050600880549082905591565b6000805481906001600160a01b03163314610df457600080fd5b5050600680546001600160a01b039283166001600160a01b0319821681179092559190911691565b6000546001600160a01b03163314610e3357600080fd5b600955565b6000546001600160a01b03163314610e4f57600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6003805460009182610e8283611588565b90915550506007546001600160a01b0390811690861603610fee576040516323b872dd60e01b8152336004820152306024820152604481018590526001600160a01b038616906323b872dd90606401600060405180830381600087803b158015610eeb57600080fd5b505af1158015610eff573d6000803e3d6000fd5b505050506001600160a01b0385166000818152600a6020526040908190205490516370a0823160e01b81523060048201529091906370a0823190602401602060405180830381865afa158015610f59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7d91906115db565b10610fe95760005460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018690529086169063a9059cbb90604401600060405180830381600087803b158015610fd057600080fd5b505af1158015610fe4573d6000803e3d6000fd5b505050505b61115e565b6040516323b872dd60e01b8152336004820152306024820152604481018590526001600160a01b038616906323b872dd906064016020604051808303816000875af1158015611041573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106591906115a1565b506001600160a01b0385166000818152600a6020526040908190205490516370a0823160e01b81523060048201529091906370a0823190602401602060405180830381865afa1580156110bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e091906115db565b1061115e5760005460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018690529086169063a9059cbb906044016020604051808303816000875af1158015611138573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115c91906115a1565b505b60035460408051868152602081018690526001600160a01b03858116828401529151339392891692917f8a9f5b93a9427ed2074a269336914d74d6b34dfe5679f30c5cf172f5842aa795919081900360600190a4506001949350505050565b3360009081526002602052604081205460ff166112145760405162461bcd60e51b815260206004820152601560248201527431b0b63632b91036bab9ba1031329039b4b3b732b960591b60448201526064016105e4565b6000806009546000146112b85761122a85611343565b60055491935091506001600160a01b03161561127c576005546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561127a573d6000803e3d6000fd5b505b6040516001600160a01b0387169083156108fc029084906000818181858888f193505050501580156112b2573d6000803e3d6000fd5b506112f3565b6040516001600160a01b0387169086156108fc029087906000818181858888f193505050501580156112ee573d6000803e3d6000fd5b508491505b856001600160a01b0316847f9651479651fe91907cee7de24a0e47091421878d660c93c6fe0d04c7b7b2404b8460405161132f91815260200190565b60405180910390a350600195945050505050565b60008060095483116113975760405162461bcd60e51b815260206004820152601760248201527f4665652067726561746572207468616e20616d6f756e7400000000000000000060448201526064016105e4565b506009546113a581846115f4565b9150915091565b6001600160a01b03811681146113c157600080fd5b50565b6000602082840312156113d657600080fd5b81356113e1816113ac565b9392505050565b600080600080600060a0868803121561140057600080fd5b853561140b816113ac565b9450602086013561141b816113ac565b94979496505050506040830135926060810135926080909101359150565b6000806040838503121561144c57600080fd5b8235611457816113ac565b91506020830135611467816113ac565b809150509250929050565b60006020828403121561148457600080fd5b5035919050565b80151581146113c157600080fd5b600080604083850312156114ac57600080fd5b82356114b7816113ac565b915060208301356114678161148b565b600080604083850312156114da57600080fd5b82356114e5816113ac565b946020939093013593505050565b6000806000806080858703121561150957600080fd5b8435611514816113ac565b935060208501359250604085013591506060850135611532816113ac565b939692955090935050565b60008060006060848603121561155257600080fd5b833561155d816113ac565b95602085013595506040909401359392505050565b634e487b7160e01b600052601160045260246000fd5b60006001820161159a5761159a611572565b5060010190565b6000602082840312156115b357600080fd5b81516113e18161148b565b6000602082840312156115d057600080fd5b81516113e1816113ac565b6000602082840312156115ed57600080fd5b5051919050565b8181038181111561160757611607611572565b9291505056fea2646970667358221220a58dacd49772a9d775b9105635d01acd4d7356379c4a31cbda6c16f982044a6b64736f6c63430008110033

Deployed Bytecode Sourcemap

2724:7584:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1359:38;;;;;;;;;;-1:-1:-1;1359:38:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;567:14:1;;560:22;542:41;;530:2;515:18;1359:38:0;;;;;;;;4559:350;;;;;;:::i;:::-;;:::i;6444:1400::-;;;;;;;;;;-1:-1:-1;6444:1400:0;;;;;:::i;:::-;;:::i;9315:439::-;;;;;;;;;;-1:-1:-1;9315:439:0;;;;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;1816:15:1;;;1798:34;;1868:15;;;;1863:2;1848:18;;1841:43;1733:18;9315:439:0;1586:304:1;9978:235:0;;;;;;;;;;-1:-1:-1;9978:235:0;;;;;:::i;:::-;;:::i;:::-;;1871:161;;;;;;;;;;-1:-1:-1;1871:161:0;;;;;:::i;:::-;;:::i;8673:321::-;;;;;;;;;;-1:-1:-1;8673:321:0;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;2754:32:1;;;2736:51;;2724:2;2709:18;8673:321:0;2590:203:1;3312:53:0;;;;;;;;;;-1:-1:-1;3312:53:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;2944:25:1;;;2932:2;2917:18;3312:53:0;2798:177:1;2267:196:0;;;;;;;;;;;;;:::i;2758:22::-;;;;;;;;;;;;;;;;1300:20;;;;;;;;;;-1:-1:-1;1300:20:0;;;;-1:-1:-1;;;;;1300:20:0;;;8146:212;;;;;;;;;;-1:-1:-1;8146:212:0;;;;;:::i;:::-;;:::i;2972:71::-;;;;;;;;;;-1:-1:-1;2972:71:0;;;;-1:-1:-1;;;;;2972:71:0;;;9821:149;;;;;;;;;;-1:-1:-1;9821:149:0;;;;;:::i;:::-;;:::i;9026:230::-;;;;;;;;;;-1:-1:-1;9026:230:0;;;;;:::i;:::-;;:::i;:::-;;;;3474:25:1;;;3530:2;3515:18;;3508:34;;;;3447:18;9026:230:0;3300:248:1;3050:43:0;;;;;;;;;;;;;;;;3100:20;;;;;;;;;;;;;;;;2937:28;;;;;;;;;;-1:-1:-1;2937:28:0;;;;-1:-1:-1;;;;;2937:28:0;;;8396:236;;;;;;;;;;-1:-1:-1;8396:236:0;;;;;:::i;:::-;;:::i;10219:86::-;;;;;;;;;;-1:-1:-1;10219:86:0;;;;;:::i;:::-;;:::i;2787:30::-;;;;;;;;;;;;;;;;2906:24;;;;;;;;;;-1:-1:-1;2906:24:0;;;;-1:-1:-1;;;;;2906:24:0;;;2040:102;;;;;;;;;;-1:-1:-1;2040:102:0;;;;;:::i;:::-;;:::i;5499:935::-;;;;;;;;;;-1:-1:-1;5499:935:0;;;;;:::i;:::-;;:::i;4917:572::-;;;;;;;;;;-1:-1:-1;4917:572:0;;;;;:::i;:::-;;:::i;4559:350::-;4641:7;:9;;4624:4;;;4641:9;;;:::i;:::-;;;;-1:-1:-1;;4731:20:0;;4678:9;;4706:21;:45;4702:109;;4776:5;;;4768:31;;-1:-1:-1;;;;;4776:5:0;;;;4768:31;;;;;4792:6;;4768:31;4776:5;4768:31;4792:6;4776:5;4768:31;;;;;;;;;;;;;;;;;;;;;4702:109;4835:7;;4828:51;;;4917:25:1;;;-1:-1:-1;;;;;4978:32:1;;4973:2;4958:18;;4951:60;4844:10:0;;4835:7;4828:51;;4890:18:1;4828:51:0;;;;;;;-1:-1:-1;4897:4:0;;4559:350;-1:-1:-1;;4559:350:0:o;6444:1400::-;1804:10;6582:4;1797:18;;;:6;:18;;;;;;;;1789:52;;;;-1:-1:-1;;;1789:52:0;;5224:2:1;1789:52:0;;;5206:21:1;5263:2;5243:18;;;5236:30;-1:-1:-1;;;5282:18:1;;;5275:51;5343:18;;1789:52:0;;;;;;;;;6711:11:::1;::::0;6616;;6599:14:::1;::::0;;;-1:-1:-1;;;;;6711:11:0;;::::1;6695:27:::0;;::::1;::::0;6691:1047:::1;;6743:5;::::0;:10;6739:473:::1;;6792:23;6803:11;6792:10;:23::i;:::-;6834:51;::::0;-1:-1:-1;;;6834:51:0;;-1:-1:-1;;;;;5564:32:1;;;6834:51:0::1;::::0;::::1;5546::1::0;5613:18;;;5606:34;;;6774:41:0;;-1:-1:-1;6774:41:0;;-1:-1:-1;6834:35:0;::::1;::::0;::::1;::::0;5519:18:1;;6834:51:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6908:9:0::1;::::0;-1:-1:-1;;;;;6908:9:0::1;:23:::0;;-1:-1:-1;6904:123:0::1;::::0;-1:-1:-1;6904:123:0::1;6992:9;::::0;6956:51:::1;::::0;-1:-1:-1;;;6956:51:0;;-1:-1:-1;;;;;6992:9:0;;::::1;6956:51;::::0;::::1;5546::1::0;5613:18;;;5606:34;;;6956:35:0;;::::1;::::0;::::1;::::0;5519:18:1;;6956:51:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;6904:123;7054:8;7045:17;;6691:1047;;6739:473;7103:54;::::0;-1:-1:-1;;;7103:54:0;;-1:-1:-1;;;;;5564:32:1;;;7103:54:0::1;::::0;::::1;5546:51:1::0;5613:18;;;5606:34;;;7103:35:0;::::1;::::0;::::1;::::0;5519:18:1;;7103:54:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;7185:11;7176:20;;6691:1047;;;7250:5;::::0;:10;7246:479:::1;;7299:23;7310:11;7299:10;:23::i;:::-;7341:53;::::0;-1:-1:-1;;;7341:53:0;;-1:-1:-1;;;;;5564:32:1;;;7341:53:0::1;::::0;::::1;5546:51:1::0;5613:18;;;5606:34;;;7281:41:0;;-1:-1:-1;7281:41:0;;-1:-1:-1;7341:37:0;::::1;::::0;::::1;::::0;5519:18:1;;7341:53:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;7417:9:0::1;::::0;-1:-1:-1;;;;;7417:9:0::1;:23:::0;7413:125:::1;;7503:9;::::0;7465:53:::1;::::0;-1:-1:-1;;;7465:53:0;;-1:-1:-1;;;;;7503:9:0;;::::1;7465:53;::::0;::::1;5546:51:1::0;5613:18;;;5606:34;;;7465:37:0;;::::1;::::0;::::1;::::0;5519:18:1;;7465:53:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7565:8;7556:17;;7246:479;;;7614:56;::::0;-1:-1:-1;;;7614:56:0;;-1:-1:-1;;;;;5564:32:1;;;7614:56:0::1;::::0;::::1;5546:51:1::0;5613:18;;;5606:34;;;7614:37:0;::::1;::::0;::::1;::::0;5519:18:1;;7614:56:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7698:11;7689:20;;7246:479;7790:4;-1:-1:-1::0;;;;;7757:55:0::1;7776:12;-1:-1:-1::0;;;;;7757:55:0::1;7766:8;7757:55;7796:6;7804:7;7757:55;;;;;;3474:25:1::0;;;3530:2;3515:18;;3508:34;3462:2;3447:18;;3300:248;7757:55:0::1;;;;;;;;-1:-1:-1::0;7832:4:0::1;::::0;6444:1400;-1:-1:-1;;;;;;;;6444:1400:0:o;9315:439::-;9417:16;1722:5;;9417:16;;-1:-1:-1;;;;;1722:5:0;1708:10;:19;1700:28;;;;;;-1:-1:-1;;;;;9472:28:0;::::1;::::0;;::::1;::::0;:55:::1;;-1:-1:-1::0;;;;;;9504:23:0;::::1;::::0;::::1;9472:55;9464:92;;;::::0;-1:-1:-1;;;9464:92:0;;6103:2:1;9464:92:0::1;::::0;::::1;6085:21:1::0;6142:2;6122:18;;;6115:30;-1:-1:-1;;;6161:18:1;;;6154:54;6225:18;;9464:92:0::1;5901:348:1::0;9464:92:0::1;9593:14;-1:-1:-1::0;;;;;9578:36:0::1;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9627:59;::::0;-1:-1:-1;;;9627:59:0;;-1:-1:-1;;;;;2754:32:1;;;9627:59:0::1;::::0;::::1;2736:51:1::0;9567:49:0;;-1:-1:-1;9627:48:0;;::::1;::::0;::::1;::::0;2709:18:1;;9627:59:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9723:14;-1:-1:-1::0;;;;;9708:36:0::1;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9697:49;;9315:439:::0;;;;;:::o;9978:235::-;1722:5;;-1:-1:-1;;;;;1722:5:0;1708:10;:19;1700:28;;;;;;10081:12:::1;10056:21;:37;10052:106;;-1:-1:-1::0;10125:21:0::1;10052:106;10176:5;::::0;;10168:37:::1;::::0;-1:-1:-1;;;;;10176:5:0;;::::1;::::0;10168:37;::::1;;;::::0;10192:12;;10168:37;10176:5;10168:37;10192:12;10176:5;10168:37;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;9978:235:::0;:::o;1871:161::-;1722:5;;-1:-1:-1;;;;;1722:5:0;1708:10;:19;1700:28;;;;;;-1:-1:-1;;;;;1952:15:0;::::1;;::::0;;;:6:::1;:15;::::0;;;;;:25;;-1:-1:-1;;1952:25:0::1;::::0;::::1;;::::0;;::::1;::::0;;;1993:31;;1952:25;;:15;1993:31:::1;::::0;::::1;1871:161:::0;;:::o;8673:321::-;8747:18;1722:5;;-1:-1:-1;;;;;1722:5:0;1708:10;:19;1700:28;;;;;;-1:-1:-1;;;;;8786:27:0;::::1;8778:64;;;::::0;-1:-1:-1;;;8778:64:0;;6103:2:1;8778:64:0::1;::::0;::::1;6085:21:1::0;6142:2;6122:18;;;6115:30;-1:-1:-1;;;6161:18:1;;;6154:54;6225:18;;8778:64:0::1;5901:348:1::0;8778:64:0::1;8878:11;::::0;-1:-1:-1;;;;;8878:11:0;;::::1;8861:28:::0;;::::1;::::0;8853:60:::1;;;::::0;-1:-1:-1;;;8853:60:0;;6712:2:1;8853:60:0::1;::::0;::::1;6694:21:1::0;6751:2;6731:18;;;6724:30;-1:-1:-1;;;6770:18:1;;;6763:49;6829:18;;8853:60:0::1;6510:343:1::0;8853:60:0::1;-1:-1:-1::0;8924:11:0::1;:27:::0;;-1:-1:-1;;;;;8924:27:0;;::::1;-1:-1:-1::0;;;;;;8924:27:0;;::::1;::::0;::::1;::::0;;;8673:321::o;2267:196::-;2334:8;;-1:-1:-1;;;;;2334:8:0;2320:10;:22;2312:31;;;;;;2387:8;;;2380:5;;2359:37;;-1:-1:-1;;;;;2387:8:0;;;;2380:5;;;;2359:37;;;2415:8;;;;2407:16;;-1:-1:-1;;;;;;2407:16:0;;;-1:-1:-1;;;;;2415:8:0;;2407:16;;;;2434:21;;;2267:196::o;8146:212::-;8215:17;1722:5;;8215:17;;-1:-1:-1;;;;;1722:5:0;1708:10;:19;1700:28;;;;;;-1:-1:-1;;8276:9:0::1;::::0;;-1:-1:-1;;;;;8296:22:0;;::::1;-1:-1:-1::0;;;;;;8296:22:0;::::1;::::0;::::1;::::0;;;8276:9;;;::::1;::::0;8146:212::o;9821:149::-;1722:5;;-1:-1:-1;;;;;1722:5:0;1708:10;:19;1700:28;;;;;;-1:-1:-1;;;;;9922:28:0;;::::1;;::::0;;;:18:::1;:28;::::0;;;;:40;9821:149::o;9026:230::-;9096:17;1722:5;;9096:17;;-1:-1:-1;;;;;1722:5:0;1708:10;:19;1700:28;;;;;;-1:-1:-1;;9157:20:0::1;::::0;;9188:30;;;;9157:20;9026:230::o;8396:236::-;8473:17;1722:5;;8473:17;;-1:-1:-1;;;;;1722:5:0;1708:10;:19;1700:28;;;;;;-1:-1:-1;;8534:13:0::1;::::0;;-1:-1:-1;;;;;8558:30:0;;::::1;-1:-1:-1::0;;;;;;8558:30:0;::::1;::::0;::::1;::::0;;;8534:13;;;::::1;::::0;8396:236::o;10219:86::-;1722:5;;-1:-1:-1;;;;;1722:5:0;1708:10;:19;1700:28;;;;;;10283:5:::1;:14:::0;10219:86::o;2040:102::-;1722:5;;-1:-1:-1;;;;;1722:5:0;1708:10;:19;1700:28;;;;;;2114:8:::1;:20:::0;;-1:-1:-1;;;;;;2114:20:0::1;-1:-1:-1::0;;;;;2114:20:0;;;::::1;::::0;;;::::1;::::0;;2040:102::o;5499:935::-;5634:7;:9;;5617:4;;;5634:9;;;:::i;:::-;;;;-1:-1:-1;;5676:11:0;;-1:-1:-1;;;;;5676:11:0;;;5660:27;;;;5656:651;;5704:79;;-1:-1:-1;;;5704:79:0;;5744:10;5704:79;;;7098:34:1;5764:4:0;7148:18:1;;;7141:43;7200:18;;;7193:34;;;-1:-1:-1;;;;;5704:39:0;;;;;7033:18:1;;5704:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;5857:32:0;;;;;;:18;:32;;;;;;;;5802:51;;-1:-1:-1;;;5802:51:0;;5847:4;5802:51;;;2736::1;5857:32:0;;;5802:36;;2709:18:1;;5802:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:87;5798:183;;5946:5;;5910:55;;-1:-1:-1;;;5910:55:0;;-1:-1:-1;;;;;5946:5:0;;;5910:55;;;5546:51:1;5613:18;;;5606:34;;;5910:35:0;;;;;;5519:18:1;;5910:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5798:183;5656:651;;;6015:81;;-1:-1:-1;;;6015:81:0;;6057:10;6015:81;;;7098:34:1;6077:4:0;7148:18:1;;;7141:43;7200:18;;;7193:34;;;-1:-1:-1;;;;;6015:41:0;;;;;7033:18:1;;6015:81:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;6170:32:0;;;;;;:18;:32;;;;;;;;6115:51;;-1:-1:-1;;;6115:51:0;;6160:4;6115:51;;;2736::1;6170:32:0;;;6115:36;;2709:18:1;;6115:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:87;6111:185;;6261:5;;6223:57;;-1:-1:-1;;;6223:57:0;;-1:-1:-1;;;;;6261:5:0;;;6223:57;;;5546:51:1;5613:18;;;5606:34;;;6223:37:0;;;;;;5519:18:1;;6223:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6111:185;6332:7;;6324:80;;;7629:25:1;;;7685:2;7670:18;;7663:34;;;-1:-1:-1;;;;;7733:32:1;;;7713:18;;;7706:60;6324:80:0;;6355:10;;6324:80;;;;6332:7;6324:80;;;;;;7617:2:1;6324:80:0;;;-1:-1:-1;6422:4:0;5499:935;;;;;;:::o;4917:572::-;1804:10;5010:4;1797:18;;;:6;:18;;;;;;;;1789:52;;;;-1:-1:-1;;;1789:52:0;;5224:2:1;1789:52:0;;;5206:21:1;5263:2;5243:18;;;5236:30;-1:-1:-1;;;5282:18:1;;;5275:51;5343:18;;1789:52:0;5022:345:1;1789:52:0;5027:16:::1;5054:11:::0;5082:5:::1;;5091:1;5082:10;5078:331;;5127:18;5138:6;5127:10;:18::i;:::-;5164:9;::::0;5109:36;;-1:-1:-1;5109:36:0;-1:-1:-1;;;;;;5164:9:0::1;:23:::0;5160:96:::1;;5216:9;::::0;5208:32:::1;::::0;-1:-1:-1;;;;;5216:9:0;;::::1;::::0;5208:32;::::1;;;::::0;5236:3;;5216:9:::1;5208:32:::0;5216:9;5208:32;5236:3;5216:9;5208:32;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;5160:96;5270:32;::::0;-1:-1:-1;;;;;5270:22:0;::::1;::::0;:32;::::1;;;::::0;5293:8;;5270:32:::1;::::0;;;5293:8;5270:22;:32;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;5078:331;;;5335:30;::::0;-1:-1:-1;;;;;5335:22:0;::::1;::::0;:30;::::1;;;::::0;5358:6;;5335:30:::1;::::0;;;5358:6;5335:22;:30;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;5391:6;5380:17;;5078:331;5444:4;-1:-1:-1::0;;;;;5426:33:0::1;5434:8;5426:33;5450:8;5426:33;;;;2944:25:1::0;;2932:2;2917:18;;2798:177;5426:33:0::1;;;;;;;;-1:-1:-1::0;5477:4:0::1;::::0;4917:572;-1:-1:-1;;;;;4917:572:0:o;7874:236::-;7932:16;7950:19;7997:5;;7990:6;:12;7982:48;;;;-1:-1:-1;;;7982:48:0;;7979:2:1;7982:48:0;;;7961:21:1;8018:2;7998:18;;;7991:30;8057:25;8037:18;;;8030:53;8100:18;;7982:48:0;7777:347:1;7982:48:0;-1:-1:-1;8055:5:0;;8082:20;8055:5;8082:6;:20;:::i;:::-;8071:31;;7874:236;;;:::o;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:247::-;209:6;262:2;250:9;241:7;237:23;233:32;230:52;;;278:1;275;268:12;230:52;317:9;304:23;336:31;361:5;336:31;:::i;:::-;386:5;150:247;-1:-1:-1;;;150:247:1:o;594:594::-;689:6;697;705;713;721;774:3;762:9;753:7;749:23;745:33;742:53;;;791:1;788;781:12;742:53;830:9;817:23;849:31;874:5;849:31;:::i;:::-;899:5;-1:-1:-1;956:2:1;941:18;;928:32;969:33;928:32;969:33;:::i;:::-;594:594;;1021:7;;-1:-1:-1;;;;1075:2:1;1060:18;;1047:32;;1126:2;1111:18;;1098:32;;1177:3;1162:19;;;1149:33;;-1:-1:-1;594:594:1:o;1193:388::-;1261:6;1269;1322:2;1310:9;1301:7;1297:23;1293:32;1290:52;;;1338:1;1335;1328:12;1290:52;1377:9;1364:23;1396:31;1421:5;1396:31;:::i;:::-;1446:5;-1:-1:-1;1503:2:1;1488:18;;1475:32;1516:33;1475:32;1516:33;:::i;:::-;1568:7;1558:17;;;1193:388;;;;;:::o;1895:180::-;1954:6;2007:2;1995:9;1986:7;1982:23;1978:32;1975:52;;;2023:1;2020;2013:12;1975:52;-1:-1:-1;2046:23:1;;1895:180;-1:-1:-1;1895:180:1:o;2080:118::-;2166:5;2159:13;2152:21;2145:5;2142:32;2132:60;;2188:1;2185;2178:12;2203:382;2268:6;2276;2329:2;2317:9;2308:7;2304:23;2300:32;2297:52;;;2345:1;2342;2335:12;2297:52;2384:9;2371:23;2403:31;2428:5;2403:31;:::i;:::-;2453:5;-1:-1:-1;2510:2:1;2495:18;;2482:32;2523:30;2482:32;2523:30;:::i;2980:315::-;3048:6;3056;3109:2;3097:9;3088:7;3084:23;3080:32;3077:52;;;3125:1;3122;3115:12;3077:52;3164:9;3151:23;3183:31;3208:5;3183:31;:::i;:::-;3233:5;3285:2;3270:18;;;;3257:32;;-1:-1:-1;;;2980:315:1:o;3553:525::-;3639:6;3647;3655;3663;3716:3;3704:9;3695:7;3691:23;3687:33;3684:53;;;3733:1;3730;3723:12;3684:53;3772:9;3759:23;3791:31;3816:5;3791:31;:::i;:::-;3841:5;-1:-1:-1;3893:2:1;3878:18;;3865:32;;-1:-1:-1;3944:2:1;3929:18;;3916:32;;-1:-1:-1;4000:2:1;3985:18;;3972:32;4013:33;3972:32;4013:33;:::i;:::-;3553:525;;;;-1:-1:-1;3553:525:1;;-1:-1:-1;;3553:525:1:o;4083:383::-;4160:6;4168;4176;4229:2;4217:9;4208:7;4204:23;4200:32;4197:52;;;4245:1;4242;4235:12;4197:52;4284:9;4271:23;4303:31;4328:5;4303:31;:::i;:::-;4353:5;4405:2;4390:18;;4377:32;;-1:-1:-1;4456:2:1;4441:18;;;4428:32;;4083:383;-1:-1:-1;;;4083:383:1:o;4471:127::-;4532:10;4527:3;4523:20;4520:1;4513:31;4563:4;4560:1;4553:15;4587:4;4584:1;4577:15;4603:135;4642:3;4663:17;;;4660:43;;4683:18;;:::i;:::-;-1:-1:-1;4730:1:1;4719:13;;4603:135::o;5651:245::-;5718:6;5771:2;5759:9;5750:7;5746:23;5742:32;5739:52;;;5787:1;5784;5777:12;5739:52;5819:9;5813:16;5838:28;5860:5;5838:28;:::i;6254:251::-;6324:6;6377:2;6365:9;6356:7;6352:23;6348:32;6345:52;;;6393:1;6390;6383:12;6345:52;6425:9;6419:16;6444:31;6469:5;6444:31;:::i;7238:184::-;7308:6;7361:2;7349:9;7340:7;7336:23;7332:32;7329:52;;;7377:1;7374;7367:12;7329:52;-1:-1:-1;7400:16:1;;7238:184;-1:-1:-1;7238:184:1:o;8129:128::-;8196:9;;;8217:11;;;8214:37;;;8231:18;;:::i;:::-;8129:128;;;;:::o

Swarm Source

ipfs://a58dacd49772a9d775b9105635d01acd4d7356379c4a31cbda6c16f982044a6b

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.