More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 573 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer | 20632712 | 546 days ago | IN | 0 ETH | 0.00023899 | ||||
| Transfer | 20418947 | 576 days ago | IN | 0 ETH | 0.00169141 | ||||
| Transfer | 20185707 | 609 days ago | IN | 0 ETH | 0.00102112 | ||||
| Redeem Underlyin... | 19858602 | 654 days ago | IN | 0 ETH | 0.00066327 | ||||
| Transfer | 19853390 | 655 days ago | IN | 0 ETH | 0.00082065 | ||||
| Delegate | 18918940 | 786 days ago | IN | 0 ETH | 0.00190096 | ||||
| Delegate | 18911471 | 787 days ago | IN | 0 ETH | 0.00093088 | ||||
| Transfer | 17799712 | 943 days ago | IN | 0 ETH | 0.00523587 | ||||
| Redeem Underlyin... | 16679487 | 1101 days ago | IN | 0 ETH | 0.00637916 | ||||
| Mint | 16385961 | 1142 days ago | IN | 0 ETH | 0.00731154 | ||||
| Delegate | 16175034 | 1171 days ago | IN | 0 ETH | 0.00127223 | ||||
| Mint | 16175013 | 1171 days ago | IN | 0 ETH | 0.00293657 | ||||
| Delegate | 15457254 | 1273 days ago | IN | 0 ETH | 0.00069244 | ||||
| Mint | 15385594 | 1285 days ago | IN | 0 ETH | 0.00239532 | ||||
| Redeem Underlyin... | 15035812 | 1340 days ago | IN | 0 ETH | 0.00980937 | ||||
| Mint | 14416457 | 1440 days ago | IN | 0 ETH | 0.00653724 | ||||
| Redeem | 13964125 | 1510 days ago | IN | 0 ETH | 0.01930467 | ||||
| Redeem | 13957734 | 1511 days ago | IN | 0 ETH | 0.02857707 | ||||
| Mint | 13943388 | 1513 days ago | IN | 0 ETH | 0.0213501 | ||||
| Redeem | 13939990 | 1514 days ago | IN | 0 ETH | 0.01885782 | ||||
| Redeem | 13938182 | 1514 days ago | IN | 0 ETH | 0.02011112 | ||||
| Mint | 13937938 | 1514 days ago | IN | 0 ETH | 0.02221042 | ||||
| Redeem Underlyin... | 13510682 | 1581 days ago | IN | 0 ETH | 0.03269924 | ||||
| Mint | 13510479 | 1581 days ago | IN | 0 ETH | 0.03392727 | ||||
| Mint | 13491743 | 1584 days ago | IN | 0 ETH | 0.01747753 |
Latest 1 internal transaction
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| - | 11510514 | 1891 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
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
Contract ABI
API[{"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
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ 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.