ETH Price: $3,138.14 (-0.79%)

Token

USDP Stablecoin (USDP)
 

Overview

Max Total Supply

2,628,819.432953692116014053 USDP

Holders

844 (0.00%)

Market

Price

$1.00 @ 0.000319 ETH (-0.01%)

Onchain Market Cap

$2,628,370.07

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 18 Decimals)

Balance
3.122949628071167596 USDP

Value
$3.12 ( ~0.000994220865014024 Eth) [0.0001%]
0xe3939654deae5f54fd3e6b84b3a7f75f245062d8
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

$USDP stable coin minted by Unit Protocol from collateralising various decentralized assets.

Market

Volume (24H):$1,867,011.81
Market Capitalization:$0.00
Circulating Supply:0.00 USDP
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
USDP

Compiler Version
v0.7.5+commit.eb77ed08

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license
/**
 *Submitted for verification at Etherscan.io on 2020-11-24
*/

// File: contracts/VaultParameters.sol

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


/**
 * @title Auth
 * @author Unit Protocol: Ivan Zakharov (@34x4p08)
 * @dev Manages USDP's system access
 **/
contract Auth {

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

    constructor(address _parameters) public {
        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
 * @author Unit Protocol: Ivan Zakharov (@34x4p08)
 **/
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 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) public 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: contracts/helpers/SafeMath.sol

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


/**
 * @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;
    }
}

// File: contracts/USDP.sol

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




/**
 * @title USDP token implementation
 * @author Unit Protocol: Ivan Zakharov (@34x4p08)
 * @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;

    /**
     * @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);

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

    /**
      * @notice Only Vault 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 onlyVault {
        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 Vault can burn tokens from any balance
      * @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 onlyVault {
        _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);
    }
}

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":"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":"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":[],"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"}]

608060405234801561001057600080fd5b50604051610d51380380610d518339818101604052602081101561003357600080fd5b5051600080546001600160a01b039092166001600160a01b0319909216919091179055610cec806100656000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806354fd4d5011610097578063a457c2d711610066578063a457c2d714610309578063a9059cbb14610335578063aca345ee14610361578063dd62ed3e1461038557610100565b806354fd4d50146102a757806370a08231146102af57806395d89b41146102d55780639dc29fac146102dd57610100565b8063313ce567116100d3578063313ce56714610212578063395093511461023057806340c10f191461025c57806342966c681461028a57610100565b806306fdde0314610105578063095ea7b31461018257806318160ddd146101c257806323b872dd146101dc575b600080fd5b61010d6103b3565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561014757818101518382015260200161012f565b50505050905090810190601f1680156101745780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101ae6004803603604081101561019857600080fd5b506001600160a01b0381351690602001356103de565b604080519115158252519081900360200190f35b6101ca6103f5565b60408051918252519081900360200190f35b6101ae600480360360608110156101f257600080fd5b506001600160a01b038135811691602081013590911690604001356103fb565b61021a61060e565b6040805160ff9092168252519081900360200190f35b6101ae6004803603604081101561024657600080fd5b506001600160a01b038135169060200135610613565b6102886004803603604081101561027257600080fd5b506001600160a01b038135169060200135610649565b005b610288600480360360208110156102a057600080fd5b5035610806565b61010d6108d8565b6101ca600480360360208110156102c557600080fd5b50356001600160a01b03166108f5565b61010d610907565b610288600480360360408110156102f357600080fd5b506001600160a01b038135169060200135610927565b6101ae6004803603604081101561031f57600080fd5b506001600160a01b038135169060200135610a06565b6101ae6004803603604081101561034b57600080fd5b506001600160a01b038135169060200135610a3c565b610369610a50565b604080516001600160a01b039092168252519081900360200190f35b6101ca6004803603604081101561039b57600080fd5b506001600160a01b0381358116916020013516610a5f565b6040518060400160405280600f81526020016e2aa9a2281029ba30b13632b1b7b4b760891b81525081565b60006103eb338484610a7c565b5060015b92915050565b60015481565b60006001600160a01b038316610458576040805162461bcd60e51b815260206004820152601b60248201527f556e69742050726f746f636f6c3a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b6001600160a01b0384166000908152600260205260409020548211156104af5760405162461bcd60e51b8152600401808060200182810382526023815260200180610c196023913960400191505060405180910390fd5b6001600160a01b038416331461055b576001600160a01b03841660009081526003602090815260408083203384529091529020548211156105215760405162461bcd60e51b8152600401808060200182810382526025815260200180610c3c6025913960400191505060405180910390fd5b6001600160a01b03841660009081526003602090815260408083203380855292529091205461055b9186916105569086610b68565b610a7c565b6001600160a01b03841660009081526002602052604090205461057e9083610b68565b6001600160a01b0380861660009081526002602052604080822093909355908516815220546105ad9083610b7a565b6001600160a01b0380851660008181526002602090815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060019392505050565b601281565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916103eb9185906105569086610b7a565b60008054906101000a90046001600160a01b03166001600160a01b031663fbfa77cf6040518163ffffffff1660e01b815260040160206040518083038186803b15801561069557600080fd5b505afa1580156106a9573d6000803e3d6000fd5b505050506040513d60208110156106bf57600080fd5b50516001600160a01b0316331461071a576040805162461bcd60e51b815260206004820152601a602482015279155b9a5d08141c9bdd1bd8dbdb0e881055551217d1905253115160321b604482015290519081900360640190fd5b6001600160a01b038216610775576040805162461bcd60e51b815260206004820152601b60248201527f556e69742050726f746f636f6c3a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b6001600160a01b0382166000908152600260205260409020546107989082610b7a565b6001600160a01b0383166000908152600260205260409020556001546107be9082610b7a565b6001556040805182815290516001600160a01b038416916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6000546040805163f3ae241560e01b815233600482015290516001600160a01b039092169163f3ae241591602480820192602092909190829003018186803b15801561085157600080fd5b505afa158015610865573d6000803e3d6000fd5b505050506040513d602081101561087b57600080fd5b50516108cb576040805162461bcd60e51b815260206004820152601a602482015279155b9a5d08141c9bdd1bd8dbdb0e881055551217d1905253115160321b604482015290519081900360640190fd5b6108d53382610b87565b50565b604051806040016040528060018152602001603160f81b81525081565b60026020526000908152604090205481565b604051806040016040528060048152602001630555344560e41b81525081565b60008054906101000a90046001600160a01b03166001600160a01b031663fbfa77cf6040518163ffffffff1660e01b815260040160206040518083038186803b15801561097357600080fd5b505afa158015610987573d6000803e3d6000fd5b505050506040513d602081101561099d57600080fd5b50516001600160a01b031633146109f8576040805162461bcd60e51b815260206004820152601a602482015279155b9a5d08141c9bdd1bd8dbdb0e881055551217d1905253115160321b604482015290519081900360640190fd5b610a028282610b87565b5050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916103eb9185906105569086610b68565b6000610a493384846103fb565b9392505050565b6000546001600160a01b031681565b600360209081526000928352604080842090915290825290205481565b6001600160a01b038316610ac15760405162461bcd60e51b815260040180806020018281038252602c815260200180610c8b602c913960400191505060405180910390fd5b6001600160a01b038216610b065760405162461bcd60e51b815260040180806020018281038252602a815260200180610c61602a913960400191505060405180910390fd5b6001600160a01b03808416600081815260036020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600082821115610b7457fe5b50900390565b818101828110156103ef57fe5b6001600160a01b038216600090815260026020526040902054610baa9082610b68565b6001600160a01b038316600090815260026020526040902055600154610bd09082610b68565b6001556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3505056fe556e69742050726f746f636f6c3a20494e53554646494349454e545f42414c414e4345556e69742050726f746f636f6c3a20494e53554646494349454e545f414c4c4f57414e4345556e69742050726f746f636f6c3a20617070726f766520746f20746865207a65726f2061646472657373556e69742050726f746f636f6c3a20617070726f76652066726f6d20746865207a65726f2061646472657373a26469706673582212206725cb1bab781f2cc17b3f898bbc0b018227f4cd11306bf4e13d265b1660103464736f6c63430007050033000000000000000000000000b46f8cf42e504efe8bef895f848741daa55e9f1d

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101005760003560e01c806354fd4d5011610097578063a457c2d711610066578063a457c2d714610309578063a9059cbb14610335578063aca345ee14610361578063dd62ed3e1461038557610100565b806354fd4d50146102a757806370a08231146102af57806395d89b41146102d55780639dc29fac146102dd57610100565b8063313ce567116100d3578063313ce56714610212578063395093511461023057806340c10f191461025c57806342966c681461028a57610100565b806306fdde0314610105578063095ea7b31461018257806318160ddd146101c257806323b872dd146101dc575b600080fd5b61010d6103b3565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561014757818101518382015260200161012f565b50505050905090810190601f1680156101745780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101ae6004803603604081101561019857600080fd5b506001600160a01b0381351690602001356103de565b604080519115158252519081900360200190f35b6101ca6103f5565b60408051918252519081900360200190f35b6101ae600480360360608110156101f257600080fd5b506001600160a01b038135811691602081013590911690604001356103fb565b61021a61060e565b6040805160ff9092168252519081900360200190f35b6101ae6004803603604081101561024657600080fd5b506001600160a01b038135169060200135610613565b6102886004803603604081101561027257600080fd5b506001600160a01b038135169060200135610649565b005b610288600480360360208110156102a057600080fd5b5035610806565b61010d6108d8565b6101ca600480360360208110156102c557600080fd5b50356001600160a01b03166108f5565b61010d610907565b610288600480360360408110156102f357600080fd5b506001600160a01b038135169060200135610927565b6101ae6004803603604081101561031f57600080fd5b506001600160a01b038135169060200135610a06565b6101ae6004803603604081101561034b57600080fd5b506001600160a01b038135169060200135610a3c565b610369610a50565b604080516001600160a01b039092168252519081900360200190f35b6101ca6004803603604081101561039b57600080fd5b506001600160a01b0381358116916020013516610a5f565b6040518060400160405280600f81526020016e2aa9a2281029ba30b13632b1b7b4b760891b81525081565b60006103eb338484610a7c565b5060015b92915050565b60015481565b60006001600160a01b038316610458576040805162461bcd60e51b815260206004820152601b60248201527f556e69742050726f746f636f6c3a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b6001600160a01b0384166000908152600260205260409020548211156104af5760405162461bcd60e51b8152600401808060200182810382526023815260200180610c196023913960400191505060405180910390fd5b6001600160a01b038416331461055b576001600160a01b03841660009081526003602090815260408083203384529091529020548211156105215760405162461bcd60e51b8152600401808060200182810382526025815260200180610c3c6025913960400191505060405180910390fd5b6001600160a01b03841660009081526003602090815260408083203380855292529091205461055b9186916105569086610b68565b610a7c565b6001600160a01b03841660009081526002602052604090205461057e9083610b68565b6001600160a01b0380861660009081526002602052604080822093909355908516815220546105ad9083610b7a565b6001600160a01b0380851660008181526002602090815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060019392505050565b601281565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916103eb9185906105569086610b7a565b60008054906101000a90046001600160a01b03166001600160a01b031663fbfa77cf6040518163ffffffff1660e01b815260040160206040518083038186803b15801561069557600080fd5b505afa1580156106a9573d6000803e3d6000fd5b505050506040513d60208110156106bf57600080fd5b50516001600160a01b0316331461071a576040805162461bcd60e51b815260206004820152601a602482015279155b9a5d08141c9bdd1bd8dbdb0e881055551217d1905253115160321b604482015290519081900360640190fd5b6001600160a01b038216610775576040805162461bcd60e51b815260206004820152601b60248201527f556e69742050726f746f636f6c3a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b6001600160a01b0382166000908152600260205260409020546107989082610b7a565b6001600160a01b0383166000908152600260205260409020556001546107be9082610b7a565b6001556040805182815290516001600160a01b038416916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6000546040805163f3ae241560e01b815233600482015290516001600160a01b039092169163f3ae241591602480820192602092909190829003018186803b15801561085157600080fd5b505afa158015610865573d6000803e3d6000fd5b505050506040513d602081101561087b57600080fd5b50516108cb576040805162461bcd60e51b815260206004820152601a602482015279155b9a5d08141c9bdd1bd8dbdb0e881055551217d1905253115160321b604482015290519081900360640190fd5b6108d53382610b87565b50565b604051806040016040528060018152602001603160f81b81525081565b60026020526000908152604090205481565b604051806040016040528060048152602001630555344560e41b81525081565b60008054906101000a90046001600160a01b03166001600160a01b031663fbfa77cf6040518163ffffffff1660e01b815260040160206040518083038186803b15801561097357600080fd5b505afa158015610987573d6000803e3d6000fd5b505050506040513d602081101561099d57600080fd5b50516001600160a01b031633146109f8576040805162461bcd60e51b815260206004820152601a602482015279155b9a5d08141c9bdd1bd8dbdb0e881055551217d1905253115160321b604482015290519081900360640190fd5b610a028282610b87565b5050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916103eb9185906105569086610b68565b6000610a493384846103fb565b9392505050565b6000546001600160a01b031681565b600360209081526000928352604080842090915290825290205481565b6001600160a01b038316610ac15760405162461bcd60e51b815260040180806020018281038252602c815260200180610c8b602c913960400191505060405180910390fd5b6001600160a01b038216610b065760405162461bcd60e51b815260040180806020018281038252602a815260200180610c61602a913960400191505060405180910390fd5b6001600160a01b03808416600081815260036020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600082821115610b7457fe5b50900390565b818101828110156103ef57fe5b6001600160a01b038216600090815260026020526040902054610baa9082610b68565b6001600160a01b038316600090815260026020526040902055600154610bd09082610b68565b6001556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3505056fe556e69742050726f746f636f6c3a20494e53554646494349454e545f42414c414e4345556e69742050726f746f636f6c3a20494e53554646494349454e545f414c4c4f57414e4345556e69742050726f746f636f6c3a20617070726f766520746f20746865207a65726f2061646472657373556e69742050726f746f636f6c3a20617070726f76652066726f6d20746865207a65726f2061646472657373a26469706673582212206725cb1bab781f2cc17b3f898bbc0b018227f4cd11306bf4e13d265b1660103464736f6c63430007050033

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

000000000000000000000000b46f8cf42e504efe8bef895f848741daa55e9f1d

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

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


Deployed Bytecode Sourcemap

7870:6271:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7957:47;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12053:149;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;12053:149:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;8275:23;;;:::i;:::-;;;;;;;;;;;;;;;;11030:648;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;11030:648:0;;;;;;;;;;;;;;;;;:::i;8204:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12611:209;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;12611:209:0;;;;;;;;:::i;9273:285::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9273:285:0;;;;;;;;:::i;:::-;;9783:92;;;;;;;;;;;;;;;;-1:-1:-1;9783:92:0;;:::i;8117:36::-;;;:::i;8339:41::-;;;;;;;;;;;;;;;;-1:-1:-1;8339:41:0;-1:-1:-1;;;;;8339:41:0;;:::i;8041:38::-;;;:::i;10166:98::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10166:98:0;;;;;;;;:::i;13323:219::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;13323:219:0;;;;;;;;:::i;10596:129::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10596:129:0;;;;;;;;:::i;340:38::-;;;:::i;:::-;;;;-1:-1:-1;;;;;340:38:0;;;;;;;;;;;;;;8421:61;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8421:61:0;;;;;;;;;;:::i;7957:47::-;;;;;;;;;;;;;;-1:-1:-1;;;7957:47:0;;;;:::o;12053:149::-;12118:4;12135:37;12144:10;12156:7;12165:6;12135:8;:37::i;:::-;-1:-1:-1;12190:4:0;12053:149;;;;;:::o;8275:23::-;;;;:::o;11030:648::-;11107:4;-1:-1:-1;;;;;11132:16:0;;11124:56;;;;;-1:-1:-1;;;11124:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11199:15:0;;;;;;:9;:15;;;;;;:25;-1:-1:-1;11199:25:0;11191:73;;;;-1:-1:-1;;;11191:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11281:18:0;;11289:10;11281:18;11277:220;;-1:-1:-1;;;;;11324:15:0;;;;;;:9;:15;;;;;;;;11340:10;11324:27;;;;;;;;:37;-1:-1:-1;11324:37:0;11316:87;;;;-1:-1:-1;;;11316:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11445:15:0;;;;;;:9;:15;;;;;;;;11433:10;11445:27;;;;;;;;;11418:67;;11427:4;;11445:39;;11477:6;11445:31;:39::i;:::-;11418:8;:67::i;:::-;-1:-1:-1;;;;;11525:15:0;;;;;;:9;:15;;;;;;:27;;11545:6;11525:19;:27::i;:::-;-1:-1:-1;;;;;11507:15:0;;;;;;;:9;:15;;;;;;:45;;;;11579:13;;;;;;;:25;;11597:6;11579:17;:25::i;:::-;-1:-1:-1;;;;;11563:13:0;;;;;;;:9;:13;;;;;;;;;:41;;;;11622:26;;;;;;;11563:13;;11622:26;;;;;;;;;;;;;-1:-1:-1;11666:4:0;11030:648;;;;;:::o;8204:35::-;8237:2;8204:35;:::o;12611:209::-;12722:10;12696:4;12743:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;12743:30:0;;;;;;;;;;12696:4;;12713:77;;12734:7;;12743:46;;12778:10;12743:34;:46::i;9273:285::-;976:15;;;;;;;;-1:-1:-1;;;;;976:15:0;-1:-1:-1;;;;;976:21:0;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;976:23:0;-1:-1:-1;;;;;962:37:0;:10;:37;954:76;;;;;-1:-1:-1;;;954:76:0;;;;;;;;;;;;-1:-1:-1;;;954:76:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;9350:16:0;::::1;9342:56;;;::::0;;-1:-1:-1;;;9342:56:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;;;;;9427:13:0;::::1;;::::0;;;:9:::1;:13;::::0;;;;;:25:::1;::::0;9445:6;9427:17:::1;:25::i;:::-;-1:-1:-1::0;;;;;9411:13:0;::::1;;::::0;;;:9:::1;:13;::::0;;;;:41;9477:11:::1;::::0;:23:::1;::::0;9493:6;9477:15:::1;:23::i;:::-;9463:11;:37:::0;9518:32:::1;::::0;;;;;;;-1:-1:-1;;;;;9518:32:0;::::1;::::0;9535:1:::1;::::0;9518:32:::1;::::0;;;;::::1;::::0;;::::1;9273:285:::0;;:::o;9783:92::-;583:15;;:37;;;-1:-1:-1;;;583:37:0;;609:10;583:37;;;;;;-1:-1:-1;;;;;583:15:0;;;;:25;;:37;;;;;;;;;;;;;;;:15;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;583:37:0;575:76;;;;;-1:-1:-1;;;575:76:0;;;;;;;;;;;;-1:-1:-1;;;575:76:0;;;;;;;;;;;;;;;9842:25:::1;9848:10;9860:6;9842:5;:25::i;:::-;9783:92:::0;:::o;8117:36::-;;;;;;;;;;;;;;-1:-1:-1;;;8117:36:0;;;;:::o;8339:41::-;;;;;;;;;;;;;:::o;8041:38::-;;;;;;;;;;;;;;-1:-1:-1;;;8041:38:0;;;;:::o;10166:98::-;976:15;;;;;;;;-1:-1:-1;;;;;976:15:0;-1:-1:-1;;;;;976:21:0;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;976:23:0;-1:-1:-1;;;;;962:37:0;:10;:37;954:76;;;;;-1:-1:-1;;;954:76:0;;;;;;;;;;;;-1:-1:-1;;;954:76:0;;;;;;;;;;;;;;;10237:19:::1;10243:4;10249:6;10237:5;:19::i;:::-;10166:98:::0;;:::o;13323:219::-;13439:10;13413:4;13460:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;13460:30:0;;;;;;;;;;13413:4;;13430:82;;13451:7;;13460:51;;13495:15;13460:34;:51::i;10596:129::-;10657:4;10681:36;10694:10;10706:2;10710:6;10681:12;:36::i;:::-;10674:43;10596:129;-1:-1:-1;;;10596:129:0:o;340:38::-;;;-1:-1:-1;;;;;340:38:0;;:::o;8421:61::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;13550:357::-;-1:-1:-1;;;;;13649:19:0;;13641:76;;;;-1:-1:-1;;;13641:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13736:21:0;;13728:76;;;;-1:-1:-1;;;13728:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13817:16:0;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:34;;;13867:32;;;;;;;;;;;;;;;;;13550:357;;;:::o;7268:123::-;7326:7;7358:1;7353;:6;;7346:14;;;;-1:-1:-1;7378:5:0;;;7268:123::o;7466:141::-;7550:5;;;7573:6;;;;7566:14;;;13915:223;-1:-1:-1;;;;;14003:15:0;;;;;;:9;:15;;;;;;:27;;14023:6;14003:19;:27::i;:::-;-1:-1:-1;;;;;13985:15:0;;;;;;:9;:15;;;;;:45;14055:11;;:23;;14071:6;14055:15;:23::i;:::-;14041:11;:37;14096:34;;;;;;;;14119:1;;-1:-1:-1;;;;;14096:34:0;;;;;;;;;;;;13915:223;;:::o

Swarm Source

ipfs://6725cb1bab781f2cc17b3f898bbc0b018227f4cd11306bf4e13d265b16601034
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.