From a0b79f780b5b7fc9e8691fa1e6592efa0097f748 Mon Sep 17 00:00:00 2001 From: SourC Date: Fri, 15 Nov 2024 13:15:00 -0800 Subject: [PATCH 1/7] fix --- public/apple-touch-icon.svg | 11 +++ public/favicon.svg | 10 +++ public/icon.svg | 10 +++ public/logo-swap.svg | 14 ++++ public/logo.svg | 10 +++ public/token-icons/1inch.png | Bin 0 -> 3548 bytes public/token-icons/aave.png | Bin 0 -> 2452 bytes public/token-icons/aero.png | Bin 0 -> 1563 bytes public/token-icons/arb.png | Bin 0 -> 3138 bytes public/token-icons/axlusdc.png | Bin 0 -> 1692 bytes public/token-icons/bal.png | Bin 0 -> 1196 bytes public/token-icons/bald.png | Bin 0 -> 668 bytes public/token-icons/cbeth.png | Bin 0 -> 1376 bytes public/token-icons/comp.png | Bin 0 -> 1208 bytes public/token-icons/crv.png | Bin 0 -> 2969 bytes public/token-icons/dai.png | Bin 0 -> 1562 bytes public/token-icons/degen.png | Bin 0 -> 1137 bytes public/token-icons/eth.png | Bin 0 -> 1270 bytes public/token-icons/gala.png | Bin 0 -> 1074 bytes public/token-icons/gmx.png | Bin 0 -> 2344 bytes public/token-icons/joe.png | Bin 0 -> 3133 bytes public/token-icons/link.png | Bin 0 -> 902 bytes public/token-icons/lyra.png | Bin 0 -> 1014 bytes public/token-icons/magic.png | Bin 0 -> 1246 bytes public/token-icons/matic.png | Bin 0 -> 1164 bytes public/token-icons/mim.png | Bin 0 -> 914 bytes public/token-icons/mkr.png | Bin 0 -> 461 bytes public/token-icons/op.png | Bin 0 -> 929 bytes public/token-icons/pendle.png | Bin 0 -> 999 bytes public/token-icons/perp.png | Bin 0 -> 934 bytes public/token-icons/reth.png | Bin 0 -> 3224 bytes public/token-icons/snx.png | Bin 0 -> 1602 bytes public/token-icons/sushi.png | Bin 0 -> 3030 bytes public/token-icons/thales.png | Bin 0 -> 491 bytes public/token-icons/uni.png | Bin 0 -> 2465 bytes public/token-icons/usdc.png | Bin 0 -> 1692 bytes public/token-icons/usdt.png | Bin 0 -> 1065 bytes public/token-icons/velo.png | Bin 0 -> 2515 bytes public/token-icons/wbtc.png | Bin 0 -> 2958 bytes public/token-icons/weth.png | Bin 0 -> 2866 bytes public/token-icons/yfi.png | Bin 0 -> 2423 bytes src/components/Swapper.tsx | 45 ++++++----- src/config/chains/arbitrum.ts | 15 ++++ src/config/chains/base.ts | 15 ++++ src/config/chains/index.ts | 19 +++++ src/config/chains/mainnet.ts | 15 ++++ src/config/chains/optimism.ts | 15 ++++ src/config/chains/types.ts | 43 +++++++++++ src/config/tokens/arbitrumTokens.ts | 116 ++++++++++++++++++++++++++++ src/config/tokens/baseTokens.ts | 104 +++++++++++++++++++++++++ src/config/tokens/index.ts | 63 +++++++++++++++ src/config/tokens/mainnetTokens.ts | 84 ++++++++++++++++++++ src/config/tokens/optimismTokens.ts | 103 ++++++++++++++++++++++++ src/config/wagmi.ts | 28 +++++++ 54 files changed, 697 insertions(+), 23 deletions(-) create mode 100644 public/apple-touch-icon.svg create mode 100644 public/favicon.svg create mode 100644 public/icon.svg create mode 100644 public/logo-swap.svg create mode 100644 public/logo.svg create mode 100644 public/token-icons/1inch.png create mode 100644 public/token-icons/aave.png create mode 100644 public/token-icons/aero.png create mode 100644 public/token-icons/arb.png create mode 100644 public/token-icons/axlusdc.png create mode 100644 public/token-icons/bal.png create mode 100644 public/token-icons/bald.png create mode 100644 public/token-icons/cbeth.png create mode 100644 public/token-icons/comp.png create mode 100644 public/token-icons/crv.png create mode 100644 public/token-icons/dai.png create mode 100644 public/token-icons/degen.png create mode 100644 public/token-icons/eth.png create mode 100644 public/token-icons/gala.png create mode 100644 public/token-icons/gmx.png create mode 100644 public/token-icons/joe.png create mode 100644 public/token-icons/link.png create mode 100644 public/token-icons/lyra.png create mode 100644 public/token-icons/magic.png create mode 100644 public/token-icons/matic.png create mode 100644 public/token-icons/mim.png create mode 100644 public/token-icons/mkr.png create mode 100644 public/token-icons/op.png create mode 100644 public/token-icons/pendle.png create mode 100644 public/token-icons/perp.png create mode 100644 public/token-icons/reth.png create mode 100644 public/token-icons/snx.png create mode 100644 public/token-icons/sushi.png create mode 100644 public/token-icons/thales.png create mode 100644 public/token-icons/uni.png create mode 100644 public/token-icons/usdc.png create mode 100644 public/token-icons/usdt.png create mode 100644 public/token-icons/velo.png create mode 100644 public/token-icons/wbtc.png create mode 100644 public/token-icons/weth.png create mode 100644 public/token-icons/yfi.png create mode 100644 src/config/chains/arbitrum.ts create mode 100644 src/config/chains/base.ts create mode 100644 src/config/chains/index.ts create mode 100644 src/config/chains/mainnet.ts create mode 100644 src/config/chains/optimism.ts create mode 100644 src/config/chains/types.ts create mode 100644 src/config/tokens/arbitrumTokens.ts create mode 100644 src/config/tokens/baseTokens.ts create mode 100644 src/config/tokens/index.ts create mode 100644 src/config/tokens/mainnetTokens.ts create mode 100644 src/config/tokens/optimismTokens.ts create mode 100644 src/config/wagmi.ts diff --git a/public/apple-touch-icon.svg b/public/apple-touch-icon.svg new file mode 100644 index 0000000..6c49ef4 --- /dev/null +++ b/public/apple-touch-icon.svg @@ -0,0 +1,11 @@ + + + + \ No newline at end of file diff --git a/public/favicon.svg b/public/favicon.svg new file mode 100644 index 0000000..fd9fb62 --- /dev/null +++ b/public/favicon.svg @@ -0,0 +1,10 @@ + + + \ No newline at end of file diff --git a/public/icon.svg b/public/icon.svg new file mode 100644 index 0000000..fd9fb62 --- /dev/null +++ b/public/icon.svg @@ -0,0 +1,10 @@ + + + \ No newline at end of file diff --git a/public/logo-swap.svg b/public/logo-swap.svg new file mode 100644 index 0000000..ebdc4b7 --- /dev/null +++ b/public/logo-swap.svg @@ -0,0 +1,14 @@ + + + + + + + \ No newline at end of file diff --git a/public/logo.svg b/public/logo.svg new file mode 100644 index 0000000..c0bbfc4 --- /dev/null +++ b/public/logo.svg @@ -0,0 +1,10 @@ + + + \ No newline at end of file diff --git a/public/token-icons/1inch.png b/public/token-icons/1inch.png new file mode 100644 index 0000000000000000000000000000000000000000..4dcbbc4c80d5daa3ea7804c3e36421c356d09790 GIT binary patch literal 3548 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 SRt>iR0000*(R^ z^Xvfu3jP5A>*nC=>Er6?;p^z&?CIg@=ilw?FDj};_dbB_VMHS_U^2?_5Tb21_clk6C$Lv{s=Yp z`UL>``|ADw@B07q@a*C8_3QKQ7HBQNffhWQNu@ZHqzQT}}Zm`|%A0+THBW)b9Bc1`ZN0o38weiHekylnXN9*V^jquwl?L{|yXBzsy z#>UUd!GV+A4H{Tzf#Yz8ErOQn(i;-}J}KORcwuYbd=+-GvaILb)bZop z^IweU00009a7bBm000XU000XU0RWnu7ytkRfk{L`RCt{2mDO`1SrmtFcV8N5x|_xV z1a|_#g9QSC5O*i;Mv{rkxVvS1R%X^+W?lcdt*x!v=L-*8wN-rY-|wF8bMCnSRH#tl z{|28V%a=)^M<}91Wk!%5p@`n3qsN53sdfQb z7xHya`qqtjpy$rYsD&Bww_B3Ci%#S=cxbAB9XFcZTNz*&f4k*bdTpdZFBc%6ue-U5 z8+-15WMTa6$?>)QUbDGZDjh_vpib3q!h7xyFhlLh^z8<-Pby{glCEMEVg*9g0Uo$B z%J?liYk%9UUNWerZFZYLgXrJFC%$F;mh_0vCuN7bQuo8r|JKVP96(Kc&H_9wPsQqoy`x&3hG-WT_FAKu-* z){6KE5POr$c^y@SVYXrNQKyc6zWc%ZuaU+G0F5l3AtKX`pjJI7iLvZtOwv`n zqzbBNw7UpMh+R$*dmAB}R;zWYi-lIna7?d{#aa<(fd?Sw4O>$e=3F5ct>ri^=M*d~ z$U7Gi0|Yz)#Nsb9Gaa+_O_~)QYa`2 z-3I`=Wf&IsE=A5I&h6be{pS4J`MQz<01!YZ!<3iubC=IvXp5XVGdp`4Adcd{KC%=ifsJOL>_qRH*RZ^B2C-xS{yJ9E1P> N002ovPDHLkV1kTHO2YsE literal 0 HcmV?d00001 diff --git a/public/token-icons/arb.png b/public/token-icons/arb.png new file mode 100644 index 0000000000000000000000000000000000000000..c75b0fd28f007c0419df62c6046fbef4d76127ab GIT binary patch literal 3138 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 c^5!|uml5`%I~@!rU_YM*si-32;bR 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 literal 0 HcmV?d00001 diff --git a/public/token-icons/bald.png b/public/token-icons/bald.png new file mode 100644 index 0000000000000000000000000000000000000000..5e92570e55834a223d15e3df88a71025d974526a GIT binary patch literal 668 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 literal 0 HcmV?d00001 diff --git a/public/token-icons/crv.png b/public/token-icons/crv.png new file mode 100644 index 0000000000000000000000000000000000000000..9308328a06ce4ef6bc9146cbf19a14a5c7f89ec1 GIT binary patch literal 2969 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 P00000NkvXXu0mjfA_wu- literal 0 HcmV?d00001 diff --git a/public/token-icons/dai.png b/public/token-icons/dai.png new file mode 100644 index 0000000000000000000000000000000000000000..4e3ea5fba1f866695d2194b25e830497f5f1f169 GIT binary patch literal 1562 zcmV+#2IcvQP)55w=Da+H2b+U`K%NB#!vaG5&!@H`nD?ivLO1nFZ;SP`m`qczCQcGMf$KE z`n)*$t{3{R8vMga`@~H8!bkeEBLDsS`^8TG{{8yDK>Np1`oKc^y*&D?6Zx+k`^#qk z{Pz3CQ2f}9`^jGW#8UgdI{U&&{LXRzwH5ryR{zme|GXgozb*XKg8ujD|HeQ6)LQ)A zo&U~D{pGU#?8pA`*8j^yzN1tw0000RbW%=J02(aP2K)K~{QPlovC#bOk^Hgjl#N7N z?u*ya?5hL-000SaNLh0L01FcU01FcV0GgZ_000EFNkl2|U@6o$7TMx4jm zHcTq|RVWlI93xKW7DMO%Pjsmp@!#zYjYDNjAWlP#OTzT&q%eywASAX73*h zl@=E^qVwo8Aq0@Vt2}0X-}hfbk$>68%3V5o`nwQ@vqZ!n{qcSOF_-#_fDoiA z_kQo_J&CmR{QJu92n6X|WM|z!jGlj=OT$G%8n~k0&t`iUmCg43A_wV9>E|;3Z}te` zXL5<%KnPWq{Xgs>qQ9)5a{_{NVVN2Auh1yFESwDliu_k9b520$27gFkJAt6G%yh5U zD6_24DImz*k$jUza)zS_#bxF;zbt2#MMQT%rp3%!S2i@mNFsc9 z0zs;7$i_*sHl(FWqt~9SQ32m!Mm-f05HwdA>VY zn}uT#TYSc=hb{ckH)MlOp#{wq{T|7gyY3oWc<;{Raz8O1uid#z#jl!BU;r{PUy>F6 z@OUVl00k)00M%Gy(;`u3g2)5Q#G4_NK@sX|3~)Jvaqhf>~ zlcp%j+bMk80*>(yhizLYk#p5<({l8u4Yo{Ax7%$xoCCyfhfHWY31F*(a6?g;*5Q^% z0F5seaLnMisS@dmyTK+t#9lT0YLHEJ+fD)~!{bP)s_uQ5mWe+HL$+V`mTanNeoMW} zwjJFiAJen92<5r+{lO&jf9MS9tZduf^5pUg`LC)&OLysm#XKG?6TQuZIZpK}AD&F9 za)%~#hHlc)Hq~Qxr`joprz?Vo_ZWcr0LGiokM)yo56%GZ58tPAs{F6oImwxMv=&dc z{^kq@9ae+tzbFA9qwroGQ0lOQ>I`PH!MUpMWCS81o+Zp^C3qu0Sw!D{;Dk$Y7c~>; zOBUqch1pFKs15)jG=iH5LeOCEx(L+*;pu7#K`nM)N07dOAOy9f>v}B^gy$909 z9F5@R3WD$wG!hC9AZ1Km420=_ziKK3V*XO)mIjUwUPSS-T@+se{!-Be;XvfeyM-ve zBuW$)yK?@QvJb+-^P#*8L@^E_Ey1q*@K^0hMkkf$gI%y77Ln{p(Vt)!@OfhYt9p)# z?*=dKcDo?j)q>q_C-RN!itl6jkGR%DjW3Ifg;?fm4=s*3lgj`90pbMlPSE(K(f|Me M07*qoM6N<$f_bhP4*&oF literal 0 HcmV?d00001 diff --git a/public/token-icons/degen.png b/public/token-icons/degen.png new file mode 100644 index 0000000000000000000000000000000000000000..ecf5bd2f0ffb223a5152786eefef179c94711be5 GIT binary patch literal 1137 zcmV-%1djWOP)K~#90t(WPxt11kDLB=2sh}5C&e*ee3E2u}%+TFc+^UvCR zhLDk{qX;2{63t_5Z(Uz&UH9Fs9Uo2n{Ve1ap!sRLi7{3IXbn}x7@NBGr}-TqQ0~vp zvP#!A=bUQ|ob#INirMaYN8`jbK%jctvr408E}Zg;_3iz55|RU&v1e6XAGKEoBA(49 zKnV5dSVg1ZuK|eY9+?d!wSSygeWAQV*fhQb2+_0_IK0=_8ftCZ$&z3T15q5JHXiv-58@aL(4dAo2bl6Z}O# z9%EYKfkX#%EDJtJC3(yb(KY`7BdgPwoXSP$ChMb4{so*pH^9BGGB(V?dtc__eF%_V z6o>vE0YbDabpW-_nBs*P<7S%JP_q^R0u4w2AbmkDq$p(q;JUvHL4} zBH-!_<^a$zJ;-SDEC6bUODBXh4$uTPl4tG$^vo5&kSvgvSR%I*0Nj-YgFOLme&V-4PF>iWpJ zEApa%f%H59l5okZ`4Xc!piPqrDAp1~=0nc?dmXbREee=SkLehM##wocE;L3$iEq<{ zz;td>FD~V*7=n~KWdLX@XY@dB02UOHmb5hrjVS|QCt94qDV2OKW1T5ny@ygPX(B7C z9F{mPjPt>wDy1B3@Qy6MyELPhqS~Zo9gq;?*c1i>s4QbZ6;a*f`fFJiSz`e%!?32p z*5SEWbt{SL>P`V-Mu!guYSc%DaYOX4_ z_nZJ)N^Zl};=KEcK800000NkvXXu0mjf Dk7XU5 literal 0 HcmV?d00001 diff --git a/public/token-icons/eth.png b/public/token-icons/eth.png new file mode 100644 index 0000000000000000000000000000000000000000..1e0c19016231faef96b15bfda5cfc479d5bb8a83 GIT binary patch literal 1270 zcmVgb|nAu;+O}0IWs*8v+}+*ftqUE{A{9J=knkdP*zSOo@D9r0g+C|L0w{n6 zXn~N7N<2M9xM?FvkoYq=kQd(nxH^K=NRlKuJu}Or(xR@c@4}&N+q5&jW81dv&bIB; zw$a2>+qSbOAYXNkx2ew!9c=IYBh0lTca3?loh!8^IohE6Y2gpGwa|NNmIdoG z-%|+)13rcBN0wiAukP82%ED0XLHUOgip>#$I`lce}E-8%A zA}gSVUx;*vc*2{hhy=TcmNSYFOlco2D4$v^uGWPJnH5tpH9UcXD}SX2XUZ)g7(zrG zam55}vYZvc`V96`e}d?f&ws)X_`-)NdqXhV#zVm~u$Ke}pz8(^g*llLfuuFTLXZI@87#3-<-D;cyjw2OA=}D$5gXbaika z<9%+<7*%zA$-<8(()1LL#SOPjJG%$>G2RzEz!;;->i@;|@C{pbaaDVy#yxenuKT)= z2U0bxo>@(sb)-(b4zVz960U-)>0jR6`sY3#u7=fDtBuw%n(Ysj&yErc3rPe(hTk9t zx5w?)QE&I%2diQA*Xp=cSKGs$tA+)%rVaPvfDOs>C))puJ2YJr+*-k{i~j=p0P`(s zSlzc8V^uUaJ|6;9kWBD>w&=wLuT+sW7)I=pCS7p5RIq?9_*U;#!|J2e3ai?u_K*nz z5CGfI{5Cy;&j~z39jI>=Vj_J1U`@S;)gP<9R&8t#YhqZy8hYXPH|Vb%7lz9ubdWE> z5hTC--Nf_m<4S-MWWu!`3XbO;SlzT5Jl_iD>J0f4%HTop25#vTgkemAzZ>xISB$}} zDQ<1z_IhjfKF`!UtGQNH&VKJif(XRGzFJVSI$`q?D5h{J6TCqi=wpyW>zcKC&+VL= z&1~ibc5sE!Pinz5kxRG!1`*=n$51fA1>{mh-SbZfxe7%Lp%GpIt%e)KDjfqm^vGmZ zfkg;rlXXH0(&1Fi4Ak%oDbpY2Dfpuf+cL=npQ|#oHZuqR-BJr$K`?zI{-3v!PE{^j z5(at$hUpyWp;RU*r{M#<(>+HFCS`dosCc$v_ZPqtZt_|%2Z|Zc8ze}DU&|8QfqjMq zP8gJ>`afhap<@K14f{$7Izc$2LI}L4et~I*eTGVvOZWu;3=ER~%$7?=Erv5v*v4k5 g`LNE?G?X*+?us(sjNhG)O9r24(_YMnj&=wR0E-u2^#A|> literal 0 HcmV?d00001 diff --git a/public/token-icons/gala.png b/public/token-icons/gala.png new file mode 100644 index 0000000000000000000000000000000000000000..a9f34404de21c4ad00a3e10786a03e7b0d61ec49 GIT binary patch literal 1074 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 E05DFfm;e9( literal 0 HcmV?d00001 diff --git a/public/token-icons/joe.png b/public/token-icons/joe.png new file mode 100644 index 0000000000000000000000000000000000000000..68fb02492c4f66f32f8900c31532a54deaf4959c GIT binary patch literal 3133 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 W*R?@sQZDmD05CPS1UDGE6aEKPnmYvm literal 0 HcmV?d00001 diff --git a/public/token-icons/link.png b/public/token-icons/link.png new file mode 100644 index 0000000000000000000000000000000000000000..b32aa21d153d014819cea400722d5bacc3eb0a9e GIT binary patch literal 902 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 IM6N<$f*s~G{r~^~ literal 0 HcmV?d00001 diff --git a/public/token-icons/matic.png b/public/token-icons/matic.png new file mode 100644 index 0000000000000000000000000000000000000000..0a337cd254074c70e5fdf7f90162f382ab8f8c79 GIT binary patch literal 1164 zcmV;71atd|P)Gu^`$7N!010qNS#tmY3ljhU z3ljkVnw%H_00X2+L_t(|oUK=hvZ62$j0z@rRWeMt1Qf;p|HZ9II1&WhEjCqFJ$+2m z({qNg?-SAIe7YRNKyWUC@OU|$&5tt=f1il4=ynK2p5!S=DJ7(Nl8f+gqyPMk`EDPk zNh-Mzf^#Xk`9r2j8t!+$AfkxvEG$Ua1TdqOz4N=EFId;9_5mlwGci-?^ASAUR*sMjGl1a3ZD^U)pv^{Xi>l&cUt zzm5dGOWB zL5SpHDeMLU2%o~3$AyK7+X{bCh(-nU>tWxV-K*Y_N2!0Q5QV8B09ab`kC#S`B>O z!6h$v8j=e)YcHiH@l{a*1<(YO2&u<%iSqPDMLc*w09l3Hz7Zr=nF9dx3C&pNK?m@1 z2m{^+0MNPv_I+UNETju?cRkk64gfUPPve>oAjO%ThAf^1P(`W9nYJ+EP7(6cm_^?J zpr3J5BcLn`MdvFwDVL6G4C*Ix-3OFH+|(Wf&yS;qGXRq7zBY&eK@@F;+*2`tWdPt< zH#Vt@w(Ni&r5uuzL%_yDHURA?HEGw^MpGkd>xxoYJ*Kx{BOjZIpFUbP72}~QK_V~h z56wuEj{ty;Egy;&*uK)0Rwo=tgqE^98yRrdg?h9=ted_Z`Pi9&1mRi;_FV=Xqrpj8OF65 zhGpO0hvCXrDbPgdr<^yghw;u;E6crrH#{Os;eQ0000QTtU@_fby#aa{jYQT_kfRsPvjm6Z9JnE3qI zR{!8kR#W^^Q2u{?`f2m%c-IO000SaNLh0L01FcU01FcV0GgZ_0007sNklTIv`_W%FfUf^VwSX0imA9nZohT!et2oDFxu_=%UUkJ&- z`M!dG8sLtCAP6S0MHAgKa&G`UUrH(C(4tuP_}&e`*q4A%9MX=$7$K1U_y%C+O8^{) zqN6az0Meh`jDXL1vR_!VPxzc)i@=*|O?FDD?dG|o%~mP3o0viNL`*RToG(KmXjzc- zLZm3E5aBY%fbsM?fYP#H{IS zCw4%>aXrOw$E7^mT!93bDsJ=#}@Sq;B(j0L(0$FE#Bu0a$0wWbZ*h(&$0Js?j3=^281w zFGe2+_C)Rn5OP`v&2GF4z*>3;aIXIV(hoouL%9a%7>cx5+BHDO(gKUAUIBDXwa3=` z&xK1{|EYroE|0ceK+n-8haIk?p~t&Bw7?i#;`~^V1;ffbJh0I8hL*a6i|wB(_vNq) ohd1=f;|{%a{RJ0K=Z^z^1F;_I>x>*>q5uE@07*qoM6N<$f|SOz7XSbN literal 0 HcmV?d00001 diff --git a/public/token-icons/mkr.png b/public/token-icons/mkr.png new file mode 100644 index 0000000000000000000000000000000000000000..9e0fa14da9705708adc475e0256774508fb31421 GIT binary patch literal 461 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!j01c^TzxVNC05OnTs1>t^=wHP zVpuv?3dEi%v3!Q;im4JSKn&@P3#8W0mEOLznsZh>P&;2qkY6yvB8}}g-yCQDEn>@C zmDO>_%)r1c48n{Iv*t)JFfgilx;TbZ%y~QMVo{3%kE?!{$}6u=|Ko2r z#;#@JGJYF;y7tJKk1-qU<`L^PP{`QrkfwN}!R-1YWY_K#|Pj}nfSIphG;n>3` zSGYF&dGBRQ+;~bScu|6_adrG^$Clp18Jr4^k9N9UnQjniGNWecG57n%-i!*D9~}z+ zueJa3!u4f^`#5H3{|VR^wfn(nhD43)7BAav_n9x)o*wo1LcP2_ zL&2X{A>vsmRq_44%C%D;OL0w%rnSsF=Q@{!W%`LxA&) zN`_~i5tH0kGCQz5FK^iXI#oA{VF%N?>YFSF>{&e6B={Rr7#{L0m?gR5yWoOZjGHoz w&h;j~^)o!TQ!>K+IZx>F>Z+=$e-8T?o*0UM;(9if9~g`bp00i_>zopr0Kxga#Q*>R literal 0 HcmV?d00001 diff --git a/public/token-icons/op.png b/public/token-icons/op.png new file mode 100644 index 0000000000000000000000000000000000000000..7fc4ce3eba77b58c26af7a094a3a6178b040dcb9 GIT binary patch literal 929 zcmV;S177@zP)!DgO*7{|6)g2P6M5MgIdJ{{$cZGdlkdD*p*3{~1{{{$i?k;_g1000woQchCdFHy+afOnArdT010qNS#tmY z3ljhU3ljkVnw%H_00QYrL_t(|oUK>cmaHHQ49XHjaUuWzt@i}bQP637xOwO^Jxz+r zRscY4mOn<{2`3ezl1_AfJbw6S7Qk-3Q$%4mB2up3_?I{CdRW*Q5z&|sjN!i+Wf}A* z2x~!il1%pfv4~KQ1cT) zPv(Prf}sAMfS^y?9|*$U`%Z}54*fZk7UtLd4}?=KEKDkV zLx6(_YC3UPzX~8B(E3AQ_}-rphMj_z;j08BGePQ1p!*8}rqCq{`cDK73ifXqIAy^u zwE@r=I88>$}0l8lcPbnSz-~osO~@%cj9P1ZK?tOrz3M9GE!vo49mA z4ndXx-44KwZkMpK=(}}wk}B!uB)V%Exw0__QFg%-!(_>+kA1F;xTXbT-wcF=+<0q9 zwTxEl7H`*8oyaGK7d^{K3JgfXoL2{6&jCsXun`U;}r+mFIl$nng?HBG?VuJ&#Nx{hs!p!Uiabk zgTp*LIH3K>V;dh`(ERL!=7(qd(>Fu3Jiar;`{(~ZqSei{2q2V300000NkvXXu0mjf DBKe-; literal 0 HcmV?d00001 diff --git a/public/token-icons/pendle.png b/public/token-icons/pendle.png new file mode 100644 index 0000000000000000000000000000000000000000..887ac89b7a487f095eafecbbdc6bfe8d15007fbb GIT binary patch literal 999 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 KMNUMnLSTZ#sGy<% literal 0 HcmV?d00001 diff --git a/public/token-icons/snx.png b/public/token-icons/snx.png new file mode 100644 index 0000000000000000000000000000000000000000..32d483f8e0b29df55672f2f14767d47f0cc8d608 GIT binary patch literal 1602 zcmV-I2EF--P)*O$q`f6$MZL(fQ39~s0LbzNe60kW$_+Si0l(`AW0eabOaScvTZ$-|0000O zbW%=J0Q-!KY$!|t1OEN^?-=W>tj*Ku(uftqmQ~lq00009a7bBm000XU000XU0RWnu z7ytkS_(?=TRCt_~SBZMEIuIQdWpiKJ-~yDCT{h)bYqjh9ztjDauvxLc9{nK6nK?`{ zAtV47-~|8>+MVWL+!aMp?2ZS`PMbFJm(~~H1s;S>b1XieK^!+b0ww4}t((9J{XT##Ok#5Qo3WILi@O*gfOI83}=h-XtXTP~80_8G;~r|6UXdA^v_(gCJ*rb|Q5MX$S&v zUP$1HuZdA2IqpS9gdW}>gDUl!F&-TSVO$6V#wv$xq{nYe84rISQ^Q`_8D#{8z?h6; z$Ma~_sYF0*jpR*ry)g7#^(`UFb|nIb`g>jn0Gf_R;o#j*5-_AxA=tQta5pqEdzF#N z&kpB4O#qnY6?cEyX824E62h13cq-mfeg0&?cSYPAE87T8*l|?+ z%Hm%cdokzZ!bNRErxZ|g=)@~|4;@u?i54A^SBwgS(xn44MC+>Rs6>HXRlNOqlR{Mu zziDq)MzF<%bDZ3cxu6*gO5G~F&E7?-qrN930wdUjwPt7l(|Q3lbdZYN6C1$f&39_; z&=e*pgPIqL2HpK)2~3YKp?<+rp9$#b8g%y~wQZ7s^uxVorUSX?AFttI;m=! z?uTp!lR;P+!720!NzIrEEo<5YroL7KKYUHdJ89={<}R$ao5FBi!}v}%gYA^QnD)y4 zaO&*VLzu1o3rOft%wRSZjP&z>q)W^73_4~})AHORjm%&Y`MZub#bjg|LvZxBvOrauR+lCRGG-hU++9@z9R4yQyQ}S5=Zk`L2--R?ux9i;BG_`FSq&Y{r zFsA}@@?qhj*QZ8vt&G6<+Ysu<|{|X$mHEYW-Uu#vC zwJlrp`_4nJKc~oYLsK%pz$ME905S^8#{6zHmgO#qA1&_}SdNN)9uIB#et)@L?llGA zo*K(*m{+a^8c&sN9*|5}*A;5euvi8vTixM33Jq(>pKsWC5QxGPr7PFp4Np(x*06?k z+x218c)AIV=+YlZFItv$gG9r!S~Uj_phq70-$67Yx&Ful^w2emEZO=4vK5W49lC%W z`}%)K$X3+<dd}o76kN>UVs4qv6+#d~F*N^}I129~y4VH{dZvX%Q07*qoM6N<$f;;)Q A0ssI2 literal 0 HcmV?d00001 diff --git a/public/token-icons/sushi.png b/public/token-icons/sushi.png new file mode 100644 index 0000000000000000000000000000000000000000..af7e422104a2f2caa55425995cdf7cd8b6557932 GIT binary patch literal 3030 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 literal 0 HcmV?d00001 diff --git a/public/token-icons/uni.png b/public/token-icons/uni.png new file mode 100644 index 0000000000000000000000000000000000000000..04afe35f13106ad89f8576809c9881d592fb609d GIT binary patch literal 2465 zcmV;S310SzP) z_x%0m@croW{Pz0(>ht~K?fm=w{p|Gp{r~>s@BQ)k{NC#O`TYIg?Ec~H{O0if^!oem z_5JYo{M_sO@>`=?_HPvWiM8X)f)b5K>&owOcWI#e!d?? zp6j`~>$*B)x~d{TKny~AO|xx?U)c-WUMyCt0pNQwnJJ60{|f; zpwyv#Y>n9lkdso`%8o( zeBYd#k>_E&jz=Z3iYZVynqyhEWx?kGV7*=mQ$d(u2BM-U2w|EW0TN)k4jITqB9t1G zYL*Q(EbPU4y#OB9pAtBYz@lfm0HH4-9{Qll5&{_1)@;XdfWZY+@QXwd5`ZEiGctz~ zmXHA(G6*06I`m4(e-+z^6hH!w{V9QSfJy=ezyDQY5k=SrAOV`7Vh;k+qZIm{cY&Y30HP@R zhs{j{5Du@5N3H^78zSyXoBw7Pvqh3R=q*Inu^)0v7a011IaXm2|` zv=M0l3KkpyNCX+oci*?$Azy-)b=PI;NFxY=7zU-bMs0gxff`p(#Ciny{!$ciH}{M0 z^K+UbiE~qznF>l$WfDjMAqF)ZAko5BE*9%|2@{@yugpDn_PR}7(<>gQz2Yo9wIGaWhMJ1u`MVJqQd98j0Z`D0{UU zIT*%KQT*BdU($3_wyT@dsebx0V+ z+c143^-)kF(^sPX`qb$?)hx^b+6ZZ&l&9};#CeDg``e-V>88iBy&h<@ebx2$TqoMwOdmQ0vu`>Nj{ds^vwZG zwBq}7-}}0jSy^_GuFEXXH?Pg9>YlfA^Hb$Er3S7w$951wKmgzXCmJBk`Ra11kDJ}5 zN_3ax|1M?odUhLmcRlM5%`iX-j$=6%v_jzVaKGV1`@Zi@ukG^??Yi^km@vkYI*h}x z%+lB9pA8cUjdXY$EL0+w;z+{In;zTB?04HNP46yaZ1WRlaU6zWc6`QbD@xQhx+e?y5;{7}b7%ZAw&w3OAes zcPzBQ9;GaNV-2DxMu$zA?Tf;5b2rx$mob$^-TC#}SKCV%rz@gSs@a;YK|GKMB~0;l zn$5)dTzI7I)_3uK&Rw{iSWtA^rcIxZswvYw_5rpDUkbtp07y_~vpNoshdcq7;lgT8 zWaF?sZriMEHup6B=kUb_T7VRUu>^D(ia))!S)4w6GXj8|MLT78c>bKOZJ32Wo32i5 zYCr}cXHc{-oXHmg%)jgK5|{P;pu_#<&*-T-H$RM%KAKfL+;_~WR0SPpNj@#Awbb&9%U6UQNI1AInbmz%w zCA)gDlc{k}USS-E+hs2Wpd}5Wfk$Bk_`*I!hhrGR{>b)UhkJFqcK?c?e=ymht2B(m zZ9*kN4WqX;yYG9=`J2Jl%-@|ZS(e3Neb^tsWGH|@QpN9Au2_5+9$qrzgJCL?>D!qX|D$aSiah8(!(_! zpkw2fN%#POXNH|>ModoJ+<(;RY5MG{_9&{luCjZ5Oei6SBuNRxqC6 z{6Ld759NDtyq`G093VV+dg!vuARf#Tw<`e92SGspC=q@C>b|1u;%2m+wP_>?d{ ze|$*6d^>M^#Elt%nm`PM{4Rlu`BMYZ5Wx#-SnwQTXeGDLg#3=5ey-`^;1kLmNQ5U4 zY?h%0K#)lA34Uu4y~?K%Tu#sh4x!4tnFJj8{{i3~IT_Rlc4y!bA8~I%K`ZeoMkEO$ z2M&=-ZWP9O7`24YFmEj4O(Zb+3*gsQff`0R`w^T$OB{he1!Y3iza;V^evj0g_i~`Y f`_D|suwMQL9^e!A$x*nj00000NkvXXu0mjfVROat literal 0 HcmV?d00001 diff --git a/public/token-icons/usdc.png b/public/token-icons/usdc.png new file mode 100644 index 0000000000000000000000000000000000000000..4241025e96b06ea7fec3bae234a11df0b5af2332 GIT binary patch literal 1692 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 literal 0 HcmV?d00001 diff --git a/public/token-icons/wbtc.png b/public/token-icons/wbtc.png new file mode 100644 index 0000000000000000000000000000000000000000..6f2dbd1cb4b2fdef79ab861a134775d8730da496 GIT binary patch literal 2958 zcmV;93vu*`P){Q6I8He)K37LigLQNJ_wYkELqj=BOFl{1)6jl(c$tuy z^z`)h_V)k(|MvCu^z-xZl0p6b{rC3u^YZfX@$vMiQTF-#F(^IolS52LSS%wv^z-s& zU~&5T`t+wx_W1eu`S@^adBMNM^rT5@WpwrR_E1Y(NJLcA($?D9+*3|p?2S7$EJTrw zm|9h3Us-DP_V|N;i(*`D<>cq^jyw1B?cm?y_V48CmrwAkS?{xI%*)Wcxxkl{o_u(O zc5;8BpQwq2kglw=sHLr(nxpvq|Mc_q@2z0%?Cw`mVf5q9>ySe8-p91ExasKX>y$|F znnv%wg7DC=_Uqp9*SyBW$?m|5^XS{@n^x*4I8 zRPV%^|2zXd0000abW%=J0R901{sjI50sR+A3zz(U^I16Jj`6p~DE!c9B@wCGb1qe1 z|95a&00009a7bBm000XU000XU0RWnu7ytkXkV!;ARCt_?m*-d8%o2xJ#+EFKfzT6D z-g~80v1G{-k}bK&y%&so0n=-!>B&ET&&ps(;k}u2_`s3p*_qkj&h7y4XPY1h_v3$V zf|!_o?E-&m#K?Ji{l$N#rvAJ7&ua&QO#Hn&0FL$fnUw`kIxWjNi87<3XmA_25oi zU6`F5h4+lJ3zZJ6zmahgQ+lC2_+UKbOULasr&FDqodyJOx&DlBp>MNuDyf}N5jyf6g_x9gexAi(O1?8MACMN<{E0w-Ss9a$p}3v3tjM6M^E%Cn$OOvE^TT+i znA18TUhg^axvAd?1elebo(4>GEUP%!gN7gqEKAwOvVutId?KT1+O`P07(Vw~3)%2~-?6-LE--$xTfgKxAotx$!13|m?S#M8YXzzdJ+i9_$PvftN@-`z(Dey>$D z69ybO@t4zJ;z12AhZ{`3mE{nOi|{xE1>xRfV`GD&1VI?%M6c10!;=!skm`)BC>!wF zMSz(!wha^7wy5h5?i3XaO2du3BvBjVAXr^56$&DZkn%hr95&#!%MGSvQiFSKEt2qx zWB-kVqk|3V=ICfM`k05PAMa}|SX#ptCIR^8H6l2GV+EHJu%&4se!M=L-@HxTev>|@ z4lku~2o%NYnXJ}?eOz7y?r9ftC&0YNnSsrm)`b+!Jp3@ad0R$+^5LcQm=?v-qPcID zU=d$h1*pfoo&b&&H6{wC)e&iiwh4kDY*62B%eObdUjdZJ$M=&hc%`NnZ81y}U%@9tleEy@?(O?Z!5WKR8f~v1O%8*;~|*I6{0A3ib8<;CqL)+b0hQnxpFFX z_bvY*C_ztTtpO}J*Ve%VAi#_o6H8|C7^2lFiemDW>yPzQ&d+iFTCH}PO8NbMf9f+c zRwQc_lr{`u>3Nic>n&!&kQPbkLsS5Yr5M_~;k`KHIIec|?dIU(?hu7>crccO$oG|8 zbi`OM6~!50L`%Zo9_W%VC(4pm!q$DWsdWoUOWnc5@9!H z>J3bu2LQ~d79Wp968aMWP33QDXFi{AYwP=AD&^<6!)vef*r!B(phSjoTz!QASdx!x zkpz!+aU4SM%PDsj@P)(S@JLgqcSpe|TI?$kY7B@;@kr#S6lf;+;XB9qef4_1zI%%F z%#}}%f@2}TK`fGQU@`(MVji(-YK@-((ub|Ezg+v^tyDG-u8}PLsXOnJ(-1THkkhWg zJ6x`wM2b!LD2pP0B#602N^8$EPq_GY~*R3ZMD8vp_if z)wpl@BHy%fT!;SzT!lLTz!ca2V-lIkYbRIXiKJ9Kw=byqyJEP#y z2TD(LG_#5x2#+raJV-K^fr5Pz8Q+rA$n<=A-I=xdTb3ov1tck z6U-rO7A;E~lz5&IM1dL(M+z_?U+tP&v5RANDA163Ba4pIhS!_T)o{1!tm}2c`a}hIA%;k!aLcav{V+Bhuy?Sc32XZURisq;V3@4oVP0vDyeVn^*CY z0U@7gC2>5x^bY0voH<+$f&i;;(ke-&bD3sB}RvdSQW=vi_3CXx#rTu4iiZKQsq$jk-1?)&Kwi07*qoM6N<$ Ef&&Z78vp--c6ATY%4K*MG5dZ)G|Ns90 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 QE&u=k07*qoM6N<$f_~#e3IG5A literal 0 HcmV?d00001 diff --git a/public/token-icons/yfi.png b/public/token-icons/yfi.png new file mode 100644 index 0000000000000000000000000000000000000000..1d64491758f7be7c6c319a8ab9bf866661b639e5 GIT binary patch literal 2423 zcmV--35fQIP)n;Q(dV0B73~24K1XY2E;P{{U#+L67GEW8na4-=oOz z_xk<-W#+8T^8jJl0A0?{;`jh(?FeMS?)Ck|-1pY!`X6}O1!l;Z!}JMq>;PKB1833U z?fL*+(Ewr7H;U@$^8C5g^)-dsLX6u0U&~*j?*LoKfwb)aY3LSj%o23wkG=2!VBRZ& z$g2@KKrTPn6&haM*6BQchC<=79PJ7%Bq( z{9gRa&i!SK=KQMks>S<)%V&-H?W(HE@^y{#hd@_A>*ga7>@)`e000SaNLh0L01FcU z01FcV0GgZ_000M8Nkl!3Fv$;zqw@Z?0wF;C;KAQ`%nlW>Ac|*uky#t#82sepr9xU$@)eISyrP~C=@!Kj;76Kvwz92Q~JMr zlaU|%6^~?n5|&k}m1?zGtx)J_+F~~Q{r*6}WVGl$O<;<@sh56`u!BnSU_2(EOC`U5 z2@@E{O!TL5>P;UMg$8C=uSTQM5Iiq{E|p4HfXQgIg?EhpF9UBdP!#$w%?=K>32+H$ zi^XF0FL45Fws3f7Gw^BrRT~sVePq2Nyn?1_j3)+&fbjOtrfb_c@k%KvBz?yYa(GRr z03y5%<2N@wF4I5KUK>&|o+|(?#)mQ9!1!%~_xLbFH^Ikl zyh2A?(rI(4v=oa84PXMNb834+$UvbFZG6jsLYFQbMN+w3wiq;p2)-r2>2%nqJmVb( z3JpvP1n>n&ALW35vcVA70UqykINXjuf_b23*ukz2>gXbdW^%a<05Er<7M=)j*xkdP zc}i%&+tmR}5g2IR-;_!>M=4<7?owdDVRyT=!@jl&nWS5QE`0|~^zJlv8ZgB|V?|)1 z!35s{jzFs&cK<8m1@!e8u-s$-j$-%_223Vf=mH=s!n?Ivy~?@BNsvieBh)TH`UD`7 z_AdoaW1*PQ79Pt11QS97TD@MSB@!qsK->WZO=p4GJM}M}p5Nc^*=*sI5fK!z{LL!lUI^ZS@jStTeGwsQlod|^ zCb)@03ZJ1+5Fmo(=Npjn`09>M0aTcvFpsC0EHQxr+F~x{AbJxs5rX(m3K}O2L~71_ zMTFnj*ytZXzuFGkThL-o7XdC}0V5%}z5pf)aQo1#=93+Q)wPX{<-!o^W4jFCEqJ=e zKr|TQ6kOi}1Hfc}f!m~=;8i@nzc7d1vEnVtZLwGppb-pRVuD1z0StpV8c&C<4yZ7G zxxerpjj~E{0mv3RJx>7>Js}Dbi8z)}Ek3+-@I=76VRZyayh`yF&qWeRfg=j7V3Q7OV)5fBW#R-};-z{W z0XX0Zv}aYw6-WW`AvTcrTjg6LB)s-{XT?#KQ zaRlJG+&M!c0SL(?I#HC`*-Sj(*{fB!LtH51KhHKu2YUn{956J2R+#0Yl*^R`$UY|R z6}*PZ2MvHHB7nnl1nWcXj6=;RO`Jenc3ue)wBi zl20=A2RzKFi`&~s6&T3!20D1_S7FFP;|hKWabecu@sTswdLn1#Rlx}388UPXAj~kK z9_z}IwU?(<6eqMs{Ghzn=>W!)Ar?keilRO%#xTB}1sxT8(!T%v{Csd$E_co#cLwkx z=}z0y&-7S3OL9rVu01?HE|(#C3`=bPTkTM4`~yV(kfd6_2osiNKhv6K44} z-dRHH{25$X|NiRTjiS)_CzGcqN~u(9LILvKuS0L#+$ahSd@*fyM=9|d-r5~`>(YhD zy<_~3(K9t=7e=Wze#^SGJ2~`n@;!e z@bECd1^fFA>$`>Z5pwnY8=Uunq`w#Ehn>EPTd!JOTU}KZ3ab8*@4xZ>`cD^l?)pEp p_|N>m3kwVVlOylvhTgpX{}0ClG7Q;NPTK$g002ovPDHLkV1g6(dOZLD literal 0 HcmV?d00001 diff --git a/src/components/Swapper.tsx b/src/components/Swapper.tsx index bd2be3f..109489a 100644 --- a/src/components/Swapper.tsx +++ b/src/components/Swapper.tsx @@ -7,42 +7,41 @@ import { SwapToast, } from '@coinbase/onchainkit/swap'; import type { Token } from '@coinbase/onchainkit/token'; +import {useChainId} from "wagmi"; +import {chainConfigs} from "@/config/chains"; +import {getTokensByChain} from "@/config/tokens"; export default function SwapModal() { - const ETHToken: Token = { - address: "", - chainId: 8453, - decimals: 18, - name: "Ethereum", - symbol: "ETH", - image: "https://dynamic-assets.coinbase.com/dbb4b4983bde81309ddab83eb598358eb44375b930b94687ebe38bc22e52c3b2125258ffb8477a5ef22e33d6bd72e32a506c391caa13af64c00e46613c3e5806/asset_icons/4113b082d21cc5fab17fc8f2d19fb996165bcce635e6900f7fc2d57c4ef33ae9.png", - }; - - const USDCToken: Token = { - address: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", - chainId: 8453, - decimals: 6, - name: "USDC", - symbol: "USDC", - image: "https://dynamic-assets.coinbase.com/3c15df5e2ac7d4abbe9499ed9335041f00c620f28e8de2f93474a9f432058742cdf4674bd43f309e69778a26969372310135be97eb183d91c492154176d455b8/asset_icons/9d67b728b6c8f457717154b3a35f9ddc702eae7e76c4684ee39302c4d7fd0bb8.png", - }; - - const swappableTokens: Token[] = [ETHToken, USDCToken]; + + const chainId = useChainId(); // Get chain ID directly from wagmi + + //map the chain ID to the chain + const chain = chainConfigs[chainId]; + + + //use the chain to get the tokenlist + const tokens = getTokensByChain(chain.id); + + + + + + return (
diff --git a/src/config/chains/arbitrum.ts b/src/config/chains/arbitrum.ts new file mode 100644 index 0000000..c807432 --- /dev/null +++ b/src/config/chains/arbitrum.ts @@ -0,0 +1,15 @@ +import { arbitrum } from 'viem/chains'; +import type { ChainConfig } from './types'; + +export const arbitrumConfig: ChainConfig = { + ...arbitrum, + network: 'arbitrum', + rpcUrls: { + default: { + http: ['https://llamarpc.com'], + }, + public: { + http: ['https://llamarpc.com'], + }, + }, +}; diff --git a/src/config/chains/base.ts b/src/config/chains/base.ts new file mode 100644 index 0000000..34afb31 --- /dev/null +++ b/src/config/chains/base.ts @@ -0,0 +1,15 @@ +import { base } from 'viem/chains'; +import type { ChainConfig } from './types'; + +export const baseConfig: ChainConfig = { + ...base, + network: 'base', + rpcUrls: { + default: { + http: ['https://llamarpc.com'], + }, + public: { + http: ['https://llamarpc.com'], + }, + }, +}; diff --git a/src/config/chains/index.ts b/src/config/chains/index.ts new file mode 100644 index 0000000..c7651f0 --- /dev/null +++ b/src/config/chains/index.ts @@ -0,0 +1,19 @@ +export * from './types'; +export * from './mainnet'; +export * from './base'; +export * from './optimism'; +export * from './arbitrum'; + +import { arbitrumConfig } from './arbitrum'; +import { baseConfig } from './base'; +import { mainnetConfig } from './mainnet'; +import { optimismConfig } from './optimism'; + +export const chains = [mainnetConfig, baseConfig, optimismConfig, arbitrumConfig] as const; + +export const chainConfigs = { + [mainnetConfig.id]: mainnetConfig, + [baseConfig.id]: baseConfig, + [optimismConfig.id]: optimismConfig, + [arbitrumConfig.id]: arbitrumConfig, +} as const; diff --git a/src/config/chains/mainnet.ts b/src/config/chains/mainnet.ts new file mode 100644 index 0000000..5259eca --- /dev/null +++ b/src/config/chains/mainnet.ts @@ -0,0 +1,15 @@ +import { mainnet } from 'viem/chains'; +import type { ChainConfig } from './types'; + +export const mainnetConfig: ChainConfig = { + ...mainnet, + network: 'mainnet', + rpcUrls: { + default: { + http: ['https://llamarpc.com'], + }, + public: { + http: ['https://llamarpc.com'], + }, + }, +}; diff --git a/src/config/chains/optimism.ts b/src/config/chains/optimism.ts new file mode 100644 index 0000000..907ef88 --- /dev/null +++ b/src/config/chains/optimism.ts @@ -0,0 +1,15 @@ +import { optimism } from 'viem/chains'; +import type { ChainConfig } from './types'; + +export const optimismConfig: ChainConfig = { + ...optimism, + network: 'optimism', + rpcUrls: { + default: { + http: ['https://llamarpc.com'], + }, + public: { + http: ['https://llamarpc.com'], + }, + }, +}; diff --git a/src/config/chains/types.ts b/src/config/chains/types.ts new file mode 100644 index 0000000..f7f8161 --- /dev/null +++ b/src/config/chains/types.ts @@ -0,0 +1,43 @@ +import type { Chain } from 'viem'; + +export interface ChainConfig extends Chain { + id: number; + name: string; + network: string; + nativeCurrency: { + name: string; + symbol: string; + decimals: number; + }; + rpcUrls: { + default: { http: string[] }; + public: { http: string[] }; + }; + blockExplorers: { + default: { name: string; url: string }; + }; + contracts: { + multicall3: { + address: `0x${string}`; + blockCreated: number; + }; + }; + testnet?: boolean; +} + +export const CHAIN_IDS = { + MAINNET: 1, + BASE: 8453, + OPTIMISM: 10, + ARBITRUM: 42161, +} as const; + + +export interface Token { + address: string; + decimals: number; + name: string; + symbol: string; + image: string; + verified: boolean; +} diff --git a/src/config/tokens/arbitrumTokens.ts b/src/config/tokens/arbitrumTokens.ts new file mode 100644 index 0000000..b67b43c --- /dev/null +++ b/src/config/tokens/arbitrumTokens.ts @@ -0,0 +1,116 @@ +import {Token} from "@coinbase/onchainkit/token"; + +export const arbitrumTokens: Token[] = [ + { + address: '0x0000000000000000000000000000000000000000', + decimals: 18, + name: 'Ethereum', + symbol: 'ETH', + image: '/token-icons/eth.png', + chainId: 42161, // Add chainId + }, + { + name: 'Wrapped Ether', + symbol: 'WETH', + address: '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', + decimals: 18, + image: '/token-icons/weth.png', + chainId: 42161, // Add chainId + }, + { + name: 'USD Coin', + symbol: 'USDC', + address: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831', + decimals: 6, + image: '/token-icons/usdc.png', + chainId: 42161, // Add chainId + }, + { + name: 'Tether USD', + symbol: 'USDT', + address: '0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9', + decimals: 6, + image: '/token-icons/usdt.png', + chainId: 42161, // Add chainId + }, + { + name: 'DAI Stablecoin', + symbol: 'DAI', + address: '0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1', + decimals: 18, + image: '/token-icons/dai.png', + chainId: 42161, // Add chainId + }, + { + name: 'Arbitrum', + symbol: 'ARB', + address: '0x912CE59144191C1204E64559FE8253a0e49E6548', + decimals: 18, + image: '/token-icons/arb.png', + chainId: 42161, // Add chainId + }, + { + name: 'GMX', + symbol: 'GMX', + address: '0xfc5A1A6EB076a2C7aD06eD22C90d7E710E35ad0a', + decimals: 18, + image: '/token-icons/gmx.png', + chainId: 42161, // Add chainId + }, + { + name: 'Magic', + symbol: 'MAGIC', + address: '0x539bde0d7Dbd336b79148AA742883198BBF60342', + decimals: 18, + image: '/token-icons/magic.png', + chainId: 42161, // Add chainId + }, + { + name: 'Wrapped Bitcoin', + symbol: 'WBTC', + address: '0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f', + decimals: 8, + image: '/token-icons/wbtc.png', + chainId: 42161, // Add chainId + }, + { + name: 'Chainlink', + symbol: 'LINK', + address: '0xf97f4df75117a78c1A5a0DBb814Af92458539FB4', + decimals: 18, + image: '/token-icons/link.png', + chainId: 42161, // Add chainId + }, + { + name: 'Uniswap', + symbol: 'UNI', + address: '0xFa7F8980b0f1E64A2062791cc3b0871572f1F7f0', + decimals: 18, + image: '/token-icons/uni.png', + chainId: 42161, // Add chainId + }, + { + name: 'Aave', + symbol: 'AAVE', + address: '0xba5DdD1f9d7F570dc94a51479a000E3BCE967196', + decimals: 18, + image: '/token-icons/aave.png', + chainId: 42161, // Add chainId + }, + { + name: 'Curve DAO Token', + symbol: 'CRV', + address: '0x11cDb42B0EB46D95f990BeDD4695A6e3fA034978', + decimals: 18, + image: '/token-icons/crv.png', + chainId: 42161, // Add chainId + }, + { + name: 'Sushi Token', + symbol: 'SUSHI', + address: '0xd4d42F0b6DEF4CE0383636770eF773390d85c61A', + decimals: 18, + image: '/token-icons/sushi.png', + chainId: 42161, // Add chainId + }, +]; diff --git a/src/config/tokens/baseTokens.ts b/src/config/tokens/baseTokens.ts new file mode 100644 index 0000000..5ac70e3 --- /dev/null +++ b/src/config/tokens/baseTokens.ts @@ -0,0 +1,104 @@ +import { Token } from "@coinbase/onchainkit/token"; + +export const baseTokens: Token[] = [ + { + address: '0x0000000000000000000000000000000000000000', + decimals: 18, + name: 'Ethereum', + symbol: 'ETH', + image: '/token-icons/eth.png', + chainId: 8453, // Add chainId + }, + // Native & Stablecoins + { + name: 'Wrapped Ether', + symbol: 'WETH', + address: '0x4200000000000000000000000000000000000006', + decimals: 18, + image: '/token-icons/weth.png', + chainId: 8453, // Add chainId + }, + { + name: 'USD Coin', + symbol: 'USDC', + address: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', + decimals: 6, + image: '/token-icons/usdc.png', + chainId: 8453, // Add chainId + }, + { + name: 'Tether USD', + symbol: 'USDT', + address: '0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb', + decimals: 6, + image: '/token-icons/usdt.png', + chainId: 8453, // Add chainId + }, + { + name: 'DAI Stablecoin', + symbol: 'DAI', + address: '0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb', + decimals: 18, + image: '/token-icons/dai.png', + chainId: 8453, // Add chainId + }, + // Base-Specific Tokens + { + name: 'Coinbase Wrapped Staked ETH', + symbol: 'cbETH', + address: '0x2Ae3F1Ec7F1F5012CFEab0185bfc7aa3cf0DEc22', + decimals: 18, + image: '/token-icons/cbeth.png', + chainId: 8453, // Add chainId + }, + // DeFi Blue Chips available on Base + { + name: 'Chainlink', + symbol: 'LINK', + address: '0x88Fb150BDc53A65fe94Dea0c9BA0a6dAf8C6e196', + decimals: 18, + image: '/token-icons/link.png', + chainId: 8453, // Add chainId + }, + { + name: 'Uniswap', + symbol: 'UNI', + address: '0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984', + decimals: 18, + image: '/token-icons/uni.png', + chainId: 8453, // Add chainId + }, + { + name: 'Wrapped Bitcoin', + symbol: 'WBTC', + address: '0x77852193BD608A518987b42A495b799E0Fc4E066', + decimals: 8, + image: '/token-icons/wbtc.png', + chainId: 8453, // Add chainId + }, + { + name: 'Aave', + symbol: 'AAVE', + address: '0x0c466540B2ee1a31b441671eac0ca886e051E410', + decimals: 18, + image: '/token-icons/aave.png', + chainId: 8453, // Add chainId + }, + // Additional Base Tokens + { + name: 'Balancer', + symbol: 'BAL', + address: '0x4158734D47Fc9692176B5085E0F52ee0Da5d47F1', + decimals: 18, + image: '/token-icons/bal.png', + chainId: 8453, // Add chainId + }, + { + name: 'Compound', + symbol: 'COMP', + address: '0x9e1028F5F1D5eDE59748FFceE5532509976840E0', + decimals: 18, + image: '/token-icons/comp.png', + chainId: 8453, // Add chainId + }, +]; diff --git a/src/config/tokens/index.ts b/src/config/tokens/index.ts new file mode 100644 index 0000000..84b93de --- /dev/null +++ b/src/config/tokens/index.ts @@ -0,0 +1,63 @@ +import { arbitrumTokens } from './arbitrumTokens'; +import { baseTokens } from './baseTokens'; +import { mainnetTokens } from './mainnetTokens'; +import { optimismTokens } from './optimismTokens'; +import {CHAIN_IDS} from "@/config/chains"; +import {Token} from "@coinbase/onchainkit/token"; + + + + +// Helper function to validate tokens +const validateTokens = (tokens: Token[]): Token[] => { + return tokens.filter((token) => token.image); +}; + +// Helper function to get tokens by chain +export const getTokensByChain = (chainId: number): Token[] => { + switch (chainId) { + case CHAIN_IDS.MAINNET: + return validateTokens(mainnetTokens); + case CHAIN_IDS.BASE: + return validateTokens(baseTokens); + case CHAIN_IDS.OPTIMISM: + return validateTokens(optimismTokens); + case CHAIN_IDS.ARBITRUM: + return validateTokens(arbitrumTokens); + default: + return []; + } +}; + +// Export verified tokens for each chain separately +export const VERIFIED_TOKENS = { + [CHAIN_IDS.MAINNET]: validateTokens(mainnetTokens), + [CHAIN_IDS.BASE]: validateTokens(baseTokens), + [CHAIN_IDS.OPTIMISM]: validateTokens(optimismTokens), + [CHAIN_IDS.ARBITRUM]: validateTokens(arbitrumTokens), +} as const; + +// Export all supported tokens with chain IDs +export const ALL_SUPPORTED_TOKENS = Object.entries(VERIFIED_TOKENS).flatMap(([chainId, tokens]) => + tokens.map((token) => ({ + ...token, + chainId: Number.parseInt(chainId), + })) +); + +// Export common ABIs +export const COMMON_ABIS = { + erc20: [ + 'function name() view returns (string)', + 'function symbol() view returns (string)', + 'function decimals() view returns (uint8)', + 'function totalSupply() view returns (uint256)', + 'function balanceOf(address) view returns (uint256)', + 'function allowance(address,address) view returns (uint256)', + 'function approve(address,uint256) returns (bool)', + 'function transfer(address,uint256) returns (bool)', + 'function transferFrom(address,address,uint256) returns (bool)', + 'event Transfer(address indexed from, address indexed to, uint256 value)', + 'event Approval(address indexed owner, address indexed spender, uint256 value)', + ], +} as const; diff --git a/src/config/tokens/mainnetTokens.ts b/src/config/tokens/mainnetTokens.ts new file mode 100644 index 0000000..9c60884 --- /dev/null +++ b/src/config/tokens/mainnetTokens.ts @@ -0,0 +1,84 @@ +import { Token } from "@coinbase/onchainkit/token"; + +export const mainnetTokens: Token[] = [ + { + address: '0x0000000000000000000000000000000000000000', + decimals: 18, + name: 'Ethereum', + symbol: 'ETH', + image: '/token-icons/eth.png', + chainId: 1, // Add chainId + }, + { + name: 'Wrapped Ether', + symbol: 'WETH', + address: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', + decimals: 18, + image: '/token-icons/weth.png', + chainId: 1, // Add chainId + }, + { + name: 'USD Coin', + symbol: 'USDC', + address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', + decimals: 6, + image: '/token-icons/usdc.png', + chainId: 1, // Add chainId + }, + { + name: 'Tether USD', + symbol: 'USDT', + address: '0xdAC17F958D2ee523a2206206994597C13D831ec7', + decimals: 6, + image: '/token-icons/usdt.png', + chainId: 1, // Add chainId + }, + { + name: 'Dai Stablecoin', + symbol: 'DAI', + address: '0x6B175474E89094C44Da98b954EedeAC495271d0F', + decimals: 18, + image: '/token-icons/dai.png', + chainId: 1, // Add chainId + }, + { + name: 'Wrapped Bitcoin', + symbol: 'WBTC', + address: '0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599', + decimals: 8, + image: '/token-icons/wbtc.png', + chainId: 1, // Add chainId + }, + { + name: 'Chainlink', + symbol: 'LINK', + address: '0x514910771AF9Ca656af840dff83E8264EcF986CA', + decimals: 18, + image: '/token-icons/link.png', + chainId: 1, // Add chainId + }, + { + name: 'Uniswap', + symbol: 'UNI', + address: '0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984', + decimals: 18, + image: '/token-icons/uni.png', + chainId: 1, // Add chainId + }, + { + name: 'Aave', + symbol: 'AAVE', + address: '0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9', + decimals: 18, + image: '/token-icons/aave.png', + chainId: 1, // Add chainId + }, + { + name: 'Gala v2', + symbol: 'GALA', + address: '0x17A1D8C9de53e54498A7B2DBc9b59102E6E38FeE', + decimals: 8, + image: '/token-icons/gala.png', + chainId: 1, // Add chainId + }, +]; diff --git a/src/config/tokens/optimismTokens.ts b/src/config/tokens/optimismTokens.ts new file mode 100644 index 0000000..928f69c --- /dev/null +++ b/src/config/tokens/optimismTokens.ts @@ -0,0 +1,103 @@ +import { Token } from "@coinbase/onchainkit/token"; + +export const optimismTokens: Token[] = [ + { + address: '0x0000000000000000000000000000000000000000', + decimals: 18, + name: 'Ethereum', + symbol: 'ETH', + image: '/token-icons/eth.png', + chainId: 10, // Add chainId + }, + // Native & Stablecoins + { + name: 'Wrapped Ether', + symbol: 'WETH', + address: '0x4200000000000000000000000000000000000006', + decimals: 18, + image: '/token-icons/weth.png', + chainId: 10, // Add chainId + }, + { + name: 'USD Coin', + symbol: 'USDC', + address: '0x7F5c764cBc14f9669B88837ca1490cCa17c31607', + decimals: 6, + image: '/token-icons/usdc.png', + chainId: 10, // Add chainId + }, + { + name: 'Tether USD', + symbol: 'USDT', + address: '0x94b008aA00579c1307B0EF2c499aD98a8ce58e58', + decimals: 6, + image: '/token-icons/usdt.png', + chainId: 10, // Add chainId + }, + { + name: 'DAI Stablecoin', + symbol: 'DAI', + address: '0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1', + decimals: 18, + image: '/token-icons/dai.png', + chainId: 10, // Add chainId + }, + // Protocol & Governance Tokens + { + name: 'Optimism', + symbol: 'OP', + address: '0x4200000000000000000000000042000000', + decimals: 18, + image: '/token-icons/op.png', + chainId: 10, // Add chainId + }, + { + name: 'Synthetix', + symbol: 'SNX', + address: '0x8700dAec35aF8Ff88c16BdF0418774CB3D7599B4', + decimals: 18, + image: '/token-icons/snx.png', + chainId: 10, // Add chainId + }, + { + name: 'Velodrome', + symbol: 'VELO', + address: '0x3c8B650257cFb5f272f799F5e2b4e65093a11a05', + decimals: 18, + image: '/token-icons/velo.png', + chainId: 10, // Add chainId + }, + // DeFi Blue Chips + { + name: 'Wrapped Bitcoin', + symbol: 'WBTC', + address: '0x68f180fcCe6836688e9084f035309E29Bf0A2095', + decimals: 8, + image: '/token-icons/wbtc.png', + chainId: 10, // Add chainId + }, + { + name: 'Chainlink', + symbol: 'LINK', + address: '0x350a791Bfc2C21F9Ed5d10980Dad2e2638ffa7f6', + decimals: 18, + image: '/token-icons/link.png', + chainId: 10, // Add chainId + }, + { + name: 'Uniswap', + symbol: 'UNI', + address: '0x6fd9d7AD17242c41f7131d257212c54A0e816691', + decimals: 18, + image: '/token-icons/uni.png', + chainId: 10, // Add chainId + }, + { + name: 'Aave', + symbol: 'AAVE', + address: '0x76FB31fb4af56892A25e32cFC43De717950c9278', + decimals: 18, + image: '/token-icons/aave.png', + chainId: 10, // Add chainId + }, +]; diff --git a/src/config/wagmi.ts b/src/config/wagmi.ts new file mode 100644 index 0000000..7fadded --- /dev/null +++ b/src/config/wagmi.ts @@ -0,0 +1,28 @@ +import { getDefaultWallets } from '@rainbow-me/rainbowkit'; +import { arbitrum, base, mainnet, optimism } from 'viem/chains'; +import { http, createConfig } from 'wagmi'; + +const projectId = process.env.NEXT_PUBLIC_WC_PROJECT_ID as string; +if (!projectId) { + throw new Error('Missing NEXT_PUBLIC_WC_PROJECT_ID'); +} + +const { connectors } = getDefaultWallets({ + appName: 'Chainable Swap', + projectId, +}); + +const chains = [base, optimism, arbitrum, mainnet] as const; + +export const config = createConfig({ + chains, + transports: { + [base.id]: http(), + [optimism.id]: http(), + [arbitrum.id]: http(), + [mainnet.id]: http(), + }, + connectors, +}); + +export { chains }; From 4522f6bc4724d5377c4e25ef53f1d03c6d22d57e Mon Sep 17 00:00:00 2001 From: SourC Date: Fri, 15 Nov 2024 15:19:31 -0800 Subject: [PATCH 2/7] mexts --- next.config.js | 1 + package.json | 5 + pnpm-lock.yaml | 297 ++++++++++++++++++++++++++++ scripts/download-token-icons.ts | 1 + src/app/page.tsx | 9 +- src/components/Footer.tsx | 24 +-- src/components/OnchainProviders.tsx | 31 ++- src/components/Swapper.tsx | 37 ++-- src/components/TokenIcon.tsx | 1 + src/components/TokenProvider.tsx | 1 + src/components/ui/progress.tsx | 28 +++ src/config/chains/index.ts | 36 ++-- src/config/tokens/base.ts | 71 +++++++ src/config/tokens/constants.ts | 73 +++++++ src/config/tokens/index.ts | 73 ++----- src/config/tokens/optimism.ts | 78 ++++++++ src/config/wagmi.ts | 7 +- src/wagmi.ts | 9 +- 18 files changed, 649 insertions(+), 133 deletions(-) create mode 100644 next.config.js create mode 100644 scripts/download-token-icons.ts create mode 100644 src/components/TokenIcon.tsx create mode 100644 src/components/TokenProvider.tsx create mode 100644 src/components/ui/progress.tsx create mode 100644 src/config/tokens/base.ts create mode 100644 src/config/tokens/constants.ts create mode 100644 src/config/tokens/optimism.ts diff --git a/next.config.js b/next.config.js new file mode 100644 index 0000000..0519ecb --- /dev/null +++ b/next.config.js @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/package.json b/package.json index e73f451..3bb4ed5 100644 --- a/package.json +++ b/package.json @@ -47,12 +47,17 @@ "@vitest/ui": "^2.0.1", "@wagmi/cli": "latest", "autoprefixer": "^10.4.19", + "browserify-zlib": "^0.2.0", "bufferutil": "^4.0.7", + "crypto-browserify": "^3.12.1", "encoding": "^0.1.13", + "https-browserify": "^1.0.0", "jsdom": "^24.1.0", "lokijs": "^1.5.12", "pino-pretty": "^10.2.0", "postcss": "^8.4.38", + "stream-browserify": "^3.0.0", + "stream-http": "^3.2.0", "supports-color": "^9.4.0", "tailwindcss": "^3.4.0", "typescript": "^5.3.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 928c411..9040a82 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -93,12 +93,21 @@ importers: autoprefixer: specifier: ^10.4.19 version: 10.4.20(postcss@8.4.47) + browserify-zlib: + specifier: ^0.2.0 + version: 0.2.0 bufferutil: specifier: ^4.0.7 version: 4.0.8 + crypto-browserify: + specifier: ^3.12.1 + version: 3.12.1 encoding: specifier: ^0.1.13 version: 0.1.13 + https-browserify: + specifier: ^1.0.0 + version: 1.0.0 jsdom: specifier: ^24.1.0 version: 24.1.3(bufferutil@4.0.8)(supports-color@9.4.0)(utf-8-validate@6.0.5) @@ -111,6 +120,12 @@ importers: postcss: specifier: ^8.4.38 version: 8.4.47 + stream-browserify: + specifier: ^3.0.0 + version: 3.0.0 + stream-http: + specifier: ^3.2.0 + version: 3.2.0 supports-color: specifier: ^9.4.0 version: 9.4.0 @@ -2520,6 +2535,9 @@ packages: asap@2.0.6: resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + asn1.js@4.10.1: + resolution: {integrity: sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==} + assertion-error@2.0.1: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} @@ -2638,6 +2656,26 @@ packages: brorand@1.1.0: resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} + browserify-aes@1.2.0: + resolution: {integrity: sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==} + + browserify-cipher@1.0.1: + resolution: {integrity: sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==} + + browserify-des@1.0.2: + resolution: {integrity: sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==} + + browserify-rsa@4.1.1: + resolution: {integrity: sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==} + engines: {node: '>= 0.10'} + + browserify-sign@4.2.3: + resolution: {integrity: sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==} + engines: {node: '>= 0.12'} + + browserify-zlib@0.2.0: + resolution: {integrity: sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==} + browserslist@4.24.2: resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -2649,6 +2687,9 @@ packages: buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + buffer-xor@1.0.3: + resolution: {integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==} + buffer@6.0.3: resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} @@ -2656,6 +2697,9 @@ packages: resolution: {integrity: sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==} engines: {node: '>=6.14.2'} + builtin-status-codes@3.0.0: + resolution: {integrity: sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==} + bundle-require@4.2.1: resolution: {integrity: sha512-7Q/6vkyYAwOmQNRw75x+4yRtZCZJXUDmHHlFdkiV0wgv/reNjtJwpu1jPJ0w2kbEpIM0uoKI3S4/f39dU7AjSA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -2751,6 +2795,9 @@ packages: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} + cipher-base@1.0.4: + resolution: {integrity: sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==} + citty@0.1.6: resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} @@ -2866,6 +2913,15 @@ packages: engines: {node: '>=0.8'} hasBin: true + create-ecdh@4.0.4: + resolution: {integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==} + + create-hash@1.2.0: + resolution: {integrity: sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==} + + create-hmac@1.1.7: + resolution: {integrity: sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==} + cross-fetch@3.1.8: resolution: {integrity: sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==} @@ -2879,6 +2935,10 @@ packages: crossws@0.3.1: resolution: {integrity: sha512-HsZgeVYaG+b5zA+9PbIPGq4+J/CJynJuearykPsXx4V/eMhyQ5EDVg3Ak2FBZtVXCiOLu/U7IiwDHTr9MA+IKw==} + crypto-browserify@3.12.1: + resolution: {integrity: sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ==} + engines: {node: '>= 0.10'} + css-what@6.1.0: resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} engines: {node: '>= 6'} @@ -2992,6 +3052,9 @@ packages: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} + des.js@1.1.0: + resolution: {integrity: sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==} + destr@2.0.3: resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} @@ -3013,6 +3076,9 @@ packages: didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + diffie-hellman@5.0.3: + resolution: {integrity: sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==} + dijkstrajs@1.0.3: resolution: {integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==} @@ -3179,6 +3245,9 @@ packages: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} + evp_bytestokey@1.0.3: + resolution: {integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==} + execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} @@ -3412,6 +3481,10 @@ packages: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} + hash-base@3.0.4: + resolution: {integrity: sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==} + engines: {node: '>=4'} + hash.js@1.1.7: resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} @@ -3459,6 +3532,9 @@ packages: resolution: {integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==} engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + https-browserify@1.0.0: + resolution: {integrity: sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==} + https-proxy-agent@7.0.5: resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} engines: {node: '>= 14'} @@ -3934,6 +4010,9 @@ packages: marky@1.2.5: resolution: {integrity: sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==} + md5.js@1.3.5: + resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==} + media-query-parser@2.0.2: resolution: {integrity: sha512-1N4qp+jE0pL5Xv4uEcwVUhIkwdUO3S/9gML90nqKA7v7FcOS5vUtatfzok9S9U1EJU8dHWlcv95WLnKmmxZI9w==} @@ -4012,6 +4091,10 @@ packages: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} + miller-rabin@4.0.1: + resolution: {integrity: sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==} + hasBin: true + mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} @@ -4301,6 +4384,13 @@ packages: package-json-from-dist@1.0.1: resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + pako@1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + + parse-asn1@5.1.7: + resolution: {integrity: sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==} + engines: {node: '>= 0.10'} + parse-json@4.0.0: resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} engines: {node: '>=4'} @@ -4350,6 +4440,10 @@ packages: resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} engines: {node: '>= 14.16'} + pbkdf2@3.1.2: + resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==} + engines: {node: '>=0.12'} + permissionless@0.1.46: resolution: {integrity: sha512-FQU9u7wZkemg3Ymv2Eq92LuyvI7kv57Okdx/ZBIXt/jSj2p4r3HAVlqkCLcawbR7PS/1OoiajgvkRA3y3QqQFA==} peerDependencies: @@ -4514,6 +4608,9 @@ packages: psl@1.9.0: resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + public-encrypt@4.0.3: + resolution: {integrity: sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==} + pump@3.0.2: resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} @@ -4561,6 +4658,12 @@ packages: radix3@1.1.2: resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + + randomfill@1.0.4: + resolution: {integrity: sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==} + range-parser@1.2.1: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} @@ -4742,6 +4845,9 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true + ripemd160@2.0.2: + resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==} + rollup@4.24.4: resolution: {integrity: sha512-vGorVWIsWfX3xbcyAS+I047kFKapHYivmkaT63Smj77XwvLSJos6M1xGqZnBPFQFBRZDOcG1QnYEIxAvTr/HjA==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -4947,6 +5053,12 @@ packages: resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} engines: {node: '>= 0.4'} + stream-browserify@3.0.0: + resolution: {integrity: sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==} + + stream-http@3.2.0: + resolution: {integrity: sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==} + stream-shift@1.0.3: resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} @@ -8564,6 +8676,12 @@ snapshots: asap@2.0.6: {} + asn1.js@4.10.1: + dependencies: + bn.js: 4.12.0 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + assertion-error@2.0.1: {} ast-types@0.15.2: @@ -8720,6 +8838,51 @@ snapshots: brorand@1.1.0: {} + browserify-aes@1.2.0: + dependencies: + buffer-xor: 1.0.3 + cipher-base: 1.0.4 + create-hash: 1.2.0 + evp_bytestokey: 1.0.3 + inherits: 2.0.4 + safe-buffer: 5.2.1 + + browserify-cipher@1.0.1: + dependencies: + browserify-aes: 1.2.0 + browserify-des: 1.0.2 + evp_bytestokey: 1.0.3 + + browserify-des@1.0.2: + dependencies: + cipher-base: 1.0.4 + des.js: 1.1.0 + inherits: 2.0.4 + safe-buffer: 5.2.1 + + browserify-rsa@4.1.1: + dependencies: + bn.js: 5.2.1 + randombytes: 2.1.0 + safe-buffer: 5.2.1 + + browserify-sign@4.2.3: + dependencies: + bn.js: 5.2.1 + browserify-rsa: 4.1.1 + create-hash: 1.2.0 + create-hmac: 1.1.7 + elliptic: 6.6.0 + hash-base: 3.0.4 + inherits: 2.0.4 + parse-asn1: 5.1.7 + readable-stream: 2.3.8 + safe-buffer: 5.2.1 + + browserify-zlib@0.2.0: + dependencies: + pako: 1.0.11 + browserslist@4.24.2: dependencies: caniuse-lite: 1.0.30001677 @@ -8733,6 +8896,8 @@ snapshots: buffer-from@1.1.2: {} + buffer-xor@1.0.3: {} + buffer@6.0.3: dependencies: base64-js: 1.5.1 @@ -8742,6 +8907,8 @@ snapshots: dependencies: node-gyp-build: 4.8.2 + builtin-status-codes@3.0.0: {} + bundle-require@4.2.1(esbuild@0.19.12): dependencies: esbuild: 0.19.12 @@ -8845,6 +9012,11 @@ snapshots: ci-info@3.9.0: {} + cipher-base@1.0.4: + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + citty@0.1.6: dependencies: consola: 3.2.3 @@ -8949,6 +9121,28 @@ snapshots: crc-32@1.2.2: {} + create-ecdh@4.0.4: + dependencies: + bn.js: 4.12.0 + elliptic: 6.6.0 + + create-hash@1.2.0: + dependencies: + cipher-base: 1.0.4 + inherits: 2.0.4 + md5.js: 1.3.5 + ripemd160: 2.0.2 + sha.js: 2.4.11 + + create-hmac@1.1.7: + dependencies: + cipher-base: 1.0.4 + create-hash: 1.2.0 + inherits: 2.0.4 + ripemd160: 2.0.2 + safe-buffer: 5.2.1 + sha.js: 2.4.11 + cross-fetch@3.1.8(encoding@0.1.13): dependencies: node-fetch: 2.7.0(encoding@0.1.13) @@ -8971,6 +9165,21 @@ snapshots: dependencies: uncrypto: 0.1.3 + crypto-browserify@3.12.1: + dependencies: + browserify-cipher: 1.0.1 + browserify-sign: 4.2.3 + create-ecdh: 4.0.4 + create-hash: 1.2.0 + create-hmac: 1.1.7 + diffie-hellman: 5.0.3 + hash-base: 3.0.4 + inherits: 2.0.4 + pbkdf2: 3.1.2 + public-encrypt: 4.0.3 + randombytes: 2.1.0 + randomfill: 1.0.4 + css-what@6.1.0: {} css.escape@1.5.1: {} @@ -9069,6 +9278,11 @@ snapshots: depd@2.0.0: {} + des.js@1.1.0: + dependencies: + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + destr@2.0.3: {} destroy@1.2.0: {} @@ -9081,6 +9295,12 @@ snapshots: didyoumean@1.2.2: {} + diffie-hellman@5.0.3: + dependencies: + bn.js: 4.12.0 + miller-rabin: 4.0.1 + randombytes: 2.1.0 + dijkstrajs@1.0.3: {} dlv@1.1.3: {} @@ -9308,6 +9528,11 @@ snapshots: events@3.3.0: {} + evp_bytestokey@1.0.3: + dependencies: + md5.js: 1.3.5 + safe-buffer: 5.2.1 + execa@5.1.1: dependencies: cross-spawn: 7.0.3 @@ -9571,6 +9796,11 @@ snapshots: dependencies: has-symbols: 1.0.3 + hash-base@3.0.4: + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + hash.js@1.1.7: dependencies: inherits: 2.0.4 @@ -9625,6 +9855,8 @@ snapshots: http-shutdown@1.2.2: {} + https-browserify@1.0.0: {} + https-proxy-agent@7.0.5(supports-color@9.4.0): dependencies: agent-base: 7.1.1(supports-color@9.4.0) @@ -10152,6 +10384,12 @@ snapshots: marky@1.2.5: {} + md5.js@1.3.5: + dependencies: + hash-base: 3.0.4 + inherits: 2.0.4 + safe-buffer: 5.2.1 + media-query-parser@2.0.2: dependencies: '@babel/runtime': 7.26.0 @@ -10348,6 +10586,11 @@ snapshots: braces: 3.0.3 picomatch: 2.3.1 + miller-rabin@4.0.1: + dependencies: + bn.js: 4.12.0 + brorand: 1.1.0 + mime-db@1.52.0: {} mime-types@2.1.35: @@ -10606,6 +10849,17 @@ snapshots: package-json-from-dist@1.0.1: {} + pako@1.0.11: {} + + parse-asn1@5.1.7: + dependencies: + asn1.js: 4.10.1 + browserify-aes: 1.2.0 + evp_bytestokey: 1.0.3 + hash-base: 3.0.4 + pbkdf2: 3.1.2 + safe-buffer: 5.2.1 + parse-json@4.0.0: dependencies: error-ex: 1.3.2 @@ -10640,6 +10894,14 @@ snapshots: pathval@2.0.0: {} + pbkdf2@3.1.2: + dependencies: + create-hash: 1.2.0 + create-hmac: 1.1.7 + ripemd160: 2.0.2 + safe-buffer: 5.2.1 + sha.js: 2.4.11 + permissionless@0.1.46(viem@2.21.42(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@6.0.5)(zod@3.23.8)): dependencies: viem: 2.21.42(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@6.0.5)(zod@3.23.8) @@ -10814,6 +11076,15 @@ snapshots: psl@1.9.0: {} + public-encrypt@4.0.3: + dependencies: + bn.js: 4.12.0 + browserify-rsa: 4.1.1 + create-hash: 1.2.0 + parse-asn1: 5.1.7 + randombytes: 2.1.0 + safe-buffer: 5.2.1 + pump@3.0.2: dependencies: end-of-stream: 1.4.4 @@ -10861,6 +11132,15 @@ snapshots: radix3@1.1.2: {} + randombytes@2.1.0: + dependencies: + safe-buffer: 5.2.1 + + randomfill@1.0.4: + dependencies: + randombytes: 2.1.0 + safe-buffer: 5.2.1 + range-parser@1.2.1: {} react-devtools-core@5.3.2(bufferutil@4.0.8)(utf-8-validate@6.0.5): @@ -11091,6 +11371,11 @@ snapshots: dependencies: glob: 7.2.3 + ripemd160@2.0.2: + dependencies: + hash-base: 3.0.4 + inherits: 2.0.4 + rollup@4.24.4: dependencies: '@types/estree': 1.0.6 @@ -11324,6 +11609,18 @@ snapshots: dependencies: internal-slot: 1.0.7 + stream-browserify@3.0.0: + dependencies: + inherits: 2.0.4 + readable-stream: 3.6.2 + + stream-http@3.2.0: + dependencies: + builtin-status-codes: 3.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + xtend: 4.0.2 + stream-shift@1.0.3: {} streamsearch@1.1.0: {} diff --git a/scripts/download-token-icons.ts b/scripts/download-token-icons.ts new file mode 100644 index 0000000..0519ecb --- /dev/null +++ b/scripts/download-token-icons.ts @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/app/page.tsx b/src/app/page.tsx index cab2149..e19d43b 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -1,7 +1,6 @@ 'use client'; -import Footer from 'src/components/Footer'; -import Swapper from 'src/components/Swapper'; -import { CHAINABLE_LINK } from 'src/constants/links'; +import SwapModal from '../components/Swapper'; +import { Footer } from '../components/Footer'; import LoginButton from '../components/LoginButton'; export default function Home() { @@ -10,7 +9,7 @@ export default function Home() { {/* Top Navigation Bar */}