From e2c646c88526e042aeb3fe4a184bc92063535b20 Mon Sep 17 00:00:00 2001 From: Chef Yogi <99634186+Chef-Yogi@users.noreply.github.com> Date: Tue, 1 Aug 2023 14:45:04 +0800 Subject: [PATCH] feat: add zksync default token list --- ...39bb4116B4EFc145Ec4f0e2eA75012D6C0f181.png | Bin 0 -> 1701 bytes ...55df6D4c9C3035724Fd0e3914dE96A5a83aaf4.png | Bin 0 -> 2723 bytes ...3257fD37EDB34451f62EDf8D2a0C418852bA4C.png | Bin 0 -> 1878 bytes ...Ea5775959fBC2557Cc8789bC1bf90A239D9a91.png | Bin 0 -> 4525 bytes ...eB516fb02a01611cBBE0453Fe3c580D7281011.png | Bin 0 -> 2223 bytes lists/pancakeswap-zksync-default.json | 57 ++++++++++++++++++ package.json | 3 + src/buildList.ts | 10 +++ src/checksum.ts | 2 + src/ci-check.ts | 7 +++ src/tokens/pancakeswap-zksync-default.json | 42 +++++++++++++ src/utils/multicall.ts | 1 + src/utils/simpleRpcProvider.ts | 3 + test/default.test.ts | 11 ++++ 14 files changed, 136 insertions(+) create mode 100644 lists/images/zksync/0x2039bb4116B4EFc145Ec4f0e2eA75012D6C0f181.png create mode 100644 lists/images/zksync/0x3355df6D4c9C3035724Fd0e3914dE96A5a83aaf4.png create mode 100644 lists/images/zksync/0x493257fD37EDB34451f62EDf8D2a0C418852bA4C.png create mode 100644 lists/images/zksync/0x5AEa5775959fBC2557Cc8789bC1bf90A239D9a91.png create mode 100644 lists/images/zksync/0xBBeB516fb02a01611cBBE0453Fe3c580D7281011.png create mode 100644 lists/pancakeswap-zksync-default.json create mode 100644 src/tokens/pancakeswap-zksync-default.json diff --git a/lists/images/zksync/0x2039bb4116B4EFc145Ec4f0e2eA75012D6C0f181.png b/lists/images/zksync/0x2039bb4116B4EFc145Ec4f0e2eA75012D6C0f181.png new file mode 100644 index 0000000000000000000000000000000000000000..2148132ef312f3e00295e1f561bd2e8d47a180ca GIT binary patch literal 1701 zcmV;W23q-vP) zpK!l0fKabsKw!VmpkFWxe&q}R00reqL_t(|+U=bQlAACPMO#8bU@+iG{&<|_{@2V} z)s>1FAzEuC{{X{#rEY`=XefTnI62$TgVqW^qqH7|{^F+5P~9=3vxCArQG<00RT*=& zHyq5(P94=0vsjJ5-1>>?h;f6$xy;w%3t_GUL>aCn8+)+|;;24%S99qgQuLLw$6OR5 zM)!HUp|c9HlTo4T@guD&aPgo?1;$Si?I>*)jl|I@H)u2CXE$55=jdNz@SiZ~X$au={Cz3^8H4$lz{5`< z=Rakzkv_ujXOQ!sGtfr_9)1cr|49Q)%FplTkn^84P~_+LlgRnc8<3aZ&m!j+7?6+O zPb24-7!V}q^Jx3;ejYd{z(jTPgWxr&njfV61~v05((oJ9%g;OU`v%qWL(_mG2DS2I zqZx+`D&@yUFF0mUCqH_!IA~BMKQ82O)SyOwIGS+SphA93^byAm>f^^q1_1`u@xu@) z;J86;{EGj*e$b#Uer%yPIPP`v!v^1Cs*4|vXy-K420s?syTj22KlX2Qx50ngebk^0 ze%Re7=Gx%LM6}ZcZSbQz|KRtd2L7Ai74G|6d4BX~9$jaH;{2EdkAAa3IerKpoo0iA z{IlRCP&O#XkCk5^Kv>wIBtJS5)DRmK+4ZOjI_`E`VO0Bn$#pIcbk#%z$CU&k4%#ReJqxrOCRzy^=J{OF<&cFN1& zM;i)Ih94b0$qNL@%il+v&Q^vWU9|arCHQ#(aNE!*$%X><`3 z-@#~d5oSZ_GHE1^UMOu`QU&#N?`o!w)a7aQG^4QpY4H{ml+Am=I^$f_=8Dt*&h&CaV6`fbx%{ifD>n|te~6zJao>%?HB1WM1Y00000NkvXXu0mjfoT63~ literal 0 HcmV?d00001 diff --git a/lists/images/zksync/0x3355df6D4c9C3035724Fd0e3914dE96A5a83aaf4.png b/lists/images/zksync/0x3355df6D4c9C3035724Fd0e3914dE96A5a83aaf4.png new file mode 100644 index 0000000000000000000000000000000000000000..ddff786ce1c3c7cbf821c6712c9218004a61dd63 GIT binary patch literal 2723 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 literal 0 HcmV?d00001 diff --git a/lists/images/zksync/0x493257fD37EDB34451f62EDf8D2a0C418852bA4C.png b/lists/images/zksync/0x493257fD37EDB34451f62EDf8D2a0C418852bA4C.png new file mode 100644 index 0000000000000000000000000000000000000000..b053ca261090417cf93493b52bf1b9fe5e6bad38 GIT binary patch literal 1878 zcmV-c2dVgpP)Y_fF!DbB&dKRsDLG^fF!AaBdLHSsemM@fF!4YB&mQTsemM_ zfF!Aa|NZ*N=-WWEkCD^8TfU#<^XskM%y!AH@%Zzf*u^rghlI|x*6rg>xtF`+)M&$| zlGDA~dhB-q000woQchC<-yjh0pJ2amkT8HyukS$5k3ef07s>zt27^gNK~#9!<(=zx zqA(DE6A}neymjO*BD(MYj4P#Wc2{(XOh$70{p&eBb-rdML!u@O9}y?v&R;3cC43+` zSIU12lUT52BjRwUBs@T>UHHxxi3oOEn8Z;bM14!_Ikt5zDAi{mxYVdXvupw0NeCTmiK_?G5si4ER0S}p7 z-Z@x?+icKc1*5ovlcEV(0?B(5^#VGyU*eisE4z=gfNL>Z;5K=Q=P}%5V%{% zKDZ%pZwNeaMc__9_MH&`e|!Mk5dd#&09+D?#sMnBI0fd+zdegZV5nm zI{xx+pS0A(=ai9=p1&&N}Er zc}mZB6b|R~>ZfJW^VQ@Cvj}H=x~!|4b2&tII#+pp>9Wsg()%ei3|3L+%{d)B59zsm zUL$&LHIvoN>F^PG)n2-rS5K$bKv%TQ;BmTIz!Ui9ZQyum%08NNd&xj!ETB0S?fLXE z7Oin*tPBN?Z6DmBs`V?)70~~eUZQL|FhQB^tM}zu{?cQOB%m`h?X#&is0eN#Q1pL2 z)zM=LXosr*#XOrXAYmGr4&R=DR;XbbYX;Nk`njS3uqU8t_Xe*uQ6TH%KLL#ZGzJFD zAf%Q`VA#7XFa`EK4V6H>@5wO*hOU315y*xIlp0eYA413}1TKf+w=Q(jG?wC zpu3I1aIYsfvgRv_s<0=J<)^RT?EsKFaZ&ES9WIZXeOskhPUSbJ>yK5{z$1=DbNY7u zb%dz`3MNyZ_TQYUx&t(_dU&cHIQ+_BD$4Brv99WeL0g>j%S?^zGOP$RX?uj}DB}f9 zp&kBM8nzd+MQ+wz>byGt`=<_l^hWqB0%N*bzw$pS>A7n1ysnEY*&kegywr7`H&vCM z?kxM$=82W%+p~-M?4n10K4tanvN)Wzt#a&_wB?-052vcByCXbJg0ZpH6?NWchC$qA zS~YDS`CMYut;J(k^xIo~HyWk-D35;k1r0&4xvR+lo3(}Qby5Lk;SCN_fylyJOr!## zh42283TznuI~=3}Hs0u_6xdq$r~#=!WZ~O~qyhPUOG4vuJ74X@> z2Jj#iNc2a)(I6FIUnoF>Qeeft2muRHfq;D>01Hw9kKyMKrGT<<6abZg&LHG@h)zI% z^c%C6(Fy1-hT6+W1vX5BRmPM8oN2IH0hNF*VdOHV6yO$))gl$}8ABfeIsx5JPRk=Pzv}KPG=((@GP9~M<$>L0Cggw6yV;BBNp#KDiB&YAc<0dv-@md z22=uxg>y#91at+X)-j>LZ3QDdR+9<@>^~?lhEl+{a9S#zfKDLH!}3T40ycpNjGz>V zEF4)&DZmB(p}~{_(xW=IIV;A2c?3V_;B5DgE??l;(_H+lyNv1Ov#E@K_H|y&`3u$DztYbAO9f5tC0oq&xr9RC9z#S#KujbU zE&&HZWWqjh;cD?Q)MxrQItVgkUpP4kE5YoMaIg&DFuR0S7365|awd=D+i3PUqj3Lf zaTgS1L=(PN;4UVQrM93#!Cu0~ml(OTVXs333TB}K!Cs6Ptl&AM3SS=mCyBoWLwK}V zO7sI>5>1xaMz2qtaW-M3TY>0s#O36gt}KCjYem|3FIgj~@}1$^ZZanFxI| zjeqv;|8@U@+k8QAI2;555fc%;c=6)s=m>>ENk~XcPfuT5TwGsYXJ%#!2ncX+aGac+ zeEj$kLI5NqBZESrpFVw(m6iSR<3~qFM@&o%EiLWJ%E~O4=ic7l4{mQ7B2pL(WCjEsy#MMd#={Pysmaii&DuW23&l z-p($aEnZZ0)7H7qP_iO1K)#f6fPq_D6sDk@4?SXds+R$E)^=jXS^>o>&VsHv$L z92`8(`AA7g>A`~sY{Zl^Gc%Kulg-V|o}Ql8*48bomg$U|I%K@UBn(g@veMGho_qGX zy1H3V?Y6eI*4EZGHtPs_rOL`mDN^S9An4lKnv;_g5{XP;Pz$7$ccp${ODV1b;f#-u zS65eWU^RR5=1nz=Nen&Qn?}}NKG~roKcylUC)-yP$vh0_LZSc&atdDPLTOVEfEQg>eTXStv$y_upVhvL91=Jwz zv}uiuyV09oNmFK3Vhk`0Q&~Pyacg`!eOiV-{Tclw66024qmdPV+`M-GlJ|(Q(^0gy z@%Zb&vuaag&04mfgr%NR!f`fL&B?{luEJNiyyyTf`VRcnQ`F{a{@0>3Y!qP1*8AYW zvzgL^BtkANs!4>P-=@=C^k5ur??r%Iq(8Pb;@%O^RT*u#U||dfYHfVke^EZaG88yR zr)O?%u1Cjuf5_-Ni3;CD8#~}boWVfDT6j~|=&v-5o{voo$1n4`(DI1X>S*`gQDNK9 z?x@-SFrce}op#~X7LbV3wh(g9L5!pf&UdH!9!(oQR(^3APrTg0qoBnB&C1kL;PHI{ z9+#eu@Esolr~L(DXb*LU`wr@Vovv$1(}w?uyt~C8CRJ{1XCBPn-%?nvQ8)W?6&O-! zy8+&OGe2B?cOIa?qVn0a$UZ}zY9*9TJm~!NDO&aL5endHtxW8l^Y}@hcjeAbP?Bo4 zwsd!UdvJFaBG+em2^VWC(I~)K5N%64{qCW_=c4o%88=r~d&f8KHO~qU&mcNxT{fIh z{YJ36`!Zu%)K~|CfA3?N*nV4Bg4dt9AAvNqV@=$gbsx1jo1@05Z!pW(fvxbm2l~vu zsg|h$sG%+!x3rWkY?|~*!JTaj#QRc~D$k7z`%bDFtw_ZJbXkw=4z*{C^47cOkeLXr zQ&RMxUWmrs!e;G#>2hAnhzl=253;hCK&Olwi0u4jrzg`fzIF-!%t59U zdQty1AM>@@g#G!3)j<1!$z|Q_aG)Hw_M~MJ{?!LR3Ik9ewE7QkWD78O_eZ~L^mBB? zPd%?20WEtSCW7ml>W5DmB3UjMMYVgaLt-I97$PzXnVRss1e11-NFHF@VJBJPkz%yK z)oRnBX&zzZA-JCJ{Hc-2hH_+W`Bj7UIrH8d2eH^83USmJTnAvFygc-6lX)k(!7b=d zD;Yfo+rg3C&@x2AW%|GIZ^uYI{{G4e9ANnWCe$uWk@cvmb zOu0LK(i}pvPx&cf{FiY~eC>QcWNa%3ux0ASk5^1Ti`w(cB@1x&yYTnc@&Q;(1TYOw zEots6E1RCu!Jt{)b^_~DtF$_*)n#WqY^@Q`&ga404kmx61GMy&@Zz76`s8scAJ~~B zg;ruMUVmp)75XD^F!ucfdOR%Y#V1dy3L_UNfmE!qa9s1}W z7a_RY_e*6e%HNr(>d_*X$@T8+?lmDM<<%Aol8JTB)_qE);VF3M3P{VXD~Wr)DVf^;!QCpfz0G1q%{} zjq<~iY)+pR#YRDxcrnRwnl~^t_7i=+)lO>Vj(4I>Xd0cDi>rnGuqUP`A{4(AvdUt@ z6-hq5@4SfBZYOHP$#kLX>Q*WBz@2?gVD(3O+mwg46cy~O$gw9C{soU9ZBe6X$sSgO z<&K1<73@)pyrAtnqG`W;k3kunNuN3?cY6g_hNrhW5qxOUkB?m)IDU>1>rL1uFpzh5 z(S4gznOOHaWkPqAeEwB1hJFmP9Mnq!31ONd{DmvX;2x(;*A`PXm3Z7If#{FSh}&PK zQ9I9jlW-idOYGy1)09@hw#)sI(^nvO2H)%&8e@KOy8jz@nHM~!?$!s#(q&+Ds6uwh z`xRt;LO>S@pr8Dvfz#O+3-yJya7M(I5`D2!JFp;12=Ihbkj2lvYYGl$HF8qHlqywm zRiLVFgBSF;5`E6n_XF=w5z|n)XPh(`+&FlIsE5?o6;Z@cLru07J+jM3EY?VB2+|^f zq(hycAQhi7&T5kTAd~thS(P?KwB|pmVvg8ayWD?`!r6)FV%7iNh&q67LW{0w-v(yx_R}ggXhyxa1MjdwyN;e4IynCL&%a@TL}!a(sh#p{ za}VwS;JD*d(A@n1i}F|TE>F@*89Osp)@J+FFW|MLK)~hW3umDpCMc0H1SkPNQ62M% zIP$+E0`r;tZO`~hki9X>KAuo><)pRLJmwNdzBbL(R<99&nq}W23N6p&D7ob9REZ)f zn^!>VlsQz(_e;v7gT@lREdy!om~@+Qk|pkR=RQIK|A~(iDAYI`DN)(|?iU?R4G0{4 z4p5^I9hOb$%u1vSI~dM62V9OsucWld^Bx$g+)|Qj?|gyG#ehX|!{Qyi!paoYEaFPp zVe|W=>3T~;t+7Py$j9dq?Dd+UoWppF+AM+EuE)>P)8L5aB|P%(@sq~Yex|Q(eUy`H zWfOPDQ+S~U&eUJM9EmbzxfeMQ;*k>=X>0yyLz@teL~qeU61lcX4Z(S@_^It8k_x+)sL1t(~&X7Xy}Ef z3(*%KFC+a81tEV5n$Q8D%-D@RQcX0+A>5=jA|&lrBfk>l6?_PSCv*ceSH5f#GEoqs zZ(ltD-f%vpy*2<6Gtx*JWdfW78HQi+E=*9mD)6Iw((`w&;id$uxzw!#npL}Oibgbg zUjr!pITwWpG+TJcw39m{>xux~z5+mq$(%g3WY=-Gez}?*I=W&M_Y*9OX{E-IB7Ua~ z7_Fp~FiTEm`w8~MUP^&4R0YQ%+M<=>D44bLEY=qOw^3EMmZszql=mPhgzr;VKZFLe z4aPkP!ffm&*B$aCekYJdYCZ(Y^6w|6abL3zMehx;hk5^UAKA;}uAflrN>sT>%dHh zVz$9oy8W&?tIyw#p=hvzeFKoNA9|5$a`9H2>aQo>$`TIp5N5|G^mH{9ZazD}8zBXP z*ChyZ&q7>;zP|^&fAw}Mg;(9g2PLgNo$`DC19N^hH(zB8?xL>`f+)B26710QQZD$d zpl@K69x;y+vnXnbdQS=wnKQCLuiC+HNAt_r{f=Z)IS$Q@Ebo5uXIzr|h`~l0@1>fE zSvqawRdP-Vw^J@RThyA*qaXiUR=_udj!kYIOo@zCT&f?p^wJQat(567)^ zNVuh)6WDXcFW{CfQBZl;U}FMCYLuE&Sas_s>uyN*arSVhO>Z^gUFemK)U;HHFa8kT zNT3{&U5tKB1HYsJYbj$ouBnE2@6F7nwh?knTMu073Qe zjE?#*u{CG$bvL}*BNfQO*~)JoUm+PE)!Osk4O3xK;P!$W`)`Z65f*AE&*j!z-x`w9 zkkx=XsrpAJKyZDPn~KyOL$QOII_JgO;po22&7F%I*jwcxm_T0(2|DgWf(772$a>t; z{Al%kU&B}m)6we&VHL;rya`bjZklZAS8B&0#Wy%RDnAsT;ABCH<-1$9?&H5)GjV`t zI_ICAJbEk)nHlTKL$|(TD8C>>Us$M z#%lrzAPw)&$PdcRMl@MJUl3DH#+#S;bM`34=B;5r1_=)pPXnk-MSR+&#*b#wax#pRi%0l_`k1~oz7;}0?4};1%d#B8 z@LQ&NPWXS>U6cwf*UB1#cmDT6u_Fs%OzmU7Q0DV6$@X3sR#@lmo|$RRV~e?!={+^B z(M5L%+|t!bu=^1eJcx@$p9deiqui6$?Hugy}AnRb4Eqges*IP=X6&%Y0?CV zPLC8M7b(~zm7ss@-2MH6Tu$15@TMY&Cq|gb%3_wyl}EYhl!?}1#MbjV{qai##Y{W2 zx+>RAhKq;Gj0u!j0ZhaC%f;_zS<=@0ckKFfpm%{n%y7xZGv(-_Tw}eOzR-MyuuD2^#TLWFy4iZ> zc?+jqn>rZQ$7-+aMb$|M`?}R#|93Nb>wcH76&|kz!hPjAbWkGeGYv%}my2fx?%-;x z>i1uk$G;w(sBUD(BKFC0AP@dc1u z&^+wP-AJ*ynxATtzcu-y)84k4L^pZf<4)@vx&4XLotY$*ivW||74;`vE2}vEKJ#yx z?KCw@@Tha7<@_YiuLNf|qj_!jsP@o@+7dANp?TZb23CPg!^Z=MubB)J?3;|!x@NuP z{u7mbT5=arGU7K;=mWLEuVC5hl)`}pXE~mkd;9;1R4e!I2SCy~*A?+8fr=j}>y|=~ zoBd(oQ`@V1$Z*>XGK-!i7n3$71O97`rrEU_=j}VdpBsls!SG<&e@{L@N5fFPMHLnM EKk5&G^8f$< literal 0 HcmV?d00001 diff --git a/lists/images/zksync/0xBBeB516fb02a01611cBBE0453Fe3c580D7281011.png b/lists/images/zksync/0xBBeB516fb02a01611cBBE0453Fe3c580D7281011.png new file mode 100644 index 0000000000000000000000000000000000000000..f7464c0c1db221154c758ea83505bf19e78587cd GIT binary patch literal 2223 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 literal 0 HcmV?d00001 diff --git a/lists/pancakeswap-zksync-default.json b/lists/pancakeswap-zksync-default.json new file mode 100644 index 00000000..8d911f42 --- /dev/null +++ b/lists/pancakeswap-zksync-default.json @@ -0,0 +1,57 @@ +{ + "name": "PancakeSwap Zksync Default", + "timestamp": "2023-08-01T06:44:17.076Z", + "version": { + "major": 1, + "minor": 0, + "patch": 1 + }, + "logoURI": "https://pancakeswap.finance/logo.png", + "keywords": [ + "pancakeswap", + "default", + "zksync" + ], + "tokens": [ + { + "name": "Wrapped Ether", + "symbol": "WETH", + "address": "0x5AEa5775959fBC2557Cc8789bC1bf90A239D9a91", + "chainId": 324, + "decimals": 18, + "logoURI": "https://tokens.pancakeswap.finance/images/zksync/0x5AEa5775959fBC2557Cc8789bC1bf90A239D9a91.png" + }, + { + "name": "USD Coin", + "symbol": "USDC", + "address": "0x3355df6D4c9C3035724Fd0e3914dE96A5a83aaf4", + "chainId": 324, + "decimals": 6, + "logoURI": "https://tokens.pancakeswap.finance/images/zksync/0x3355df6D4c9C3035724Fd0e3914dE96A5a83aaf4.png" + }, + { + "name": "Tether USD", + "symbol": "USDT", + "address": "0x493257fD37EDB34451f62EDf8D2a0C418852bA4C", + "chainId": 324, + "decimals": 6, + "logoURI": "https://tokens.pancakeswap.finance/images/zksync/0x493257fD37EDB34451f62EDf8D2a0C418852bA4C.png" + }, + { + "name": "Binance USD", + "symbol": "BUSD", + "address": "0x2039bb4116B4EFc145Ec4f0e2eA75012D6C0f181", + "chainId": 324, + "decimals": 18, + "logoURI": "https://tokens.pancakeswap.finance/images/zksync/0x2039bb4116B4EFc145Ec4f0e2eA75012D6C0f181.png" + }, + { + "name": "Wrapped BTC", + "symbol": "WBTC", + "address": "0xBBeB516fb02a01611cBBE0453Fe3c580D7281011", + "chainId": 324, + "decimals": 8, + "logoURI": "https://tokens.pancakeswap.finance/images/zksync/0xBBeB516fb02a01611cBBE0453Fe3c580D7281011.png" + } + ] +} \ No newline at end of file diff --git a/package.json b/package.json index c2dca596..d52ae2f3 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,9 @@ "checksum:pcs-eth-default": "yarn build && node ./dist checksum pancakeswap-eth-default", "generate:pcs-eth-default": "yarn test --list=pancakeswap-eth-default && yarn build && node ./dist generate pancakeswap-eth-default", "makelist:pcs-eth-default": "yarn checksum:pcs-eth-default && yarn generate:pcs-eth-default", + "checksum:pcs-zksync-default": "yarn build && node ./dist checksum pancakeswap-zksync-default", + "generate:pcs-zksync-default": "yarn test --list=pancakeswap-zksync-default && yarn build && node ./dist generate pancakeswap-zksync-default", + "makelist:pcs-zksync-default": "yarn checksum:pcs-zksync-default && yarn generate:pcs-zksync-default", "checksum:pcs-polygon-zkevm-default": "yarn build && node ./dist checksum pancakeswap-polygon-zkevm-default", "generate:pcs-polygon-zkevm-default": "yarn test --list=pancakeswap-polygon-zkevm-default && yarn build && node ./dist generate pancakeswap-polygon-zkevm-default", "makelist:pcs-polygon-zkevm-default": "yarn checksum:pcs-polygon-zkevm-default && yarn generate:pcs-polygon-zkevm-default", diff --git a/src/buildList.ts b/src/buildList.ts index a652f759..97ec4d9a 100644 --- a/src/buildList.ts +++ b/src/buildList.ts @@ -4,6 +4,7 @@ import { TokenList } from "@pancakeswap/token-lists"; import { version as pancakeswapDefaultVersion } from "../lists/pancakeswap-default.json"; import { version as pancakeswapEthDefaultVersion } from "../lists/pancakeswap-eth-default.json"; import { version as pancakeswapPolygonZkevmDefaultVersion } from "../lists/pancakeswap-polygon-zkevm-default.json"; +import { version as pancakeswapZksyncDefaultVersion } from "../lists/pancakeswap-zksync-default.json"; import { version as pancakeswapEthMMVersion } from "../lists/pancakeswap-eth-mm.json"; import { version as pancakeswapBnbMMVersion } from "../lists/pancakeswap-bnb-mm.json"; import { version as pancakeswapExtendedVersion } from "../lists/pancakeswap-extended.json"; @@ -17,6 +18,7 @@ import { version as pancakeswapMiniExtendedVersion } from "../lists/pancakeswap- import pancakeswapAptos from "./tokens/pancakeswap-aptos.json"; import pancakeswapDefault from "./tokens/pancakeswap-default.json"; import pancakeswapPolygonZkevmDefault from "./tokens/pancakeswap-polygon-zkevm-default.json"; +import pancakeswapZksyncDefault from "./tokens/pancakeswap-zksync-default.json"; import pancakeswapEthDefault from "./tokens/pancakeswap-eth-default.json"; import pancakeswapEthMM from "./tokens/pancakeswap-eth-mm.json"; import pancakeswapExtended from "./tokens/pancakeswap-extended.json"; @@ -50,6 +52,14 @@ const lists = { currentVersion: pancakeswapAptosVersion, schema: "aptos", }, + "pancakeswap-zksync-default": { + list: pancakeswapZksyncDefault, + name: "PancakeSwap Zksync Default", + keywords: ["pancakeswap", "default", "zksync"], + logoURI: "https://pancakeswap.finance/logo.png", + sort: false, + currentVersion: pancakeswapZksyncDefaultVersion, + }, "pancakeswap-polygon-zkevm-default": { list: pancakeswapPolygonZkevmDefault, name: "PancakeSwap Zkevm Default", diff --git a/src/checksum.ts b/src/checksum.ts index 49ac89c4..81f1aaef 100644 --- a/src/checksum.ts +++ b/src/checksum.ts @@ -3,6 +3,7 @@ import path from "path"; import { getAddress } from "@ethersproject/address"; import pancakeswapDefault from "./tokens/pancakeswap-default.json"; import pancakeswapEthDefault from "./tokens/pancakeswap-eth-default.json"; +import pancakeswapZksyncDefault from "./tokens/pancakeswap-zksync-default.json"; import pancakeswapPolygonZkevmDefault from "./tokens/pancakeswap-polygon-zkevm-default.json"; import pancakeswapEthMM from "./tokens/pancakeswap-eth-mm.json"; import pancakeswapBnbMM from "./tokens/pancakeswap-bnb-mm.json"; @@ -18,6 +19,7 @@ const lists = { "pancakeswap-default": pancakeswapDefault, "pancakeswap-eth-default": pancakeswapEthDefault, "pancakeswap-polygon-zkevm-default": pancakeswapPolygonZkevmDefault, + "pancakeswap-zksync-default": pancakeswapZksyncDefault, "pancakeswap-eth-mm": pancakeswapEthMM, "pancakeswap-bnb-mm": pancakeswapBnbMM, "pancakeswap-extended": pancakeswapExtended, diff --git a/src/ci-check.ts b/src/ci-check.ts index b0829a32..a677a445 100644 --- a/src/ci-check.ts +++ b/src/ci-check.ts @@ -1,6 +1,7 @@ import srcDefault from "./tokens/pancakeswap-default.json"; import srcEthDefault from "./tokens/pancakeswap-eth-default.json"; import srcPolygonZkevmDefault from "./tokens/pancakeswap-polygon-zkevm-default.json"; +import srcZksyncDefault from "./tokens/pancakeswap-zksync-default.json"; import srcExtended from "./tokens/pancakeswap-extended.json"; import srcTop100 from "./tokens/pancakeswap-top-100.json"; import srcTop15 from "./tokens/pancakeswap-top-15.json"; @@ -11,6 +12,7 @@ import srcMiniExtended from "./tokens/pancakeswap-mini-extended.json"; import defaultList from "../lists/pancakeswap-default.json"; import defaultEthList from "../lists/pancakeswap-eth-default.json"; import defaultPolygonZkevmList from "../lists/pancakeswap-polygon-zkevm-default.json"; +import defaultZksyncList from "../lists/pancakeswap-zksync-default.json"; import extendedtList from "../lists/pancakeswap-extended.json"; import top15List from "../lists/pancakeswap-top-15.json"; import top100tList from "../lists/pancakeswap-top-100.json"; @@ -30,6 +32,11 @@ const lists = [ src: srcEthDefault, actual: defaultEthList, }, + { + name: "pancakeswap-zksync-default", + src: srcZksyncDefault, + actual: defaultZksyncList, + }, { name: "pancakeswap-polygon-zkevm-default", src: srcPolygonZkevmDefault, diff --git a/src/tokens/pancakeswap-zksync-default.json b/src/tokens/pancakeswap-zksync-default.json new file mode 100644 index 00000000..6fee8f52 --- /dev/null +++ b/src/tokens/pancakeswap-zksync-default.json @@ -0,0 +1,42 @@ +[ + { + "name": "Wrapped Ether", + "symbol": "WETH", + "address": "0x5AEa5775959fBC2557Cc8789bC1bf90A239D9a91", + "chainId": 324, + "decimals": 18, + "logoURI": "https://tokens.pancakeswap.finance/images/zksync/0x5AEa5775959fBC2557Cc8789bC1bf90A239D9a91.png" + }, + { + "name": "USD Coin", + "symbol": "USDC", + "address": "0x3355df6D4c9C3035724Fd0e3914dE96A5a83aaf4", + "chainId": 324, + "decimals": 6, + "logoURI": "https://tokens.pancakeswap.finance/images/zksync/0x3355df6D4c9C3035724Fd0e3914dE96A5a83aaf4.png" + }, + { + "name": "Tether USD", + "symbol": "USDT", + "address": "0x493257fD37EDB34451f62EDf8D2a0C418852bA4C", + "chainId": 324, + "decimals": 6, + "logoURI": "https://tokens.pancakeswap.finance/images/zksync/0x493257fD37EDB34451f62EDf8D2a0C418852bA4C.png" + }, + { + "name": "Binance USD", + "symbol": "BUSD", + "address": "0x2039bb4116B4EFc145Ec4f0e2eA75012D6C0f181", + "chainId": 324, + "decimals": 18, + "logoURI": "https://tokens.pancakeswap.finance/images/zksync/0x2039bb4116B4EFc145Ec4f0e2eA75012D6C0f181.png" + }, + { + "name": "Wrapped BTC", + "symbol": "WBTC", + "address": "0xBBeB516fb02a01611cBBE0453Fe3c580D7281011", + "chainId": 324, + "decimals": 8, + "logoURI": "https://tokens.pancakeswap.finance/images/zksync/0xBBeB516fb02a01611cBBE0453Fe3c580D7281011.png" + } +] diff --git a/src/utils/multicall.ts b/src/utils/multicall.ts index 07b958d3..c3ac9de2 100644 --- a/src/utils/multicall.ts +++ b/src/utils/multicall.ts @@ -7,6 +7,7 @@ const multicall = { [1]: "0xcA11bde05977b3631167028862bE2a173976CA11", [56]: "0xcA11bde05977b3631167028862bE2a173976CA11", [1101]: "0xcA11bde05977b3631167028862bE2a173976CA11", + [324]: "0xF9cda624FBC7e059355ce98a31693d299FACd963", }; interface MultiCall { diff --git a/src/utils/simpleRpcProvider.ts b/src/utils/simpleRpcProvider.ts index d392347b..cc5ea6e3 100644 --- a/src/utils/simpleRpcProvider.ts +++ b/src/utils/simpleRpcProvider.ts @@ -3,15 +3,18 @@ import { ethers } from "ethers"; const RPC_URL = "https://nodes.pancakeswap.info"; const ETH_RPC_URL = "https://cloudflare-eth.com"; const POLYGON_ZKEVM_RPC_URL = "https://f2562de09abc5efbd21eefa083ff5326.zkevm-rpc.com/"; +const ZKSYNC_RPC_URL = "https://mainnet.era.zksync.io"; const bscRpcProvider = new ethers.providers.StaticJsonRpcProvider(RPC_URL, 56); const ethRpcProvider = new ethers.providers.StaticJsonRpcProvider(ETH_RPC_URL, 1); const polygonZkevmRpcProvider = new ethers.providers.StaticJsonRpcProvider(POLYGON_ZKEVM_RPC_URL, 1101); +const zksyncRpcProvider = new ethers.providers.StaticJsonRpcProvider(ZKSYNC_RPC_URL, 324); const simpleRpcProvider = { [1]: ethRpcProvider, [56]: bscRpcProvider, [1101]: polygonZkevmRpcProvider, + [324]: zksyncRpcProvider, }; export default simpleRpcProvider; diff --git a/test/default.test.ts b/test/default.test.ts index e0257895..ccaa7b95 100644 --- a/test/default.test.ts +++ b/test/default.test.ts @@ -6,6 +6,7 @@ import { getAddress } from "@ethersproject/address"; import pancakeswapSchema from "@pancakeswap/token-lists/schema/pancakeswap.json"; import currentPancakeswapDefaultList from "../lists/pancakeswap-default.json"; import currentPancakeswapEthDefaultList from "../lists/pancakeswap-eth-default.json"; +import currentPancakeswapZksyncDefaultList from "../lists/pancakeswap-zksync-default.json"; import currentPancakeswapPolygonZkevmDefaultList from "../lists/pancakeswap-polygon-zkevm-default.json"; import currentPancakeswapEthMMList from "../lists/pancakeswap-eth-mm.json"; import currentPancakeswapBnbMMList from "../lists/pancakeswap-bnb-mm.json"; @@ -29,6 +30,7 @@ const listArgs = process.argv const CASES = [ ["pancakeswap-default"], ["pancakeswap-eth-default"], + ["pancakeswap-zksync-default"], ["pancakeswap-polygon-zkevm-default"], ["pancakeswap-eth-mm"], ["pancakeswap-extended"], @@ -49,6 +51,7 @@ const currentLists = { "pancakeswap-eth-mm": currentPancakeswapEthMMList, "pancakeswap-bnb-mm": currentPancakeswapBnbMMList, "pancakeswap-eth-default": currentPancakeswapEthDefaultList, + "pancakeswap-zksync-default": currentPancakeswapZksyncDefaultList, "pancakeswap-polygon-zkevm-default": currentPancakeswapPolygonZkevmDefaultList, "pancakeswap-extended": currentPancakeswapExtendedtList, "pancakeswap-top-100": currentPancakeswapTop100tList, @@ -83,6 +86,7 @@ const validate = ajv.compile(pancakeswapSchema); const pathToImages = path.join(path.resolve(), "lists", "images"); const pathToEthImages = path.join(path.resolve(), "lists", "images", "eth"); +const pathToZksyncImages = path.join(path.resolve(), "lists", "images", "zksync"); const pathToPolygonZkevmImages = path.join(path.resolve(), "lists", "images", "polygon-zkevm"); const logoFiles = fs @@ -95,6 +99,11 @@ const ethLogoFiles = fs .filter((f) => f.isFile()) .filter((f) => !/(^|\/)\.[^\/\.]/g.test(f.name)); +const polygonZksyncFiles = fs + .readdirSync(pathToZksyncImages, { withFileTypes: true }) + .filter((f) => f.isFile()) + .filter((f) => !/(^|\/)\.[^\/\.]/g.test(f.name)); + const polygonZkevmLogoFiles = fs .readdirSync(pathToPolygonZkevmImages, { withFileTypes: true }) .filter((f) => f.isFile()) @@ -104,12 +113,14 @@ const multiChainLogoPath = { [56]: "", [1]: "/eth", [1101]: "/polygon-zkevm", + [324]: "/zksync", }; const multiChainLogoFiles = { [56]: logoFiles, [1]: ethLogoFiles, [1101]: polygonZkevmLogoFiles, + [324]: polygonZksyncFiles, }; // Modified https://github.com/you-dont-need/You-Dont-Need-Lodash-Underscore#_get