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.
Available on 9 networks: Ethereum mainnet, Linea, Polygon, Optimism, BNB Chain, zkSync Era, Base, Avalanche.
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 (>200)109.38447064 AmericaAmerica (Americ...)$0.02@0.00020.02447447 BTRSBitBall Trea... (BTRS)$0.00@0.0184699,687,487.409577 CBABYCosmo Baby (CBABY)$0.03@0.001.78860076 CREECREE (CREE)47,290 DentacoinDentacoin (Dentac...)$0.06@0.003,592.29908969 METHETH Monsta (METH)0.38157483 INFINITEEthereum: Th... (INFINI...)1,674.02068131 FAIRFair Token (FAIR)49,591,108,933.3333 MOBMobster (MOB)386,226,577.755047 MOJOMOJO (MOJO)42.90494257 QANXQANX Token (QANX)181.43099535 ROXRobotina tok... (ROX)$0.20@0.001134,755,463,961.5351 SHIBAShiba (SHIBA)$5.46@0.004,579,089 TRXCTRONCLASSIC (TRXC)$0.39@0.00643 VDGVeriDocGloba... (VDG)$0.36@0.00060.00000008 0x00x0 Token (0x0)$0.00@0.00530 OxN0xNumber (OxN)$0.00@0.019155.84438132 ALDAladdin Toke... (ALD)$3.62@0.064911.11 ALNAluna (ALN)$0.02@0.001728.02629629 ANGLEANGLE (ANGLE)$0.63@0.02250.00575382 APEApeCoin (APE)$0.01@1.175.7858822 APPCAppCoins (APPC)$0.00@0.00050.01 arNXMArmor NXM (arNXM)$0.23@23.126,177.62498797 ASAPAsap Sniper ... (ASAP)$0.54@0.00010.71527649 ASTROAstroTools.i... (ASTRO)$0.05@0.0681.2832791 ASXAsymetrix Go... (ASX)$0.01@0.00870.11966761 AUTUMNAutumn Token (AUTUMN)$0.00@0.0037300.13076842 AVATLYAVATLY (AVATLY)$0.68@0.002362.5 AXIAxioms (AXI)$0.57@0.009212.10746368 B20B.20 (B20)$15.83@0.0747228.38816406 BKXBANKEX (BKX)5,340.74376726 BDIDBDID (BDID)$1.60@0.000334.1376024 BFCBifrost (BFC)$1.53@0.04490.00413674 BDTBlackDragon ... (BDT)$0.01@3.030.24234348 BOBCBOBC (BOBC)$0.04@0.14962,500 BONDLYBondly Token (BONDLY)$47.54@0.0190.00031549 CAPCap (CAP)$0.00@0.61115.95159086 CRBNCarbon (CRBN)$0.06@0.00399.90620433 CARDSCARD.STARTER (CARDS)0.00000437 CEEKCEEK (CEEK)$0.00@0.03430.09131843 CERESCeres (CERES)$0.65@7.099 CHIChi Gastoken... (CHI)$0.13@0.0142103.70287013 CNDCindicator (CND)$0.05@0.000450 COINCoin Utility... (COIN)$0.32@0.006493.42887016 COSContentos (COS)$0.74@0.007911,570.04757254 COOKCook Token (COOK)$306.01@0.02649,895.74791693 CRCrypto Range... (CR)$0.19@0.0059.81296838 C20Crypto20 (C20)$0.26@0.004333.26729291 GENDAOstack (GEN)$0.00@0.0026,930.72449825 NODEDAppNode DAO... (NODE)$1.55@0.00010.00000018 DGDecentral Ga... (DG)$0.00@0.0148145.9574559 DMINDDecentraMind (DMIND)$1.47@0.01015.03272291 DEPAYDePay (DEPAY)$1.78@0.35350.02614581 DEXGDextoken Gov... (DEXG)$0.52@19.91570.00000229 DFXDFX Token (DFX)$0.00@0.022213.51373527 DHTdHedge DAO T... (DHT)$1.08@0.07972,016 DRCDigital Rese... (DRC)$0.42@0.000248,075,608.5661932 DOBEDobermann (DOBE)$0.00@0.005.355 DOCKDock (DOCK)$0.02@0.00373.39077618 DOGEFIDOGEFI (DOGEFI)$0.04@0.01151,208.20681651 DOSDOS Network ... (DOS)$0.77@0.000612.97587004 DUODUO Network ... (DUO)40.42693777 DVGDVGToken (DVG)$0.34@0.0083129.49065375 DVIDvision (DVI)$1.98@0.01530.64898732 DXYDXY.FINANCE (DXY)$1.94@2.9864.8625 EDUEDU Coin (EDU)$2.53@0.51964.20724721 ELELYSIA (EL)$0.03@0.00820.00366989 TTETH-Peg Thun... (TT)$0.00@0.0036863,838,370,810.466 EDOGEEtherDoge (EDOGE)1.562484 EUROeEUROe Stable... (EUROe)$1.63@1.0440 EVERMOONEverMoon (EVERMO...)$0.00@0.00012,500 FACEFaceter (FACE)0.062569 FBFenerbahce T... (FB)$0.03@0.543564.16109382 FLIXXFlixx (FLIXX)$0.30@0.004810.07110809 FOLFolder Coin (FOL)$0.08@0.0080.24231909 FONTFont (FONT)$0.03@0.1358140.25250463 FTNFountain (FTN)3.52562537 FSNFusion (FSN)$0.14@0.04041.06128926 Future-AIFuture AI (Future...)$0.00@0.00072.35845383 GNCGenieCoin (GNC)$0.06@0.0242214,313.36411202 GENIGenius (GENI)$0.36@0.0057.62608026 GGTKGGToken (GGTK)$1.20@0.02091,721,712,983.0957 GIGACHADGigaChad (GIGACH...)$9.26@0.0012.5 GMRGimmerToken (GMR)282.77363522 GOATGOAT Coin (GOAT)$0.04@0.0002100,697,125.26474 GOOGLEAIGOOGLEAI (GOOGLE...)$0.21@0.002.51028102 GARDHASHGARD (GARD)$0.00@0.00147.79715713 SOLVEHealthcare A... (SOLVE)$0.91@0.006251,439,920,367.7958 HINAHina Inu (HINA)0.00001616 IDEAIDEAOLOGY (IDEA)$0.00@0.0012254.76846402 IMXImpermax (IMX)51.57764544 ISLAInsula (ISLA)$0.96@0.018618,878.17309122 KEPKelp Earned ... (KEP)$1,107.56@0.058715.58674434 KINEKine Governa... (KINE)$0.13@0.008210,386,161,962,275,600,0... KINGDOMKingdomGame (KINGDO...)161.72207997 KOINKoinos (KOIN)$34.21@0.21152,192.70685279 LAMBLambda (LAMB)$6.18@0.0028432.66634383 LEVERLever (LEVER)$0.72@0.00171.65930824 LITLitentry (LIT)$1.33@0.80090.92763696 LITHLithium (LITH)$0.00@0.000337,851,929.9442118 LOVELYLovely Inu F... (LOVELY)$16.17@0.00316,289.30140608 LUNA2.0Luna 2.0 (LUNA2....)$0.01@0.006,906,536.84119763 LUCHOWLunaChow (LUCHOW)$1.33@0.002,254.72558989 LUNGLungDefi (LUNG)7.94309419 FAKTMEDIFAKT (FAKT)$0.00@0.0003496,970.39518189 MEMEMEMememe (MEMEME)$1.47@0.001.60701786 MTAMeta (MTA)$0.05@0.03151.401534 mpDAOMeta Pool DA... (mpDAO)$0.04@0.02521,724,517.79585498 MXTMixTrust (MXT)$1.85@0.003,480.6486609 STARSMogul Stars (STARS)$2.09@0.0006750.407212 PARTYMONEY PARTY (PARTY)$0.13@0.000212.15165922 MOONMoonToken (MOON)$0.12@0.00950.74853585 MOVEMover (MOVE)$0.04@0.05253 MPSMtPelerin Sh... (MPS)$11.47@3.82490 MURATIAIMuratiAI (MURATI...)$0.00@0.001,129.83409067 NCTNameChangeTo... (NCT)$1.05@0.00090.00513527 NICENiceToken (NICE)$0.10@20.386958.79246382 NMAINomotaAI (NMAI)$0.20@0.003314.81172688 NORDNord Token (NORD)$0.38@0.025817,886.91501899 nCashNucleusVisio... (nCash)$1.89@0.00012.390653 NULSNuls (NULS)$0.94@0.3928126.13412677 ONXOnX.finance (ONX)$1.15@0.00912,441.51541435 PPAYPlasma (PPAY)$0.33@0.000111,247.42141942 LGBTQPride (LGBTQ)6.67754256 PROSProsper (PROS)$4.04@0.604425,211.00298033 PTTProton Token (PTT)128,943.57040546 pSAFEMOONpTokens SAFE... (pSAFEM...)$0.00@0.00159.2694551 PUMLxPUMLx (PUMLx)$0.51@0.003223.042624 RNDRand Token (RND)$0.03@0.0013505.6395 RFRRefereum (RFR)$0.02@0.0020,702.7616 REMREMME (REM)$1.15@0.00010.12735581 RSVReserve (RSV)5 REVORevomon (REVO)$0.06@0.011377.1094374 ROOBEEROOBEE (ROOBEE)$0.04@0.0005100,000 SCATSad Cat Toke... (SCAT)$0.04@0.001.175 SAFESAFE(AnWang) (SAFE)$4.08@3.472,195,934.43370604 SMISafeMoon Inu (SMI)$1.95@0.005.73038159 SABRSatsBridge (SABR)$0.00@0.00050.1245531 SCXScarcity (SCX)$1.70@13.623,366,418,481,625.94 SEISEI Token (SEI)219,731,355.57019 $SHARBISHARBI ($SHARB...)$899.73@0.00132.23973516 SHIBSHIBA INU (SHIB)$0.00@0.001,061,737.62314167 SHITShitCoin (SHIT)613.84637042 SHOOTSHOOT (SHOOT)$1.09@0.0018103.23040053 SHOPXSHOPX (SHOPX)$0.47@0.004532,217 HANDShowHand (HAND)$1.07@0.002,999,726,838.52198 SIMBASimbaToken (SIMBA)$0.30@0.0045.67467368 SGSocialGood (SG)$9.67@0.21180.04561133 SOFTSoftDAO (SOFT)1.94675337 SLRSolarCoin on... (SLR)$0.04@0.01990.09333884 SOLIDSolidly (SOLID)$0.03@0.335750 SPAYSpaceY Token (SPAY)$1.34@0.02682,469.06849043 SXSSphere (SXS)$0.63@0.0003508.42954917 SphynxSphynx Labs (Sphynx)$1.02@0.002275.39227271 SPSSplintershar... (SPS)$2.55@0.00930.0275 STAKESTAKE (STAKE)$0.00@0.084633.34964228 TSTStandard Tok... (TST)$0.19@0.0056562.5 STARStarbase (STAR)$2.02@0.00360 stETHstETH (stETH)$0.00@3,315.120.00022742 SNCSunContract (SNC)$0.00@0.038628.59733873 TBOTTBOT (TBOT)45.94268238 TENTenet (TEN)$0.47@0.01020.00148595 TENETTENET (TENET)$0.00@0.0046892.41856201 TTTesla Token (TT)$0.16@0.00022,022.68291699 TeSoTeSo (TeSo)$0.42@0.00028,407.2167209 TIDALTidal Token (TIDAL)$0.86@0.00017.64356387 TDXTidex Token (TDX)$0.20@0.0260.04225337 TiUSDTiUSD (TiUSD)$0.04@0.926624.08085198 TBXTokenbox (TBX)$0.04@0.001556.25752683 TRAVELTravelCare (TRAVEL)$0.02@0.00032,835,752.07748299 TRUMPJRTrumpJr (TRUMPJ...)1,788,356 UBXUBX (UBX)$31.80@0.0045.14822328 UERIIUERII (UERII)$0.06@0.00120.00081946 uniETHUniversal ET... (uniETH)$2.89@3,521.275793,268.11722897 USHIUshi (USHI)$1.31@0.0021.33029528 UTKUtrust Token (UTK)$2.20@0.103660.93472415 VIBEVibe Coin (VIBE)$0.00@0.000.07899372 LA VIDAVIDIACHANGE (LA VID...)$0.05@0.5957261.06769225 VPPVirtue Playe... (VPP)$1.71@0.006578.34277069 VISRVISOR (VISR)$0.04@0.00051,173.07381675 WAGWAGYUSWAP.ap... (WAG)$1.00@0.0009500 WPPWPPToken (WPP)268.34492738 ETHOWrapped ETHO (ETHO)$3.15@0.01170.0025 WG0Wrapped Gen ... (WG0)$0.11@45.24132 WMLXWrappedMilli... (WMLX)$0.37@0.18390.00156163 XFIXfinance (XFI)$0.12@78.612,506.0553428 XRP2XRP2.0 (XRP2)$0.55@0.00020.72229193 XYZXYZ Governan... (XYZ)$0.00@0.0028827.04344332 ZARPZARP Stablec... (ZARP)$44.24@0.05353,641.55613376 0KNZero Knowled... (0KN)$1.43@0.000474.9041936 ZEEZeroSwapToke... (ZEE)$0.94@0.01260.02218447 EIGENEigen (EIGEN)$0.08@3.700.005 USDTTether USD (USDT)$0.00@0.99940.72867066 WAXWAX Token (WAX)$0.03@0.0420.00009613 WETHWrapped Ethe... (WETH)$0.32@3,289.77380ERC-20:3,274 ACX [via www.across.cash]ERC-20: ! ... (ACX ...)309,447.82895449 420ERC-20: $420... (420)220,220.77671741 $AndyWifhatERC-20: $And... ($AndyW...)74,974.63223901 $BrettERC-20: $Bre... ($Brett)NFT Tokens (38)nft-dai.comDAI Mysterybox NFTERC-1155WTFDaVincix133ERC-721EventERC-1155claim rewards on shibprotocol.comshibprotocol.comERC-1155claim rewards on stakedeth.orgstakedeth.orgERC-1155items powered by Unisocks.orgUnisocks.org Genesis VaultERC-1155claim rewards on wsteth.netwsteth.netERC-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*[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
Multichain Info
3 addresses 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 25 from a total of 8,455 transactions
Transaction Hash MethodBlockFromToSwap Balance 19976163 2024-05-29 14:38:23 207 days ago 1716993503 IN 0 ETH$0.00 0.00154582 26.6884441 Swap Balance 19976114 2024-05-29 14:28:23 207 days ago 1716992903 IN 0 ETH$0.00 0.00121507 20.97820996 Swap Balance 19976064 2024-05-29 14:18:23 207 days ago 1716992303 IN 0 ETH$0.00 0.03042867 23.54779879 Swap Balance 19927440 2024-05-22 19:14:35 214 days ago 1716405275 IN 0 ETH$0.00 0.05313103 13.15517946 Swap Balance 19927437 2024-05-22 19:13:59 214 days ago 1716405239 IN 0 ETH$0.00 0.06906743 13.56340749 Swap Balance 19927347 2024-05-22 18:55:47 214 days ago 1716404147 IN 0 ETH$0.00 0.07548986 18.17923747 Swap Balance 19927343 2024-05-22 18:54:59 214 days ago 1716404099 IN 0 ETH$0.00 0.08235431 16.5567966 Swap Balance 19927247 2024-05-22 18:35:35 214 days ago 1716402935 IN 0 ETH$0.00 0.07669072 18.73959959 Swap Balance 19927244 2024-05-22 18:34:59 214 days ago 1716402899 IN 0 ETH$0.00 0.09295995 17.3426834 Swap Balance 19927160 2024-05-22 18:18:11 214 days ago 1716401891 IN 0 ETH$0.00 0.1185481 24.52424727 Swap Balance 19927156 2024-05-22 18:17:23 214 days ago 1716401843 IN 0 ETH$0.00 0.12346211 24.18327817 Swap Balance 19927063 2024-05-22 17:58:35 214 days ago 1716400715 IN 0 ETH$0.00 0.03017489 16.59087102 Swap Balance 19927061 2024-05-22 17:58:11 214 days ago 1716400691 IN 0 ETH$0.00 0.0847062 15.95138047 Swap Balance 19927057 2024-05-22 17:57:23 214 days ago 1716400643 IN 0 ETH$0.00 0.08090897 15.53500439 Swap Balance 19877948 2024-05-15 21:04:11 221 days ago 1715807051 IN 0 ETH$0.00 0.00232553 11.18992067 Swap Balance 19877937 2024-05-15 21:01:59 221 days ago 1715806919 IN 0 ETH$0.00 0.00510178 12.23766545 Swap Balance 19877926 2024-05-15 20:59:47 221 days ago 1715806787 IN 0 ETH$0.00 0.02259699 9.69244868 Swap Balance 19877922 2024-05-15 20:58:59 221 days ago 1715806739 IN 0 ETH$0.00 0.04799397 9.53088891 Swap Balance 19877919 2024-05-15 20:58:23 221 days ago 1715806703 IN 0 ETH$0.00 0.02730078 10.68699522 Swap Balance 19877918 2024-05-15 20:58:11 221 days ago 1715806691 IN 0 ETH$0.00 0.02285438 10.98413947 Swap Balance 19877915 2024-05-15 20:57:35 221 days ago 1715806655 IN 0 ETH$0.00 0.01957578 11.0385203 Swap Balance 19877914 2024-05-15 20:57:23 221 days ago 1715806643 IN 0 ETH$0.00 0.02092894 11.34393579 Swap Balance 19877912 2024-05-15 20:56:59 221 days ago 1715806619 IN 0 ETH$0.00 0.02103862 11.39658752 Swap Balance 19877911 2024-05-15 20:56:47 221 days ago 1715806607 IN 0 ETH$0.00 0.02188084 11.86927028 Swap Balance 19877908 2024-05-15 20:56:11 221 days ago 1715806571 IN 0 ETH$0.00 0.0226686 11.53902132 Latest 25 internal transactions (View All)
Advanced mode:Parent Transaction Hash Block FromTo19877366 2024-05-15 19:06:59 221 days ago 1715800019 0.00000144 ETH$0.00 19877348 2024-05-15 19:03:23 221 days ago 1715799803 0.00000144 ETH$0.00 19841597 2024-05-10 19:02:47 226 days ago 1715367767 0.00644913 ETH$21.22 19841560 2024-05-10 18:55:11 226 days ago 1715367311 0.01833428 ETH$60.32 19841545 2024-05-10 18:52:11 226 days ago 1715367131 0.00556034 ETH$18.29 19841535 2024-05-10 18:49:59 226 days ago 1715366999 0.00026691 ETH$0.88 19841531 2024-05-10 18:49:11 226 days ago 1715366951 0.00062188 ETH$2.05 19841522 2024-05-10 18:47:23 226 days ago 1715366843 0.00128747 ETH$4.24 19841515 2024-05-10 18:45:59 226 days ago 1715366759 0.00012433 ETH$0.41 19841514 2024-05-10 18:45:47 226 days ago 1715366747 0.00083457 ETH$2.75 19841498 2024-05-10 18:42:35 226 days ago 1715366555 0.00025 ETH$0.82 19841498 2024-05-10 18:42:35 226 days ago 1715366555 0.0778388 ETH$256.07 19841497 2024-05-10 18:42:23 226 days ago 1715366543 0.00551614 ETH$18.15 19841491 2024-05-10 18:41:11 226 days ago 1715366471 0.00025402 ETH$0.84 19841490 2024-05-10 18:40:59 226 days ago 1715366459 0.0057221 ETH$18.82 19841489 2024-05-10 18:40:47 226 days ago 1715366447 0.00004122 ETH$0.14 19841484 2024-05-10 18:39:47 226 days ago 1715366387 0.00430439 ETH$14.16 19841478 2024-05-10 18:38:35 226 days ago 1715366315 0.03771552 ETH$124.08 19841467 2024-05-10 18:36:23 226 days ago 1715366183 0.00024715 ETH$0.81 19841458 2024-05-10 18:34:35 226 days ago 1715366075 0.05013149 ETH$164.92 19841457 2024-05-10 18:34:23 226 days ago 1715366063 0.00111233 ETH$3.66 19841456 2024-05-10 18:34:11 226 days ago 1715366051 0.00072829 ETH$2.40 19841455 2024-05-10 18:33:59 226 days ago 1715366039 0.05188546 ETH$170.69 19841448 2024-05-10 18:32:35 226 days ago 1715365955 1.45849372 ETH$4,798.11 19841447 2024-05-10 18:32:23 226 days ago 1715365943 0.0008571 ETH$2.82 Loading...LoadingContract Name:FeeCollector
Compiler Versionv0.8.19+commit.7dd6d404
Optimization Enabled:Yes with 200 runs
Other Settings:paris EvmVersionContract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: GPL-2.0-or-later pragma solidity ^0.8.0; import {Owned} from "solmate/auth/Owned.sol"; import {ERC20} from "solmate/tokens/ERC20.sol"; import {SafeTransferLib} from "solmate/utils/SafeTransferLib.sol"; import {IFeeCollector} from "./interfaces/IFeeCollector.sol"; import {IPermit2} from "./external/IPermit2.sol"; /// @notice The collector of protocol fees that will be used to swap and send to a fee recipient address. contract FeeCollector is Owned, IFeeCollector { using SafeTransferLib for ERC20; error UniversalRouterCallFailed(); address private immutable universalRouter; ERC20 private immutable feeToken; IPermit2 private immutable permit2; uint256 private constant MAX_APPROVAL_AMOUNT = type(uint256).max; uint160 private constant MAX_PERMIT2_APPROVAL_AMOUNT = type(uint160).max; uint48 private constant MAX_PERMIT2_DEADLINE = type(uint48).max; constructor(address _owner, address _universalRouter, address _permit2, address _feeToken) Owned(_owner) { universalRouter = _universalRouter; feeToken = ERC20(_feeToken); permit2 = IPermit2(_permit2); } /// @inheritdoc IFeeCollector function swapBalance(bytes calldata swapData, uint256 nativeValue) external onlyOwner { _execute(swapData, nativeValue); } /// @inheritdoc IFeeCollector function swapBalance(bytes calldata swapData, uint256 nativeValue, ERC20[] calldata tokensToApprove) external onlyOwner { unchecked { for (uint256 i = 0; i < tokensToApprove.length; i++) { tokensToApprove[i].safeApprove(address(permit2), MAX_APPROVAL_AMOUNT); permit2.approve( address(tokensToApprove[i]), universalRouter, MAX_PERMIT2_APPROVAL_AMOUNT, MAX_PERMIT2_DEADLINE ); } } _execute(swapData, nativeValue); } /// @notice Helper function to call UniversalRouter. /// @param swapData The bytes call data to be forwarded to UniversalRouter. /// @param nativeValue The amount of native currency to send to UniversalRouter. function _execute(bytes calldata swapData, uint256 nativeValue) internal { (bool success,) = universalRouter.call{value: nativeValue}(swapData); if (!success) revert UniversalRouterCallFailed(); } /// @inheritdoc IFeeCollector function withdrawFeeToken(address feeRecipient, uint256 amount) external onlyOwner { feeToken.safeTransfer(feeRecipient, amount); } receive() external payable {} }
// SPDX-License-Identifier: AGPL-3.0-only pragma solidity >=0.8.0; /// @notice Simple single owner authorization mixin. /// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/auth/Owned.sol) abstract contract Owned { /*////////////////////////////////////////////////////////////// EVENTS //////////////////////////////////////////////////////////////*/ event OwnershipTransferred(address indexed user, address indexed newOwner); /*////////////////////////////////////////////////////////////// OWNERSHIP STORAGE //////////////////////////////////////////////////////////////*/ address public owner; modifier onlyOwner() virtual { require(msg.sender == owner, "UNAUTHORIZED"); _; } /*////////////////////////////////////////////////////////////// CONSTRUCTOR //////////////////////////////////////////////////////////////*/ constructor(address _owner) { owner = _owner; emit OwnershipTransferred(address(0), _owner); } /*////////////////////////////////////////////////////////////// OWNERSHIP LOGIC //////////////////////////////////////////////////////////////*/ function transferOwnership(address newOwner) public virtual onlyOwner { owner = newOwner; emit OwnershipTransferred(msg.sender, newOwner); } }
// SPDX-License-Identifier: AGPL-3.0-only pragma solidity >=0.8.0; /// @notice Modern and gas efficient ERC20 + EIP-2612 implementation. /// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC20.sol) /// @author Modified from Uniswap (https://github.com/Uniswap/uniswap-v2-core/blob/master/contracts/UniswapV2ERC20.sol) /// @dev Do not manually set balances without updating totalSupply, as the sum of all user balances must not exceed it. abstract contract ERC20 { /*////////////////////////////////////////////////////////////// EVENTS //////////////////////////////////////////////////////////////*/ event Transfer(address indexed from, address indexed to, uint256 amount); event Approval(address indexed owner, address indexed spender, uint256 amount); /*////////////////////////////////////////////////////////////// METADATA STORAGE //////////////////////////////////////////////////////////////*/ string public name; string public symbol; uint8 public immutable decimals; /*////////////////////////////////////////////////////////////// ERC20 STORAGE //////////////////////////////////////////////////////////////*/ uint256 public totalSupply; mapping(address => uint256) public balanceOf; mapping(address => mapping(address => uint256)) public allowance; /*////////////////////////////////////////////////////////////// EIP-2612 STORAGE //////////////////////////////////////////////////////////////*/ uint256 internal immutable INITIAL_CHAIN_ID; bytes32 internal immutable INITIAL_DOMAIN_SEPARATOR; mapping(address => uint256) public nonces; /*////////////////////////////////////////////////////////////// CONSTRUCTOR //////////////////////////////////////////////////////////////*/ constructor( string memory _name, string memory _symbol, uint8 _decimals ) { name = _name; symbol = _symbol; decimals = _decimals; INITIAL_CHAIN_ID = block.chainid; INITIAL_DOMAIN_SEPARATOR = computeDomainSeparator(); } /*////////////////////////////////////////////////////////////// ERC20 LOGIC //////////////////////////////////////////////////////////////*/ function approve(address spender, uint256 amount) public virtual returns (bool) { allowance[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function transfer(address to, uint256 amount) public virtual returns (bool) { balanceOf[msg.sender] -= amount; // Cannot overflow because the sum of all user // balances can't exceed the max uint256 value. unchecked { balanceOf[to] += amount; } emit Transfer(msg.sender, to, amount); return true; } function transferFrom( address from, address to, uint256 amount ) public virtual returns (bool) { uint256 allowed = allowance[from][msg.sender]; // Saves gas for limited approvals. if (allowed != type(uint256).max) allowance[from][msg.sender] = allowed - amount; balanceOf[from] -= amount; // Cannot overflow because the sum of all user // balances can't exceed the max uint256 value. unchecked { balanceOf[to] += amount; } emit Transfer(from, to, amount); return true; } /*////////////////////////////////////////////////////////////// EIP-2612 LOGIC //////////////////////////////////////////////////////////////*/ function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) public virtual { require(deadline >= block.timestamp, "PERMIT_DEADLINE_EXPIRED"); // Unchecked because the only math done is incrementing // the owner's nonce which cannot realistically overflow. unchecked { address recoveredAddress = ecrecover( keccak256( abi.encodePacked( "\x19\x01", DOMAIN_SEPARATOR(), keccak256( abi.encode( keccak256( "Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)" ), owner, spender, value, nonces[owner]++, deadline ) ) ) ), v, r, s ); require(recoveredAddress != address(0) && recoveredAddress == owner, "INVALID_SIGNER"); allowance[recoveredAddress][spender] = value; } emit Approval(owner, spender, value); } function DOMAIN_SEPARATOR() public view virtual returns (bytes32) { return block.chainid == INITIAL_CHAIN_ID ? INITIAL_DOMAIN_SEPARATOR : computeDomainSeparator(); } function computeDomainSeparator() internal view virtual returns (bytes32) { return keccak256( abi.encode( keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"), keccak256(bytes(name)), keccak256("1"), block.chainid, address(this) ) ); } /*////////////////////////////////////////////////////////////// INTERNAL MINT/BURN LOGIC //////////////////////////////////////////////////////////////*/ function _mint(address to, uint256 amount) internal virtual { totalSupply += amount; // Cannot overflow because the sum of all user // balances can't exceed the max uint256 value. unchecked { balanceOf[to] += amount; } emit Transfer(address(0), to, amount); } function _burn(address from, uint256 amount) internal virtual { balanceOf[from] -= amount; // Cannot underflow because a user's balance // will never be larger than the total supply. unchecked { totalSupply -= amount; } emit Transfer(from, address(0), amount); } }
// SPDX-License-Identifier: AGPL-3.0-only pragma solidity >=0.8.0; import {ERC20} from "../tokens/ERC20.sol"; /// @notice Safe ETH and ERC20 transfer library that gracefully handles missing return values. /// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/SafeTransferLib.sol) /// @dev Use with caution! Some functions in this library knowingly create dirty bits at the destination of the free memory pointer. /// @dev Note that none of the functions in this library check that a token has code at all! That responsibility is delegated to the caller. library SafeTransferLib { /*////////////////////////////////////////////////////////////// ETH OPERATIONS //////////////////////////////////////////////////////////////*/ function safeTransferETH(address to, uint256 amount) internal { bool success; /// @solidity memory-safe-assembly assembly { // Transfer the ETH and store if it succeeded or not. success := call(gas(), to, amount, 0, 0, 0, 0) } require(success, "ETH_TRANSFER_FAILED"); } /*////////////////////////////////////////////////////////////// ERC20 OPERATIONS //////////////////////////////////////////////////////////////*/ function safeTransferFrom( ERC20 token, address from, address to, uint256 amount ) internal { bool success; /// @solidity memory-safe-assembly assembly { // Get a pointer to some free memory. let freeMemoryPointer := mload(0x40) // Write the abi-encoded calldata into memory, beginning with the function selector. mstore(freeMemoryPointer, 0x23b872dd00000000000000000000000000000000000000000000000000000000) mstore(add(freeMemoryPointer, 4), and(from, 0xffffffffffffffffffffffffffffffffffffffff)) // Append and mask the "from" argument. mstore(add(freeMemoryPointer, 36), and(to, 0xffffffffffffffffffffffffffffffffffffffff)) // Append and mask the "to" argument. mstore(add(freeMemoryPointer, 68), amount) // Append the "amount" argument. Masking not required as it's a full 32 byte type. success := and( // Set success to whether the call reverted, if not we check it either // returned exactly 1 (can't just be non-zero data), or had no return data. or(and(eq(mload(0), 1), gt(returndatasize(), 31)), iszero(returndatasize())), // We use 100 because the length of our calldata totals up like so: 4 + 32 * 3. // We use 0 and 32 to copy up to 32 bytes of return data into the scratch space. // Counterintuitively, this call must be positioned second to the or() call in the // surrounding and() call or else returndatasize() will be zero during the computation. call(gas(), token, 0, freeMemoryPointer, 100, 0, 32) ) } require(success, "TRANSFER_FROM_FAILED"); } function safeTransfer( ERC20 token, address to, uint256 amount ) internal { bool success; /// @solidity memory-safe-assembly assembly { // Get a pointer to some free memory. let freeMemoryPointer := mload(0x40) // Write the abi-encoded calldata into memory, beginning with the function selector. mstore(freeMemoryPointer, 0xa9059cbb00000000000000000000000000000000000000000000000000000000) mstore(add(freeMemoryPointer, 4), and(to, 0xffffffffffffffffffffffffffffffffffffffff)) // Append and mask the "to" argument. mstore(add(freeMemoryPointer, 36), amount) // Append the "amount" argument. Masking not required as it's a full 32 byte type. success := and( // Set success to whether the call reverted, if not we check it either // returned exactly 1 (can't just be non-zero data), or had no return data. or(and(eq(mload(0), 1), gt(returndatasize(), 31)), iszero(returndatasize())), // We use 68 because the length of our calldata totals up like so: 4 + 32 * 2. // We use 0 and 32 to copy up to 32 bytes of return data into the scratch space. // Counterintuitively, this call must be positioned second to the or() call in the // surrounding and() call or else returndatasize() will be zero during the computation. call(gas(), token, 0, freeMemoryPointer, 68, 0, 32) ) } require(success, "TRANSFER_FAILED"); } function safeApprove( ERC20 token, address to, uint256 amount ) internal { bool success; /// @solidity memory-safe-assembly assembly { // Get a pointer to some free memory. let freeMemoryPointer := mload(0x40) // Write the abi-encoded calldata into memory, beginning with the function selector. mstore(freeMemoryPointer, 0x095ea7b300000000000000000000000000000000000000000000000000000000) mstore(add(freeMemoryPointer, 4), and(to, 0xffffffffffffffffffffffffffffffffffffffff)) // Append and mask the "to" argument. mstore(add(freeMemoryPointer, 36), amount) // Append the "amount" argument. Masking not required as it's a full 32 byte type. success := and( // Set success to whether the call reverted, if not we check it either // returned exactly 1 (can't just be non-zero data), or had no return data. or(and(eq(mload(0), 1), gt(returndatasize(), 31)), iszero(returndatasize())), // We use 68 because the length of our calldata totals up like so: 4 + 32 * 2. // We use 0 and 32 to copy up to 32 bytes of return data into the scratch space. // Counterintuitively, this call must be positioned second to the or() call in the // surrounding and() call or else returndatasize() will be zero during the computation. call(gas(), token, 0, freeMemoryPointer, 68, 0, 32) ) } require(success, "APPROVE_FAILED"); } }
// SPDX-License-Identifier: GPL-2.0-or-later pragma solidity ^0.8.13; import {ERC20} from "solmate/tokens/ERC20.sol"; /// @notice The collector of protocol fees that will be used to swap and send to a fee recipient address. interface IFeeCollector { /// @notice Swaps the contract balance. /// @param swapData The bytes call data to be forwarded to UniversalRouter. /// @param nativeValue The amount of native currency to send to UniversalRouter. function swapBalance(bytes calldata swapData, uint256 nativeValue) external; /// @notice Approves tokens for swapping and then swaps the contract balance. /// @param swapData The bytes call data to be forwarded to UniversalRouter. /// @param nativeValue The amount of native currency to send to UniversalRouter. /// @param tokensToApprove An array of ERC20 tokens to approve for spending. function swapBalance(bytes calldata swapData, uint256 nativeValue, ERC20[] calldata tokensToApprove) external; /// @notice Transfers the fee token balance from this contract to the fee recipient. /// @param feeRecipient The address to send the fee token balance to. /// @param amount The amount to withdraw. function withdrawFeeToken(address feeRecipient, uint256 amount) external; }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import {IAllowanceTransfer} from "./IAllowanceTransfer.sol"; /// @notice Permit2 handles signature-based transfers in SignatureTransfer and allowance-based transfers in AllowanceTransfer. /// @dev Users must approve Permit2 before calling any of the transfer functions. interface IPermit2 is IAllowanceTransfer { // IPermit2 unifies the two interfaces so users have maximal flexibility with their approval. }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import {IEIP712} from "./IEIP712.sol"; /// @title AllowanceTransfer /// @notice Handles ERC20 token permissions through signature based allowance setting and ERC20 token transfers by checking allowed amounts /// @dev Requires user's token approval on the Permit2 contract interface IAllowanceTransfer is IEIP712 { /// @notice A mapping from owner address to token address to spender address to PackedAllowance struct, which contains details and conditions of the approval. /// @notice The mapping is indexed in the above order see: allowance[ownerAddress][tokenAddress][spenderAddress] /// @dev The packed slot holds the allowed amount, expiration at which the allowed amount is no longer valid, and current nonce thats updated on any signature based approvals. function allowance(address user, address token, address spender) external view returns (uint160 amount, uint48 expiration, uint48 nonce); /// @notice Approves the spender to use up to amount of the specified token up until the expiration /// @param token The token to approve /// @param spender The spender address to approve /// @param amount The approved amount of the token /// @param expiration The timestamp at which the approval is no longer valid /// @dev The packed allowance also holds a nonce, which will stay unchanged in approve /// @dev Setting amount to type(uint160).max sets an unlimited approval function approve(address token, address spender, uint160 amount, uint48 expiration) external; }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; interface IEIP712 { function DOMAIN_SEPARATOR() external view returns (bytes32); }
{ "remappings": [ "ds-test/=lib/forge-std/lib/ds-test/src/", "forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/", "forge-std/=lib/forge-std/src/", "openzeppelin-contracts/=lib/permit2/lib/openzeppelin-contracts/", "permit2/=lib/permit2/", "solmate/=lib/solmate/src/", "v2-core/=lib/v2-core/contracts/" ], "optimizer": { "enabled": true, "runs": 200 }, "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "evmVersion": "paris", "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_universalRouter","type":"address"},{"internalType":"address","name":"_permit2","type":"address"},{"internalType":"address","name":"_feeToken","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"UniversalRouterCallFailed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"swapData","type":"bytes"},{"internalType":"uint256","name":"nativeValue","type":"uint256"}],"name":"swapBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"swapData","type":"bytes"},{"internalType":"uint256","name":"nativeValue","type":"uint256"},{"internalType":"contract ERC20[]","name":"tokensToApprove","type":"address[]"}],"name":"swapBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"feeRecipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawFeeToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60e060405234801561001057600080fd5b506040516108df3803806108df83398101604081905261002f916100b1565b600080546001600160a01b0319166001600160a01b03861690811782556040518692907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001600160a01b03928316608052821660a0521660c05250610105565b80516001600160a01b03811681146100ac57600080fd5b919050565b600080600080608085870312156100c757600080fd5b6100d085610095565b93506100de60208601610095565b92506100ec60408601610095565b91506100fa60608601610095565b905092959194509250565b60805160a05160c05161079d610142600039600081816101f70152610252015260006101920152600081816102cc01526103d3015261079d6000f3fe60806040526004361061004e5760003560e01c80631ac169861461005a5780638da5cb5b1461007c578063b2ef14e3146100b8578063bbf20c15146100d8578063f2fde38b146100f857600080fd5b3661005557005b600080fd5b34801561006657600080fd5b5061007a6100753660046105c0565b610118565b005b34801561008857600080fd5b5060005461009c906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c457600080fd5b5061007a6100d3366004610624565b61015b565b3480156100e457600080fd5b5061007a6100f3366004610650565b6101bd565b34801561010457600080fd5b5061007a6101133660046106f7565b61035a565b6000546001600160a01b0316331461014b5760405162461bcd60e51b81526004016101429061071b565b60405180910390fd5b6101568383836103cf565b505050565b6000546001600160a01b031633146101855760405162461bcd60e51b81526004016101429061071b565b6101b96001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168383610476565b5050565b6000546001600160a01b031633146101e75760405162461bcd60e51b81526004016101429061071b565b60005b81811015610347576102507f000000000000000000000000000000000000000000000000000000000000000060001985858581811061022b5761022b610741565b905060200201602081019061024091906106f7565b6001600160a01b031691906104f7565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166387517c4584848481811061029157610291610741565b90506020020160208101906102a691906106f7565b6040516001600160e01b031960e084901b1681526001600160a01b0391821660048201527f000000000000000000000000000000000000000000000000000000000000000082166024820152604481019190915265ffffffffffff6064820152608401600060405180830381600087803b15801561032357600080fd5b505af1158015610337573d6000803e3d6000fd5b5050600190920191506101ea9050565b506103538585856103cf565b5050505050565b6000546001600160a01b031633146103845760405162461bcd60e51b81526004016101429061071b565b600080546001600160a01b0319166001600160a01b0383169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031682858560405161040c929190610757565b60006040518083038185875af1925050503d8060008114610449576040519150601f19603f3d011682016040523d82523d6000602084013e61044e565b606091505b50509050806104705760405163cee8b77760e01b815260040160405180910390fd5b50505050565b600060405163a9059cbb60e01b81526001600160a01b0384166004820152826024820152602060006044836000895af13d15601f3d11600160005114161716915050806104705760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606401610142565b600060405163095ea7b360e01b81526001600160a01b0384166004820152826024820152602060006044836000895af13d15601f3d11600160005114161716915050806104705760405162461bcd60e51b815260206004820152600e60248201526d1054141493d59157d1905253115160921b6044820152606401610142565b60008083601f84011261058957600080fd5b50813567ffffffffffffffff8111156105a157600080fd5b6020830191508360208285010111156105b957600080fd5b9250929050565b6000806000604084860312156105d557600080fd5b833567ffffffffffffffff8111156105ec57600080fd5b6105f886828701610577565b909790965060209590950135949350505050565b6001600160a01b038116811461062157600080fd5b50565b6000806040838503121561063757600080fd5b82356106428161060c565b946020939093013593505050565b60008060008060006060868803121561066857600080fd5b853567ffffffffffffffff8082111561068057600080fd5b61068c89838a01610577565b90975095506020880135945060408801359150808211156106ac57600080fd5b818801915088601f8301126106c057600080fd5b8135818111156106cf57600080fd5b8960208260051b85010111156106e457600080fd5b9699959850939650602001949392505050565b60006020828403121561070957600080fd5b81356107148161060c565b9392505050565b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b818382376000910190815291905056fea264697066735822122037bdcf04c668f6b3803f7db34f6a1d9cca1083f77a1b65ee311aec8d127d7abb64736f6c634300081300330000000000000000000000003c6d5c150ee29b698c6c821b53886c41d239669c0000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fad000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48Deployed Bytecode
0x60806040526004361061004e5760003560e01c80631ac169861461005a5780638da5cb5b1461007c578063b2ef14e3146100b8578063bbf20c15146100d8578063f2fde38b146100f857600080fd5b3661005557005b600080fd5b34801561006657600080fd5b5061007a6100753660046105c0565b610118565b005b34801561008857600080fd5b5060005461009c906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c457600080fd5b5061007a6100d3366004610624565b61015b565b3480156100e457600080fd5b5061007a6100f3366004610650565b6101bd565b34801561010457600080fd5b5061007a6101133660046106f7565b61035a565b6000546001600160a01b0316331461014b5760405162461bcd60e51b81526004016101429061071b565b60405180910390fd5b6101568383836103cf565b505050565b6000546001600160a01b031633146101855760405162461bcd60e51b81526004016101429061071b565b6101b96001600160a01b037f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48168383610476565b5050565b6000546001600160a01b031633146101e75760405162461bcd60e51b81526004016101429061071b565b60005b81811015610347576102507f000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba360001985858581811061022b5761022b610741565b905060200201602081019061024091906106f7565b6001600160a01b031691906104f7565b7f000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba36001600160a01b03166387517c4584848481811061029157610291610741565b90506020020160208101906102a691906106f7565b6040516001600160e01b031960e084901b1681526001600160a01b0391821660048201527f0000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fad82166024820152604481019190915265ffffffffffff6064820152608401600060405180830381600087803b15801561032357600080fd5b505af1158015610337573d6000803e3d6000fd5b5050600190920191506101ea9050565b506103538585856103cf565b5050505050565b6000546001600160a01b031633146103845760405162461bcd60e51b81526004016101429061071b565b600080546001600160a01b0319166001600160a01b0383169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b60007f0000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fad6001600160a01b031682858560405161040c929190610757565b60006040518083038185875af1925050503d8060008114610449576040519150601f19603f3d011682016040523d82523d6000602084013e61044e565b606091505b50509050806104705760405163cee8b77760e01b815260040160405180910390fd5b50505050565b600060405163a9059cbb60e01b81526001600160a01b0384166004820152826024820152602060006044836000895af13d15601f3d11600160005114161716915050806104705760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606401610142565b600060405163095ea7b360e01b81526001600160a01b0384166004820152826024820152602060006044836000895af13d15601f3d11600160005114161716915050806104705760405162461bcd60e51b815260206004820152600e60248201526d1054141493d59157d1905253115160921b6044820152606401610142565b60008083601f84011261058957600080fd5b50813567ffffffffffffffff8111156105a157600080fd5b6020830191508360208285010111156105b957600080fd5b9250929050565b6000806000604084860312156105d557600080fd5b833567ffffffffffffffff8111156105ec57600080fd5b6105f886828701610577565b909790965060209590950135949350505050565b6001600160a01b038116811461062157600080fd5b50565b6000806040838503121561063757600080fd5b82356106428161060c565b946020939093013593505050565b60008060008060006060868803121561066857600080fd5b853567ffffffffffffffff8082111561068057600080fd5b61068c89838a01610577565b90975095506020880135945060408801359150808211156106ac57600080fd5b818801915088601f8301126106c057600080fd5b8135818111156106cf57600080fd5b8960208260051b85010111156106e457600080fd5b9699959850939650602001949392505050565b60006020828403121561070957600080fd5b81356107148161060c565b9392505050565b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b818382376000910190815291905056fea264697066735822122037bdcf04c668f6b3803f7db34f6a1d9cca1083f77a1b65ee311aec8d127d7abb64736f6c63430008130033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000003c6d5c150ee29b698c6c821b53886c41d239669c0000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fad000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
-----Decoded View---------------
Arg [0] : _owner (address): 0x3c6D5c150EE29B698c6C821B53886C41d239669c
Arg [1] : _universalRouter (address): 0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD
Arg [2] : _permit2 (address): 0x000000000022D473030F116dDEE9F6B43aC78BA3
Arg [3] : _feeToken (address): 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000003c6d5c150ee29b698c6c821b53886c41d239669c
Arg [1] : 0000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fad
Arg [2] : 000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3
Arg [3] : 000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48Loading...LoadingLoading...Loading
Loading...Loading
Loading...LoadingLoading...LoadingLoading...LoadingLoading...LoadingLoading...LoadingLoading...LoadingMultichain Portfolio | 30 Chains
Chain Token Portfolio % Price Amount Value ETH 39.94% $0.058669 18,878.1731 $1,107.56 ETH 32.44% $0.000004 219,731,355.5702 $899.73 ETH 11.03% $0.026448 11,570.0476 $306.01 ETH 1.71% $0.019015 2,500 $47.54 ETH 1.60% $0.053493 827.0434 $44.24 ETH 1.23% $0.211532 161.7221 $34.21 ETH 1.15% $0.000018 1,788,356 $31.8 ETH 0.95% $0.036118 731 $26.4 ETH 0.58% <$0.000001 37,851,929.9442 $16.17 ETH 0.57% $0.074651 212.1075 $15.83 ETH 0.46% $0.371745 34 $12.64 ETH 0.41% $3.82 3 $11.47 ETH 0.41% $0.000405 28,199.6445 $11.41 ETH 0.35% $0.211754 45.6747 $9.67 ETH 0.33% <$0.000001 1,721,712,983.0957 $9.26 ETH 0.26% $0.179867 39.5793 $7.12 ETH 0.24% $0.000409 15,984.35 $6.53 ETH 0.22% $0.00282 2,192.7069 $6.18 ETH 0.22% $0.000019 317,496.3343 $6.18 ETH 0.20% <$0.000001 34,755,463,961.5351 $5.46 ETH 0.15% $3.47 1.175 $4.08 ETH 0.15% $0.604356 6.6775 $4.04 ETH 0.13% $0.064888 55.8444 $3.62 ETH 0.13% $0.003877 910.0657 $3.53 ETH 0.12% $3.53 0.9437 $3.33 ETH 0.12% $0.000351 9,466.3466 $3.32 ETH 0.11% $0.011733 268.3449 $3.15 ETH 0.11% $0.371745 8 $2.97 ETH 0.10% $3,521.28 0.00081946 $2.89 ETH 0.09% $0.009257 275.3923 $2.55 ETH 0.09% $0.519613 4.8625 $2.53 ETH 0.08% <$0.000001 284,594,997,327 $2.26 ETH 0.08% $0.00889 250.6365 $2.23 ETH 0.08% $0.103001 21.3303 $2.2 ETH 0.08% $0.000002 929,348.9788 $2.13 ETH 0.08% $0.000601 3,480.6487 $2.09 ETH 0.07% $0.003596 562.5 $2.02 ETH 0.07% $0.015736 125.9774 $1.98 ETH 0.07% $0.015283 129.4907 $1.98 ETH 0.07% $0.007939 248 $1.97 ETH 0.07% $0.000001 2,195,934.4337 $1.95 ETH 0.07% $2.99 0.649 $1.94 ETH 0.07% $0.000106 17,886.915 $1.89 ETH 0.07% $0.004824 390.9139 $1.89 ETH 0.07% $0.022097 84.953 $1.88 ETH 0.07% <$0.000001 2,243,929,896.3129 $1.85 ETH 0.07% $0.000001 1,724,517.7959 $1.85 ETH 0.06% $0.35349 5.0327 $1.78 ETH 0.06% $0.006545 261.0677 $1.71 ETH 0.06% $13.62 0.1246 $1.7 ETH 0.06% <$0.000001 1,693,144,804.8192 $1.69 ETH 0.06% $0.006181 269.0074 $1.66 ETH 0.06% $1.04 1.5625 $1.63 ETH 0.06% $0.0003 5,340.7438 $1.6 ETH 0.06% $0.009484 168.1239 $1.59 ETH 0.06% $0.000057 26,930.7245 $1.55 ETH 0.06% $0.024994 61.599 $1.54 ETH 0.06% $0.044857 34.1376 $1.53 ETH 0.05% $0.010053 145.9575 $1.47 ETH 0.05% $0.000003 496,970.3952 $1.47 ETH 0.05% $0.000392 3,641.5561 $1.43 ETH 0.05% $0.00091 1,520.071 $1.38 ETH 0.05% $0.026825 50 $1.34 ETH 0.05% <$0.000001 6,906,536.8412 $1.33 ETH 0.05% $0.800934 1.6593 $1.33 ETH 0.05% $0.000804 1,634.2636 $1.31 ETH 0.05% $0.000014 93,268.1172 $1.31 ETH 0.04% $0.164954 7.4318 $1.23 ETH 0.04% $0.020863 57.6261 $1.2 ETH 0.04% $0.050404 23.2377 $1.17 ETH 0.04% $0.009137 126.1341 $1.15 ETH 0.04% $0.000056 20,702.7616 $1.15 ETH 0.04% $0.000531 2,145.7561 $1.14 ETH 0.04% $0.005463 202.1231 $1.1 ETH 0.04% $0.050469 21.7315 $1.1 ETH 0.04% $0.001779 613.8464 $1.09 ETH 0.04% $0.079692 13.5137 $1.08 ETH 0.04% $0.000033 32,217 $1.07 ETH 0.04% $0.000929 1,129.8341 $1.05 ETH 0.04% $12.32 0.0834 $1.03 ETH 0.04% $0.001998 508.4295 $1.02 ETH 0.04% $0.000853 1,173.0738 $1 ETH 0.03% $0.000212 4,537.771 $0.9603 ETH 0.03% $0.018588 51.5776 $0.9587 ETH 0.03% $0.012603 74.9042 $0.944 ETH 0.03% $0.005506 170.6592 $0.9397 ETH 0.03% $0.392765 2.3907 $0.9389 ETH 0.03% <$0.000001 53,111,285,821,791.938 $0.9302 ETH 0.03% $0.006187 147.7972 $0.9143 ETH 0.03% $0.000022 40,380.5206 $0.8708 ETH 0.03% $0.000819 1,048.6357 $0.8588 ETH 0.03% $0.000102 8,407.2167 $0.8556 ETH 0.03% $0.025018 33.2213 $0.8311 ETH 0.03% $0.000633 1,208.2068 $0.7652 ETH 0.03% <$0.000001 6,874,353.5073 $0.7569 ETH 0.03% $3.81 0.1954 $0.7444 ETH 0.03% $0.007904 93.4289 $0.7385 ETH 0.03% $0.001676 432.6663 $0.7249 ETH 0.03% $0.055139 12.5806 $0.6936 ETH 0.02% $0.002256 300.1308 $0.6771 ETH 0.02% $0.001174 555.1193 $0.6518 ETH 0.02% $7.09 0.0913 $0.6474 ETH 0.02% $0.022534 28.0263 $0.6315 ETH 0.02% $0.000255 2,469.0685 $0.6294 ETH 0.02% $0.315816 1.8507 $0.5844 ETH 0.02% $0.010529 54.9736 $0.5787 ETH 0.02% $0.00905 62.5 $0.5656 ETH 0.02% $0.000221 2,506.0553 $0.5549 ETH 0.02% $0.001565 350 $0.5478 ETH 0.02% $0.000088 6,177.625 $0.5417 ETH 0.02% $0.00076 711.7439 $0.5409 ETH 0.02% $19.92 0.0261 $0.5207 ETH 0.02% $0.00321 159.2695 $0.5112 ETH 0.02% $0.010208 45.9427 $0.4689 ETH 0.02% $0.004533 103.2304 $0.4679 ETH 0.02% $0.017899 26.1103 $0.4673 ETH 0.02% $1.19 0.369 $0.4391 ETH 0.02% $0.000208 2,016 $0.4199 ETH 0.02% $0.000207 2,022.6829 $0.419 ETH 0.01% <$0.000001 4,579,089 $0.3906 ETH 0.01% $0.025779 14.8117 $0.3818 ETH 0.01% $0.183895 2 $0.3677 ETH 0.01% $0.000556 643 $0.3576 ETH 0.01% $0.000002 214,313.3641 $0.3555 ETH 0.01% $0.008294 40.4269 $0.3352 ETH 0.01% $0.000137 2,441.5154 $0.3342 ETH 0.01% $0.006414 50 $0.3207 ETH 0.01% $3,285.16 0.00009613 $0.3157 ETH 0.01% $0.004752 64.1611 $0.3048 ETH 0.01% <$0.000001 2,999,726,838.522 $0.2999 ETH <0.01% $0.004337 59.813 $0.2594 ETH <0.01% $23.12 0.01 $0.2312 ETH <0.01% $3,792.64 0.00006092 $0.231 ETH <0.01% <$0.000001 100,697,125.2647 $0.2125 ETH <0.01% $0.001123 181.431 $0.2037 ETH <0.01% $0.025994 7.6436 $0.1986 ETH <0.01% $0.000317 619.3352 $0.1966 ETH <0.01% $0.003323 58.7925 $0.1953 ETH <0.01% $0.00002 9,895.7479 $0.1936 ETH <0.01% $0.005616 33.3496 $0.1873 ETH <0.01% $0.000771 222.2942 $0.1713 ETH <0.01% $0.000178 892.4186 $0.1587 ETH <0.01% $0.040391 3.5256 $0.1424 ETH <0.01% $0.008229 15.5867 $0.1282 ETH <0.01% $0.014242 9 $0.1281 ETH <0.01% $0.000167 750.4072 $0.125 ETH <0.01% $78.61 0.00156163 $0.1227 ETH <0.01% $0.009543 12.1517 $0.1159 ETH <0.01% $45.24 0.0025 $0.1131 ETH <0.01% $0.000137 783.0805 $0.1072 ETH <0.01% $0.000042 2,500 $0.1054 ETH <0.01% $20.39 0.00513527 $0.1046 BASE 0.15% $0.000795 5,067 $4.03 BASE 0.07% $0.001078 1,784.59 $1.92 BASE 0.01% <$0.000001 11,111,111 $0.4044 POL 0.07% $95,451 0.00001913 $1.83 POL 0.02% $3,313.37 0.00013866 $0.4594 POL <0.01% $0.998701 0.1653 $0.165 ARB 0.02% $95,077 0.00000728 $0.6921 ARB 0.01% $3,308.14 0.00011557 $0.3823 ARB <0.01% $0.998868 0.2183 $0.218 ARB <0.01% $0.997952 0.1947 $0.1942 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) 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.