Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
228,376,192.482619082910575033 pPIE
Holders
128
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
856,750 pPIEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
PPIEDelegator
Compiler Version
v0.7.4+commit.3f05b770
Contract Source Code (Solidity Standard Json-Input format)
pragma solidity ^0.7.4; import "./ProxyWithRegistry.sol"; import "./RegistryInterface.sol"; import "./ErrorReporter.sol"; /** * @title DeFiPie's PPIEDelegator Contract * @notice PPIE which wrap an EIP-20 underlying and delegate to an implementation * @author DeFiPie */ contract PPIEDelegator is ImplementationStorage, ProxyWithRegistry, TokenErrorReporter { /** * @notice Emitted when implementation is changed */ event NewImplementation(address oldImplementation, address newImplementation); /** * @notice Construct a new money market * @param underlying_ The address of the underlying asset * @param pPIEImplementation_ The address of the PPIEImplementation * @param controller_ The address of the Controller * @param interestRateModel_ The address of the interest rate model * @param initialExchangeRateMantissa_ The initial exchange rate, scaled by 1e18 * @param initialReserveFactorMantissa_ The initial reserve factor, scaled by 1e18 * @param name_ ERC-20 name of this token * @param symbol_ ERC-20 symbol of this token * @param decimals_ ERC-20 decimal precision of this token * @param registry_ The address of the registry contract */ constructor( address underlying_, address pPIEImplementation_, address controller_, address interestRateModel_, uint initialExchangeRateMantissa_, uint initialReserveFactorMantissa_, string memory name_, string memory symbol_, uint8 decimals_, address registry_ ) { // Set registry _setRegistry(registry_); _setImplementation(pPIEImplementation_); // First delegate gets to initialize the delegator (i.e. storage contract) delegateTo(implementation, abi.encodeWithSignature("initialize(address,address,address,address,uint256,uint256,string,string,uint8)", underlying_, registry_, controller_, interestRateModel_, initialExchangeRateMantissa_, initialReserveFactorMantissa_, name_, symbol_, decimals_)); } /** * @notice Internal method to delegate execution to another contract * @dev It returns to the external caller whatever the implementation returns or forwards reverts * @param callee The contract to delegatecall * @param data The raw data to delegatecall * @return The returned bytes from the delegatecall */ function delegateTo(address callee, bytes memory data) internal returns (bytes memory) { (bool success, bytes memory returnData) = callee.delegatecall(data); assembly { if eq(success, 0) { revert(add(returnData, 0x20), returndatasize()) } } return returnData; } function delegateAndReturn() internal returns (bytes memory) { (bool success, ) = implementation.delegatecall(msg.data); assembly { let free_mem_ptr := mload(0x40) returndatacopy(free_mem_ptr, 0, returndatasize()) switch success case 0 { revert(free_mem_ptr, returndatasize()) } default { return(free_mem_ptr, returndatasize()) } } } /** * @notice Delegates execution to an implementation contract * @dev It returns to the external caller whatever the implementation returns or forwards reverts */ fallback() external payable { require(msg.value == 0,"PPIEDelegator:fallback: cannot send value to fallback"); // delegate all other functions to current implementation delegateAndReturn(); } receive() external payable { require(msg.value == 0,"PPIEDelegator:receive: cannot send value to receive"); } function setImplementation(address newImplementation) external returns(uint) { if (msg.sender != RegistryInterface(registry).admin()) { return fail(Error.UNAUTHORIZED, FailureInfo.SET_NEW_IMPLEMENTATION); } address oldImplementation = implementation; _setImplementation(newImplementation); emit NewImplementation(oldImplementation, implementation); return(uint(Error.NO_ERROR)); } }
pragma solidity ^0.7.4; contract ControllerErrorReporter { enum Error { NO_ERROR, UNAUTHORIZED, CONTROLLER_MISMATCH, INSUFFICIENT_SHORTFALL, INSUFFICIENT_LIQUIDITY, INVALID_CLOSE_FACTOR, INVALID_COLLATERAL_FACTOR, INVALID_LIQUIDATION_INCENTIVE, MARKET_NOT_ENTERED, // no longer possible MARKET_NOT_LISTED, MARKET_ALREADY_LISTED, MATH_ERROR, NONZERO_BORROW_BALANCE, PRICE_ERROR, PRICE_UPDATE_ERROR, REJECTION, SNAPSHOT_ERROR, TOO_MANY_ASSETS, TOO_MUCH_REPAY } enum FailureInfo { ACCEPT_ADMIN_PENDING_ADMIN_CHECK, ACCEPT_PENDING_IMPLEMENTATION_ADDRESS_CHECK, EXIT_MARKET_BALANCE_OWED, EXIT_MARKET_REJECTION, SET_CLOSE_FACTOR_OWNER_CHECK, SET_CLOSE_FACTOR_VALIDATION, SET_COLLATERAL_FACTOR_OWNER_CHECK, SET_COLLATERAL_FACTOR_NO_EXISTS, SET_COLLATERAL_FACTOR_VALIDATION, SET_COLLATERAL_FACTOR_WITHOUT_PRICE, SET_IMPLEMENTATION_OWNER_CHECK, SET_LIQUIDATION_INCENTIVE_OWNER_CHECK, SET_LIQUIDATION_INCENTIVE_VALIDATION, SET_MAX_ASSETS_OWNER_CHECK, SET_PAUSE_GUARDIAN_OWNER_CHECK, SET_PENDING_ADMIN_OWNER_CHECK, SET_PENDING_IMPLEMENTATION_OWNER_CHECK, SET_PRICE_ORACLE_OWNER_CHECK, SUPPORT_MARKET_EXISTS, SUPPORT_MARKET_OWNER_CHECK } /** * @dev `error` corresponds to enum Error; `info` corresponds to enum FailureInfo, and `detail` is an arbitrary * contract-specific code that enables us to report opaque error codes from upgradeable contracts. **/ event Failure(uint error, uint info, uint detail); /** * @dev use this when reporting a known error from the money market or a non-upgradeable collaborator */ function fail(Error err, FailureInfo info) internal returns (uint) { emit Failure(uint(err), uint(info), 0); return uint(err); } /** * @dev use this when reporting an opaque error from an upgradeable collaborator contract */ function failOpaque(Error err, FailureInfo info, uint opaqueError) internal returns (uint) { emit Failure(uint(err), uint(info), opaqueError); return uint(err); } } contract TokenErrorReporter { enum Error { NO_ERROR, UNAUTHORIZED, BAD_INPUT, CONTROLLER_REJECTION, CONTROLLER_CALCULATION_ERROR, INTEREST_RATE_MODEL_ERROR, INVALID_ACCOUNT_PAIR, INVALID_CLOSE_AMOUNT_REQUESTED, INVALID_COLLATERAL_FACTOR, MATH_ERROR, MARKET_NOT_FRESH, MARKET_NOT_LISTED, TOKEN_INSUFFICIENT_ALLOWANCE, TOKEN_INSUFFICIENT_BALANCE, TOKEN_INSUFFICIENT_CASH, TOKEN_TRANSFER_IN_FAILED, TOKEN_TRANSFER_OUT_FAILED } /* * Note: FailureInfo (but not Error) is kept in alphabetical order * This is because FailureInfo grows significantly faster, and * the order of Error has some meaning, while the order of FailureInfo * is entirely arbitrary. */ enum FailureInfo { ACCEPT_ADMIN_PENDING_ADMIN_CHECK, ACCRUE_INTEREST_ACCUMULATED_INTEREST_CALCULATION_FAILED, ACCRUE_INTEREST_BORROW_RATE_CALCULATION_FAILED, ACCRUE_INTEREST_NEW_BORROW_INDEX_CALCULATION_FAILED, ACCRUE_INTEREST_NEW_TOTAL_BORROWS_CALCULATION_FAILED, ACCRUE_INTEREST_NEW_TOTAL_RESERVES_CALCULATION_FAILED, ACCRUE_INTEREST_SIMPLE_INTEREST_FACTOR_CALCULATION_FAILED, BORROW_ACCUMULATED_BALANCE_CALCULATION_FAILED, BORROW_ACCRUE_INTEREST_FAILED, BORROW_CASH_NOT_AVAILABLE, BORROW_FRESHNESS_CHECK, BORROW_NEW_TOTAL_BALANCE_CALCULATION_FAILED, BORROW_NEW_ACCOUNT_BORROW_BALANCE_CALCULATION_FAILED, BORROW_MARKET_NOT_LISTED, BORROW_CONTROLLER_REJECTION, LIQUIDATE_ACCRUE_BORROW_INTEREST_FAILED, LIQUIDATE_ACCRUE_COLLATERAL_INTEREST_FAILED, LIQUIDATE_COLLATERAL_FRESHNESS_CHECK, LIQUIDATE_CONTROLLER_REJECTION, LIQUIDATE_CONTROLLER_CALCULATE_AMOUNT_SEIZE_FAILED, LIQUIDATE_CLOSE_AMOUNT_IS_UINT_MAX, LIQUIDATE_CLOSE_AMOUNT_IS_ZERO, LIQUIDATE_FRESHNESS_CHECK, LIQUIDATE_LIQUIDATOR_IS_BORROWER, LIQUIDATE_REPAY_BORROW_FRESH_FAILED, LIQUIDATE_SEIZE_BALANCE_INCREMENT_FAILED, LIQUIDATE_SEIZE_BALANCE_DECREMENT_FAILED, LIQUIDATE_SEIZE_CONTROLLER_REJECTION, LIQUIDATE_SEIZE_LIQUIDATOR_IS_BORROWER, LIQUIDATE_SEIZE_TOO_MUCH, MINT_ACCRUE_INTEREST_FAILED, MINT_CONTROLLER_REJECTION, MINT_EXCHANGE_CALCULATION_FAILED, MINT_EXCHANGE_RATE_READ_FAILED, MINT_FRESHNESS_CHECK, MINT_NEW_ACCOUNT_BALANCE_CALCULATION_FAILED, MINT_NEW_TOTAL_SUPPLY_CALCULATION_FAILED, MINT_TRANSFER_IN_FAILED, MINT_TRANSFER_IN_NOT_POSSIBLE, REDEEM_ACCRUE_INTEREST_FAILED, REDEEM_CONTROLLER_REJECTION, REDEEM_EXCHANGE_TOKENS_CALCULATION_FAILED, REDEEM_EXCHANGE_AMOUNT_CALCULATION_FAILED, REDEEM_EXCHANGE_RATE_READ_FAILED, REDEEM_FRESHNESS_CHECK, REDEEM_NEW_ACCOUNT_BALANCE_CALCULATION_FAILED, REDEEM_NEW_TOTAL_SUPPLY_CALCULATION_FAILED, REDEEM_TRANSFER_OUT_NOT_POSSIBLE, REDUCE_RESERVES_ACCRUE_INTEREST_FAILED, REDUCE_RESERVES_ADMIN_CHECK, REDUCE_RESERVES_CASH_NOT_AVAILABLE, REDUCE_RESERVES_FRESH_CHECK, REDUCE_RESERVES_VALIDATION, REPAY_BEHALF_ACCRUE_INTEREST_FAILED, REPAY_BORROW_ACCRUE_INTEREST_FAILED, REPAY_BORROW_ACCUMULATED_BALANCE_CALCULATION_FAILED, REPAY_BORROW_CONTROLLER_REJECTION, REPAY_BORROW_FRESHNESS_CHECK, REPAY_BORROW_NEW_ACCOUNT_BORROW_BALANCE_CALCULATION_FAILED, REPAY_BORROW_NEW_TOTAL_BALANCE_CALCULATION_FAILED, REPAY_BORROW_TRANSFER_IN_NOT_POSSIBLE, SET_COLLATERAL_FACTOR_OWNER_CHECK, SET_COLLATERAL_FACTOR_VALIDATION, SET_CONTROLLER_OWNER_CHECK, SET_INTEREST_RATE_MODEL_ACCRUE_INTEREST_FAILED, SET_INTEREST_RATE_MODEL_FRESH_CHECK, SET_INTEREST_RATE_MODEL_OWNER_CHECK, SET_MAX_ASSETS_OWNER_CHECK, SET_ORACLE_MARKET_NOT_LISTED, SET_PENDING_ADMIN_OWNER_CHECK, SET_RESERVE_FACTOR_ACCRUE_INTEREST_FAILED, SET_RESERVE_FACTOR_ADMIN_CHECK, SET_RESERVE_FACTOR_FRESH_CHECK, SET_RESERVE_FACTOR_BOUNDS_CHECK, TRANSFER_CONTROLLER_REJECTION, TRANSFER_NOT_ALLOWED, TRANSFER_NOT_ENOUGH, TRANSFER_TOO_MUCH, ADD_RESERVES_ACCRUE_INTEREST_FAILED, ADD_RESERVES_FRESH_CHECK, ADD_RESERVES_TRANSFER_IN_NOT_POSSIBLE, SET_NEW_IMPLEMENTATION } /** * @dev `error` corresponds to enum Error; `info` corresponds to enum FailureInfo, and `detail` is an arbitrary * contract-specific code that enables us to report opaque error codes from upgradeable contracts. **/ event Failure(uint error, uint info, uint detail); /** * @dev use this when reporting a known error from the money market or a non-upgradeable collaborator */ function fail(Error err, FailureInfo info) internal returns (uint) { emit Failure(uint(err), uint(info), 0); return uint(err); } /** * @dev use this when reporting an opaque error from an upgradeable collaborator contract */ function failOpaque(Error err, FailureInfo info, uint opaqueError) internal returns (uint) { emit Failure(uint(err), uint(info), opaqueError); return uint(err); } } contract OracleErrorReporter { enum Error { NO_ERROR, UNAUTHORIZED, UPDATE_PRICE } enum FailureInfo { ACCEPT_ADMIN_PENDING_ADMIN_CHECK, NO_RESERVES, PERIOD_NOT_ELAPSED, SET_NEW_ADDRESSES, SET_NEW_IMPLEMENTATION, SET_PENDING_ADMIN_OWNER_CHECK } /** * @dev `error` corresponds to enum Error; `info` corresponds to enum FailureInfo, and `detail` is an arbitrary * contract-specific code that enables us to report opaque error codes from upgradeable contracts. **/ event Failure(uint error, uint info, uint detail); /** * @dev use this when reporting a known error from the money market or a non-upgradeable collaborator */ function fail(Error err, FailureInfo info) internal returns (uint) { emit Failure(uint(err), uint(info), 0); return uint(err); } } contract FactoryErrorReporter { enum Error { NO_ERROR, INVALID_POOL, MARKET_NOT_LISTED, UNAUTHORIZED } //TODO: Add more cases enum FailureInfo { ACCEPT_ADMIN_PENDING_ADMIN_CHECK, CREATE_PETH_POOL, CREATE_PPIE_POOL, DEFICIENCY_ETH_LIQUIDITY_IN_POOL, PAIR_IS_NOT_EXIST, SET_MIN_LIQUIDITY_OWNER_CHECK, SET_NEW_CONTROLLER, SET_NEW_EXCHANGE_RATE, SET_NEW_IMPLEMENTATION, SET_NEW_INTEREST_RATE_MODEL, SET_NEW_ORACLE, SET_NEW_RESERVE_FACTOR, SET_PENDING_ADMIN_OWNER_CHECK, SUPPORT_MARKET_BAD_RESULT } /** * @dev `error` corresponds to enum Error; `info` corresponds to enum FailureInfo, and `detail` is an arbitrary * contract-specific code that enables us to report opaque error codes from upgradeable contracts. **/ event Failure(uint error, uint info, uint detail); /** * @dev use this when reporting a known error from the money market or a non-upgradeable collaborator */ function fail(Error err, FailureInfo info) internal returns (uint) { emit Failure(uint(err), uint(info), 0); return uint(err); } } contract RegistryErrorReporter { enum Error { NO_ERROR, UNAUTHORIZED } //TODO: Add more cases enum FailureInfo { ACCEPT_ADMIN_PENDING_ADMIN_CHECK, SET_NEW_IMPLEMENTATION, SET_PENDING_ADMIN_OWNER_CHECK, SET_NEW_FACTORY } /** * @dev `error` corresponds to enum Error; `info` corresponds to enum FailureInfo, and `detail` is an arbitrary * contract-specific code that enables us to report opaque error codes from upgradeable contracts. **/ event Failure(uint error, uint info, uint detail); /** * @dev use this when reporting a known error from the money market or a non-upgradeable collaborator */ function fail(Error err, FailureInfo info) internal returns (uint) { emit Failure(uint(err), uint(info), 0); return uint(err); } }
pragma solidity ^0.7.4; import "./RegistryInterface.sol"; contract ProxyWithRegistryStorage { /** * @notice Address of the registry contract */ address public registry; } abstract contract ProxyWithRegistryInterface is ProxyWithRegistryStorage { function _setRegistry(address _registry) internal virtual; function _pTokenImplementation() internal view virtual returns (address); } contract ProxyWithRegistry is ProxyWithRegistryInterface { /** * Returns actual address of the implementation contract from current registry * @return registry Address of the registry */ function _pTokenImplementation() internal view override returns (address) { return RegistryInterface(registry).pTokenImplementation(); } function _setRegistry(address _registry) internal override { registry = _registry; } } contract ImplementationStorage { address public implementation; function _setImplementation(address implementation_) internal { implementation = implementation_; } }
pragma solidity ^0.7.4; interface RegistryInterface { /** * Returns admin address for cToken contracts * @return admin address */ function admin() external view returns (address payable); /** * Returns address of actual PToken implementation contract * @return Address of contract */ function pTokenImplementation() external view returns (address); function addPToken(address underlying, address pToken) external returns(uint); function addPETH(address pETH_) external returns(uint); function addPPIE(address pPIE_) external returns(uint); }
{ "evmVersion": "istanbul", "libraries": {}, "metadata": { "bytecodeHash": "ipfs", "useLiteralContent": true }, "optimizer": { "enabled": true, "runs": 200 }, "remappings": [], "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"underlying_","type":"address"},{"internalType":"address","name":"pPIEImplementation_","type":"address"},{"internalType":"address","name":"controller_","type":"address"},{"internalType":"address","name":"interestRateModel_","type":"address"},{"internalType":"uint256","name":"initialExchangeRateMantissa_","type":"uint256"},{"internalType":"uint256","name":"initialReserveFactorMantissa_","type":"uint256"},{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"},{"internalType":"address","name":"registry_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"error","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"info","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"detail","type":"uint256"}],"name":"Failure","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldImplementation","type":"address"},{"indexed":false,"internalType":"address","name":"newImplementation","type":"address"}],"name":"NewImplementation","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"setImplementation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405234801561001057600080fd5b50604051610899380380610899833981810160405261014081101561003457600080fd5b815160208301516040808501516060860151608087015160a088015160c0890180519551979996989497939692959194830192918464010000000082111561007b57600080fd5b90830190602082018581111561009057600080fd5b82516401000000008111828201881017156100aa57600080fd5b82525081516020918201929091019080838360005b838110156100d75781810151838201526020016100bf565b50505050905090810190601f1680156101045780820380516001836020036101000a031916815260200191505b506040526020018051604051939291908464010000000082111561012757600080fd5b90830190602082018581111561013c57600080fd5b825164010000000081118282018810171561015657600080fd5b82525081516020918201929091019080838360005b8381101561018357818101518382015260200161016b565b50505050905090810190601f1680156101b05780820380516001836020036101000a031916815260200191505b506040908152602082015191015190925090506101cc8161036a565b6101d58961038c565b61035a60008054906101000a90046001600160a01b03168b838b8b8b8b8b8b8b604051602401808a6001600160a01b03168152602001896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b0316815260200186815260200185815260200180602001806020018460ff168152602001838103835286818151815260200191508051906020019080838360005b8381101561028a578181015183820152602001610272565b50505050905090810190601f1680156102b75780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b838110156102ea5781810151838201526020016102d2565b50505050905090810190601f1680156103175780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529190526020810180516001600160e01b0390811663776fce3960e11b17909152909c506103ae169a5050505050505050505050565b5050505050505050505050610470565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b606060006060846001600160a01b0316846040518082805190602001908083835b602083106103ee5780518252601f1990920191602091820191016103cf565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d806000811461044e576040519150601f19603f3d011682016040523d82523d6000602084013e610453565b606091505b50915091506000821415610468573d60208201fd5b949350505050565b61041a8061047f6000396000f3fe6080604052600436106100385760003560e01c80635c60da1b146100c45780637b103999146100f5578063d784d4261461010a5761007c565b3661007c57341561007a5760405162461bcd60e51b81526004018080602001828103825260338152602001806103b26033913960400191505060405180910390fd5b005b34156100b95760405162461bcd60e51b815260040180806020018281038252603581526020018061037d6035913960400191505060405180910390fd5b6100c161014f565b50005b3480156100d057600080fd5b506100d96101d4565b604080516001600160a01b039092168252519081900360200190f35b34801561010157600080fd5b506100d96101e3565b34801561011657600080fd5b5061013d6004803603602081101561012d57600080fd5b50356001600160a01b03166101f2565b60408051918252519081900360200190f35b60008054604051606092916001600160a01b031690829036908083838082843760405192019450600093509091505080830381855af49150503d80600081146101b4576040519150601f19603f3d011682016040523d82523d6000602084013e6101b9565b606091505b505090506040513d6000823e8180156101d0573d82f35b3d82fd5b6000546001600160a01b031681565b6001546001600160a01b031681565b600154604080516303e1469160e61b815290516000926001600160a01b03169163f851a440916004808301926020929190829003018186803b15801561023757600080fd5b505afa15801561024b573d6000803e3d6000fd5b505050506040513d602081101561026157600080fd5b50516001600160a01b031633146102855761027e600160516102ed565b90506102e8565b6000546001600160a01b031661029a8361035a565b600054604080516001600160a01b038085168252909216602083015280517fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a9281900390910190a160009150505b919050565b60007f45b96fe442630264581b197e84bbada861235052c5a1aadfff9ea4e40a969aa083601081111561031c57fe5b83605181111561032857fe5b604080519283526020830191909152600082820152519081900360600190a182601081111561035357fe5b9392505050565b600080546001600160a01b0319166001600160a01b039290921691909117905556fe5050494544656c656761746f723a66616c6c6261636b3a2063616e6e6f742073656e642076616c756520746f2066616c6c6261636b5050494544656c656761746f723a726563656976653a2063616e6e6f742073656e642076616c756520746f2072656365697665a2646970667358221220b1ecb8af93918fa6eeb841353cb14afb6f39561919bc92239108b629cb1ff56364736f6c63430007040033000000000000000000000000607c794cda77efb21f8848b7910ecf27451ae8420000000000000000000000008e1b56eca63d4bcd61e045a74cb3022dc109ccf600000000000000000000000036de5bbc618a04c9b471208ef52ee2b1f536e92d000000000000000000000000d47d39a66bb4912d127fbfc1b90884fcb354613700000000000000000000000000000000000000000000000000470de4df820000000000000000000000000000000000000000000000000000016345785d8a00000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000120000000000000000000000001135270bbb0627e769a7a2e24f2b2c7f14b3d83a000000000000000000000000000000000000000000000000000000000000000b446546695069652050494500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000047050494500000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106100385760003560e01c80635c60da1b146100c45780637b103999146100f5578063d784d4261461010a5761007c565b3661007c57341561007a5760405162461bcd60e51b81526004018080602001828103825260338152602001806103b26033913960400191505060405180910390fd5b005b34156100b95760405162461bcd60e51b815260040180806020018281038252603581526020018061037d6035913960400191505060405180910390fd5b6100c161014f565b50005b3480156100d057600080fd5b506100d96101d4565b604080516001600160a01b039092168252519081900360200190f35b34801561010157600080fd5b506100d96101e3565b34801561011657600080fd5b5061013d6004803603602081101561012d57600080fd5b50356001600160a01b03166101f2565b60408051918252519081900360200190f35b60008054604051606092916001600160a01b031690829036908083838082843760405192019450600093509091505080830381855af49150503d80600081146101b4576040519150601f19603f3d011682016040523d82523d6000602084013e6101b9565b606091505b505090506040513d6000823e8180156101d0573d82f35b3d82fd5b6000546001600160a01b031681565b6001546001600160a01b031681565b600154604080516303e1469160e61b815290516000926001600160a01b03169163f851a440916004808301926020929190829003018186803b15801561023757600080fd5b505afa15801561024b573d6000803e3d6000fd5b505050506040513d602081101561026157600080fd5b50516001600160a01b031633146102855761027e600160516102ed565b90506102e8565b6000546001600160a01b031661029a8361035a565b600054604080516001600160a01b038085168252909216602083015280517fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a9281900390910190a160009150505b919050565b60007f45b96fe442630264581b197e84bbada861235052c5a1aadfff9ea4e40a969aa083601081111561031c57fe5b83605181111561032857fe5b604080519283526020830191909152600082820152519081900360600190a182601081111561035357fe5b9392505050565b600080546001600160a01b0319166001600160a01b039290921691909117905556fe5050494544656c656761746f723a66616c6c6261636b3a2063616e6e6f742073656e642076616c756520746f2066616c6c6261636b5050494544656c656761746f723a726563656976653a2063616e6e6f742073656e642076616c756520746f2072656365697665a2646970667358221220b1ecb8af93918fa6eeb841353cb14afb6f39561919bc92239108b629cb1ff56364736f6c63430007040033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000607c794cda77efb21f8848b7910ecf27451ae8420000000000000000000000008e1b56eca63d4bcd61e045a74cb3022dc109ccf600000000000000000000000036de5bbc618a04c9b471208ef52ee2b1f536e92d000000000000000000000000d47d39a66bb4912d127fbfc1b90884fcb354613700000000000000000000000000000000000000000000000000470de4df820000000000000000000000000000000000000000000000000000016345785d8a00000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000120000000000000000000000001135270bbb0627e769a7a2e24f2b2c7f14b3d83a000000000000000000000000000000000000000000000000000000000000000b446546695069652050494500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000047050494500000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : underlying_ (address): 0x607C794cDa77efB21F8848B7910ecf27451Ae842
Arg [1] : pPIEImplementation_ (address): 0x8e1b56ecA63D4bCD61E045a74cB3022dC109CCF6
Arg [2] : controller_ (address): 0x36de5Bbc618A04c9B471208Ef52eE2b1F536E92d
Arg [3] : interestRateModel_ (address): 0xd47d39A66bb4912D127fBfC1b90884fCB3546137
Arg [4] : initialExchangeRateMantissa_ (uint256): 20000000000000000
Arg [5] : initialReserveFactorMantissa_ (uint256): 100000000000000000
Arg [6] : name_ (string): DeFiPie PIE
Arg [7] : symbol_ (string): pPIE
Arg [8] : decimals_ (uint8): 18
Arg [9] : registry_ (address): 0x1135270BbB0627e769a7a2e24f2b2C7F14B3d83A
-----Encoded View---------------
14 Constructor Arguments found :
Arg [0] : 000000000000000000000000607c794cda77efb21f8848b7910ecf27451ae842
Arg [1] : 0000000000000000000000008e1b56eca63d4bcd61e045a74cb3022dc109ccf6
Arg [2] : 00000000000000000000000036de5bbc618a04c9b471208ef52ee2b1f536e92d
Arg [3] : 000000000000000000000000d47d39a66bb4912d127fbfc1b90884fcb3546137
Arg [4] : 00000000000000000000000000000000000000000000000000470de4df820000
Arg [5] : 000000000000000000000000000000000000000000000000016345785d8a0000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000140
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000180
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [9] : 0000000000000000000000001135270bbb0627e769a7a2e24f2b2c7f14b3d83a
Arg [10] : 000000000000000000000000000000000000000000000000000000000000000b
Arg [11] : 4465466950696520504945000000000000000000000000000000000000000000
Arg [12] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [13] : 7050494500000000000000000000000000000000000000000000000000000000
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.