Contract 0x3129aC70c738D398d1D74c87EAB9483FD56D16f8 1

Txn Hash Method
Block
From
To
Value [Txn Fee]
0x2574cfc1ba725eff8957e3c07aeb5dce1c97c68fb9ec5940e7577aad1b9f7d56Approve367129432022-04-22 16:26:3426 days 21 hrs ago0x537d6a90650164750492509eee0d646cbb7e99f4 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.003732517469
0x2dbdd808edcd877100603768084c348be6939d91429c5da6c7d464e85aac8538Approve367127952022-04-22 16:23:3626 days 22 hrs ago0x537d6a90650164750492509eee0d646cbb7e99f4 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.00367629458
0xef676ebe20c6cbf336e9b87294c93b3ad76d6f1bd46a3f93e209b7f618dc5b4bApprove367127852022-04-22 16:23:2626 days 22 hrs ago0x537d6a90650164750492509eee0d646cbb7e99f4 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.003682128157
0xd704d0bdfcdd43a3e7514e810d4f878fdf357c242c070eb233249a7126844f15Approve360557102022-04-14 18:00:0134 days 20 hrs ago0x5e680b21a29bc6c3ec18c279bf74e759e570d722 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.012966998105
0x1eb0ebccce8186fff87cc2a98f38037a2716e3a1ec851bf4e0cb279df25d44afApprove360551472022-04-14 17:50:1434 days 20 hrs ago0x5e680b21a29bc6c3ec18c279bf74e759e570d722 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.015665168965
0x94bc7305a2f2e55d3f7de5d61fe1e718773b0caeaafcd6f0eaafcf9d6a465abcApprove346509872022-03-28 21:35:2651 days 16 hrs ago0x1be537ff2cc291caf8331efcd3466fe7d1c80d4b IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.013598662196
0xa6ebb3e7c04d6f953dfd20ab08a30576f12d79c1afdf1110cd01453dadfcaef7Approve343291112022-03-25 3:14:5055 days 11 hrs ago0xd2bb66a9ee6995f561c339389f7b28bd5533cf48 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.008797216624
0x047566a0611acb229700e6f7948d510e80ba6e2dd7d19876793e0839a0cd462fApprove301003532022-02-05 19:04:28102 days 19 hrs ago0xbfb7435bb5ab1464934b39f024c53293e5310aa5 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.013982686774
0xbb9c0aeb1281231a4319c4e164c2be6a441379369b341476ddcbb9a5e9248fc0Approve301001562022-02-05 19:01:36102 days 19 hrs ago0xbfb7435bb5ab1464934b39f024c53293e5310aa5 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.014383850908
0xb74caa3f7de25b57eab1e6d55d3196c6591f70d6e4979944f5dbad588529e1b0Approve299608452022-02-04 8:18:15104 days 6 hrs ago0x46d242f22a28cc398b63f861effcfaaa2e2e18ca IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.00867245113
0x5a746c5562df88c014d5cd4b8e407b29dae0fcf31feafd669a54595cc67de35aApprove299453292022-02-04 4:30:25104 days 9 hrs ago0x46d242f22a28cc398b63f861effcfaaa2e2e18ca IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.008126550502
0x89a40daafa76df2c7892d1f37a0c818cc8b6f1872b5986ce4b948b5b2aea0be4Approve283355102022-01-18 10:43:21121 days 3 hrs ago0x12f3b7e31b853c526e77d62b96b47d830af6b4c6 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.014312035192
0xef22003f139eacf2fc7dbb855d2cdd810680789e526f57043c61963ff3d932dfApprove283337172022-01-18 10:18:41121 days 4 hrs ago0x12f3b7e31b853c526e77d62b96b47d830af6b4c6 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.01535246926
0x17f57651460f45582ca6f308e9945f98332c490ba5749043ea09236ad01dd625Approve282422242022-01-17 12:59:07122 days 1 hr ago0x12f3b7e31b853c526e77d62b96b47d830af6b4c6 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.012552962884
0x75d796c595cca5cf4a80d7e1925444cbb7ec306cda99ecf25e7c16def56d133fApprove278842382022-01-14 0:40:26125 days 13 hrs ago0x3399ca93f5b710b2fc16cc8a172568405f95f504 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.013673549008
0x0219657dfd11fe0c072781bef97810aff954a9ed42303b349c661044912ec715Transfer278841312022-01-14 0:38:56125 days 13 hrs ago0x8fdd94ffc10f447f30a30da45b380046277f15fb IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.013243440496
0xf244442f845ef14cd8215d57dfe3cd65ffb9e4d40f62cbe4bfc4f8606bc69d9bApprove277870002022-01-13 0:04:49126 days 14 hrs ago0x8fdd94ffc10f447f30a30da45b380046277f15fb IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.007032707902
0x31413cc4c67e3091b53c6986f90bf3cd233df2e298c099f594dbdb57efede392Approve277869572022-01-13 0:03:47126 days 14 hrs ago0x8fdd94ffc10f447f30a30da45b380046277f15fb IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.012395217502
0xa78a10637af70b75815dec15976eda0896f810c6697611e45a43dd0ce10f314dTransfer277866632022-01-12 23:59:21126 days 14 hrs ago0x3399ca93f5b710b2fc16cc8a172568405f95f504 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.0158028
0xc1a9e66813af34e656f16247b824a60daf88044f2e5de3388e505703050c5bc6Transfer277866172022-01-12 23:58:45126 days 14 hrs ago0x3399ca93f5b710b2fc16cc8a172568405f95f504 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.010751557726
0x58af0acbf0f53b9579cf67d96bb38ef2353027683f476d682aea6dcf17380163Approve276933322022-01-12 0:03:11127 days 14 hrs ago0x3399ca93f5b710b2fc16cc8a172568405f95f504 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.01394938846
0xf6803550fc1d3a653c5b13136d8e0bdd37a14d830a09413fdca88ad4635ec12aApprove258857722021-12-24 9:17:21146 days 5 hrs ago0x0f9c650a17f10baa87a61f02b97af505faf472e5 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.005673485944
0x1c35f9e86dd1b6b20c39395bb451f24508cd96669f758d13decc51de9d02bc3bApprove250398602021-12-15 14:22:51155 days 1 min ago0x41d699bc4aae64e8a7c3b1cf1c7d0a6e3c4c93aa IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.005952742656
0xd9e8bcc591f63494de50e855fa2904acb45706f8027ffa20474a4cd2fcead921Approve249110242021-12-14 6:17:26156 days 8 hrs ago0xb9b9eadbdab25754a36dc176c34e6519e9b7ff3f IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.0057341179
0xeef82d671a3d0bf6360f24b57c16cce2f61c2f1ebc83785bd3be5b21f6ef85c6Approve248520532021-12-13 15:06:07156 days 23 hrs ago0x76fb1a0ebd7da4e1db53d147c7dfe8eb0c9164f6 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.006059964736
[ Download CSV Export 
Latest 1 internal transaction
Parent Txn Hash Block From To Value
0x686dd967a7768a6e42f2d31a3d3c097c90cb0635a9de0260587f3446d4488965197368512021-10-22 5:41:46209 days 8 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.