Contract 0x2A5062D22adCFaAfbd5C541d4dA82E4B450d4212 1

Txn Hash Method
Block
From
To
Value [Txn Fee]
0x755d217c95e869fa35a784f96c6c6031f6da4d9ca941f1debe4822f57e0d996aTransfer383697482022-05-16 14:08:321 day 13 hrs ago0x711da63df9246c8a2b16dac1b344073f01151667 IN  Keep3r: KP3R Token0 FTM0.101630598556
0xee5a794517d9725da06be05dcf54698e819a3dbf23e5315738bd2bed5216a7f6Approve381919072022-05-14 2:06:034 days 1 hr ago0x96d8c4f7839f1da51bfe4d8262d0ab2c842ed02a IN  Keep3r: KP3R Token0 FTM0.008313524247
0x3fc006aecf745e5ecc74857c7c6e1eca7cdee9e8801dec395d0287d2e0bc6e22Approve381098152022-05-12 18:32:145 days 8 hrs ago0xb7d7b246dd04a679e87dff889419877ba70b0ef3 IN  Keep3r: KP3R Token0 FTM1.24008
0xbd6beab8b46d300d3987893704d28bb4f377cdc09fd23845d2818727884bf65eApprove381098152022-05-12 18:32:145 days 8 hrs ago0xb7d7b246dd04a679e87dff889419877ba70b0ef3 IN  Keep3r: KP3R Token0 FTM1.24008
0x3d07db8129fbc2214051cb7bccec8d63d3645366b4666a1531851fc6faaed8bdApprove381098152022-05-12 18:32:145 days 8 hrs ago0xb7d7b246dd04a679e87dff889419877ba70b0ef3 IN  Keep3r: KP3R Token0 FTM0.430055484325
0x28aa3c144a338cb02c5099a25d9b2877d3738d3be2092e5f99b921b618868b66Approve381098112022-05-12 18:32:075 days 8 hrs ago0xb7d7b246dd04a679e87dff889419877ba70b0ef3 IN  Keep3r: KP3R Token0 FTM0.621572354455
0x1b9ae93cea2cb8638fe2c9f5b45c5727aa6ba60aeac6bd5e0c8c91f215164618Approve381085312022-05-12 17:57:005 days 9 hrs ago0xb7d7b246dd04a679e87dff889419877ba70b0ef3 IN  Keep3r: KP3R Token0 FTM0.480537721233
0xf2c943ab62e5a9464281aa4f07b369cdd20f50fbe03db32cf893089f0aff22e5Approve381085312022-05-12 17:57:005 days 9 hrs ago0xb7d7b246dd04a679e87dff889419877ba70b0ef3 IN  Keep3r: KP3R Token0 FTM0.174558797831
0x04c41cf389937559ea67904765abd83df77919cb3ca104cb56630d15b93871a4Approve381085192022-05-12 17:56:435 days 9 hrs ago0xb7d7b246dd04a679e87dff889419877ba70b0ef3 IN  Keep3r: KP3R Token0 FTM0.048823862423
0x8508e523a6a0d2b509acde452c2318742dd6302f9371d683fac1a4c3d3e2a6b0Approve381085182022-05-12 17:56:395 days 9 hrs ago0xb7d7b246dd04a679e87dff889419877ba70b0ef3 IN  Keep3r: KP3R Token0 FTM0.068014156065
0x5cc92d801ed2673da36b04527c7540f1cd2b961fcbdc5b6f1f5213b77014fd2dApprove375592672022-05-04 21:09:2813 days 6 hrs ago0xb2d555044cde0a8a297f082f05ae6b1eff663784 IN  Keep3r: KP3R Token0 FTM0.015837354217
0xaf42b7f6c54d1b3228c433145667222c5f5dd1b6c841ac1502558ab8c0235972Approve375051782022-05-04 3:59:4613 days 23 hrs ago0x96d8c4f7839f1da51bfe4d8262d0ab2c842ed02a IN  Keep3r: KP3R Token0 FTM0.006666751108
0x7b766ff148c1a5c9b9d41047c2139b686faecfb9c8b984b82372d704c97f4cdcApprove374158152022-05-02 22:37:3315 days 4 hrs ago0x32286ad4a0c602105f888d698f80a7a5275a1654 IN  Keep3r: KP3R Token0 FTM0.017986327405
0xad16e7830338e9affaf5577514f5c3b44ddd3c4bccb3ce45bbf44f461a761c3dApprove374077372022-05-02 19:17:1815 days 8 hrs ago0x2b69c78433c10e3e6d7af5e8bff372b34a91024f IN  Keep3r: KP3R Token0 FTM0.018673645147
0x1dffb4fb5d4bea579200048ec0e2f83a15f17fb5e99f77aa0cba39fe0f8541baApprove373863732022-05-02 10:13:1415 days 17 hrs ago0xfb17d5cd85854b6bee89e714591de521f3169de5 IN  Keep3r: KP3R Token0 FTM0.012470769
0xd9289a73b315729d19b4150284c89d30f07c383387186fcd2b194ed205af0c6fApprove373641222022-05-02 2:21:3416 days 1 hr ago0x31f69ead6b27adac08dd060e67d3d8ecf5118326 IN  Keep3r: KP3R Token0 FTM0.027417009
0x9f0db0cd223b8c65af3e152e4bd18d5e8f93d24b88e67365f6e33012570fcbcfApprove373534782022-05-01 22:26:3816 days 4 hrs ago0xeb10a955cfd0c9b9f192b0d0d820158dec8ffd7f IN  Keep3r: KP3R Token0 FTM0.033021849
0x0c1ccd5458014b14c18cf370c4af8ada57935a56ff8dc9ff7b5fb3218645f5feApprove373418372022-05-01 17:25:4216 days 9 hrs ago0x96d8c4f7839f1da51bfe4d8262d0ab2c842ed02a IN  Keep3r: KP3R Token0 FTM0.037926084
0x8ad2c2ffb584ed3148654b4e0819c9822951181ade12b6b1f5d51e484e81682eApprove373031572022-05-01 1:28:1117 days 1 hr ago0x32286ad4a0c602105f888d698f80a7a5275a1654 IN  Keep3r: KP3R Token0 FTM0.038393154
0xf92dc20ec5b40cc84ee0afbb3f9c4fcd2f2704282cf01bedc9edbc9f729943e3Approve372975432022-04-30 22:28:3517 days 4 hrs ago0x84d0f74d21a89f86b67e9a38d8559d0b4e10f12d IN  Keep3r: KP3R Token0 FTM0.197682452
0x84ec774bbb30df60010d95f088c3121f12906ae47f021225ceb3d9cc56aac401Approve372811282022-04-30 14:01:3417 days 13 hrs ago0x2b69c78433c10e3e6d7af5e8bff372b34a91024f IN  Keep3r: KP3R Token0 FTM0.031573932
0xed2b548fc1710648060de4593f889e2814e0f49e0a1e7f6b378c8a7ee05d402eApprove372766602022-04-30 12:11:0117 days 15 hrs ago0x4e354372ae2aec2874c26fd3f57e5daf7b7836ea IN  Keep3r: KP3R Token0 FTM0.022279239
0x5a88678942effb297f384f8c8b8e9d5524a6226feb499e4fa4c2fc52e9a3701bApprove372576452022-04-30 5:04:2817 days 22 hrs ago0x60fb4b046b07ce529fb93598286339873d26dd0c IN  Keep3r: KP3R Token0 FTM0.019243284
0xc6e61eb85de4ca957a41673bb37eeb29ced4f47d59133eec42ace194df836aedApprove372549012022-04-30 4:16:2717 days 23 hrs ago0x9c17cece537656f5a1979ae8afef07aaba990f2f IN  Keep3r: KP3R Token0 FTM0.025828971
0x0e91a969b3830847f09e905a05bab07aa00fc4e5e75f4199aac5b946196d066cApprove372470572022-04-30 1:31:0518 days 1 hr ago0xbdd71ca2bdccee92f13faae22ecfe9fecdcbf89f IN  Keep3r: KP3R Token0 FTM0.031433811
[ Download CSV Export 

OVERVIEW

Keep3r Network is a decentralized keeper network for projects that need external devops and for external teams to find keeper jobs.

Latest 4 internal transactions
Parent Txn Hash Block From To Value
0x0278ccaac061da1142c9649706212544def54c6f5b1591f1ba0c26b1241e4419275114432022-01-10 2:28:29128 days 57 mins ago 0xa1552288d1a33df464a2971b7698afb599774e8e Keep3r: KP3R Token34 FTM
0x5b05961bc778b870fe9758647de2522bc8d9a3b6d5f4b4ee8162fd0feb60b028275114122022-01-10 2:28:04128 days 57 mins ago 0xa1552288d1a33df464a2971b7698afb599774e8e Keep3r: KP3R Token34 FTM
0x8426a44b88073ce76f7332d7852e9f37e68f15fc159fdaaa8d4961208436a61e258256822021-12-23 18:34:22145 days 8 hrs ago 0xebf4fbb9c81b84dd5cf89bc75588e5d0018501b3 Keep3r: KP3R Token28.99 FTM
0xe890ed70166d6c7ed98fbe28eb85c168e77eab7d8e23d968d06f84589735c09a23012462021-02-19 18:36:04452 days 8 hrs ago Fantom: Deployer  Contract Creation0 FTM
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
KP3R

Compiler Version
v0.8.1+commit.df193b15

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at FtmScan.com on 2021-02-19
*/

// SPDX-License-Identifier: GPL-3.0-or-later

pragma solidity 0.8.1;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

/**
 * @dev Interface of the ERC2612 standard as defined in the EIP.
 *
 * Adds the {permit} method, which can be used to change one's
 * {IERC20-allowance} without having to send a transaction, by signing a
 * message. This allows users to spend tokens without having to hold Ether.
 *
 * See https://eips.ethereum.org/EIPS/eip-2612.
 */
interface IERC2612 {
    /**
     * @dev Sets `amount` as the allowance of `spender` over `owner`'s tokens,
     * given `owner`'s signed approval.
     *
     * IMPORTANT: The same issues {IERC20-approve} has related to transaction
     * ordering also apply here.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     * - `deadline` must be a timestamp in the future.
     * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`
     * over the EIP712-formatted function arguments.
     * - the signature must use ``owner``'s current nonce (see {nonces}).
     *
     * For more information on the signature format, see the
     * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP
     * section].
     */
    function permit(address owner, address spender, uint256 amount, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external;

    /**
     * @dev Returns the current ERC2612 nonce for `owner`. This value must be
     * included whenever a signature is generated for {permit}.
     *
     * Every successful call to {permit} increases ``owner``'s nonce by one. This
     * prevents a signature from being used multiple times.
     */
    function nonces(address owner) external view returns (uint256);
}

/// @dev Wrapped ERC-20 v10 (WERC10) is an ERC-20 ERC-20 wrapper. You can `deposit` ERC-20 and obtain an WERC10 balance which can then be operated as an ERC-20 token. You can
/// `withdraw` ERC-20 from WERC10, which will then burn WERC10 token in your wallet. The amount of WERC10 token in any wallet is always identical to the
/// balance of ERC-20 deposited minus the ERC-20 withdrawn with that specific wallet.
interface IWERC10 is IERC20, IERC2612 {

    /// @dev Sets `value` as allowance of `spender` account over caller account's WERC10 token,
    /// after which a call is executed to an ERC677-compliant contract with the `data` parameter.
    /// Emits {Approval} event.
    /// Returns boolean value indicating whether operation succeeded.
    /// For more information on approveAndCall format, see https://github.com/ethereum/EIPs/issues/677.
    function approveAndCall(address spender, uint256 value, bytes calldata data) external returns (bool);

    /// @dev Moves `value` WERC10 token from caller's account to account (`to`), 
    /// after which a call is executed to an ERC677-compliant contract with the `data` parameter.
    /// A transfer to `address(0)` triggers an ERC-20 withdraw matching the sent WERC10 token in favor of caller.
    /// Emits {Transfer} event.
    /// Returns boolean value indicating whether operation succeeded.
    /// Requirements:
    ///   - caller account must have at least `value` WERC10 token.
    /// For more information on transferAndCall format, see https://github.com/ethereum/EIPs/issues/677.
    function transferAndCall(address to, uint value, bytes calldata data) external returns (bool);
}

interface ITransferReceiver {
    function onTokenTransfer(address, uint, bytes calldata) external returns (bool);
}

interface IApprovalReceiver {
    function onTokenApproval(address, uint, bytes calldata) external returns (bool);
}

library Address {
    function isContract(address account) internal view returns (bool) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != 0x0 && codehash != accountHash);
    }
}

library SafeERC20 {
    using Address for address;

    function safeTransfer(IERC20 token, address to, uint value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(IERC20 token, address from, address to, uint value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }

    function safeApprove(IERC20 token, address spender, uint value) internal {
        require((value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }
    function callOptionalReturn(IERC20 token, bytes memory data) private {
        require(address(token).isContract(), "SafeERC20: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = address(token).call(data);
        require(success, "SafeERC20: low-level call failed");

        if (returndata.length > 0) { // Return data is optional
            // solhint-disable-next-line max-line-length
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

/// @dev Wrapped Ether v10 (WERC10) is an Ether (ETH) ERC-20 wrapper. You can `deposit` ETH and obtain an WERC10 balance which can then be operated as an ERC-20 token. You can
/// `withdraw` ETH from WERC10, which will then burn WERC10 token in your wallet. The amount of WERC10 token in any wallet is always identical to the
/// balance of ETH deposited minus the ETH withdrawn with that specific wallet.
contract KP3R is IWERC10 {
    using SafeERC20 for IERC20;
    string public name;
    string public symbol;
    uint8  public immutable decimals;

    bytes32 public constant PERMIT_TYPEHASH = keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");
    bytes32 public constant TRANSFER_TYPEHASH = keccak256("Transfer(address owner,address to,uint256 value,uint256 nonce,uint256 deadline)");
    bytes32 public immutable DOMAIN_SEPARATOR;

    /// @dev Records amount of WERC10 token owned by account.
    mapping (address => uint256) public override balanceOf;
    uint256 private _totalSupply;
    
    address private _oldOwner;
    address private _newOwner;
    uint256 private _newOwnerEffectiveTime;
    
    
    modifier onlyOwner() {
        require(msg.sender == owner(), "only owner");
        _;
    }
    
    function owner() public view returns (address) {
        if (block.timestamp >= _newOwnerEffectiveTime) {
            return _newOwner;
        }
        return _oldOwner;
    }
    
    
    function changeDCRMOwner(address newOwner) public onlyOwner returns (bool) {
        require(newOwner != address(0), "new owner is the zero address");
        _oldOwner = owner();
        _newOwner = newOwner;
        _newOwnerEffectiveTime = block.timestamp + 2*24*3600;
        emit LogChangeDCRMOwner(_oldOwner, _newOwner, _newOwnerEffectiveTime);
        return true;
    }

    function Swapin(bytes32 txhash, address account, uint256 amount) public onlyOwner returns (bool) {
        _mint(account, amount);
        emit LogSwapin(txhash, account, amount);
        return true;
    }

    function Swapout(uint256 amount, address bindaddr) public returns (bool) {
        require(bindaddr != address(0), "bind address is the zero address");
        _burn(msg.sender, amount);
        emit LogSwapout(msg.sender, bindaddr, amount);
        return true;
    }

    /// @dev Records current ERC2612 nonce for account. This value must be included whenever signature is generated for {permit}.
    /// Every successful call to {permit} increases account's nonce by one. This prevents signature from being used multiple times.
    mapping (address => uint256) public override nonces;

    /// @dev Records number of WERC10 token that account (second) will be allowed to spend on behalf of another account (first) through {transferFrom}.
    mapping (address => mapping (address => uint256)) public override allowance;
    
    event LogChangeDCRMOwner(address indexed oldOwner, address indexed newOwner, uint indexed effectiveTime);
    event LogSwapin(bytes32 indexed txhash, address indexed account, uint amount);
    event LogSwapout(address indexed account, address indexed bindaddr, uint amount);
    
    constructor(string memory _name, string memory _symbol, uint8 _decimals, address _owner) {
        name = _name;
        symbol = _symbol;
        decimals = _decimals;
        
        _newOwner = _owner;
        _newOwnerEffectiveTime = block.timestamp;
        
        uint256 chainId;
        assembly {chainId := chainid()}
        DOMAIN_SEPARATOR = keccak256(
            abi.encode(
                keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"),
                keccak256(bytes(name)),
                keccak256(bytes("1")),
                chainId,
                address(this)));
    }
    
    /// @dev Returns the total supply of WERC10 token as the ETH held in this contract.
    function totalSupply() external view override returns (uint256) {
        return _totalSupply;
    }
    
    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements
     *
     * - `to` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply += amount;
        balanceOf[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal {
        require(account != address(0), "ERC20: burn from the zero address");

        balanceOf[account] -= amount;
        _totalSupply -= amount;
        emit Transfer(account, address(0), amount);
    }
    
    /// @dev Sets `value` as allowance of `spender` account over caller account's WERC10 token.
    /// Emits {Approval} event.
    /// Returns boolean value indicating whether operation succeeded.
    function approve(address spender, uint256 value) external override returns (bool) {
        // _approve(msg.sender, spender, value);
        allowance[msg.sender][spender] = value;
        emit Approval(msg.sender, spender, value);

        return true;
    }

    /// @dev Sets `value` as allowance of `spender` account over caller account's WERC10 token,
    /// after which a call is executed to an ERC677-compliant contract with the `data` parameter.
    /// Emits {Approval} event.
    /// Returns boolean value indicating whether operation succeeded.
    /// For more information on approveAndCall format, see https://github.com/ethereum/EIPs/issues/677.
    function approveAndCall(address spender, uint256 value, bytes calldata data) external override returns (bool) {
        // _approve(msg.sender, spender, value);
        allowance[msg.sender][spender] = value;
        emit Approval(msg.sender, spender, value);
        
        return IApprovalReceiver(spender).onTokenApproval(msg.sender, value, data);
    }

    /// @dev Sets `value` as allowance of `spender` account over `owner` account's WERC10 token, given `owner` account's signed approval.
    /// Emits {Approval} event.
    /// Requirements:
    ///   - `deadline` must be timestamp in future.
    ///   - `v`, `r` and `s` must be valid `secp256k1` signature from `owner` account over EIP712-formatted function arguments.
    ///   - the signature must use `owner` account's current nonce (see {nonces}).
    ///   - the signer cannot be zero address and must be `owner` account.
    /// For more information on signature format, see https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section].
    /// WERC10 token implementation adapted from https://github.com/albertocuestacanada/ERC20Permit/blob/master/contracts/ERC20Permit.sol.
    function permit(address target, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external override {
        require(block.timestamp <= deadline, "WERC10: Expired permit");

        bytes32 hashStruct = keccak256(
            abi.encode(
                PERMIT_TYPEHASH,
                target,
                spender,
                value,
                nonces[target]++,
                deadline));

        require(verifyEIP712(target, hashStruct, v, r, s) || verifyPersonalSign(target, hashStruct, v, r, s));

        // _approve(owner, spender, value);
        allowance[target][spender] = value;
        emit Approval(target, spender, value);
    }

    function transferWithPermit(address target, address to, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external returns (bool) {
        require(block.timestamp <= deadline, "WERC10: Expired permit");

        bytes32 hashStruct = keccak256(
            abi.encode(
                TRANSFER_TYPEHASH,
                target,
                to,
                value,
                nonces[target]++,
                deadline));

        require(verifyEIP712(target, hashStruct, v, r, s) || verifyPersonalSign(target, hashStruct, v, r, s));

        require(to != address(0) || to != address(this));
        
        uint256 balance = balanceOf[target];
        require(balance >= value, "WERC10: transfer amount exceeds balance");

        balanceOf[target] = balance - value;
        balanceOf[to] += value;
        emit Transfer(target, to, value);
        
        return true;
    }
    
    function verifyEIP712(address target, bytes32 hashStruct, uint8 v, bytes32 r, bytes32 s) internal view returns (bool) {
        bytes32 hash = keccak256(
            abi.encodePacked(
                "\x19\x01",
                DOMAIN_SEPARATOR,
                hashStruct));
        address signer = ecrecover(hash, v, r, s);
        return (signer != address(0) && signer == target);
    }
    
    function verifyPersonalSign(address target, bytes32 hashStruct, uint8 v, bytes32 r, bytes32 s) internal pure returns (bool) {
        bytes32 hash = prefixed(hashStruct);
        address signer = ecrecover(hash, v, r, s);
        return (signer != address(0) && signer == target);
    }
    
    // Builds a prefixed hash to mimic the behavior of eth_sign.
    function prefixed(bytes32 hash) internal pure returns (bytes32) {
        return keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", hash));
    }

    /// @dev Moves `value` WERC10 token from caller's account to account (`to`).
    /// A transfer to `address(0)` triggers an ETH withdraw matching the sent WERC10 token in favor of caller.
    /// Emits {Transfer} event.
    /// Returns boolean value indicating whether operation succeeded.
    /// Requirements:
    ///   - caller account must have at least `value` WERC10 token.
    function transfer(address to, uint256 value) external override returns (bool) {
        require(to != address(0) || to != address(this));
        uint256 balance = balanceOf[msg.sender];
        require(balance >= value, "WERC10: transfer amount exceeds balance");

        balanceOf[msg.sender] = balance - value;
        balanceOf[to] += value;
        emit Transfer(msg.sender, to, value);
        
        return true;
    }

    /// @dev Moves `value` WERC10 token from account (`from`) to account (`to`) using allowance mechanism.
    /// `value` is then deducted from caller account's allowance, unless set to `type(uint256).max`.
    /// A transfer to `address(0)` triggers an ETH withdraw matching the sent WERC10 token in favor of caller.
    /// Emits {Approval} event to reflect reduced allowance `value` for caller account to spend from account (`from`),
    /// unless allowance is set to `type(uint256).max`
    /// Emits {Transfer} event.
    /// Returns boolean value indicating whether operation succeeded.
    /// Requirements:
    ///   - `from` account must have at least `value` balance of WERC10 token.
    ///   - `from` account must have approved caller to spend at least `value` of WERC10 token, unless `from` and caller are the same account.
    function transferFrom(address from, address to, uint256 value) external override returns (bool) {
        require(to != address(0) || to != address(this));
        if (from != msg.sender) {
            // _decreaseAllowance(from, msg.sender, value);
            uint256 allowed = allowance[from][msg.sender];
            if (allowed != type(uint256).max) {
                require(allowed >= value, "WERC10: request exceeds allowance");
                uint256 reduced = allowed - value;
                allowance[from][msg.sender] = reduced;
                emit Approval(from, msg.sender, reduced);
            }
        }
        
        uint256 balance = balanceOf[from];
        require(balance >= value, "WERC10: transfer amount exceeds balance");

        balanceOf[from] = balance - value;
        balanceOf[to] += value;
        emit Transfer(from, to, value);
        
        return true;
    }

    /// @dev Moves `value` WERC10 token from caller's account to account (`to`), 
    /// after which a call is executed to an ERC677-compliant contract with the `data` parameter.
    /// A transfer to `address(0)` triggers an ETH withdraw matching the sent WERC10 token in favor of caller.
    /// Emits {Transfer} event.
    /// Returns boolean value indicating whether operation succeeded.
    /// Requirements:
    ///   - caller account must have at least `value` WERC10 token.
    /// For more information on transferAndCall format, see https://github.com/ethereum/EIPs/issues/677.
    function transferAndCall(address to, uint value, bytes calldata data) external override returns (bool) {
        require(to != address(0) || to != address(this));
        
        uint256 balance = balanceOf[msg.sender];
        require(balance >= value, "WERC10: transfer amount exceeds balance");

        balanceOf[msg.sender] = balance - value;
        balanceOf[to] += value;
        emit Transfer(msg.sender, to, value);

        return ITransferReceiver(to).onTokenTransfer(msg.sender, value, data);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"},{"internalType":"address","name":"_owner","type":"address"}],"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":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"},{"indexed":true,"internalType":"uint256","name":"effectiveTime","type":"uint256"}],"name":"LogChangeDCRMOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"txhash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogSwapin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"bindaddr","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogSwapout","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":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"txhash","type":"bytes32"},{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Swapin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"bindaddr","type":"address"}],"name":"Swapout","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"TRANSFER_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"approveAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"changeDCRMOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","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":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"transferAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"transferWithPermit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

60c06040523480156200001157600080fd5b5060405162001bcc38038062001bcc8339810160408190526200003491620002b1565b83516200004990600090602087019062000158565b5082516200005f90600190602086019062000158565b5060f882901b7fff0000000000000000000000000000000000000000000000000000000000000016608052600580546001600160a01b0319166001600160a01b0383161790554260065560405146907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f90620000de9060009062000350565b60408051918290038220828201825260018352603160f81b60209384015290516200013193927fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6918691309101620003f5565b60408051601f19818403018152919052805160209091012060a05250620004809350505050565b82805462000166906200042d565b90600052602060002090601f0160209004810192826200018a5760008555620001d5565b82601f10620001a557805160ff1916838001178555620001d5565b82800160010185558215620001d5579182015b82811115620001d5578251825591602001919060010190620001b8565b50620001e3929150620001e7565b5090565b5b80821115620001e35760008155600101620001e8565b600082601f8301126200020f578081fd5b81516001600160401b03808211156200022c576200022c6200046a565b604051601f8301601f19908116603f011681019082821181831017156200025757620002576200046a565b8160405283815260209250868385880101111562000273578485fd5b8491505b8382101562000296578582018301518183018401529082019062000277565b83821115620002a757848385830101525b9695505050505050565b60008060008060808587031215620002c7578384fd5b84516001600160401b0380821115620002de578586fd5b620002ec88838901620001fe565b9550602087015191508082111562000302578485fd5b506200031187828801620001fe565b935050604085015160ff8116811462000328578283fd5b60608601519092506001600160a01b038116811462000345578182fd5b939692955090935050565b81546000908190600281046001808316806200036d57607f831692505b60208084108214156200038e57634e487b7160e01b87526022600452602487fd5b818015620003a55760018114620003b757620003e7565b60ff19861689528489019650620003e7565b620003c28a62000421565b885b86811015620003df5781548b820152908501908301620003c4565b505084890196505b509498975050505050505050565b9485526020850193909352604084019190915260608301526001600160a01b0316608082015260a00190565b60009081526020902090565b6002810460018216806200044257607f821691505b602082108114156200046457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b60805160f81c60a05161171c620004b0600039600081816105cf0152610e46015260006105ab015261171c6000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c8063628d6cba116100b8578063a9059cbb1161007c578063a9059cbb1461024a578063b524f3a51461025d578063cae9ca5114610270578063d505accf14610283578063dd62ed3e14610298578063ec126c77146102ab57610136565b8063628d6cba146101f457806370a08231146102075780637ecebe001461021a5780638da5cb5b1461022d57806395d89b411461024257610136565b806330adf81f116100ff57806330adf81f146101a9578063313ce567146101b15780633644e515146101c65780634000aea0146101ce578063605629d6146101e157610136565b8062bf26f41461013b57806306fdde0314610159578063095ea7b31461016e57806318160ddd1461018e57806323b872dd14610196575b600080fd5b6101436102be565b604051610150919061138f565b60405180910390f35b6101616102e2565b60405161015091906113ea565b61018161017c3660046111cb565b610370565b6040516101509190611384565b6101436103c8565b6101816101a436600461111f565b6103cf565b610143610585565b6101b96105a9565b60405161015091906115fd565b6101436105cd565b6101816101dc3660046111f4565b6105f1565b6101816101ef36600461115a565b61074f565b6101816102023660046112ba565b61090b565b6101436102153660046110cc565b610980565b6101436102283660046110cc565b610992565b6102356109a4565b6040516101509190611328565b6101616109d1565b6101816102583660046111cb565b6109de565b61018161026b3660046110cc565b610ab8565b61018161027e3660046111f4565b610ba9565b61029661029136600461115a565b610c83565b005b6101436102a63660046110ed565b610da6565b6101816102b9366004611296565b610dc3565b7f42ce63790c28229c123925d83266e77c04d28784552ab68b350a9003226cbd5981565b600080546102ef9061163a565b80601f016020809104026020016040519081016040528092919081815260200182805461031b9061163a565b80156103685780601f1061033d57610100808354040283529160200191610368565b820191906000526020600020905b81548152906001019060200180831161034b57829003601f168201915b505050505081565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290916000805160206116c7833981519152906103b790869061138f565b60405180910390a350600192915050565b6003545b90565b60006001600160a01b0383161515806103f157506001600160a01b0383163014155b6103fa57600080fd5b6001600160a01b03841633146104c1576001600160a01b038416600090815260086020908152604080832033845290915290205460001981146104bf57828110156104605760405162461bcd60e51b81526004016104579061153e565b60405180910390fd5b600061046c8483611623565b6001600160a01b0387166000818152600860209081526040808320338085529252918290208490559051929350916000805160206116c7833981519152906104b590859061138f565b60405180910390a3505b505b6001600160a01b038416600090815260026020526040902054828110156104fa5760405162461bcd60e51b8152600401610457906115b6565b6105048382611623565b6001600160a01b03808716600090815260026020526040808220939093559086168152908120805485929061053a90849061160b565b92505081905550836001600160a01b0316856001600160a01b03166000805160206116a783398151915285604051610572919061138f565b60405180910390a3506001949350505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006001600160a01b03851615158061061357506001600160a01b0385163014155b61061c57600080fd5b336000908152600260205260409020548481101561064c5760405162461bcd60e51b8152600401610457906115b6565b6106568582611623565b33600090815260026020526040808220929092556001600160a01b0388168152908120805487929061068990849061160b565b90915550506040516001600160a01b0387169033906000805160206116a7833981519152906106b990899061138f565b60405180910390a3604051635260769b60e11b81526001600160a01b0387169063a4c0ed36906106f390339089908990899060040161133c565b602060405180830381600087803b15801561070d57600080fd5b505af1158015610721573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107459190611276565b9695505050505050565b6000844211156107715760405162461bcd60e51b815260040161045790611474565b6001600160a01b038816600090815260076020526040812080547f42ce63790c28229c123925d83266e77c04d28784552ab68b350a9003226cbd59918b918b918b9190866107be83611675565b919050558a6040516020016107d896959493929190611398565b6040516020818303038152906040528051906020012090506107fd8982878787610e41565b8061081057506108108982878787610f18565b61081957600080fd5b6001600160a01b03881615158061083957506001600160a01b0388163014155b61084257600080fd5b6001600160a01b0389166000908152600260205260409020548781101561087b5760405162461bcd60e51b8152600401610457906115b6565b6108858882611623565b6001600160a01b03808c1660009081526002602052604080822093909355908b16815290812080548a92906108bb90849061160b565b92505081905550886001600160a01b03168a6001600160a01b03166000805160206116a78339815191528a6040516108f3919061138f565b60405180910390a35060019998505050505050505050565b60006001600160a01b0382166109335760405162461bcd60e51b8152600401610457906114a4565b61093d3384610f4b565b816001600160a01b0316336001600160a01b03167f6b616089d04950dc06c45c6dd787d657980543f89651aec47924752c7d16c888856040516103b7919061138f565b60026020526000908152604090205481565b60076020526000908152604090205481565b600060065442106109c157506005546001600160a01b03166103cc565b506004546001600160a01b031690565b600180546102ef9061163a565b60006001600160a01b038316151580610a0057506001600160a01b0383163014155b610a0957600080fd5b3360009081526002602052604090205482811015610a395760405162461bcd60e51b8152600401610457906115b6565b610a438382611623565b33600090815260026020526040808220929092556001600160a01b03861681529081208054859290610a7690849061160b565b90915550506040516001600160a01b0385169033906000805160206116a783398151915290610aa690879061138f565b60405180910390a35060019392505050565b6000610ac26109a4565b6001600160a01b0316336001600160a01b031614610af25760405162461bcd60e51b8152600401610457906114d9565b6001600160a01b038216610b185760405162461bcd60e51b81526004016104579061143d565b610b206109a4565b600480546001600160a01b03199081166001600160a01b039384161790915560058054909116918416919091179055610b5c426202a30061160b565b60068190556005546004546040516001600160a01b0392831692909116907fe1968d4263a733e2597ef67ea6ad267343bba5f8bf0f99d85190e06b05d824d990600090a45060015b919050565b3360008181526008602090815260408083206001600160a01b038916808552925280832087905551919290916000805160206116c783398151915290610bf090889061138f565b60405180910390a360405162ba451f60e01b81526001600160a01b0386169062ba451f90610c2890339088908890889060040161133c565b602060405180830381600087803b158015610c4257600080fd5b505af1158015610c56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7a9190611276565b95945050505050565b83421115610ca35760405162461bcd60e51b815260040161045790611474565b6001600160a01b038716600090815260076020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918a918a918a919086610cf083611675565b9190505589604051602001610d0a96959493929190611398565b604051602081830303815290604052805190602001209050610d2f8882868686610e41565b80610d425750610d428882868686610f18565b610d4b57600080fd5b6001600160a01b038089166000818152600860209081526040808320948c168084529490915290819020899055516000805160206116c783398151915290610d94908a9061138f565b60405180910390a35050505050505050565b600860209081526000928352604080842090915290825290205481565b6000610dcd6109a4565b6001600160a01b0316336001600160a01b031614610dfd5760405162461bcd60e51b8152600401610457906114d9565b610e078383610fef565b826001600160a01b0316847f05d0634fe981be85c22e2942a880821b70095d84e152c3ea3c17a4e4250d9d6184604051610aa6919061138f565b6000807f000000000000000000000000000000000000000000000000000000000000000086604051602001610e7792919061130d565b604051602081830303815290604052805190602001209050600060018287878760405160008152602001604052604051610eb494939291906113cc565b6020604051602081039080840390855afa158015610ed6573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811615801590610f0c5750876001600160a01b0316816001600160a01b0316145b98975050505050505050565b600080610f2486611085565b9050600060018287878760405160008152602001604052604051610eb494939291906113cc565b6001600160a01b038216610f715760405162461bcd60e51b8152600401610457906114fd565b6001600160a01b03821660009081526002602052604081208054839290610f99908490611623565b925050819055508060036000828254610fb29190611623565b90915550506040516000906001600160a01b038416906000805160206116a783398151915290610fe390859061138f565b60405180910390a35050565b6001600160a01b0382166110155760405162461bcd60e51b81526004016104579061157f565b8060036000828254611027919061160b565b90915550506001600160a01b0382166000908152600260205260408120805483929061105490849061160b565b90915550506040516001600160a01b038316906000906000805160206116a783398151915290610fe390859061138f565b60008160405160200161109891906112dc565b604051602081830303815290604052805190602001209050919050565b80356001600160a01b0381168114610ba457600080fd5b6000602082840312156110dd578081fd5b6110e6826110b5565b9392505050565b600080604083850312156110ff578081fd5b611108836110b5565b9150611116602084016110b5565b90509250929050565b600080600060608486031215611133578081fd5b61113c846110b5565b925061114a602085016110b5565b9150604084013590509250925092565b600080600080600080600060e0888a031215611174578283fd5b61117d886110b5565b965061118b602089016110b5565b95506040880135945060608801359350608088013560ff811681146111ae578384fd5b9699959850939692959460a0840135945060c09093013592915050565b600080604083850312156111dd578182fd5b6111e6836110b5565b946020939093013593505050565b60008060008060608587031215611209578384fd5b611212856110b5565b935060208501359250604085013567ffffffffffffffff80821115611235578384fd5b818701915087601f830112611248578384fd5b813581811115611256578485fd5b886020828501011115611267578485fd5b95989497505060200194505050565b600060208284031215611287578081fd5b815180151581146110e6578182fd5b6000806000606084860312156112aa578283fd5b8335925061114a602085016110b5565b600080604083850312156112cc578182fd5b82359150611116602084016110b5565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b61190160f01b81526002810192909252602282015260420190565b6001600160a01b0391909116815260200190565b6001600160a01b0385168152602081018490526060604082018190528101829052600082846080840137818301608090810191909152601f909201601f191601019392505050565b901515815260200190565b90815260200190565b9586526001600160a01b0394851660208701529290931660408501526060840152608083019190915260a082015260c00190565b93845260ff9290921660208401526040830152606082015260800190565b6000602080835283518082850152825b81811015611416578581018301518582016040015282016113fa565b818111156114275783604083870101525b50601f01601f1916929092016040019392505050565b6020808252601d908201527f6e6577206f776e657220697320746865207a65726f2061646472657373000000604082015260600190565b60208082526016908201527515d15490cc4c0e88115e1c1a5c9959081c195c9b5a5d60521b604082015260600190565b6020808252818101527f62696e64206164647265737320697320746865207a65726f2061646472657373604082015260600190565b6020808252600a908201526937b7363c9037bbb732b960b11b604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526021908201527f5745524331303a2072657175657374206578636565647320616c6c6f77616e636040820152606560f81b606082015260800190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b60208082526027908201527f5745524331303a207472616e7366657220616d6f756e7420657863656564732060408201526662616c616e636560c81b606082015260800190565b60ff91909116815260200190565b6000821982111561161e5761161e611690565b500190565b60008282101561163557611635611690565b500390565b60028104600182168061164e57607f821691505b6020821081141561166f57634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561168957611689611690565b5060010190565b634e487b7160e01b600052601160045260246000fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a2646970667358221220f300939110338f573731ca2a986cc851f1efda9e23a8a647a82ca501e0c0f23164736f6c63430008010033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000012000000000000000000000000c564ee9f21ed8a2d8e7e76c085740d5e4c5fafbe00000000000000000000000000000000000000000000000000000000000000064b6565703372000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044b50335200000000000000000000000000000000000000000000000000000000

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000012000000000000000000000000c564ee9f21ed8a2d8e7e76c085740d5e4c5fafbe00000000000000000000000000000000000000000000000000000000000000064b6565703372000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044b50335200000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): Keep3r
Arg [1] : _symbol (string): KP3R
Arg [2] : _decimals (uint8): 18
Arg [3] : _owner (address): 0xc564ee9f21ed8a2d8e7e76c085740d5e4c5fafbe

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [3] : 000000000000000000000000c564ee9f21ed8a2d8e7e76c085740d5e4c5fafbe
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [5] : 4b65657033720000000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [7] : 4b50335200000000000000000000000000000000000000000000000000000000


Deployed ByteCode Sourcemap

8675:13271:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8977:136;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8740:18;;;:::i;:::-;;;;;;;:::i;13743:265::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;12273:102::-;;;:::i;19889:927::-;;;;;;:::i;:::-;;:::i;8833:137::-;;;:::i;8792:32::-;;;:::i;:::-;;;;;;;:::i;9120:41::-;;;:::i;21420:523::-;;;;;;:::i;:::-;;:::i;16317:929::-;;;;;;:::i;:::-;;:::i;10374:273::-;;;;;;:::i;:::-;;:::i;9233:54::-;;;;;;:::i;:::-;;:::i;10919:51::-;;;;;;:::i;:::-;;:::i;9564:182::-;;;:::i;:::-;;;;;;;:::i;8765:20::-;;;:::i;18594:438::-;;;;;;:::i;:::-;;:::i;9764:384::-;;;;;;:::i;:::-;;:::i;14421:364::-;;;;;;:::i;:::-;;:::i;15602:707::-;;;;;;:::i;:::-;;:::i;:::-;;11132:75;;;;;;:::i;:::-;;:::i;10156:210::-;;;;;;:::i;:::-;;:::i;8977:136::-;9021:92;8977:136;:::o;8740:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13743:265::-;13896:10;13819:4;13886:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;13886:30:0;;;;;;;;;;:38;;;13940:36;13819:4;;13886:30;;-1:-1:-1;;;;;;;;;;;13940:36:0;;;13919:5;;13940:36;:::i;:::-;;;;;;;;-1:-1:-1;13996:4:0;13743:265;;;;:::o;12273:102::-;12355:12;;12273:102;;:::o;19889:927::-;19979:4;-1:-1:-1;;;;;20004:16:0;;;;;:39;;-1:-1:-1;;;;;;20024:19:0;;20038:4;20024:19;;20004:39;19996:48;;;;;;-1:-1:-1;;;;;20059:18:0;;20067:10;20059:18;20055:469;;-1:-1:-1;;;;;20173:15:0;;20155;20173;;;:9;:15;;;;;;;;20189:10;20173:27;;;;;;;;-1:-1:-1;;20219:28:0;;20215:298;;20287:5;20276:7;:16;;20268:62;;;;-1:-1:-1;;;20268:62:0;;;;;;;:::i;:::-;;;;;;;;;20349:15;20367;20377:5;20367:7;:15;:::i;:::-;-1:-1:-1;;;;;20401:15:0;;;;;;:9;:15;;;;;;;;20417:10;20401:27;;;;;;;;;:37;;;20462:35;;20349:33;;-1:-1:-1;20417:10:0;-1:-1:-1;;;;;;;;;;;20462:35:0;;;20349:33;;20462:35;:::i;:::-;;;;;;;;20215:298;;20055:469;;-1:-1:-1;;;;;20562:15:0;;20544;20562;;;:9;:15;;;;;;20596:16;;;;20588:68;;;;-1:-1:-1;;;20588:68:0;;;;;;;:::i;:::-;20687:15;20697:5;20687:7;:15;:::i;:::-;-1:-1:-1;;;;;20669:15:0;;;;;;;:9;:15;;;;;;:33;;;;20713:13;;;;;;;;:22;;20730:5;;20669:15;20713:22;;20730:5;;20713:22;:::i;:::-;;;;;;;;20766:2;-1:-1:-1;;;;;20751:25:0;20760:4;-1:-1:-1;;;;;20751:25:0;-1:-1:-1;;;;;;;;;;;20770:5:0;20751:25;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;20804:4:0;;19889:927;-1:-1:-1;;;;19889:927:0:o;8833:137::-;8875:95;8833:137;:::o;8792:32::-;;;:::o;9120:41::-;;;:::o;21420:523::-;21517:4;-1:-1:-1;;;;;21542:16:0;;;;;:39;;-1:-1:-1;;;;;;21562:19:0;;21576:4;21562:19;;21542:39;21534:48;;;;;;21631:10;21603:15;21621:21;;;:9;:21;;;;;;21661:16;;;;21653:68;;;;-1:-1:-1;;;21653:68:0;;;;;;;:::i;:::-;21758:15;21768:5;21758:7;:15;:::i;:::-;21744:10;21734:21;;;;:9;:21;;;;;;:39;;;;-1:-1:-1;;;;;21784:13:0;;;;;;;:22;;21801:5;;21734:21;21784:22;;21801:5;;21784:22;:::i;:::-;;;;-1:-1:-1;;21822:31:0;;-1:-1:-1;;;;;21822:31:0;;;21831:10;;-1:-1:-1;;;;;;;;;;;21822:31:0;;;21847:5;;21822:31;:::i;:::-;;;;;;;;21873:62;;-1:-1:-1;;;21873:62:0;;-1:-1:-1;;;;;21873:37:0;;;;;:62;;21911:10;;21923:5;;21930:4;;;;21873:62;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21866:69;21420:523;-1:-1:-1;;;;;;21420:523:0:o;16317:929::-;16455:4;16499:8;16480:15;:27;;16472:62;;;;-1:-1:-1;;;16472:62:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16727:14:0;;16547:18;16727:14;;;:6;:14;;;;;:16;;9021:92;;16657:6;;16682:2;;16703:5;;16727:16;16547:18;16727:16;;;:::i;:::-;;;;;16762:8;16592:179;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;16568:204;;;;;;16547:225;;16793:41;16806:6;16814:10;16826:1;16829;16832;16793:12;:41::i;:::-;:92;;;;16838:47;16857:6;16865:10;16877:1;16880;16883;16838:18;:47::i;:::-;16785:101;;;;;;-1:-1:-1;;;;;16907:16:0;;;;;:39;;-1:-1:-1;;;;;;16927:19:0;;16941:4;16927:19;;16907:39;16899:48;;;;;;-1:-1:-1;;;;;16986:17:0;;16968:15;16986:17;;;:9;:17;;;;;;17022:16;;;;17014:68;;;;-1:-1:-1;;;17014:68:0;;;;;;;:::i;:::-;17115:15;17125:5;17115:7;:15;:::i;:::-;-1:-1:-1;;;;;17095:17:0;;;;;;;:9;:17;;;;;;:35;;;;17141:13;;;;;;;;:22;;17158:5;;17095:17;17141:22;;17158:5;;17141:22;:::i;:::-;;;;;;;;17196:2;-1:-1:-1;;;;;17179:27:0;17188:6;-1:-1:-1;;;;;17179:27:0;-1:-1:-1;;;;;;;;;;;17200:5:0;17179:27;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;17234:4:0;;16317:929;-1:-1:-1;;;;;;;;;16317:929:0:o;10374:273::-;10441:4;-1:-1:-1;;;;;10466:22:0;;10458:67;;;;-1:-1:-1;;;10458:67:0;;;;;;;:::i;:::-;10536:25;10542:10;10554:6;10536:5;:25::i;:::-;10600:8;-1:-1:-1;;;;;10577:40:0;10588:10;-1:-1:-1;;;;;10577:40:0;;10610:6;10577:40;;;;;;:::i;9233:54::-;;;;;;;;;;;;;:::o;10919:51::-;;;;;;;;;;;;;:::o;9564:182::-;9602:7;9645:22;;9626:15;:41;9622:90;;-1:-1:-1;9691:9:0;;-1:-1:-1;;;;;9691:9:0;9684:16;;9622:90;-1:-1:-1;9729:9:0;;-1:-1:-1;;;;;9729:9:0;9564:182;:::o;8765:20::-;;;;;;;:::i;18594:438::-;18666:4;-1:-1:-1;;;;;18691:16:0;;;;;:39;;-1:-1:-1;;;;;;18711:19:0;;18725:4;18711:19;;18691:39;18683:48;;;;;;18770:10;18742:15;18760:21;;;:9;:21;;;;;;18800:16;;;;18792:68;;;;-1:-1:-1;;;18792:68:0;;;;;;;:::i;:::-;18897:15;18907:5;18897:7;:15;:::i;:::-;18883:10;18873:21;;;;:9;:21;;;;;;:39;;;;-1:-1:-1;;;;;18923:13:0;;;;;;;:22;;18940:5;;18873:21;18923:22;;18940:5;;18923:22;:::i;:::-;;;;-1:-1:-1;;18961:31:0;;-1:-1:-1;;;;;18961:31:0;;;18970:10;;-1:-1:-1;;;;;;;;;;;18961:31:0;;;18986:5;;18961:31;:::i;:::-;;;;;;;;-1:-1:-1;19020:4:0;;18594:438;-1:-1:-1;;;18594:438:0:o;9764:384::-;9833:4;9510:7;:5;:7::i;:::-;-1:-1:-1;;;;;9496:21:0;:10;-1:-1:-1;;;;;9496:21:0;;9488:44;;;;-1:-1:-1;;;9488:44:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9858:22:0;::::1;9850:64;;;;-1:-1:-1::0;;;9850:64:0::1;;;;;;;:::i;:::-;9937:7;:5;:7::i;:::-;9925:9;:19:::0;;-1:-1:-1;;;;;;9925:19:0;;::::1;-1:-1:-1::0;;;;;9925:19:0;;::::1;;::::0;;;9955:9:::1;:20:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;10011:27:::1;:15;10029:9;10011:27;:::i;:::-;9986:22;:52:::0;;;10084:9:::1;::::0;10073::::1;::::0;10054:64:::1;::::0;-1:-1:-1;;;;;10084:9:0;;::::1;::::0;10073;;::::1;::::0;10054:64:::1;::::0;10084:9:::1;::::0;10054:64:::1;-1:-1:-1::0;10136:4:0::1;9543:1;9764:384:::0;;;:::o;14421:364::-;14602:10;14525:4;14592:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;14592:30:0;;;;;;;;;;:38;;;14646:36;14525:4;;14592:30;;-1:-1:-1;;;;;;;;;;;14646:36:0;;;14625:5;;14646:36;:::i;:::-;;;;;;;;14710:67;;-1:-1:-1;;;14710:67:0;;-1:-1:-1;;;;;14710:42:0;;;;;:67;;14753:10;;14765:5;;14772:4;;;;14710:67;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14703:74;14421:364;-1:-1:-1;;;;;14421:364:0:o;15602:707::-;15771:8;15752:15;:27;;15744:62;;;;-1:-1:-1;;;15744:62:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16002:14:0;;15819:18;16002:14;;;:6;:14;;;;;:16;;8875:95;;15927:6;;15952:7;;15978:5;;16002:16;15819:18;16002:16;;;:::i;:::-;;;;;16037:8;15864:182;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;15840:207;;;;;;15819:228;;16068:41;16081:6;16089:10;16101:1;16104;16107;16068:12;:41::i;:::-;:92;;;;16113:47;16132:6;16140:10;16152:1;16155;16158;16113:18;:47::i;:::-;16060:101;;;;;;-1:-1:-1;;;;;16219:17:0;;;;;;;:9;:17;;;;;;;;:26;;;;;;;;;;;;;;:34;;;16269:32;-1:-1:-1;;;;;;;;;;;16269:32:0;;;16248:5;;16269:32;:::i;:::-;;;;;;;;15602:707;;;;;;;;:::o;11132:75::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;10156:210::-;10247:4;9510:7;:5;:7::i;:::-;-1:-1:-1;;;;;9496:21:0;:10;-1:-1:-1;;;;;9496:21:0;;9488:44;;;;-1:-1:-1;;;9488:44:0;;;;;;;:::i;:::-;10264:22:::1;10270:7;10279:6;10264:5;:22::i;:::-;10320:7;-1:-1:-1::0;;;;;10302:34:0::1;10312:6;10302:34;10329:6;10302:34;;;;;;:::i;17258:399::-:0;17370:4;17387:12;17490:16;17525:10;17426:110;;;;;;;;;:::i;:::-;;;;;;;;;;;;;17402:135;;;;;;17387:150;;17548:14;17565:24;17575:4;17581:1;17584;17587;17565:24;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;17565:24:0;;-1:-1:-1;;17565:24:0;;;-1:-1:-1;;;;;;;17608:20:0;;;;;;:40;;;17642:6;-1:-1:-1;;;;;17632:16:0;:6;-1:-1:-1;;;;;17632:16:0;;17608:40;17600:49;17258:399;-1:-1:-1;;;;;;;;17258:399:0:o;17669:290::-;17787:4;17804:12;17819:20;17828:10;17819:8;:20::i;:::-;17804:35;;17850:14;17867:24;17877:4;17883:1;17886;17889;17867:24;;;;;;;;;;;;;;;;;;:::i;13260:270::-;-1:-1:-1;;;;;13336:21:0;;13328:67;;;;-1:-1:-1;;;13328:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13408:18:0;;;;;;:9;:18;;;;;:28;;13430:6;;13408:18;:28;;13430:6;;13408:28;:::i;:::-;;;;;;;;13463:6;13447:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;13485:37:0;;13511:1;;-1:-1:-1;;;;;13485:37:0;;;-1:-1:-1;;;;;;;;;;;13485:37:0;;;13515:6;;13485:37;:::i;:::-;;;;;;;;13260:270;;:::o;12660:268::-;-1:-1:-1;;;;;12736:21:0;;12728:65;;;;-1:-1:-1;;;12728:65:0;;;;;;;:::i;:::-;12822:6;12806:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;12839:18:0;;;;;;:9;:18;;;;;:28;;12861:6;;12839:18;:28;;12861:6;;12839:28;:::i;:::-;;;;-1:-1:-1;;12883:37:0;;-1:-1:-1;;;;;12883:37:0;;;12900:1;;-1:-1:-1;;;;;;;;;;;12883:37:0;;;12913:6;;12883:37;:::i;18037:159::-;18092:7;18182:4;18129:58;;;;;;;;:::i;:::-;;;;;;;;;;;;;18119:69;;;;;;18112:76;;18037:159;;;:::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:717::-;;;;;;;;1235:3;1223:9;1214:7;1210:23;1206:33;1203:2;;;1257:6;1249;1242:22;1203:2;1285:31;1306:9;1285:31;:::i;:::-;1275:41;;1335:40;1371:2;1360:9;1356:18;1335:40;:::i;:::-;1325:50;;1422:2;1411:9;1407:18;1394:32;1384:42;;1473:2;1462:9;1458:18;1445:32;1435:42;;1527:3;1516:9;1512:19;1499:33;1572:4;1565:5;1561:16;1554:5;1551:27;1541:2;;1597:6;1589;1582:22;1541:2;1193:547;;;;-1:-1:-1;1193:547:1;;;;1625:5;1677:3;1662:19;;1649:33;;-1:-1:-1;1729:3:1;1714:19;;;1701:33;;1193:547;-1:-1:-1;;1193:547:1:o;1745:266::-;;;1874:2;1862:9;1853:7;1849:23;1845:32;1842:2;;;1895:6;1887;1880:22;1842:2;1923:31;1944:9;1923:31;:::i;:::-;1913:41;2001:2;1986:18;;;;1973:32;;-1:-1:-1;;;1832:179:1:o;2016:785::-;;;;;2181:2;2169:9;2160:7;2156:23;2152:32;2149:2;;;2202:6;2194;2187:22;2149:2;2230:31;2251:9;2230:31;:::i;:::-;2220:41;;2308:2;2297:9;2293:18;2280:32;2270:42;;2363:2;2352:9;2348:18;2335:32;2386:18;2427:2;2419:6;2416:14;2413:2;;;2448:6;2440;2433:22;2413:2;2491:6;2480:9;2476:22;2466:32;;2536:7;2529:4;2525:2;2521:13;2517:27;2507:2;;2563:6;2555;2548:22;2507:2;2608;2595:16;2634:2;2626:6;2623:14;2620:2;;;2655:6;2647;2640:22;2620:2;2705:7;2700:2;2691:6;2687:2;2683:15;2679:24;2676:37;2673:2;;;2731:6;2723;2716:22;2673:2;2139:662;;;;-1:-1:-1;;2767:2:1;2759:11;;-1:-1:-1;;;2139:662:1:o;2806:297::-;;2926:2;2914:9;2905:7;2901:23;2897:32;2894:2;;;2947:6;2939;2932:22;2894:2;2984:9;2978:16;3037:5;3030:13;3023:21;3016:5;3013:32;3003:2;;3064:6;3056;3049:22;3108:334;;;;3254:2;3242:9;3233:7;3229:23;3225:32;3222:2;;;3275:6;3267;3260:22;3222:2;3316:9;3303:23;3293:33;;3345:40;3381:2;3370:9;3366:18;3345:40;:::i;3447:266::-;;;3576:2;3564:9;3555:7;3551:23;3547:32;3544:2;;;3597:6;3589;3582:22;3544:2;3638:9;3625:23;3615:33;;3667:40;3703:2;3692:9;3688:18;3667:40;:::i;3718:380::-;3960:66;3948:79;;4052:2;4043:12;;4036:28;;;;4089:2;4080:12;;3938:160::o;4103:392::-;-1:-1:-1;;;4361:27:1;;4413:1;4404:11;;4397:27;;;;4449:2;4440:12;;4433:28;4486:2;4477:12;;4351:144::o;4500:203::-;-1:-1:-1;;;;;4664:32:1;;;;4646:51;;4634:2;4619:18;;4601:102::o;4708:562::-;-1:-1:-1;;;;;4921:32:1;;4903:51;;4985:2;4970:18;;4963:34;;;5033:2;5028;5013:18;;5006:30;;;5052:18;;5045:34;;;4708:562;5072:6;5122;5116:3;5101:19;;5088:49;5157:22;;;5181:3;5153:32;;;5146:46;;;;5253:2;5232:15;;;-1:-1:-1;;5228:29:1;5213:45;5209:55;;4893:377;-1:-1:-1;;;4893:377:1:o;5275:187::-;5440:14;;5433:22;5415:41;;5403:2;5388:18;;5370:92::o;5467:177::-;5613:25;;;5601:2;5586:18;;5568:76::o;5649:591::-;5936:25;;;-1:-1:-1;;;;;6035:15:1;;;6030:2;6015:18;;6008:43;6087:15;;;;6082:2;6067:18;;6060:43;6134:2;6119:18;;6112:34;6177:3;6162:19;;6155:35;;;;5988:3;6206:19;;6199:35;5923:3;5908:19;;5890:350::o;6245:398::-;6472:25;;;6545:4;6533:17;;;;6528:2;6513:18;;6506:45;6582:2;6567:18;;6560:34;6625:2;6610:18;;6603:34;6459:3;6444:19;;6426:217::o;6648:603::-;;6789:2;6818;6807:9;6800:21;6850:6;6844:13;6893:6;6888:2;6877:9;6873:18;6866:34;6918:4;6931:140;6945:6;6942:1;6939:13;6931:140;;;7040:14;;;7036:23;;7030:30;7006:17;;;7025:2;7002:26;6995:66;6960:10;;6931:140;;;7089:6;7086:1;7083:13;7080:2;;;7159:4;7154:2;7145:6;7134:9;7130:22;7126:31;7119:45;7080:2;-1:-1:-1;7235:2:1;7214:15;-1:-1:-1;;7210:29:1;7195:45;;;;7242:2;7191:54;;6769:482;-1:-1:-1;;;6769:482:1:o;7256:353::-;7458:2;7440:21;;;7497:2;7477:18;;;7470:30;7536:31;7531:2;7516:18;;7509:59;7600:2;7585:18;;7430:179::o;7614:346::-;7816:2;7798:21;;;7855:2;7835:18;;;7828:30;-1:-1:-1;;;7889:2:1;7874:18;;7867:52;7951:2;7936:18;;7788:172::o;7965:356::-;8167:2;8149:21;;;8186:18;;;8179:30;8245:34;8240:2;8225:18;;8218:62;8312:2;8297:18;;8139:182::o;8326:334::-;8528:2;8510:21;;;8567:2;8547:18;;;8540:30;-1:-1:-1;;;8601:2:1;8586:18;;8579:40;8651:2;8636:18;;8500:160::o;8665:397::-;8867:2;8849:21;;;8906:2;8886:18;;;8879:30;8945:34;8940:2;8925:18;;8918:62;-1:-1:-1;;;9011:2:1;8996:18;;8989:31;9052:3;9037:19;;8839:223::o;9067:397::-;9269:2;9251:21;;;9308:2;9288:18;;;9281:30;9347:34;9342:2;9327:18;;9320:62;-1:-1:-1;;;9413:2:1;9398:18;;9391:31;9454:3;9439:19;;9241:223::o;9469:355::-;9671:2;9653:21;;;9710:2;9690:18;;;9683:30;9749:33;9744:2;9729:18;;9722:61;9815:2;9800:18;;9643:181::o;9829:403::-;10031:2;10013:21;;;10070:2;10050:18;;;10043:30;10109:34;10104:2;10089:18;;10082:62;-1:-1:-1;;;10175:2:1;10160:18;;10153:37;10222:3;10207:19;;10003:229::o;10419:184::-;10591:4;10579:17;;;;10561:36;;10549:2;10534:18;;10516:87::o;10608:128::-;;10679:1;10675:6;10672:1;10669:13;10666:2;;;10685:18;;:::i;:::-;-1:-1:-1;10721:9:1;;10656:80::o;10741:125::-;;10809:1;10806;10803:8;10800:2;;;10814:18;;:::i;:::-;-1:-1:-1;10851:9:1;;10790:76::o;10871:380::-;10956:1;10946:12;;11003:1;10993:12;;;11014:2;;11068:4;11060:6;11056:17;11046:27;;11014:2;11121;11113:6;11110:14;11090:18;11087:38;11084:2;;;11167:10;11162:3;11158:20;11155:1;11148:31;11202:4;11199:1;11192:15;11230:4;11227:1;11220:15;11084:2;;10926:325;;;:::o;11256:135::-;;-1:-1:-1;;11316:17:1;;11313:2;;;11336:18;;:::i;:::-;-1:-1:-1;11383:1:1;11372:13;;11303:88::o;11396:127::-;11457:10;11452:3;11448:20;11445:1;11438:31;11488:4;11485:1;11478:15;11512:4;11509:1;11502:15

Swarm Source

ipfs://f300939110338f573731ca2a986cc851f1efda9e23a8a647a82ca501e0c0f231
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Validator ID :
0 FTM

Amount Staked
0

Amount Delegated
0

Staking Total
0

Staking Start Epoch
0

Staking Start Time
0

Proof of Importance
0

Origination Score
0

Validation Score
0

Active
0

Online
0

Downtime
0 s
Address Amount claimed Rewards Created On Epoch Created On
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.