Contract 0x924828a9Fb17d47D0eb64b57271D10706699Ff11

 

Contract Overview

Saffron: SFI Token
Balance:
0 FTM

FTM Value:
$0.00

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xd6c7a06e85e158a1350a1d223b1fc42e536a3fafa775c7aec6e5eb8f6b846fabTransfer513972352022-11-24 17:10:309 days 12 hrs ago0x07677dc6c96fcf1be8812690d521554773693c5b IN  Saffron: SFI Token0 FTM0.0049097
0x2394f6802e4eb6242fdf4d968c47c8be9d73c4828a4dbd50d235337233d7c672Approve511164282022-11-19 7:51:1714 days 22 hrs ago0xbf79fcd7e8cb43373acd4451d243b2cc53c6f2d2 IN  Saffron: SFI Token0 FTM0.00518408
0x87590384a63cd6389217229fa7016a0826c7272c3de2e7740ceee705e25148deTransfer510228532022-11-17 11:36:1316 days 18 hrs ago0xe1e355f88c79a86f31377400af9b4a865fbac159 IN  Saffron: SFI Token0 FTM0.005116252023
0x2635137f6b5e2a0a80edecc3bdf8cedf5c16fa4c6d9bc1856c3c55539133c5edTransfer505533572022-11-07 0:57:4027 days 5 hrs ago0xc89ce9f096ddb405359b22a4863a08e8828e88d7 IN  Saffron: SFI Token0 FTM0.013461197102
0xd3ebb669cdd24b86c6cb9862a6bac05bd6f13152275c31557d27e795d24b235bApprove478169262022-09-26 21:17:2668 days 8 hrs ago0xc89ce9f096ddb405359b22a4863a08e8828e88d7 IN  Saffron: SFI Token0 FTM0.00007264
0x608dd9f4fa1622b55168043d508b3f828248890b2aaf911a2732b0417f551b08Approve478168302022-09-26 21:15:4368 days 8 hrs ago0xc89ce9f096ddb405359b22a4863a08e8828e88d7 IN  Saffron: SFI Token0 FTM0.00011557
0xb85308aac28c158bcaf44abd2e2e1c8787db88b37ce6d6c82de3ede0b8dc0684Transfer470804262022-09-16 23:11:4678 days 6 hrs ago0x1618d6054c0b0ccb737868a51cef3dceaca5c584 IN  Saffron: SFI Token0 FTM0.000062674017
0x4c4a772bf5588620749b8d28ed8c886be9be199fe09fbd1ebaabdbaaba9bd769Transfer470803502022-09-16 23:10:2678 days 6 hrs ago0x1618d6054c0b0ccb737868a51cef3dceaca5c584 IN  Saffron: SFI Token0 FTM0.000068654895
0x5df6f7eb0e9aedea0eac0ac7ed44163f242eec40e761f3bd39505bd04d4650eaApprove456102762022-08-24 21:59:23101 days 8 hrs ago0xc89ce9f096ddb405359b22a4863a08e8828e88d7 IN  Saffron: SFI Token0 FTM0.000031012217
0x907a056cc23c597117c418993a1c8787b2e8477d8af54b56d3b57ac4f001cf42Approve456102462022-08-24 21:58:51101 days 8 hrs ago0xc89ce9f096ddb405359b22a4863a08e8828e88d7 IN  Saffron: SFI Token0 FTM0.000054262201
0x40fd9bf1734acb1143a85c7d77f4808df6f94a6c14aec32e65b6ca5025b4eae0Transfer445024332022-08-08 22:08:33117 days 7 hrs ago0x67e824c895eec9da9a2b94d175ce05d643e21ac3 IN  Saffron: SFI Token0 FTM0.000350284882
0xbaa031711f1b426bdfde7558c7594fe38cc388db0098159ce6152deb7984e87bApprove433945172022-07-23 18:41:13133 days 11 hrs ago0xf48b175bdf5930d71dfc049ac98b76c1bfe9660c IN  Saffron: SFI Token0 FTM0.000424152
0xf21b7d928df50b2303508654fab4ecfb1c4a5004219ea5e64833a6d50a5b6b75Approve423111312022-07-08 15:46:21148 days 14 hrs ago0xe37f7f523e8b72fb06c4d8ccf9631a74a8fcd414 IN  Saffron: SFI Token0 FTM0.0024480532
0x1c5c9899cb21f59e66898d9964aaa1729d6ddd1a6ce3b63fc1351871f5cc5d9eApprove413241462022-06-25 19:13:51161 days 10 hrs ago0xe37f7f523e8b72fb06c4d8ccf9631a74a8fcd414 IN  Saffron: SFI Token0 FTM0.000339027074
0xab1d79dca7d93bc9aefb2af8f419b9914bdc72b3c58e1e925ff3fe95225f951bApprove413234602022-06-25 18:59:45161 days 11 hrs ago0xe37f7f523e8b72fb06c4d8ccf9631a74a8fcd414 IN  Saffron: SFI Token0 FTM0.005118214073
0x1769579a0787d01925687d6f79203d6cc3a3e33e4023975bd356fb79b4cff3bcApprove408673342022-06-19 14:27:06167 days 15 hrs ago0x5aa608fa04745ba5ffb284c61d1e6c82f90b2927 IN  Saffron: SFI Token0 FTM0.000742011318
0xe8eed2934b75faa2902b4c251b7d5a1934648075b1b1596ec9ba9c768043d0e3Approve408542562022-06-19 10:14:20167 days 19 hrs ago0x9634e2be82f2284444c385c2de12b8f0d5131f1a IN  Saffron: SFI Token0 FTM0.000717686976
0x8af2b9d3d0245ec7aee72780954b6b5e9bc012d5a10d631be5fd71ba82cca1deApprove408542212022-06-19 10:13:43167 days 19 hrs ago0x9634e2be82f2284444c385c2de12b8f0d5131f1a IN  Saffron: SFI Token0 FTM0.001262135392
0xefeaa9387674929d6b0e6b600597b429f3fa5f75ab5a628ad52ff3134418bef9Approve408538212022-06-19 10:05:35167 days 19 hrs ago0x9634e2be82f2284444c385c2de12b8f0d5131f1a IN  Saffron: SFI Token0 FTM0.001050641955
0x749b04395dfca51f428d957b2ebc45362c164a6c57cc075bd00bf23db431d4f2Approve408537142022-06-19 10:03:41167 days 20 hrs ago0x9634e2be82f2284444c385c2de12b8f0d5131f1a IN  Saffron: SFI Token0 FTM0.001586625305
0x63739df886a964a19be3bcc845e85ddc88ee508ee49b837d6f5a34e70c536314Approve407275992022-06-17 16:11:33169 days 13 hrs ago0x5aa608fa04745ba5ffb284c61d1e6c82f90b2927 IN  Saffron: SFI Token0 FTM0.021220361676
0xec324f11eda90cd69adffc0eb27b5a204d3738942a3c1f2a4dee11c5a386b957Approve407262712022-06-17 15:47:40169 days 14 hrs ago0x5aa608fa04745ba5ffb284c61d1e6c82f90b2927 IN  Saffron: SFI Token0 FTM0.001710009861
0x271a76f58321206c4f876fe2695181cf61385fa307f547fc5215afc8dc4e4844Approve407256792022-06-17 15:36:43169 days 14 hrs ago0x5aa608fa04745ba5ffb284c61d1e6c82f90b2927 IN  Saffron: SFI Token0 FTM0.095937062831
0xbff1b1b6a8527ea715bca0b064f253e20090846102fd14ef1a74f4090a2ca5ebApprove394726552022-05-31 14:22:07186 days 15 hrs ago0x9634e2be82f2284444c385c2de12b8f0d5131f1a IN  Saffron: SFI Token0 FTM0.002345694323
0x443737aace66b2fac10ed0bf4f064c0ba6fc466454a9a97df3664ff80d00b4b3Transfer392709012022-05-28 20:22:23189 days 9 hrs ago0xa7b879d6fca6a77263e060bf271c9406621ad46a IN  Saffron: SFI Token0 FTM0.000606089481
[ Download CSV Export 

OVERVIEW

Saffron is an asset collateralization platform where liquidity providers have access to dynamic exposure by selecting customized risk and return profiles.

Latest 1 internal transaction
Parent Txn Hash Block From To Value
0x08b318e9bd37b8b8a434932885beabc53881dcd256fd02809849b7598462bbff23661672021-02-22 16:34:03649 days 13 hrs ago Fantom: Deployer  Contract Creation0 FTM
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SFI

Compiler Version
v0.7.1+commit.f4a555be

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU LGPLv3 license

Contract Source Code (Solidity)

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

// File: contracts/lib/IERC20.sol

// SPDX-License-Identifier: MIT

pragma solidity ^0.7.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);
}

// File: contracts/interfaces/IERC2612.sol


pragma solidity ^0.7.1;

/**
 * @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);
}

// File: contracts/interfaces/IWERC10.sol


pragma solidity ^0.7.1;


/// @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);
}

// File: contracts/SFI.sol


pragma solidity ^0.7.1;




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");
    }
  }
}

contract SFI is IWERC10 {
  using SafeERC20 for IERC20;

  string public name;
  string public symbol;
  uint8  public immutable decimals;

  address public governance;
  uint256 public MAX_TOKENS = 100000 ether;

  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;

  address private _oldOwner;
  address private _newOwner;
  uint256 private _newOwnerEffectiveTime;

  /// @dev Records amount of WERC10 token owned by account.
  mapping (address => uint256) public override balanceOf;
  uint256 private _totalSupply;

  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;

    // Initial governance is Saffron Deployer
    governance = msg.sender;

    _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)));
  }

  function set_governance(address to) external {
    require(msg.sender == governance, "must be governance");
    governance = to;
  }

  /// @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);
  }

  event ErcSwept(address who, address to, address token, uint256 amount);
  function erc_sweep(address _token, address _to) public {
    require(msg.sender == governance, "must be governance");

    IERC20 tkn = IERC20(_token);
    uint256 tBal = tkn.balanceOf(address(this));
    tkn.safeTransfer(_to, tBal);

    emit ErcSwept(msg.sender, _to, _token, tBal);
  }
}

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":false,"internalType":"address","name":"who","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ErcSwept","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":"MAX_TOKENS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"erc_sweep","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"governance","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[{"internalType":"address","name":"to","type":"address"}],"name":"set_governance","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"}]

60c060405269152d02c7e14af68000006003553480156200001f57600080fd5b5060405162001f7838038062001f78833981810160405260808110156200004557600080fd5b81019080805160405193929190846401000000008211156200006657600080fd5b9083019060208201858111156200007c57600080fd5b82516401000000008111828201881017156200009757600080fd5b82525081516020918201929091019080838360005b83811015620000c6578181015183820152602001620000ac565b50505050905090810190601f168015620000f45780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011857600080fd5b9083019060208201858111156200012e57600080fd5b82516401000000008111828201881017156200014957600080fd5b82525081516020918201929091019080838360005b83811015620001785781810151838201526020016200015e565b50505050905090810190601f168015620001a65780820380516001836020036101000a031916815260200191505b506040908152602082810151929091015186519294509250620001cf9160009187019062000350565b508251620001e590600190602086019062000350565b5060f882901b7fff000000000000000000000000000000000000000000000000000000000000001660805260028054336001600160a01b0319918216178255600580549091166001600160a01b038416179055426006556040516000805446937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f9391829184916101006001821615026000190116048015620002c25780601f106200029f576101008083540402835291820191620002c2565b820191906000526020600020905b815481529060010190602001808311620002ad575b505060408051918290038220828201825260018352603160f81b602093840152815180840196909652858201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606086015260808501959095523060a08086019190915285518086038201815260c0909501909552835193019290922090925250620003ec945050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200039357805160ff1916838001178555620003c3565b82800160010185558215620003c3579182015b82811115620003c3578251825591602001919060010190620003a6565b50620003d1929150620003d5565b5090565b5b80821115620003d15760008155600101620003d6565b60805160f81c60a051611b606200041860003980610ad45280611569525080610ab05250611b606000f3fe608060405234801561001057600080fd5b50600436106101725760003560e01c8063605629d6116100de578063a9059cbb11610097578063d505accf11610071578063d505accf14610569578063dd62ed3e146105ba578063ec126c77146105e8578063f47c84c51461061a57610172565b8063a9059cbb14610492578063b524f3a5146104be578063cae9ca51146104e457610172565b8063605629d6146103b9578063628d6cba1461040a57806370a08231146104365780637ecebe001461045c5780638da5cb5b1461048257806395d89b411461048a57610172565b80632b666fcf116101305780632b666fcf146102b457806330adf81f146102e2578063313ce567146102ea5780633644e515146103085780634000aea0146103105780635aa6e6751461039557610172565b8062bf26f41461017757806306fdde0314610191578063070313fa1461020e578063095ea7b31461023657806318160ddd1461027657806323b872dd1461027e575b600080fd5b61017f610622565b60408051918252519081900360200190f35b610199610646565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101d35781810151838201526020016101bb565b50505050905090810190601f1680156102005780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102346004803603602081101561022457600080fd5b50356001600160a01b03166106d4565b005b6102626004803603604081101561024c57600080fd5b506001600160a01b03813516906020013561074a565b604080519115158252519081900360200190f35b61017f61079e565b6102626004803603606081101561029457600080fd5b506001600160a01b038135811691602081013590911690604001356107a5565b610234600480360360408110156102ca57600080fd5b506001600160a01b0381358116916020013516610953565b61017f610a8a565b6102f2610aae565b6040805160ff9092168252519081900360200190f35b61017f610ad2565b6102626004803603606081101561032657600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561035657600080fd5b82018360208201111561036857600080fd5b8035906020019184600183028401116401000000008311171561038a57600080fd5b509092509050610af6565b61039d610c82565b604080516001600160a01b039092168252519081900360200190f35b610262600480360360e08110156103cf57600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610c91565b6102626004803603604081101561042057600080fd5b50803590602001356001600160a01b0316610e77565b61017f6004803603602081101561044c57600080fd5b50356001600160a01b0316610f27565b61017f6004803603602081101561047257600080fd5b50356001600160a01b0316610f39565b61039d610f4b565b610199610f78565b610262600480360360408110156104a857600080fd5b506001600160a01b038135169060200135610fd2565b610262600480360360208110156104d457600080fd5b50356001600160a01b03166110a7565b610262600480360360608110156104fa57600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561052a57600080fd5b82018360208201111561053c57600080fd5b8035906020019184600183028401116401000000008311171561055e57600080fd5b5090925090506111db565b610234600480360360e081101561057f57600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c001356112e5565b61017f600480360360408110156105d057600080fd5b506001600160a01b038135811691602001351661143a565b610262600480360360608110156105fe57600080fd5b508035906001600160a01b036020820135169060400135611457565b61017f611507565b7f42ce63790c28229c123925d83266e77c04d28784552ab68b350a9003226cbd5981565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106cc5780601f106106a1576101008083540402835291602001916106cc565b820191906000526020600020905b8154815290600101906020018083116106af57829003601f168201915b505050505081565b6002546001600160a01b03163314610728576040805162461bcd60e51b81526020600482015260126024820152716d75737420626520676f7665726e616e636560701b604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b336000818152600a602090815260408083206001600160a01b03871680855290835281842086905581518681529151939490939092600080516020611a99833981519152928290030190a350600192915050565b6008545b90565b60006001600160a01b0383161515806107c757506001600160a01b0383163014155b6107d057600080fd5b6001600160a01b038416331461089d576001600160a01b0384166000908152600a60209081526040808320338452909152902054600019811461089b578281101561084c5760405162461bcd60e51b8152600401808060200182810382526021815260200180611ae36021913960400191505060405180910390fd5b6001600160a01b0385166000818152600a6020908152604080832033808552908352928190208786039081905581518181529151909492600080516020611a99833981519152928290030190a3505b505b6001600160a01b038416600090815260076020526040902054828110156108f55760405162461bcd60e51b8152600401808060200182810382526027815260200180611b046027913960400191505060405180910390fd5b6001600160a01b038086166000818152600760209081526040808320888703905593881680835291849020805488019055835187815293519193600080516020611a58833981519152929081900390910190a3506001949350505050565b6002546001600160a01b031633146109a7576040805162461bcd60e51b81526020600482015260126024820152716d75737420626520676f7665726e616e636560701b604482015290519081900360640190fd5b604080516370a0823160e01b8152306004820152905183916000916001600160a01b038416916370a08231916024808301926020929190829003018186803b1580156109f257600080fd5b505afa158015610a06573d6000803e3d6000fd5b505050506040513d6020811015610a1c57600080fd5b50519050610a346001600160a01b038316848361150d565b604080513381526001600160a01b0380861660208301528616818301526060810183905290517f2c4e64c7c0957a81c0076a0a3f3c7d9f0a5d6158292071c794436f829d12cfb79181900360800190a150505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006001600160a01b038516151580610b1857506001600160a01b0385163014155b610b2157600080fd5b3360009081526007602052604090205484811015610b705760405162461bcd60e51b8152600401808060200182810382526027815260200180611b046027913960400191505060405180910390fd5b33600081815260076020908152604080832089860390556001600160a01b038a168084529281902080548a01905580518981529051929392600080516020611a58833981519152929181900390910190a3856001600160a01b031663a4c0ed36338787876040518563ffffffff1660e01b815260040180856001600160a01b03168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050602060405180830381600087803b158015610c4c57600080fd5b505af1158015610c60573d6000803e3d6000fd5b505050506040513d6020811015610c7657600080fd5b50519695505050505050565b6002546001600160a01b031681565b600084421115610ce1576040805162461bcd60e51b815260206004820152601660248201527515d15490cc4c0e88115e1c1a5c9959081c195c9b5a5d60521b604482015290519081900360640190fd5b6001600160a01b0380891660008181526009602090815260409182902080546001810190915582517f42ce63790c28229c123925d83266e77c04d28784552ab68b350a9003226cbd598184015280840194909452938b166060840152608083018a905260a083019390935260c08083018990528151808403909101815260e090920190528051910120610d778982878787611564565b80610d8a5750610d8a8982878787611663565b610d9357600080fd5b6001600160a01b038816151580610db357506001600160a01b0388163014155b610dbc57600080fd5b6001600160a01b03891660009081526007602052604090205487811015610e145760405162461bcd60e51b8152600401808060200182810382526027815260200180611b046027913960400191505060405180910390fd5b6001600160a01b03808b1660008181526007602090815260408083208d87039055938d168083529184902080548d01905583518c815293519193600080516020611a58833981519152929081900390910190a35060019998505050505050505050565b60006001600160a01b038216610ed4576040805162461bcd60e51b815260206004820181905260248201527f62696e64206164647265737320697320746865207a65726f2061646472657373604482015290519081900360640190fd5b610ede33846116cd565b6040805184815290516001600160a01b0384169133917f6b616089d04950dc06c45c6dd787d657980543f89651aec47924752c7d16c8889181900360200190a350600192915050565b60076020526000908152604090205481565b60096020526000908152604090205481565b60006006544210610f6857506005546001600160a01b03166107a2565b506004546001600160a01b031690565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106cc5780601f106106a1576101008083540402835291602001916106cc565b60006001600160a01b038316151580610ff457506001600160a01b0383163014155b610ffd57600080fd5b336000908152600760205260409020548281101561104c5760405162461bcd60e51b8152600401808060200182810382526027815260200180611b046027913960400191505060405180910390fd5b33600081815260076020908152604080832087860390556001600160a01b0388168084529281902080548801905580518781529051929392600080516020611a58833981519152929181900390910190a35060019392505050565b60006110b1610f4b565b6001600160a01b0316336001600160a01b031614611103576040805162461bcd60e51b815260206004820152600a60248201526937b7363c9037bbb732b960b11b604482015290519081900360640190fd5b6001600160a01b03821661115e576040805162461bcd60e51b815260206004820152601d60248201527f6e6577206f776e657220697320746865207a65726f2061646472657373000000604482015290519081900360640190fd5b611166610f4b565b600480546001600160a01b03199081166001600160a01b039384161791829055600580549091168584161790819055426202a300016006819055604051909391821692909116907fe1968d4263a733e2597ef67ea6ad267343bba5f8bf0f99d85190e06b05d824d990600090a4506001919050565b336000818152600a602090815260408083206001600160a01b03891680855290835281842088905581518881529151939490939092600080516020611a99833981519152928290030190a3846001600160a01b031662ba451f338686866040518563ffffffff1660e01b815260040180856001600160a01b03168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050602060405180830381600087803b1580156112b057600080fd5b505af11580156112c4573d6000803e3d6000fd5b505050506040513d60208110156112da57600080fd5b505195945050505050565b83421115611333576040805162461bcd60e51b815260206004820152601660248201527515d15490cc4c0e88115e1c1a5c9959081c195c9b5a5d60521b604482015290519081900360640190fd5b6001600160a01b0380881660008181526009602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938a1660608401526080830189905260a083019390935260c08083018890528151808403909101815260e0909201905280519101206113c98882868686611564565b806113dc57506113dc8882868686611663565b6113e557600080fd5b6001600160a01b038089166000818152600a60209081526040808320948c16808452948252918290208a905581518a81529151600080516020611a998339815191529281900390910190a35050505050505050565b600a60209081526000928352604080842090915290825290205481565b6000611461610f4b565b6001600160a01b0316336001600160a01b0316146114b3576040805162461bcd60e51b815260206004820152600a60248201526937b7363c9037bbb732b960b11b604482015290519081900360640190fd5b6114bd8383611764565b6040805183815290516001600160a01b0385169186917f05d0634fe981be85c22e2942a880821b70095d84e152c3ea3c17a4e4250d9d619181900360200190a35060019392505050565b60035481565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261155f90849061180c565b505050565b6000807f000000000000000000000000000000000000000000000000000000000000000086604051602001808061190160f01b81525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050600060018287878760405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611621573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906116575750876001600160a01b0316816001600160a01b0316145b98975050505050505050565b60008061166f866119ca565b9050600060018287878760405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611621573d6000803e3d6000fd5b6001600160a01b0382166117125760405162461bcd60e51b8152600401808060200182810382526021815260200180611a786021913960400191505060405180910390fd5b6001600160a01b03821660008181526007602090815260408083208054869003905560088054869003905580518581529051929392600080516020611a58833981519152929181900390910190a35050565b6001600160a01b0382166117bf576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b60088054820190556001600160a01b038216600081815260076020908152604080832080548601905580518581529051600080516020611a58833981519152929181900390910190a35050565b61181e826001600160a01b0316611a1b565b61186f576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106118ad5780518252601f19909201916020918201910161188e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461190f576040519150601f19603f3d011682016040523d82523d6000602084013e611914565b606091505b50915091508161196b576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b8051156119c45780806020019051602081101561198757600080fd5b50516119c45760405162461bcd60e51b815260040180806020018281038252602a815260200180611ab9602a913960400191505060405180910390fd5b50505050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708115801590611a4f5750808214155b94935050505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a206275726e2066726f6d20746865207a65726f20616464726573738c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9255361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645745524331303a2072657175657374206578636565647320616c6c6f77616e63655745524331303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365a264697066735822122028c61540adcb41e3a7bf493c7478c9af661df9e19d657a030e7c6b2a251ccdea64736f6c63430007010033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000012000000000000000000000000c564ee9f21ed8a2d8e7e76c085740d5e4c5fafbe0000000000000000000000000000000000000000000000000000000000000005537069636500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035346490000000000000000000000000000000000000000000000000000000000

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

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000012000000000000000000000000c564ee9f21ed8a2d8e7e76c085740d5e4c5fafbe0000000000000000000000000000000000000000000000000000000000000005537069636500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035346490000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): Spice
Arg [1] : _symbol (string): SFI
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] : 5370696365000000000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [7] : 5346490000000000000000000000000000000000000000000000000000000000


Deployed ByteCode Sourcemap

8447:13031:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8815:136;;;:::i;:::-;;;;;;;;;;;;;;;;8509:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11840:135;;;;;;;;;;;;;;;;-1:-1:-1;11840:135:0;-1:-1:-1;;;;;11840:135:0;;:::i;:::-;;13436:247;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;13436:247:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;12068:96;;;:::i;19210:817::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;19210:817:0;;;;;;;;;;;;;;;;;:::i;21179:296::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;21179:296:0;;;;;;;;;;:::i;8673:137::-;;;:::i;8557:32::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8956:41;;;:::i;20613:485::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20613:485:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20613:485:0;;-1:-1:-1;20613:485:0;-1:-1:-1;20613:485:0;:::i;8596:25::-;;;:::i;:::-;;;;-1:-1:-1;;;;;8596:25:0;;;;;;;;;;;;;;15868:849;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;15868:849:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10096:255::-;;;;;;;;;;;;;;;;-1:-1:-1;10096:255:0;;;;;;-1:-1:-1;;;;;10096:255:0;;:::i;9170:54::-;;;;;;;;;;;;;;;;-1:-1:-1;9170:54:0;-1:-1:-1;;;;;9170:54:0;;:::i;10617:51::-;;;;;;;;;;;;;;;;-1:-1:-1;10617:51:0;-1:-1:-1;;;;;10617:51:0;;:::i;9362:162::-;;;:::i;8532:20::-;;;:::i;17975:400::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;17975:400:0;;;;;;;;:::i;9530:358::-;;;;;;;;;;;;;;;;-1:-1:-1;9530:358:0;-1:-1:-1;;;;;9530:358:0;;:::i;14084:338::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14084:338:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14084:338:0;;-1:-1:-1;14084:338:0;-1:-1:-1;14084:338:0;:::i;15219:643::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;15219:643:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10826:75::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10826:75:0;;;;;;;;;;:::i;9894:196::-;;;;;;;;;;;;;;;;-1:-1:-1;9894:196:0;;;-1:-1:-1;;;;;9894:196:0;;;;;;;;;;:::i;8626:40::-;;;:::i;8815:136::-;8859:92;8815:136;:::o;8509:18::-;;;;;;;;;;;;;;;-1:-1:-1;;8509:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11840:135::-;11914:10;;-1:-1:-1;;;;;11914:10:0;11900;:24;11892:55;;;;;-1:-1:-1;;;11892:55:0;;;;;;;;;;;;-1:-1:-1;;;11892:55:0;;;;;;;;;;;;;;;11954:10;:15;;-1:-1:-1;;;;;;11954:15:0;-1:-1:-1;;;;;11954:15:0;;;;;;;;;;11840:135::o;13436:247::-;13581:10;13512:4;13571:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;13571:30:0;;;;;;;;;;;:38;;;13621:36;;;;;;;13512:4;;13571:30;;13581:10;;-1:-1:-1;;;;;;;;;;;13621:36:0;;;;;;;-1:-1:-1;13673:4:0;13436:247;;;;:::o;12068:96::-;12146:12;;12068:96;;:::o;19210:817::-;19300:4;-1:-1:-1;;;;;19321:16:0;;;;;:39;;-1:-1:-1;;;;;;19341:19:0;;19355:4;19341:19;;19321:39;19313:48;;;;;;-1:-1:-1;;;;;19372:18:0;;19380:10;19372:18;19368:409;;-1:-1:-1;;;;;19474:15:0;;19456;19474;;;:9;:15;;;;;;;;19490:10;19474:27;;;;;;;;-1:-1:-1;;19514:28:0;;19510:260;;19574:5;19563:7;:16;;19555:62;;;;-1:-1:-1;;;19555:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19672:15:0;;19628;19672;;;:9;:15;;;;;;;;19688:10;19672:27;;;;;;;;;;19646:15;;;19672:37;;;;19725:35;;;;;;;19646:15;;19672;-1:-1:-1;;;;;;;;;;;19725:35:0;;;;;;;19510:260;;19368:409;;-1:-1:-1;;;;;19803:15:0;;19785;19803;;;:9;:15;;;;;;19833:16;;;;19825:68;;;;-1:-1:-1;;;19825:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19902:15:0;;;;;;;:9;:15;;;;;;;;19920;;;19902:33;;19942:13;;;;;;;;;;:22;;;;;;19976:25;;;;;;;19942:13;;-1:-1:-1;;;;;;;;;;;19976:25:0;;;;;;;;;;-1:-1:-1;20017:4:0;;19210:817;-1:-1:-1;;;;19210:817:0:o;21179:296::-;21263:10;;-1:-1:-1;;;;;21263:10:0;21249;:24;21241:55;;;;;-1:-1:-1;;;21241:55:0;;;;;;;;;;;;-1:-1:-1;;;21241:55:0;;;;;;;;;;;;;;;21354:28;;;-1:-1:-1;;;21354:28:0;;21376:4;21354:28;;;;;;21325:6;;21305:10;;-1:-1:-1;;;;;21354:13:0;;;;;:28;;;;;;;;;;;;;;:13;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21354:28:0;;-1:-1:-1;21389:27:0;-1:-1:-1;;;;;21389:16:0;;21406:3;21354:28;21389:16;:27::i;:::-;21430:39;;;21439:10;21430:39;;-1:-1:-1;;;;;21430:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21179:296;;;;:::o;8673:137::-;8715:95;8673:137;:::o;8557:32::-;;;:::o;8956:41::-;;;:::o;20613:485::-;20710:4;-1:-1:-1;;;;;20731:16:0;;;;;:39;;-1:-1:-1;;;;;;20751:19:0;;20765:4;20751:19;;20731:39;20723:48;;;;;;20808:10;20780:15;20798:21;;;:9;:21;;;;;;20834:16;;;;20826:68;;;;-1:-1:-1;;;20826:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20913:10;20903:21;;;;:9;:21;;;;;;;;20927:15;;;20903:39;;-1:-1:-1;;;;;20949:13:0;;;;;;;;;:22;;;;;;20983:31;;;;;;;20949:13;;20913:10;-1:-1:-1;;;;;;;;;;;20983:31:0;;;;;;;;;;21048:2;-1:-1:-1;;;;;21030:37:0;;21068:10;21080:5;21087:4;;21030:62;;;;;;;;;;;;;-1:-1:-1;;;;;21030:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21030:62:0;;20613:485;-1:-1:-1;;;;;;20613:485:0:o;8596:25::-;;;-1:-1:-1;;;;;8596:25:0;;:::o;15868:849::-;16006:4;16046:8;16027:15;:27;;16019:62;;;;;-1:-1:-1;;;16019:62:0;;;;;;;;;;;;-1:-1:-1;;;16019:62:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;16224:14:0;;;16090:18;16224:14;;;:6;:14;;;;;;;;;:16;;;;;;;;16129:131;;8859:92;16129:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16111:150;;;;;16282:41;16178:6;16111:150;16315:1;16318;16321;16282:12;:41::i;:::-;:92;;;;16327:47;16346:6;16354:10;16366:1;16369;16372;16327:18;:47::i;:::-;16274:101;;;;;;-1:-1:-1;;;;;16396:16:0;;;;;:39;;-1:-1:-1;;;;;;16416:19:0;;16430:4;16416:19;;16396:39;16388:48;;;;;;-1:-1:-1;;;;;16467:17:0;;16449:15;16467:17;;;:9;:17;;;;;;16503:16;;;;16495:68;;;;-1:-1:-1;;;16495:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16576:17:0;;;;;;;:9;:17;;;;;;;;16596:15;;;16576:35;;16622:13;;;;;;;;;;:22;;;;;;16660:27;;;;;;;16622:13;;-1:-1:-1;;;;;;;;;;;16660:27:0;;;;;;;;;;-1:-1:-1;16707:4:0;;15868:849;-1:-1:-1;;;;;;;;;15868:849:0:o;10096:255::-;10163:4;-1:-1:-1;;;;;10184:22:0;;10176:67;;;;;-1:-1:-1;;;10176:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10250:25;10256:10;10268:6;10250:5;:25::i;:::-;10287:40;;;;;;;;-1:-1:-1;;;;;10287:40:0;;;10298:10;;10287:40;;;;;;;;;-1:-1:-1;10341:4:0;10096:255;;;;:::o;9170:54::-;;;;;;;;;;;;;:::o;10617:51::-;;;;;;;;;;;;;:::o;9362:162::-;9400:7;9439:22;;9420:15;:41;9416:80;;-1:-1:-1;9479:9:0;;-1:-1:-1;;;;;9479:9:0;9472:16;;9416:80;-1:-1:-1;9509:9:0;;-1:-1:-1;;;;;9509:9:0;9362:162;:::o;8532:20::-;;;;;;;;;;;;;;;-1:-1:-1;;8532:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17975:400;18047:4;-1:-1:-1;;;;;18068:16:0;;;;;:39;;-1:-1:-1;;;;;;18088:19:0;;18102:4;18088:19;;18068:39;18060:48;;;;;;18143:10;18115:15;18133:21;;;:9;:21;;;;;;18169:16;;;;18161:68;;;;-1:-1:-1;;;18161:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18248:10;18238:21;;;;:9;:21;;;;;;;;18262:15;;;18238:39;;-1:-1:-1;;;;;18284:13:0;;;;;;;;;:22;;;;;;18318:31;;;;;;;18284:13;;18248:10;-1:-1:-1;;;;;;;;;;;18318:31:0;;;;;;;;;;-1:-1:-1;18365:4:0;;17975:400;-1:-1:-1;;;17975:400:0:o;9530:358::-;9599:4;9314:7;:5;:7::i;:::-;-1:-1:-1;;;;;9300:21:0;:10;-1:-1:-1;;;;;9300:21:0;;9292:44;;;;;-1:-1:-1;;;9292:44:0;;;;;;;;;;;;-1:-1:-1;;;9292:44:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;9620:22:0;::::1;9612:64;;;::::0;;-1:-1:-1;;;9612:64:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;9695:7;:5;:7::i;:::-;9683:9;:19:::0;;-1:-1:-1;;;;;;9683:19:0;;::::1;-1:-1:-1::0;;;;;9683:19:0;;::::1;;::::0;;;;9709:9:::1;:20:::0;;;;::::1;::::0;;::::1;;::::0;;;;9761:15:::1;9779:9;9761:27;9736:22;:52:::0;;;9800:64:::1;::::0;9761:27;;9830:9;;::::1;::::0;9819;;::::1;::::0;9800:64:::1;::::0;-1:-1:-1;;9800:64:0::1;-1:-1:-1::0;9878:4:0::1;9530:358:::0;;;:::o;14084:338::-;14257:10;14188:4;14247:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;14247:30:0;;;;;;;;;;;:38;;;14297:36;;;;;;;14188:4;;14247:30;;14257:10;;-1:-1:-1;;;;;;;;;;;14297:36:0;;;;;;;14367:7;-1:-1:-1;;;;;14349:42:0;;14392:10;14404:5;14411:4;;14349:67;;;;;;;;;;;;;-1:-1:-1;;;;;14349:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14349:67:0;;14084:338;-1:-1:-1;;;;;14084:338:0:o;15219:643::-;15384:8;15365:15;:27;;15357:62;;;;;-1:-1:-1;;;15357:62:0;;;;;;;;;;;;-1:-1:-1;;;15357:62:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;15565:14:0;;;15428:18;15565:14;;;:6;:14;;;;;;;;;:16;;;;;;;;15467:134;;8715:95;15467:134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15449:153;;;;;15623:41;15514:6;15449:153;15656:1;15659;15662;15623:12;:41::i;:::-;:92;;;;15668:47;15687:6;15695:10;15707:1;15710;15713;15668:18;:47::i;:::-;15615:101;;;;;;-1:-1:-1;;;;;15774:17:0;;;;;;;:9;:17;;;;;;;;:26;;;;;;;;;;;;;:34;;;15824:32;;;;;;;-1:-1:-1;;;;;;;;;;;15824:32:0;;;;;;;;;15219:643;;;;;;;;:::o;10826:75::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;9894:196::-;9985:4;9314:7;:5;:7::i;:::-;-1:-1:-1;;;;;9300:21:0;:10;-1:-1:-1;;;;;9300:21:0;;9292:44;;;;;-1:-1:-1;;;9292:44:0;;;;;;;;;;;;-1:-1:-1;;;9292:44:0;;;;;;;;;;;;;;;9998:22:::1;10004:7;10013:6;9998:5;:22::i;:::-;10032:34;::::0;;;;;;;-1:-1:-1;;;;;10032:34:0;::::1;::::0;10042:6;;10032:34:::1;::::0;;;;::::1;::::0;;::::1;-1:-1:-1::0;10080:4:0::1;9894:196:::0;;;;;:::o;8626:40::-;;;;:::o;7158:167::-;7260:58;;;-1:-1:-1;;;;;7260:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7260:58:0;-1:-1:-1;;;7260:58:0;;;7234:85;;7253:5;;7234:18;:85::i;:::-;7158:167;;;:::o;16723:363::-;16835:4;16848:12;16929:16;16956:10;16881:86;;;;;;-1:-1:-1;;;16881:86:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16863:105;;;;;;16848:120;;16979:14;16996:24;17006:4;17012:1;17015;17018;16996:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;16996:24:0;;-1:-1:-1;;16996:24:0;;;-1:-1:-1;;;;;;;17039:20:0;;;;;;:40;;;17073:6;-1:-1:-1;;;;;17063:16:0;:6;-1:-1:-1;;;;;17063:16:0;;17039:40;17031:49;16723:363;-1:-1:-1;;;;;;;;16723:363:0:o;17092:276::-;17210:4;17223:12;17238:20;17247:10;17238:8;:20::i;:::-;17223:35;;17265:14;17282:24;17292:4;17298:1;17301;17304;17282:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12983:252;-1:-1:-1;;;;;13055:21:0;;13047:67;;;;-1:-1:-1;;;13047:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13123:18:0;;;;;;:9;:18;;;;;;;;:28;;;;;;;13158:12;:22;;;;;;;13192:37;;;;;;;13123:18;;;-1:-1:-1;;;;;;;;;;;13192:37:0;;;;;;;;;;12983:252;;:::o;12425:250::-;-1:-1:-1;;;;;12497:21:0;;12489:65;;;;;-1:-1:-1;;;12489:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;12563:12;:22;;;;;;-1:-1:-1;;;;;12592:18:0;;12563:12;12592:18;;;:9;:18;;;;;;;;:28;;;;;;12632:37;;;;;;;-1:-1:-1;;;;;;;;;;;12632:37:0;;;;;;;;;;12425:250;;:::o;7880:560::-;7964:27;7972:5;-1:-1:-1;;;;;7964:25:0;;:27::i;:::-;7956:71;;;;;-1:-1:-1;;;7956:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;8093:12;8107:23;8142:5;-1:-1:-1;;;;;8134:19:0;8154:4;8134:25;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8134:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8092:67;;;;8174:7;8166:52;;;;;-1:-1:-1;;;8166:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8231:17;;:21;8227:208;;8361:10;8350:30;;;;;;;;;;;;;;;-1:-1:-1;8350:30:0;8342:85;;;;-1:-1:-1;;;8342:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7880:560;;;;:::o;17438:153::-;17526:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17516:69;;;;;;17438:153::o;6722:374::-;6782:4;7005:20;;6848:66;7045:15;;;;;:42;;;7076:11;7064:8;:23;;7045:42;7037:51;6722:374;-1:-1:-1;;;;6722:374:0:o

Swarm Source

ipfs://28c61540adcb41e3a7bf493c7478c9af661df9e19d657a030e7c6b2a251ccdea
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.