Sonic Blaze Testnet

Contract

0xc3D56e7737f8939AEfe51Ee9076Cd256CEa6bcd9

Overview

S Balance

Sonic Blaze LogoSonic Blaze LogoSonic Blaze Logo0 S

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

Please try again later

Parent Transaction Hash Block From To
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DappToken

Compiler Version
v0.8.28+commit.7893614a

Optimization Enabled:
Yes with 1000 runs

Other Settings:
paris EvmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 1 : SonicToken.sol
pragma solidity 0.8.28;

// SPDX-License-Identifier: Unlicensed

contract DappToken {
    string public name = "Sonic Test Token";
    string public symbol = "STT";
    string public standard = "Sonic Test Token v1.0";
    uint256 private _totalSupply;
    uint256 public decimals = 18;

    address public immutable owner;
    address public liquidityPool;

    // Distribution tracking
    uint256 public taxPool;
    uint256 public lastDistribution;
    uint256 public constant DISTRIBUTION_INTERVAL = 5 minutes;
    uint256 public reflectionFee = 5; // Default 5% fee

    // Reflection system
    uint256 private constant POINT_MULTIPLIER = 10 ** 18;
    uint256 private totalDividendPoints;
    uint256 private unclaimedDividends;
    uint256 private blackListAmount;

    // Add new variables for tax distribution
    uint256 private constant TAX_DENOMINATOR = 100;
    uint256 private lastTaxDistribution;

    struct Account {
        uint256 balance;
        uint256 lastDividendPoints;
    }

    // State variables
    mapping(address => Account) public accounts;
    mapping(address => mapping(address => uint256)) public allowance;
    mapping(address => bool) private _isExcluded;
    mapping(address => bool) private isBlackListed;

    // Native token distribution tracking
    uint256 private nativeTokenPool;

    // Holder tracking
    address[] private holders;
    mapping(address => bool) private isHolder;

    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
    event RewardsDistributed(uint256 amount);
    event LiquidityPoolSet(address indexed newPool);
    event BlacklistUpdated(address indexed user, bool isBlacklisted);
    event NativeTokensReceived(uint256 amount);
    event NativeTokensDistributed(address indexed holder, uint256 amount);

    modifier onlyOwner() {
        require(msg.sender == owner, "Only owner can call");
        _;
    }

    modifier updateAccount(address account) {
        uint256 owing = dividendsOwing(account);
        if (owing > 0) {
            unclaimedDividends -= owing;
            accounts[account].balance += owing;
        }
        accounts[account].lastDividendPoints = totalDividendPoints;
        _;
    }

    constructor() {
        owner = msg.sender;
        _totalSupply = 1000000000000000;
        accounts[msg.sender].balance = _totalSupply;
        _isExcluded[msg.sender] = true;
        lastDistribution = block.timestamp;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    function totalSupply() public view returns (uint256) {
        return _totalSupply;
    }

    function _transfer(address _from, address _to, uint256 _value) 
        internal 
        updateAccount(_from) 
        updateAccount(_to) 
    {
        // Determine transaction type
        bool isBuy = _from == liquidityPool;
        bool isSell = _to == liquidityPool;

        uint256 currentFee;
        // Apply 5% tax only on buy/sell transactions
        if (_isExcluded[_from]) {
            currentFee = 0;
        } else {
            currentFee = (isBuy || isSell) ? reflectionFee : 0;
        }

        uint256 rAmount = (_value * currentFee) / TAX_DENOMINATOR;
        uint256 amount = _value - rAmount;

        // Update balances
        accounts[_from].balance -= _value;
        accounts[_to].balance += amount;

        // Accumulate taxes and update dividend points
        if (rAmount > 0) {
            // Update dividend points when tax is collected
            uint256 totalCirculating = _totalSupply - blackListAmount;
            if (totalCirculating > 0) {
                totalDividendPoints += (rAmount * POINT_MULTIPLIER) / totalCirculating;
                unclaimedDividends += rAmount;
            }
        }

        // Update blacklist tracking
        if (isBlackListed[_from]) {
            blackListAmount -= _value;
        }
        if (isBlackListed[_to]) {
            blackListAmount += amount;
        }

        // Track holders for native token distribution
        if (accounts[_to].balance == 0 && amount > 0) {
            _addHolder(_to);
        }

        emit Transfer(_from, _to, amount);
    }

    // Add this new function to set liquidity pool address
    function setLiquidityPool(address _pool) external onlyOwner {
        require(_pool != address(0), "Invalid pool address");
        liquidityPool = _pool;
        _isExcluded[_pool] = true;
        emit LiquidityPoolSet(_pool);
    }

    // Modified distribution function with time-based triggering
    function distributeRewards() external {
        require(
            block.timestamp >= lastDistribution + DISTRIBUTION_INTERVAL,
            "Must wait 5 minutes between distributions"
        );
        require(unclaimedDividends > 0 || nativeTokenPool > 0, "No rewards to distribute");

        // Distribute token rewards first
        if (unclaimedDividends > 0) {
            _distributeTaxedTokens();
        }

        // Then distribute native tokens
        if (nativeTokenPool > 0) {
            distributeNativeTokens();
        }

        lastDistribution = block.timestamp;
    }

    function _distributeTaxedTokens() private {
        uint256 totalCirculating = _totalSupply - blackListAmount;
        require(totalCirculating > 0, "No eligible holders");
        
        for (uint256 i = 0; i < holders.length; i++) {
            address holder = holders[i];
            if (!isBlackListed[holder] && !_isExcluded[holder]) {
                uint256 owing = dividendsOwing(holder);
                if (owing > 0) {
                    accounts[holder].balance += owing;
                    unclaimedDividends -= owing;
                    emit RewardsDistributed(owing);
                }
            }
        }
    }

    function distributeNativeTokens() private {
        uint256 totalCirculating = _totalSupply - blackListAmount;
        require(totalCirculating > 0, "No eligible holders");
        
        for (uint256 i = 0; i < holders.length; i++) {
            address holder = holders[i];
            if (!isBlackListed[holder] && !_isExcluded[holder]) {
                uint256 share = (accounts[holder].balance * nativeTokenPool) / totalCirculating;
                if (share > 0) {
                    (bool success, ) = holder.call{value: share}("");
                    require(success, "Native token transfer failed");
                    emit NativeTokensDistributed(holder, share);
                }
            }
        }
        nativeTokenPool = 0;
    }

    // Keep existing functions below (unchanged from original except for context) */
    function transfer(address _to, uint256 _value) public returns (bool) {
        require(accounts[msg.sender].balance >= _value);
        _transfer(msg.sender, _to, _value);
        return true;
    }

    function approve(address _spender, uint256 _value) public returns (bool) {
        allowance[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
        require(_value <= accounts[_from].balance);
        require(_value <= allowance[_from][msg.sender]);
        allowance[_from][msg.sender] -= _value;
        _transfer(_from, _to, _value);
        return true;
    }

    function dividendsOwing(address account) internal view returns (uint256) {
        if (isBlackListed[account]) return 0;
        uint256 newDividendPoints = totalDividendPoints - accounts[account].lastDividendPoints;
        return (accounts[account].balance * newDividendPoints) / POINT_MULTIPLIER;
    }

    function balanceOf(address account) public view returns (uint256) {
        uint256 owing = dividendsOwing(account);
        return accounts[account].balance + owing;
    }

    function mint(address recipient, uint256 amount) public onlyOwner updateAccount(recipient) {
        accounts[recipient].balance += amount;
        _totalSupply += amount;
    }

    function blackList(address user) public onlyOwner updateAccount(user) {
        require(user != address(0), "Invalid address");
        require(user != owner, "Cannot blacklist owner");
        if (!isBlackListed[user]) {
            isBlackListed[user] = true;
            blackListAmount += accounts[user].balance;
            emit BlacklistUpdated(user, true);
        }
    }

    function unBlackList(address user) public onlyOwner updateAccount(user) {
        require(user != address(0), "Invalid address");
        if (isBlackListed[user]) {
            isBlackListed[user] = false;
            blackListAmount -= accounts[user].balance;
            emit BlacklistUpdated(user, false);
        }
    }

    // Add function to update reflection fee
    function setReflectionFee(uint256 _fee) external onlyOwner {
        require(_fee <= 10, "Fee cannot exceed 10%");
        reflectionFee = _fee;
    }

    function _addHolder(address account) private {
        if (!isHolder[account] && account != address(0) && account != liquidityPool) {
            holders.push(account);
            isHolder[account] = true;
        }
    }

    // Function to receive native tokens
    receive() external payable {
        nativeTokenPool += msg.value;
        emit NativeTokensReceived(msg.value);
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 1000
  },
  "viaIR": true,
  "evmVersion": "paris",
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"bool","name":"isBlacklisted","type":"bool"}],"name":"BlacklistUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newPool","type":"address"}],"name":"LiquidityPoolSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"holder","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"NativeTokensDistributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"NativeTokensReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RewardsDistributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DISTRIBUTION_INTERVAL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"accounts","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"lastDividendPoints","type":"uint256"}],"stateMutability":"view","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":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"blackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"distributeRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastDistribution","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityPool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reflectionFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pool","type":"address"}],"name":"setLiquidityPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setReflectionFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"standard","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"","type":"bool"}],"stateMutability":"nonpayable","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"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"unBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a0604052346102375761001460005461023c565b601f81116101ee575b507f536f6e6963205465737420546f6b656e0000000000000000000000000000002060005560015461004e9061023c565b601f81116101a4575b5060066214d51560ea1b016001556002546100719061023c565b601f811161015a575b602a7f536f6e6963205465737420546f6b656e2076312e30000000000000000000000001600255601260045560056008553360805266038d7ea4c6800060035533600052600d60205266038d7ea4c6800060406000205533600052600f6020526040600020600160ff198254161790554260075560035460405190815260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203393a36040516118fe90816102778239608051818181610177015281816102720152818161087701528181610dcd01528181610f5f015261158e0152f35b6002600052601f0160051c7f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace908101905b818110610198575061007a565b6000815560010161018b565b6001600052601f0160051c7fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6908101905b8181106101e25750610057565b600081556001016101d5565b60008052601f0160051c7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563908101905b81811061022b575061001d565b6000815560010161021e565b600080fd5b90600182811c9216801561026c575b602083101461025657565b634e487b7160e01b600052602260045260246000fd5b91607f169161024b56fe60806040526004361015610054575b361561001957600080fd5b61002534601154611759565b6011557f5aec85729d47fe3d11135c009c0be2966cc78361a7305e758980843af6deeee06020604051348152a1005b60003560e01c8063018770201461156757806306fdde03146114c957806308b26b75146114ac578063095ea7b31461143057806318160ddd1461141257806323b872dd14611034578063313ce5671461101657806340c10f1914610f325780634838d16514610daa5780635a3b7e4214610ceb5780635e5c06e214610ca8578063665a11ca14610c815780636f4a2cd01461090457806370a08231146108b957806383ad79941461089b5780638da5cb5b1461085757806395d89b411461074c578063a717639c1461072e578063a9059cbb146103a3578063b12cbc7614610385578063d40b0dd41461024c578063dd62ed3e146101f45763e547be690361000e57346101ef5760203660031901126101ef5760043561019e6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163314611701565b600a81116101ab57600855005b606460405162461bcd60e51b815260206004820152601560248201527f4665652063616e6e6f74206578636565642031302500000000000000000000006044820152fd5b600080fd5b346101ef5760403660031901126101ef5761020d61166a565b6001600160a01b0361021d611680565b9116600052600e6020526001600160a01b03604060002091166000526020526020604060002054604051908152f35b346101ef5760203660031901126101ef5761026561166a565b6102996001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163314611701565b6102a2816117e4565b8061034c575b506001600160a01b0360095491169081600052600d6020526001604060002001556102d4811515611766565b80600052601060205260ff604060002054166102ec57005b806000526010602052604060002060ff19815416905580600052600d60205261031c604060002054600b5461174c565b600b557f6a12b3df6cba4203bd7fd06b816789f87de8c594299aed5717ae070fac781bac602060405160008152a2005b61035881600a5461174c565b600a556001600160a01b038216600052600d60205261037d6040600020918254611759565b9055816102a8565b346101ef5760003660031901126101ef576020600654604051908152f35b346101ef5760403660031901126101ef576103bc61166a565b60243533600052600d60205280604060002054106101ef576103dd336117e4565b806106fe575b5060095433600052600d602052600160406000200155610402826117e4565b806106c5575b506001600160a01b0360095492169182600052600d6020526001604060002001556001600160a01b03600554168033149033600052600f60205260ff60406000205416600014610695575050606461046260005b836117b1565b049061046e828261174c565b9133600052600d602052604060002061048883825461174c565b905583600052600d60205260406000206104a3848254611759565b90558015908115610617575b505033600052601060205260ff60406000205416610602575b5081600052601060205260ff604060002054166105ee575b81600052600d60205260406000205415806105e5575b610532575b6040519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203392a3602060405160018152f35b81600052601360205260ff6040600020541615806105dc575b806105c7575b156104fb57601254680100000000000000008110156105b15780600161057a9201601255611897565b81549060031b906001600160a01b0385831b921b19161790558160005260136020526040600020600160ff198254161790556104fb565b634e487b7160e01b600052604160045260246000fd5b506001600160a01b0360055416821415610551565b5081151561054b565b508015156104f6565b6105fa81600b54611759565b600b556104e0565b61060e90600b5461174c565b600b55826104c8565b610626600354600b549061174c565b80610632575b506104af565b670de0b6b3a7640000820292828404670de0b6b3a764000014171561067f5761066161066991610674946117c4565b600954611759565b600955600a54611759565b600a5583808061062c565b634e487b7160e01b600052601160045260246000fd5b81156106bb575b50156106af57606461046260085461045c565b6064610462600061045c565b905082148361069c565b6106d181600a5461174c565b600a556001600160a01b038316600052600d6020526106f66040600020918254611759565b905582610408565b61070a81600a5461174c565b600a5533600052600d6020526107266040600020918254611759565b9055826103e3565b346101ef5760003660031901126101ef576020600754604051908152f35b346101ef5760003660031901126101ef5760006040519080600154908160011c9160018116801561084d575b6020841081146108395783865290811561081257506001146107b5575b6107b1846107a581860382611696565b604051918291826116b8565b0390f35b600181527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b8082106107f8575090915081016020016107a582610795565b9192600181602092548385880101520191019092916107df565b60ff191660208087019190915292151560051b850190920192506107a59150839050610795565b602483634e487b7160e01b81526022600452fd5b92607f1692610778565b346101ef5760003660031901126101ef5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101ef5760003660031901126101ef576020600854604051908152f35b346101ef5760203660031901126101ef5760206108fc6108d761166a565b6001600160a01b036108e8826117e4565b9116600052600d8352604060002054611759565b604051908152f35b346101ef5760003660031901126101ef5760075461012c810180911161067f574210610c1757600a541580158091610c0c575b15610bc857610ad1575b60115461094f575b42600755005b61095e600354600b549061174c565b61096981151561184c565b60005b601254811015610ac5576001600160a01b0361098782611897565b90549060031b1c169081600052601060205260ff604060002054161580610aac575b6109b8575b600191500161096c565b81600052600d6020526109dc836109d7604060002054601154906117b1565b6117c4565b91826109e9575b506109ae565b600080808086855af13d15610aa7573d67ffffffffffffffff81116105b15760405190610a20601f8201601f191660200183611696565b8152600060203d92013e5b15610a63577f705bc0644f50ea1f4567636fcdb718f809420db4e20c449b51734e8b55c964eb6020600194604051908152a2836109e3565b606460405162461bcd60e51b815260206004820152601c60248201527f4e617469766520746f6b656e207472616e73666572206661696c6564000000006044820152fd5b610a2b565b5081600052600f60205260ff60406000205416156109a9565b50506000601155610949565b610aea610ae3600354600b549061174c565b151561184c565b60005b601254811015610bc257806001600160a01b03610b0b600193611897565b90549060031b1c1680600052601060205260ff604060002054161580610ba9575b610b38575b5001610aed565b610b41816117e4565b9081610b4e575b50610b31565b7f6d1c76d614228b523baa4dcd9539e2c713b54ff4ab3ff2d1627e7f6cd32be44291602091600052600d82526040600020610b8a828254611759565b9055610b9881600a5461174c565b600a55604051908152a18280610b48565b5080600052600f60205260ff6040600020541615610b2c565b50610941565b606460405162461bcd60e51b815260206004820152601860248201527f4e6f207265776172647320746f206469737472696275746500000000000000006044820152fd5b506011541515610937565b608460405162461bcd60e51b815260206004820152602960248201527f4d75737420776169742035206d696e75746573206265747765656e206469737460448201527f7269627574696f6e7300000000000000000000000000000000000000000000006064820152fd5b346101ef5760003660031901126101ef5760206001600160a01b0360055416604051908152f35b346101ef5760203660031901126101ef576001600160a01b03610cc961166a565b16600052600d6020526040806000206001815491015482519182526020820152f35b346101ef5760003660031901126101ef5760006040519080600254908160011c91600181168015610da0575b602084108114610839578386529081156108125750600114610d43576107b1846107a581860382611696565b600281527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace939250905b808210610d86575090915081016020016107a582610795565b919260018160209254838588010152019101909291610d6d565b92607f1692610d17565b346101ef5760203660031901126101ef57610dc361166a565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016610df8813314611701565b610e01826117e4565b80610ef9575b506001600160a01b0360095492169182600052600d602052600160406000200155610e33821515611766565b8114610eb55780600052601060205260ff6040600020541615610e5257005b8060005260106020526040600020600160ff1982541617905580600052600d602052610e85604060002054600b54611759565b600b557f6a12b3df6cba4203bd7fd06b816789f87de8c594299aed5717ae070fac781bac602060405160018152a2005b606460405162461bcd60e51b815260206004820152601660248201527f43616e6e6f7420626c61636b6c697374206f776e6572000000000000000000006044820152fd5b610f0581600a5461174c565b600a556001600160a01b038316600052600d602052610f2a6040600020918254611759565b905582610e07565b346101ef5760403660031901126101ef57610fd8610f4e61166a565b60243590610f866001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163314611701565b610f8f816117e4565b80610fdd575b506001600160a01b0360095491169081600052600d602052600160406000200155600052600d6020526040600020610fce828254611759565b9055600354611759565b600355005b610fe981600a5461174c565b600a556001600160a01b038216600052600d60205261100e6040600020918254611759565b905583610f95565b346101ef5760003660031901126101ef576020600454604051908152f35b346101ef5760603660031901126101ef5761104d61166a565b611055611680565b906044356001600160a01b0382169182600052600d60205260406000205482116101ef5782600052600e60205260406000206001600160a01b03331660005260205260406000205482116101ef576110dc9083600052600e60205260406000206001600160a01b03331660005260205260406000206110d584825461174c565b90556117e4565b806113e2575b5060095482600052600d602052600160406000200155611101836117e4565b806113a9575b506001600160a01b0360095493169283600052600d6020526001604060002001556001600160a01b03600554168083149083600052600f60205260ff6040600020541660001461137957505060646111606000836117b1565b049061116c828261174c565b9183600052600d602052604060002061118683825461174c565b905584600052600d60205260406000206111a1848254611759565b90558015908115611324575b505082600052601060205260ff6040600020541661130f575b5082600052601060205260ff604060002054166112fb575b82600052600d60205260406000205415806112f2575b61122f575b60207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91604051908152a3602060405160018152f35b82600052601360205260ff6040600020541615806112e9575b806112d4575b156111f957601254680100000000000000008110156105b1577fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9161129b82600160209401601255611897565b81549060031b906001600160a01b0388831b921b191617905584600052601382526040600020600160ff198254161790559150506111f9565b506001600160a01b036005541683141561124e565b50821515611248565b508015156111f4565b61130781600b54611759565b600b556111de565b61131b90600b5461174c565b600b55836111c6565b611333600354600b549061174c565b8061133f575b506111ad565b670de0b6b3a7640000820292828404670de0b6b3a764000014171561067f576106616106699161136e946117c4565b600a55848080611339565b811561139f575b501561139357606461116060085461045c565b6064611160600061045c565b9050831484611380565b6113b581600a5461174c565b600a556001600160a01b038416600052600d6020526113da6040600020918254611759565b905583611107565b6113ee81600a5461174c565b600a5582600052600d60205261140a6040600020918254611759565b9055836110e2565b346101ef5760003660031901126101ef576020600354604051908152f35b346101ef5760403660031901126101ef5761144961166a565b6001600160a01b036024359133600052600e60205260406000208282166000526020528260406000205560405192835216907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b346101ef5760003660031901126101ef57602060405161012c8152f35b346101ef5760003660031901126101ef5760405160008054600181811c9183918116801561155d575b60208410811461083957838652908115610812575060011461151e576107b1846107a581860382611696565b80805260208120939250905b808210611543575090915081016020016107a582610795565b91926001816020925483858801015201910190929161152a565b92607f16926114f2565b346101ef5760203660031901126101ef576001600160a01b0361158861166a565b6115b5827f0000000000000000000000000000000000000000000000000000000000000000163314611701565b16801561162657807fffffffffffffffffffffffff0000000000000000000000000000000000000000600554161760055580600052600f6020526040600020600160ff198254161790557fe57f71636571365571c0eaeaeb54e1d9e0065804f056a57a2a29448524f7d18a600080a2005b606460405162461bcd60e51b815260206004820152601460248201527f496e76616c696420706f6f6c20616464726573730000000000000000000000006044820152fd5b600435906001600160a01b03821682036101ef57565b602435906001600160a01b03821682036101ef57565b90601f8019910116810190811067ffffffffffffffff8211176105b157604052565b91909160208152825180602083015260005b8181106116eb575060409293506000838284010152601f8019910116010190565b80602080928701015160408286010152016116ca565b1561170857565b606460405162461bcd60e51b815260206004820152601360248201527f4f6e6c79206f776e65722063616e2063616c6c000000000000000000000000006044820152fd5b9190820391821161067f57565b9190820180921161067f57565b1561176d57565b606460405162461bcd60e51b815260206004820152600f60248201527f496e76616c6964206164647265737300000000000000000000000000000000006044820152fd5b8181029291811591840414171561067f57565b81156117ce570490565b634e487b7160e01b600052601260045260246000fd5b6001600160a01b031680600052601060205260ff6040600020541661184657611842670de0b6b3a76400009161182e60095482600052600d6020526001604060002001549061174c565b90600052600d6020526040600020546117b1565b0490565b50600090565b1561185357565b606460405162461bcd60e51b815260206004820152601360248201527f4e6f20656c696769626c6520686f6c64657273000000000000000000000000006044820152fd5b6012548110156118b257601260005260206000200190600090565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220ad53d0a31ff673326ad573ee62bfd5a6a67b2252e416ba865ac0edb1d2d4813b64736f6c634300081c0033

Deployed Bytecode

0x60806040526004361015610054575b361561001957600080fd5b61002534601154611759565b6011557f5aec85729d47fe3d11135c009c0be2966cc78361a7305e758980843af6deeee06020604051348152a1005b60003560e01c8063018770201461156757806306fdde03146114c957806308b26b75146114ac578063095ea7b31461143057806318160ddd1461141257806323b872dd14611034578063313ce5671461101657806340c10f1914610f325780634838d16514610daa5780635a3b7e4214610ceb5780635e5c06e214610ca8578063665a11ca14610c815780636f4a2cd01461090457806370a08231146108b957806383ad79941461089b5780638da5cb5b1461085757806395d89b411461074c578063a717639c1461072e578063a9059cbb146103a3578063b12cbc7614610385578063d40b0dd41461024c578063dd62ed3e146101f45763e547be690361000e57346101ef5760203660031901126101ef5760043561019e6001600160a01b037f00000000000000000000000007bde47a1bceb4932bb9fe295a639f000a255bde163314611701565b600a81116101ab57600855005b606460405162461bcd60e51b815260206004820152601560248201527f4665652063616e6e6f74206578636565642031302500000000000000000000006044820152fd5b600080fd5b346101ef5760403660031901126101ef5761020d61166a565b6001600160a01b0361021d611680565b9116600052600e6020526001600160a01b03604060002091166000526020526020604060002054604051908152f35b346101ef5760203660031901126101ef5761026561166a565b6102996001600160a01b037f00000000000000000000000007bde47a1bceb4932bb9fe295a639f000a255bde163314611701565b6102a2816117e4565b8061034c575b506001600160a01b0360095491169081600052600d6020526001604060002001556102d4811515611766565b80600052601060205260ff604060002054166102ec57005b806000526010602052604060002060ff19815416905580600052600d60205261031c604060002054600b5461174c565b600b557f6a12b3df6cba4203bd7fd06b816789f87de8c594299aed5717ae070fac781bac602060405160008152a2005b61035881600a5461174c565b600a556001600160a01b038216600052600d60205261037d6040600020918254611759565b9055816102a8565b346101ef5760003660031901126101ef576020600654604051908152f35b346101ef5760403660031901126101ef576103bc61166a565b60243533600052600d60205280604060002054106101ef576103dd336117e4565b806106fe575b5060095433600052600d602052600160406000200155610402826117e4565b806106c5575b506001600160a01b0360095492169182600052600d6020526001604060002001556001600160a01b03600554168033149033600052600f60205260ff60406000205416600014610695575050606461046260005b836117b1565b049061046e828261174c565b9133600052600d602052604060002061048883825461174c565b905583600052600d60205260406000206104a3848254611759565b90558015908115610617575b505033600052601060205260ff60406000205416610602575b5081600052601060205260ff604060002054166105ee575b81600052600d60205260406000205415806105e5575b610532575b6040519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203392a3602060405160018152f35b81600052601360205260ff6040600020541615806105dc575b806105c7575b156104fb57601254680100000000000000008110156105b15780600161057a9201601255611897565b81549060031b906001600160a01b0385831b921b19161790558160005260136020526040600020600160ff198254161790556104fb565b634e487b7160e01b600052604160045260246000fd5b506001600160a01b0360055416821415610551565b5081151561054b565b508015156104f6565b6105fa81600b54611759565b600b556104e0565b61060e90600b5461174c565b600b55826104c8565b610626600354600b549061174c565b80610632575b506104af565b670de0b6b3a7640000820292828404670de0b6b3a764000014171561067f5761066161066991610674946117c4565b600954611759565b600955600a54611759565b600a5583808061062c565b634e487b7160e01b600052601160045260246000fd5b81156106bb575b50156106af57606461046260085461045c565b6064610462600061045c565b905082148361069c565b6106d181600a5461174c565b600a556001600160a01b038316600052600d6020526106f66040600020918254611759565b905582610408565b61070a81600a5461174c565b600a5533600052600d6020526107266040600020918254611759565b9055826103e3565b346101ef5760003660031901126101ef576020600754604051908152f35b346101ef5760003660031901126101ef5760006040519080600154908160011c9160018116801561084d575b6020841081146108395783865290811561081257506001146107b5575b6107b1846107a581860382611696565b604051918291826116b8565b0390f35b600181527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b8082106107f8575090915081016020016107a582610795565b9192600181602092548385880101520191019092916107df565b60ff191660208087019190915292151560051b850190920192506107a59150839050610795565b602483634e487b7160e01b81526022600452fd5b92607f1692610778565b346101ef5760003660031901126101ef5760206040516001600160a01b037f00000000000000000000000007bde47a1bceb4932bb9fe295a639f000a255bde168152f35b346101ef5760003660031901126101ef576020600854604051908152f35b346101ef5760203660031901126101ef5760206108fc6108d761166a565b6001600160a01b036108e8826117e4565b9116600052600d8352604060002054611759565b604051908152f35b346101ef5760003660031901126101ef5760075461012c810180911161067f574210610c1757600a541580158091610c0c575b15610bc857610ad1575b60115461094f575b42600755005b61095e600354600b549061174c565b61096981151561184c565b60005b601254811015610ac5576001600160a01b0361098782611897565b90549060031b1c169081600052601060205260ff604060002054161580610aac575b6109b8575b600191500161096c565b81600052600d6020526109dc836109d7604060002054601154906117b1565b6117c4565b91826109e9575b506109ae565b600080808086855af13d15610aa7573d67ffffffffffffffff81116105b15760405190610a20601f8201601f191660200183611696565b8152600060203d92013e5b15610a63577f705bc0644f50ea1f4567636fcdb718f809420db4e20c449b51734e8b55c964eb6020600194604051908152a2836109e3565b606460405162461bcd60e51b815260206004820152601c60248201527f4e617469766520746f6b656e207472616e73666572206661696c6564000000006044820152fd5b610a2b565b5081600052600f60205260ff60406000205416156109a9565b50506000601155610949565b610aea610ae3600354600b549061174c565b151561184c565b60005b601254811015610bc257806001600160a01b03610b0b600193611897565b90549060031b1c1680600052601060205260ff604060002054161580610ba9575b610b38575b5001610aed565b610b41816117e4565b9081610b4e575b50610b31565b7f6d1c76d614228b523baa4dcd9539e2c713b54ff4ab3ff2d1627e7f6cd32be44291602091600052600d82526040600020610b8a828254611759565b9055610b9881600a5461174c565b600a55604051908152a18280610b48565b5080600052600f60205260ff6040600020541615610b2c565b50610941565b606460405162461bcd60e51b815260206004820152601860248201527f4e6f207265776172647320746f206469737472696275746500000000000000006044820152fd5b506011541515610937565b608460405162461bcd60e51b815260206004820152602960248201527f4d75737420776169742035206d696e75746573206265747765656e206469737460448201527f7269627574696f6e7300000000000000000000000000000000000000000000006064820152fd5b346101ef5760003660031901126101ef5760206001600160a01b0360055416604051908152f35b346101ef5760203660031901126101ef576001600160a01b03610cc961166a565b16600052600d6020526040806000206001815491015482519182526020820152f35b346101ef5760003660031901126101ef5760006040519080600254908160011c91600181168015610da0575b602084108114610839578386529081156108125750600114610d43576107b1846107a581860382611696565b600281527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace939250905b808210610d86575090915081016020016107a582610795565b919260018160209254838588010152019101909291610d6d565b92607f1692610d17565b346101ef5760203660031901126101ef57610dc361166a565b6001600160a01b037f00000000000000000000000007bde47a1bceb4932bb9fe295a639f000a255bde16610df8813314611701565b610e01826117e4565b80610ef9575b506001600160a01b0360095492169182600052600d602052600160406000200155610e33821515611766565b8114610eb55780600052601060205260ff6040600020541615610e5257005b8060005260106020526040600020600160ff1982541617905580600052600d602052610e85604060002054600b54611759565b600b557f6a12b3df6cba4203bd7fd06b816789f87de8c594299aed5717ae070fac781bac602060405160018152a2005b606460405162461bcd60e51b815260206004820152601660248201527f43616e6e6f7420626c61636b6c697374206f776e6572000000000000000000006044820152fd5b610f0581600a5461174c565b600a556001600160a01b038316600052600d602052610f2a6040600020918254611759565b905582610e07565b346101ef5760403660031901126101ef57610fd8610f4e61166a565b60243590610f866001600160a01b037f00000000000000000000000007bde47a1bceb4932bb9fe295a639f000a255bde163314611701565b610f8f816117e4565b80610fdd575b506001600160a01b0360095491169081600052600d602052600160406000200155600052600d6020526040600020610fce828254611759565b9055600354611759565b600355005b610fe981600a5461174c565b600a556001600160a01b038216600052600d60205261100e6040600020918254611759565b905583610f95565b346101ef5760003660031901126101ef576020600454604051908152f35b346101ef5760603660031901126101ef5761104d61166a565b611055611680565b906044356001600160a01b0382169182600052600d60205260406000205482116101ef5782600052600e60205260406000206001600160a01b03331660005260205260406000205482116101ef576110dc9083600052600e60205260406000206001600160a01b03331660005260205260406000206110d584825461174c565b90556117e4565b806113e2575b5060095482600052600d602052600160406000200155611101836117e4565b806113a9575b506001600160a01b0360095493169283600052600d6020526001604060002001556001600160a01b03600554168083149083600052600f60205260ff6040600020541660001461137957505060646111606000836117b1565b049061116c828261174c565b9183600052600d602052604060002061118683825461174c565b905584600052600d60205260406000206111a1848254611759565b90558015908115611324575b505082600052601060205260ff6040600020541661130f575b5082600052601060205260ff604060002054166112fb575b82600052600d60205260406000205415806112f2575b61122f575b60207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91604051908152a3602060405160018152f35b82600052601360205260ff6040600020541615806112e9575b806112d4575b156111f957601254680100000000000000008110156105b1577fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9161129b82600160209401601255611897565b81549060031b906001600160a01b0388831b921b191617905584600052601382526040600020600160ff198254161790559150506111f9565b506001600160a01b036005541683141561124e565b50821515611248565b508015156111f4565b61130781600b54611759565b600b556111de565b61131b90600b5461174c565b600b55836111c6565b611333600354600b549061174c565b8061133f575b506111ad565b670de0b6b3a7640000820292828404670de0b6b3a764000014171561067f576106616106699161136e946117c4565b600a55848080611339565b811561139f575b501561139357606461116060085461045c565b6064611160600061045c565b9050831484611380565b6113b581600a5461174c565b600a556001600160a01b038416600052600d6020526113da6040600020918254611759565b905583611107565b6113ee81600a5461174c565b600a5582600052600d60205261140a6040600020918254611759565b9055836110e2565b346101ef5760003660031901126101ef576020600354604051908152f35b346101ef5760403660031901126101ef5761144961166a565b6001600160a01b036024359133600052600e60205260406000208282166000526020528260406000205560405192835216907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b346101ef5760003660031901126101ef57602060405161012c8152f35b346101ef5760003660031901126101ef5760405160008054600181811c9183918116801561155d575b60208410811461083957838652908115610812575060011461151e576107b1846107a581860382611696565b80805260208120939250905b808210611543575090915081016020016107a582610795565b91926001816020925483858801015201910190929161152a565b92607f16926114f2565b346101ef5760203660031901126101ef576001600160a01b0361158861166a565b6115b5827f00000000000000000000000007bde47a1bceb4932bb9fe295a639f000a255bde163314611701565b16801561162657807fffffffffffffffffffffffff0000000000000000000000000000000000000000600554161760055580600052600f6020526040600020600160ff198254161790557fe57f71636571365571c0eaeaeb54e1d9e0065804f056a57a2a29448524f7d18a600080a2005b606460405162461bcd60e51b815260206004820152601460248201527f496e76616c696420706f6f6c20616464726573730000000000000000000000006044820152fd5b600435906001600160a01b03821682036101ef57565b602435906001600160a01b03821682036101ef57565b90601f8019910116810190811067ffffffffffffffff8211176105b157604052565b91909160208152825180602083015260005b8181106116eb575060409293506000838284010152601f8019910116010190565b80602080928701015160408286010152016116ca565b1561170857565b606460405162461bcd60e51b815260206004820152601360248201527f4f6e6c79206f776e65722063616e2063616c6c000000000000000000000000006044820152fd5b9190820391821161067f57565b9190820180921161067f57565b1561176d57565b606460405162461bcd60e51b815260206004820152600f60248201527f496e76616c6964206164647265737300000000000000000000000000000000006044820152fd5b8181029291811591840414171561067f57565b81156117ce570490565b634e487b7160e01b600052601260045260246000fd5b6001600160a01b031680600052601060205260ff6040600020541661184657611842670de0b6b3a76400009161182e60095482600052600d6020526001604060002001549061174c565b90600052600d6020526040600020546117b1565b0490565b50600090565b1561185357565b606460405162461bcd60e51b815260206004820152601360248201527f4e6f20656c696769626c6520686f6c64657273000000000000000000000000006044820152fd5b6012548110156118b257601260005260206000200190600090565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220ad53d0a31ff673326ad573ee62bfd5a6a67b2252e416ba865ac0edb1d2d4813b64736f6c634300081c0033

Block Transaction 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

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.