Contract 0x3129aC70c738D398d1D74c87EAB9483FD56D16f8 1

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x80c40c90928041e53331835db6297b603136b526f77a3d9b85136ce38553e121Approve526374822022-12-21 17:52:5645 days 16 hrs ago0x9c4b91d4531711c41fe8defe7e55f26fbb122539 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.001511719689
0x7f257c19e0f7c54d38cd1feda016f8773207cc3a995cd182da722f169ab1040dApprove422299822022-07-07 12:55:28212 days 21 hrs ago0x802f69c5ed76d5ed04466977fe69e0a918a9f621 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.000119767566
0xa8866b4c927bb8c9c6668ca74de6198880253088d5d2bbb49bbff93866ecddcbApprove422207782022-07-07 10:07:52212 days 23 hrs ago0xad5f8b809dd0d95edeb9ee0c129b3ca53ae4a93f IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.0001162
0xeca5b56711f40ff296fc3031e05951de45351cae85abfb1bd62e94d82794e60eApprove422143732022-07-07 8:15:52213 days 1 hr ago0x9bde0836d9f7386446a455684571e7694f9d909c IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.000572808882
0xe809f11e21eb3f41f3eba6610d6e2a235ca80cc075c6b58a959f1306c90c6439Approve409452772022-06-20 16:06:30229 days 17 hrs ago0x187aba5b6d699c7fd206e9a5b234cc822de6d622 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.000644076687
0x7dcc3b48ea6d7b96aa3b323d1f0bcb029ea8660065602c92af5f33210018f002Approve409452592022-06-20 16:06:11229 days 17 hrs ago0x187aba5b6d699c7fd206e9a5b234cc822de6d622 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.009474365324
0x67327a0e29c53336c7204fdd132c23d857aec0d41e2687eda55eceb7783091dfApprove409452592022-06-20 16:06:11229 days 17 hrs ago0x187aba5b6d699c7fd206e9a5b234cc822de6d622 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.000605578033
0x9a8d24a63309a22f95abbe45edad9e58bf6e470dcfeeb33b5a8fae2893117c43Approve409452592022-06-20 16:06:11229 days 17 hrs ago0x187aba5b6d699c7fd206e9a5b234cc822de6d622 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.00062692153
0xb4fce030a18bdc74c5494218eca0638e684e44692fda5ced8f4603439fb1c20fApprove409452592022-06-20 16:06:11229 days 17 hrs ago0x187aba5b6d699c7fd206e9a5b234cc822de6d622 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.024165957324
0x2574cfc1ba725eff8957e3c07aeb5dce1c97c68fb9ec5940e7577aad1b9f7d56Approve367129432022-04-22 16:26:34288 days 17 hrs ago0x537d6a90650164750492509eee0d646cbb7e99f4 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.003732517469
0x2dbdd808edcd877100603768084c348be6939d91429c5da6c7d464e85aac8538Approve367127952022-04-22 16:23:36288 days 17 hrs ago0x537d6a90650164750492509eee0d646cbb7e99f4 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.00367629458
0xef676ebe20c6cbf336e9b87294c93b3ad76d6f1bd46a3f93e209b7f618dc5b4bApprove367127852022-04-22 16:23:26288 days 17 hrs ago0x537d6a90650164750492509eee0d646cbb7e99f4 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.003682128157
0xd704d0bdfcdd43a3e7514e810d4f878fdf357c242c070eb233249a7126844f15Approve360557102022-04-14 18:00:01296 days 15 hrs ago0x5e680b21a29bc6c3ec18c279bf74e759e570d722 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.012966998105
0x1eb0ebccce8186fff87cc2a98f38037a2716e3a1ec851bf4e0cb279df25d44afApprove360551472022-04-14 17:50:14296 days 16 hrs ago0x5e680b21a29bc6c3ec18c279bf74e759e570d722 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.015665168965
0x94bc7305a2f2e55d3f7de5d61fe1e718773b0caeaafcd6f0eaafcf9d6a465abcApprove346509872022-03-28 21:35:26313 days 12 hrs ago0x1be537ff2cc291caf8331efcd3466fe7d1c80d4b IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.013598662196
0xa6ebb3e7c04d6f953dfd20ab08a30576f12d79c1afdf1110cd01453dadfcaef7Approve343291112022-03-25 3:14:50317 days 6 hrs ago0xd2bb66a9ee6995f561c339389f7b28bd5533cf48 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.008797216624
0x047566a0611acb229700e6f7948d510e80ba6e2dd7d19876793e0839a0cd462fApprove301003532022-02-05 19:04:28364 days 14 hrs ago0xbfb7435bb5ab1464934b39f024c53293e5310aa5 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.013982686774
0xbb9c0aeb1281231a4319c4e164c2be6a441379369b341476ddcbb9a5e9248fc0Approve301001562022-02-05 19:01:36364 days 14 hrs ago0xbfb7435bb5ab1464934b39f024c53293e5310aa5 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.014383850908
0xb74caa3f7de25b57eab1e6d55d3196c6591f70d6e4979944f5dbad588529e1b0Approve299608452022-02-04 8:18:15366 days 1 hr ago0x46d242f22a28cc398b63f861effcfaaa2e2e18ca IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.00867245113
0x5a746c5562df88c014d5cd4b8e407b29dae0fcf31feafd669a54595cc67de35aApprove299453292022-02-04 4:30:25366 days 5 hrs ago0x46d242f22a28cc398b63f861effcfaaa2e2e18ca IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.008126550502
0x89a40daafa76df2c7892d1f37a0c818cc8b6f1872b5986ce4b948b5b2aea0be4Approve283355102022-01-18 10:43:21382 days 23 hrs ago0x12f3b7e31b853c526e77d62b96b47d830af6b4c6 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.014312035192
0xef22003f139eacf2fc7dbb855d2cdd810680789e526f57043c61963ff3d932dfApprove283337172022-01-18 10:18:41382 days 23 hrs ago0x12f3b7e31b853c526e77d62b96b47d830af6b4c6 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.01535246926
0x17f57651460f45582ca6f308e9945f98332c490ba5749043ea09236ad01dd625Approve282422242022-01-17 12:59:07383 days 20 hrs ago0x12f3b7e31b853c526e77d62b96b47d830af6b4c6 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.012552962884
0x75d796c595cca5cf4a80d7e1925444cbb7ec306cda99ecf25e7c16def56d133fApprove278842382022-01-14 0:40:26387 days 9 hrs ago0x3399ca93f5b710b2fc16cc8a172568405f95f504 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.013673549008
0x0219657dfd11fe0c072781bef97810aff954a9ed42303b349c661044912ec715Transfer278841312022-01-14 0:38:56387 days 9 hrs ago0x8fdd94ffc10f447f30a30da45b380046277f15fb IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.013243440496
[ Download CSV Export 
Latest 1 internal transaction
Parent Txn Hash Block From To Value
0x686dd967a7768a6e42f2d31a3d3c097c90cb0635a9de0260587f3446d4488965197368512021-10-22 5:41:46471 days 4 hrs ago 0x55d56e1bb2fc8280a775ccfe9ececcecf1a01562  Contract Creation0 FTM
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
USDP

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 3 : USDP.sol
// SPDX-License-Identifier: bsl-1.1

/*
  Copyright 2020 Unit Protocol: Artem Zakharov ([email protected]).
*/
pragma solidity 0.7.6;

import "./VaultParameters.sol";
import "./helpers/SafeMath.sol";


/**
 * @title USDP token implementation
 * @dev ERC20 token
 **/
contract USDP is Auth {
    using SafeMath for uint;

    // name of the token
    string public constant name = "USDP Stablecoin";

    // symbol of the token
    string public constant symbol = "USDP";

    // version of the token
    string public constant version = "1";

    // number of decimals the token uses
    uint8 public constant decimals = 18;

    // total token supply
    uint public totalSupply;

    // balance information map
    mapping(address => uint) public balanceOf;

    // token allowance mapping
    mapping(address => mapping(address => uint)) public allowance;

    // minters mapping
    mapping(address => bool) public isMinter;

    /**
     * @dev Trigger on any successful call to approve(address spender, uint amount)
    **/
    event Approval(address indexed owner, address indexed spender, uint value);

    /**
     * @dev Trigger when tokens are transferred, including zero value transfers
    **/
    event Transfer(address indexed from, address indexed to, uint value);

    /**
     * @dev Trigger minter is set/unset
    **/
    event Minter(address indexed who, bool flag);

    modifier onlyMinter() {
        require(isMinter[msg.sender], "Unit Protocol: NOT_A_MINTER");
        _;
    }

    /**
      * @param _parameters The address of system parameters contract
     **/
    constructor(address _parameters) Auth(_parameters) {}

    /**
      * @notice Only manager is able to manage minters
      * @dev Allows and disallows 'who' to mint/burn the token
      * @param who The address of the minter
      * @param flag The permission flag
     **/
    function setMinter(address who, bool flag) external onlyManager {
        isMinter[who] = flag;
        emit Minter(who, flag);
    }

    /**
      * @notice Only minter can mint USDP
      * @dev Mints 'amount' of tokens to address 'to', and MUST fire the
      * Transfer event
      * @param to The address of the recipient
      * @param amount The amount of token to be minted
     **/
    function mint(address to, uint amount) external onlyMinter {
        require(to != address(0), "Unit Protocol: ZERO_ADDRESS");

        balanceOf[to] = balanceOf[to].add(amount);
        totalSupply = totalSupply.add(amount);

        emit Transfer(address(0), to, amount);
    }

    /**
      * @notice Only manager can burn tokens from manager's balance
      * @dev Burns 'amount' of tokens, and MUST fire the Transfer event
      * @param amount The amount of token to be burned
     **/
    function burn(uint amount) external onlyManager {
        _burn(msg.sender, amount);
    }

    /**
      * @notice Only minter can burn tokens from any address
      * @dev Burns 'amount' of tokens from 'from' address, and MUST fire the Transfer event
      * @param from The address of the balance owner
      * @param amount The amount of token to be burned
     **/
    function burn(address from, uint amount) external onlyMinter {
        _burn(from, amount);
    }

    /**
      * @dev Transfers 'amount' of tokens to address 'to', and MUST fire the Transfer event. The
      * function SHOULD throw if the _from account balance does not have enough tokens to spend.
      * @param to The address of the recipient
      * @param amount The amount of token to be transferred
     **/
    function transfer(address to, uint amount) external returns (bool) {
        return transferFrom(msg.sender, to, amount);
    }

    /**
      * @dev Transfers 'amount' of tokens from address 'from' to address 'to', and MUST fire the
      * Transfer event
      * @param from The address of the sender
      * @param to The address of the recipient
      * @param amount The amount of token to be transferred
     **/
    function transferFrom(address from, address to, uint amount) public returns (bool) {
        require(to != address(0), "Unit Protocol: ZERO_ADDRESS");
        require(balanceOf[from] >= amount, "Unit Protocol: INSUFFICIENT_BALANCE");

        if (from != msg.sender) {
            require(allowance[from][msg.sender] >= amount, "Unit Protocol: INSUFFICIENT_ALLOWANCE");
            _approve(from, msg.sender, allowance[from][msg.sender].sub(amount));
        }
        balanceOf[from] = balanceOf[from].sub(amount);
        balanceOf[to] = balanceOf[to].add(amount);

        emit Transfer(from, to, amount);
        return true;
    }

    /**
      * @dev Allows 'spender' to withdraw from your account multiple times, up to the 'amount' amount. If
      * this function is called again it overwrites the current allowance with 'amount'.
      * @param spender The address of the account able to transfer the tokens
      * @param amount The amount of tokens to be approved for transfer
     **/
    function approve(address spender, uint amount) external returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to `approve` that can be used as a mitigation for
     * problems described in `IERC20.approve`.
     *
     * Emits an `Approval` event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint addedValue) public virtual returns (bool) {
        _approve(msg.sender, spender, allowance[msg.sender][spender].add(addedValue));
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to `approve` that can be used as a mitigation for
     * problems described in `IERC20.approve`.
     *
     * Emits an `Approval` event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint subtractedValue) public virtual returns (bool) {
        _approve(msg.sender, spender, allowance[msg.sender][spender].sub(subtractedValue));
        return true;
    }

    function _approve(address owner, address spender, uint amount) internal virtual {
        require(owner != address(0), "Unit Protocol: approve from the zero address");
        require(spender != address(0), "Unit Protocol: approve to the zero address");

        allowance[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _burn(address from, uint amount) internal virtual {
        balanceOf[from] = balanceOf[from].sub(amount);
        totalSupply = totalSupply.sub(amount);

        emit Transfer(from, address(0), amount);
    }
}

File 2 of 3 : VaultParameters.sol
// SPDX-License-Identifier: bsl-1.1

/*
  Copyright 2020 Unit Protocol: Artem Zakharov ([email protected]).
*/
pragma solidity 0.7.6;



/**
 * @title Auth
 * @dev Manages USDP's system access
 **/
contract Auth {

    // address of the the contract with vault parameters
    VaultParameters public immutable vaultParameters;

    constructor(address _parameters) {
        vaultParameters = VaultParameters(_parameters);
    }

    // ensures tx's sender is a manager
    modifier onlyManager() {
        require(vaultParameters.isManager(msg.sender), "Unit Protocol: AUTH_FAILED");
        _;
    }

    // ensures tx's sender is able to modify the Vault
    modifier hasVaultAccess() {
        require(vaultParameters.canModifyVault(msg.sender), "Unit Protocol: AUTH_FAILED");
        _;
    }

    // ensures tx's sender is the Vault
    modifier onlyVault() {
        require(msg.sender == vaultParameters.vault(), "Unit Protocol: AUTH_FAILED");
        _;
    }
}



/**
 * @title VaultParameters
 **/
contract VaultParameters is Auth {

    // map token to stability fee percentage; 3 decimals
    mapping(address => uint) public stabilityFee;

    // map token to liquidation fee percentage, 0 decimals
    mapping(address => uint) public liquidationFee;

    // map token to USDP mint limit
    mapping(address => uint) public tokenDebtLimit;

    // permissions to modify the Vault
    mapping(address => bool) public canModifyVault;

    // managers
    mapping(address => bool) public isManager;

    // enabled oracle types
    mapping(uint => mapping (address => bool)) public isOracleTypeEnabled;

    // address of the Vault
    address payable public immutable vault;

    // The foundation address
    address public foundation;

    /**
     * The address for an Ethereum contract is deterministically computed from the address of its creator (sender)
     * and how many transactions the creator has sent (nonce). The sender and nonce are RLP encoded and then
     * hashed with Keccak-256.
     * Therefore, the Vault address can be pre-computed and passed as an argument before deployment.
    **/
    constructor(address payable _vault, address _foundation) Auth(address(this)) {
        require(_vault != address(0), "Unit Protocol: ZERO_ADDRESS");
        require(_foundation != address(0), "Unit Protocol: ZERO_ADDRESS");

        isManager[msg.sender] = true;
        vault = _vault;
        foundation = _foundation;
    }

    /**
     * @notice Only manager is able to call this function
     * @dev Grants and revokes manager's status of any address
     * @param who The target address
     * @param permit The permission flag
     **/
    function setManager(address who, bool permit) external onlyManager {
        isManager[who] = permit;
    }

    /**
     * @notice Only manager is able to call this function
     * @dev Sets the foundation address
     * @param newFoundation The new foundation address
     **/
    function setFoundation(address newFoundation) external onlyManager {
        require(newFoundation != address(0), "Unit Protocol: ZERO_ADDRESS");
        foundation = newFoundation;
    }

    /**
     * @notice Only manager is able to call this function
     * @dev Sets ability to use token as the main collateral
     * @param asset The address of the main collateral token
     * @param stabilityFeeValue The percentage of the year stability fee (3 decimals)
     * @param liquidationFeeValue The liquidation fee percentage (0 decimals)
     * @param usdpLimit The USDP token issue limit
     * @param oracles The enables oracle types
     **/
    function setCollateral(
        address asset,
        uint stabilityFeeValue,
        uint liquidationFeeValue,
        uint usdpLimit,
        uint[] calldata oracles
    ) external onlyManager {
        setStabilityFee(asset, stabilityFeeValue);
        setLiquidationFee(asset, liquidationFeeValue);
        setTokenDebtLimit(asset, usdpLimit);
        for (uint i=0; i < oracles.length; i++) {
            setOracleType(oracles[i], asset, true);
        }
    }

    /**
     * @notice Only manager is able to call this function
     * @dev Sets a permission for an address to modify the Vault
     * @param who The target address
     * @param permit The permission flag
     **/
    function setVaultAccess(address who, bool permit) external onlyManager {
        canModifyVault[who] = permit;
    }

    /**
     * @notice Only manager is able to call this function
     * @dev Sets the percentage of the year stability fee for a particular collateral
     * @param asset The address of the main collateral token
     * @param newValue The stability fee percentage (3 decimals)
     **/
    function setStabilityFee(address asset, uint newValue) public onlyManager {
        stabilityFee[asset] = newValue;
    }

    /**
     * @notice Only manager is able to call this function
     * @dev Sets the percentage of the liquidation fee for a particular collateral
     * @param asset The address of the main collateral token
     * @param newValue The liquidation fee percentage (0 decimals)
     **/
    function setLiquidationFee(address asset, uint newValue) public onlyManager {
        require(newValue <= 100, "Unit Protocol: VALUE_OUT_OF_RANGE");
        liquidationFee[asset] = newValue;
    }

    /**
     * @notice Only manager is able to call this function
     * @dev Enables/disables oracle types
     * @param _type The type of the oracle
     * @param asset The address of the main collateral token
     * @param enabled The control flag
     **/
    function setOracleType(uint _type, address asset, bool enabled) public onlyManager {
        isOracleTypeEnabled[_type][asset] = enabled;
    }

    /**
     * @notice Only manager is able to call this function
     * @dev Sets USDP limit for a specific collateral
     * @param asset The address of the main collateral token
     * @param limit The limit number
     **/
    function setTokenDebtLimit(address asset, uint limit) public onlyManager {
        tokenDebtLimit[asset] = limit;
    }
}

File 3 of 3 : SafeMath.sol
// SPDX-License-Identifier: bsl-1.1

/*
  Copyright 2020 Unit Protocol: Artem Zakharov ([email protected]).
*/
pragma solidity 0.7.6;


/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

    /**
    * @dev Multiplies two numbers, throws on overflow.
    */
    function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
        if (a == 0) {
            return 0;
        }
        c = a * b;
        assert(c / a == b);
        return c;
    }

    /**
    * @dev Integer division of two numbers, truncating the quotient.
    */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0, "SafeMath: division by zero");
        return a / b;
    }

    /**
    * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
    */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }

    /**
    * @dev Adds two numbers, throws on overflow.
    */
    function add(uint256 a, uint256 b) internal pure returns (uint256 c) {
        c = a + b;
        assert(c >= a);
        return c;
    }
}

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_parameters","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":"who","type":"address"},{"indexed":false,"internalType":"bool","name":"flag","type":"bool"}],"name":"Minter","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":[{"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":"amount","type":"uint256"}],"name":"approve","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":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"bool","name":"flag","type":"bool"}],"name":"setMinter","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":"amount","type":"uint256"}],"name":"transfer","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":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vaultParameters","outputs":[{"internalType":"contract VaultParameters","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}]

60a060405234801561001057600080fd5b50604051610e7b380380610e7b8339818101604052602081101561003357600080fd5b5051606081901b6001600160601b0319166080526001600160a01b0316610e0a610071600039806108255280610a175280610a595250610e0a6000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c806370a08231116100a2578063a9059cbb11610071578063a9059cbb1461034b578063aa271e1a14610377578063aca345ee1461039d578063cf456ae7146103c1578063dd62ed3e146103ef57610116565b806370a08231146102c557806395d89b41146102eb5780639dc29fac146102f3578063a457c2d71461031f57610116565b8063313ce567116100e9578063313ce56714610228578063395093511461024657806340c10f191461027257806342966c68146102a057806354fd4d50146102bd57610116565b806306fdde031461011b578063095ea7b31461019857806318160ddd146101d857806323b872dd146101f2575b600080fd5b61012361041d565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015d578181015183820152602001610145565b50505050905090810190601f16801561018a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101c4600480360360408110156101ae57600080fd5b506001600160a01b038135169060200135610448565b604080519115158252519081900360200190f35b6101e061045f565b60408051918252519081900360200190f35b6101c46004803603606081101561020857600080fd5b506001600160a01b03813581169160208101359091169060400135610465565b610230610678565b6040805160ff9092168252519081900360200190f35b6101c46004803603604081101561025c57600080fd5b506001600160a01b03813516906020013561067d565b61029e6004803603604081101561028857600080fd5b506001600160a01b0381351690602001356106b3565b005b61029e600480360360208110156102b657600080fd5b5035610805565b6101236108f5565b6101e0600480360360208110156102db57600080fd5b50356001600160a01b0316610912565b610123610924565b61029e6004803603604081101561030957600080fd5b506001600160a01b038135169060200135610944565b6101c46004803603604081101561033557600080fd5b506001600160a01b0381351690602001356109b6565b6101c46004803603604081101561036157600080fd5b506001600160a01b0381351690602001356109ec565b6101c46004803603602081101561038d57600080fd5b50356001600160a01b0316610a00565b6103a5610a15565b604080516001600160a01b039092168252519081900360200190f35b61029e600480360360408110156103d757600080fd5b506001600160a01b0381351690602001351515610a39565b6101e06004803603604081101561040557600080fd5b506001600160a01b0381358116916020013516610b7c565b6040518060400160405280600f81526020016e2aa9a2281029ba30b13632b1b7b4b760891b81525081565b6000610455338484610b99565b5060015b92915050565b60005481565b60006001600160a01b0383166104c2576040805162461bcd60e51b815260206004820152601b60248201527f556e69742050726f746f636f6c3a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b6001600160a01b0384166000908152600160205260409020548211156105195760405162461bcd60e51b8152600401808060200182810382526023815260200180610d376023913960400191505060405180910390fd5b6001600160a01b03841633146105c5576001600160a01b038416600090815260026020908152604080832033845290915290205482111561058b5760405162461bcd60e51b8152600401808060200182810382526025815260200180610d5a6025913960400191505060405180910390fd5b6001600160a01b0384166000908152600260209081526040808320338085529252909120546105c59186916105c09086610c85565b610b99565b6001600160a01b0384166000908152600160205260409020546105e89083610c85565b6001600160a01b0380861660009081526001602052604080822093909355908516815220546106179083610c97565b6001600160a01b0380851660008181526001602090815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060019392505050565b601281565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916104559185906105c09086610c97565b3360009081526003602052604090205460ff16610717576040805162461bcd60e51b815260206004820152601b60248201527f556e69742050726f746f636f6c3a204e4f545f415f4d494e5445520000000000604482015290519081900360640190fd5b6001600160a01b038216610772576040805162461bcd60e51b815260206004820152601b60248201527f556e69742050726f746f636f6c3a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b6001600160a01b0382166000908152600160205260409020546107959082610c97565b6001600160a01b038316600090815260016020526040812091909155546107bc9082610c97565b60009081556040805183815290516001600160a01b03851692917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6040805163f3ae241560e01b815233600482015290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163f3ae2415916024808301926020929190829003018186803b15801561086b57600080fd5b505afa15801561087f573d6000803e3d6000fd5b505050506040513d602081101561089557600080fd5b50516108e8576040805162461bcd60e51b815260206004820152601a60248201527f556e69742050726f746f636f6c3a20415554485f4641494c4544000000000000604482015290519081900360640190fd5b6108f23382610ca4565b50565b604051806040016040528060018152602001603160f81b81525081565b60016020526000908152604090205481565b604051806040016040528060048152602001630555344560e41b81525081565b3360009081526003602052604090205460ff166109a8576040805162461bcd60e51b815260206004820152601b60248201527f556e69742050726f746f636f6c3a204e4f545f415f4d494e5445520000000000604482015290519081900360640190fd5b6109b28282610ca4565b5050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916104559185906105c09086610c85565b60006109f9338484610465565b9392505050565b60036020526000908152604090205460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6040805163f3ae241560e01b815233600482015290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163f3ae2415916024808301926020929190829003018186803b158015610a9f57600080fd5b505afa158015610ab3573d6000803e3d6000fd5b505050506040513d6020811015610ac957600080fd5b5051610b1c576040805162461bcd60e51b815260206004820152601a60248201527f556e69742050726f746f636f6c3a20415554485f4641494c4544000000000000604482015290519081900360640190fd5b6001600160a01b038216600081815260036020908152604091829020805460ff1916851515908117909155825190815291517fff452b3b9159b024a9098f0058c63eccd90d36b3584608202800d662f962bb609281900390910190a25050565b600260209081526000928352604080842090915290825290205481565b6001600160a01b038316610bde5760405162461bcd60e51b815260040180806020018281038252602c815260200180610da9602c913960400191505060405180910390fd5b6001600160a01b038216610c235760405162461bcd60e51b815260040180806020018281038252602a815260200180610d7f602a913960400191505060405180910390fd5b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600082821115610c9157fe5b50900390565b8181018281101561045957fe5b6001600160a01b038216600090815260016020526040902054610cc79082610c85565b6001600160a01b03831660009081526001602052604081209190915554610cee9082610c85565b60009081556040805183815290516001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a3505056fe556e69742050726f746f636f6c3a20494e53554646494349454e545f42414c414e4345556e69742050726f746f636f6c3a20494e53554646494349454e545f414c4c4f57414e4345556e69742050726f746f636f6c3a20617070726f766520746f20746865207a65726f2061646472657373556e69742050726f746f636f6c3a20617070726f76652066726f6d20746865207a65726f2061646472657373a2646970667358221220df66ad9b2c25bde3548d436355d98bebe72fae7c666164bde1443c3304cc3ccd64736f6c63430007060033000000000000000000000000a8f0b5758041158cf0375b7adc8ac175ff031b6c

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

000000000000000000000000a8f0b5758041158cf0375b7adc8ac175ff031b6c

-----Decoded View---------------
Arg [0] : _parameters (address): 0xa8f0b5758041158cf0375b7adc8ac175ff031b6c

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000a8f0b5758041158cf0375b7adc8ac175ff031b6c


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.