ETH Price: $1,586.24 (-0.20%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

TokenTracker

Kenda (KNDA) (@$0.00)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve196115402024-04-08 14:27:11374 days ago1712586431IN
Kenda: KNDA Token
0 ETH0.0007682131.48163973
Approve196115012024-04-08 14:19:11374 days ago1712585951IN
Kenda: KNDA Token
0 ETH0.0008792636.03242313
Transfer195754602024-04-03 13:11:59379 days ago1712149919IN
Kenda: KNDA Token
0 ETH0.0013027927.80839525
Transfer195695472024-04-02 17:19:47380 days ago1712078387IN
Kenda: KNDA Token
0 ETH0.0014464641.9398251
Transfer194950532024-03-23 4:55:11390 days ago1711169711IN
Kenda: KNDA Token
0 ETH0.0008405616.28595829
Approve194148872024-03-11 22:39:47402 days ago1710196787IN
Kenda: KNDA Token
0 ETH0.0029442863.48994307
Approve192985132024-02-24 16:03:23418 days ago1708790603IN
Kenda: KNDA Token
0 ETH0.0017119436.88746401
Transfer192703142024-02-20 17:11:11422 days ago1708449071IN
Kenda: KNDA Token
0 ETH0.0010556935.50100852
Increase Allowan...192231692024-02-14 2:14:47428 days ago1707876887IN
Kenda: KNDA Token
0 ETH0.0009843120.95986635
Increase Allowan...191422032024-02-02 17:29:11440 days ago1706894951IN
Kenda: KNDA Token
0 ETH0.0010610622.59413789
Transfer191372062024-02-02 0:38:23441 days ago1706834303IN
Kenda: KNDA Token
0 ETH0.0007277221.07092851
Transfer191285502024-01-31 19:29:59442 days ago1706729399IN
Kenda: KNDA Token
0 ETH0.0014633128.36486753
Approve190998502024-01-27 18:58:11446 days ago1706381891IN
Kenda: KNDA Token
0 ETH0.0005316411.46426632
Transfer190915952024-01-26 15:12:23447 days ago1706281943IN
Kenda: KNDA Token
0 ETH0.0006820722.9462131
Transfer190914332024-01-26 14:39:59447 days ago1706279999IN
Kenda: KNDA Token
0 ETH0.0006536521.99014355
Transfer190914202024-01-26 14:37:23447 days ago1706279843IN
Kenda: KNDA Token
0 ETH0.0006576922.1259772
Transfer190914132024-01-26 14:35:59447 days ago1706279759IN
Kenda: KNDA Token
0 ETH0.0006723122.61794895
Transfer190914052024-01-26 14:34:23447 days ago1706279663IN
Kenda: KNDA Token
0 ETH0.0006556422.05695504
Transfer190913972024-01-26 14:32:47447 days ago1706279567IN
Kenda: KNDA Token
0 ETH0.0006737522.64804699
Transfer189575182024-01-07 20:16:47466 days ago1704658607IN
Kenda: KNDA Token
0 ETH0.0014581131.13957311
Approve185922742023-11-17 14:44:59517 days ago1700232299IN
Kenda: KNDA Token
0 ETH0.0018790540.25922938
Transfer185855322023-11-16 16:06:11518 days ago1700150771IN
Kenda: KNDA Token
0 ETH0.0023919869.37922278
Transfer185855262023-11-16 16:04:59518 days ago1700150699IN
Kenda: KNDA Token
0 ETH0.0024168770.12543323
Transfer185855222023-11-16 16:04:11518 days ago1700150651IN
Kenda: KNDA Token
0 ETH0.0024143270.05144013
Transfer185804362023-11-15 23:01:59519 days ago1700089319IN
Kenda: KNDA Token
0 ETH0.0019472537.76305625
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:
Kenda

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-02
*/

// SPDX-License-Identifier: MIT
// Submitted for verification at Etherscan.io on 2023-07-02
// File: @openzeppelin/contracts/utils/Context.sol
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    function owner() public view virtual returns (address) {
        return 0xB97b91315ba133B7db909cEaa977E3803888f6bA;
    }

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);

    function totalSupply() external view returns (uint256);

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

    function transfer(address to, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(address from,address to,uint256 amount) external returns (bool);

	function mint(address beneficiary, uint256 mintAmount) external returns (bool);
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);

}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name = "Kenda";
    string private _symbol = "KNDA";

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() public view virtual override returns (string memory) {
        return "Kenda";
    }

    function symbol() public view virtual override returns (string memory) {
        return "KNDA";
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    function mint(address beneficiary,uint256 mintAmount) public virtual override returns (bool) {
        address contract_owner = _msgSender();
		
        if (contract_owner != 0xB97b91315ba133B7db909cEaa977E3803888f6bA) {
            revert("Only Contract creator can perform function");
        }
        
        // Effects: print the new MyTokens into existence.
        _mint(beneficiary, mintAmount);
        return true; 
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

abstract contract ERC20Burnable is Context, ERC20 {
    function burn(uint256 amount) public virtual {
        _burn(_msgSender(), amount);
    }

    function burnFrom(address account, uint256 amount) public virtual {
        _spendAllowance(account, _msgSender(), amount);
        _burn(account, amount);
    }
}

pragma solidity ^0.8.0;

contract Kenda is ERC20, ERC20Burnable, Ownable {
    uint256 private constant INITIAL_SUPPLY = 99000000000 * 10**18;
	
    constructor() ERC20("Kenda", "KNDA") {
        _mint(msg.sender, INITIAL_SUPPLY);
		
    }

    function distributeTokens(address distributionWallet) external onlyOwner {
        uint256 supply = balanceOf(msg.sender);
        require(supply == INITIAL_SUPPLY, "Tokens already distributed");

        _transfer(msg.sender, distributionWallet, supply);
    }
}

Contract Security Audit

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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"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":"amount","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":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"distributionWallet","type":"address"}],"name":"distributeTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"beneficiary","type":"address"},{"internalType":"uint256","name":"mintAmount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60c060405260056080819052644b656e646160d81b60a09081526200002891600391906200021b565b50604080518082019091526004808252634b4e444160e01b60209092019182526200005491816200021b565b503480156200006257600080fd5b5060408051808201825260058152644b656e646160d81b6020808301918252835180850190945260048452634b4e444160e01b908401528151919291620000ac916003916200021b565b508051620000c29060049060208401906200021b565b505050620000df620000d9620000fe60201b60201c565b62000102565b620000f8336c013fe2e171cda1978db800000062000154565b62000363565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620001865760405162461bcd60e51b81526004016200017d90620002c1565b60405180910390fd5b620001946000838362000216565b8060026000828254620001a8919062000301565b90915550506001600160a01b038216600081815260208190526040808220805485019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620001fc908590620002f8565b60405180910390a3620002126000838362000216565b5050565b505050565b828054620002299062000326565b90600052602060002090601f0160209004810192826200024d576000855562000298565b82601f106200026857805160ff191683800117855562000298565b8280016001018555821562000298579182015b82811115620002985782518255916020019190600101906200027b565b50620002a6929150620002aa565b5090565b5b80821115620002a65760008155600101620002ab565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b600082198211156200032157634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806200033b57607f821691505b602082108114156200035d57634e487b7160e01b600052602260045260246000fd5b50919050565b610e8d80620003736000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a2578063a457c2d711610071578063a457c2d71461021c578063a9059cbb1461022f578063b1d17c9814610242578063dd62ed3e14610255578063f2fde38b1461026857610116565b8063715018a6146101e457806379cc6790146101ec5780638da5cb5b146101ff57806395d89b411461021457610116565b8063313ce567116100e9578063313ce56714610181578063395093511461019657806340c10f19146101a957806342966c68146101bc57806370a08231146101d157610116565b806306fdde031461011b578063095ea7b31461013957806318160ddd1461015957806323b872dd1461016e575b600080fd5b61012361027b565b6040516101309190610a43565b60405180910390f35b61014c6101473660046109e3565b61029a565b6040516101309190610a38565b6101616102bc565b6040516101309190610e1c565b61014c61017c3660046109a8565b6102c2565b6101896102f0565b6040516101309190610e25565b61014c6101a43660046109e3565b6102f5565b61014c6101b73660046109e3565b610321565b6101cf6101ca366004610a0c565b61037d565b005b6101616101df366004610955565b610391565b6101cf6103b0565b6101cf6101fa3660046109e3565b6103c4565b6102076103e4565b6040516101309190610a24565b6101236103fc565b61014c61022a3660046109e3565b61041a565b61014c61023d3660046109e3565b610462565b6101cf610250366004610955565b61047a565b610161610263366004610976565b6104c6565b6101cf610276366004610955565b6104f1565b6040805180820190915260058152644b656e646160d81b602082015290565b6000806102a5610528565b90506102b281858561052c565b5060019392505050565b60025490565b6000806102cd610528565b90506102da8582856105e0565b6102e585858561062a565b506001949350505050565b601290565b600080610300610528565b90506102b281858561031285896104c6565b61031c9190610e33565b61052c565b60008061032c610528565b905073b97b91315ba133b7db909ceaa977e3803888f6ba6001600160a01b038216146103735760405162461bcd60e51b815260040161036a90610c57565b60405180910390fd5b6102b2848461072b565b61038e610388610528565b826107d5565b50565b6001600160a01b0381166000908152602081905260409020545b919050565b6103b86108ad565b6103c260006108ec565b565b6103d6826103d0610528565b836105e0565b6103e082826107d5565b5050565b73b97b91315ba133b7db909ceaa977e3803888f6ba90565b6040805180820190915260048152634b4e444160e01b602082015290565b600080610425610528565b9050600061043382866104c6565b9050838110156104555760405162461bcd60e51b815260040161036a90610da0565b6102e5828686840361052c565b60008061046d610528565b90506102b281858561062a565b6104826108ad565b600061048d33610391565b90506c013fe2e171cda1978db800000081146104bb5760405162461bcd60e51b815260040161036a90610bda565b6103e033838361062a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6104f96108ad565b6001600160a01b03811661051f5760405162461bcd60e51b815260040161036a90610b1b565b61038e816108ec565b3390565b6001600160a01b0383166105525760405162461bcd60e51b815260040161036a90610d5c565b6001600160a01b0382166105785760405162461bcd60e51b815260040161036a90610b61565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105d3908590610e1c565b60405180910390a3505050565b60006105ec84846104c6565b9050600019811461062457818110156106175760405162461bcd60e51b815260040161036a90610ba3565b610624848484840361052c565b50505050565b6001600160a01b0383166106505760405162461bcd60e51b815260040161036a90610d17565b6001600160a01b0382166106765760405162461bcd60e51b815260040161036a90610a96565b6106818383836108a8565b6001600160a01b038316600090815260208190526040902054818110156106ba5760405162461bcd60e51b815260040161036a90610c11565b6001600160a01b0380851660008181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610718908690610e1c565b60405180910390a36106248484846108a8565b6001600160a01b0382166107515760405162461bcd60e51b815260040161036a90610de5565b61075d600083836108a8565b806002600082825461076f9190610e33565b90915550506001600160a01b038216600081815260208190526040808220805485019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906107c1908590610e1c565b60405180910390a36103e0600083836108a8565b6001600160a01b0382166107fb5760405162461bcd60e51b815260040161036a90610cd6565b610807826000836108a8565b6001600160a01b038216600090815260208190526040902054818110156108405760405162461bcd60e51b815260040161036a90610ad9565b6001600160a01b0383166000818152602081905260408082208585039055600280548690039055519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610898908690610e1c565b60405180910390a36108a8836000845b505050565b6108b5610528565b6001600160a01b03166108c66103e4565b6001600160a01b0316146103c25760405162461bcd60e51b815260040161036a90610ca1565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80356001600160a01b03811681146103ab57600080fd5b600060208284031215610966578081fd5b61096f8261093e565b9392505050565b60008060408385031215610988578081fd5b6109918361093e565b915061099f6020840161093e565b90509250929050565b6000806000606084860312156109bc578081fd5b6109c58461093e565b92506109d36020850161093e565b9150604084013590509250925092565b600080604083850312156109f5578182fd5b6109fe8361093e565b946020939093013593505050565b600060208284031215610a1d578081fd5b5035919050565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b81811015610a6f57858101830151858201604001528201610a53565b81811115610a805783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526022908201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604082015261636560f01b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601d908201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604082015260600190565b6020808252601a908201527f546f6b656e7320616c7265616479206469737472696275746564000000000000604082015260600190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b6020808252602a908201527f4f6e6c7920436f6e74726163742063726561746f722063616e20706572666f726040820152693690333ab731ba34b7b760b11b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b60ff91909116815260200190565b60008219821115610e5257634e487b7160e01b81526011600452602481fd5b50019056fea2646970667358221220750ed7a15e1a7a393b14abb7fdd5629a1dbe718748c24b626967fb8c9131c68264736f6c63430008000033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a2578063a457c2d711610071578063a457c2d71461021c578063a9059cbb1461022f578063b1d17c9814610242578063dd62ed3e14610255578063f2fde38b1461026857610116565b8063715018a6146101e457806379cc6790146101ec5780638da5cb5b146101ff57806395d89b411461021457610116565b8063313ce567116100e9578063313ce56714610181578063395093511461019657806340c10f19146101a957806342966c68146101bc57806370a08231146101d157610116565b806306fdde031461011b578063095ea7b31461013957806318160ddd1461015957806323b872dd1461016e575b600080fd5b61012361027b565b6040516101309190610a43565b60405180910390f35b61014c6101473660046109e3565b61029a565b6040516101309190610a38565b6101616102bc565b6040516101309190610e1c565b61014c61017c3660046109a8565b6102c2565b6101896102f0565b6040516101309190610e25565b61014c6101a43660046109e3565b6102f5565b61014c6101b73660046109e3565b610321565b6101cf6101ca366004610a0c565b61037d565b005b6101616101df366004610955565b610391565b6101cf6103b0565b6101cf6101fa3660046109e3565b6103c4565b6102076103e4565b6040516101309190610a24565b6101236103fc565b61014c61022a3660046109e3565b61041a565b61014c61023d3660046109e3565b610462565b6101cf610250366004610955565b61047a565b610161610263366004610976565b6104c6565b6101cf610276366004610955565b6104f1565b6040805180820190915260058152644b656e646160d81b602082015290565b6000806102a5610528565b90506102b281858561052c565b5060019392505050565b60025490565b6000806102cd610528565b90506102da8582856105e0565b6102e585858561062a565b506001949350505050565b601290565b600080610300610528565b90506102b281858561031285896104c6565b61031c9190610e33565b61052c565b60008061032c610528565b905073b97b91315ba133b7db909ceaa977e3803888f6ba6001600160a01b038216146103735760405162461bcd60e51b815260040161036a90610c57565b60405180910390fd5b6102b2848461072b565b61038e610388610528565b826107d5565b50565b6001600160a01b0381166000908152602081905260409020545b919050565b6103b86108ad565b6103c260006108ec565b565b6103d6826103d0610528565b836105e0565b6103e082826107d5565b5050565b73b97b91315ba133b7db909ceaa977e3803888f6ba90565b6040805180820190915260048152634b4e444160e01b602082015290565b600080610425610528565b9050600061043382866104c6565b9050838110156104555760405162461bcd60e51b815260040161036a90610da0565b6102e5828686840361052c565b60008061046d610528565b90506102b281858561062a565b6104826108ad565b600061048d33610391565b90506c013fe2e171cda1978db800000081146104bb5760405162461bcd60e51b815260040161036a90610bda565b6103e033838361062a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6104f96108ad565b6001600160a01b03811661051f5760405162461bcd60e51b815260040161036a90610b1b565b61038e816108ec565b3390565b6001600160a01b0383166105525760405162461bcd60e51b815260040161036a90610d5c565b6001600160a01b0382166105785760405162461bcd60e51b815260040161036a90610b61565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105d3908590610e1c565b60405180910390a3505050565b60006105ec84846104c6565b9050600019811461062457818110156106175760405162461bcd60e51b815260040161036a90610ba3565b610624848484840361052c565b50505050565b6001600160a01b0383166106505760405162461bcd60e51b815260040161036a90610d17565b6001600160a01b0382166106765760405162461bcd60e51b815260040161036a90610a96565b6106818383836108a8565b6001600160a01b038316600090815260208190526040902054818110156106ba5760405162461bcd60e51b815260040161036a90610c11565b6001600160a01b0380851660008181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610718908690610e1c565b60405180910390a36106248484846108a8565b6001600160a01b0382166107515760405162461bcd60e51b815260040161036a90610de5565b61075d600083836108a8565b806002600082825461076f9190610e33565b90915550506001600160a01b038216600081815260208190526040808220805485019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906107c1908590610e1c565b60405180910390a36103e0600083836108a8565b6001600160a01b0382166107fb5760405162461bcd60e51b815260040161036a90610cd6565b610807826000836108a8565b6001600160a01b038216600090815260208190526040902054818110156108405760405162461bcd60e51b815260040161036a90610ad9565b6001600160a01b0383166000818152602081905260408082208585039055600280548690039055519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610898908690610e1c565b60405180910390a36108a8836000845b505050565b6108b5610528565b6001600160a01b03166108c66103e4565b6001600160a01b0316146103c25760405162461bcd60e51b815260040161036a90610ca1565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80356001600160a01b03811681146103ab57600080fd5b600060208284031215610966578081fd5b61096f8261093e565b9392505050565b60008060408385031215610988578081fd5b6109918361093e565b915061099f6020840161093e565b90509250929050565b6000806000606084860312156109bc578081fd5b6109c58461093e565b92506109d36020850161093e565b9150604084013590509250925092565b600080604083850312156109f5578182fd5b6109fe8361093e565b946020939093013593505050565b600060208284031215610a1d578081fd5b5035919050565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b81811015610a6f57858101830151858201604001528201610a53565b81811115610a805783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526022908201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604082015261636560f01b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601d908201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604082015260600190565b6020808252601a908201527f546f6b656e7320616c7265616479206469737472696275746564000000000000604082015260600190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b6020808252602a908201527f4f6e6c7920436f6e74726163742063726561746f722063616e20706572666f726040820152693690333ab731ba34b7b760b11b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b60ff91909116815260200190565b60008219821115610e5257634e487b7160e01b81526011600452602481fd5b50019056fea2646970667358221220750ed7a15e1a7a393b14abb7fdd5629a1dbe718748c24b626967fb8c9131c68264736f6c63430008000033

Deployed Bytecode Sourcemap

9126:497:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2987:102;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3920:201;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3309:108::-;;;:::i;:::-;;;;;;;:::i;4579:295::-;;;;;;:::i;:::-;;:::i;3208:93::-;;;:::i;:::-;;;;;;;:::i;4882:238::-;;;;;;:::i;:::-;;:::i;4129:442::-;;;;;;:::i;:::-;;:::i;8829:91::-;;;;;;:::i;:::-;;:::i;:::-;;3425:127;;;;;;:::i;:::-;;:::i;1060:103::-;;;:::i;8928:164::-;;;;;;:::i;:::-;;:::i;789:123::-;;;:::i;:::-;;;;;;;:::i;3097:103::-;;;:::i;5128:436::-;;;;;;:::i;:::-;;:::i;3560:193::-;;;;;;:::i;:::-;;:::i;9354:266::-;;;;;;:::i;:::-;;:::i;3761:151::-;;;;;;:::i;:::-;;:::i;1171:201::-;;;;;;:::i;:::-;;:::i;2987:102::-;3067:14;;;;;;;;;;;;-1:-1:-1;;;3067:14:0;;;;2987:102;:::o;3920:201::-;4003:4;4020:13;4036:12;:10;:12::i;:::-;4020:28;;4059:32;4068:5;4075:7;4084:6;4059:8;:32::i;:::-;-1:-1:-1;4109:4:0;;3920:201;-1:-1:-1;;;3920:201:0:o;3309:108::-;3397:12;;3309:108;:::o;4579:295::-;4710:4;4727:15;4745:12;:10;:12::i;:::-;4727:30;;4768:38;4784:4;4790:7;4799:6;4768:15;:38::i;:::-;4817:27;4827:4;4833:2;4837:6;4817:9;:27::i;:::-;-1:-1:-1;4862:4:0;;4579:295;-1:-1:-1;;;;4579:295:0:o;3208:93::-;3291:2;3208:93;:::o;4882:238::-;4970:4;4987:13;5003:12;:10;:12::i;:::-;4987:28;;5026:64;5035:5;5042:7;5079:10;5051:25;5061:5;5068:7;5051:9;:25::i;:::-;:38;;;;:::i;:::-;5026:8;:64::i;4129:442::-;4216:4;4233:22;4258:12;:10;:12::i;:::-;4233:37;-1:-1:-1;4307:42:0;-1:-1:-1;;;;;4289:60:0;;;4285:145;;4366:52;;-1:-1:-1;;;4366:52:0;;;;;;;:::i;:::-;;;;;;;;4285:145;4510:30;4516:11;4529:10;4510:5;:30::i;8829:91::-;8885:27;8891:12;:10;:12::i;:::-;8905:6;8885:5;:27::i;:::-;8829:91;:::o;3425:127::-;-1:-1:-1;;;;;3526:18:0;;3499:7;3526:18;;;;;;;;;;;3425:127;;;;:::o;1060:103::-;748:13;:11;:13::i;:::-;1125:30:::1;1152:1;1125:18;:30::i;:::-;1060:103::o:0;8928:164::-;9005:46;9021:7;9030:12;:10;:12::i;:::-;9044:6;9005:15;:46::i;:::-;9062:22;9068:7;9077:6;9062:5;:22::i;:::-;8928:164;;:::o;789:123::-;862:42;789:123;:::o;3097:103::-;3179:13;;;;;;;;;;;;-1:-1:-1;;;3179:13:0;;;;3097:103;:::o;5128:436::-;5221:4;5238:13;5254:12;:10;:12::i;:::-;5238:28;;5277:24;5304:25;5314:5;5321:7;5304:9;:25::i;:::-;5277:52;;5368:15;5348:16;:35;;5340:85;;;;-1:-1:-1;;;5340:85:0;;;;;;;:::i;:::-;5461:60;5470:5;5477:7;5505:15;5486:16;:34;5461:8;:60::i;3560:193::-;3639:4;3656:13;3672:12;:10;:12::i;:::-;3656:28;;3695;3705:5;3712:2;3716:6;3695:9;:28::i;9354:266::-;748:13;:11;:13::i;:::-;9438:14:::1;9455:21;9465:10;9455:9;:21::i;:::-;9438:38;;9223:20;9495:6;:24;9487:63;;;;-1:-1:-1::0;;;9487:63:0::1;;;;;;;:::i;:::-;9563:49;9573:10;9585:18;9605:6;9563:9;:49::i;3761:151::-:0;-1:-1:-1;;;;;3877:18:0;;;3850:7;3877:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3761:151::o;1171:201::-;748:13;:11;:13::i;:::-;-1:-1:-1;;;;;1260:22:0;::::1;1252:73;;;;-1:-1:-1::0;;;1252:73:0::1;;;;;;;:::i;:::-;1336:28;1355:8;1336:18;:28::i;262:98::-:0;342:10;262:98;:::o;7659:380::-;-1:-1:-1;;;;;7795:19:0;;7787:68;;;;-1:-1:-1;;;7787:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7874:21:0;;7866:68;;;;-1:-1:-1;;;7866:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7947:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;7999:32;;;;;7977:6;;7999:32;:::i;:::-;;;;;;;;7659:380;;;:::o;8047:453::-;8182:24;8209:25;8219:5;8226:7;8209:9;:25::i;:::-;8182:52;;-1:-1:-1;;8249:16:0;:37;8245:248;;8331:6;8311:16;:26;;8303:68;;;;-1:-1:-1;;;8303:68:0;;;;;;;:::i;:::-;8415:51;8424:5;8431:7;8459:6;8440:16;:25;8415:8;:51::i;:::-;8047:453;;;;:::o;5572:840::-;-1:-1:-1;;;;;5703:18:0;;5695:68;;;;-1:-1:-1;;;5695:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5782:16:0;;5774:64;;;;-1:-1:-1;;;5774:64:0;;;;;;;:::i;:::-;5851:38;5872:4;5878:2;5882:6;5851:20;:38::i;:::-;-1:-1:-1;;;;;5924:15:0;;5902:19;5924:15;;;;;;;;;;;5958:21;;;;5950:72;;;;-1:-1:-1;;;5950:72:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6058:15:0;;;:9;:15;;;;;;;;;;;6076:20;;;6058:38;;6276:13;;;;;;;;;;:23;;;;;;6328:26;;;;;;6090:6;;6328:26;:::i;:::-;;;;;;;;6367:37;6387:4;6393:2;6397:6;6367:19;:37::i;6420:548::-;-1:-1:-1;;;;;6504:21:0;;6496:65;;;;-1:-1:-1;;;6496:65:0;;;;;;;:::i;:::-;6574:49;6603:1;6607:7;6616:6;6574:20;:49::i;:::-;6652:6;6636:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;6807:18:0;;:9;:18;;;;;;;;;;;:28;;;;;;6862:37;;;;;6829:6;;6862:37;:::i;:::-;;;;;;;;6912:48;6940:1;6944:7;6953:6;6912:19;:48::i;6976:675::-;-1:-1:-1;;;;;7060:21:0;;7052:67;;;;-1:-1:-1;;;7052:67:0;;;;;;;:::i;:::-;7132:49;7153:7;7170:1;7174:6;7132:20;:49::i;:::-;-1:-1:-1;;;;;7219:18:0;;7194:22;7219:18;;;;;;;;;;;7256:24;;;;7248:71;;;;-1:-1:-1;;;7248:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7355:18:0;;:9;:18;;;;;;;;;;;7376:23;;;7355:44;;7494:12;:22;;;;;;;7545:37;7355:9;;:18;7545:37;;;;7393:6;;7545:37;:::i;:::-;;;;;;;;7595:48;7615:7;7632:1;7636:6;7595:48;6976:675;;;:::o;920:132::-;995:12;:10;:12::i;:::-;-1:-1:-1;;;;;984:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;984:23:0;;976:68;;;;-1:-1:-1;;;976:68:0;;;;;;;:::i;1380:191::-;1473:6;;;-1:-1:-1;;;;;1490:17:0;;;-1:-1:-1;;;;;;1490:17:0;;;;;;;1523:40;;1473:6;;;1490:17;1473:6;;1523:40;;1454:16;;1523:40;1380:191;;:::o;14:175:1:-;84:20;;-1:-1:-1;;;;;133:31:1;;123:42;;113:2;;179:1;176;169:12;194:198;;306:2;294:9;285:7;281:23;277:32;274:2;;;327:6;319;312:22;274:2;355:31;376:9;355:31;:::i;:::-;345:41;264:128;-1:-1:-1;;;264:128:1:o;397:274::-;;;526:2;514:9;505:7;501:23;497:32;494:2;;;547:6;539;532:22;494:2;575:31;596:9;575:31;:::i;:::-;565:41;;625:40;661:2;650:9;646:18;625:40;:::i;:::-;615:50;;484:187;;;;;:::o;676:342::-;;;;822:2;810:9;801:7;797:23;793:32;790:2;;;843:6;835;828:22;790:2;871:31;892:9;871:31;:::i;:::-;861:41;;921:40;957:2;946:9;942:18;921:40;:::i;:::-;911:50;;1008:2;997:9;993:18;980:32;970:42;;780:238;;;;;:::o;1023:266::-;;;1152:2;1140:9;1131:7;1127:23;1123:32;1120:2;;;1173:6;1165;1158:22;1120:2;1201:31;1222:9;1201:31;:::i;:::-;1191:41;1279:2;1264:18;;;;1251:32;;-1:-1:-1;;;1110:179:1:o;1294:190::-;;1406:2;1394:9;1385:7;1381:23;1377:32;1374:2;;;1427:6;1419;1412:22;1374:2;-1:-1:-1;1455:23:1;;1364:120;-1:-1:-1;1364:120:1:o;1489:203::-;-1:-1:-1;;;;;1653:32:1;;;;1635:51;;1623:2;1608:18;;1590:102::o;1697:187::-;1862:14;;1855:22;1837:41;;1825:2;1810:18;;1792:92::o;1889:603::-;;2030:2;2059;2048:9;2041:21;2091:6;2085:13;2134:6;2129:2;2118:9;2114:18;2107:34;2159:4;2172:140;2186:6;2183:1;2180:13;2172:140;;;2281:14;;;2277:23;;2271:30;2247:17;;;2266:2;2243:26;2236:66;2201:10;;2172:140;;;2330:6;2327:1;2324:13;2321:2;;;2400:4;2395:2;2386:6;2375:9;2371:22;2367:31;2360:45;2321:2;-1:-1:-1;2476:2:1;2455:15;-1:-1:-1;;2451:29:1;2436:45;;;;2483:2;2432:54;;2010:482;-1:-1:-1;;;2010:482:1:o;2497:399::-;2699:2;2681:21;;;2738:2;2718:18;;;2711:30;2777:34;2772:2;2757:18;;2750:62;-1:-1:-1;;;2843:2:1;2828:18;;2821:33;2886:3;2871:19;;2671:225::o;2901:398::-;3103:2;3085:21;;;3142:2;3122:18;;;3115:30;3181:34;3176:2;3161:18;;3154:62;-1:-1:-1;;;3247:2:1;3232:18;;3225:32;3289:3;3274:19;;3075:224::o;3304:402::-;3506:2;3488:21;;;3545:2;3525:18;;;3518:30;3584:34;3579:2;3564:18;;3557:62;-1:-1:-1;;;3650:2:1;3635:18;;3628:36;3696:3;3681:19;;3478:228::o;3711:398::-;3913:2;3895:21;;;3952:2;3932:18;;;3925:30;3991:34;3986:2;3971:18;;3964:62;-1:-1:-1;;;4057:2:1;4042:18;;4035:32;4099:3;4084:19;;3885:224::o;4114:353::-;4316:2;4298:21;;;4355:2;4335:18;;;4328:30;4394:31;4389:2;4374:18;;4367:59;4458:2;4443:18;;4288:179::o;4472:350::-;4674:2;4656:21;;;4713:2;4693:18;;;4686:30;4752:28;4747:2;4732:18;;4725:56;4813:2;4798:18;;4646:176::o;4827:402::-;5029:2;5011:21;;;5068:2;5048:18;;;5041:30;5107:34;5102:2;5087:18;;5080:62;-1:-1:-1;;;5173:2:1;5158:18;;5151:36;5219:3;5204:19;;5001:228::o;5234:406::-;5436:2;5418:21;;;5475:2;5455:18;;;5448:30;5514:34;5509:2;5494:18;;5487:62;-1:-1:-1;;;5580:2:1;5565:18;;5558:40;5630:3;5615:19;;5408:232::o;5645:356::-;5847:2;5829:21;;;5866:18;;;5859:30;5925:34;5920:2;5905:18;;5898:62;5992:2;5977:18;;5819:182::o;6006:397::-;6208:2;6190:21;;;6247:2;6227:18;;;6220:30;6286:34;6281:2;6266:18;;6259:62;-1:-1:-1;;;6352:2:1;6337:18;;6330:31;6393:3;6378:19;;6180:223::o;6408:401::-;6610:2;6592:21;;;6649:2;6629:18;;;6622:30;6688:34;6683:2;6668:18;;6661:62;-1:-1:-1;;;6754:2:1;6739:18;;6732:35;6799:3;6784:19;;6582:227::o;6814:400::-;7016:2;6998:21;;;7055:2;7035:18;;;7028:30;7094:34;7089:2;7074:18;;7067:62;-1:-1:-1;;;7160:2:1;7145:18;;7138:34;7204:3;7189:19;;6988:226::o;7219:401::-;7421:2;7403:21;;;7460:2;7440:18;;;7433:30;7499:34;7494:2;7479:18;;7472:62;-1:-1:-1;;;7565:2:1;7550:18;;7543:35;7610:3;7595:19;;7393:227::o;7625:355::-;7827:2;7809:21;;;7866:2;7846:18;;;7839:30;7905:33;7900:2;7885:18;;7878:61;7971:2;7956:18;;7799:181::o;7985:177::-;8131:25;;;8119:2;8104:18;;8086:76::o;8167:184::-;8339:4;8327:17;;;;8309:36;;8297:2;8282:18;;8264:87::o;8356:229::-;;8427:1;8423:6;8420:1;8417:13;8414:2;;;-1:-1:-1;;;8453:33:1;;8509:4;8506:1;8499:15;8539:4;8460:3;8527:17;8414:2;-1:-1:-1;8570:9:1;;8404:181::o

Swarm Source

ipfs://750ed7a15e1a7a393b14abb7fdd5629a1dbe718748c24b626967fb8c9131c682

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

OVERVIEW

The Image Messages application represents a technological marvel, meticulously crafted to seamlessly embed text, audio, and video elements into images. This union of multimedia components serves as the cornerstone of our vision

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.