ETH Price: $2,090.49 (-2.83%)
Gas: 0.08 Gwei

Contract

0x1456688345527bE1f37E9e627DA0837D6f08C925
 

More Info

Private Name Tags

TokenTracker

Multichain Info

1 address found via
Transaction Hash
Method
Block
From
To
Transfer245918542026-03-05 14:25:236 hrs ago1772720723IN
Unit Protocol: USDP Stablecoin
0 ETH0.000058561.13184726
Transfer245862672026-03-04 19:44:5924 hrs ago1772653499IN
Unit Protocol: USDP Stablecoin
0 ETH0.000034370.73197434
Transfer245743642026-03-03 3:52:472 days ago1772509967IN
Unit Protocol: USDP Stablecoin
0 ETH0.000053361.03132488
Transfer245729132026-03-02 23:01:352 days ago1772492495IN
Unit Protocol: USDP Stablecoin
0 ETH0.000049471.0537684
Transfer245720582026-03-02 20:10:113 days ago1772482211IN
Unit Protocol: USDP Stablecoin
0 ETH0.00011112.14719357
Transfer245716742026-03-02 18:52:593 days ago1772477579IN
Unit Protocol: USDP Stablecoin
0 ETH0.000061241.3036259
Transfer245714352026-03-02 18:04:593 days ago1772474699IN
Unit Protocol: USDP Stablecoin
0 ETH0.000080671.55898502
Transfer245714322026-03-02 18:04:233 days ago1772474663IN
Unit Protocol: USDP Stablecoin
0 ETH0.000054731.57977746
Transfer245713212026-03-02 17:42:113 days ago1772473331IN
Unit Protocol: USDP Stablecoin
0 ETH0.000068961.33283615
Transfer245712682026-03-02 17:31:353 days ago1772472695IN
Unit Protocol: USDP Stablecoin
0 ETH0.000048411.39732333
Transfer245712252026-03-02 17:22:593 days ago1772472179IN
Unit Protocol: USDP Stablecoin
0 ETH0.000053831.55376755
Transfer245711962026-03-02 17:17:113 days ago1772471831IN
Unit Protocol: USDP Stablecoin
0 ETH0.000079221.53096412
Transfer245710972026-03-02 16:57:113 days ago1772470631IN
Unit Protocol: USDP Stablecoin
0 ETH0.000077641.50050755
Transfer245706282026-03-02 15:22:473 days ago1772464967IN
Unit Protocol: USDP Stablecoin
0 ETH0.000039971.33921877
Transfer245565252026-02-28 16:08:475 days ago1772294927IN
Unit Protocol: USDP Stablecoin
0 ETH0.00005551.07266048
Transfer245557562026-02-28 13:33:115 days ago1772285591IN
Unit Protocol: USDP Stablecoin
0 ETH0.000049751.05973273
Transfer245492072026-02-27 15:37:236 days ago1772206643IN
Unit Protocol: USDP Stablecoin
0 ETH0.000078132.25524906
Transfer245489052026-02-27 14:36:356 days ago1772202995IN
Unit Protocol: USDP Stablecoin
0 ETH0.000074282.1440569
Transfer245485112026-02-27 13:17:476 days ago1772198267IN
Unit Protocol: USDP Stablecoin
0 ETH0.00007412.13877706
Transfer245483742026-02-27 12:50:236 days ago1772196623IN
Unit Protocol: USDP Stablecoin
0 ETH0.000057911.11914209
Transfer245445772026-02-27 0:07:476 days ago1772150867IN
Unit Protocol: USDP Stablecoin
0 ETH0.000105452.03797286
Transfer245442732026-02-26 23:06:596 days ago1772147219IN
Unit Protocol: USDP Stablecoin
0 ETH0.000106472.05773454
Transfer245442382026-02-26 22:59:596 days ago1772146799IN
Unit Protocol: USDP Stablecoin
0 ETH0.000055882.06636104
Transfer245442312026-02-26 22:58:356 days ago1772146715IN
Unit Protocol: USDP Stablecoin
0 ETH0.00010642.05622556
Transfer245442232026-02-26 22:56:596 days ago1772146619IN
Unit Protocol: USDP Stablecoin
0 ETH0.000106682.06221931
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

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

API
[{"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

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

OVERVIEW

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

Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.