Contract 0xae75A438b2E0cB8Bb01Ec1E1e376De11D44477CC 1

Contract Overview

SushiSwap: SUSHI Token
Balance:
0 FTM

FTM Value:
$0.00

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x6e92b4c92781c0b8f0e36d5c900a8b0671e5bdbe404ac6676a0c6a8e42ff07d5Swapin196860982021-10-21 15:52:099 mins ago0xc564ee9f21ed8a2d8e7e76c085740d5e4c5fafbe IN  SushiSwap: SUSHI Token0 FTM0.012964997734
0x4ac896970f6ef546ffaa8f35d532d299273671fc9d5be7bdd56e6818c0ea8817Approve196852762021-10-21 15:39:5722 mins ago0x0dc74cabcfb00ab5fdeef60088685a71fef97003 IN  SushiSwap: SUSHI Token0 FTM0.014593565526
0x6bbe77a18d9eedebb46d1716911b8934d5a9e1f1c1fcbdafeb01ee0761f9e7e4Approve196821352021-10-21 14:40:091 hr 21 mins ago0xd537c1e6ea50c257a0af2ccc0c366d54a0dbfbd3 IN  SushiSwap: SUSHI Token0 FTM0.005632039887
0x179d523c63aa9bbce01fff4c0b7d440f282ca76a24b8f9d31808845379dd5f1bApprove196820922021-10-21 14:39:181 hr 22 mins ago0xd537c1e6ea50c257a0af2ccc0c366d54a0dbfbd3 IN  SushiSwap: SUSHI Token0 FTM0.009901123212
0x228dadb0a69ef36cdb7d9f0e1222fa0022284d2988b3055939a335454d18c230Swapout196796982021-10-21 13:57:492 hrs 4 mins ago0x1b6138ef934ceb32097a30d562c729d9a77bed82 IN  SushiSwap: SUSHI Token0 FTM0.005106931312
0x2284a2284ed7dba3fbcdbbda083728c687acf440c60277a18813860f871827afTransfer196793462021-10-21 13:51:082 hrs 10 mins ago0x9d945d909ca91937d19563e30bb4dac12c860189 IN  SushiSwap: SUSHI Token0 FTM0.012354018572
0x95ef2e10cfcd97ce0deedc547e40156d76eac79868745d89f7edf73d7d99c421Approve196760962021-10-21 12:47:093 hrs 14 mins ago0x3b3a1ed322811f7f85863c3e2a898332304b8113 IN  SushiSwap: SUSHI Token0 FTM0.013539322022
0xef660d12871c4b2eddeff180dbd7f9f62eafafba19727df62b43e5acee11b4b3Approve196743552021-10-21 12:16:513 hrs 45 mins ago0xb11bea1080317bae244429a9491a8d5a6f29a229 IN  SushiSwap: SUSHI Token0 FTM0.012065208747
0x36c78214814831cdd52ae8544c4ede8a99de7f56cec86efef7e4a8efbdab0b22Approve196738752021-10-21 12:09:263 hrs 52 mins ago0x3685cc047af48fd228b924a65fb14da971254399 IN  SushiSwap: SUSHI Token0 FTM0.012045948542
0x6c81ce5762862b7365f3a7b4a6c6f128624c901096d28f2b6b436143dfdf30c2Approve196723662021-10-21 11:42:474 hrs 19 mins ago0x5bbad24788821c5fe7268ce9fe37b98ae094a453 IN  SushiSwap: SUSHI Token0 FTM0.01072733372
0x55569f41226c76e91bfe2f268962e7c039386d8cbad771f09277a2ce3e4d9f5aApprove196699612021-10-21 11:01:165 hrs ago0xc68aa62cd825baad61b221f12abee8cbe05863ab IN  SushiSwap: SUSHI Token0 FTM0.007108448779
0xc1fac1e83bf68996e2a9247d5815e940bf71cf1576f08316896ecfcdf6faac99Approve196675762021-10-21 10:22:515 hrs 39 mins ago0x27e030580efff1703f31de4c89fb4db36645297b IN  SushiSwap: SUSHI Token0 FTM0.006796498154
0x50538973c7d7f5d4cbc00daa66f71ac5fa364b4e6afad147bc7f028a77cd01dcApprove196608012021-10-21 8:27:207 hrs 34 mins ago0x832800d7746ca950b9e1831e40c7097d388ac50f IN  SushiSwap: SUSHI Token0 FTM0.006229083623
0x4d96716af43aa8b61816f6e9a397b92e359cd38a5cda8ef10c19aac5372f47a0Approve196586872021-10-21 7:50:588 hrs 11 mins ago0x6119e4ce685200fb71945eda7848d2dabf41435b IN  SushiSwap: SUSHI Token0 FTM0.006405660211
0xbd75ad99ebcb54e3a44b33616b620d4a0c6e7fd2523cb0503fbe36fc5eb22f54Approve196585342021-10-21 7:48:018 hrs 13 mins ago0x135f41be946009e00077e5b39d7db431c5c2b114 IN  SushiSwap: SUSHI Token0 FTM0.006466432964
0x36683d1a0ff7170a2aa73f8144088b30c8d856aaea3fd45da57d5c233adcf78dApprove196585332021-10-21 7:48:008 hrs 13 mins ago0x4bd54191dde60211e8812514f3bba711cd53d7c9 IN  SushiSwap: SUSHI Token0 FTM0.006430122962
0x4faa0548a40209b60219ea9098ff437589dfd84050dcbe2f36231c0b989dfbe7Swapin196582762021-10-21 7:42:348 hrs 19 mins ago0xc564ee9f21ed8a2d8e7e76c085740d5e4c5fafbe IN  SushiSwap: SUSHI Token0 FTM0.008431869855
0xccb3d76a2704f8fd06e0827052b4e4e43965078454677bc3891e544f704aed04Transfer196582032021-10-21 7:41:018 hrs 20 mins ago0x7778510f109514701b05009402a66e089c1f76f9 IN  SushiSwap: SUSHI Token0 FTM0.005528011271
0x8327087cba321103d915878a1d49d41aaf19d2f35092371f0a8e33569844090eApprove196539472021-10-21 6:22:509 hrs 39 mins ago0xd9d1aef69c24237b23fade3a255dc9d5c7b2675f IN  SushiSwap: SUSHI Token0 FTM0.008935122194
0xe1d63ddcdfbbfd58e1eaea72cc7f0da7a66eaf12b6df83c19e37081a2f8ebae2Swapout196472972021-10-21 4:22:5911 hrs 39 mins ago0xd917698de8e113ec155d4cbb316f56f6c8278b94 IN  SushiSwap: SUSHI Token0 FTM0.003608434837
0x1e6be7d30b473017c27cb3c090ef05c0d569c0f91fef86da118836b923935a23Approve196451182021-10-21 3:43:2912 hrs 18 mins ago0x1c097a37e652051bbf3d7a05ad11760242050712 IN  SushiSwap: SUSHI Token0 FTM0.007085778615
0x89ca5877cb06adeb4284aab1fc2659384c17b46d4b9e3392fb07c2121455ff97Swapout196446392021-10-21 3:35:3512 hrs 26 mins ago0x594c6ed60fa2471de8757b34b116d68b68824017 IN  SushiSwap: SUSHI Token0 FTM0.008391681
0xeb6b32c298092ba483f43528a89d187d783cc77ad9a57e827dcb786cbca57ae4Swapin196422822021-10-21 2:55:3113 hrs 6 mins ago0xc564ee9f21ed8a2d8e7e76c085740d5e4c5fafbe IN  SushiSwap: SUSHI Token0 FTM0.010906654652
0xdc8ec1042c82be415ef5d92ab4851c5ff12674e7467eb8decfcf2a633e04fa13Swapin196413892021-10-21 2:38:5213 hrs 23 mins ago0xc564ee9f21ed8a2d8e7e76c085740d5e4c5fafbe IN  SushiSwap: SUSHI Token0 FTM0.012869791517
0x00cff8a0dc639bf059ab7d876fa114a1dc6fc3d4db2c917c330c6329f566cce9Approve196404872021-10-21 2:25:0413 hrs 36 mins ago0x3dcbb9f5ec7555554761d6da4bbbaa111194dae8 IN  SushiSwap: SUSHI Token0 FTM0.009895948987
[ Download CSV Export 

OVERVIEW

The SushiSwap protocol realigns incentives for network participants by introducing revenue sharing and forum-driven network efforts to the popular AMM model.

Latest 1 internal transaction
Parent Txn Hash Block From To Value
0xa0eddca07fb4817a42e2c3894f0d5e6038ada8188d4663fc1e24e2c76298a91623009732021-02-19 18:20:24243 days 21 hrs ago Fantom: Deployer  Contract Creation0 FTM
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Sushi

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 Sushi 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"}]

60c06040523480156200001157600080fd5b5060405162001bcc38038062001bcc8339810160408190526200003491620002b1565b83516200004990600090602087019062000158565b5082516200005f90600190602086019062000158565b5060f882901b7fff0000000000000000000000000000000000000000000000000000000000000016608052600580546001600160a01b0319166001600160a01b0383161790554260065560405146907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f90620000de9060009062000350565b60408051918290038220828201825260018352603160f81b60209384015290516200013193927fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6918691309101620003f5565b60408051601f19818403018152919052805160209091012060a05250620004809350505050565b82805462000166906200042d565b90600052602060002090601f0160209004810192826200018a5760008555620001d5565b82601f10620001a557805160ff1916838001178555620001d5565b82800160010185558215620001d5579182015b82811115620001d5578251825591602001919060010190620001b8565b50620001e3929150620001e7565b5090565b5b80821115620001e35760008155600101620001e8565b600082601f8301126200020f578081fd5b81516001600160401b03808211156200022c576200022c6200046a565b604051601f8301601f19908116603f011681019082821181831017156200025757620002576200046a565b8160405283815260209250868385880101111562000273578485fd5b8491505b8382101562000296578582018301518183018401529082019062000277565b83821115620002a757848385830101525b9695505050505050565b60008060008060808587031215620002c7578384fd5b84516001600160401b0380821115620002de578586fd5b620002ec88838901620001fe565b9550602087015191508082111562000302578485fd5b506200031187828801620001fe565b935050604085015160ff8116811462000328578283fd5b60608601519092506001600160a01b038116811462000345578182fd5b939692955090935050565b81546000908190600281046001808316806200036d57607f831692505b60208084108214156200038e57634e487b7160e01b87526022600452602487fd5b818015620003a55760018114620003b757620003e7565b60ff19861689528489019650620003e7565b620003c28a62000421565b885b86811015620003df5781548b820152908501908301620003c4565b505084890196505b509498975050505050505050565b9485526020850193909352604084019190915260608301526001600160a01b0316608082015260a00190565b60009081526020902090565b6002810460018216806200044257607f821691505b602082108114156200046457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b60805160f81c60a05161171c620004b0600039600081816105cf0152610e46015260006105ab015261171c6000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c8063628d6cba116100b8578063a9059cbb1161007c578063a9059cbb1461024a578063b524f3a51461025d578063cae9ca5114610270578063d505accf14610283578063dd62ed3e14610298578063ec126c77146102ab57610136565b8063628d6cba146101f457806370a08231146102075780637ecebe001461021a5780638da5cb5b1461022d57806395d89b411461024257610136565b806330adf81f116100ff57806330adf81f146101a9578063313ce567146101b15780633644e515146101c65780634000aea0146101ce578063605629d6146101e157610136565b8062bf26f41461013b57806306fdde0314610159578063095ea7b31461016e57806318160ddd1461018e57806323b872dd14610196575b600080fd5b6101436102be565b604051610150919061138f565b60405180910390f35b6101616102e2565b60405161015091906113ea565b61018161017c3660046111cb565b610370565b6040516101509190611384565b6101436103c8565b6101816101a436600461111f565b6103cf565b610143610585565b6101b96105a9565b60405161015091906115fd565b6101436105cd565b6101816101dc3660046111f4565b6105f1565b6101816101ef36600461115a565b61074f565b6101816102023660046112ba565b61090b565b6101436102153660046110cc565b610980565b6101436102283660046110cc565b610992565b6102356109a4565b6040516101509190611328565b6101616109d1565b6101816102583660046111cb565b6109de565b61018161026b3660046110cc565b610ab8565b61018161027e3660046111f4565b610ba9565b61029661029136600461115a565b610c83565b005b6101436102a63660046110ed565b610da6565b6101816102b9366004611296565b610dc3565b7f42ce63790c28229c123925d83266e77c04d28784552ab68b350a9003226cbd5981565b600080546102ef9061163a565b80601f016020809104026020016040519081016040528092919081815260200182805461031b9061163a565b80156103685780601f1061033d57610100808354040283529160200191610368565b820191906000526020600020905b81548152906001019060200180831161034b57829003601f168201915b505050505081565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290916000805160206116c7833981519152906103b790869061138f565b60405180910390a350600192915050565b6003545b90565b60006001600160a01b0383161515806103f157506001600160a01b0383163014155b6103fa57600080fd5b6001600160a01b03841633146104c1576001600160a01b038416600090815260086020908152604080832033845290915290205460001981146104bf57828110156104605760405162461bcd60e51b81526004016104579061153e565b60405180910390fd5b600061046c8483611623565b6001600160a01b0387166000818152600860209081526040808320338085529252918290208490559051929350916000805160206116c7833981519152906104b590859061138f565b60405180910390a3505b505b6001600160a01b038416600090815260026020526040902054828110156104fa5760405162461bcd60e51b8152600401610457906115b6565b6105048382611623565b6001600160a01b03808716600090815260026020526040808220939093559086168152908120805485929061053a90849061160b565b92505081905550836001600160a01b0316856001600160a01b03166000805160206116a783398151915285604051610572919061138f565b60405180910390a3506001949350505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006001600160a01b03851615158061061357506001600160a01b0385163014155b61061c57600080fd5b336000908152600260205260409020548481101561064c5760405162461bcd60e51b8152600401610457906115b6565b6106568582611623565b33600090815260026020526040808220929092556001600160a01b0388168152908120805487929061068990849061160b565b90915550506040516001600160a01b0387169033906000805160206116a7833981519152906106b990899061138f565b60405180910390a3604051635260769b60e11b81526001600160a01b0387169063a4c0ed36906106f390339089908990899060040161133c565b602060405180830381600087803b15801561070d57600080fd5b505af1158015610721573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107459190611276565b9695505050505050565b6000844211156107715760405162461bcd60e51b815260040161045790611474565b6001600160a01b038816600090815260076020526040812080547f42ce63790c28229c123925d83266e77c04d28784552ab68b350a9003226cbd59918b918b918b9190866107be83611675565b919050558a6040516020016107d896959493929190611398565b6040516020818303038152906040528051906020012090506107fd8982878787610e41565b8061081057506108108982878787610f18565b61081957600080fd5b6001600160a01b03881615158061083957506001600160a01b0388163014155b61084257600080fd5b6001600160a01b0389166000908152600260205260409020548781101561087b5760405162461bcd60e51b8152600401610457906115b6565b6108858882611623565b6001600160a01b03808c1660009081526002602052604080822093909355908b16815290812080548a92906108bb90849061160b565b92505081905550886001600160a01b03168a6001600160a01b03166000805160206116a78339815191528a6040516108f3919061138f565b60405180910390a35060019998505050505050505050565b60006001600160a01b0382166109335760405162461bcd60e51b8152600401610457906114a4565b61093d3384610f4b565b816001600160a01b0316336001600160a01b03167f6b616089d04950dc06c45c6dd787d657980543f89651aec47924752c7d16c888856040516103b7919061138f565b60026020526000908152604090205481565b60076020526000908152604090205481565b600060065442106109c157506005546001600160a01b03166103cc565b506004546001600160a01b031690565b600180546102ef9061163a565b60006001600160a01b038316151580610a0057506001600160a01b0383163014155b610a0957600080fd5b3360009081526002602052604090205482811015610a395760405162461bcd60e51b8152600401610457906115b6565b610a438382611623565b33600090815260026020526040808220929092556001600160a01b03861681529081208054859290610a7690849061160b565b90915550506040516001600160a01b0385169033906000805160206116a783398151915290610aa690879061138f565b60405180910390a35060019392505050565b6000610ac26109a4565b6001600160a01b0316336001600160a01b031614610af25760405162461bcd60e51b8152600401610457906114d9565b6001600160a01b038216610b185760405162461bcd60e51b81526004016104579061143d565b610b206109a4565b600480546001600160a01b03199081166001600160a01b039384161790915560058054909116918416919091179055610b5c426202a30061160b565b60068190556005546004546040516001600160a01b0392831692909116907fe1968d4263a733e2597ef67ea6ad267343bba5f8bf0f99d85190e06b05d824d990600090a45060015b919050565b3360008181526008602090815260408083206001600160a01b038916808552925280832087905551919290916000805160206116c783398151915290610bf090889061138f565b60405180910390a360405162ba451f60e01b81526001600160a01b0386169062ba451f90610c2890339088908890889060040161133c565b602060405180830381600087803b158015610c4257600080fd5b505af1158015610c56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7a9190611276565b95945050505050565b83421115610ca35760405162461bcd60e51b815260040161045790611474565b6001600160a01b038716600090815260076020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918a918a918a919086610cf083611675565b9190505589604051602001610d0a96959493929190611398565b604051602081830303815290604052805190602001209050610d2f8882868686610e41565b80610d425750610d428882868686610f18565b610d4b57600080fd5b6001600160a01b038089166000818152600860209081526040808320948c168084529490915290819020899055516000805160206116c783398151915290610d94908a9061138f565b60405180910390a35050505050505050565b600860209081526000928352604080842090915290825290205481565b6000610dcd6109a4565b6001600160a01b0316336001600160a01b031614610dfd5760405162461bcd60e51b8152600401610457906114d9565b610e078383610fef565b826001600160a01b0316847f05d0634fe981be85c22e2942a880821b70095d84e152c3ea3c17a4e4250d9d6184604051610aa6919061138f565b6000807f000000000000000000000000000000000000000000000000000000000000000086604051602001610e7792919061130d565b604051602081830303815290604052805190602001209050600060018287878760405160008152602001604052604051610eb494939291906113cc565b6020604051602081039080840390855afa158015610ed6573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811615801590610f0c5750876001600160a01b0316816001600160a01b0316145b98975050505050505050565b600080610f2486611085565b9050600060018287878760405160008152602001604052604051610eb494939291906113cc565b6001600160a01b038216610f715760405162461bcd60e51b8152600401610457906114fd565b6001600160a01b03821660009081526002602052604081208054839290610f99908490611623565b925050819055508060036000828254610fb29190611623565b90915550506040516000906001600160a01b038416906000805160206116a783398151915290610fe390859061138f565b60405180910390a35050565b6001600160a01b0382166110155760405162461bcd60e51b81526004016104579061157f565b8060036000828254611027919061160b565b90915550506001600160a01b0382166000908152600260205260408120805483929061105490849061160b565b90915550506040516001600160a01b038316906000906000805160206116a783398151915290610fe390859061138f565b60008160405160200161109891906112dc565b604051602081830303815290604052805190602001209050919050565b80356001600160a01b0381168114610ba457600080fd5b6000602082840312156110dd578081fd5b6110e6826110b5565b9392505050565b600080604083850312156110ff578081fd5b611108836110b5565b9150611116602084016110b5565b90509250929050565b600080600060608486031215611133578081fd5b61113c846110b5565b925061114a602085016110b5565b9150604084013590509250925092565b600080600080600080600060e0888a031215611174578283fd5b61117d886110b5565b965061118b602089016110b5565b95506040880135945060608801359350608088013560ff811681146111ae578384fd5b9699959850939692959460a0840135945060c09093013592915050565b600080604083850312156111dd578182fd5b6111e6836110b5565b946020939093013593505050565b60008060008060608587031215611209578384fd5b611212856110b5565b935060208501359250604085013567ffffffffffffffff80821115611235578384fd5b818701915087601f830112611248578384fd5b813581811115611256578485fd5b886020828501011115611267578485fd5b95989497505060200194505050565b600060208284031215611287578081fd5b815180151581146110e6578182fd5b6000806000606084860312156112aa578283fd5b8335925061114a602085016110b5565b600080604083850312156112cc578182fd5b82359150611116602084016110b5565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b61190160f01b81526002810192909252602282015260420190565b6001600160a01b0391909116815260200190565b6001600160a01b0385168152602081018490526060604082018190528101829052600082846080840137818301608090810191909152601f909201601f191601019392505050565b901515815260200190565b90815260200190565b9586526001600160a01b0394851660208701529290931660408501526060840152608083019190915260a082015260c00190565b93845260ff9290921660208401526040830152606082015260800190565b6000602080835283518082850152825b81811015611416578581018301518582016040015282016113fa565b818111156114275783604083870101525b50601f01601f1916929092016040019392505050565b6020808252601d908201527f6e6577206f776e657220697320746865207a65726f2061646472657373000000604082015260600190565b60208082526016908201527515d15490cc4c0e88115e1c1a5c9959081c195c9b5a5d60521b604082015260600190565b6020808252818101527f62696e64206164647265737320697320746865207a65726f2061646472657373604082015260600190565b6020808252600a908201526937b7363c9037bbb732b960b11b604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526021908201527f5745524331303a2072657175657374206578636565647320616c6c6f77616e636040820152606560f81b606082015260800190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b60208082526027908201527f5745524331303a207472616e7366657220616d6f756e7420657863656564732060408201526662616c616e636560c81b606082015260800190565b60ff91909116815260200190565b6000821982111561161e5761161e611690565b500190565b60008282101561163557611635611690565b500390565b60028104600182168061164e57607f821691505b6020821081141561166f57634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561168957611689611690565b5060010190565b634e487b7160e01b600052601160045260246000fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a26469706673582212208dc8faf640e8ca549bc39d9386351aa88ac0b76330df6182b9a483d1dcdb79c464736f6c63430008010033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000012000000000000000000000000c564ee9f21ed8a2d8e7e76c085740d5e4c5fafbe0000000000000000000000000000000000000000000000000000000000000005537573686900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055355534849000000000000000000000000000000000000000000000000000000

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

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000012000000000000000000000000c564ee9f21ed8a2d8e7e76c085740d5e4c5fafbe0000000000000000000000000000000000000000000000000000000000000005537573686900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055355534849000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): Sushi
Arg [1] : _symbol (string): SUSHI
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] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [5] : 5375736869000000000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [7] : 5355534849000000000000000000000000000000000000000000000000000000


Deployed ByteCode Sourcemap

8675:13272:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8978:136;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8741:18;;;:::i;:::-;;;;;;;:::i;13744:265::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;12274:102::-;;;:::i;19890:927::-;;;;;;:::i;:::-;;:::i;8834:137::-;;;:::i;8793:32::-;;;:::i;:::-;;;;;;;:::i;9121:41::-;;;:::i;21421:523::-;;;;;;:::i;:::-;;:::i;16318:929::-;;;;;;:::i;:::-;;:::i;10375:273::-;;;;;;:::i;:::-;;:::i;9234:54::-;;;;;;:::i;:::-;;:::i;10920:51::-;;;;;;:::i;:::-;;:::i;9565:182::-;;;:::i;:::-;;;;;;;:::i;8766:20::-;;;:::i;18595:438::-;;;;;;:::i;:::-;;:::i;9765:384::-;;;;;;:::i;:::-;;:::i;14422:364::-;;;;;;:::i;:::-;;:::i;15603:707::-;;;;;;:::i;:::-;;:::i;:::-;;11133:75;;;;;;:::i;:::-;;:::i;10157:210::-;;;;;;:::i;:::-;;:::i;8978:136::-;9022:92;8978:136;:::o;8741:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13744:265::-;13897:10;13820:4;13887:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;13887:30:0;;;;;;;;;;:38;;;13941:36;13820:4;;13887:30;;-1:-1:-1;;;;;;;;;;;13941:36:0;;;13920:5;;13941:36;:::i;:::-;;;;;;;;-1:-1:-1;13997:4:0;13744:265;;;;:::o;12274:102::-;12356:12;;12274:102;;:::o;19890:927::-;19980:4;-1:-1:-1;;;;;20005:16:0;;;;;:39;;-1:-1:-1;;;;;;20025:19:0;;20039:4;20025:19;;20005:39;19997:48;;;;;;-1:-1:-1;;;;;20060:18:0;;20068:10;20060:18;20056:469;;-1:-1:-1;;;;;20174:15:0;;20156;20174;;;:9;:15;;;;;;;;20190:10;20174:27;;;;;;;;-1:-1:-1;;20220:28:0;;20216:298;;20288:5;20277:7;:16;;20269:62;;;;-1:-1:-1;;;20269:62:0;;;;;;;:::i;:::-;;;;;;;;;20350:15;20368;20378:5;20368:7;:15;:::i;:::-;-1:-1:-1;;;;;20402:15:0;;;;;;:9;:15;;;;;;;;20418:10;20402:27;;;;;;;;;:37;;;20463:35;;20350:33;;-1:-1:-1;20418:10:0;-1:-1:-1;;;;;;;;;;;20463:35:0;;;20350:33;;20463:35;:::i;:::-;;;;;;;;20216:298;;20056:469;;-1:-1:-1;;;;;20563:15:0;;20545;20563;;;:9;:15;;;;;;20597:16;;;;20589:68;;;;-1:-1:-1;;;20589:68:0;;;;;;;:::i;:::-;20688:15;20698:5;20688:7;:15;:::i;:::-;-1:-1:-1;;;;;20670:15:0;;;;;;;:9;:15;;;;;;:33;;;;20714:13;;;;;;;;:22;;20731:5;;20670:15;20714:22;;20731:5;;20714:22;:::i;:::-;;;;;;;;20767:2;-1:-1:-1;;;;;20752:25:0;20761:4;-1:-1:-1;;;;;20752:25:0;-1:-1:-1;;;;;;;;;;;20771:5:0;20752:25;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;20805:4:0;;19890:927;-1:-1:-1;;;;19890:927:0:o;8834:137::-;8876:95;8834:137;:::o;8793:32::-;;;:::o;9121:41::-;;;:::o;21421:523::-;21518:4;-1:-1:-1;;;;;21543:16:0;;;;;:39;;-1:-1:-1;;;;;;21563:19:0;;21577:4;21563:19;;21543:39;21535:48;;;;;;21632:10;21604:15;21622:21;;;:9;:21;;;;;;21662:16;;;;21654:68;;;;-1:-1:-1;;;21654:68:0;;;;;;;:::i;:::-;21759:15;21769:5;21759:7;:15;:::i;:::-;21745:10;21735:21;;;;:9;:21;;;;;;:39;;;;-1:-1:-1;;;;;21785:13:0;;;;;;;:22;;21802:5;;21735:21;21785:22;;21802:5;;21785:22;:::i;:::-;;;;-1:-1:-1;;21823:31:0;;-1:-1:-1;;;;;21823:31:0;;;21832:10;;-1:-1:-1;;;;;;;;;;;21823:31:0;;;21848:5;;21823:31;:::i;:::-;;;;;;;;21874:62;;-1:-1:-1;;;21874:62:0;;-1:-1:-1;;;;;21874:37:0;;;;;:62;;21912:10;;21924:5;;21931:4;;;;21874:62;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21867:69;21421:523;-1:-1:-1;;;;;;21421:523:0:o;16318:929::-;16456:4;16500:8;16481:15;:27;;16473:62;;;;-1:-1:-1;;;16473:62:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16728:14:0;;16548:18;16728:14;;;:6;:14;;;;;:16;;9022:92;;16658:6;;16683:2;;16704:5;;16728:16;16548:18;16728:16;;;:::i;:::-;;;;;16763:8;16593:179;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;16569:204;;;;;;16548:225;;16794:41;16807:6;16815:10;16827:1;16830;16833;16794:12;:41::i;:::-;:92;;;;16839:47;16858:6;16866:10;16878:1;16881;16884;16839:18;:47::i;:::-;16786:101;;;;;;-1:-1:-1;;;;;16908:16:0;;;;;:39;;-1:-1:-1;;;;;;16928:19:0;;16942:4;16928:19;;16908:39;16900:48;;;;;;-1:-1:-1;;;;;16987:17:0;;16969:15;16987:17;;;:9;:17;;;;;;17023:16;;;;17015:68;;;;-1:-1:-1;;;17015:68:0;;;;;;;:::i;:::-;17116:15;17126:5;17116:7;:15;:::i;:::-;-1:-1:-1;;;;;17096:17:0;;;;;;;:9;:17;;;;;;:35;;;;17142:13;;;;;;;;:22;;17159:5;;17096:17;17142:22;;17159:5;;17142:22;:::i;:::-;;;;;;;;17197:2;-1:-1:-1;;;;;17180:27:0;17189:6;-1:-1:-1;;;;;17180:27:0;-1:-1:-1;;;;;;;;;;;17201:5:0;17180:27;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;17235:4:0;;16318:929;-1:-1:-1;;;;;;;;;16318:929:0:o;10375:273::-;10442:4;-1:-1:-1;;;;;10467:22:0;;10459:67;;;;-1:-1:-1;;;10459:67:0;;;;;;;:::i;:::-;10537:25;10543:10;10555:6;10537:5;:25::i;:::-;10601:8;-1:-1:-1;;;;;10578:40:0;10589:10;-1:-1:-1;;;;;10578:40:0;;10611:6;10578:40;;;;;;:::i;9234:54::-;;;;;;;;;;;;;:::o;10920:51::-;;;;;;;;;;;;;:::o;9565:182::-;9603:7;9646:22;;9627:15;:41;9623:90;;-1:-1:-1;9692:9:0;;-1:-1:-1;;;;;9692:9:0;9685:16;;9623:90;-1:-1:-1;9730:9:0;;-1:-1:-1;;;;;9730:9:0;9565:182;:::o;8766:20::-;;;;;;;:::i;18595:438::-;18667:4;-1:-1:-1;;;;;18692:16:0;;;;;:39;;-1:-1:-1;;;;;;18712:19:0;;18726:4;18712:19;;18692:39;18684:48;;;;;;18771:10;18743:15;18761:21;;;:9;:21;;;;;;18801:16;;;;18793:68;;;;-1:-1:-1;;;18793:68:0;;;;;;;:::i;:::-;18898:15;18908:5;18898:7;:15;:::i;:::-;18884:10;18874:21;;;;:9;:21;;;;;;:39;;;;-1:-1:-1;;;;;18924:13:0;;;;;;;:22;;18941:5;;18874:21;18924:22;;18941:5;;18924:22;:::i;:::-;;;;-1:-1:-1;;18962:31:0;;-1:-1:-1;;;;;18962:31:0;;;18971:10;;-1:-1:-1;;;;;;;;;;;18962:31:0;;;18987:5;;18962:31;:::i;:::-;;;;;;;;-1:-1:-1;19021:4:0;;18595:438;-1:-1:-1;;;18595:438:0:o;9765:384::-;9834:4;9511:7;:5;:7::i;:::-;-1:-1:-1;;;;;9497:21:0;:10;-1:-1:-1;;;;;9497:21:0;;9489:44;;;;-1:-1:-1;;;9489:44:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9859:22:0;::::1;9851:64;;;;-1:-1:-1::0;;;9851:64:0::1;;;;;;;:::i;:::-;9938:7;:5;:7::i;:::-;9926:9;:19:::0;;-1:-1:-1;;;;;;9926:19:0;;::::1;-1:-1:-1::0;;;;;9926:19:0;;::::1;;::::0;;;9956:9:::1;:20:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;10012:27:::1;:15;10030:9;10012:27;:::i;:::-;9987:22;:52:::0;;;10085:9:::1;::::0;10074::::1;::::0;10055:64:::1;::::0;-1:-1:-1;;;;;10085:9:0;;::::1;::::0;10074;;::::1;::::0;10055:64:::1;::::0;10085:9:::1;::::0;10055:64:::1;-1:-1:-1::0;10137:4:0::1;9544:1;9765:384:::0;;;:::o;14422:364::-;14603:10;14526:4;14593:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;14593:30:0;;;;;;;;;;:38;;;14647:36;14526:4;;14593:30;;-1:-1:-1;;;;;;;;;;;14647:36:0;;;14626:5;;14647:36;:::i;:::-;;;;;;;;14711:67;;-1:-1:-1;;;14711:67:0;;-1:-1:-1;;;;;14711:42:0;;;;;:67;;14754:10;;14766:5;;14773:4;;;;14711:67;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14704:74;14422:364;-1:-1:-1;;;;;14422:364:0:o;15603:707::-;15772:8;15753:15;:27;;15745:62;;;;-1:-1:-1;;;15745:62:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16003:14:0;;15820:18;16003:14;;;:6;:14;;;;;:16;;8876:95;;15928:6;;15953:7;;15979:5;;16003:16;15820:18;16003:16;;;:::i;:::-;;;;;16038:8;15865:182;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;15841:207;;;;;;15820:228;;16069:41;16082:6;16090:10;16102:1;16105;16108;16069:12;:41::i;:::-;:92;;;;16114:47;16133:6;16141:10;16153:1;16156;16159;16114:18;:47::i;:::-;16061:101;;;;;;-1:-1:-1;;;;;16220:17:0;;;;;;;:9;:17;;;;;;;;:26;;;;;;;;;;;;;;:34;;;16270:32;-1:-1:-1;;;;;;;;;;;16270:32:0;;;16249:5;;16270:32;:::i;:::-;;;;;;;;15603:707;;;;;;;;:::o;11133:75::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;10157:210::-;10248:4;9511:7;:5;:7::i;:::-;-1:-1:-1;;;;;9497:21:0;:10;-1:-1:-1;;;;;9497:21:0;;9489:44;;;;-1:-1:-1;;;9489:44:0;;;;;;;:::i;:::-;10265:22:::1;10271:7;10280:6;10265:5;:22::i;:::-;10321:7;-1:-1:-1::0;;;;;10303:34:0::1;10313:6;10303:34;10330:6;10303:34;;;;;;:::i;17259:399::-:0;17371:4;17388:12;17491:16;17526:10;17427:110;;;;;;;;;:::i;:::-;;;;;;;;;;;;;17403:135;;;;;;17388:150;;17549:14;17566:24;17576:4;17582:1;17585;17588;17566:24;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;17566:24:0;;-1:-1:-1;;17566:24:0;;;-1:-1:-1;;;;;;;17609:20:0;;;;;;:40;;;17643:6;-1:-1:-1;;;;;17633:16:0;:6;-1:-1:-1;;;;;17633:16:0;;17609:40;17601:49;17259:399;-1:-1:-1;;;;;;;;17259:399:0:o;17670:290::-;17788:4;17805:12;17820:20;17829:10;17820:8;:20::i;:::-;17805:35;;17851:14;17868:24;17878:4;17884:1;17887;17890;17868:24;;;;;;;;;;;;;;;;;;:::i;13261:270::-;-1:-1:-1;;;;;13337:21:0;;13329:67;;;;-1:-1:-1;;;13329:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13409:18:0;;;;;;:9;:18;;;;;:28;;13431:6;;13409:18;:28;;13431:6;;13409:28;:::i;:::-;;;;;;;;13464:6;13448:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;13486:37:0;;13512:1;;-1:-1:-1;;;;;13486:37:0;;;-1:-1:-1;;;;;;;;;;;13486:37:0;;;13516:6;;13486:37;:::i;:::-;;;;;;;;13261:270;;:::o;12661:268::-;-1:-1:-1;;;;;12737:21:0;;12729:65;;;;-1:-1:-1;;;12729:65:0;;;;;;;:::i;:::-;12823:6;12807:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;12840:18:0;;;;;;:9;:18;;;;;:28;;12862:6;;12840:18;:28;;12862:6;;12840:28;:::i;:::-;;;;-1:-1:-1;;12884:37:0;;-1:-1:-1;;;;;12884:37:0;;;12901:1;;-1:-1:-1;;;;;;;;;;;12884:37:0;;;12914:6;;12884:37;:::i;18038:159::-;18093:7;18183:4;18130:58;;;;;;;;:::i;:::-;;;;;;;;;;;;;18120:69;;;;;;18113:76;;18038: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://8dc8faf640e8ca549bc39d9386351aa88ac0b76330df6182b9a483d1dcdb79c4
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.