Contract 0x6a07a792ab2965c72a5b8088d3a069a7ac3a993b 2

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xd24fd73c25ddb416ee4b5149238ba12c859cca0e328ac898f1cee09072716d0fApprove546107162023-01-28 19:40:501 day 2 hrs ago0x4673f089d9be4612be179a22377e44ceee4eaf60 IN  Aave: AAVE Token0 FTM0.001709581186
0xb3da2bcad897e6c3ae21618361310676df54004ea694a9e4d5a7119a0ec3262eApprove545959192023-01-28 14:11:161 day 8 hrs ago0x4673f089d9be4612be179a22377e44ceee4eaf60 IN  Aave: AAVE Token0 FTM0.001884829507
0x986832809aabfa7e63eb4072b3f2cf1e7b42697d9dde1b4dfe9b1b4071a3259bApprove545916552023-01-28 12:22:261 day 9 hrs ago0x4673f089d9be4612be179a22377e44ceee4eaf60 IN  Aave: AAVE Token0 FTM0.001822647242
0xe41c139ad33205eaf33f4cac239e3f6e0965483c2d9bb51ae9476a569b4c3422Approve545867492023-01-28 8:45:021 day 13 hrs ago0xc03556e452cad5b6d7cd0701fff15cad5f060a6d IN  Aave: AAVE Token0 FTM0.00517528
0xfa71ed77e266db17de096d7441788328b1e7c4cf6337c28ded760b4c2f34bc0dSwapout545499552023-01-27 15:57:162 days 6 hrs ago0xce8fc6755efcaf7f85c28901bca4f4b936591542 IN  Aave: AAVE Token0 FTM0.001582277192
0xb01684862e67f8ac47fce671e6bf2912d81fb91b7e3019174354c8113bf0cc93Swapout544976742023-01-26 21:25:573 days 55 mins ago0x466ea844acc35241d13f65f9d1a432c6ec65971c IN  Aave: AAVE Token0 FTM0.01203235392
0x3305380885959c5982c0377bcebab93beff41a8f418b660ab1461d55863ebb83Transfer544974502023-01-26 21:21:123 days 1 hr ago0x466ea844acc35241d13f65f9d1a432c6ec65971c IN  Aave: AAVE Token0 FTM0.018675996536
0xe079590722bdfea7ba377402b16c64d64aa44afe6dfb4c6ad797cb70a9483b3dSwapout544796572023-01-26 15:23:353 days 6 hrs ago0x04db8416e90422aff6625d8dfc61b32e77da46f3 IN  Aave: AAVE Token0 FTM0.024075409798
0xa93048ff6474cf5fed702bde1c6d966289e8d51fdb6d46310c4519415cd5f1d8Approve544563632023-01-26 7:30:193 days 14 hrs ago0x723f3c70a60191c52457e9802f5ec03b96302dd8 IN  Aave: AAVE Token0 FTM0.004201777854
0xb0165b60bff3db2d591a0d0869f3f5be96f29be0d8c4753e68af083f79d02279Approve544185492023-01-25 17:24:424 days 4 hrs ago0x983cd18ed6d501e6e01285f2a06df0767fb7297f IN  Aave: AAVE Token0 FTM0.002225488602
0x780c61bf84ced5679a7feb3b5eedfc53eb04b5b03b44f94a1040059d22577883Approve543696082023-01-24 22:10:325 days 11 mins ago0x8ceff1ad0171bfb91ec3b6bc6283765317601596 IN  Aave: AAVE Token0 FTM0.001689636066
0x7e09cf1a187db1f09d6a828e26bcde6a460d2344b170dae76c2e60e49048c0abApprove543505612023-01-24 14:37:565 days 7 hrs ago0x65f6e80ef3a935349edd32743bfb60f71caf9ef7 IN  Aave: AAVE Token0 FTM0.002024313622
0x8feca881737b3845339848007400c82705e5cabe77363eb9e61cacec286b6830Approve543504772023-01-24 14:36:155 days 7 hrs ago0x65f6e80ef3a935349edd32743bfb60f71caf9ef7 IN  Aave: AAVE Token0 FTM0.00202284377
0xe8a6078e53324c7a62f2e30cdebbf0f8b4e94d3fa6bd49a9faf1bd38c46cecd7Approve541630992023-01-21 20:40:558 days 1 hr ago0x6b5a3b9a6ef03f1dc8b23cdfc0a5dc96b851090b IN  Aave: AAVE Token0 FTM0.001055873
0x5012f5d48fd848d15e0f2fa03400fa858e6581363077062f15007b76dd67dbcdApprove541257282023-01-21 6:19:348 days 16 hrs ago0x983cd18ed6d501e6e01285f2a06df0767fb7297f IN  Aave: AAVE Token0 FTM0.003859805298
0xf24f6dce3fc50ba4eee9e6ef7b1d13eac27f0cf44a155dcdd8576f54a3df4f27Approve540943442023-01-20 20:30:079 days 1 hr ago0xf1ff3b145b6ff3c9e3f744e5a6bf4a916766e87e IN  Aave: AAVE Token0 FTM0.006080099
0x9bd39edfe8c0932fe58d13e94fe1896905b42d59fd40ca606302a738098ed132Transfer540770912023-01-20 13:08:439 days 9 hrs ago0xc80dd50fd6702f81df2f02221161938bebbb5cd7 IN  Aave: AAVE Token0 FTM0.001982766385
0x0b991d60f07725882115d43ac5b224bf006e823cf6a8c8386c2ebfb9dc36f51bApprove540116252023-01-19 0:27:1710 days 21 hrs ago0x01de418f74a4e0d15ce291cb7cd3618bc78b591f IN  Aave: AAVE Token0 FTM0.01020196025
0xe706c6d01dbbd70cdd825a615e1396b72b2e88aa5311769aa99c5d1cd3117b98Approve540104062023-01-18 23:33:2510 days 22 hrs ago0x66d1f600b54b9c2576ba45cfd2090ac8e941db2e IN  Aave: AAVE Token0 FTM0.001244672361
0xb2c9b9c49647170ca64095fe95ffa1ccaf48b305dcc3dd49e7ed68999bc73fd9Approve539926862023-01-18 17:51:2011 days 4 hrs ago0x519fc0eb4111323cac44b70e1ae31c30e405802d IN  Aave: AAVE Token0 FTM0.003963127312
0xa88bcfaacc1f62e017a80e9901a0d1517f72504178ac382739d6a1ff78282e3aApprove539894512023-01-18 16:46:3711 days 5 hrs ago0x3e640dd4187da0d2d4ccdad50cdc0e352ce99296 IN  Aave: AAVE Token0 FTM0.034364493
0x44d04cfa2fa26e5f10e43308ecb6370125c65ec23c05524760a3d55ea366fe77Swapout539859972023-01-18 15:15:2511 days 7 hrs ago0x0fdc80e89e3e713391a0e56bb1653343a44be3ed IN  Aave: AAVE Token0 FTM0.002890762873
0x95e7af38a80bc0f7aed2688b9f4894a1b027bdaa2b95268dcba14bbb489c0b3bApprove539603582023-01-18 2:22:4611 days 19 hrs ago0x66d1f600b54b9c2576ba45cfd2090ac8e941db2e IN  Aave: AAVE Token0 FTM0.001991252639
0xa4084e9b09c7aa3c16aba69abc7c78761f39a93eb718376251d04e8cd648059dTransfer539469872023-01-17 21:38:3712 days 43 mins ago0x24606541b2a41ed0e6e7d36af255717a8c34d671 IN  Aave: AAVE Token0 FTM0.00413056
0xb39f8882e031beb31aa601389594fe5c91944a86b7f6822f8c31bf0da9a2c1c2Approve539226832023-01-17 11:16:3012 days 11 hrs ago0x5706ec7b6a34e7fd8d39d9abf92fadc6b8f6f938 IN  Aave: AAVE Token0 FTM0.00193401817
[ Download CSV Export 

OVERVIEW

Aave is an Open Source and Non-Custodial protocol to earn interest on deposits & borrow assets. It also features access to highly innovative flash loans, which let developers borrow instantly and easily; no collateral needed.

Latest 1 internal transaction
Parent Txn Hash Block From To Value
0x3030c74cf48346308e2481ac4540b98279d4a9df2319f00d1261fcdbf61ac8e123010532021-02-19 18:25:24709 days 3 hrs ago Fantom: Deployer  Contract Creation0 FTM
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Aave

Compiler Version
v0.8.1+commit.df193b15

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

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

pragma solidity 0.8.1;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

library SafeERC20 {
    using Address for address;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        return true;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Contract Security Audit

Contract ABI

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

60c06040523480156200001157600080fd5b5060405162001bcc38038062001bcc8339810160408190526200003491620002b1565b83516200004990600090602087019062000158565b5082516200005f90600190602086019062000158565b5060f882901b7fff0000000000000000000000000000000000000000000000000000000000000016608052600580546001600160a01b0319166001600160a01b0383161790554260065560405146907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f90620000de9060009062000350565b60408051918290038220828201825260018352603160f81b60209384015290516200013193927fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6918691309101620003f5565b60408051601f19818403018152919052805160209091012060a05250620004809350505050565b82805462000166906200042d565b90600052602060002090601f0160209004810192826200018a5760008555620001d5565b82601f10620001a557805160ff1916838001178555620001d5565b82800160010185558215620001d5579182015b82811115620001d5578251825591602001919060010190620001b8565b50620001e3929150620001e7565b5090565b5b80821115620001e35760008155600101620001e8565b600082601f8301126200020f578081fd5b81516001600160401b03808211156200022c576200022c6200046a565b604051601f8301601f19908116603f011681019082821181831017156200025757620002576200046a565b8160405283815260209250868385880101111562000273578485fd5b8491505b8382101562000296578582018301518183018401529082019062000277565b83821115620002a757848385830101525b9695505050505050565b60008060008060808587031215620002c7578384fd5b84516001600160401b0380821115620002de578586fd5b620002ec88838901620001fe565b9550602087015191508082111562000302578485fd5b506200031187828801620001fe565b935050604085015160ff8116811462000328578283fd5b60608601519092506001600160a01b038116811462000345578182fd5b939692955090935050565b81546000908190600281046001808316806200036d57607f831692505b60208084108214156200038e57634e487b7160e01b87526022600452602487fd5b818015620003a55760018114620003b757620003e7565b60ff19861689528489019650620003e7565b620003c28a62000421565b885b86811015620003df5781548b820152908501908301620003c4565b505084890196505b509498975050505050505050565b9485526020850193909352604084019190915260608301526001600160a01b0316608082015260a00190565b60009081526020902090565b6002810460018216806200044257607f821691505b602082108114156200046457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b60805160f81c60a05161171c620004b0600039600081816105cf0152610e46015260006105ab015261171c6000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c8063628d6cba116100b8578063a9059cbb1161007c578063a9059cbb1461024a578063b524f3a51461025d578063cae9ca5114610270578063d505accf14610283578063dd62ed3e14610298578063ec126c77146102ab57610136565b8063628d6cba146101f457806370a08231146102075780637ecebe001461021a5780638da5cb5b1461022d57806395d89b411461024257610136565b806330adf81f116100ff57806330adf81f146101a9578063313ce567146101b15780633644e515146101c65780634000aea0146101ce578063605629d6146101e157610136565b8062bf26f41461013b57806306fdde0314610159578063095ea7b31461016e57806318160ddd1461018e57806323b872dd14610196575b600080fd5b6101436102be565b604051610150919061138f565b60405180910390f35b6101616102e2565b60405161015091906113ea565b61018161017c3660046111cb565b610370565b6040516101509190611384565b6101436103c8565b6101816101a436600461111f565b6103cf565b610143610585565b6101b96105a9565b60405161015091906115fd565b6101436105cd565b6101816101dc3660046111f4565b6105f1565b6101816101ef36600461115a565b61074f565b6101816102023660046112ba565b61090b565b6101436102153660046110cc565b610980565b6101436102283660046110cc565b610992565b6102356109a4565b6040516101509190611328565b6101616109d1565b6101816102583660046111cb565b6109de565b61018161026b3660046110cc565b610ab8565b61018161027e3660046111f4565b610ba9565b61029661029136600461115a565b610c83565b005b6101436102a63660046110ed565b610da6565b6101816102b9366004611296565b610dc3565b7f42ce63790c28229c123925d83266e77c04d28784552ab68b350a9003226cbd5981565b600080546102ef9061163a565b80601f016020809104026020016040519081016040528092919081815260200182805461031b9061163a565b80156103685780601f1061033d57610100808354040283529160200191610368565b820191906000526020600020905b81548152906001019060200180831161034b57829003601f168201915b505050505081565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290916000805160206116c7833981519152906103b790869061138f565b60405180910390a350600192915050565b6003545b90565b60006001600160a01b0383161515806103f157506001600160a01b0383163014155b6103fa57600080fd5b6001600160a01b03841633146104c1576001600160a01b038416600090815260086020908152604080832033845290915290205460001981146104bf57828110156104605760405162461bcd60e51b81526004016104579061153e565b60405180910390fd5b600061046c8483611623565b6001600160a01b0387166000818152600860209081526040808320338085529252918290208490559051929350916000805160206116c7833981519152906104b590859061138f565b60405180910390a3505b505b6001600160a01b038416600090815260026020526040902054828110156104fa5760405162461bcd60e51b8152600401610457906115b6565b6105048382611623565b6001600160a01b03808716600090815260026020526040808220939093559086168152908120805485929061053a90849061160b565b92505081905550836001600160a01b0316856001600160a01b03166000805160206116a783398151915285604051610572919061138f565b60405180910390a3506001949350505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006001600160a01b03851615158061061357506001600160a01b0385163014155b61061c57600080fd5b336000908152600260205260409020548481101561064c5760405162461bcd60e51b8152600401610457906115b6565b6106568582611623565b33600090815260026020526040808220929092556001600160a01b0388168152908120805487929061068990849061160b565b90915550506040516001600160a01b0387169033906000805160206116a7833981519152906106b990899061138f565b60405180910390a3604051635260769b60e11b81526001600160a01b0387169063a4c0ed36906106f390339089908990899060040161133c565b602060405180830381600087803b15801561070d57600080fd5b505af1158015610721573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107459190611276565b9695505050505050565b6000844211156107715760405162461bcd60e51b815260040161045790611474565b6001600160a01b038816600090815260076020526040812080547f42ce63790c28229c123925d83266e77c04d28784552ab68b350a9003226cbd59918b918b918b9190866107be83611675565b919050558a6040516020016107d896959493929190611398565b6040516020818303038152906040528051906020012090506107fd8982878787610e41565b8061081057506108108982878787610f18565b61081957600080fd5b6001600160a01b03881615158061083957506001600160a01b0388163014155b61084257600080fd5b6001600160a01b0389166000908152600260205260409020548781101561087b5760405162461bcd60e51b8152600401610457906115b6565b6108858882611623565b6001600160a01b03808c1660009081526002602052604080822093909355908b16815290812080548a92906108bb90849061160b565b92505081905550886001600160a01b03168a6001600160a01b03166000805160206116a78339815191528a6040516108f3919061138f565b60405180910390a35060019998505050505050505050565b60006001600160a01b0382166109335760405162461bcd60e51b8152600401610457906114a4565b61093d3384610f4b565b816001600160a01b0316336001600160a01b03167f6b616089d04950dc06c45c6dd787d657980543f89651aec47924752c7d16c888856040516103b7919061138f565b60026020526000908152604090205481565b60076020526000908152604090205481565b600060065442106109c157506005546001600160a01b03166103cc565b506004546001600160a01b031690565b600180546102ef9061163a565b60006001600160a01b038316151580610a0057506001600160a01b0383163014155b610a0957600080fd5b3360009081526002602052604090205482811015610a395760405162461bcd60e51b8152600401610457906115b6565b610a438382611623565b33600090815260026020526040808220929092556001600160a01b03861681529081208054859290610a7690849061160b565b90915550506040516001600160a01b0385169033906000805160206116a783398151915290610aa690879061138f565b60405180910390a35060019392505050565b6000610ac26109a4565b6001600160a01b0316336001600160a01b031614610af25760405162461bcd60e51b8152600401610457906114d9565b6001600160a01b038216610b185760405162461bcd60e51b81526004016104579061143d565b610b206109a4565b600480546001600160a01b03199081166001600160a01b039384161790915560058054909116918416919091179055610b5c426202a30061160b565b60068190556005546004546040516001600160a01b0392831692909116907fe1968d4263a733e2597ef67ea6ad267343bba5f8bf0f99d85190e06b05d824d990600090a45060015b919050565b3360008181526008602090815260408083206001600160a01b038916808552925280832087905551919290916000805160206116c783398151915290610bf090889061138f565b60405180910390a360405162ba451f60e01b81526001600160a01b0386169062ba451f90610c2890339088908890889060040161133c565b602060405180830381600087803b158015610c4257600080fd5b505af1158015610c56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7a9190611276565b95945050505050565b83421115610ca35760405162461bcd60e51b815260040161045790611474565b6001600160a01b038716600090815260076020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918a918a918a919086610cf083611675565b9190505589604051602001610d0a96959493929190611398565b604051602081830303815290604052805190602001209050610d2f8882868686610e41565b80610d425750610d428882868686610f18565b610d4b57600080fd5b6001600160a01b038089166000818152600860209081526040808320948c168084529490915290819020899055516000805160206116c783398151915290610d94908a9061138f565b60405180910390a35050505050505050565b600860209081526000928352604080842090915290825290205481565b6000610dcd6109a4565b6001600160a01b0316336001600160a01b031614610dfd5760405162461bcd60e51b8152600401610457906114d9565b610e078383610fef565b826001600160a01b0316847f05d0634fe981be85c22e2942a880821b70095d84e152c3ea3c17a4e4250d9d6184604051610aa6919061138f565b6000807f000000000000000000000000000000000000000000000000000000000000000086604051602001610e7792919061130d565b604051602081830303815290604052805190602001209050600060018287878760405160008152602001604052604051610eb494939291906113cc565b6020604051602081039080840390855afa158015610ed6573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811615801590610f0c5750876001600160a01b0316816001600160a01b0316145b98975050505050505050565b600080610f2486611085565b9050600060018287878760405160008152602001604052604051610eb494939291906113cc565b6001600160a01b038216610f715760405162461bcd60e51b8152600401610457906114fd565b6001600160a01b03821660009081526002602052604081208054839290610f99908490611623565b925050819055508060036000828254610fb29190611623565b90915550506040516000906001600160a01b038416906000805160206116a783398151915290610fe390859061138f565b60405180910390a35050565b6001600160a01b0382166110155760405162461bcd60e51b81526004016104579061157f565b8060036000828254611027919061160b565b90915550506001600160a01b0382166000908152600260205260408120805483929061105490849061160b565b90915550506040516001600160a01b038316906000906000805160206116a783398151915290610fe390859061138f565b60008160405160200161109891906112dc565b604051602081830303815290604052805190602001209050919050565b80356001600160a01b0381168114610ba457600080fd5b6000602082840312156110dd578081fd5b6110e6826110b5565b9392505050565b600080604083850312156110ff578081fd5b611108836110b5565b9150611116602084016110b5565b90509250929050565b600080600060608486031215611133578081fd5b61113c846110b5565b925061114a602085016110b5565b9150604084013590509250925092565b600080600080600080600060e0888a031215611174578283fd5b61117d886110b5565b965061118b602089016110b5565b95506040880135945060608801359350608088013560ff811681146111ae578384fd5b9699959850939692959460a0840135945060c09093013592915050565b600080604083850312156111dd578182fd5b6111e6836110b5565b946020939093013593505050565b60008060008060608587031215611209578384fd5b611212856110b5565b935060208501359250604085013567ffffffffffffffff80821115611235578384fd5b818701915087601f830112611248578384fd5b813581811115611256578485fd5b886020828501011115611267578485fd5b95989497505060200194505050565b600060208284031215611287578081fd5b815180151581146110e6578182fd5b6000806000606084860312156112aa578283fd5b8335925061114a602085016110b5565b600080604083850312156112cc578182fd5b82359150611116602084016110b5565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b61190160f01b81526002810192909252602282015260420190565b6001600160a01b0391909116815260200190565b6001600160a01b0385168152602081018490526060604082018190528101829052600082846080840137818301608090810191909152601f909201601f191601019392505050565b901515815260200190565b90815260200190565b9586526001600160a01b0394851660208701529290931660408501526060840152608083019190915260a082015260c00190565b93845260ff9290921660208401526040830152606082015260800190565b6000602080835283518082850152825b81811015611416578581018301518582016040015282016113fa565b818111156114275783604083870101525b50601f01601f1916929092016040019392505050565b6020808252601d908201527f6e6577206f776e657220697320746865207a65726f2061646472657373000000604082015260600190565b60208082526016908201527515d15490cc4c0e88115e1c1a5c9959081c195c9b5a5d60521b604082015260600190565b6020808252818101527f62696e64206164647265737320697320746865207a65726f2061646472657373604082015260600190565b6020808252600a908201526937b7363c9037bbb732b960b11b604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526021908201527f5745524331303a2072657175657374206578636565647320616c6c6f77616e636040820152606560f81b606082015260800190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b60208082526027908201527f5745524331303a207472616e7366657220616d6f756e7420657863656564732060408201526662616c616e636560c81b606082015260800190565b60ff91909116815260200190565b6000821982111561161e5761161e611690565b500190565b60008282101561163557611635611690565b500390565b60028104600182168061164e57607f821691505b6020821081141561166f57634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561168957611689611690565b5060010190565b634e487b7160e01b600052601160045260246000fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a2646970667358221220a87c6d7d76be2cf0c917278d5b4f43a957b315f1017d8160b1201d18dd10632a64736f6c63430008010033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000012000000000000000000000000c564ee9f21ed8a2d8e7e76c085740d5e4c5fafbe0000000000000000000000000000000000000000000000000000000000000004416176650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044141564500000000000000000000000000000000000000000000000000000000

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

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000012000000000000000000000000c564ee9f21ed8a2d8e7e76c085740d5e4c5fafbe0000000000000000000000000000000000000000000000000000000000000004416176650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044141564500000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): Aave
Arg [1] : _symbol (string): AAVE
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] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [5] : 4161766500000000000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [7] : 4141564500000000000000000000000000000000000000000000000000000000


Deployed ByteCode Sourcemap

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

Swarm Source

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