Contract 0xc5e2b037d30a390e62180970b3aa4e91868764cd 4

Contract Overview

Tarot: TAROT Token
Balance:
0 FTM

FTM Value:
$0.00

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xfcfb22d73e6959a338e309ccfd605f3f8d9f0a45d4792fe499f7e449ca2942c1Approve288856222022-01-24 5:55:251 min ago0x81ddc15fa46065b193f7a02f702f53f7c92bdf84 IN  Tarot: TAROT Token0 FTM0.027886162486
0xe2c195dc1f9935ae6f9f3d7dbd28fe9fa5629ddba2ccde67dbe7b15486a5641aApprove288852452022-01-24 5:47:319 mins ago0x703ed92b439a6671b44dce1f16da4b359cf56bbd IN  Tarot: TAROT Token0 FTM0.018877759208
0xcb027e5d266d16b18cd93aa3f8bbb997529be16f312a3fb7298878a02b7a0b7bApprove288852272022-01-24 5:47:129 mins ago0xb76806b41f4774775edf0efbd249ac261e18459d IN  Tarot: TAROT Token0 FTM0.023276292424
0x956f9d29ede5362d16a31bf625b06b7a1561a52a61cefafead696a535949c8b0Approve288851702022-01-24 5:46:1710 mins ago0xfd059d49f1c7a39864a4b0524945f9eb4cf6f782 IN  Tarot: TAROT Token0 FTM0.02391847536
0xedc02f873752cfd481effab89791dfe441db5d4fd42c88f4c13e0a1f173c5973Approve288851272022-01-24 5:45:4310 mins ago0x05ea40def052745cdd3fd4411137e46177188564 IN  Tarot: TAROT Token0 FTM0.02331418094
0xdcbde24bbf10b5960b4b35bd6fa27e798ff83d412ed86981f296f57d8497135eApprove288851142022-01-24 5:45:3311 mins ago0x0ed0165d7afa96ef2f89532e1b2e0848be020f18 IN  Tarot: TAROT Token0 FTM0.023719535772
0xc52dbff206e8430faf1434ac3c34cc9ea35822db99fd1f1bee1570eb31b495e5Approve288847012022-01-24 5:39:5916 mins ago0x205b993bb19930c80fb10ddf4f4c423e49c4caac IN  Tarot: TAROT Token0 FTM0.023260036857
0x2b95fab8e787754c4abe421b95a748b8c63b26c88b83f0fc78825582e4669cc1Approve288842062022-01-24 5:29:3127 mins ago0xa33fd341ef5474af0d6d0690f5dce7f133f9a758 IN  Tarot: TAROT Token0 FTM0.016472732853
0x4d3e73705b28ffb293866a4aa06d6fe0bfa850ae588f050556b60c0d6559c79bTransfer288840082022-01-24 5:25:4131 mins ago0x4ed7a3cdb17c9a3363b5c6f5aaf981ee2dff43f9 IN  Tarot: TAROT Token0 FTM0.012688093238
0x612cbc5ca55e0f4a2f1d2041c559053730a941cb80ee51fcebbc5ce78911bc35Approve288833312022-01-24 5:08:2648 mins ago0xfdd4eec688bcb03dfd508cba6c4a4d280df5d7ff IN  Tarot: TAROT Token0 FTM0.016882670393
0x7a5f2923ca800eeccb41a640e5af0c6cfb4d54798f6eac2c11e4ad74ba40b5d9Approve288819802022-01-24 4:26:151 hr 30 mins ago0x989348455c2ca11f7b175be5c2a4a49ef17055df IN  Tarot: TAROT Token0 FTM0.012246793905
0xeca06882fb50790f6696659e622ae3fa4a02baa58550f1653d796dd670e28233Transfer288819172022-01-24 4:25:231 hr 31 mins ago0xeb6816c1c2fa4e6a2840656647582bd71ae65e38 IN  Tarot: TAROT Token0 FTM0.011084243442
0xf8b7e51c788d893cf5b9cf054473713fd43d67d8b5915007cc1811b780cdae21Approve288817592022-01-24 4:23:071 hr 33 mins ago0xf1efe5fa44d81e99178d34fb39f8d028e1f48b09 IN  Tarot: TAROT Token0 FTM0.012777867549
0x9b0bd82cccd59308f27567ff656fba47ea5d1e465e88e214cb7d23dcf39be1a7Approve288815132022-01-24 4:18:331 hr 38 mins ago0x66f2793585570ee23dc402737109091f44fb3cb0 IN  Tarot: TAROT Token0 FTM0.011718315561
0x1263ac7557ff873d0907d4dece72401ab57b291852869d2d136156d8645aa988Approve288811442022-01-24 4:13:191 hr 43 mins ago0xbb66e696a8ce490bbde612ce7490a948046db074 IN  Tarot: TAROT Token0 FTM0.012288788073
0x82d6b9963ee2178db2972b32e6a9a1142dce794d12117378110b4aa30cd13bd2Approve288809812022-01-24 4:11:081 hr 45 mins ago0x626ecf3f64afd49d74872967071145350d469c3b IN  Tarot: TAROT Token0 FTM0.013585568351
0x456be85ae804c99ffebc9a8a1d559ecf2dfe541aaf826246b85a9a2c6af50ccfApprove288802302022-01-24 4:00:521 hr 55 mins ago0x509dcc51971b5b77b91585553f3e7c2527c92460 IN  Tarot: TAROT Token0 FTM0.008422604934
0x5007ea0445ae5430246b95ba919ec11d53f92528b16ff2c7e694bc7c9d77141cApprove288795382022-01-24 3:51:432 hrs 4 mins ago0x1da23bfbdef35fa2579e95fe509649395d5a3e6b IN  Tarot: TAROT Token0 FTM0.013900127965
0x3b0a4401fba86c25bb0a1607a2cdb9f31bd99b014dd31b7ecc9231df12bc9fdeApprove288788922022-01-24 3:43:042 hrs 13 mins ago0x54fd1ca1e849e39a85d9f15020eb0136896cf3e0 IN  Tarot: TAROT Token0 FTM0.014892099645
0xa287ea81ffbb6b2a8e69d010f712df10608289d1ce8b95dbd9023d4bb776e4c9Approve288788472022-01-24 3:42:052 hrs 14 mins ago0x1f3752990635fb726d58271e36e188cffecd072d IN  Tarot: TAROT Token0 FTM0.014826887234
0xb880284329053257c25cbc1cb44dfa31f1a7afbcafff145945cc6dad07d284bbApprove288788352022-01-24 3:41:492 hrs 14 mins ago0x19868b43cc7e16f8a928c500400d24f1b5f2dcff IN  Tarot: TAROT Token0 FTM0.014731923206
0xcdef946b0632da7080f801ebc5d8f9cd470ace3ac4b1532af35515ab53dbd95dApprove288786632022-01-24 3:39:062 hrs 17 mins ago0xcf73e0a87ac06a3819aeca9bce9f7388109bfda0 IN  Tarot: TAROT Token0 FTM0.014166734048
0x58b60506fdff691176c7a0e1b9675b1a98b7249a674d41e4fce4bc23c96dc1efApprove288780252022-01-24 3:30:432 hrs 25 mins ago0xc71f06b42bc49f168148f55d7766b1e5c5baf556 IN  Tarot: TAROT Token0 FTM0.009441248376
0x6be5eab65a95ffb550fabca7cfb753b399e5a02cef22de175e2b2ab6c6b1f205Approve288779882022-01-24 3:30:042 hrs 26 mins ago0xc71f06b42bc49f168148f55d7766b1e5c5baf556 IN  Tarot: TAROT Token0 FTM0.016370075256
0xd5e09b616cb9fcd438d6dcb1270701e5ca9d7d444d8b2e316f692b56d97b126fApprove288779252022-01-24 3:28:572 hrs 27 mins ago0xa57fcee8db30a62b1fe8fab0431ac2d2a6abbafb IN  Tarot: TAROT Token0 FTM0.015543298372
[ Download CSV Export 

OVERVIEW

Tarot is a decentralized lending protocol on Fantom Opera where users can participate as lenders or borrowers in isolated lending pools.

Latest 5 internal transactions
Parent Txn Hash Block From To Value
0x21ba0d4763c77071881b8f90642ddab8590b3741ebfde5150538f68fedbea1f9285264592022-01-20 8:32:263 days 21 hrs ago 0x6a270e53d575f5d86e6ebd26aeec84c3307231c4 Tarot: TAROT Token0.81732252 FTM
0x22319acd3f6ec53f603e4b1f9d964bbb9dac944e48a1c22e372fad04ccbadbeb285263922022-01-20 8:31:003 days 21 hrs ago 0x6a270e53d575f5d86e6ebd26aeec84c3307231c4 Tarot: TAROT Token0.9218143429754 FTM
0x420435fbfc6195e7e9722c84cd542c400229c5090f5f5269ea67fcfbb3efd73f264102812021-12-29 18:31:5925 days 11 hrs ago 0x0b9b2437ef336f5a2dd9a583185fb6bb1eaacd2e Tarot: TAROT Token0.2 FTM
0x0c1f88e10e576e1aac0516f0b916ceb580fd0b7b393e0428ba2caf69442b589c170384112021-09-14 10:03:22131 days 19 hrs ago 0x0e3c8b07716c51cebe30b9073bd42d780c607bc1 Tarot: TAROT Token1.793243 FTM
0x18f325cec485b451b3d8f705d96c3a73026b6c053166c211bcaa8fbb5d014aee110102362021-06-30 20:58:52207 days 8 hrs ago Tarot: Deployer  Contract Creation0 FTM
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Tarot

Compiler Version
v0.6.6+commit.6c089d02

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 1 : Tarot.sol
// COPIED FROM https://github.com/compound-finance/compound-protocol/blob/master/contracts/Governance/Comp.sol
// Copyright 2020 Compound Labs, Inc.
// Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
// 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
// 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
// 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

pragma solidity =0.6.6;
pragma experimental ABIEncoderV2;

contract Tarot {
    /// @notice EIP-20 token name for this token
    string public constant name = "Tarot";

    /// @notice EIP-20 token symbol for this token
    string public constant symbol = "TAROT";

    /// @notice EIP-20 token decimals for this token
    uint8 public constant decimals = 18;

    /// @notice Total number of tokens in circulation
    uint public constant totalSupply = 100_000_000e18; // 100 million Tarot

    /// @notice Allowance amounts on behalf of others
    mapping (address => mapping (address => uint96)) internal allowances;

    /// @notice Official record of token balances for each account
    mapping (address => uint96) internal balances;

    /// @notice A record of each accounts delegate
    mapping (address => address) public delegates;

    /// @notice A checkpoint for marking number of votes from a given block
    struct Checkpoint {
        uint32 fromBlock;
        uint96 votes;
    }

    /// @notice A record of votes checkpoints for each account, by index
    mapping (address => mapping (uint32 => Checkpoint)) public checkpoints;

    /// @notice The number of checkpoints for each account
    mapping (address => uint32) public numCheckpoints;

    /// @notice The EIP-712 typehash for the contract's domain
    bytes32 public constant DOMAIN_TYPEHASH = keccak256("EIP712Domain(string name,uint256 chainId,address verifyingContract)");

    /// @notice The EIP-712 typehash for the delegation struct used by the contract
    bytes32 public constant DELEGATION_TYPEHASH = keccak256("Delegation(address delegatee,uint256 nonce,uint256 expiry)");

    /// @notice A record of states for signing / validating signatures
    mapping (address => uint) public nonces;

    /// @notice An event thats emitted when an account changes its delegate
    event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate);

    /// @notice An event thats emitted when a delegate account's vote balance changes
    event DelegateVotesChanged(address indexed delegate, uint previousBalance, uint newBalance);

    /// @notice The standard EIP-20 transfer event
    event Transfer(address indexed from, address indexed to, uint256 amount);

    /// @notice The standard EIP-20 approval event
    event Approval(address indexed owner, address indexed spender, uint256 amount);

    /**
     * @notice Construct a new Tarot token
     * @param account The initial account to grant all the tokens
     */
    constructor(address account) public {
        balances[account] = uint96(totalSupply);
        emit Transfer(address(0), account, totalSupply);
    }

    /**
     * @notice Get the number of tokens `spender` is approved to spend on behalf of `account`
     * @param account The address of the account holding the funds
     * @param spender The address of the account spending the funds
     * @return The number of tokens approved
     */
    function allowance(address account, address spender) external view returns (uint) {
        return allowances[account][spender];
    }

    /**
     * @notice Approve `spender` to transfer up to `amount` from `src`
     * @dev This will overwrite the approval amount for `spender`
     *  and is subject to issues noted [here](https://eips.ethereum.org/EIPS/eip-20#approve)
     * @param spender The address of the account which may transfer tokens
     * @param rawAmount The number of tokens that are approved (2^256-1 means infinite)
     * @return Whether or not the approval succeeded
     */
    function approve(address spender, uint rawAmount) external returns (bool) {
        uint96 amount;
        if (rawAmount == uint(-1)) {
            amount = uint96(-1);
        } else {
            amount = safe96(rawAmount, "Tarot::approve: amount exceeds 96 bits");
        }

        allowances[msg.sender][spender] = amount;

        emit Approval(msg.sender, spender, amount);
        return true;
    }
	
    /**
     * @notice Get the number of tokens held by the `account`
     * @param account The address of the account to get the balance of
     * @return The number of tokens held
     */
    function balanceOf(address account) external view returns (uint) {
        return balances[account];
    }

    /**
     * @notice Transfer `amount` tokens from `msg.sender` to `dst`
     * @param dst The address of the destination account
     * @param rawAmount The number of tokens to transfer
     * @return Whether or not the transfer succeeded
     */
    function transfer(address dst, uint rawAmount) external returns (bool) {
        uint96 amount = safe96(rawAmount, "Tarot::transfer: amount exceeds 96 bits");
        _transferTokens(msg.sender, dst, amount);
        return true;
    }

    /**
     * @notice Transfer `amount` tokens from `src` to `dst`
     * @param src The address of the source account
     * @param dst The address of the destination account
     * @param rawAmount The number of tokens to transfer
     * @return Whether or not the transfer succeeded
     */
    function transferFrom(address src, address dst, uint rawAmount) external returns (bool) {
        address spender = msg.sender;
        uint96 spenderAllowance = allowances[src][spender];
        uint96 amount = safe96(rawAmount, "Tarot::approve: amount exceeds 96 bits");

        if (spender != src && spenderAllowance != uint96(-1)) {
            uint96 newAllowance = sub96(spenderAllowance, amount, "Tarot::transferFrom: transfer amount exceeds spender allowance");
            allowances[src][spender] = newAllowance;

            emit Approval(src, spender, newAllowance);
        }

        _transferTokens(src, dst, amount);
        return true;
    }

    /**
     * @notice Delegate votes from `msg.sender` to `delegatee`
     * @param delegatee The address to delegate votes to
     */
    function delegate(address delegatee) public {
        return _delegate(msg.sender, delegatee);
    }

    /**
     * @notice Delegates votes from signatory to `delegatee`
     * @param delegatee The address to delegate votes to
     * @param nonce The contract state required to match the signature
     * @param expiry The time at which to expire the signature
     * @param v The recovery byte of the signature
     * @param r Half of the ECDSA signature pair
     * @param s Half of the ECDSA signature pair
     */
    function delegateBySig(address delegatee, uint nonce, uint expiry, uint8 v, bytes32 r, bytes32 s) public {
        bytes32 domainSeparator = keccak256(abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), getChainId(), address(this)));
        bytes32 structHash = keccak256(abi.encode(DELEGATION_TYPEHASH, delegatee, nonce, expiry));
        bytes32 digest = keccak256(abi.encodePacked("\x19\x01", domainSeparator, structHash));
        address signatory = ecrecover(digest, v, r, s);
        require(signatory != address(0), "Tarot::delegateBySig: invalid signature");
        require(nonce == nonces[signatory]++, "Tarot::delegateBySig: invalid nonce");
        require(now <= expiry, "Tarot::delegateBySig: signature expired");
        return _delegate(signatory, delegatee);
    }

    /**
     * @notice Gets the current votes balance for `account`
     * @param account The address to get votes balance
     * @return The number of current votes for `account`
     */
    function getCurrentVotes(address account) external view returns (uint96) {
        uint32 nCheckpoints = numCheckpoints[account];
        return nCheckpoints > 0 ? checkpoints[account][nCheckpoints - 1].votes : 0;
    }

    /**
     * @notice Determine the prior number of votes for an account as of a block number
     * @dev Block number must be a finalized block or else this function will revert to prevent misinformation.
     * @param account The address of the account to check
     * @param blockNumber The block number to get the vote balance at
     * @return The number of votes the account had as of the given block
     */
    function getPriorVotes(address account, uint blockNumber) public view returns (uint96) {
        require(blockNumber < block.number, "Tarot::getPriorVotes: not yet determined");

        uint32 nCheckpoints = numCheckpoints[account];
        if (nCheckpoints == 0) {
            return 0;
        }

        // First check most recent balance
        if (checkpoints[account][nCheckpoints - 1].fromBlock <= blockNumber) {
            return checkpoints[account][nCheckpoints - 1].votes;
        }

        // Next check implicit zero balance
        if (checkpoints[account][0].fromBlock > blockNumber) {
            return 0;
        }

        uint32 lower = 0;
        uint32 upper = nCheckpoints - 1;
        while (upper > lower) {
            uint32 center = upper - (upper - lower) / 2; // ceil, avoiding overflow
            Checkpoint memory cp = checkpoints[account][center];
            if (cp.fromBlock == blockNumber) {
                return cp.votes;
            } else if (cp.fromBlock < blockNumber) {
                lower = center;
            } else {
                upper = center - 1;
            }
        }
        return checkpoints[account][lower].votes;
    }

    function _delegate(address delegator, address delegatee) internal {
        address currentDelegate = delegates[delegator];
        uint96 delegatorBalance = balances[delegator];
        delegates[delegator] = delegatee;

        emit DelegateChanged(delegator, currentDelegate, delegatee);

        _moveDelegates(currentDelegate, delegatee, delegatorBalance);
    }

    function _transferTokens(address src, address dst, uint96 amount) internal {
        require(src != address(0), "Tarot::_transferTokens: cannot transfer from the zero address");
        require(dst != address(0), "Tarot::_transferTokens: cannot transfer to the zero address");

        balances[src] = sub96(balances[src], amount, "Tarot::_transferTokens: transfer amount exceeds balance");
        balances[dst] = add96(balances[dst], amount, "Tarot::_transferTokens: transfer amount overflows");
        emit Transfer(src, dst, amount);

        _moveDelegates(delegates[src], delegates[dst], amount);
    }

    function _moveDelegates(address srcRep, address dstRep, uint96 amount) internal {
        if (srcRep != dstRep && amount > 0) {
            if (srcRep != address(0)) {
                uint32 srcRepNum = numCheckpoints[srcRep];
                uint96 srcRepOld = srcRepNum > 0 ? checkpoints[srcRep][srcRepNum - 1].votes : 0;
                uint96 srcRepNew = sub96(srcRepOld, amount, "Tarot::_moveVotes: vote amount underflows");
                _writeCheckpoint(srcRep, srcRepNum, srcRepOld, srcRepNew);
            }

            if (dstRep != address(0)) {
                uint32 dstRepNum = numCheckpoints[dstRep];
                uint96 dstRepOld = dstRepNum > 0 ? checkpoints[dstRep][dstRepNum - 1].votes : 0;
                uint96 dstRepNew = add96(dstRepOld, amount, "Tarot::_moveVotes: vote amount overflows");
                _writeCheckpoint(dstRep, dstRepNum, dstRepOld, dstRepNew);
            }
        }
    }

    function _writeCheckpoint(address delegatee, uint32 nCheckpoints, uint96 oldVotes, uint96 newVotes) internal {
      uint32 blockNumber = safe32(block.number, "Tarot::_writeCheckpoint: block number exceeds 32 bits");

      if (nCheckpoints > 0 && checkpoints[delegatee][nCheckpoints - 1].fromBlock == blockNumber) {
          checkpoints[delegatee][nCheckpoints - 1].votes = newVotes;
      } else {
          checkpoints[delegatee][nCheckpoints] = Checkpoint(blockNumber, newVotes);
          numCheckpoints[delegatee] = nCheckpoints + 1;
      }

      emit DelegateVotesChanged(delegatee, oldVotes, newVotes);
    }

    function safe32(uint n, string memory errorMessage) internal pure returns (uint32) {
        require(n < 2**32, errorMessage);
        return uint32(n);
    }

    function safe96(uint n, string memory errorMessage) internal pure returns (uint96) {
        require(n < 2**96, errorMessage);
        return uint96(n);
    }

    function add96(uint96 a, uint96 b, string memory errorMessage) internal pure returns (uint96) {
        uint96 c = a + b;
        require(c >= a, errorMessage);
        return c;
    }

    function sub96(uint96 a, uint96 b, string memory errorMessage) internal pure returns (uint96) {
        require(b <= a, errorMessage);
        return a - b;
    }

    function getChainId() internal pure returns (uint) {
        uint256 chainId;
        assembly { chainId := chainid() }
        return chainId;
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"account","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":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegator","type":"address"},{"indexed":true,"internalType":"address","name":"fromDelegate","type":"address"},{"indexed":true,"internalType":"address","name":"toDelegate","type":"address"}],"name":"DelegateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegate","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBalance","type":"uint256"}],"name":"DelegateVotesChanged","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":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DELEGATION_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DOMAIN_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint32","name":"","type":"uint32"}],"name":"checkpoints","outputs":[{"internalType":"uint32","name":"fromBlock","type":"uint32"},{"internalType":"uint96","name":"votes","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"name":"delegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"delegateBySig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getCurrentVotes","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPriorVotes","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"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":[{"internalType":"address","name":"","type":"address"}],"name":"numCheckpoints","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","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":"dst","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"src","type":"address"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b5060405161192438038061192483398101604081905261002f916100a1565b6001600160a01b03811660008181526001602052604080822080546001600160601b0319166a52b7d2dcc80cd2e400000090811790915590517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91610093916100cf565b60405180910390a3506100d8565b6000602082840312156100b2578081fd5b81516001600160a01b03811681146100c8578182fd5b9392505050565b90815260200190565b61183d806100e76000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806370a08231116100ad578063b4b5ea5711610071578063b4b5ea571461025f578063c3cda52014610272578063dd62ed3e14610285578063e7a324dc14610298578063f1127ed8146102a057610121565b806370a08231146101fe578063782d6fe1146102115780637ecebe001461023157806395d89b4114610244578063a9059cbb1461024c57610121565b806323b872dd116100f457806323b872dd14610181578063313ce56714610194578063587cde1e146101a95780635c19a95c146101c95780636fcfff45146101de57610121565b806306fdde0314610126578063095ea7b31461014457806318160ddd1461016457806320606b7014610179575b600080fd5b61012e6102c1565b60405161013b91906113e7565b60405180910390f35b6101576101523660046111cc565b6102e2565b60405161013b919061136d565b61016c61039f565b60405161013b9190611378565b61016c6103ae565b61015761018f36600461118c565b6103c5565b61019c610508565b60405161013b919061163d565b6101bc6101b736600461113d565b61050d565b60405161013b9190611359565b6101dc6101d736600461113d565b610528565b005b6101f16101ec36600461113d565b610535565b60405161013b919061160d565b61016c61020c36600461113d565b61054d565b61022461021f3660046111cc565b610571565b60405161013b919061164b565b61016c61023f36600461113d565b610788565b61012e61079a565b61015761025a3660046111cc565b6107bb565b61022461026d36600461113d565b6107f7565b6101dc6102803660046111f6565b610868565b61016c610293366004611158565b610a4f565b61016c610a81565b6102b36102ae366004611255565b610a8d565b60405161013b92919061161e565b6040518060400160405280600581526020016415185c9bdd60da1b81525081565b6000806000198314156102f8575060001961031d565b61031a836040518060600160405280602681526020016116eb60269139610ac2565b90505b336000818152602081815260408083206001600160a01b03891680855292529182902080546001600160601b0319166001600160601b03861617905590519091907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061038b90859061164b565b60405180910390a360019150505b92915050565b6a52b7d2dcc80cd2e400000081565b6040516103ba906112af565b604051809103902081565b6001600160a01b0383166000908152602081815260408083203380855290835281842054825160608101909352602680845291936001600160601b0390911692859261041b92889291906116eb90830139610ac2565b9050866001600160a01b0316836001600160a01b03161415801561044857506001600160601b0382811614155b156104f057600061047283836040518060600160405280603e81526020016117ca603e9139610af1565b6001600160a01b03898116600081815260208181526040808320948a16808452949091529081902080546001600160601b0319166001600160601b0386161790555192935090917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104e690859061164b565b60405180910390a3505b6104fb878783610b30565b5060019695505050505050565b601281565b6002602052600090815260409020546001600160a01b031681565b6105323382610cdb565b50565b60046020526000908152604090205463ffffffff1681565b6001600160a01b03166000908152600160205260409020546001600160601b031690565b600043821061059b5760405162461bcd60e51b81526004016105929061147d565b60405180910390fd5b6001600160a01b03831660009081526004602052604090205463ffffffff16806105c9576000915050610399565b6001600160a01b038416600090815260036020908152604080832063ffffffff600019860181168552925290912054168310610645576001600160a01b03841660009081526003602090815260408083206000199490940163ffffffff1683529290522054600160201b90046001600160601b03169050610399565b6001600160a01b038416600090815260036020908152604080832083805290915290205463ffffffff16831015610680576000915050610399565b600060001982015b8163ffffffff168163ffffffff16111561074357600282820363ffffffff160481036106b261110f565b506001600160a01b038716600090815260036020908152604080832063ffffffff858116855290835292819020815180830190925254928316808252600160201b9093046001600160601b0316918101919091529087141561071e576020015194506103999350505050565b805163ffffffff168711156107355781935061073c565b6001820392505b5050610688565b506001600160a01b038516600090815260036020908152604080832063ffffffff909416835292905220546001600160601b03600160201b9091041691505092915050565b60056020526000908152604090205481565b6040518060400160405280600581526020016415105493d560da1b81525081565b6000806107e08360405180606001604052806027815260200161168f60279139610ac2565b90506107ed338583610b30565b5060019392505050565b6001600160a01b03811660009081526004602052604081205463ffffffff1680610822576000610861565b6001600160a01b0383166000908152600360209081526040808320600019850163ffffffff168452909152902054600160201b90046001600160601b03165b9392505050565b6000604051610876906112af565b60408051918290038220828201909152600582526415185c9bdd60da1b6020909201919091527fcb22ebe6a454847404f7cb07dfbf876a4653b55f4526da755848770afe165cd86108c5610d65565b306040516020016108d994939291906113a5565b60405160208183030381529060405280519060200120905060006040516108ff9061130a565b60405190819003812061091a918a908a908a90602001611381565b60405160208183030381529060405280519060200120905060008282604051602001610947929190611294565b60405160208183030381529060405280519060200120905060006001828888886040516000815260200160405260405161098494939291906113c9565b6020604051602081039080840390855afa1580156109a6573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166109d95760405162461bcd60e51b8152600401610592906114c5565b6001600160a01b03811660009081526005602052604090208054600181019091558914610a185760405162461bcd60e51b81526004016105929061143a565b87421115610a385760405162461bcd60e51b815260040161059290611569565b610a42818b610cdb565b505050505b505050505050565b6001600160a01b039182166000908152602081815260408083209390941682529190915220546001600160601b031690565b6040516103ba9061130a565b600360209081526000928352604080842090915290825290205463ffffffff811690600160201b90046001600160601b031682565b600081600160601b8410610ae95760405162461bcd60e51b815260040161059291906113e7565b509192915050565b6000836001600160601b0316836001600160601b031611158290610b285760405162461bcd60e51b815260040161059291906113e7565b505050900390565b6001600160a01b038316610b565760405162461bcd60e51b81526004016105929061150c565b6001600160a01b038216610b7c5760405162461bcd60e51b8152600401610592906115b0565b6001600160a01b038316600090815260016020908152604091829020548251606081019093526037808452610bc7936001600160601b03909216928592919061176290830139610af1565b6001600160a01b03848116600090815260016020908152604080832080546001600160601b0319166001600160601b03968716179055928616825290829020548251606081019093526031808452610c2f949190911692859290919061179990830139610d69565b6001600160a01b038381166000818152600160205260409081902080546001600160601b0319166001600160601b0395909516949094179093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c9c90859061164b565b60405180910390a36001600160a01b03808416600090815260026020526040808220548584168352912054610cd692918216911683610da5565b505050565b6001600160a01b03808316600081815260026020818152604080842080546001845282862054949093528787166001600160a01b031984168117909155905191909516946001600160601b039092169391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4610d5f828483610da5565b50505050565b4690565b6000838301826001600160601b038087169083161015610d9c5760405162461bcd60e51b815260040161059291906113e7565b50949350505050565b816001600160a01b0316836001600160a01b031614158015610dd057506000816001600160601b0316115b15610cd6576001600160a01b03831615610e88576001600160a01b03831660009081526004602052604081205463ffffffff169081610e10576000610e4f565b6001600160a01b0385166000908152600360209081526040808320600019860163ffffffff168452909152902054600160201b90046001600160601b03165b90506000610e76828560405180606001604052806029815260200161173960299139610af1565b9050610e8486848484610f33565b5050505b6001600160a01b03821615610cd6576001600160a01b03821660009081526004602052604081205463ffffffff169081610ec3576000610f02565b6001600160a01b0384166000908152600360209081526040808320600019860163ffffffff168452909152902054600160201b90046001600160601b03165b90506000610f29828560405180606001604052806028815260200161171160289139610d69565b9050610a47858484845b6000610f57436040518060600160405280603581526020016116b6603591396110e8565b905060008463ffffffff16118015610fa057506001600160a01b038516600090815260036020908152604080832063ffffffff6000198901811685529252909120548282169116145b15610fff576001600160a01b0385166000908152600360209081526040808320600019880163ffffffff168452909152902080546fffffffffffffffffffffffff000000001916600160201b6001600160601b0385160217905561109e565b60408051808201825263ffffffff80841682526001600160601b0380861660208085019182526001600160a01b038b166000818152600383528781208c871682528352878120965187549451909516600160201b026fffffffffffffffffffffffff000000001995871663ffffffff19958616179590951694909417909555938252600490935292909220805460018801909316929091169190911790555b846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72484846040516110d992919061165f565b60405180910390a25050505050565b600081600160201b8410610ae95760405162461bcd60e51b815260040161059291906113e7565b604080518082019091526000808252602082015290565b80356001600160a01b038116811461039957600080fd5b60006020828403121561114e578081fd5b6108618383611126565b6000806040838503121561116a578081fd5b6111748484611126565b91506111838460208501611126565b90509250929050565b6000806000606084860312156111a0578081fd5b83356111ab81611679565b925060208401356111bb81611679565b929592945050506040919091013590565b600080604083850312156111de578182fd5b6111e88484611126565b946020939093013593505050565b60008060008060008060c0878903121561120e578182fd5b6112188888611126565b95506020870135945060408701359350606087013560ff8116811461123b578283fd5b9598949750929560808101359460a0909101359350915050565b60008060408385031215611267578182fd5b6112718484611126565b9150602083013563ffffffff81168114611289578182fd5b809150509250929050565b61190160f01b81526002810192909252602282015260420190565b7f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353681527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208201526263742960e81b604082015260430190565b7f44656c65676174696f6e28616464726573732064656c6567617465652c75696e81527f74323536206e6f6e63652c75696e7432353620657870697279290000000000006020820152603a0190565b6001600160a01b0391909116815260200190565b901515815260200190565b90815260200190565b9384526001600160a01b039290921660208401526040830152606082015260800190565b938452602084019290925260408301526001600160a01b0316606082015260800190565b93845260ff9290921660208401526040830152606082015260800190565b6000602080835283518082850152825b81811015611413578581018301518582016040015282016113f7565b818111156114245783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f5461726f743a3a64656c656761746542795369673a20696e76616c6964206e6f6040820152626e636560e81b606082015260800190565b60208082526028908201527f5461726f743a3a6765745072696f72566f7465733a206e6f74207965742064656040820152671d195c9b5a5b995960c21b606082015260800190565b60208082526027908201527f5461726f743a3a64656c656761746542795369673a20696e76616c6964207369604082015266676e617475726560c81b606082015260800190565b6020808252603d908201527f5461726f743a3a5f7472616e73666572546f6b656e733a2063616e6e6f74207460408201527f72616e736665722066726f6d20746865207a65726f2061646472657373000000606082015260800190565b60208082526027908201527f5461726f743a3a64656c656761746542795369673a207369676e617475726520604082015266195e1c1a5c995960ca1b606082015260800190565b6020808252603b908201527f5461726f743a3a5f7472616e73666572546f6b656e733a2063616e6e6f74207460408201527f72616e7366657220746f20746865207a65726f20616464726573730000000000606082015260800190565b63ffffffff91909116815260200190565b63ffffffff9290921682526001600160601b0316602082015260400190565b60ff91909116815260200190565b6001600160601b0391909116815260200190565b6001600160601b0392831681529116602082015260400190565b6001600160a01b038116811461053257600080fdfe5461726f743a3a7472616e736665723a20616d6f756e74206578636565647320393620626974735461726f743a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d626572206578636565647320333220626974735461726f743a3a617070726f76653a20616d6f756e74206578636565647320393620626974735461726f743a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f77735461726f743a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f77735461726f743a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e63655461726f743a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f77735461726f743a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e6365a2646970667358221220ba5058b00a560b25ce48d32debd0808d8906e719d5fbcd50a7c2f8ee90b3905764736f6c634300060600330000000000000000000000005b0390bccca1f040d8993eb6e4ce8ded93721765

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

0000000000000000000000005b0390bccca1f040d8993eb6e4ce8ded93721765

-----Decoded View---------------
Arg [0] : account (address): 0x5b0390bccca1f040d8993eb6e4ce8ded93721765

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000005b0390bccca1f040d8993eb6e4ce8ded93721765


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.