ETH Price: $3,608.03 (+4.69%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve212880932024-11-28 18:49:3536 days ago1732819775IN
0x148C7b60...1E3f1dC7E
0 ETH0.0009037519.33328442
Approve212251922024-11-19 23:53:2345 days ago1732060403IN
0x148C7b60...1E3f1dC7E
0 ETH0.000244629.09192102
Approve208225252024-09-24 19:23:59101 days ago1727205839IN
0x148C7b60...1E3f1dC7E
0 ETH0.0014581831.19386342
Transfer207441852024-09-13 20:49:23112 days ago1726260563IN
0x148C7b60...1E3f1dC7E
0 ETH0.000485868.79727713
Approve205663652024-08-20 0:50:35136 days ago1724115035IN
0x148C7b60...1E3f1dC7E
0 ETH0.000061162.47609231
Approve202921902024-07-12 18:22:35175 days ago1720808555IN
0x148C7b60...1E3f1dC7E
0 ETH0.000159443.41097779
Transfer200953732024-06-15 6:20:59202 days ago1718432459IN
0x148C7b60...1E3f1dC7E
0 ETH0.000181024.74762041
Transfer200953562024-06-15 6:17:35202 days ago1718432255IN
0x148C7b60...1E3f1dC7E
0 ETH0.000237794.50428196
Transfer200953312024-06-15 6:12:35202 days ago1718431955IN
0x148C7b60...1E3f1dC7E
0 ETH0.000252374.56964816
Approve200032452024-06-02 9:29:11215 days ago1717320551IN
0x148C7b60...1E3f1dC7E
0 ETH0.000364447.79637373
Approve198750692024-05-15 11:25:47233 days ago1715772347IN
0x148C7b60...1E3f1dC7E
0 ETH0.000226284.81611209
Approve198744342024-05-15 9:18:23233 days ago1715764703IN
0x148C7b60...1E3f1dC7E
0 ETH0.000364197.79093325
Approve197611482024-04-29 13:03:59249 days ago1714395839IN
0x148C7b60...1E3f1dC7E
0 ETH0.0005564111.84213221
Approve196918282024-04-19 20:21:35259 days ago1713558095IN
0x148C7b60...1E3f1dC7E
0 ETH0.000391328.32861395
Approve196064912024-04-07 21:28:47271 days ago1712525327IN
0x148C7b60...1E3f1dC7E
0 ETH0.0006964714.88001327
Approve195876942024-04-05 6:15:35273 days ago1712297735IN
0x148C7b60...1E3f1dC7E
0 ETH0.0003968713.27957936
Approve195137302024-03-25 20:02:47284 days ago1711396967IN
0x148C7b60...1E3f1dC7E
0 ETH0.0037828580.40758002
Transfer195137132024-03-25 19:59:23284 days ago1711396763IN
0x148C7b60...1E3f1dC7E
0 ETH0.001195731.37908558
Approve194376552024-03-15 3:24:35294 days ago1710473075IN
0x148C7b60...1E3f1dC7E
0 ETH0.0027891859.28636241
Approve194348512024-03-14 17:55:11295 days ago1710438911IN
0x148C7b60...1E3f1dC7E
0 ETH0.0025819954.9525351
Approve193683192024-03-05 10:18:47304 days ago1709633927IN
0x148C7b60...1E3f1dC7E
0 ETH0.0029754663.3266178
Transfer193661182024-03-05 2:55:59304 days ago1709607359IN
0x148C7b60...1E3f1dC7E
0 ETH0.003053780.08877875
Approve193468202024-03-02 10:14:59307 days ago1709374499IN
0x148C7b60...1E3f1dC7E
0 ETH0.0019114940.68218357
Approve192692842024-02-20 13:43:59318 days ago1708436639IN
0x148C7b60...1E3f1dC7E
0 ETH0.002557454.35961856
Approve192667632024-02-20 5:13:47318 days ago1708406027IN
0x148C7b60...1E3f1dC7E
0 ETH0.0010424622.18674549
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:
PurpleCoin

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2023-07-19
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
/**
 * @title PurpleCoin
 * @dev A simple ERC20 token 
 * PURPLE/MONG Pair
 * PURPLE/PEPE Pair
 */
contract PurpleCoin {
    string public name = "Purple Coin";
    string public symbol = "PURPLE";
    uint256 public constant totalSupply = 420_690_000_000 * 10 ** 18;
    uint8 public constant decimals = 18;
    address public taxWallet = 0x72E61aE4aE17bE6c0cE55B51e04C1E193cE29Fe9;
    uint256 public constant TAX_PERCENT_BASIS = 0;
    mapping(address => uint256) private balances;
    mapping(address => mapping(address => uint256)) private allowed;
    address private _owner;

    error TransferToZeroAddress(address _address);
    error InsufficientBalance(uint256 _balance, uint256 _value);
    error InsufficientAllowance(uint256 _allowance, uint256 _value);

    error CallerIsNotTheOwner(address _caller);

    /**
     * @dev Constructor that sets the initial balance and tax wallet address.
     */
    constructor() {
        _transferOwnership(msg.sender);
        balances[msg.sender] = totalSupply;
        emit Transfer(address(0), msg.sender, totalSupply);
    }

    /**
     * @dev Returns the balance of the given address.
     * @param _holder The address to query the balance of.
     * @return balance The balance of the specified address.
     */
    function balanceOf(address _holder) public view returns (uint256 balance) {
        return balances[_holder];
    }

    /**
     * @dev Transfers tokens to a specified address after applying the tax, if applicable.
     * @param _to The address to transfer to.
     * @param _value The amount of tokens to be transferred.
     * @return success A boolean that indicates if the operation was successful.
     */
    function transfer(
        address _to,
        uint256 _value
    ) public returns (bool success) {
        if (_to == address(0)) {
            revert TransferToZeroAddress(_to);
        }
        if (_value > balances[msg.sender]) {
            revert InsufficientBalance(balances[msg.sender], _value);
        }
        (uint256 taxAmount, uint256 taxedAmount) = getTaxedAmount(
            _value,
            msg.sender == taxWallet
        );
        balances[msg.sender] -= _value;
        balances[taxWallet] += taxAmount; // tax wallet gets the tax amount
        balances[_to] += taxedAmount;
        emit Transfer(msg.sender, _to, taxedAmount);
        emit Transfer(msg.sender, taxWallet, taxAmount);
        return true;
    }

    /**
     * @dev Transfers tokens from one address to another after applying the tax, if applicable.
     * @param _from The address which you want to send tokens from.
     * @param _to The address which you want to transfer to.
     * @param _value The amount of tokens to be transferred.
     * @return success A boolean that indicates if the operation was successful.
     */
    function transferFrom(
        address _from,
        address _to,
        uint256 _value
    ) public returns (bool success) {
        if (_to == address(0)) {
            revert TransferToZeroAddress(_to);
        }
        if (_value > balances[_from]) {
            revert InsufficientBalance(balances[_from], _value);
        }
        if (_value > allowed[_from][msg.sender]) {
            revert InsufficientAllowance(allowed[_from][msg.sender], _value);
        }
        (uint256 taxAmount, uint256 taxedAmount) = getTaxedAmount(
            _value,
            _from == taxWallet
        );
        balances[_from] -= _value;
        balances[taxWallet] += taxAmount; // tax wallet gets the tax amount
        allowed[_from][msg.sender] -= _value;
        balances[_to] += taxedAmount;
        emit Transfer(_from, _to, taxedAmount);
        emit Transfer(_from, taxWallet, taxAmount);
        return true;
    }

    /**
     * @dev Approves the passed address to spend the specified amount of tokens on behalf of msg.sender.
     * @param _spender The address which will spend the funds.
     * @param _value The amount of tokens to be spent.
     * @return success A boolean that indicates if the operation was successful.
     */
    function approve(
        address _spender,
        uint256 _value
    ) public returns (bool success) {
        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    /**
     * @dev Returns the amount of tokens allowed by the owner (_holder) for a spender (_spender) to spend.
     * @param _holder The address which owns the tokens.
     * @param _spender The address which will spend the tokens.
     * @return remaining The amount of tokens still available for the spender.
     */
    function allowance(
        address _holder,
        address _spender
    ) public view returns (uint256 remaining) {
        return allowed[_holder][_spender];
    }

    /**
     * @dev Calculates the tax amount and the taxed amount based on the given value and tax exemption status.
     * @param _value The original amount to be taxed.
     * @param _isTaxWallet Indicates if the tax wallet is exempt from taxation.
     * @return taxAmount The calculated tax amount.
     * @return taxedAmount The remaining amount after taxation.
     */
    function getTaxedAmount(
        uint256 _value,
        bool _isTaxWallet
    ) internal pure returns (uint256 taxAmount, uint256 taxedAmount) {
        taxAmount = _isTaxWallet ? 0 : (_value * TAX_PERCENT_BASIS) / 10000;
        taxedAmount = _value - taxAmount;
    }

    /**
     * @dev Sets the tax wallet address. Can only be called by the contract owner.
     * @param _taxWallet The address to be set as the tax wallet.
     */
    function setTaxWallet(address _taxWallet) public onlyOwner {
        taxWallet = _taxWallet;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        if (owner() != msg.sender) {
            revert CallerIsNotTheOwner(msg.sender);
        }
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        if (newOwner == address(0)) {
            revert TransferToZeroAddress(newOwner);
        }
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }

    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(
        address indexed _owner,
        address indexed _spender,
        uint256 _value
    );
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"_caller","type":"address"}],"name":"CallerIsNotTheOwner","type":"error"},{"inputs":[{"internalType":"uint256","name":"_allowance","type":"uint256"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"uint256","name":"_balance","type":"uint256"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"TransferToZeroAddress","type":"error"},{"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":[],"name":"TAX_PERCENT_BASIS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_holder","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"remaining","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":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_holder","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_taxWallet","type":"address"}],"name":"setTaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"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":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526040518060400160405280600b81526020017f507572706c6520436f696e0000000000000000000000000000000000000000008152505f9081620000499190620004f3565b506040518060400160405280600681526020017f505552504c45000000000000000000000000000000000000000000000000000081525060019081620000909190620004f3565b507372e61ae4ae17be6c0ce55b51e04c1e193ce29fe960025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015620000f1575f80fd5b506200010333620001cc60201b60201c565b6c054f529ca52576bc689200000060035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6c054f529ca52576bc6892000000604051620001be9190620005e8565b60405180910390a362000603565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200030b57607f821691505b602082108103620003215762000320620002c6565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620003857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000348565b62000391868362000348565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620003db620003d5620003cf84620003a9565b620003b2565b620003a9565b9050919050565b5f819050919050565b620003f683620003bb565b6200040e6200040582620003e2565b84845462000354565b825550505050565b5f90565b6200042462000416565b62000431818484620003eb565b505050565b5b8181101562000458576200044c5f826200041a565b60018101905062000437565b5050565b601f821115620004a757620004718162000327565b6200047c8462000339565b810160208510156200048c578190505b620004a46200049b8562000339565b83018262000436565b50505b505050565b5f82821c905092915050565b5f620004c95f1984600802620004ac565b1980831691505092915050565b5f620004e38383620004b8565b9150826002028217905092915050565b620004fe826200028f565b67ffffffffffffffff8111156200051a576200051962000299565b5b620005268254620002f3565b620005338282856200045c565b5f60209050601f83116001811462000569575f841562000554578287015190505b620005608582620004d6565b865550620005cf565b601f198416620005798662000327565b5f5b82811015620005a2578489015182556001820191506020850194506020810190506200057b565b86831015620005c25784890151620005be601f891682620004b8565b8355505b6001600288020188555050505b505050505050565b620005e281620003a9565b82525050565b5f602082019050620005fd5f830184620005d7565b92915050565b61166880620006115f395ff3fe608060405234801561000f575f80fd5b50600436106100f3575f3560e01c8063715018a611610095578063a9059cbb11610064578063a9059cbb14610263578063dd62ed3e14610293578063ea414b28146102c3578063f2fde38b146102df576100f3565b8063715018a6146101ff57806372685eab146102095780638da5cb5b1461022757806395d89b4114610245576100f3565b806323b872dd116100d157806323b872dd146101635780632dc0562d14610193578063313ce567146101b157806370a08231146101cf576100f3565b806306fdde03146100f7578063095ea7b31461011557806318160ddd14610145575b5f80fd5b6100ff6102fb565b60405161010c919061121e565b60405180910390f35b61012f600480360381019061012a91906112cf565b610386565b60405161013c9190611327565b60405180910390f35b61014d610473565b60405161015a919061134f565b60405180910390f35b61017d60048036038101906101789190611368565b610484565b60405161018a9190611327565b60405180910390f35b61019b6109ec565b6040516101a891906113c7565b60405180910390f35b6101b9610a11565b6040516101c691906113fb565b60405180910390f35b6101e960048036038101906101e49190611414565b610a16565b6040516101f6919061134f565b60405180910390f35b610207610a5c565b005b610211610a6f565b60405161021e919061134f565b60405180910390f35b61022f610a73565b60405161023c91906113c7565b60405180910390f35b61024d610a9b565b60405161025a919061121e565b60405180910390f35b61027d600480360381019061027891906112cf565b610b27565b60405161028a9190611327565b60405180910390f35b6102ad60048036038101906102a8919061143f565b610ec9565b6040516102ba919061134f565b60405180910390f35b6102dd60048036038101906102d89190611414565b610f4b565b005b6102f960048036038101906102f49190611414565b610f96565b005b5f8054610307906114aa565b80601f0160208091040260200160405190810160405280929190818152602001828054610333906114aa565b801561037e5780601f106103555761010080835404028352916020019161037e565b820191905f5260205f20905b81548152906001019060200180831161036157829003601f168201915b505050505081565b5f8160045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610461919061134f565b60405180910390a36001905092915050565b6c054f529ca52576bc689200000081565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036104f557826040517f01cc0e810000000000000000000000000000000000000000000000000000000081526004016104ec91906113c7565b60405180910390fd5b60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548211156105b65760035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054826040517fcf4791810000000000000000000000000000000000000000000000000000000081526004016105ad9291906114da565b60405180910390fd5b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548211156106ed5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054826040517f2a1b2dd80000000000000000000000000000000000000000000000000000000081526004016106e49291906114da565b60405180910390fd5b5f806107488460025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161461101a565b915091508360035f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610798919061152e565b925050819055508160035f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461080c9190611561565b925050819055508360045f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461089a919061152e565b925050819055508060035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546108ed9190611561565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610951919061134f565b60405180910390a360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516109d7919061134f565b60405180910390a36001925050509392505050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601281565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a64611058565b610a6d5f6110d1565b565b5f81565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60018054610aa8906114aa565b80601f0160208091040260200160405190810160405280929190818152602001828054610ad4906114aa565b8015610b1f5780601f10610af657610100808354040283529160200191610b1f565b820191905f5260205f20905b815481529060010190602001808311610b0257829003601f168201915b505050505081565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b9857826040517f01cc0e81000000000000000000000000000000000000000000000000000000008152600401610b8f91906113c7565b60405180910390fd5b60035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054821115610c595760035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054826040517fcf479181000000000000000000000000000000000000000000000000000000008152600401610c509291906114da565b60405180910390fd5b5f80610cb48460025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461101a565b915091508360035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610d04919061152e565b925050819055508160035f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610d789190611561565b925050819055508060035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610dcb9190611561565b925050819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e2f919061134f565b60405180910390a360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610eb5919061134f565b60405180910390a360019250505092915050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610f53611058565b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610f9e611058565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361100e57806040517f01cc0e8100000000000000000000000000000000000000000000000000000000815260040161100591906113c7565b60405180910390fd5b611017816110d1565b50565b5f808261103f576127105f856110309190611594565b61103a9190611602565b611041565b5f5b9150818461104f919061152e565b90509250929050565b3373ffffffffffffffffffffffffffffffffffffffff16611077610a73565b73ffffffffffffffffffffffffffffffffffffffff16146110cf57336040517fa815108e0000000000000000000000000000000000000000000000000000000081526004016110c691906113c7565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156111cb5780820151818401526020810190506111b0565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6111f082611194565b6111fa818561119e565b935061120a8185602086016111ae565b611213816111d6565b840191505092915050565b5f6020820190508181035f83015261123681846111e6565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61126b82611242565b9050919050565b61127b81611261565b8114611285575f80fd5b50565b5f8135905061129681611272565b92915050565b5f819050919050565b6112ae8161129c565b81146112b8575f80fd5b50565b5f813590506112c9816112a5565b92915050565b5f80604083850312156112e5576112e461123e565b5b5f6112f285828601611288565b9250506020611303858286016112bb565b9150509250929050565b5f8115159050919050565b6113218161130d565b82525050565b5f60208201905061133a5f830184611318565b92915050565b6113498161129c565b82525050565b5f6020820190506113625f830184611340565b92915050565b5f805f6060848603121561137f5761137e61123e565b5b5f61138c86828701611288565b935050602061139d86828701611288565b92505060406113ae868287016112bb565b9150509250925092565b6113c181611261565b82525050565b5f6020820190506113da5f8301846113b8565b92915050565b5f60ff82169050919050565b6113f5816113e0565b82525050565b5f60208201905061140e5f8301846113ec565b92915050565b5f602082840312156114295761142861123e565b5b5f61143684828501611288565b91505092915050565b5f80604083850312156114555761145461123e565b5b5f61146285828601611288565b925050602061147385828601611288565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806114c157607f821691505b6020821081036114d4576114d361147d565b5b50919050565b5f6040820190506114ed5f830185611340565b6114fa6020830184611340565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6115388261129c565b91506115438361129c565b925082820390508181111561155b5761155a611501565b5b92915050565b5f61156b8261129c565b91506115768361129c565b925082820190508082111561158e5761158d611501565b5b92915050565b5f61159e8261129c565b91506115a98361129c565b92508282026115b78161129c565b915082820484148315176115ce576115cd611501565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61160c8261129c565b91506116178361129c565b925082611627576116266115d5565b5b82820490509291505056fea2646970667358221220a22baf77671bac7151270728122974cc6ff6da68b9c2acd49ee8768af9d284cb64736f6c63430008140033

Deployed Bytecode

0x608060405234801561000f575f80fd5b50600436106100f3575f3560e01c8063715018a611610095578063a9059cbb11610064578063a9059cbb14610263578063dd62ed3e14610293578063ea414b28146102c3578063f2fde38b146102df576100f3565b8063715018a6146101ff57806372685eab146102095780638da5cb5b1461022757806395d89b4114610245576100f3565b806323b872dd116100d157806323b872dd146101635780632dc0562d14610193578063313ce567146101b157806370a08231146101cf576100f3565b806306fdde03146100f7578063095ea7b31461011557806318160ddd14610145575b5f80fd5b6100ff6102fb565b60405161010c919061121e565b60405180910390f35b61012f600480360381019061012a91906112cf565b610386565b60405161013c9190611327565b60405180910390f35b61014d610473565b60405161015a919061134f565b60405180910390f35b61017d60048036038101906101789190611368565b610484565b60405161018a9190611327565b60405180910390f35b61019b6109ec565b6040516101a891906113c7565b60405180910390f35b6101b9610a11565b6040516101c691906113fb565b60405180910390f35b6101e960048036038101906101e49190611414565b610a16565b6040516101f6919061134f565b60405180910390f35b610207610a5c565b005b610211610a6f565b60405161021e919061134f565b60405180910390f35b61022f610a73565b60405161023c91906113c7565b60405180910390f35b61024d610a9b565b60405161025a919061121e565b60405180910390f35b61027d600480360381019061027891906112cf565b610b27565b60405161028a9190611327565b60405180910390f35b6102ad60048036038101906102a8919061143f565b610ec9565b6040516102ba919061134f565b60405180910390f35b6102dd60048036038101906102d89190611414565b610f4b565b005b6102f960048036038101906102f49190611414565b610f96565b005b5f8054610307906114aa565b80601f0160208091040260200160405190810160405280929190818152602001828054610333906114aa565b801561037e5780601f106103555761010080835404028352916020019161037e565b820191905f5260205f20905b81548152906001019060200180831161036157829003601f168201915b505050505081565b5f8160045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610461919061134f565b60405180910390a36001905092915050565b6c054f529ca52576bc689200000081565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036104f557826040517f01cc0e810000000000000000000000000000000000000000000000000000000081526004016104ec91906113c7565b60405180910390fd5b60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548211156105b65760035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054826040517fcf4791810000000000000000000000000000000000000000000000000000000081526004016105ad9291906114da565b60405180910390fd5b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548211156106ed5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054826040517f2a1b2dd80000000000000000000000000000000000000000000000000000000081526004016106e49291906114da565b60405180910390fd5b5f806107488460025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161461101a565b915091508360035f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610798919061152e565b925050819055508160035f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461080c9190611561565b925050819055508360045f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461089a919061152e565b925050819055508060035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546108ed9190611561565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610951919061134f565b60405180910390a360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516109d7919061134f565b60405180910390a36001925050509392505050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601281565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a64611058565b610a6d5f6110d1565b565b5f81565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60018054610aa8906114aa565b80601f0160208091040260200160405190810160405280929190818152602001828054610ad4906114aa565b8015610b1f5780601f10610af657610100808354040283529160200191610b1f565b820191905f5260205f20905b815481529060010190602001808311610b0257829003601f168201915b505050505081565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b9857826040517f01cc0e81000000000000000000000000000000000000000000000000000000008152600401610b8f91906113c7565b60405180910390fd5b60035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054821115610c595760035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054826040517fcf479181000000000000000000000000000000000000000000000000000000008152600401610c509291906114da565b60405180910390fd5b5f80610cb48460025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461101a565b915091508360035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610d04919061152e565b925050819055508160035f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610d789190611561565b925050819055508060035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610dcb9190611561565b925050819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e2f919061134f565b60405180910390a360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610eb5919061134f565b60405180910390a360019250505092915050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610f53611058565b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610f9e611058565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361100e57806040517f01cc0e8100000000000000000000000000000000000000000000000000000000815260040161100591906113c7565b60405180910390fd5b611017816110d1565b50565b5f808261103f576127105f856110309190611594565b61103a9190611602565b611041565b5f5b9150818461104f919061152e565b90509250929050565b3373ffffffffffffffffffffffffffffffffffffffff16611077610a73565b73ffffffffffffffffffffffffffffffffffffffff16146110cf57336040517fa815108e0000000000000000000000000000000000000000000000000000000081526004016110c691906113c7565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156111cb5780820151818401526020810190506111b0565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6111f082611194565b6111fa818561119e565b935061120a8185602086016111ae565b611213816111d6565b840191505092915050565b5f6020820190508181035f83015261123681846111e6565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61126b82611242565b9050919050565b61127b81611261565b8114611285575f80fd5b50565b5f8135905061129681611272565b92915050565b5f819050919050565b6112ae8161129c565b81146112b8575f80fd5b50565b5f813590506112c9816112a5565b92915050565b5f80604083850312156112e5576112e461123e565b5b5f6112f285828601611288565b9250506020611303858286016112bb565b9150509250929050565b5f8115159050919050565b6113218161130d565b82525050565b5f60208201905061133a5f830184611318565b92915050565b6113498161129c565b82525050565b5f6020820190506113625f830184611340565b92915050565b5f805f6060848603121561137f5761137e61123e565b5b5f61138c86828701611288565b935050602061139d86828701611288565b92505060406113ae868287016112bb565b9150509250925092565b6113c181611261565b82525050565b5f6020820190506113da5f8301846113b8565b92915050565b5f60ff82169050919050565b6113f5816113e0565b82525050565b5f60208201905061140e5f8301846113ec565b92915050565b5f602082840312156114295761142861123e565b5b5f61143684828501611288565b91505092915050565b5f80604083850312156114555761145461123e565b5b5f61146285828601611288565b925050602061147385828601611288565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806114c157607f821691505b6020821081036114d4576114d361147d565b5b50919050565b5f6040820190506114ed5f830185611340565b6114fa6020830184611340565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6115388261129c565b91506115438361129c565b925082820390508181111561155b5761155a611501565b5b92915050565b5f61156b8261129c565b91506115768361129c565b925082820190508082111561158e5761158d611501565b5b92915050565b5f61159e8261129c565b91506115a98361129c565b92508282026115b78161129c565b915082820484148315176115ce576115cd611501565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61160c8261129c565b91506116178361129c565b925082611627576116266115d5565b5b82820490509291505056fea2646970667358221220a22baf77671bac7151270728122974cc6ff6da68b9c2acd49ee8768af9d284cb64736f6c63430008140033

Deployed Bytecode Sourcemap

163:7826:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;190:34;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4237:239;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;269:64;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2956:947;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;382:69;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;340:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1372:117;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6838:103;;;:::i;:::-;;458:45;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6167:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;231:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1798:760;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4813:171;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5828:100;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7096:220;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;190:34;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4237:239::-;4329:12;4386:6;4354:7;:19;4362:10;4354:19;;;;;;;;;;;;;;;:29;4374:8;4354:29;;;;;;;;;;;;;;;:38;;;;4429:8;4408:38;;4417:10;4408:38;;;4439:6;4408:38;;;;;;:::i;:::-;;;;;;;;4464:4;4457:11;;4237:239;;;;:::o;269:64::-;307:26;269:64;:::o;2956:947::-;3072:12;3116:1;3101:17;;:3;:17;;;3097:83;;3164:3;3142:26;;;;;;;;;;;:::i;:::-;;;;;;;;3097:83;3203:8;:15;3212:5;3203:15;;;;;;;;;;;;;;;;3194:6;:24;3190:108;;;3262:8;:15;3271:5;3262:15;;;;;;;;;;;;;;;;3279:6;3242:44;;;;;;;;;;;;:::i;:::-;;;;;;;;3190:108;3321:7;:14;3329:5;3321:14;;;;;;;;;;;;;;;:26;3336:10;3321:26;;;;;;;;;;;;;;;;3312:6;:35;3308:132;;;3393:7;:14;3401:5;3393:14;;;;;;;;;;;;;;;:26;3408:10;3393:26;;;;;;;;;;;;;;;;3421:6;3371:57;;;;;;;;;;;;:::i;:::-;;;;;;;;3308:132;3451:17;3470:19;3493:79;3522:6;3552:9;;;;;;;;;;;3543:18;;:5;:18;;;3493:14;:79::i;:::-;3450:122;;;;3602:6;3583:8;:15;3592:5;3583:15;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;3642:9;3619:8;:19;3628:9;;;;;;;;;;;3619:19;;;;;;;;;;;;;;;;:32;;;;;;;:::i;:::-;;;;;;;;3726:6;3696:7;:14;3704:5;3696:14;;;;;;;;;;;;;;;:26;3711:10;3696:26;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;3760:11;3743:8;:13;3752:3;3743:13;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;3803:3;3787:33;;3796:5;3787:33;;;3808:11;3787:33;;;;;;:::i;:::-;;;;;;;;3852:9;;;;;;;;;;;3836:37;;3845:5;3836:37;;;3863:9;3836:37;;;;;;:::i;:::-;;;;;;;;3891:4;3884:11;;;;2956:947;;;;;:::o;382:69::-;;;;;;;;;;;;;:::o;340:35::-;373:2;340:35;:::o;1372:117::-;1429:15;1464:8;:17;1473:7;1464:17;;;;;;;;;;;;;;;;1457:24;;1372:117;;;:::o;6838:103::-;6053:13;:11;:13::i;:::-;6903:30:::1;6930:1;6903:18;:30::i;:::-;6838:103::o:0;458:45::-;502:1;458:45;:::o;6167:87::-;6213:7;6240:6;;;;;;;;;;;6233:13;;6167:87;:::o;231:31::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1798:760::-;1886:12;1930:1;1915:17;;:3;:17;;;1911:83;;1978:3;1956:26;;;;;;;;;;;:::i;:::-;;;;;;;;1911:83;2017:8;:20;2026:10;2017:20;;;;;;;;;;;;;;;;2008:6;:29;2004:118;;;2081:8;:20;2090:10;2081:20;;;;;;;;;;;;;;;;2103:6;2061:49;;;;;;;;;;;;:::i;:::-;;;;;;;;2004:118;2133:17;2152:19;2175:84;2204:6;2239:9;;;;;;;;;;;2225:23;;:10;:23;;;2175:14;:84::i;:::-;2132:127;;;;2294:6;2270:8;:20;2279:10;2270:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;2334:9;2311:8;:19;2320:9;;;;;;;;;;;2311:19;;;;;;;;;;;;;;;;:32;;;;;;;:::i;:::-;;;;;;;;2405:11;2388:8;:13;2397:3;2388:13;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;2453:3;2432:38;;2441:10;2432:38;;;2458:11;2432:38;;;;;;:::i;:::-;;;;;;;;2507:9;;;;;;;;;;;2486:42;;2495:10;2486:42;;;2518:9;2486:42;;;;;;:::i;:::-;;;;;;;;2546:4;2539:11;;;;1798:760;;;;:::o;4813:171::-;4913:17;4950:7;:16;4958:7;4950:16;;;;;;;;;;;;;;;:26;4967:8;4950:26;;;;;;;;;;;;;;;;4943:33;;4813:171;;;;:::o;5828:100::-;6053:13;:11;:13::i;:::-;5910:10:::1;5898:9;;:22;;;;;;;;;;;;;;;;;;5828:100:::0;:::o;7096:220::-;6053:13;:11;:13::i;:::-;7201:1:::1;7181:22;;:8;:22;;::::0;7177:93:::1;;7249:8;7227:31;;;;;;;;;;;:::i;:::-;;;;;;;;7177:93;7280:28;7299:8;7280:18;:28::i;:::-;7096:220:::0;:::o;5375:276::-;5482:17;5501:19;5545:12;:55;;5595:5;502:1;5565:6;:26;;;;:::i;:::-;5564:36;;;;:::i;:::-;5545:55;;;5560:1;5545:55;5533:67;;5634:9;5625:6;:18;;;;:::i;:::-;5611:32;;5375:276;;;;;:::o;6332:155::-;6403:10;6392:21;;:7;:5;:7::i;:::-;:21;;;6388:92;;6457:10;6437:31;;;;;;;;;;;:::i;:::-;;;;;;;;6388:92;6332:155::o;7476:191::-;7550:16;7569:6;;;;;;;;;;;7550:25;;7595:8;7586:6;;:17;;;;;;;;;;;;;;;;;;7650:8;7619:40;;7640:8;7619:40;;;;;;;;;;;;7539:128;7476:191;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:118::-;4510:24;4528:5;4510:24;:::i;:::-;4505:3;4498:37;4423:118;;:::o;4547:222::-;4640:4;4678:2;4667:9;4663:18;4655:26;;4691:71;4759:1;4748:9;4744:17;4735:6;4691:71;:::i;:::-;4547:222;;;;:::o;4775:86::-;4810:7;4850:4;4843:5;4839:16;4828:27;;4775:86;;;:::o;4867:112::-;4950:22;4966:5;4950:22;:::i;:::-;4945:3;4938:35;4867:112;;:::o;4985:214::-;5074:4;5112:2;5101:9;5097:18;5089:26;;5125:67;5189:1;5178:9;5174:17;5165:6;5125:67;:::i;:::-;4985:214;;;;:::o;5205:329::-;5264:6;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5205:329;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:180::-;6068:77;6065:1;6058:88;6165:4;6162:1;6155:15;6189:4;6186:1;6179:15;6206:320;6250:6;6287:1;6281:4;6277:12;6267:22;;6334:1;6328:4;6324:12;6355:18;6345:81;;6411:4;6403:6;6399:17;6389:27;;6345:81;6473:2;6465:6;6462:14;6442:18;6439:38;6436:84;;6492:18;;:::i;:::-;6436:84;6257:269;6206:320;;;:::o;6532:332::-;6653:4;6691:2;6680:9;6676:18;6668:26;;6704:71;6772:1;6761:9;6757:17;6748:6;6704:71;:::i;:::-;6785:72;6853:2;6842:9;6838:18;6829:6;6785:72;:::i;:::-;6532:332;;;;;:::o;6870:180::-;6918:77;6915:1;6908:88;7015:4;7012:1;7005:15;7039:4;7036:1;7029:15;7056:194;7096:4;7116:20;7134:1;7116:20;:::i;:::-;7111:25;;7150:20;7168:1;7150:20;:::i;:::-;7145:25;;7194:1;7191;7187:9;7179:17;;7218:1;7212:4;7209:11;7206:37;;;7223:18;;:::i;:::-;7206:37;7056:194;;;;:::o;7256:191::-;7296:3;7315:20;7333:1;7315:20;:::i;:::-;7310:25;;7349:20;7367:1;7349:20;:::i;:::-;7344:25;;7392:1;7389;7385:9;7378:16;;7413:3;7410:1;7407:10;7404:36;;;7420:18;;:::i;:::-;7404:36;7256:191;;;;:::o;7453:410::-;7493:7;7516:20;7534:1;7516:20;:::i;:::-;7511:25;;7550:20;7568:1;7550:20;:::i;:::-;7545:25;;7605:1;7602;7598:9;7627:30;7645:11;7627:30;:::i;:::-;7616:41;;7806:1;7797:7;7793:15;7790:1;7787:22;7767:1;7760:9;7740:83;7717:139;;7836:18;;:::i;:::-;7717:139;7501:362;7453:410;;;;:::o;7869:180::-;7917:77;7914:1;7907:88;8014:4;8011:1;8004:15;8038:4;8035:1;8028:15;8055:185;8095:1;8112:20;8130:1;8112:20;:::i;:::-;8107:25;;8146:20;8164:1;8146:20;:::i;:::-;8141:25;;8185:1;8175:35;;8190:18;;:::i;:::-;8175:35;8232:1;8229;8225:9;8220:14;;8055:185;;;;:::o

Swarm Source

ipfs://a22baf77671bac7151270728122974cc6ff6da68b9c2acd49ee8768af9d284cb

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.