ERC-20
Overview
Max Total Supply
69.38308841843753354 pETH
Holders
10
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
23.730106166889247852 pETHValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
PETHDelegator
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 PETHDelegator Contract * @notice PETH which wrap a delegate to an implementation * @author DeFiPie */ contract PETHDelegator is ImplementationStorage, ProxyWithRegistry, TokenErrorReporter { /** * @notice Emitted when implementation is changed */ event NewImplementation(address oldImplementation, address newImplementation); /** * @notice Construct a new money market * @param pETHImplementation_ The address of the PEthImplementation * @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 pETHImplementation_, address controller_, address interestRateModel_, uint initialExchangeRateMantissa_, uint initialReserveFactorMantissa_, string memory name_, string memory symbol_, uint8 decimals_, address registry_ ) { // Set registry _setRegistry(registry_); _setImplementation(pETHImplementation_); // First delegate gets to initialize the delegator (i.e. storage contract) delegateTo(implementation, abi.encodeWithSignature("initialize(address,address,address,uint256,uint256,string,string,uint8)", 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() private 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 { // delegate all other functions to current implementation delegateAndReturn(); } receive() external payable { // delegate all other functions to current implementation delegateAndReturn(); } 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":"pETHImplementation_","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
608060405234801561001057600080fd5b506040516107a53803806107a5833981810160405261012081101561003457600080fd5b815160208301516040808501516060860151608087015160a08801805194519698959793969295919492938201928464010000000082111561007557600080fd5b90830190602082018581111561008a57600080fd5b82516401000000008111828201881017156100a457600080fd5b82525081516020918201929091019080838360005b838110156100d15781810151838201526020016100b9565b50505050905090810190601f1680156100fe5780820380516001836020036101000a031916815260200191505b506040526020018051604051939291908464010000000082111561012157600080fd5b90830190602082018581111561013657600080fd5b825164010000000081118282018810171561015057600080fd5b82525081516020918201929091019080838360005b8381101561017d578181015183820152602001610165565b50505050905090810190601f1680156101aa5780820380516001836020036101000a031916815260200191505b506040908152602082015191015190925090506101c681610352565b6101cf89610374565b61034360008054906101000a90046001600160a01b0316828a8a8a8a8a8a8a60405160240180896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b0316815260200186815260200185815260200180602001806020018460ff168152602001838103835286818151815260200191508051906020019080838360005b8381101561027457818101518382015260200161025c565b50505050905090810190601f1680156102a15780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b838110156102d45781810151838201526020016102bc565b50505050905090810190601f1680156103015780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529190526020810180516001600160e01b03908116639ea21c3d60e01b17909152909b50610396169950505050505050505050565b50505050505050505050610458565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b606060006060846001600160a01b0316846040518082805190602001908083835b602083106103d65780518252601f1990920191602091820191016103b7565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610436576040519150601f19603f3d011682016040523d82523d6000602084013e61043b565b606091505b50915091506000821415610450573d60208201fd5b949350505050565b61033e806104676000396000f3fe6080604052600436106100385760003560e01c80635c60da1b146100505780637b10399914610081578063d784d4261461009657610048565b36610048576100456100db565b50005b6100456100db565b34801561005c57600080fd5b50610065610160565b604080516001600160a01b039092168252519081900360200190f35b34801561008d57600080fd5b5061006561016f565b3480156100a257600080fd5b506100c9600480360360208110156100b957600080fd5b50356001600160a01b031661017e565b60408051918252519081900360200190f35b60008054604051606092916001600160a01b031690829036908083838082843760405192019450600093509091505080830381855af49150503d8060008114610140576040519150601f19603f3d011682016040523d82523d6000602084013e610145565b606091505b505090506040513d6000823e81801561015c573d82f35b3d82fd5b6000546001600160a01b031681565b6001546001600160a01b031681565b600154604080516303e1469160e61b815290516000926001600160a01b03169163f851a440916004808301926020929190829003018186803b1580156101c357600080fd5b505afa1580156101d7573d6000803e3d6000fd5b505050506040513d60208110156101ed57600080fd5b50516001600160a01b031633146102115761020a60016051610279565b9050610274565b6000546001600160a01b0316610226836102e6565b600054604080516001600160a01b038085168252909216602083015280517fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a9281900390910190a160009150505b919050565b60007f45b96fe442630264581b197e84bbada861235052c5a1aadfff9ea4e40a969aa08360108111156102a857fe5b8360518111156102b457fe5b604080519283526020830191909152600082820152519081900360600190a18260108111156102df57fe5b9392505050565b600080546001600160a01b0319166001600160a01b039290921691909117905556fea264697066735822122046b82bce846de6c6eab7b3e560318d4e48e4917ef80dbdfcc2893bcdf659147d64736f6c63430007040033000000000000000000000000b4ef9b695af2ebec032285a6cc0be6a89b56d84100000000000000000000000036de5bbc618a04c9b471208ef52ee2b1f536e92d000000000000000000000000d47d39a66bb4912d127fbfc1b90884fcb354613700000000000000000000000000000000000000000000000000470de4df820000000000000000000000000000000000000000000000000000016345785d8a00000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000120000000000000000000000001135270bbb0627e769a7a2e24f2b2c7f14b3d83a000000000000000000000000000000000000000000000000000000000000000b446546695069652045544800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000047045544800000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106100385760003560e01c80635c60da1b146100505780637b10399914610081578063d784d4261461009657610048565b36610048576100456100db565b50005b6100456100db565b34801561005c57600080fd5b50610065610160565b604080516001600160a01b039092168252519081900360200190f35b34801561008d57600080fd5b5061006561016f565b3480156100a257600080fd5b506100c9600480360360208110156100b957600080fd5b50356001600160a01b031661017e565b60408051918252519081900360200190f35b60008054604051606092916001600160a01b031690829036908083838082843760405192019450600093509091505080830381855af49150503d8060008114610140576040519150601f19603f3d011682016040523d82523d6000602084013e610145565b606091505b505090506040513d6000823e81801561015c573d82f35b3d82fd5b6000546001600160a01b031681565b6001546001600160a01b031681565b600154604080516303e1469160e61b815290516000926001600160a01b03169163f851a440916004808301926020929190829003018186803b1580156101c357600080fd5b505afa1580156101d7573d6000803e3d6000fd5b505050506040513d60208110156101ed57600080fd5b50516001600160a01b031633146102115761020a60016051610279565b9050610274565b6000546001600160a01b0316610226836102e6565b600054604080516001600160a01b038085168252909216602083015280517fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a9281900390910190a160009150505b919050565b60007f45b96fe442630264581b197e84bbada861235052c5a1aadfff9ea4e40a969aa08360108111156102a857fe5b8360518111156102b457fe5b604080519283526020830191909152600082820152519081900360600190a18260108111156102df57fe5b9392505050565b600080546001600160a01b0319166001600160a01b039290921691909117905556fea264697066735822122046b82bce846de6c6eab7b3e560318d4e48e4917ef80dbdfcc2893bcdf659147d64736f6c63430007040033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000b4ef9b695af2ebec032285a6cc0be6a89b56d84100000000000000000000000036de5bbc618a04c9b471208ef52ee2b1f536e92d000000000000000000000000d47d39a66bb4912d127fbfc1b90884fcb354613700000000000000000000000000000000000000000000000000470de4df820000000000000000000000000000000000000000000000000000016345785d8a00000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000120000000000000000000000001135270bbb0627e769a7a2e24f2b2c7f14b3d83a000000000000000000000000000000000000000000000000000000000000000b446546695069652045544800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000047045544800000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : pETHImplementation_ (address): 0xB4EF9B695af2ebEc032285A6CC0be6a89b56d841
Arg [1] : controller_ (address): 0x36de5Bbc618A04c9B471208Ef52eE2b1F536E92d
Arg [2] : interestRateModel_ (address): 0xd47d39A66bb4912D127fBfC1b90884fCB3546137
Arg [3] : initialExchangeRateMantissa_ (uint256): 20000000000000000
Arg [4] : initialReserveFactorMantissa_ (uint256): 100000000000000000
Arg [5] : name_ (string): DeFiPie ETH
Arg [6] : symbol_ (string): pETH
Arg [7] : decimals_ (uint8): 18
Arg [8] : registry_ (address): 0x1135270BbB0627e769a7a2e24f2b2C7F14B3d83A
-----Encoded View---------------
13 Constructor Arguments found :
Arg [0] : 000000000000000000000000b4ef9b695af2ebec032285a6cc0be6a89b56d841
Arg [1] : 00000000000000000000000036de5bbc618a04c9b471208ef52ee2b1f536e92d
Arg [2] : 000000000000000000000000d47d39a66bb4912d127fbfc1b90884fcb3546137
Arg [3] : 00000000000000000000000000000000000000000000000000470de4df820000
Arg [4] : 000000000000000000000000000000000000000000000000016345785d8a0000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000120
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000160
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [8] : 0000000000000000000000001135270bbb0627e769a7a2e24f2b2c7f14b3d83a
Arg [9] : 000000000000000000000000000000000000000000000000000000000000000b
Arg [10] : 4465466950696520455448000000000000000000000000000000000000000000
Arg [11] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [12] : 7045544800000000000000000000000000000000000000000000000000000000
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.