ETH Price: $3,282.09 (-3.86%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer217003952025-01-25 8:42:231 hr ago1737794543IN
0x0908078D...C85b580dd
0 ETH0.000297238.01599402
Transfer216985392025-01-25 2:28:117 hrs ago1737772091IN
0x0908078D...C85b580dd
0 ETH0.000257616.94530678
Transfer216949802025-01-24 14:32:4719 hrs ago1737729167IN
0x0908078D...C85b580dd
0 ETH0.000959417.70774327
Transfer216943272025-01-24 12:21:2321 hrs ago1737721283IN
0x0908078D...C85b580dd
0 ETH0.0006810318.36654066
Transfer216935032025-01-24 9:36:1124 hrs ago1737711371IN
0x0908078D...C85b580dd
0 ETH0.0005114213.78808086
Transfer216934632025-01-24 9:28:1124 hrs ago1737710891IN
0x0908078D...C85b580dd
0 ETH0.0007309213.49069015
Transfer216904932025-01-23 23:30:4734 hrs ago1737675047IN
0x0908078D...C85b580dd
0 ETH0.000398958.08126115
Transfer216892472025-01-23 19:20:4738 hrs ago1737660047IN
0x0908078D...C85b580dd
0 ETH0.0005352510.84211379
Transfer216889002025-01-23 18:11:2340 hrs ago1737655883IN
0x0908078D...C85b580dd
0 ETH0.0006192111.4288999
Transfer216888892025-01-23 18:09:1140 hrs ago1737655751IN
0x0908078D...C85b580dd
0 ETH0.0006293111.61526623
Transfer216888782025-01-23 18:06:5940 hrs ago1737655619IN
0x0908078D...C85b580dd
0 ETH0.0006323711.67177102
Transfer216887142025-01-23 17:34:1140 hrs ago1737653651IN
0x0908078D...C85b580dd
0 ETH0.0004721812.73413834
Transfer216877092025-01-23 14:12:3544 hrs ago1737641555IN
0x0908078D...C85b580dd
0 ETH0.0014647329.64816124
Transfer216871702025-01-23 12:24:1145 hrs ago1737635051IN
0x0908078D...C85b580dd
0 ETH0.000474058.74970124
Transfer216867622025-01-23 11:02:2347 hrs ago1737630143IN
0x0908078D...C85b580dd
0 ETH0.000208476.45818088
Transfer216867192025-01-23 10:53:3547 hrs ago1737629615IN
0x0908078D...C85b580dd
0 ETH0.000436018.04932766
Transfer216864582025-01-23 10:00:592 days ago1737626459IN
0x0908078D...C85b580dd
0 ETH0.000247446.07626418
Transfer216864422025-01-23 9:57:472 days ago1737626267IN
0x0908078D...C85b580dd
0 ETH0.000205436.36165769
Transfer216864412025-01-23 9:57:352 days ago1737626255IN
0x0908078D...C85b580dd
0 ETH0.000269026.60610772
Transfer216863942025-01-23 9:48:112 days ago1737625691IN
0x0908078D...C85b580dd
0 ETH0.000323535.9728706
Transfer216863232025-01-23 9:33:592 days ago1737624839IN
0x0908078D...C85b580dd
0 ETH0.000241146.50551958
Transfer216861712025-01-23 9:03:352 days ago1737623015IN
0x0908078D...C85b580dd
0 ETH0.000164395.09096415
Approve216861542025-01-23 9:00:112 days ago1737622811IN
0x0908078D...C85b580dd
0 ETH0.000293836.3177453
Transfer216861102025-01-23 8:51:232 days ago1737622283IN
0x0908078D...C85b580dd
0 ETH0.000197525.32710557
Transfer216861062025-01-23 8:50:352 days ago1737622235IN
0x0908078D...C85b580dd
0 ETH0.000203985.50116927
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
D223Token

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 5000 runs

Other Settings:
default evmVersion, GNU GPLv3 license
/**
 *Submitted for verification at Etherscan.io on 2024-10-31
*/

// SPDX-License-Identifier: GPL-3.0

// Contracts are written by @Dexaran (twitter.com/Dexaran github.com/Dexaran)
// Read more about ERC-223 standard here: dexaran.github.io/erc223
// ERC-223: https://eips.ethereum.org/EIPS/eip-223 & https://github.com/ethereum/eips/issues/223

// D223 is a token of Dex223.io exchange.

pragma solidity >=0.8.2;

abstract contract IERC223Recipient {


 struct ERC223TransferInfo
    {
        address token_contract;
        address sender;
        uint256 value;
        bytes   data;
    }
    
    ERC223TransferInfo private tkn;
    
/**
 * @dev Standard ERC223 function that will handle incoming token transfers.
 *
 * @param _from  Token sender address.
 * @param _value Amount of tokens.
 * @param _data  Transaction metadata.
 */
    function tokenReceived(address _from, uint _value, bytes memory _data) public virtual returns (bytes4)
    {
        /**
         * @dev Note that inside of the token transaction handler the actual sender of token transfer is accessible via the tkn.sender variable
         * (analogue of msg.sender for Ether transfers)
         * 
         * tkn.value - is the amount of transferred tokens
         * tkn.data  - is the "metadata" of token transfer
         * tkn.token_contract is most likely equal to msg.sender because the token contract typically invokes this function
        */
        tkn.token_contract = msg.sender;
        tkn.sender         = _from;
        tkn.value          = _value;
        tkn.data           = _data;
        
        // ACTUAL CODE

        return 0x8943ec02;
    }
}

library Address {
    /**
     * @dev Returns true if `account` is a contract.
     *
     * This test is non-exhaustive, and there may be false-negatives: during the
     * execution of a contract's constructor, its address will be reported as
     * not containing a contract.
     *
     * > It is unsafe to assume that an address for which this function returns
     * false is an externally-owned account (EOA) and not a contract.
     */
    function isContract(address account) internal view returns (bool) {
        // This method relies in extcodesize, which returns 0 for contracts in
        // construction, since the code is only stored at the end of the
        // constructor execution.

        uint256 size;
        // solhint-disable-next-line no-inline-assembly
        assembly { size := extcodesize(account) }
        return size > 0;
    }
}

/**
 * @title Reference implementation of the ERC223 standard token.
 */
contract D223Token {

     /**
     * @dev Event that is fired on successful transfer.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);
    event TransferData(bytes);
    event Approval(address indexed owner, address indexed spender, uint256 amount);

    string  private _name;
    string  private _symbol;
    uint8   private _decimals;
    uint256 private _totalSupply;
    address public  owner = msg.sender;
    address public  pending_owner;
    mapping(address account => mapping(address spender => uint256)) private allowances;
    
    mapping(address => uint256) private balances; // List of user balances.

    /**
     * @dev Sets the values for {name} and {symbol}, initializes {decimals} with
     * a default value of 18.
     *
     * To select a different value for {decimals}, use {_setupDecimals}.
     *
     * All three of these values are immutable: they can only be set once during
     * construction.
     */
     
    constructor()
    {
        _name     = "Dex223 token";
        _symbol   = "D223";
        _decimals = 18;
        balances[msg.sender] = 8000000000 * 1e18;
        emit Transfer(address(0), msg.sender, balances[msg.sender]);
        emit TransferData(hex"000000");
        _totalSupply = balances[msg.sender];
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view returns (string memory)
    {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view returns (string memory)
    {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5,05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC223} uses, unless {_setupDecimals} is
     * called.
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC223-balanceOf} and {IERC223-transfer}.
     */
    function decimals() public view returns (uint8)
    {
        return _decimals;
    }

    /**
     * @dev See {IERC223-totalSupply}.
     */
    function totalSupply() public view returns (uint256)
    {
        return _totalSupply;
    }

    /**
     * @dev See {IERC223-standard}.
     */
    function standard() public pure returns (uint32)
    {
        return 223;
    }

    
    /**
     * @dev Returns balance of the `_owner`.
     *
     * @param _owner   The address whose balance will be returned.
     * @return balance Balance of the `_owner`.
     */
    function balanceOf(address _owner) public view returns (uint256)
    {
        return balances[_owner];
    }
    
    /**
     * @dev Transfer the specified amount of tokens to the specified address.
     *      Invokes the `tokenFallback` function if the recipient is a contract.
     *      The token transfer fails if the recipient is a contract
     *      but does not implement the `tokenFallback` function
     *      or the fallback function to receive funds.
     *
     * @param _to    Receiver address.
     * @param _value Amount of tokens that will be transferred.
     * @param _data  Transaction metadata.
     */
    function transfer(address _to, uint _value, bytes calldata _data) public payable returns (bool success)
    {
        // Standard function transfer similar to ERC20 transfer with no _data .
        // Added due to backwards compatibility reasons.
        if(msg.value > 0) payable(_to).transfer(msg.value);
        balances[msg.sender] = balances[msg.sender] - _value;
        balances[_to] = balances[_to] + _value;
        if(Address.isContract(_to)) {
            IERC223Recipient(_to).tokenReceived(msg.sender, _value, _data);
        }
        emit Transfer(msg.sender, _to, _value);
        emit TransferData(_data);
        return true;
    }
    
    /**
     * @dev Transfer the specified amount of tokens to the specified address.
     *      This function works the same with the previous one
     *      but doesn't contain `_data` param.
     *      Added due to backwards compatibility reasons.
     *
     * @param _to    Receiver address.
     * @param _value Amount of tokens that will be transferred.
     */
    function transfer(address _to, uint _value) public payable returns (bool success)
    {
        if(msg.value > 0) payable(_to).transfer(msg.value);
        bytes memory _empty = hex"00000000";
        balances[msg.sender] = balances[msg.sender] - _value;
        balances[_to] = balances[_to] + _value;
        if(Address.isContract(_to)) {
            IERC223Recipient(_to).tokenReceived(msg.sender, _value, _empty);
        }
        emit Transfer(msg.sender, _to, _value);
        return true;
    }

    // ERC-20 functions for backwards compatibility.

    // Security warning!

    // ERC-20 transferFrom function does not invoke a `tokenReceived` function in the
    // recipient smart-contract. Therefore error handling is not possible
    // and a user can directly deposit tokens to any contract bypassing safety checks
    // or token reception handlers which can result in a loss of funds.
    // This functions are only supported for backwards compatibility reasons
    // and as a last resort when it may be necessary to forcefully transfer tokens
    // to some smart-contract which is not explicitly compatible with the ERC-223 standard.
    //
    // This is not a default method of depsoiting tokens to smart-contracts.
    // `trasnfer` function must be used to deposit tokens to smart-contracts
    // if the recipient supports ERC-223 depositing pattern.
    //
    // `approve` & `transferFrom` pattern must be avoided whenever possible.

    function allowance(address _owner, address spender) public view virtual returns (uint256) {
        return allowances[_owner][spender];
    }

    function approve(address _spender, uint _value) public returns (bool) {

        // Safety checks.
        require(_spender != address(0), "ERC-223: Spender error.");

        allowances[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        
        return true;
    }

    function transferFrom(address _from, address _to, uint _value) public returns (bool) {
        
        require(allowances[_from][msg.sender] >= _value, "ERC-223: Insufficient allowance.");
        
        balances[_from] -= _value;
        allowances[_from][msg.sender] -= _value;
        balances[_to] += _value;
        
        emit Transfer(_from, _to, _value);
        
        return true;
    }

    // ERC-20 standard contains a security flaw described here: https://medium.com/dex223/known-problems-of-erc20-token-standard-e98887b9532c
    // ERC-20 tokens do not invoke any callback function upon being deposited to a smart-contract via `transfer` function,
    // therefore it's impossible to handle errors and prevent users from sending tokens to smart-contracts which are not designed to receive them.
    // As of 2024 $83,000,000 worth of ERC-20 tokens were lost due to this flaw: https://dexaran.github.io/erc20-losses/
    // In order to mitigate this issue we are allowing the owner to extract the tokens.
    // You can contact the owner of the contract [email protected] / [email protected] 
    // if you have accidentally deposited tokens to this contract.

    function rescueERC20(address _token, uint256 _value) external
    {
        require(msg.sender == owner);
        (bool success, bytes memory data) = _token.call(abi.encodeWithSelector(0xa9059cbb, msg.sender, _value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), "Transfer failed");
    }

    // In this contract the `owner` can only extract stuck ERC-20 tokens.
    // ERC-20 tokens contain a security flaw that can result in a loss of funds
    // as it's `transfer` function does not implement error handling
    // and therefore tokens can be transferred directly to smart-contract address
    // which is not designed to receive them and instead of resulting in an error
    // it would result in a loss of tokens for the sender.

    function newOwner(address _owner) external
    {
        require(msg.sender == owner);
        pending_owner = _owner;
    }

    function claimOwnership() external
    {
        require(msg.sender == pending_owner);
        owner = pending_owner;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes","name":"","type":"bytes"}],"name":"TransferData","type":"event"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimOwnership","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"_owner","type":"address"}],"name":"newOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pending_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"standard","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"pure","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":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

6080604052600480546001600160a01b031916331790553480156200002357600080fd5b5060408051808201909152600c81526b2232bc191919903a37b5b2b760a11b6020820152600090620000569082620001f1565b506040805180820190915260048152634432323360e01b6020820152600190620000819082620001f1565b506002805460ff19166012179055336000818152600760205260408082206b19d971e4fe8401e7400000009081905590517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91620000e29190815260200190565b60405180910390a37f3ba9136826ac751de05d770d8d34fa4440ada49a5fb0e9aa1678aece66dad9766040516200012b9060208082526003908201526000604082015260600190565b60405180910390a133600090815260076020526040902054600355620002bd565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200017757607f821691505b6020821081036200019857634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001ec57600081815260208120601f850160051c81016020861015620001c75750805b601f850160051c820191505b81811015620001e857828155600101620001d3565b5050505b505050565b81516001600160401b038111156200020d576200020d6200014c565b62000225816200021e845462000162565b846200019e565b602080601f8311600181146200025d5760008415620002445750858301515b600019600386901b1c1916600185901b178555620001e8565b600085815260208120601f198616915b828110156200028e578886015182559484019460019091019084016200026d565b5085821015620002ad5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610f9780620002cd6000396000f3fe6080604052600436106100f35760003560e01c80637f4ec4c31161008a57806395d89b411161005957806395d89b41146102b5578063a9059cbb146102ca578063be45fd62146102dd578063dd62ed3e146102f057600080fd5b80637f4ec4c31461021d57806385952454146102555780638cd4426d146102755780638da5cb5b1461029557600080fd5b8063313ce567116100c6578063313ce567146101925780634e71e0c8146101b45780635a3b7e42146101cb57806370a08231146101e757600080fd5b806306fdde03146100f8578063095ea7b31461012357806318160ddd1461015357806323b872dd14610172575b600080fd5b34801561010457600080fd5b5061010d610336565b60405161011a9190610bff565b60405180910390f35b34801561012f57600080fd5b5061014361013e366004610c35565b6103c8565b604051901515815260200161011a565b34801561015f57600080fd5b506003545b60405190815260200161011a565b34801561017e57600080fd5b5061014361018d366004610c5f565b6104a4565b34801561019e57600080fd5b5060025460405160ff909116815260200161011a565b3480156101c057600080fd5b506101c961061c565b005b3480156101d757600080fd5b5060405160df815260200161011a565b3480156101f357600080fd5b50610164610202366004610c9b565b6001600160a01b031660009081526007602052604090205490565b34801561022957600080fd5b5060055461023d906001600160a01b031681565b6040516001600160a01b03909116815260200161011a565b34801561026157600080fd5b506101c9610270366004610c9b565b61066f565b34801561028157600080fd5b506101c9610290366004610c35565b6106c0565b3480156102a157600080fd5b5060045461023d906001600160a01b031681565b3480156102c157600080fd5b5061010d610835565b6101436102d8366004610c35565b610844565b6101436102eb366004610cb6565b6109d6565b3480156102fc57600080fd5b5061016461030b366004610d3d565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b60606000805461034590610d70565b80601f016020809104026020016040519081016040528092919081815260200182805461037190610d70565b80156103be5780601f10610393576101008083540402835291602001916103be565b820191906000526020600020905b8154815290600101906020018083116103a157829003601f168201915b5050505050905090565b60006001600160a01b03831661043f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4552432d3232333a205370656e646572206572726f722e00000000000000000060448201526064015b60405180910390fd5b3360008181526006602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060015b92915050565b6001600160a01b0383166000908152600660209081526040808320338452909152812054821115610531576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4552432d3232333a20496e73756666696369656e7420616c6c6f77616e63652e6044820152606401610436565b6001600160a01b03841660009081526007602052604081208054849290610559908490610df2565b90915550506001600160a01b038416600090815260066020908152604080832033845290915281208054849290610591908490610df2565b90915550506001600160a01b038316600090815260076020526040812080548492906105be908490610e05565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161060a91815260200190565b60405180910390a35060019392505050565b6005546001600160a01b0316331461063357600080fd5b600554600480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03909216919091179055565b6004546001600160a01b0316331461068657600080fd5b600580547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6004546001600160a01b031633146106d757600080fd5b60408051336024820152604480820184905282518083039091018152606490910182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052905160009182916001600160a01b0386169161075d91610e18565b6000604051808303816000865af19150503d806000811461079a576040519150601f19603f3d011682016040523d82523d6000602084013e61079f565b606091505b50915091508180156107c95750805115806107c95750808060200190518101906107c99190610e34565b61082f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5472616e73666572206661696c656400000000000000000000000000000000006044820152606401610436565b50505050565b60606001805461034590610d70565b60003415610883576040516001600160a01b038416903480156108fc02916000818181858888f19350505050158015610881573d6000803e3d6000fd5b505b60408051808201825260048152600060208083018290523382526007905291909120546108b1908490610df2565b33600090815260076020526040808220929092556001600160a01b038616815220546108de908490610e05565b6001600160a01b038516600090815260076020526040902055833b1561098c576040517f8943ec020000000000000000000000000000000000000000000000000000000081526001600160a01b03851690638943ec029061094790339087908690600401610e56565b6020604051808303816000875af1158015610966573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098a9190610e87565b505b6040518381526001600160a01b0385169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35060019392505050565b60003415610a15576040516001600160a01b038616903480156108fc02916000818181858888f19350505050158015610a13573d6000803e3d6000fd5b505b33600090815260076020526040902054610a30908590610df2565b33600090815260076020526040808220929092556001600160a01b03871681522054610a5d908590610e05565b6001600160a01b038616600090815260076020526040902055843b15610b0d576040517f8943ec020000000000000000000000000000000000000000000000000000000081526001600160a01b03861690638943ec0290610ac8903390889088908890600401610f12565b6020604051808303816000875af1158015610ae7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0b9190610e87565b505b6040518481526001600160a01b0386169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a37f3ba9136826ac751de05d770d8d34fa4440ada49a5fb0e9aa1678aece66dad9768383604051610b7e929190610f45565b60405180910390a1506001949350505050565b60005b83811015610bac578181015183820152602001610b94565b50506000910152565b60008151808452610bcd816020860160208601610b91565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610c126020830184610bb5565b9392505050565b80356001600160a01b0381168114610c3057600080fd5b919050565b60008060408385031215610c4857600080fd5b610c5183610c19565b946020939093013593505050565b600080600060608486031215610c7457600080fd5b610c7d84610c19565b9250610c8b60208501610c19565b9150604084013590509250925092565b600060208284031215610cad57600080fd5b610c1282610c19565b60008060008060608587031215610ccc57600080fd5b610cd585610c19565b935060208501359250604085013567ffffffffffffffff80821115610cf957600080fd5b818701915087601f830112610d0d57600080fd5b813581811115610d1c57600080fd5b886020828501011115610d2e57600080fd5b95989497505060200194505050565b60008060408385031215610d5057600080fd5b610d5983610c19565b9150610d6760208401610c19565b90509250929050565b600181811c90821680610d8457607f821691505b602082108103610dbd577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561049e5761049e610dc3565b8082018082111561049e5761049e610dc3565b60008251610e2a818460208701610b91565b9190910192915050565b600060208284031215610e4657600080fd5b81518015158114610c1257600080fd5b6001600160a01b0384168152826020820152606060408201526000610e7e6060830184610bb5565b95945050505050565b600060208284031215610e9957600080fd5b81517fffffffff0000000000000000000000000000000000000000000000000000000081168114610c1257600080fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6001600160a01b0385168152836020820152606060408201526000610f3b606083018486610ec9565b9695505050505050565b602081526000610f59602083018486610ec9565b94935050505056fea2646970667358221220c0d2e12b0617b3d2b47238c3b68bf1d68ea84b1a2a21d357504ea1c90948c31c64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106100f35760003560e01c80637f4ec4c31161008a57806395d89b411161005957806395d89b41146102b5578063a9059cbb146102ca578063be45fd62146102dd578063dd62ed3e146102f057600080fd5b80637f4ec4c31461021d57806385952454146102555780638cd4426d146102755780638da5cb5b1461029557600080fd5b8063313ce567116100c6578063313ce567146101925780634e71e0c8146101b45780635a3b7e42146101cb57806370a08231146101e757600080fd5b806306fdde03146100f8578063095ea7b31461012357806318160ddd1461015357806323b872dd14610172575b600080fd5b34801561010457600080fd5b5061010d610336565b60405161011a9190610bff565b60405180910390f35b34801561012f57600080fd5b5061014361013e366004610c35565b6103c8565b604051901515815260200161011a565b34801561015f57600080fd5b506003545b60405190815260200161011a565b34801561017e57600080fd5b5061014361018d366004610c5f565b6104a4565b34801561019e57600080fd5b5060025460405160ff909116815260200161011a565b3480156101c057600080fd5b506101c961061c565b005b3480156101d757600080fd5b5060405160df815260200161011a565b3480156101f357600080fd5b50610164610202366004610c9b565b6001600160a01b031660009081526007602052604090205490565b34801561022957600080fd5b5060055461023d906001600160a01b031681565b6040516001600160a01b03909116815260200161011a565b34801561026157600080fd5b506101c9610270366004610c9b565b61066f565b34801561028157600080fd5b506101c9610290366004610c35565b6106c0565b3480156102a157600080fd5b5060045461023d906001600160a01b031681565b3480156102c157600080fd5b5061010d610835565b6101436102d8366004610c35565b610844565b6101436102eb366004610cb6565b6109d6565b3480156102fc57600080fd5b5061016461030b366004610d3d565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b60606000805461034590610d70565b80601f016020809104026020016040519081016040528092919081815260200182805461037190610d70565b80156103be5780601f10610393576101008083540402835291602001916103be565b820191906000526020600020905b8154815290600101906020018083116103a157829003601f168201915b5050505050905090565b60006001600160a01b03831661043f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4552432d3232333a205370656e646572206572726f722e00000000000000000060448201526064015b60405180910390fd5b3360008181526006602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060015b92915050565b6001600160a01b0383166000908152600660209081526040808320338452909152812054821115610531576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4552432d3232333a20496e73756666696369656e7420616c6c6f77616e63652e6044820152606401610436565b6001600160a01b03841660009081526007602052604081208054849290610559908490610df2565b90915550506001600160a01b038416600090815260066020908152604080832033845290915281208054849290610591908490610df2565b90915550506001600160a01b038316600090815260076020526040812080548492906105be908490610e05565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161060a91815260200190565b60405180910390a35060019392505050565b6005546001600160a01b0316331461063357600080fd5b600554600480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03909216919091179055565b6004546001600160a01b0316331461068657600080fd5b600580547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6004546001600160a01b031633146106d757600080fd5b60408051336024820152604480820184905282518083039091018152606490910182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052905160009182916001600160a01b0386169161075d91610e18565b6000604051808303816000865af19150503d806000811461079a576040519150601f19603f3d011682016040523d82523d6000602084013e61079f565b606091505b50915091508180156107c95750805115806107c95750808060200190518101906107c99190610e34565b61082f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5472616e73666572206661696c656400000000000000000000000000000000006044820152606401610436565b50505050565b60606001805461034590610d70565b60003415610883576040516001600160a01b038416903480156108fc02916000818181858888f19350505050158015610881573d6000803e3d6000fd5b505b60408051808201825260048152600060208083018290523382526007905291909120546108b1908490610df2565b33600090815260076020526040808220929092556001600160a01b038616815220546108de908490610e05565b6001600160a01b038516600090815260076020526040902055833b1561098c576040517f8943ec020000000000000000000000000000000000000000000000000000000081526001600160a01b03851690638943ec029061094790339087908690600401610e56565b6020604051808303816000875af1158015610966573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098a9190610e87565b505b6040518381526001600160a01b0385169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35060019392505050565b60003415610a15576040516001600160a01b038616903480156108fc02916000818181858888f19350505050158015610a13573d6000803e3d6000fd5b505b33600090815260076020526040902054610a30908590610df2565b33600090815260076020526040808220929092556001600160a01b03871681522054610a5d908590610e05565b6001600160a01b038616600090815260076020526040902055843b15610b0d576040517f8943ec020000000000000000000000000000000000000000000000000000000081526001600160a01b03861690638943ec0290610ac8903390889088908890600401610f12565b6020604051808303816000875af1158015610ae7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0b9190610e87565b505b6040518481526001600160a01b0386169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a37f3ba9136826ac751de05d770d8d34fa4440ada49a5fb0e9aa1678aece66dad9768383604051610b7e929190610f45565b60405180910390a1506001949350505050565b60005b83811015610bac578181015183820152602001610b94565b50506000910152565b60008151808452610bcd816020860160208601610b91565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610c126020830184610bb5565b9392505050565b80356001600160a01b0381168114610c3057600080fd5b919050565b60008060408385031215610c4857600080fd5b610c5183610c19565b946020939093013593505050565b600080600060608486031215610c7457600080fd5b610c7d84610c19565b9250610c8b60208501610c19565b9150604084013590509250925092565b600060208284031215610cad57600080fd5b610c1282610c19565b60008060008060608587031215610ccc57600080fd5b610cd585610c19565b935060208501359250604085013567ffffffffffffffff80821115610cf957600080fd5b818701915087601f830112610d0d57600080fd5b813581811115610d1c57600080fd5b886020828501011115610d2e57600080fd5b95989497505060200194505050565b60008060408385031215610d5057600080fd5b610d5983610c19565b9150610d6760208401610c19565b90509250929050565b600181811c90821680610d8457607f821691505b602082108103610dbd577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561049e5761049e610dc3565b8082018082111561049e5761049e610dc3565b60008251610e2a818460208701610b91565b9190910192915050565b600060208284031215610e4657600080fd5b81518015158114610c1257600080fd5b6001600160a01b0384168152826020820152606060408201526000610e7e6060830184610bb5565b95945050505050565b600060208284031215610e9957600080fd5b81517fffffffff0000000000000000000000000000000000000000000000000000000081168114610c1257600080fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6001600160a01b0385168152836020820152606060408201526000610f3b606083018486610ec9565b9695505050505050565b602081526000610f59602083018486610ec9565b94935050505056fea2646970667358221220c0d2e12b0617b3d2b47238c3b68bf1d68ea84b1a2a21d357504ea1c90948c31c64736f6c63430008130033

Deployed Bytecode Sourcemap

2598:8892:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4003:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8894:316;;;;;;;;;;-1:-1:-1;8894:316:0;;;;;:::i;:::-;;:::i;:::-;;;1454:14:1;;1447:22;1429:41;;1417:2;1402:18;8894:316:0;1289:187:1;5097:96:0;;;;;;;;;;-1:-1:-1;5173:12:0;;5097:96;;;1627:25:1;;;1615:2;1600:18;5097:96:0;1481:177:1;9218:414:0;;;;;;;;;;-1:-1:-1;9218:414:0;;;;;:::i;:::-;;:::i;4943:88::-;;;;;;;;;;-1:-1:-1;5014:9:0;;4943:88;;5014:9;;;;2138:36:1;;2126:2;2111:18;4943:88:0;1996:184:1;11360:127:0;;;;;;;;;;;;;:::i;:::-;;5256:83;;;;;;;;;;-1:-1:-1;5256:83:0;;5328:3;2329:42:1;;2317:2;2302:18;5256:83:0;2185:192:1;5542:112:0;;;;;;;;;;-1:-1:-1;5542:112:0;;;;;:::i;:::-;-1:-1:-1;;;;;5630:16:0;5598:7;5630:16;;;:8;:16;;;;;;;5542:112;3065:29;;;;;;;;;;-1:-1:-1;3065:29:0;;;;-1:-1:-1;;;;;3065:29:0;;;;;;-1:-1:-1;;;;;2737:55:1;;;2719:74;;2707:2;2692:18;3065:29:0;2573:226:1;11224:128:0;;;;;;;;;;-1:-1:-1;11224:128:0;;;;;:::i;:::-;;:::i;10438:324::-;;;;;;;;;;-1:-1:-1;10438:324:0;;;;;:::i;:::-;;:::i;3024:34::-;;;;;;;;;;-1:-1:-1;3024:34:0;;;;-1:-1:-1;;;;;3024:34:0;;;4210:92;;;;;;;;;;;;;:::i;7247:513::-;;;;;;:::i;:::-;;:::i;6192:662::-;;;;;;:::i;:::-;;:::i;8743:143::-;;;;;;;;;;-1:-1:-1;8743:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;8851:18:0;;;8824:7;8851:18;;;:10;:18;;;;;;;;:27;;;;;;;;;;;;;8743:143;4003:88;4040:13;4078:5;4071:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4003:88;:::o;8894:316::-;8958:4;-1:-1:-1;;;;;9012:22:0;;9004:58;;;;;;;4451:2:1;9004:58:0;;;4433:21:1;4490:2;4470:18;;;4463:30;4529:25;4509:18;;;4502:53;4572:18;;9004:58:0;;;;;;;;;9086:10;9075:22;;;;:10;:22;;;;;;;;-1:-1:-1;;;;;9075:32:0;;;;;;;;;;;;:41;;;9132:38;1627:25:1;;;9075:32:0;;9086:10;9132:38;;1600:18:1;9132:38:0;;;;;;;-1:-1:-1;9198:4:0;8894:316;;;;;:::o;9218:414::-;-1:-1:-1;;;;;9332:17:0;;9297:4;9332:17;;;:10;:17;;;;;;;;9350:10;9332:29;;;;;;;;:39;-1:-1:-1;9332:39:0;9324:84;;;;;;;4803:2:1;9324:84:0;;;4785:21:1;;;4822:18;;;4815:30;4881:34;4861:18;;;4854:62;4933:18;;9324:84:0;4601:356:1;9324:84:0;-1:-1:-1;;;;;9429:15:0;;;;;;:8;:15;;;;;:25;;9448:6;;9429:15;:25;;9448:6;;9429:25;:::i;:::-;;;;-1:-1:-1;;;;;;;9465:17:0;;;;;;:10;:17;;;;;;;;9483:10;9465:29;;;;;;;:39;;9498:6;;9465:17;:39;;9498:6;;9465:39;:::i;:::-;;;;-1:-1:-1;;;;;;;9515:13:0;;;;;;:8;:13;;;;;:23;;9532:6;;9515:13;:23;;9532:6;;9515:23;:::i;:::-;;;;;;;;9580:3;-1:-1:-1;;;;;9564:28:0;9573:5;-1:-1:-1;;;;;9564:28:0;;9585:6;9564:28;;;;1627:25:1;;1615:2;1600:18;;1481:177;9564:28:0;;;;;;;;-1:-1:-1;9620:4:0;9218:414;;;;;:::o;11360:127::-;11433:13;;-1:-1:-1;;;;;11433:13:0;11419:10;:27;11411:36;;;;;;11466:13;;11458:5;:21;;;;-1:-1:-1;;;;;11466:13:0;;;11458:21;;;;;;11360:127::o;11224:128::-;11305:5;;-1:-1:-1;;;;;11305:5:0;11291:10;:19;11283:28;;;;;;11322:13;:22;;;;-1:-1:-1;;;;;11322:22:0;;;;;;;;;;11224:128::o;10438:324::-;10538:5;;-1:-1:-1;;;;;10538:5:0;10524:10;:19;10516:28;;;;;;10603:54;;;10638:10;10603:54;;;5588:74:1;5678:18;;;;5671:34;;;10603:54:0;;;;;;;;;;5561:18:1;;;;10603:54:0;;;;;;;;;;;;;10591:67;;-1:-1:-1;;;;;;;;;10591:11:0;;;:67;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10555:103;;;;10677:7;:57;;;;-1:-1:-1;10689:11:0;;:16;;:44;;;10720:4;10709:24;;;;;;;;;;;;:::i;:::-;10669:85;;;;;;;6492:2:1;10669:85:0;;;6474:21:1;6531:2;6511:18;;;6504:30;6570:17;6550:18;;;6543:45;6605:18;;10669:85:0;6290:339:1;10669:85:0;10505:257;;10438:324;;:::o;4210:92::-;4249:13;4287:7;4280:14;;;;;:::i;7247:513::-;7315:12;7348:9;:13;7345:50;;7363:32;;-1:-1:-1;;;;;7363:21:0;;;7385:9;7363:32;;;;;;;;;7385:9;7363:21;:32;;;;;;;;;;;;;;;;;;;;;7345:50;7406:35;;;;;;;;;;;:19;:35;;;;;;;7484:10;7475:20;;:8;:20;;;;;;;:29;;7498:6;;7475:29;:::i;:::-;7461:10;7452:20;;;;:8;:20;;;;;;:52;;;;-1:-1:-1;;;;;7531:13:0;;;;;;:22;;7547:6;;7531:22;:::i;:::-;-1:-1:-1;;;;;7515:13:0;;;;;;:8;:13;;;;;:38;2460:20;;2499:8;7564:118;;7607:63;;;;;-1:-1:-1;;;;;7607:35:0;;;;;:63;;7643:10;;7655:6;;7663;;7607:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7564:118;7697:33;;1627:25:1;;;-1:-1:-1;;;;;7697:33:0;;;7706:10;;7697:33;;1615:2:1;1600:18;7697:33:0;;;;;;;-1:-1:-1;7748:4:0;;7247:513;-1:-1:-1;;;7247:513:0:o;6192:662::-;6282:12;6454:9;:13;6451:50;;6469:32;;-1:-1:-1;;;;;6469:21:0;;;6491:9;6469:32;;;;;;;;;6491:9;6469:21;:32;;;;;;;;;;;;;;;;;;;;;6451:50;6544:10;6535:20;;;;:8;:20;;;;;;:29;;6558:6;;6535:29;:::i;:::-;6521:10;6512:20;;;;:8;:20;;;;;;:52;;;;-1:-1:-1;;;;;6591:13:0;;;;;;:22;;6607:6;;6591:22;:::i;:::-;-1:-1:-1;;;;;6575:13:0;;;;;;:8;:13;;;;;:38;2460:20;;2499:8;6624:117;;6667:62;;;;;-1:-1:-1;;;;;6667:35:0;;;;;:62;;6703:10;;6715:6;;6723:5;;;;6667:62;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6624:117;6756:33;;1627:25:1;;;-1:-1:-1;;;;;6756:33:0;;;6765:10;;6756:33;;1615:2:1;1600:18;6756:33:0;;;;;;;6805:19;6818:5;;6805:19;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;6842:4:0;6192:662;;;;;;:::o;14:250:1:-;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:1;238:16;;231:27;14:250::o;269:330::-;311:3;349:5;343:12;376:6;371:3;364:19;392:76;461:6;454:4;449:3;445:14;438:4;431:5;427:16;392:76;:::i;:::-;513:2;501:15;518:66;497:88;488:98;;;;588:4;484:109;;269:330;-1:-1:-1;;269:330:1:o;604:220::-;753:2;742:9;735:21;716:4;773:45;814:2;803:9;799:18;791:6;773:45;:::i;:::-;765:53;604:220;-1:-1:-1;;;604:220:1:o;829:196::-;897:20;;-1:-1:-1;;;;;946:54:1;;936:65;;926:93;;1015:1;1012;1005:12;926:93;829:196;;;:::o;1030:254::-;1098:6;1106;1159:2;1147:9;1138:7;1134:23;1130:32;1127:52;;;1175:1;1172;1165:12;1127:52;1198:29;1217:9;1198:29;:::i;:::-;1188:39;1274:2;1259:18;;;;1246:32;;-1:-1:-1;;;1030:254:1:o;1663:328::-;1740:6;1748;1756;1809:2;1797:9;1788:7;1784:23;1780:32;1777:52;;;1825:1;1822;1815:12;1777:52;1848:29;1867:9;1848:29;:::i;:::-;1838:39;;1896:38;1930:2;1919:9;1915:18;1896:38;:::i;:::-;1886:48;;1981:2;1970:9;1966:18;1953:32;1943:42;;1663:328;;;;;:::o;2382:186::-;2441:6;2494:2;2482:9;2473:7;2469:23;2465:32;2462:52;;;2510:1;2507;2500:12;2462:52;2533:29;2552:9;2533:29;:::i;2804:733::-;2892:6;2900;2908;2916;2969:2;2957:9;2948:7;2944:23;2940:32;2937:52;;;2985:1;2982;2975:12;2937:52;3008:29;3027:9;3008:29;:::i;:::-;2998:39;;3084:2;3073:9;3069:18;3056:32;3046:42;;3139:2;3128:9;3124:18;3111:32;3162:18;3203:2;3195:6;3192:14;3189:34;;;3219:1;3216;3209:12;3189:34;3257:6;3246:9;3242:22;3232:32;;3302:7;3295:4;3291:2;3287:13;3283:27;3273:55;;3324:1;3321;3314:12;3273:55;3364:2;3351:16;3390:2;3382:6;3379:14;3376:34;;;3406:1;3403;3396:12;3376:34;3451:7;3446:2;3437:6;3433:2;3429:15;3425:24;3422:37;3419:57;;;3472:1;3469;3462:12;3419:57;2804:733;;;;-1:-1:-1;;3503:2:1;3495:11;;-1:-1:-1;;;2804:733:1:o;3542:260::-;3610:6;3618;3671:2;3659:9;3650:7;3646:23;3642:32;3639:52;;;3687:1;3684;3677:12;3639:52;3710:29;3729:9;3710:29;:::i;:::-;3700:39;;3758:38;3792:2;3781:9;3777:18;3758:38;:::i;:::-;3748:48;;3542:260;;;;;:::o;3807:437::-;3886:1;3882:12;;;;3929;;;3950:61;;4004:4;3996:6;3992:17;3982:27;;3950:61;4057:2;4049:6;4046:14;4026:18;4023:38;4020:218;;4094:77;4091:1;4084:88;4195:4;4192:1;4185:15;4223:4;4220:1;4213:15;4020:218;;3807:437;;;:::o;4962:184::-;5014:77;5011:1;5004:88;5111:4;5108:1;5101:15;5135:4;5132:1;5125:15;5151:128;5218:9;;;5239:11;;;5236:37;;;5253:18;;:::i;5284:125::-;5349:9;;;5370:10;;;5367:36;;;5383:18;;:::i;5716:287::-;5845:3;5883:6;5877:13;5899:66;5958:6;5953:3;5946:4;5938:6;5934:17;5899:66;:::i;:::-;5981:16;;;;;5716:287;-1:-1:-1;;5716:287:1:o;6008:277::-;6075:6;6128:2;6116:9;6107:7;6103:23;6099:32;6096:52;;;6144:1;6141;6134:12;6096:52;6176:9;6170:16;6229:5;6222:13;6215:21;6208:5;6205:32;6195:60;;6251:1;6248;6241:12;6634:409;-1:-1:-1;;;;;6841:6:1;6837:55;6826:9;6819:74;6929:6;6924:2;6913:9;6909:18;6902:34;6972:2;6967;6956:9;6952:18;6945:30;6800:4;6992:45;7033:2;7022:9;7018:18;7010:6;6992:45;:::i;:::-;6984:53;6634:409;-1:-1:-1;;;;;6634:409:1:o;7048:336::-;7117:6;7170:2;7158:9;7149:7;7145:23;7141:32;7138:52;;;7186:1;7183;7176:12;7138:52;7218:9;7212:16;7268:66;7261:5;7257:78;7250:5;7247:89;7237:117;;7350:1;7347;7340:12;7389:325;7477:6;7472:3;7465:19;7529:6;7522:5;7515:4;7510:3;7506:14;7493:43;;7581:1;7574:4;7565:6;7560:3;7556:16;7552:27;7545:38;7447:3;7703:4;7633:66;7628:2;7620:6;7616:15;7612:88;7607:3;7603:98;7599:109;7592:116;;7389:325;;;;:::o;7719:435::-;-1:-1:-1;;;;;7936:6:1;7932:55;7921:9;7914:74;8024:6;8019:2;8008:9;8004:18;7997:34;8067:2;8062;8051:9;8047:18;8040:30;7895:4;8087:61;8144:2;8133:9;8129:18;8121:6;8113;8087:61;:::i;:::-;8079:69;7719:435;-1:-1:-1;;;;;;7719:435:1:o;8159:244::-;8316:2;8305:9;8298:21;8279:4;8336:61;8393:2;8382:9;8378:18;8370:6;8362;8336:61;:::i;:::-;8328:69;8159:244;-1:-1:-1;;;;8159:244:1:o

Swarm Source

ipfs://c0d2e12b0617b3d2b47238c3b68bf1d68ea84b1a2a21d357504ea1c90948c31c

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.