Contract 0x3129aC70c738D398d1D74c87EAB9483FD56D16f8 1

Txn Hash Method
Block
From
To
Value [Txn Fee]
0x66f1cc90ded9bc1a5339fce8333e65beeb9733bf66dced3e30a6fdd629b33dabApprove241816042021-12-06 19:05:241 day 23 hrs ago0x0f9c650a17f10baa87a61f02b97af505faf472e5 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.014381547586
0x4cf2dc81017950a28f32d500f96420e753825ea263144f41188d51eac1eac882Approve241049552021-12-05 23:39:512 days 18 hrs ago0x3f070ccba62b8bd4929e3850f6d8482753944e17 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.01186175215
0x392c7954c4847130294fb1417208ce8c998ba516c832e9f946f4b6907a424784Approve239103462021-12-03 22:14:054 days 19 hrs ago0x8442e4fcbba519b4f4c1ea1fce57a5379c55906c IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.012575942848
0xaa02df0eba89fecbda497632817f8dc70ae129d9d3857c6418f21940a7adb4e8Approve239101302021-12-03 22:10:314 days 19 hrs ago0x8442e4fcbba519b4f4c1ea1fce57a5379c55906c IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.012219939802
0x40182b8af572bfb35e5d862cddca78f6b9a126f0de05701fb397e8efe0cd6f86Approve238580822021-12-03 8:57:335 days 9 hrs ago0xde3015690739fc92a27a694750fb83479d16d37b IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.009606974104
0xd2b2e0113de4d1b849a15c178ca2831320592ee563b33bce178d5c14d1d0f0bdApprove237204102021-12-01 23:43:516 days 18 hrs ago0xbd91314c0d39d9b7be6064a7775d4911c48c2f3c IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.010000935364
0x50274555e39dc70f78219b0d24f4f673d1c92ad9b053ebb3a8ba0eecd38b368eApprove237201302021-12-01 23:39:326 days 18 hrs ago0xbd91314c0d39d9b7be6064a7775d4911c48c2f3c IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.01037497888
0x6785b1f4af25397b204003c223d68ec50e7656803271c8e3c86a476d723fb3faApprove235629122021-11-30 9:41:208 days 8 hrs ago0xcfea33fe2cf6e9f6e39d2d930c4e855bac08203c IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.007397129698
0xe8984a215392af1140d1234bf19344549f9f4d88c5e68080cc0e8f7538208d0bApprove235627862021-11-30 9:39:338 days 8 hrs ago0xcfea33fe2cf6e9f6e39d2d930c4e855bac08203c IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.00700567147
0x1dd206f117003f2dea24098ec6f1d43eed36d293476729419372a6d214c3d860Approve233829482021-11-28 13:18:0410 days 4 hrs ago0x44de10c759c352cfaf79bdbea442065b3448e8f3 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.008470051702
0x4adc054c7759211d0ecc782a21d363b6f9ab2f83554816b40b7fee245a9fff4fApprove233823072021-11-28 13:07:2110 days 5 hrs ago0x44de10c759c352cfaf79bdbea442065b3448e8f3 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.006911128756
0xa00b24cf8796deb0c0a96b3c653d73e69c35e7337c50d446a4f157ee355b052fApprove229771962021-11-24 8:22:1114 days 9 hrs ago0x3f070b0069f625e07a235a80f1813f52c168191f IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.011322510075
0xb240439372f9eb285c1efc54104a46230a355b9b6987d2986bf486092836a6c4Approve229201702021-11-23 18:27:1214 days 23 hrs ago0x25e321a0f73a2b5f43114803edd1ae38b5974291 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.028690743345
0xaebab28a2ded0c878386f3c0448697a95f0540d82800a7ae03eff8656c2ab3c8Approve229196572021-11-23 18:20:3014 days 23 hrs ago0x25e321a0f73a2b5f43114803edd1ae38b5974291 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.0301748496
0x1da191767f45fa1e99ff922aee9c12fcc8a8748ae0205bd97720f6a438a17387Transfer229114482021-11-23 16:19:1215 days 1 hr ago0x8442e4fcbba519b4f4c1ea1fce57a5379c55906c IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.036600273148
0x51b2739c455a84804ff7f6d04ce3ed10f6715f0f04425cf5d3241c7038be03d2Approve225144172021-11-19 13:45:1019 days 4 hrs ago0x28800d83b4cd12bc4af2e60a7056291bff3e6bb6 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.007874084664
0x11ff03165345c4ad6f0a8f05edea3944e45a4310a5fbe2c8a31f4ed844faf7e3Approve225143012021-11-19 13:43:4019 days 4 hrs ago0x28800d83b4cd12bc4af2e60a7056291bff3e6bb6 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.007606092928
0x76804a03f6e20b5a44618c63167a9a26222f5faf8c43d4a5cc165e81abbd86c6Approve224935062021-11-19 8:40:1219 days 9 hrs ago0xabf2b15e272ec331bf15ab4d4bfa63a48cd7eebd IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.017255679598
0x3a4c05e49d720a2a44b6c755e98c8ebd55d16a4ac22f617cee9ed75165849e69Approve224933812021-11-19 8:37:5919 days 9 hrs ago0xabf2b15e272ec331bf15ab4d4bfa63a48cd7eebd IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.01561949662
0xde03bd00702e47f867e6e1e6e876c49adc08d0571ceaf5ab878ea38902fc2210Approve224930922021-11-19 8:32:2219 days 9 hrs ago0xabf2b15e272ec331bf15ab4d4bfa63a48cd7eebd IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.014820070804
0x12f12aafa1719793e067d80319b80d9b40ff4cb0e4ecb640fa708413173a9100Approve224794542021-11-19 4:58:1819 days 13 hrs ago0x3fc84af1ee9da4a9cba73e2399deaae9fae67ab6 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.008169967456
0x4f5cee564945bf5a92603c81f46a2c84ab2d6f2800d685fa063a21a123f921bdApprove224786962021-11-19 4:46:2919 days 13 hrs ago0x3fc84af1ee9da4a9cba73e2399deaae9fae67ab6 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.004874246449
0x6a6032f5e00f8aa49d2860877b45ccf18d58cb6e7dbc0c1ace6ace82440b7974Approve224786132021-11-19 4:44:5019 days 13 hrs ago0x3fc84af1ee9da4a9cba73e2399deaae9fae67ab6 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.008780206879
0x29ba8da47f811ecb44eb226af61a74939fc11f692d388a8bbb2212e054f8f7feApprove224784792021-11-19 4:42:1019 days 13 hrs ago0x3fc84af1ee9da4a9cba73e2399deaae9fae67ab6 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.008755583746
0xcea6ee6c61a48d53b0a85cbdb2c8206f6f931d4cff31d45f682c36c3c73081f8Approve224036272021-11-18 9:27:4620 days 8 hrs ago0x537d6a90650164750492509eee0d646cbb7e99f4 IN  0x3129ac70c738d398d1d74c87eab9483fd56d16f80 FTM0.0127219708
[ Download CSV Export 
Latest 1 internal transaction
Parent Txn Hash Block From To Value
0x686dd967a7768a6e42f2d31a3d3c097c90cb0635a9de0260587f3446d4488965197368512021-10-22 5:41:4647 days 12 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.