Spend less on fees, more on crypto. Buy crypto easily with MoonPay Balance. 20M+ users trust MoonPay worldwide.
Ready to onboard to Ethereum? With MetaMask Portfolio, you're in control.
Don’t invest unless you’re prepared to lose all the money you invest.
Ready to simplify your web3 experience? Try the all-in-one web3 app trusted by millions worldwide.
No gas? No problem. MetaMask Gas Station includes gas fees directly in your quote.
Everyday giveaways up to 100 ETH, Lucky Spins. Deposit BONUS 300% and Cashbacks!
5000+ Slots & Live Casino Games, 50+cryptos. Register with Etherscan and get 760% deposit bonus. Win Big$, withdraw it fast.
Slots, Roulette, Poker & more - Proud sponsors of UFC, Everton & StakeF1 team!
5000+ Slots & Live Casino Games, 50+cryptos. Register with Etherscan and get 760% deposit bonus. Win Big$, withdraw it fast.
Anonymous play on awesome games - sign up now for 25 free jackpot spins - worth $100s!
100s of games, generous bonuses, 20+ years of trusted gaming. Join CryptoWins & start winning today!
Overview
ETH Balance
Eth Value
$0.00Token Holdings
Could not find any matches!
- ERC-20 Tokens (158)0.00022747 PUNKCryptoPunks (PUNK)$27.70@121,769.00607.24372323 1INCH1INCH Token (1INCH)$238.80@0.39320.3776266 ALCXAlchemix (ALCX)$7.26@19.2281.08568598 APEApeCoin (APE)$98.11@1.216.37845795 ANTAragon Netwo... (ANT)$6.33@0.993116.35969854 AXSAxie Infinit... (AXS)$104.05@6.360 BADGERBadger (BADGER)$0.00@4.150.78362645 BALBalancer (BAL)$1.99@2.541 BENDBend Token (BEND)$0.00@0.00050 BRIGHTBright (BRIGHT)$0.00@0.0142.29491339 CARDCardstack (CARD)$0.00@0.00150 LINKChainLink To... (LINK)$0.00@21.281.55730471 cbETHCoinbase Wra... (cbETH)$5,644.01@3,624.220 CVXConvex Token (CVX)$0.00@4.56785.05704006 CTXCryptex (CTX)$12.12@2.39720 DPIDefiPulse In... (DPI)$0.00@141.171 TSUKADejitaru Tsu... (TSUKA)$0.01@0.00690 DFXDFX Token (DFX)$0.00@0.02520 DPXDopex Govern... (DPX)$0.00@18.419.93463791 DYDXdYdX (DYDX)$15.00@1.510 eXRDE-RADIX (eXRD)$0.00@0.02421.05110153 ETH2x-FLIETH 2x Flexi... (ETH2x-...)$20.81@19.79870.09883971 OSEthereans (OS)$0.05@0.485410,433.41265705 EULEuler (EUL)$41,360.80@3.96430 EURAEURA (previo... (EURA)$0.00@1.040.000001 FNTFalcon (FNT)$0.00@0.00719.06469521 BANKFloat Bank (BANK)$382.29@0.53160.0422722 FLOATFloat Protoc... (FLOAT)0 FRAXFrax (FRAX)$0.00@0.99423.60825415 FXSFrax Share (FXS)$14.14@3.920 FTX TokenFTT (FTX To...)$0.00@3.320 GTCGitcoin (GTC)$0.00@0.74640 GFIGoldfinch (GFI)$0.00@1.526,404.38668723 GRTGraph Token (GRT)$1,324.19@0.20680 HOPHop (HOP)$0.00@0.0160.57791891 HMTHuman Token (HMT)$0.03@0.04611.68665447 IDLEIdle (IDLE)$0.98@0.58240.08447535 ILVIlluvium (ILV)$3.35@39.6023.5082981 IMXImmutable X (IMX)$32.44@1.380 IMXImpermax (IMX)0 INDEXIndex (INDEX)$0.00@3.290.01248256 KP3RKeep3rV1 (KP3R)$0.34@26.9793.02779465 LDOLido DAO Tok... (LDO)$172.10@1.850 LOOKSLooksRare To... (LOOKS)$0.00@0.05811.62299635 LRCLoopringCoin... (LRC)$0.33@0.20130 LQTYLQTY (LQTY)$0.00@1.9695300.84748925 MIMMagic Intern... (MIM)$299.91@0.99690 MTAMeta (MTA)$0.00@0.03160 MVIMetaverse In... (MVI)$0.00@35.36790 MILADYMilady Maker (MILADY)$0.00@14,596.220 NMRNumeraire (NMR)$0.00@15.320 OHMOlympus (OHM)$0.00@19.590 oSQTHOpyn Squeeth (oSQTH)$0.00@105.030 OGNOriginToken (OGN)$0.00@0.147650.61492181 PERPPerpetual (PERP)$40.53@0.8008100,680.04026571 QSPQuantstamp (QSP)0.4966 RADRadicle (RAD)$0.65@1.30471,175.42532679 RAIRai Reflex I... (RAI)$3,538.03@3.010 RNDRRender Token (RNDR)$0.00@6.900.00000001 renDOGErenDOGE (renDOG...)$0.00@0.00460 REQRequest (REQ)$0.00@0.11990 RBNRibbon (RBN)$0.00@0.36824,700,003.32082879 SDLSaddle DAO (SDL)0 SHIBSHIBA INU (SHIB)$0.00@0.000 SSVSSV Token (SSV)$0.00@25.280 sETH2StakeWise St... (sETH2)$0.00@3,306.66133.87679227 STGStargateToke... (STG)$46.95@0.35070 stETHstETH (stETH)$0.00@3,338.430 $TRDLStrudel Fina... ($TRDL)$0.00@0.00410 SNXSynthetix Ne... (SNX)$0.00@2.050.00102747 TKXTokenize Emb... (TKX)$0.03@32.32460 TORNTORN Token (TORN)$0.00@8.970.00032847 SOCKSUnisocks Edi... (SOCKS)$0.98@2,980.960 UNIUniswap (UNI)$0.00@13.140.00024493 UBIUniversal Ba... (UBI)$0.00@0.00020 WOOWOO (WOO)$0.00@0.21630 WAMPLWrapped Ampl... (WAMPL)$0.00@19.58020 wNXMWrapped NXM (wNXM)$0.00@73.590 XMONXMON (XMON)$0.00@654.320 YFIyearn.financ... (YFI)$0.00@8,483.600 AAVEAave Token (AAVE)$0.00@322.30106.49149195 BUSDBUSD (BUSD)$106.01@0.99550 COMPCompound (COMP)$0.00@77.640.00000001 cETHCompound Eth... (cETH)$0.00@67.140 CRVCurve DAO To... (CRV)$0.00@0.9096491.80016758 ENSEthereum Nam... (ENS)$16,426.13@33.4046.53 GUSDGemini dolla... (GUSD)$46.45@0.99830 MKRMaker (MKR)$0.00@1,549.891,809.2112547 MATICMatic Token (MATIC)$865.18@0.47820 NEXONexo (NEXO)$0.00@1.33810 RPLRocket Pool (RPL)$0.00@11.800.006525 USDTTether USD (USDT)$0.01@0.99822.162292 USDCUSDC (USDC)$2.16@0.99960.00900496 WBTCWrapped BTC (WBTC)$849.10@94,293.000.98111076 WETHWrapped Ethe... (WETH)$3,279.56@3,342.69670.00570536 wstETHWrapped liqu... (wstETH)$22.63@3,966.8632,500 $ Evmosia.comERC-20: $ E... ($ Evm...)0 BABLBabylon.Finance0 BEDBankless BED Index$0.00@149.89100.00585676 BlueSparrowBlueSparrowToken$2.52@0.02524,390,669.03140189 BRITBONGERC-20: Brit... (BRITBO...)966,016.71068326 Daruma-N3XERC-20: Daru... (Daruma...)20,000,000 COLLARERC-20: DOG ... (COLLAR)2,012.96566653 ELITEERC-20: ELIT... (ELITE)151,730,823,860.558 everybodyERC-20: ever... (everyb...)28,256,613,476.1987 QatarERC-20: FIFA... (Qatar)5,000,000 FTX 2.0ERC-20: FTX ... (FTX 2....)158,735,880.669035 ClimaxERC-20: G1 C... (Climax)30.27438856 GAMMAGamma$1.77@0.05850.02467003 MPLMaple Token$0.41@16.79187,821,908.182019 METAHERC-20: Meta... (METAH)100,000 poscERC-20: pose... (posc)99.90665342 BRRRERC-20: Prin... (BRRR)5,113,807.90448646 BONE2.0ERC-20: Proo... (BONE2....)362.79283379 SAITABITSAITABIT$0.37@0.0010 TCRTracer$0.00@0.00032,411,942.10866104 SHANGAERC-20: Tsuk... (SHANGA)1 UPCUPCX$3.67@3.671,638.28780239 WINTERMUTEERC-20: Wint... (WINTER...)1,481,726.84606226 WORMHOLEERC-20: Worm... (WORMHO...)0 cvxCRVConvex CRV$0.00@0.57480 FIATFixed Income Asset Token0 FLXFlex Ungovernance Token$0.00@4.6360 LYXeLUKSO$0.00@2.67510.00016753 LUSDLUSD Stablecoin$0.00@0.99260 SOSSOS$0.00@0.0019,012.21371122 VEGAVEGA$429.40@0.0226237.34 TokenERC-20 TOKEN*[Suspicious]5,000 TokenERC-20 TOKEN*[Suspicious]35,000 TokenERC-20 TOKEN*[Suspicious]950 TokenERC-20 TOKEN*[Suspicious]0.7 TokenERC-20 TOKEN*[Suspicious]3,894 TokenERC-20 TOKEN*[Suspicious]12,000 TokenERC-20 TOKEN*[Suspicious]5,000 TokenERC-20 TOKEN*[Suspicious]35,000 TokenERC-20 TOKEN*[Suspicious]400 TokenERC-20 TOKEN*[Suspicious]4,214 TokenERC-20 TOKEN*[Suspicious]7,000 TokenERC-20 TOKEN*[Suspicious]7,000 TokenERC-20 TOKEN*[Suspicious]3,894 TokenERC-20 TOKEN*[Suspicious]161,000 TokenERC-20 TOKEN*[Suspicious]350 TokenERC-20 TOKEN*[Suspicious]777 TokenERC-20 TOKEN*[Suspicious]11,285,610.1140682 TokenERC-20 TOKEN*[Suspicious]536 TokenERC-20 TOKEN*[Unsafe]400 TokenERC-20 TOKEN*[Unsafe]7,000 TokenERC-20 TOKEN*[Unsafe]7,000 TokenERC-20 TOKEN*[Unsafe]5,555 TokenERC-20 TOKEN*[Unsafe]0 TokenERC-20 TOKEN*[Unsafe]6,000 TokenERC-20 TOKEN*[Spam]7,000 TokenERC-20 TOKEN*[Spam]3,289 TokenERC-20 TOKEN*[Spam]150 TokenERC-20 TOKEN*[Spam]9,999 TokenERC-20 TOKEN*[Spam]5,555 TokenERC-20 TOKEN*[Spam]3,289 TokenERC-20 TOKEN*[Spam]NFT Tokens (58)zsteth.com : airdrop recipient# zsteth.com : airdrop recipientERC-1155claim rewards on aprgraph.comaprgraph.comERC-1155claim rewards on apyaave.comapyaave.comERC-1155claim rewards on apyclink.comapyclink.comERC-1155claim rewards on dydxnetwork.orgdydxnetwork.orgERC-1155claim rewards on ensfoundation.orgensfoundation.orgERC-1155claim rewards on fraxprotocol.comfraxprotocol.comERC-1155claim rewards on graphtoken.orggraphtoken.orgERC-1155claim rewards illuviumnetwork.netilluviumnetwork.netERC-1155IItemsERC-1155claim rewards on linkrewards.orglinkrewards.orgERC-1155Nft Mint Club CollectionNft Mint Club CollectionERC-1155claim rewards on poolstaked.compoolstaked.comERC-1155claim rewards on renderpool.orgrenderpool.orgERC-1155claim rewards on renderportal.netrenderportal.netERC-1155claim rewards on snxtoken.comsnxtoken.comERC-1155claim rewards on swapshiba.orgswapshiba.orgERC-1155claim rewards on woonetwork.netwoonetwork.netERC-1155claim rewards on wsteth.orgwsteth.orgERC-1155ERC-1155 TOKEN*[Suspicious]ERC-1155 TOKEN*[Suspicious]ERC-1155 TOKEN*[Suspicious]ERC-1155 TOKEN*[Suspicious]ERC-1155 TOKEN*[Suspicious]ERC-1155 TOKEN*[Suspicious]ERC-1155 TOKEN*[Suspicious]ERC-1155 TOKEN*[Suspicious]ERC-1155 TOKEN*[Suspicious]ERC-1155 TOKEN*[Suspicious]ERC-1155 TOKEN*[Suspicious]ERC-1155 TOKEN*[Suspicious]ERC-1155 TOKEN*[Suspicious]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]
More Info
Private Name Tags
ContractCreator
TokenTracker
Multichain Info
1 address found via- Transactions
- Internal Transactions
- Token Transfers (ERC-20)
- NFT Transfers
- Contract
- Events
- Analytics
- Multichain Portfolio
- Cards New
Advanced Filter- Filter by Tx Type:
- Tx
- Internal Tx
- ERC-20
- NFTs
Latest 3 from a total of 3 transactions
Transaction Hash MethodBlockFromToExit Market 16885488 2023-03-22 20:24:47 646 days ago 1679516687 IN 0 ETH$0.00 0.00078417 36.04735679 Exit Market 16885467 2023-03-22 20:20:23 646 days ago 1679516423 IN 0 ETH$0.00 0.00089554 40.76196945 Borrow 16818993 2023-03-13 12:12:35 655 days ago 1678709555 IN 0 ETH$0.00 0.00040074 18.57526886 Latest 25 internal transactions (View All)
Advanced mode:Parent Transaction Hash Block FromTo17027686 2023-04-11 22:06:59 626 days ago 1681250819 Contract Creation 0 ETH$0.00 16617939 2023-02-13 6:06:35 683 days ago 1676268395 Contract Creation 0 ETH$0.00 16617939 2023-02-13 6:06:35 683 days ago 1676268395 Contract Creation 0 ETH$0.00 16464063 2023-01-22 18:13:59 705 days ago 1674411239 Contract Creation 0 ETH$0.00 16464063 2023-01-22 18:13:59 705 days ago 1674411239 Contract Creation 0 ETH$0.00 16385909 2023-01-11 20:20:23 716 days ago 1673468423 Contract Creation 0 ETH$0.00 16385909 2023-01-11 20:20:23 716 days ago 1673468423 Contract Creation 0 ETH$0.00 16358025 2023-01-07 22:55:23 720 days ago 1673132123 Contract Creation 0 ETH$0.00 16358025 2023-01-07 22:55:23 720 days ago 1673132123 Contract Creation 0 ETH$0.00 16293131 2022-12-29 21:34:35 729 days ago 1672349675 Contract Creation 0 ETH$0.00 16293131 2022-12-29 21:34:35 729 days ago 1672349675 Contract Creation 0 ETH$0.00 16246958 2022-12-23 10:55:35 735 days ago 1671792935 Contract Creation 0 ETH$0.00 16246958 2022-12-23 10:55:35 735 days ago 1671792935 Contract Creation 0 ETH$0.00 16224377 2022-12-20 7:20:59 738 days ago 1671520859 Contract Creation 0 ETH$0.00 16224377 2022-12-20 7:20:59 738 days ago 1671520859 Contract Creation 0 ETH$0.00 16217047 2022-12-19 6:47:35 739 days ago 1671432455 Contract Creation 0 ETH$0.00 16217047 2022-12-19 6:47:35 739 days ago 1671432455 Contract Creation 0 ETH$0.00 16074690 2022-11-29 9:15:59 759 days ago 1669713359 Contract Creation 0 ETH$0.00 16074690 2022-11-29 9:15:59 759 days ago 1669713359 Contract Creation 0 ETH$0.00 16064368 2022-11-27 22:41:35 761 days ago 1669588895 Contract Creation 0 ETH$0.00 16064368 2022-11-27 22:41:35 761 days ago 1669588895 Contract Creation 0 ETH$0.00 16046358 2022-11-25 10:19:23 763 days ago 1669371563 Contract Creation 0 ETH$0.00 16046358 2022-11-25 10:19:23 763 days ago 1669371563 Contract Creation 0 ETH$0.00 16026343 2022-11-22 15:08:35 766 days ago 1669129715 Contract Creation 0 ETH$0.00 16026343 2022-11-22 15:08:35 766 days ago 1669129715 Contract Creation 0 ETH$0.00 Loading...LoadingContract Name:Euler
Compiler Versionv0.8.10+commit.fc410830
Optimization Enabled:Yes with 1000000 runs
Other Settings:default evmVersionContract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: GPL-2.0-or-later pragma solidity ^0.8.0; import "./Base.sol"; /// @notice Main storage contract for the Euler system contract Euler is Base { constructor(address admin, address installerModule) { emit Genesis(); reentrancyLock = REENTRANCYLOCK__UNLOCKED; upgradeAdmin = admin; governorAdmin = admin; moduleLookup[MODULEID__INSTALLER] = installerModule; address installerProxy = _createProxy(MODULEID__INSTALLER); trustedSenders[installerProxy].moduleImpl = installerModule; } string public constant name = "Euler Protocol"; /// @notice Lookup the current implementation contract for a module /// @param moduleId Fixed constant that refers to a module type (ie MODULEID__ETOKEN) /// @return An internal address specifies the module's implementation code function moduleIdToImplementation(uint moduleId) external view returns (address) { return moduleLookup[moduleId]; } /// @notice Lookup a proxy that can be used to interact with a module (only valid for single-proxy modules) /// @param moduleId Fixed constant that refers to a module type (ie MODULEID__MARKETS) /// @return An address that should be cast to the appropriate module interface, ie IEulerMarkets(moduleIdToProxy(2)) function moduleIdToProxy(uint moduleId) external view returns (address) { return proxyLookup[moduleId]; } function dispatch() external { uint32 moduleId = trustedSenders[msg.sender].moduleId; address moduleImpl = trustedSenders[msg.sender].moduleImpl; require(moduleId != 0, "e/sender-not-trusted"); if (moduleImpl == address(0)) moduleImpl = moduleLookup[moduleId]; uint msgDataLength = msg.data.length; require(msgDataLength >= (4 + 4 + 20), "e/input-too-short"); assembly { let payloadSize := sub(calldatasize(), 4) calldatacopy(0, 4, payloadSize) mstore(payloadSize, shl(96, caller())) let result := delegatecall(gas(), moduleImpl, 0, add(payloadSize, 20), 0, 0) returndatacopy(0, 0, returndatasize()) switch result case 0 { revert(0, returndatasize()) } default { return(0, returndatasize()) } } } }
// SPDX-License-Identifier: GPL-2.0-or-later pragma solidity ^0.8.0; //import "hardhat/console.sol"; // DEV_MODE import "./Storage.sol"; import "./Events.sol"; import "./Proxy.sol"; abstract contract Base is Storage, Events { // Modules function _createProxy(uint proxyModuleId) internal returns (address) { require(proxyModuleId != 0, "e/create-proxy/invalid-module"); require(proxyModuleId <= MAX_EXTERNAL_MODULEID, "e/create-proxy/internal-module"); // If we've already created a proxy for a single-proxy module, just return it: if (proxyLookup[proxyModuleId] != address(0)) return proxyLookup[proxyModuleId]; // Otherwise create a proxy: address proxyAddr = address(new Proxy()); if (proxyModuleId <= MAX_EXTERNAL_SINGLE_PROXY_MODULEID) proxyLookup[proxyModuleId] = proxyAddr; trustedSenders[proxyAddr] = TrustedSenderInfo({ moduleId: uint32(proxyModuleId), moduleImpl: address(0) }); emit ProxyCreated(proxyAddr, proxyModuleId); return proxyAddr; } function callInternalModule(uint moduleId, bytes memory input) internal returns (bytes memory) { (bool success, bytes memory result) = moduleLookup[moduleId].delegatecall(input); if (!success) revertBytes(result); return result; } // Modifiers modifier nonReentrant() { require(reentrancyLock == REENTRANCYLOCK__UNLOCKED, "e/reentrancy"); reentrancyLock = REENTRANCYLOCK__LOCKED; _; reentrancyLock = REENTRANCYLOCK__UNLOCKED; } modifier reentrantOK() { // documentation only _; } // WARNING: Must be very careful with this modifier. It resets the free memory pointer // to the value it was when the function started. This saves gas if more memory will // be allocated in the future. However, if the memory will be later referenced // (for example because the function has returned a pointer to it) then you cannot // use this modifier. modifier FREEMEM() { uint origFreeMemPtr; assembly { origFreeMemPtr := mload(0x40) } _; /* assembly { // DEV_MODE: overwrite the freed memory with garbage to detect bugs let garbage := 0xDEADBEEFDEADBEEFDEADBEEFDEADBEEFDEADBEEFDEADBEEFDEADBEEFDEADBEEF for { let i := origFreeMemPtr } lt(i, mload(0x40)) { i := add(i, 32) } { mstore(i, garbage) } } */ assembly { mstore(0x40, origFreeMemPtr) } } // Error handling function revertBytes(bytes memory errMsg) internal pure { if (errMsg.length > 0) { assembly { revert(add(32, errMsg), mload(errMsg)) } } revert("e/empty-error"); } }
// SPDX-License-Identifier: GPL-2.0-or-later pragma solidity ^0.8.0; import "./Constants.sol"; abstract contract Storage is Constants { // Dispatcher and upgrades uint reentrancyLock; address upgradeAdmin; address governorAdmin; mapping(uint => address) moduleLookup; // moduleId => module implementation mapping(uint => address) proxyLookup; // moduleId => proxy address (only for single-proxy modules) struct TrustedSenderInfo { uint32 moduleId; // 0 = un-trusted address moduleImpl; // only non-zero for external single-proxy modules } mapping(address => TrustedSenderInfo) trustedSenders; // sender address => moduleId (0 = un-trusted) // Account-level state // Sub-accounts are considered distinct accounts struct AccountStorage { // Packed slot: 1 + 5 + 4 + 20 = 30 uint8 deferLiquidityStatus; uint40 lastAverageLiquidityUpdate; uint32 numMarketsEntered; address firstMarketEntered; uint averageLiquidity; address averageLiquidityDelegate; } mapping(address => AccountStorage) accountLookup; mapping(address => address[MAX_POSSIBLE_ENTERED_MARKETS]) marketsEntered; // Markets and assets struct AssetConfig { // Packed slot: 20 + 1 + 4 + 4 + 3 = 32 address eTokenAddress; bool borrowIsolated; uint32 collateralFactor; uint32 borrowFactor; uint24 twapWindow; } struct UserAsset { uint112 balance; uint144 owed; uint interestAccumulator; } struct AssetStorage { // Packed slot: 5 + 1 + 4 + 12 + 4 + 2 + 4 = 32 uint40 lastInterestAccumulatorUpdate; uint8 underlyingDecimals; // Not dynamic, but put here to live in same storage slot uint32 interestRateModel; int96 interestRate; uint32 reserveFee; uint16 pricingType; uint32 pricingParameters; address underlying; uint96 reserveBalance; address dTokenAddress; uint112 totalBalances; uint144 totalBorrows; uint interestAccumulator; mapping(address => UserAsset) users; mapping(address => mapping(address => uint)) eTokenAllowance; mapping(address => mapping(address => uint)) dTokenAllowance; } mapping(address => AssetConfig) internal underlyingLookup; // underlying => AssetConfig mapping(address => AssetStorage) internal eTokenLookup; // EToken => AssetStorage mapping(address => address) internal dTokenLookup; // DToken => EToken mapping(address => address) internal pTokenLookup; // PToken => underlying mapping(address => address) internal reversePTokenLookup; // underlying => PToken }
// SPDX-License-Identifier: GPL-2.0-or-later pragma solidity ^0.8.0; import "./Storage.sol"; abstract contract Events { event Genesis(); event ProxyCreated(address indexed proxy, uint moduleId); event MarketActivated(address indexed underlying, address indexed eToken, address indexed dToken); event PTokenActivated(address indexed underlying, address indexed pToken); event EnterMarket(address indexed underlying, address indexed account); event ExitMarket(address indexed underlying, address indexed account); event Deposit(address indexed underlying, address indexed account, uint amount); event Withdraw(address indexed underlying, address indexed account, uint amount); event Borrow(address indexed underlying, address indexed account, uint amount); event Repay(address indexed underlying, address indexed account, uint amount); event Liquidation(address indexed liquidator, address indexed violator, address indexed underlying, address collateral, uint repay, uint yield, uint healthScore, uint baseDiscount, uint discount); event TrackAverageLiquidity(address indexed account); event UnTrackAverageLiquidity(address indexed account); event DelegateAverageLiquidity(address indexed account, address indexed delegate); event PTokenWrap(address indexed underlying, address indexed account, uint amount); event PTokenUnWrap(address indexed underlying, address indexed account, uint amount); event AssetStatus(address indexed underlying, uint totalBalances, uint totalBorrows, uint96 reserveBalance, uint poolSize, uint interestAccumulator, int96 interestRate, uint timestamp); event RequestDeposit(address indexed account, uint amount); event RequestWithdraw(address indexed account, uint amount); event RequestMint(address indexed account, uint amount); event RequestBurn(address indexed account, uint amount); event RequestTransferEToken(address indexed from, address indexed to, uint amount); event RequestBorrow(address indexed account, uint amount); event RequestRepay(address indexed account, uint amount); event RequestTransferDToken(address indexed from, address indexed to, uint amount); event RequestLiquidate(address indexed liquidator, address indexed violator, address indexed underlying, address collateral, uint repay, uint minYield); event InstallerSetUpgradeAdmin(address indexed newUpgradeAdmin); event InstallerSetGovernorAdmin(address indexed newGovernorAdmin); event InstallerInstallModule(uint indexed moduleId, address indexed moduleImpl, bytes32 moduleGitCommit); event GovSetAssetConfig(address indexed underlying, Storage.AssetConfig newConfig); event GovSetIRM(address indexed underlying, uint interestRateModel, bytes resetParams); event GovSetPricingConfig(address indexed underlying, uint16 newPricingType, uint32 newPricingParameter); event GovSetReserveFee(address indexed underlying, uint32 newReserveFee); event GovConvertReserves(address indexed underlying, address indexed recipient, uint amount); event RequestSwap(address indexed accountIn, address indexed accountOut, address indexed underlyingIn, address underlyingOut, uint amount, uint swapType); }
// SPDX-License-Identifier: GPL-2.0-or-later pragma solidity ^0.8.0; contract Proxy { address immutable creator; constructor() { creator = msg.sender; } // External interface fallback() external { address creator_ = creator; if (msg.sender == creator_) { assembly { mstore(0, 0) calldatacopy(31, 0, calldatasize()) switch mload(0) // numTopics case 0 { log0(32, sub(calldatasize(), 1)) } case 1 { log1(64, sub(calldatasize(), 33), mload(32)) } case 2 { log2(96, sub(calldatasize(), 65), mload(32), mload(64)) } case 3 { log3(128, sub(calldatasize(), 97), mload(32), mload(64), mload(96)) } case 4 { log4(160, sub(calldatasize(), 129), mload(32), mload(64), mload(96), mload(128)) } default { revert(0, 0) } return(0, 0) } } else { assembly { mstore(0, 0xe9c4a3ac00000000000000000000000000000000000000000000000000000000) // dispatch() selector calldatacopy(4, 0, calldatasize()) mstore(add(4, calldatasize()), shl(96, caller())) let result := call(gas(), creator_, 0, 0, add(24, calldatasize()), 0, 0) returndatacopy(0, 0, returndatasize()) switch result case 0 { revert(0, returndatasize()) } default { return(0, returndatasize()) } } } } }
// SPDX-License-Identifier: GPL-2.0-or-later pragma solidity ^0.8.0; abstract contract Constants { // Universal uint internal constant SECONDS_PER_YEAR = 365.2425 * 86400; // Gregorian calendar // Protocol parameters uint internal constant MAX_SANE_AMOUNT = type(uint112).max; uint internal constant MAX_SANE_SMALL_AMOUNT = type(uint96).max; uint internal constant MAX_SANE_DEBT_AMOUNT = type(uint144).max; uint internal constant INTERNAL_DEBT_PRECISION = 1e9; uint internal constant MAX_ENTERED_MARKETS = 10; // per sub-account uint internal constant MAX_POSSIBLE_ENTERED_MARKETS = 2**32; // limited by size of AccountStorage.numMarketsEntered uint internal constant CONFIG_FACTOR_SCALE = 4_000_000_000; // must fit into a uint32 uint internal constant RESERVE_FEE_SCALE = 4_000_000_000; // must fit into a uint32 uint32 internal constant DEFAULT_RESERVE_FEE = uint32(0.23 * 4_000_000_000); uint internal constant INITIAL_INTEREST_ACCUMULATOR = 1e27; uint internal constant AVERAGE_LIQUIDITY_PERIOD = 24 * 60 * 60; uint16 internal constant MIN_UNISWAP3_OBSERVATION_CARDINALITY = 10; uint24 internal constant DEFAULT_TWAP_WINDOW_SECONDS = 30 * 60; uint32 internal constant DEFAULT_BORROW_FACTOR = uint32(0.28 * 4_000_000_000); // Implementation internals uint internal constant REENTRANCYLOCK__UNLOCKED = 1; uint internal constant REENTRANCYLOCK__LOCKED = 2; uint8 internal constant DEFERLIQUIDITY__NONE = 0; uint8 internal constant DEFERLIQUIDITY__CLEAN = 1; uint8 internal constant DEFERLIQUIDITY__DIRTY = 2; // Pricing types uint16 internal constant PRICINGTYPE__PEGGED = 1; uint16 internal constant PRICINGTYPE__UNISWAP3_TWAP = 2; uint16 internal constant PRICINGTYPE__FORWARDED = 3; // Modules // Public single-proxy modules uint internal constant MODULEID__INSTALLER = 1; uint internal constant MODULEID__MARKETS = 2; uint internal constant MODULEID__LIQUIDATION = 3; uint internal constant MODULEID__GOVERNANCE = 4; uint internal constant MODULEID__EXEC = 5; uint internal constant MODULEID__SWAP = 6; uint internal constant MAX_EXTERNAL_SINGLE_PROXY_MODULEID = 499_999; // Public multi-proxy modules uint internal constant MODULEID__ETOKEN = 500_000; uint internal constant MODULEID__DTOKEN = 500_001; uint internal constant MAX_EXTERNAL_MODULEID = 999_999; // Internal modules uint internal constant MODULEID__RISK_MANAGER = 1_000_000; // Interest rate models // Default for new markets uint internal constant MODULEID__IRM_DEFAULT = 2_000_000; // Testing-only uint internal constant MODULEID__IRM_ZERO = 2_000_001; uint internal constant MODULEID__IRM_FIXED = 2_000_002; uint internal constant MODULEID__IRM_LINEAR = 2_000_100; // Classes uint internal constant MODULEID__IRM_CLASS__STABLE = 2_000_500; uint internal constant MODULEID__IRM_CLASS__MAJOR = 2_000_501; uint internal constant MODULEID__IRM_CLASS__MIDCAP = 2_000_502; // Swap types uint internal constant SWAP_TYPE__UNI_EXACT_INPUT_SINGLE = 1; uint internal constant SWAP_TYPE__UNI_EXACT_INPUT = 2; uint internal constant SWAP_TYPE__UNI_EXACT_OUTPUT_SINGLE = 3; uint internal constant SWAP_TYPE__UNI_EXACT_OUTPUT = 4; uint internal constant SWAP_TYPE__1INCH = 5; }
{ "optimizer": { "enabled": true, "runs": 1000000 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
[{"inputs":[{"internalType":"address","name":"admin","type":"address"},{"internalType":"address","name":"installerModule","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"underlying","type":"address"},{"indexed":false,"internalType":"uint256","name":"totalBalances","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalBorrows","type":"uint256"},{"indexed":false,"internalType":"uint96","name":"reserveBalance","type":"uint96"},{"indexed":false,"internalType":"uint256","name":"poolSize","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"interestAccumulator","type":"uint256"},{"indexed":false,"internalType":"int96","name":"interestRate","type":"int96"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"AssetStatus","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"underlying","type":"address"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Borrow","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"delegate","type":"address"}],"name":"DelegateAverageLiquidity","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"underlying","type":"address"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"underlying","type":"address"},{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"EnterMarket","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"underlying","type":"address"},{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"ExitMarket","type":"event"},{"anonymous":false,"inputs":[],"name":"Genesis","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"underlying","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"GovConvertReserves","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"underlying","type":"address"},{"components":[{"internalType":"address","name":"eTokenAddress","type":"address"},{"internalType":"bool","name":"borrowIsolated","type":"bool"},{"internalType":"uint32","name":"collateralFactor","type":"uint32"},{"internalType":"uint32","name":"borrowFactor","type":"uint32"},{"internalType":"uint24","name":"twapWindow","type":"uint24"}],"indexed":false,"internalType":"struct Storage.AssetConfig","name":"newConfig","type":"tuple"}],"name":"GovSetAssetConfig","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"underlying","type":"address"},{"indexed":false,"internalType":"uint256","name":"interestRateModel","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"resetParams","type":"bytes"}],"name":"GovSetIRM","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"underlying","type":"address"},{"indexed":false,"internalType":"uint16","name":"newPricingType","type":"uint16"},{"indexed":false,"internalType":"uint32","name":"newPricingParameter","type":"uint32"}],"name":"GovSetPricingConfig","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"underlying","type":"address"},{"indexed":false,"internalType":"uint32","name":"newReserveFee","type":"uint32"}],"name":"GovSetReserveFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"moduleId","type":"uint256"},{"indexed":true,"internalType":"address","name":"moduleImpl","type":"address"},{"indexed":false,"internalType":"bytes32","name":"moduleGitCommit","type":"bytes32"}],"name":"InstallerInstallModule","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newGovernorAdmin","type":"address"}],"name":"InstallerSetGovernorAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newUpgradeAdmin","type":"address"}],"name":"InstallerSetUpgradeAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"liquidator","type":"address"},{"indexed":true,"internalType":"address","name":"violator","type":"address"},{"indexed":true,"internalType":"address","name":"underlying","type":"address"},{"indexed":false,"internalType":"address","name":"collateral","type":"address"},{"indexed":false,"internalType":"uint256","name":"repay","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"yield","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"healthScore","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"baseDiscount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"discount","type":"uint256"}],"name":"Liquidation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"underlying","type":"address"},{"indexed":true,"internalType":"address","name":"eToken","type":"address"},{"indexed":true,"internalType":"address","name":"dToken","type":"address"}],"name":"MarketActivated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"underlying","type":"address"},{"indexed":true,"internalType":"address","name":"pToken","type":"address"}],"name":"PTokenActivated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"underlying","type":"address"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"PTokenUnWrap","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"underlying","type":"address"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"PTokenWrap","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"proxy","type":"address"},{"indexed":false,"internalType":"uint256","name":"moduleId","type":"uint256"}],"name":"ProxyCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"underlying","type":"address"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Repay","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RequestBorrow","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RequestBurn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RequestDeposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"liquidator","type":"address"},{"indexed":true,"internalType":"address","name":"violator","type":"address"},{"indexed":true,"internalType":"address","name":"underlying","type":"address"},{"indexed":false,"internalType":"address","name":"collateral","type":"address"},{"indexed":false,"internalType":"uint256","name":"repay","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"minYield","type":"uint256"}],"name":"RequestLiquidate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RequestMint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RequestRepay","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"accountIn","type":"address"},{"indexed":true,"internalType":"address","name":"accountOut","type":"address"},{"indexed":true,"internalType":"address","name":"underlyingIn","type":"address"},{"indexed":false,"internalType":"address","name":"underlyingOut","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"swapType","type":"uint256"}],"name":"RequestSwap","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":"amount","type":"uint256"}],"name":"RequestTransferDToken","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":"amount","type":"uint256"}],"name":"RequestTransferEToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RequestWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"TrackAverageLiquidity","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"UnTrackAverageLiquidity","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"underlying","type":"address"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[],"name":"dispatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"moduleId","type":"uint256"}],"name":"moduleIdToImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"moduleId","type":"uint256"}],"name":"moduleIdToProxy","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b5060405161091038038061091083398101604081905261002f9161030d565b6040517f6bf6eaff5e9af8fbccb949f4c38cc016936f8775363ccf4224db160365785d5290600090a16001600081815581546001600160a01b038086166001600160a01b031992831681178555600280548416909117905583835260036020527fa15bc60c955c405d20d9149c709e2460f1c2d9a497496a7f46004d1772c3054c805491861691909216179055906100c690610107565b6001600160a01b03908116600090815260056020526040902080549190931664010000000002600160201b600160c01b031990911617909155506103409050565b60008161015b5760405162461bcd60e51b815260206004820152601d60248201527f652f6372656174652d70726f78792f696e76616c69642d6d6f64756c6500000060448201526064015b60405180910390fd5b620f423f8211156101ae5760405162461bcd60e51b815260206004820152601e60248201527f652f6372656174652d70726f78792f696e7465726e616c2d6d6f64756c6500006044820152606401610152565b6000828152600460205260409020546001600160a01b0316156101e757506000908152600460205260409020546001600160a01b031690565b60006040516101f5906102e4565b604051809103906000f080158015610211573d6000803e3d6000fd5b5090506207a11f831161024657600083815260046020526040902080546001600160a01b0319166001600160a01b0383161790555b60408051808201825263ffffffff8086168252600060208084018281526001600160a01b03878116808552600590935292869020945185549151909316640100000000026001600160c01b031990911692909316919091179190911790915590517f6c6ffd7df9a0cfaa14ee2cf752003968de6c340564276242aa48ca641b09bce4906102d69086815260200190565b60405180910390a292915050565b610236806106da83390190565b80516001600160a01b038116811461030857600080fd5b919050565b6000806040838503121561032057600080fd5b610329836102f1565b9150610337602084016102f1565b90509250929050565b61038b8061034f6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806306fdde0314610051578063734c938f146100a3578063cab65f01146100fe578063e9c4a3ac14610134575b600080fd5b61008d6040518060400160405280600e81526020017f45756c65722050726f746f636f6c00000000000000000000000000000000000081525081565b60405161009a91906102c9565b60405180910390f35b6100d96100b136600461033c565b60009081526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161009a565b6100d961010c36600461033c565b60009081526003602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b61013c61013e565b005b3360009081526005602052604090205463ffffffff811690640100000000900473ffffffffffffffffffffffffffffffffffffffff16816101e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f652f73656e6465722d6e6f742d7472757374656400000000000000000000000060448201526064015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116610229575063ffffffff811660009081526003602052604090205473ffffffffffffffffffffffffffffffffffffffff165b36601c811015610295576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f652f696e7075742d746f6f2d73686f727400000000000000000000000000000060448201526064016101d7565b600436038060046000373360601b8152600080601483016000865af490503d6000803e8080156102c4573d6000f35b3d6000fd5b600060208083528351808285015260005b818110156102f6578581018301518582016040015282016102da565b81811115610308576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60006020828403121561034e57600080fd5b503591905056fea26469706673582212206e8edbbb9481245f21fc8c2e64d9d4d8e8c6f4bcaab994b80a6970b6acbb165764736f6c634300080a003360a060405234801561001057600080fd5b503360805260805161020761002f6000396000601301526102076000f3fe608060405234801561001057600080fd5b507f00000000000000000000000000000000000000000000000000000000000000003373ffffffffffffffffffffffffffffffffffffffff8216141561017b5760008081523681601f378051801561008657600181146100b157600281146100df57600381146101105760048114610144578182fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff36016020a0508081f35b6020517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdf36016040a1508081f35b6040516020517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf36016060a2508081f35b6060516040516020517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9f36016080a3508081f35b6080516060516040516020517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f360160a0a4508081f35b7fe9c4a3ac000000000000000000000000000000000000000000000000000000006000523660006004373360601b366004015260008036601801600080855af13d6000803e8080156101cc573d6000f35b3d6000fdfea26469706673582212204c86fe253b9f19cb088c17838d424c049f387d68d1102741a6d20e8ab7bc03d164736f6c634300080a0033000000000000000000000000ee009faf00cf54c1b4387829af7a8dc5f0c8c8c5000000000000000000000000ec29b4c2cacae5df1a491f084e5ec7c62a7edab5Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806306fdde0314610051578063734c938f146100a3578063cab65f01146100fe578063e9c4a3ac14610134575b600080fd5b61008d6040518060400160405280600e81526020017f45756c65722050726f746f636f6c00000000000000000000000000000000000081525081565b60405161009a91906102c9565b60405180910390f35b6100d96100b136600461033c565b60009081526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161009a565b6100d961010c36600461033c565b60009081526003602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b61013c61013e565b005b3360009081526005602052604090205463ffffffff811690640100000000900473ffffffffffffffffffffffffffffffffffffffff16816101e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f652f73656e6465722d6e6f742d7472757374656400000000000000000000000060448201526064015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116610229575063ffffffff811660009081526003602052604090205473ffffffffffffffffffffffffffffffffffffffff165b36601c811015610295576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f652f696e7075742d746f6f2d73686f727400000000000000000000000000000060448201526064016101d7565b600436038060046000373360601b8152600080601483016000865af490503d6000803e8080156102c4573d6000f35b3d6000fd5b600060208083528351808285015260005b818110156102f6578581018301518582016040015282016102da565b81811115610308576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60006020828403121561034e57600080fd5b503591905056fea26469706673582212206e8edbbb9481245f21fc8c2e64d9d4d8e8c6f4bcaab994b80a6970b6acbb165764736f6c634300080a0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000ee009faf00cf54c1b4387829af7a8dc5f0c8c8c5000000000000000000000000ec29b4c2cacae5df1a491f084e5ec7c62a7edab5
-----Decoded View---------------
Arg [0] : admin (address): 0xEe009FAF00CF54C1B4387829aF7A8Dc5f0c8C8C5
Arg [1] : installerModule (address): 0xeC29b4C2CaCaE5dF1A491f084E5Ec7C62A7EdAb5
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000ee009faf00cf54c1b4387829af7a8dc5f0c8c8c5
Arg [1] : 000000000000000000000000ec29b4c2cacae5df1a491f084e5ec7c62a7edab5Loading...LoadingLoading...LoadingABI for the implementation contract at 0xec29b4c2cacae5df1a491f084e5ec7c62a7edab5, likely using a custom proxy implementation.
Previously recorded to be on 0x1e21cac3eb590a5f5482e1cce07174dcdb7f7fce.Learn more about proxy contracts in our Knowledge Base
Loading...LoadingABI for the implementation contract at 0xec29b4c2cacae5df1a491f084e5ec7c62a7edab5, likely using a custom proxy implementation.
Previously recorded to be on 0x1e21cac3eb590a5f5482e1cce07174dcdb7f7fce.Learn more about proxy contracts in our Knowledge Base
Loading...LoadingLoading...LoadingLoading...LoadingLoading...LoadingLoading...LoadingLoading...LoadingMultichain Portfolio | 30 Chains
Chain Token Portfolio % Price Amount Value ETH 54.83% $3.96 10,433.4127 $41,360.8 ETH 21.77% $33.4 491.8002 $16,426.13 ETH 7.48% $3,624.22 1.5573 $5,644.01 ETH 4.69% $3.01 1,175.4253 $3,538.03 ETH 4.35% $3,342.7 0.9811 $3,279.56 ETH 1.76% $0.206763 6,404.3867 $1,324.19 ETH 1.15% $0.47821 1,809.2113 $865.18 ETH 1.13% $94,293 0.00900496 $849.1 ETH 0.57% $0.022586 19,012.2137 $429.4 ETH 0.51% $0.531645 719.0647 $382.29 ETH 0.40% $0.996899 300.8475 $299.91 ETH 0.32% $0.393247 607.2437 $238.8 ETH 0.23% $1.85 93.0278 $172.1 ETH 0.14% $0.995459 106.4915 $106.01 ETH 0.14% $6.36 16.3597 $104.05 ETH 0.13% $1.21 81.0857 $98.11 ETH 0.06% $0.350678 133.8768 $46.95 ETH 0.06% $0.998255 46.53 $46.45 ETH 0.05% $0.800763 50.6149 $40.53 ETH 0.04% $1.38 23.5083 $32.44 ETH 0.04% $121,769 0.00022747 $27.7 ETH 0.03% $3,966.86 0.00570536 $22.63 ETH 0.03% $19.8 1.0511 $20.81 ETH 0.02% $1.51 9.9346 $15 ETH 0.02% $3.92 3.6083 $14.14 ETH 0.02% $2.4 5.057 $12.12 ETH <0.01% $19.22 0.3776 $7.26 ETH <0.01% $0.993101 6.3785 $6.33 ETH <0.01% $3.67 1 $3.67 ETH <0.01% $39.6 0.0845 $3.35 ETH <0.01% $0.025187 100.0059 $2.52 ETH <0.01% $0.999644 2.1623 $2.16 ETH <0.01% $2.54 0.7836 $1.99 ETH <0.01% $0.058493 30.2744 $1.77 ETH <0.01% $0.582445 1.6867 $0.9823 ETH <0.01% $2,980.96 0.00032847 $0.9791 ETH <0.01% $1.3 0.4966 $0.6479 ETH <0.01% $16.79 0.0247 $0.4142 ETH <0.01% $0.001023 362.7928 $0.3711 ETH <0.01% $26.97 0.0125 $0.3366 ETH <0.01% $0.201295 1.623 $0.3267 BSC 0.01% $0.000012 804,828 $10.01 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.
Address QR Code
My Address - Private Name Tag or Note
My Name Tag:
Private Name Tags (up to 35 characters) can be used for easy identification of addressesPrivate Note:
A private note (up to 500 characters) can be attached to this address.
Please DO NOT store any passwords or private keys here.Compiler specific version warnings:
The compiled contract might be susceptible to VerbatimInvalidDeduplication (low-severity), FullInlinerNonExpressionSplitArgumentEvaluationOrder (low-severity), MissingSideEffectsOnSelectorAccess (low-severity), AbiReencodingHeadOverflowWithStaticArrayCleanup (medium-severity), DirtyBytesArrayToStorage (low-severity), DataLocationChangeInInternalOverride (very low-severity), NestedCalldataArrayAbiReencodingSizeValidation (very low-severity) Solidity Compiler Bugs.
Connect a Wallet
Connecting wallet for read function is optional, useful if you want to call certain functions or simply use your wallet's node.Connect a Wallet
Connecting wallet for read function is optional, useful if you want to call certain functions or simply use your wallet's node.Connect a Wallet
Connecting wallet for read function is optional, useful if you want to call certain functions or simply use your wallet's node.SignIn
Address Cards
To use this feature, please login to your Etherscan account and return to this page.Before You Copy
Transaction Private Note
This website uses cookies to improve your experience. By continuing to use this website, you agree to its Terms and Privacy Policy.