From 8aa77b15dcecd2a4ad6d7287a2eed9ca9932c515 Mon Sep 17 00:00:00 2001 From: codingsh Date: Tue, 8 Feb 2022 18:47:01 +0100 Subject: [PATCH] feat(cronos): add cronos dexs and nft marketplace --- cspell.json | 8 + packages/mask/shared/flags.ts | 1 + .../components/shared/ApplicationBoard.tsx | 1 + .../SNSAdaptor/CollectibleProviderIcon.tsx | 8 + packages/mask/src/plugins/Collectible/base.ts | 1 + .../Collectible/hooks/useAssetOrder.ts | 2 + .../src/plugins/Collectible/pipes/index.ts | 11 + .../mask/src/plugins/EVM/assets/agoracro.png | Bin 0 -> 12649 bytes .../mask/src/plugins/EVM/assets/cronos.png | Bin 0 -> 13841 bytes packages/mask/src/plugins/EVM/constants.ts | 10 + .../src/plugins/EVM/services/Asset/index.ts | 10 + .../src/plugins/EVM/services/NFT/index.ts | 6 + packages/mask/src/plugins/ITO/base.ts | 1 + packages/mask/src/plugins/RedPacket/base.ts | 1 + .../src/plugins/Trader/apis/trader/index.ts | 2 + packages/mask/src/plugins/Trader/base.ts | 1 + .../mask/src/plugins/Trader/constants/0x.ts | 1 + .../src/plugins/Trader/constants/cronaswap.ts | 14 + .../mask/src/plugins/Trader/constants/dodo.ts | 1 + .../src/plugins/Trader/constants/index.ts | 4 + .../src/plugins/Trader/constants/mmfinance.ts | 14 + .../src/plugins/Trader/constants/openocean.ts | 1 + .../src/plugins/Trader/constants/smolswap.ts | 14 + .../src/plugins/Trader/constants/trader.ts | 5 + .../plugins/Trader/constants/vvsfinance.ts | 14 + packages/mask/src/plugins/Trader/pipes.ts | 26 ++ packages/mask/src/plugins/Trader/settings.ts | 12 + .../src/plugins/Trader/trader/0x/useTrade.ts | 1 + .../Trader/trader/useAllTradeComputed.ts | 52 +++ .../Trader/trader/useGetTradeContext.ts | 56 +++ .../plugins/Trader/trader/useTradeCallback.ts | 8 + .../plugins/Trader/trader/useTradeContext.ts | 56 +++ .../mask/src/plugins/Trader/types/trader.ts | 4 + .../src/plugins/Wallet/services/account.ts | 1 + packages/mask/src/resources/AgoraIcon.tsx | 15 + packages/mask/src/resources/agoracro.png | Bin 0 -> 12649 bytes packages/public-api/src/web.ts | 4 + packages/web3-constants/evm/token.json | 80 +++++ packages/web3-constants/evm/trader.json | 320 ++++++++++++++++++ packages/web3-shared/evm/assets/chains.json | 15 +- packages/web3-shared/evm/pipes/index.ts | 9 + packages/web3-shared/evm/types/index.ts | 5 + .../web3-shared/evm/utils/chainDetailed.ts | 4 +- pnpm-lock.yaml | 2 +- 44 files changed, 798 insertions(+), 3 deletions(-) create mode 100644 packages/mask/src/plugins/EVM/assets/agoracro.png create mode 100644 packages/mask/src/plugins/EVM/assets/cronos.png create mode 100644 packages/mask/src/plugins/Trader/constants/cronaswap.ts create mode 100644 packages/mask/src/plugins/Trader/constants/mmfinance.ts create mode 100644 packages/mask/src/plugins/Trader/constants/smolswap.ts create mode 100644 packages/mask/src/plugins/Trader/constants/vvsfinance.ts create mode 100644 packages/mask/src/resources/AgoraIcon.tsx create mode 100644 packages/mask/src/resources/agoracro.png diff --git a/cspell.json b/cspell.json index 263e8abac64c..824dfa6911ea 100644 --- a/cspell.json +++ b/cspell.json @@ -17,6 +17,7 @@ "adai", "addrs", "aeth", + "agoracro", "amountstate", "ampl", "ampleforth", @@ -59,6 +60,9 @@ "contribs", "cooldown", "counterparty", + "crona", + "cronaswap", + "cronos", "datas", "debank", "denorm", @@ -139,6 +143,7 @@ "millify", "mintable", "misoperation", + "mmfinance", "monofont", "monospace", "mooniswap", @@ -201,6 +206,8 @@ "shink", "signup", "sint", + "smol", + "smolswap", "solana", "sollet", "steelblue", @@ -240,6 +247,7 @@ "viet", "viewbox", "visualcompletion", + "vvsfinance", "walletconnect", "wannaswap", "wault", diff --git a/packages/mask/shared/flags.ts b/packages/mask/shared/flags.ts index 7092e6a0845e..582f79abc136 100644 --- a/packages/mask/shared/flags.ts +++ b/packages/mask/shared/flags.ts @@ -56,6 +56,7 @@ export const Flags = { flow_enabled: true, celo_enabled: true, aurora_enabled: true, + cronos_enabled: true, nft_airdrop_enabled: false, // #region Functionality missing / broken diff --git a/packages/mask/src/components/shared/ApplicationBoard.tsx b/packages/mask/src/components/shared/ApplicationBoard.tsx index aa4ffb7f5b37..f5d2808f1a7d 100644 --- a/packages/mask/src/components/shared/ApplicationBoard.tsx +++ b/packages/mask/src/components/shared/ApplicationBoard.tsx @@ -97,6 +97,7 @@ const SUPPORTED_CHAIN_ID_LIST = [ ChainId.Fantom, ChainId.Aurora, ChainId.Avalanche, + ChainId.Cronos, ] export interface MaskAppEntry { diff --git a/packages/mask/src/plugins/Collectible/SNSAdaptor/CollectibleProviderIcon.tsx b/packages/mask/src/plugins/Collectible/SNSAdaptor/CollectibleProviderIcon.tsx index 0b7815f6f68b..40b714e911a0 100644 --- a/packages/mask/src/plugins/Collectible/SNSAdaptor/CollectibleProviderIcon.tsx +++ b/packages/mask/src/plugins/Collectible/SNSAdaptor/CollectibleProviderIcon.tsx @@ -15,6 +15,11 @@ const useStyles = makeStyles()({ height: 16, verticalAlign: 'bottom', }, + agora: { + width: 16, + height: 16, + verticalAlign: 'bottom', + }, NFTScan: { width: 16, height: 16, @@ -23,6 +28,7 @@ const useStyles = makeStyles()({ }) const NFTScanIcon = new URL('../../../resources/NFTScanIcon.png', import.meta.url).toString() +const AgoraIcon = new URL('../../../resources/agoracro.png', import.meta.url).toString() export interface CollectibleProviderIconProps { provider: NonFungibleAssetProvider @@ -37,6 +43,8 @@ export function CollectibleProviderIcon(props: CollectibleProviderIconProps) { return case NonFungibleAssetProvider.RARIBLE: return + case NonFungibleAssetProvider.AGORA: + return default: unreachable(props.provider) } diff --git a/packages/mask/src/plugins/Collectible/base.ts b/packages/mask/src/plugins/Collectible/base.ts index a63f7ded5c20..cd95dcc13778 100644 --- a/packages/mask/src/plugins/Collectible/base.ts +++ b/packages/mask/src/plugins/Collectible/base.ts @@ -16,6 +16,7 @@ export const base: Plugin.Shared.Definition = { postContent: new Set([ /opensea.io\/assets\/(0x[\dA-Fa-f]{40})\/(\d+)/, /rarible.com\/token\/(0x[\dA-Fa-f]{40}):(\d+)/, + /agoracro.com\/explore\/(0x[\dA-Fa-f]{40}):(\d+)/, ]), }, } diff --git a/packages/mask/src/plugins/Collectible/hooks/useAssetOrder.ts b/packages/mask/src/plugins/Collectible/hooks/useAssetOrder.ts index 1b4f2ca7f4b4..8e48c8eb8496 100644 --- a/packages/mask/src/plugins/Collectible/hooks/useAssetOrder.ts +++ b/packages/mask/src/plugins/Collectible/hooks/useAssetOrder.ts @@ -32,6 +32,8 @@ export function useAssetOrder(provider: NonFungibleAssetProvider, token?: Collec return case NonFungibleAssetProvider.NFTSCAN: return + case NonFungibleAssetProvider.AGORA: + return default: unreachable(provider) } diff --git a/packages/mask/src/plugins/Collectible/pipes/index.ts b/packages/mask/src/plugins/Collectible/pipes/index.ts index b8c9dabd7f80..50cb842026d9 100644 --- a/packages/mask/src/plugins/Collectible/pipes/index.ts +++ b/packages/mask/src/plugins/Collectible/pipes/index.ts @@ -88,6 +88,13 @@ export const resolveLinkOnRarible = createLookupTableResolver( 'https://rarible.com', ) +export const resolveLinkOnAgora = createLookupTableResolver( + { + [ChainId.Cronos]: 'https://agoracro.com/', + }, + 'https://agoracro.com/', +) + export function resolveTraitLinkOnOpenSea(chainId: ChainId, slug: string, search: string, value: string) { if (chainId === ChainId.Rinkeby) { return `https://testnets.opensea.io/assets/${slug}?search[stringTraits][0][name]=${search}&search[stringTraits][0][values][0]=${value}` @@ -109,6 +116,8 @@ export function resolveAssetLinkOnCurrentProvider( return urlcat(resolveLinkOnRarible(chainId), '/token/:address/:id', { address, id }) case NonFungibleAssetProvider.NFTSCAN: return '' + case NonFungibleAssetProvider.AGORA: + return '' default: return '' } @@ -140,6 +149,8 @@ export function resolveAvatarLinkOnCurrentProvider(chainId: ChainId, asset: any, return urlcat(resolveLinkOnRarible(chainId), `/collection/${asset.token_address ?? ''}`) case NonFungibleAssetProvider.NFTSCAN: return '' + case NonFungibleAssetProvider.AGORA: + return '' default: return '' } diff --git a/packages/mask/src/plugins/EVM/assets/agoracro.png b/packages/mask/src/plugins/EVM/assets/agoracro.png new file mode 100644 index 0000000000000000000000000000000000000000..342782ac48b8f030ccd42ab16e3b83124a0e0602 GIT binary patch literal 12649 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 Z3sbp;;Lz(2#QzL&R>w&DzNS<3{{r?rkDvem literal 0 HcmV?d00001 diff --git a/packages/mask/src/plugins/EVM/assets/cronos.png b/packages/mask/src/plugins/EVM/assets/cronos.png new file mode 100644 index 0000000000000000000000000000000000000000..d9a7c1442ee2d6a7ec73250886d0a095df278f69 GIT binary patch literal 13841 zcmYj&WmFqo)NTkC+}*9X6)hTEio3fMFNNan?i4TXZpGax?of&rceemH@Auuc?){N9 zGiPQ_&P-1B*^lf<6(t!oWMX6h0DvYZE2#zmz(99l03ZbD#^76-6?B92RaVyp06@X{ z?*jwK%qINr5*IZYaX`%!=@Ik*&RR@S3;?K)M}e5a0{}cFa*|>i9x!J)@E+>c1S9W! zcnp>_cotuxP$}TU^b@Iqw_(FN1Yti=zz&<3bF5cCCQuFKP)m&Hk%qyy$eYaIukHI? zcz)Im{Kf6?Z{y#quyT1q*ynH4p79h&!0&~NHiiayT*Uc>7qmnIa&t2W3JtU;kLDJK z*pRSu;psB}*HqkxX4=nQy8Sr1yu>TkUAVtR3``>8to)s3NGMfUvEjxKM5!JY!Mndh zNg8S=LNdAn^;R(5&=B0vyyTK@rB^*N86!+eC{Z~Pd@13gWEcR&eIb8WiMo>#kpxtN zklHCW{B4<2P1H~uVqhC)2}uXK3Gjm(Fp+zgI0D_jiJJ?oQvF_BQT8$2gp)`@Cp1Nk ziQPjM!w8&&Ua~frd)ZLJiSsC}a&hFyCQAj!6^hx5E1p+}Srx4USPJm*h%KRsF5xlT zudA(ob(5muqytPQ9j>f^P04h~^8qaII9}SZR)FZimwMR@3b+!9aqtgdLF{m>IFSxQ zK43yFDA@?qm4WpmPzw5esQlh15S<#IB94pd5L(uK&R~^SY0zAV3ZQ&1HPR_WNCnh2 zIb%nu=xNH00IHcfTRn~hg5Zq*oh*itCs{SAz>U%1g0Vq;EhHh-ve5Bth=aQSQsatIgWxZb zw|50m#j$9?41nsX~gAxz*%XfZ~id2At> zCKi7mjPuomAehFKX5P;alV6})DQRJaF?bor+`@x{6m_Hl5YomjOYYmGT5~SD6fmFz zsQKwB)1dB;C+TXOz^!M6hU)5eBWZ8(2*VG!cY>KIuT8{ntd$2-%6>vOMf+khGE+Vs zA_@|JgfA&Hf0#mR4>uWEDTU8loXwJ{E)c(j-|uy-hUsVoF!W!rDES6@=EKr4Gl_*Tw4AD-AcVf*DnZ*bv~;wb^6d#-r&Y0GAQsoD@Hq@k+B$zBeMe+3AazZ@Qge2~wcx zf-6sr&bpVgFWM%=joZNk`xH?ClgBc4X^68a?q}0ISlE7m2I|;Z35in{5WW5+KRKvSJpmHEi z=gOGe#C1J7JR4*S`(sHLUZN-jw!sw|g&9(y!57G)fI&S+xT6Qb`LN#GX{rON`Sv#C zw_F6b218M}7V>*st!>2v!Qt^&7mWuBScFuvSW(SzxTS!Q%dD`D4nZ$B$7m!`-}rWx zfV86l3=_st);wIZGh$6FyeD8(rQfhJBL>K8xXd`=rL(y?Ncg82yX-HsD5bz^m5|7o}@gTc2xfQjVVW&EwluC zh-@ql`6T*&zD|Niz}I#4#m0=K-M261x-M-P9(IOuVU z)z+MOs>Ta{eH!P%C(((rtX$e&y#awX0#m?p`V%;Hk-)F_;~iqCHy$`lo7HOdq+z!w zadX{632cS}D>$5-oD*dHvGq75+y6F8O+Bu0gWk6!q{M6a0#oa~h%YtUYw6)?84c(^FJ$iNaY*?Wxl*8a?PycyELRY{q@N2`V5X^-=sIu}VDvn^AjQ z0-Zmo75wjJEV%aN0UZ4SZ9=Q17N5cV@?|X+Itzsi+DZs)20W^=$(w!xF|qv7bIvu? zK8tU*$jFeNx>!tQcZ4jS@R{}{ZAz_ipbu1f1dwa>3Lt~wUiptQj5iyO2o6_%!H=gg z!qd}t7)_>|nVFkApITtz*Xjf>p76Sy^!C;3smw5O2DHWsm!TjIh3;LT;EzVDZlVqM zZWwwVkSiWz4T_zsIO0<{dGjV4e*cPotNz08I7lm-0M_}p|JsxL?7XbV6nzB^b{)%qQ zbMV*eo^Z8=HicKn_ng`VWyx&!M~=tiAtxzj^aw0V1;9Ya*RdDo^=*x(vcP{@sZ6yw z2@}FCZa#Vs{}y?rZnZm;xce0xR5;+65)xXM4*c45Z$wW|pK{L{C+6E;Z{Y6m;qkuF zLlJ@rF*FfPV)msw5^c96|vZ^%3w}3?-t)cY1YAMxsBa z*;PA1a7(-6%_M}Pp1e!;CN={M;j$!pgLoVr@R-)m12rcQ#%k^H7DB&gQ$mD?lVJiI zP*rqVDWa`bC1}%3>gw{!TqI<0YCdc=`)`w)eGwI=)nF$+*dY1>ZH03v8eja+55<`_ zL*{7ottM^_`$oP?jzj#iJ#D$gNg3t$R|4pNvHyCJ$%{xfEDLp)LpPI|p)H&WDF`Z;fj_6?y*gN{>Z4SQevO z2t3%omEK3<#W|hEkgIeWVfdW>HY-Pi#Z6ofV~;s-tXyC`3Neb}>LiXAYvK|&Q6)!~ zSRXyuVvDAjx)E8@M0{&Rham#7E&JUjS^&kHVoswMbh4qF2oNrWpWN|do!`S~Tl@PZYuAQ)JN4ft zr6=?|fduTvds4iSV(&c#p(xiH`_?R3i9B{zWq4~=O=f4(Rk}U!{^Wu-PDHRwnAe;# zwE?;;00MUmChgncoCMa-R<{?6M7#bF^i<}Q?JQ^7)Su6#(}umh+l6iMJ_qNo7L#Vj zqtHSBalaU8LrHu3VCu!X0P3>VNK@^w;%O~b9x;b?Td+vkFz5o>^i-ZPT*@TwX(^Ii zd%mn{_&m>^3TO85SwXnr$OV#)Npk117b`V--@`D#<=8`-f4gL(&JH5Eu3p+>K`1TB zzs$Md;O6aNTH8IJxp>q-Oko92ceYQa>!aI;3*B_JyV}g|7ovmfp}#q9{mnh=74&$Y z=Pr!8YDV6IWt?xO47({3c(Kc|h+B8Gn}N!k(vp%p`)7ik?J9p|Lt_%dxY01=lHpA- zaQv8lFi%dthTSa~cE9`^Q?Ei<2^(v~-^s09o)j?+H^_^>Ik3D6togE3NB*%~M=oj0 zX|*14{@}4uVHBw>qv;%9cAo6w-@X`%u*UKcLGF^>tED-F*9~qwXB#{}l)=3;}(yZO*ge4zj8;7Xkz&j+E+#X`o)iCvRdP&FVeMYs4m_xdl&@*SV2 zmqx5Cv0NHHGvy+FfS$7dNBEQFnm|8c!Tj}7e7lAQB zand>ck>YZMLQ9o%#iS0QA?J}2uju%%+Mgq3npT8wn|CfAUKT-mkycMHns%^tu8RVs zmL;ufyk|2X3a=+JkC*CsGI?q+2=J!Cd8mCA-(k|naQjj#ndBXd=a6M{fGT50%H}O3 zd}YBG;r9n5?hD9B&(L4i}iMCX3Ve}{visI z>V?L7-B(!jMxmE6_0q(nV2lK2ZFF*W6_P9c>|V3Fb; zlO*`9oxMhih6dX=VWFnOg%bGOafvox9voaBeD#Az^S>nyou8+F=GEKah7=c6{+GQ> zs#Fifw7uyx`LOn*X&E1834Qp5QmO;QIrtf_XC|Pa66GQh_Tj1nf5sBZ1*@Ot#e-jEjMc zes?+RLellh-F2K6aeJ2gZ*_fLS3UW!j}2(!SCxr}hlEvc<~Y(2ZkViJXT!;*@BJJ3 zhXR^xKam9nf*YHNbYm5zizXVZuB4$kqo-{Ke)il;Dcs(qg(L|HQMUkHykZ7?UP7Gc z$E%ly2gId^Y{i7Yy<>Ax#p86k)ZG?37aY0iO{ZWJ;Lr+yBJRecVJlihmOp9GF+HT#IUq zPOIJG`!Po{qUOC&NwEvQIok|-yWsxo{;(13fr~xffFK~^Eax!ORkr9C5w#~`8J>jW zj%4N_6gQ#UADx1VshEF8hZYb!D@*KXTh7z$Zs?D)8J`hQ@jc7@xGJ>O^q(;r_}P<(pXGtkxuPfz&(#W_sK|+E|NRV6wNu zHF5y_`^xJqOc1VwO&1BD<5gJBQ?xcEw}P&x*>!z10dq{BZ+n4N^SH;=HJylg;;D18 z)eanv03AGSOMMfAC5jS4j`Z}DgJ*r39{tBZa2b|oO#%+z`g$$!0-|vslq_|)H@B-? zRXWW-pBkgTzV5R!AYFg{?5Bns{Ni?CKDC=wSOzYYZkA{GU2w^b>No8`17e#2~FyJ zt8kq+;{`T6-r~c%S4ap`rB9mIea}lfg&+AVnh5I?(sWrT+H2L9{P@`-Q^Qv4uM%Ir z@W)Ru!v}98-BSnz71AqH<=6?F_cJ(0jvcuWwCxq7pT^M^D?6I0%pnIjJ*FltkS8bP~E6Qr4OPb;?Lxdj@)0Yt&)h| zwPfL}X;mxSg_!o%h9EZAYRkb<-t&15XtMu4t)lX*%!m)jcoDpZGrMI^u6MpcA3{4A z{lSAGje6qrt9t0CLWV}QMqHY~yYF-7j@AAvnGZg_68sHJar^ow2azI;Kzx9WEA1Wv zts~5!)cY%?2Ue5wpFcSW zHjI8AZj__>pHscI-}rxKOijNf&xX8k`zu#0zF=pyT}A!+K)lM9qxR? zH$d>=oN*Yh;DO=s6yAQNGp7{Gg_CbIGwWwc1t4i0q4R_zv3zT5|K0q@n_h=0^9P08 z0s3nO8-B!Q5rQ{<(XjiAKqxA>4rKTh@cdY*UH)JCT<18CKB3zh1HW6tWToZ|`fNT2 zs`ZT4+REzloyl`lETL`eH7*2efR>n(P zI$3&Sj(PI~ZMqzk1elgOIv%MuNUDl}=U0a^di><&N!0xNe)bNudI~zWPz`ahM4GVz zD7&PGr&>lryKvxKZ`b^h85~x-wK?gD#6mw+XYvjH`u>^IZQ&~}E2O?)E&oXGF!M`} zfT8)T0MB-L-mi@`cH@QzR}6nAGNQ4gzYA|2x&R`&tzHJ!>NIvI@`)?~@_D~k&YCFY zzWMlUZeqXK-}}l#O-SaC&CE!}=jwID4GV{76kX*2hS$=7dgD0s#WMo76bj~j<$-!( zn8yYiSj}pdQW01t@&Y^KZWH1tT$a2w7&f=C^E1~i5-~9T@)h2s=&#UsU9An;El0Q!e^rs@5IG) z>kN}Mu~&#^(N{W6CGdgRQvOM=tK}!|M(@VoN1e-zn;$0gONJo-YmEs&6HwvM*W4%; z*}ED*Tgd-fEw=moeWu(2MWa@)&&uV}X8x>Jec$BoaCN78mFer+EC8bMinTf%14F~vMi-JMyG2sED1xx+JhnDDuKgR{{lN-SIjR}IeiwrG zz7~n+JiX%UI^KmZk|Z9!*Z+ngbj+OY+ux)#E!Hp^j3L@c@zmQuoq!F)Kc+h?SiD$% z6*8se?P&ULV)ILX>n?h8$B-9(r_Dk*?=pW$+_(ulGd)%*+OFLk%;$fcMj$-4c?!|Fr@O=g_91kkY$UJAk^ejo|Jw9kwY&ua{E$5W1 z1|81H{t3n#9d?NLoscB$2VG$M`FEH<9G*+!5SP35Q3M^rLY$VzUEBa#lpEu-kZ{qy zDPKemhbijpPu{at-CStWPj0uF~mef43?aAJbiz6*%NTu z#MAlt7}eWKnMWH*4#0D{?=N2d&4qeO+YDDsyirT$1QUT8FrJ5J5l<0n@@(J_!KzE0K4=VERS0Ug7$PQTvEQs9 zg0ga9>z~wr^2YR>@7eKQy8c@{@iIM!<_7w&S2kcWxC*nOW3=>xo*?!Q^}Gw(%2%PB zJxY65f!)yT)3Pz_;{zz3B|BjMA!L{n{hE>|L zli#$FYPWoaa+B6_wjORhO_N9a<=Js-+nnG12-#MnIsm$86{rM4@~+h4CHg%qH%rdE zF|jMM4TFPPHS!uK>;ZBM00!cUtt=jYByth-z$7Fjq@m0^{jXayoK4WotA1DqKX)Ze z(EUOpPe_L;fe}C?pbDF3uT}e}$YWa>WO#Dx`L_NM^9~XveKPS8AOONebD&ov(a>U1 z;iY|9K%oQ%00UwBKep%*OHttlfVUz>GZlzS5G1h@p!>4YId}BxAUNPqULXjF3>O#4 zf`kI5{Av*b!~~HNszLjM1IkFY0)T-uH2>Y*3xcP_S zE-u1I=l`AgLWx8G?NOFi_kVgR3}o31fgTH4#2V4SB0#$zk@zS=MF7=80()T+EeW|B zKtLvPC}UNIW^GO1+TIS%GmyOxh0gv zgwKn_!w;ByYWG*RH*CRW&EySeY59gHChhL-7yD<4eW>gLVRz)+H@4ToZZ`kBi%$v< z3f#E3S$NL}y%Zqx&)cK9z7`LxiQG44t5;rpztrCng{o81GO^MFwPXJGP7vZ~0>%*6 zBZH^!2U8hjT=cO+4NvMS^^nr2c1Icd%rqd$?LQ!h4-5~TF!94^$0jEfpSMNru*ZG% zuz!Wsn7-X!t>D#R#~v^5FF*3uu(6ftl?%B!8I09-=%rpmtbti(l&kK3cd3V0`X+JgHHw zrq-(d6XN;C?0nb0VY|%g0W17^Re`M{f)-do*(j)do=wPU4_K?>2 zJKTIWem5yTRXOJaTJ0#B(H z_+!`7mD?T$Z%ctplo*;JNc`1X^t3dRhe}44rQaN?j5(nk5piJlYU5SYPoB{?Rjqw| z)S>Gqb=9C^5%?ce!+97*)6P?7223g#fvXwKCPZOAqG3`U)tjzz;>Hyg&h~m;35e^q z8kH&b&$06EN1P{V(*qR0_w!PmoRe|G+gd%Ih^Mg)I(^`wYsK1*GUoS042}UXVxX?) z(>0wHmp|lRxrvWp5xebjnN=d?-!zkoxO*KuAbf*VV&+De-y@UHtgL zSSsuW@c0zqG~}{0Hg~^EW|oYR~iaIq7doo_B@-Dnw5G% zOm?Hr0G`O-e-8!+ooT-Mynk>tef!l?iuevCvRU6(m1)ARM`p~c<#4@O4|$#{T#Vm{ z;mL)VLNZkY+YE5+2vXpdR#UQ05LO)K@I6DXX4X+ zb*3+j^*(kAq=?~TYg^wMp>EOp_##O&z`;Sv6)99uBY(;U zG76u`Y{TM8lLLX%t<8J`(nVh5hx2pCGOaeC{m{S&l}^2v@CT)=hd4p%Iu=f(s@Hc( z5jISQbpSIqHgR0yuAfBkK3TohE54A&Bj{d9R+d4lYBj)1@lXBx3oR97iT*LQ%4LJ0 zD@m79C5YAwST!0=!0!CK4u4Dfhz6x{1ECpRzDA^(*24g6?CclGnT(rsZgY`e7i<58 zeabo*Z1|V=T}60GCZGcX(%>4JejWQIhu3$z`2E=9LQpiu3hc7uy2a5M49AC)u8rL?o#urW9c5>~0t6YT&@@r(T zx?+=Wz^{N(7Av96=WR#y%b#k|@n!pvW(6!AL5Fnw)~(vjiP|oQ<+s+aM-+)m>Ii+R z2wfuE7#oon>N?HfhU@laV@l2vk)T8KaSZ}HpJo#+p+>Qtbmfu)7l|pIs!x2UiA0_D^s~z}& zAsE_`8pKBief-`>|~a(>_J zU?UjB$H3fhQ9cCw=q*;}dCZEpetShY7gbRjGSbk%#ppa+^9Ep$hvogFmr9@twmg28kQm_bo3l6S zdOW!5!6d?ir&H}#V1!)nx*x8#v3|3dwz?xn5ie&8NS@_q_;76KkkjfF;{pq$@`x40 zVIppmie~dO=Ef=ZiN1nKlMi6QeytXS&V6!uttV2HG)UY`-Pd#!uNo)|cy;jh{n-A^ ziIEN@cLAd)Q}ST((q0S^{^mXn5Cf(^y}LcL|D-Jy{<7XAk`%NK(ANb-8X{^QYBCvz zWu##%WveZL_pGOLcYC+Zh2Ujs@g~YVj~yNc6fW^Z=Foa#4?)_ zw!1zzCwvpX6`+@EVfijc#%^-pv1|jp=l$3PixKGw3qqnlgSvoFw-BPeShhJwUU% zNhN07#tU%SXScjU7fykjq$|4G{6VBliw|^HJ)w!Z3zA&cxrmn9QwEsJzXq>D*1aMM4g9(%=m?$wF10oZUvZy2w9J}WrU7?@-N3uhIU*2w7 zs{rM1Zn%6OVRBX0-zu#pqQ+6gGG|7@jyM0Tq!q~H6J2Yp5Ej}G&X>MZ^J?W3MwdH> z4?E@x)xpDhxrwk+9959wukjd+v54H*@2;ateHqA?znx_Qa9neO|XL@ zv4YL%P1>87q$J$+@pTz5_G$iPNJZ*+zJiT$h^S}KpOy>82A2uqBIPu6P3E+b6l3WE ziL8Ae)^xo#?+X}+F0se)sZhT{m z)-1oiN$F;6GO_{sgNf`OIDhz@KpL?pNZ&YkiP6&{ilE2lqb)_9iHXb#VZ|33H1B_djM+V3k#cdFQ86&8nMx1mqUxwa zMfPtHM}0cI->DkErpzllIUWiZ6c^LpS{yHzX{~L2pO7^8gY0s_8Ssai# z%s@l2JVS-yGH!M{o;uW;lftG-y6m`N_IBXQ@P+b{Bw?porH0$@*^gn(e=+5Os4Vqh znuf#gn&qA|E9co7k015J=7!{yic6^ZV(hc) zB4{szLda|40W@`E99g-1$19k_FeA@Hl(W_Z?pT_H%Fy_WZYQdNtDB|Mru`|OR=h7k zE?pX_p`5D^@$`4dU`s8q5VvH3-x=}Yaw87Ke!dlyVHlazP(wgqzQ8P!pI|59>uoW9 zkUGy^&9{onMecXaeD1Upr6?~EQ1gV2ONv;<%n&S}mmGbJDA0K5+EJUC4>roNoe$&A z;ERwd@y`)Jlu?E_Tyg$gQ=qu+FTM!76{{}@)y!Jr`dE3i@rpRHU>ty!_3MV31@G}G z68chdWz~Nw?ACOZhaC4VfbraMSBt3#GgcIHL~G;CN+6j*(T!Z+>Ty~(to=rzb|Z>i zJgY#~<>v#UvbS0D)us;y3lHz~b}sLQbFm`c@lOW2b1% z;=b^>GsIke#87kG_S5MCII2!M6`7FJ2Oz>|B)RzM6&lg6Qa0KH9E2ilG5CorbN?au zmB2OfcTfFnXT&aoslyqaKAUcUcipl4U0@^yhI&k33jH(s`4Ed;-6`PZD>Yc6IazXz z3p`BAG7#g%>r9U1Ck$JG7-y1~yRx1m#tqXzmprJ;l^eSl{>;i26AxXJK|M+zu3Dd4 z>keeAcUYgC(Yesz^|rG|Yq!D}s@?Qe%=Kag0g5jA%xP>xfIf*V!;Nw94?n7OqM=d@ zqZMve#!TaUj~7%$@3+r)B2fMdzIRPF4WA)AGcsJucVrbUBl_rj@KoD-VF&v)X9y8n zy6fiO)L3Y@@p@EUk-ep2Yf9zy1l%G;nK z`V}zeMZoqNOvn7*d#!o$#Nd(Yc2Z1y-^0UCvX}G&`qt|YuOzeNve%m?RFjYU`|`T4 z)y1qa>%P-dQyb^01a^+5&yoc_NPK@;m|5^Yls&aB6>Sz0q@K8azqf4lLu82EoVp>e@#FA22s-IzEyGWQ% zDb-OPvnN}b?KF9|zHedqPm&ULbzm7wNfEI)KI@#JyDoTu%~VSA?83EtTBxddT`bs) z+rprNWaGkymfMb~`Rp4Z|Hq}v7aX%@OrCf|iy09Mfl^M=Y=-@La$)DFmlp1rBH2D5 zIst7_{U7e%b(=F-D>xp6iHV8Gx>Yv%v~u$&mXEPu9i+-Xd2uRC_DoVJ1ifWW2!&dA zOcjoTN=W(J2&8W}{KHDwfm@9SRF4>+Q=YruH=AH;$UXT+lTI&xfW^On5v! zgNpmt$wXT;%Xh-Tmj^Cy&x&7u0Uxl=Hrzo_(RW9JKUYRl{1V-#eVQxy4aPn|@kXUK zGwh3fv-ab-DHnIB%n31HzW7@O(YT!aDdo-0h+_KGyf-^pnd2sI71@hnp;>O^f;NLH4w z_biR#?9a14>dT@QPUl{@P)c_EGE9cnS=3-g{JG>mf2v17yp~PwBlC*sZ+G=LAqD}3 z9ztGetZLh)Z|jL`;p!-OKhoU$#pi*cVr^KpzqO3--J>$ce(GP1n+nrQH=ve;|pQf}~BqGJ~UDXdRqF zF!iZ5yFveyFybXYH!elvV=p2RS3kB&)_H$%B?lxtx8B@6FXB8a06R2Sow5lP0Atx{MZAq9v_NOTDT zt+_QlL%>iOT`#t5L}bP451sE@oWrlYIqdkwxJ5LITRa5v1b*UIILvZL{B1V5{5v}J zP2wj#N)WP%ITu8+`aYqyZ*{l%`VE2om{uF?2JOVKVey0ae_yU7i|*9IY2D4ryBSsZ zD~RNF{}tO+CDQpvG;C{#T?LHejhp@B3s%XuFPEfn*}7C!NEbjvd=qkf(05~jPkj)l z;fq9?MHGiGv;DAGSuU=@TNO;HIg|d4So`gD*;lnjA)A`t^&cDo1nRYp9Q9k98DQXx zMu{&q>yRmIu2j9upCgg1>j_#OMX-f3Qf zvJM;fG?}(7jhOm%%#eN4xB z(KY<-!?BNj>Y>RkX*U}3nUaHK{a-kQwfaP@vL~0&tu0Hw6%NSdl9>UCJ=qF(C&nyFn&%iNThv%gBR-u2%0|>7z?ES8 zACnZK@@6bLDU#ZXHba}ns6Kzo!;KcZ_dBK^q#{`8fR=1DxM%I7A5(tyFp_$dsq8AF z=UM4ONg(776LRDs5=uwE4efO{^?Z$y=8gnu%e>UIIm@C@QvJgpl%2!Hr~CpJIItD5 z?`Ou}35<|wg^zE9-B7ZyTYcVSyR;xM#X`+w752xDX%*tg|3W>qktjz|d`R_OZVH2|f&Q zm~<>hJpMlALF5Sx_Vq*_m~-h}Gv~D|3}_jRWOj6(&4lB+v^Y@_I{8epGdTV6hXezF znUW#57s7-C~xX&$KfjABuNUA_vRR@@AqD-Al0f<6#(h~y_5 z;zXOcgV{q2pFr?=-$u$ldm(27SPZE;u>lOd@^wgf5o`;rf;jjAwuCqBA3{SHGOE#`+Z-vq7L0s!Qslq74!O@jUp^_G!r literal 0 HcmV?d00001 diff --git a/packages/mask/src/plugins/EVM/constants.ts b/packages/mask/src/plugins/EVM/constants.ts index 84506a2a91e6..b1df58855518 100644 --- a/packages/mask/src/plugins/EVM/constants.ts +++ b/packages/mask/src/plugins/EVM/constants.ts @@ -168,6 +168,16 @@ export const PLUGIN_NETWORKS: Web3Plugin.NetworkDescriptor[] = [ iconColor: 'rgb(112, 212, 74)', isMainnet: true, }, + { + ID: `${PLUGIN_ID}_cronos`, + networkSupporterPluginID: PLUGIN_ID, + chainId: ChainId.Cronos, + type: NetworkType.Cronos, + name: 'Aurora', + icon: new URL('./assets/cronos.png', import.meta.url), + iconColor: 'rgb(6, 18, 34)', + isMainnet: true, + }, ] export const PLUGIN_PROVIDERS: Web3Plugin.ProviderDescriptor[] = [ { diff --git a/packages/mask/src/plugins/EVM/services/Asset/index.ts b/packages/mask/src/plugins/EVM/services/Asset/index.ts index 272066f1ba89..ab17dd2aebec 100644 --- a/packages/mask/src/plugins/EVM/services/Asset/index.ts +++ b/packages/mask/src/plugins/EVM/services/Asset/index.ts @@ -56,6 +56,8 @@ export async function getAsset(options: AssetOption) { return case NonFungibleAssetProvider.RARIBLE: return Rarible.getAsset(options.address, options.tokenId, { chainId: options.chainId }) + case NonFungibleAssetProvider.AGORA: + return Rarible.getAsset(options.address, options.tokenId, { chainId: options.chainId }) default: unreachable(options.provider) } @@ -74,6 +76,8 @@ export async function getOrders(options: OrderOption) { return [] case NonFungibleAssetProvider.RARIBLE: return Rarible.getOrders(address, tokenId, side, { chainId }) + case NonFungibleAssetProvider.AGORA: + return Rarible.getOrders(address, tokenId, side, { chainId }) default: unreachable(provider) } @@ -88,6 +92,8 @@ export async function getListings(options: ListOption) { return [] case NonFungibleAssetProvider.RARIBLE: return Rarible.getListings(address, tokenId, { chainId }) + case NonFungibleAssetProvider.AGORA: + return Rarible.getListings(address, tokenId, { chainId }) default: unreachable(provider) } @@ -102,6 +108,8 @@ export async function getHistory(options: HistoryOption) { return [] case NonFungibleAssetProvider.RARIBLE: return Rarible.getHistory(address, tokenId) + case NonFungibleAssetProvider.AGORA: + return Rarible.getHistory(address, tokenId) default: unreachable(provider) } @@ -116,6 +124,8 @@ export async function getCollections(options: CollectionOption) { return defaultPageableData case NonFungibleAssetProvider.NFTSCAN: return defaultPageableData + case NonFungibleAssetProvider.AGORA: + return defaultPageableData default: unreachable(provider) } diff --git a/packages/mask/src/plugins/EVM/services/NFT/index.ts b/packages/mask/src/plugins/EVM/services/NFT/index.ts index 645d573326be..8334f13a1bac 100644 --- a/packages/mask/src/plugins/EVM/services/NFT/index.ts +++ b/packages/mask/src/plugins/EVM/services/NFT/index.ts @@ -39,6 +39,8 @@ export async function getNFT(options: NFTOption) { return NFTScan.getToken(address, tokenId, chainId) case NonFungibleAssetProvider.RARIBLE: return Rarible.getToken(address, tokenId) + case NonFungibleAssetProvider.AGORA: + return Rarible.getToken(address, tokenId) default: unreachable(provider) } @@ -50,6 +52,7 @@ export async function getNFTBalance(options: BalanceOption) { case NonFungibleAssetProvider.RARIBLE: case NonFungibleAssetProvider.OPENSEA: case NonFungibleAssetProvider.NFTSCAN: + case NonFungibleAssetProvider.AGORA: return NFTScan.getContractBalance(address) default: @@ -62,6 +65,7 @@ export async function getNFTContract(options: ContractOption) { switch (provider) { case NonFungibleAssetProvider.OPENSEA: case NonFungibleAssetProvider.NFTSCAN: + case NonFungibleAssetProvider.AGORA: return OpenSea.getContract(contractAddress, chainId) case NonFungibleAssetProvider.RARIBLE: return @@ -79,6 +83,8 @@ export async function getNFTsByPagination(options: NFTsByPaginationOption) { return NFTScan.getTokens(from, options) case NonFungibleAssetProvider.RARIBLE: return Rarible.getTokens(from, options) + case NonFungibleAssetProvider.AGORA: + return Rarible.getTokens(from, options) default: unreachable(provider) } diff --git a/packages/mask/src/plugins/ITO/base.ts b/packages/mask/src/plugins/ITO/base.ts index eceee4b13b46..ef0830e0e36b 100644 --- a/packages/mask/src/plugins/ITO/base.ts +++ b/packages/mask/src/plugins/ITO/base.ts @@ -25,6 +25,7 @@ export const base: Plugin.Shared.Definition = { ChainId.Aurora, ChainId.Avalanche, ChainId.Fantom, + ChainId.Cronos, ], }, }, diff --git a/packages/mask/src/plugins/RedPacket/base.ts b/packages/mask/src/plugins/RedPacket/base.ts index 5be12ed3fc1b..4d108acd251c 100644 --- a/packages/mask/src/plugins/RedPacket/base.ts +++ b/packages/mask/src/plugins/RedPacket/base.ts @@ -26,6 +26,7 @@ export const base: Plugin.Shared.Definition = { ChainId.Fantom, ChainId.Avalanche, ChainId.Aurora, + ChainId.Cronos, ], }, }, diff --git a/packages/mask/src/plugins/Trader/apis/trader/index.ts b/packages/mask/src/plugins/Trader/apis/trader/index.ts index 3e562ea63401..d4b50f282661 100644 --- a/packages/mask/src/plugins/Trader/apis/trader/index.ts +++ b/packages/mask/src/plugins/Trader/apis/trader/index.ts @@ -50,6 +50,8 @@ export async function getAvailableTraderProviders(chainId: ChainId) { return [TradeProvider.SUSHISWAP] case NetworkType.Aurora: return [TradeProvider.DODO, TradeProvider.WANNASWAP, TradeProvider.TRISOLARIS] + case NetworkType.Cronos: + return [TradeProvider.VVSFINANCE, TradeProvider.SMOLSWAP, TradeProvider.MMFINANCE, TradeProvider.CRONASWAP] case NetworkType.Boba: case NetworkType.Fuse: case NetworkType.Metis: diff --git a/packages/mask/src/plugins/Trader/base.ts b/packages/mask/src/plugins/Trader/base.ts index 2c575a7ae707..fd03c270e483 100644 --- a/packages/mask/src/plugins/Trader/base.ts +++ b/packages/mask/src/plugins/Trader/base.ts @@ -23,6 +23,7 @@ export const base: Plugin.Shared.Definition = { ChainId.Aurora, ChainId.Avalanche, ChainId.Fantom, + ChainId.Cronos, ], }, }, diff --git a/packages/mask/src/plugins/Trader/constants/0x.ts b/packages/mask/src/plugins/Trader/constants/0x.ts index 06be52d5c29f..c4a0b81a7ad4 100644 --- a/packages/mask/src/plugins/Trader/constants/0x.ts +++ b/packages/mask/src/plugins/Trader/constants/0x.ts @@ -14,6 +14,7 @@ export const ZRX_BASE_URL: Record = { [NetworkType.Fuse]: '', [NetworkType.Metis]: '', [NetworkType.Optimistic]: '', + [NetworkType.Cronos]: '', } export const ZRX_AFFILIATE_ADDRESS = '0x934B510D4C9103E6a87AEf13b816fb080286D649' diff --git a/packages/mask/src/plugins/Trader/constants/cronaswap.ts b/packages/mask/src/plugins/Trader/constants/cronaswap.ts new file mode 100644 index 000000000000..c94dbdbfc0db --- /dev/null +++ b/packages/mask/src/plugins/Trader/constants/cronaswap.ts @@ -0,0 +1,14 @@ +import { ChainId } from '@masknet/web3-shared-evm' +import { DAI, USDC, USDT, WBTC, SMOL, WNATIVE, WNATIVE_ONLY } from './trader' +import type { ERC20AgainstToken, ERC20TokenCustomizedBase } from './types' + +/** + * Some tokens can only be swapped via certain pairs, + * so we override the list of bases that are considered for these tokens. + */ +export const CRONASWAP_CUSTOM_BASES: ERC20TokenCustomizedBase = {} + +export const CRONASWAP_BASE_AGAINST_TOKENS: ERC20AgainstToken = { + ...WNATIVE_ONLY, + [ChainId.Cronos]: [WNATIVE, SMOL, DAI, USDT, USDC, WBTC].map((x) => x[ChainId.Cronos]), +} diff --git a/packages/mask/src/plugins/Trader/constants/dodo.ts b/packages/mask/src/plugins/Trader/constants/dodo.ts index 7996fe13525e..413fd964d08d 100644 --- a/packages/mask/src/plugins/Trader/constants/dodo.ts +++ b/packages/mask/src/plugins/Trader/constants/dodo.ts @@ -16,4 +16,5 @@ export const networkNames: Record = { [NetworkType.Fuse]: '', [NetworkType.Metis]: '', [NetworkType.Optimistic]: '', + [NetworkType.Cronos]: '', } diff --git a/packages/mask/src/plugins/Trader/constants/index.ts b/packages/mask/src/plugins/Trader/constants/index.ts index 7cde5749d988..2e40ad686b7a 100644 --- a/packages/mask/src/plugins/Trader/constants/index.ts +++ b/packages/mask/src/plugins/Trader/constants/index.ts @@ -13,4 +13,8 @@ export * from './traderjoe' export * from './pangolindex' export * from './wannaswap' export * from './trisolaris' +export * from './vvsfinance' +export * from './mmfinance' +export * from './cronaswap' +export * from './smolswap' export type { ERC20TokenCustomizedBase, ERC20AgainstToken } from './types' diff --git a/packages/mask/src/plugins/Trader/constants/mmfinance.ts b/packages/mask/src/plugins/Trader/constants/mmfinance.ts new file mode 100644 index 000000000000..9fe6189b3641 --- /dev/null +++ b/packages/mask/src/plugins/Trader/constants/mmfinance.ts @@ -0,0 +1,14 @@ +import { ChainId } from '@masknet/web3-shared-evm' +import { DAI, USDC, USDT, WBTC, MMF, WNATIVE, WNATIVE_ONLY } from './trader' +import type { ERC20AgainstToken, ERC20TokenCustomizedBase } from './types' + +/** + * Some tokens can only be swapped via certain pairs, + * so we override the list of bases that are considered for these tokens. + */ +export const MMFINANCE_CUSTOM_BASES: ERC20TokenCustomizedBase = {} + +export const MMFINANCE_BASE_AGAINST_TOKENS: ERC20AgainstToken = { + ...WNATIVE_ONLY, + [ChainId.Cronos]: [WNATIVE, MMF, DAI, USDT, USDC, WBTC].map((x) => x[ChainId.Cronos]), +} diff --git a/packages/mask/src/plugins/Trader/constants/openocean.ts b/packages/mask/src/plugins/Trader/constants/openocean.ts index 862e158999b1..3d86c44ef972 100644 --- a/packages/mask/src/plugins/Trader/constants/openocean.ts +++ b/packages/mask/src/plugins/Trader/constants/openocean.ts @@ -16,4 +16,5 @@ export const networkNames: Record = { [NetworkType.Fuse]: '', [NetworkType.Metis]: '', [NetworkType.Optimistic]: '', + [NetworkType.Cronos]: '', } diff --git a/packages/mask/src/plugins/Trader/constants/smolswap.ts b/packages/mask/src/plugins/Trader/constants/smolswap.ts new file mode 100644 index 000000000000..52bf402a8688 --- /dev/null +++ b/packages/mask/src/plugins/Trader/constants/smolswap.ts @@ -0,0 +1,14 @@ +import { ChainId } from '@masknet/web3-shared-evm' +import { DAI, USDC, USDT, WBTC, SMOL, WNATIVE, WNATIVE_ONLY } from './trader' +import type { ERC20AgainstToken, ERC20TokenCustomizedBase } from './types' + +/** + * Some tokens can only be swapped via certain pairs, + * so we override the list of bases that are considered for these tokens. + */ +export const SMOLSWAP_CUSTOM_BASES: ERC20TokenCustomizedBase = {} + +export const SMOLSWAP_BASE_AGAINST_TOKENS: ERC20AgainstToken = { + ...WNATIVE_ONLY, + [ChainId.Cronos]: [WNATIVE, SMOL, DAI, USDT, USDC, WBTC].map((x) => x[ChainId.Cronos]), +} diff --git a/packages/mask/src/plugins/Trader/constants/trader.ts b/packages/mask/src/plugins/Trader/constants/trader.ts index 6f8cdc2d5594..8ee7f3e25a62 100644 --- a/packages/mask/src/plugins/Trader/constants/trader.ts +++ b/packages/mask/src/plugins/Trader/constants/trader.ts @@ -50,6 +50,10 @@ export const CUSD = createERC20Tokens('cUSD_ADDRESS', 'Celo Dollar', 'cUSD', 18) export const CEUR = createERC20Tokens('cEUR_ADDRESS', 'Celo Euro', 'cEUR', 18) export const JOE = createERC20Tokens('JOE_ADDRESS', 'JoeToken', 'JOE', 18) export const PNG = createERC20Tokens('PNG_ADDRESS', 'Pangolin', 'PNG', 18) +export const VVS = createERC20Tokens('VVS_ADDRESS', 'VVSToken', 'VVS', 18) +export const SMOL = createERC20Tokens('SMOL_ADDRESS', 'SmolSwap', 'Smol', 18) +export const MMF = createERC20Tokens('MMF_ADDRESS', 'Mad Meerkat Finance', 'MMF', 18) +export const CRONA = createERC20Tokens('CRONA_ADDRESS', 'CronaSwap Token', 'CRONA', 18) export const WNATIVE = createERC20Tokens( 'WNATIVE_ADDRESS', @@ -77,6 +81,7 @@ export const WNATIVE_ONLY: ERC20AgainstToken = { [ChainId.Fantom]: [WNATIVE[ChainId.Fantom]], [ChainId.Aurora]: [WNATIVE[ChainId.Aurora]], [ChainId.Aurora_Testnet]: [WNATIVE[ChainId.Aurora_Testnet]], + [ChainId.Cronos]: [WNATIVE[ChainId.Cronos]], } export const BIPS_BASE = new BigNumber(10000) diff --git a/packages/mask/src/plugins/Trader/constants/vvsfinance.ts b/packages/mask/src/plugins/Trader/constants/vvsfinance.ts new file mode 100644 index 000000000000..8e634dadfa75 --- /dev/null +++ b/packages/mask/src/plugins/Trader/constants/vvsfinance.ts @@ -0,0 +1,14 @@ +import { ChainId } from '@masknet/web3-shared-evm' +import { DAI, USDC, USDT, WBTC, VVS, WNATIVE, WNATIVE_ONLY } from './trader' +import type { ERC20AgainstToken, ERC20TokenCustomizedBase } from './types' + +/** + * Some tokens can only be swapped via certain pairs, + * so we override the list of bases that are considered for these tokens. + */ +export const VVSFINANCE_CUSTOM_BASES: ERC20TokenCustomizedBase = {} + +export const VVSFINANCE_BASE_AGAINST_TOKENS: ERC20AgainstToken = { + ...WNATIVE_ONLY, + [ChainId.Cronos]: [WNATIVE, VVS, DAI, USDT, USDC, WBTC].map((x) => x[ChainId.Cronos]), +} diff --git a/packages/mask/src/plugins/Trader/pipes.ts b/packages/mask/src/plugins/Trader/pipes.ts index ea9434a4858a..d30bcc281d7a 100644 --- a/packages/mask/src/plugins/Trader/pipes.ts +++ b/packages/mask/src/plugins/Trader/pipes.ts @@ -61,6 +61,8 @@ export const resolveTradeProviderName = createLookupTableResolver { throw new Error(`Unknown provider type: ${tradeProvider}`) @@ -98,6 +100,7 @@ export function resolveTradeProviderLink(tradeProvider: TradeProvider, networkTy case NetworkType.Metis: case NetworkType.Avalanche: case NetworkType.Optimistic: + case NetworkType.Cronos: console.error('To be implement network: ', networkType) return '' default: @@ -128,6 +131,14 @@ export function resolveTradeProviderLink(tradeProvider: TradeProvider, networkTy return 'https://www.trisolaris.io/#/swap' case TradeProvider.WANNASWAP: return 'https://wannaswap.finance/exchange/swap' + case TradeProvider.VVSFINANCE: + return 'https://vvs.finance/swap' + case TradeProvider.SMOLSWAP: + return 'https://www.smolswap.com/swap' + case TradeProvider.CRONASWAP: + return 'https://app.cronaswap.org/swap' + case TradeProvider.MMFINANCE: + return 'https://mm.finance/swap' default: unreachable(tradeProvider) } @@ -176,6 +187,7 @@ export function resolveTradePairLink(tradeProvider: TradeProvider, address: stri case NetworkType.Fuse: case NetworkType.Metis: case NetworkType.Optimistic: + case NetworkType.Cronos: console.error('To be implement network: ', networkType) return '' default: @@ -206,6 +218,18 @@ export function resolveTradePairLink(tradeProvider: TradeProvider, address: stri case TradeProvider.WANNASWAP: // TODO - add WannaSwap analytics return '' + case TradeProvider.VVSFINANCE: + // TODO - add vvsfinance analytics + return '' + case TradeProvider.SMOLSWAP: + // TODO - add smolswap analytics + return '' + case TradeProvider.MMFINANCE: + // TODO - add mmfinance analytics + return '' + case TradeProvider.CRONASWAP: + // TODO - add crona swap analytics + return '' default: unreachable(tradeProvider) } @@ -299,6 +323,8 @@ export const resolveZrxTradePoolName = createLookupTableResolver(`${PLUGIN_ID}+tradeProvi const openoceanSettings = createInternalSettings(`${PLUGIN_ID}+tradeProvider+openocean`, '') const trisolarisSettings = createInternalSettings(`${PLUGIN_ID}+tradeProvider+trisolaris`, '') const wannaswapSettings = createInternalSettings(`${PLUGIN_ID}+tradeProvider+wannaswap`, '') +const vvsfinanceSettings = createInternalSettings(`${PLUGIN_ID}+tradeProvider+vvsfinance`, '') +const smolswapSettings = createInternalSettings(`${PLUGIN_ID}+tradeProvider+smolswap`, '') +const cronaswapSettings = createInternalSettings(`${PLUGIN_ID}+tradeProvider+cronaswap`, '') +const mmfinanceSettings = createInternalSettings(`${PLUGIN_ID}+tradeProvider+mmfinance`, '') /** * The general settings of specific tarde provider @@ -91,6 +95,14 @@ export function getCurrentTradeProviderGeneralSettings(tradeProvider: TradeProvi return trisolarisSettings case TradeProvider.WANNASWAP: return wannaswapSettings + case TradeProvider.VVSFINANCE: + return vvsfinanceSettings + case TradeProvider.SMOLSWAP: + return smolswapSettings + case TradeProvider.CRONASWAP: + return cronaswapSettings + case TradeProvider.MMFINANCE: + return mmfinanceSettings default: unreachable(tradeProvider) } diff --git a/packages/mask/src/plugins/Trader/trader/0x/useTrade.ts b/packages/mask/src/plugins/Trader/trader/0x/useTrade.ts index a088f29ca27b..9441f0dcb970 100644 --- a/packages/mask/src/plugins/Trader/trader/0x/useTrade.ts +++ b/packages/mask/src/plugins/Trader/trader/0x/useTrade.ts @@ -35,6 +35,7 @@ export function getNativeTokenLabel(networkType: NetworkType) { case NetworkType.Metis: case NetworkType.Avalanche: case NetworkType.Optimistic: + case NetworkType.Cronos: return NATIVE_TOKEN_ADDRESS default: safeUnreachable(networkType) diff --git a/packages/mask/src/plugins/Trader/trader/useAllTradeComputed.ts b/packages/mask/src/plugins/Trader/trader/useAllTradeComputed.ts index 085da9903ab5..1f41124ebd91 100644 --- a/packages/mask/src/plugins/Trader/trader/useAllTradeComputed.ts +++ b/packages/mask/src/plugins/Trader/trader/useAllTradeComputed.ts @@ -247,6 +247,54 @@ export function useAllTradeComputed( const wannaswap = useUniswapTradeComputed(wannaswap_.value, inputToken, outputToken) const wannaSwapEstimateGas = useUniswapTradeGasLimit(wannaswap, TradeProvider.WANNASWAP) + // Vvsfinance + const vvsfinance_ = useUniswapV2Trade( + TradeProvider.VVSFINANCE, + TradeStrategy.ExactIn, + inputAmount_, + '0', + tradeProviders.some((x) => x === TradeProvider.VVSFINANCE) ? inputToken : undefined, + tradeProviders.some((x) => x === TradeProvider.VVSFINANCE) ? outputToken : undefined, + ) + const vvsfinance = useUniswapTradeComputed(vvsfinance_.value, inputToken, outputToken) + const vvsfinanceEstimateGas = useUniswapTradeGasLimit(vvsfinance, TradeProvider.VVSFINANCE) + + // SmolSwap + const smolswap_ = useUniswapV2Trade( + TradeProvider.SMOLSWAP, + TradeStrategy.ExactIn, + inputAmount_, + '0', + tradeProviders.some((x) => x === TradeProvider.SMOLSWAP) ? inputToken : undefined, + tradeProviders.some((x) => x === TradeProvider.SMOLSWAP) ? outputToken : undefined, + ) + const smolswap = useUniswapTradeComputed(smolswap_.value, inputToken, outputToken) + const smolswapEstimateGas = useUniswapTradeGasLimit(smolswap, TradeProvider.SMOLSWAP) + + // MM finance + const mmfinance_ = useUniswapV2Trade( + TradeProvider.MMFINANCE, + TradeStrategy.ExactIn, + inputAmount_, + '0', + tradeProviders.some((x) => x === TradeProvider.MMFINANCE) ? inputToken : undefined, + tradeProviders.some((x) => x === TradeProvider.MMFINANCE) ? outputToken : undefined, + ) + const mmfinance = useUniswapTradeComputed(mmfinance_.value, inputToken, outputToken) + const mmfinanceEstimateGas = useUniswapTradeGasLimit(mmfinance, TradeProvider.MMFINANCE) + + // CronaSwap + const cronaswap_ = useUniswapV2Trade( + TradeProvider.CRONASWAP, + TradeStrategy.ExactIn, + inputAmount_, + '0', + tradeProviders.some((x) => x === TradeProvider.CRONASWAP) ? inputToken : undefined, + tradeProviders.some((x) => x === TradeProvider.CRONASWAP) ? outputToken : undefined, + ) + const cronaswap = useUniswapTradeComputed(cronaswap_.value, inputToken, outputToken) + const cronaswapEstimateGas = useUniswapTradeGasLimit(cronaswap, TradeProvider.MMFINANCE) + const allTradeResult = [ { provider: TradeProvider.UNISWAP_V2, ...uniswapV2_, value: uniswapV2, gas: uniswapV2EstimateGas }, { provider: TradeProvider.SUSHISWAP, ...sushiSwap_, value: sushiSwap, gas: sushiSwapEstimateGas }, @@ -263,6 +311,10 @@ export function useAllTradeComputed( { provider: TradeProvider.OPENOCEAN, ...openocean_, value: openocean, gas: openoceanSwapEstimateGas }, { provider: TradeProvider.WANNASWAP, ...wannaswap_, value: wannaswap, gas: wannaSwapEstimateGas }, { provider: TradeProvider.TRISOLARIS, ...trisolaris_, value: trisolaris, gas: trisolarisEstimateGas }, + { provider: TradeProvider.VVSFINANCE, ...vvsfinance_, value: vvsfinance, gas: vvsfinanceEstimateGas }, + { provider: TradeProvider.CRONASWAP, ...cronaswap_, value: cronaswap, gas: cronaswapEstimateGas }, + { provider: TradeProvider.MMFINANCE, ...mmfinance_, value: mmfinance, gas: mmfinanceEstimateGas }, + { provider: TradeProvider.SMOLSWAP, ...smolswap_, value: smolswap, gas: smolswapEstimateGas }, ] return nativeToken_.value diff --git a/packages/mask/src/plugins/Trader/trader/useGetTradeContext.ts b/packages/mask/src/plugins/Trader/trader/useGetTradeContext.ts index 77533cc926e2..27aa50134812 100644 --- a/packages/mask/src/plugins/Trader/trader/useGetTradeContext.ts +++ b/packages/mask/src/plugins/Trader/trader/useGetTradeContext.ts @@ -21,6 +21,14 @@ import { WANNASWAP_CUSTOM_BASES, TRISOLARIS_BASE_AGAINST_TOKENS, TRISOLARIS_CUSTOM_BASES, + VVSFINANCE_BASE_AGAINST_TOKENS, + VVSFINANCE_CUSTOM_BASES, + SMOLSWAP_BASE_AGAINST_TOKENS, + SMOLSWAP_CUSTOM_BASES, + CRONASWAP_BASE_AGAINST_TOKENS, + CRONASWAP_CUSTOM_BASES, + MMFINANCE_BASE_AGAINST_TOKENS, + MMFINANCE_CUSTOM_BASES, } from '../constants' import { unreachable } from '@dimensiondev/kit' import { TargetChainIdContext } from './useTargetChainIdContext' @@ -150,6 +158,54 @@ export function useGetTradeContext(tradeProvider?: TradeProvider) { ADDITIONAL_TOKENS: {}, CUSTOM_TOKENS: TRISOLARIS_CUSTOM_BASES, } + case TradeProvider.VVSFINANCE: + return { + TYPE: tradeProvider, + IS_UNISWAP_V2_LIKE: true, + GRAPH_API: DEX_TRADE.VVSFINANCE_THEGRAPH, + INIT_CODE_HASH: DEX_TRADE.VVSFINANCE_INIT_CODE_HASH, + ROUTER_CONTRACT_ADDRESS: DEX_TRADE.VVSFINANCE_ROUTER_ADDRESS, + FACTORY_CONTRACT_ADDRESS: DEX_TRADE.VVSFINANCE_FACTORY_ADDRESS, + AGAINST_TOKENS: VVSFINANCE_BASE_AGAINST_TOKENS, + ADDITIONAL_TOKENS: {}, + CUSTOM_TOKENS: VVSFINANCE_CUSTOM_BASES, + } + case TradeProvider.CRONASWAP: + return { + TYPE: tradeProvider, + IS_UNISWAP_V2_LIKE: true, + GRAPH_API: DEX_TRADE.CRONASWAP_THEGRAPH, + INIT_CODE_HASH: DEX_TRADE.CRONASWAP_INIT_CODE_HASH, + ROUTER_CONTRACT_ADDRESS: DEX_TRADE.CRONASWAP_ROUTER_ADDRESS, + FACTORY_CONTRACT_ADDRESS: DEX_TRADE.CRONASWAP_FACTORY_ADDRESS, + AGAINST_TOKENS: CRONASWAP_BASE_AGAINST_TOKENS, + ADDITIONAL_TOKENS: {}, + CUSTOM_TOKENS: CRONASWAP_CUSTOM_BASES, + } + case TradeProvider.SMOLSWAP: + return { + TYPE: tradeProvider, + IS_UNISWAP_V2_LIKE: true, + GRAPH_API: DEX_TRADE.SMOLSWAP_THEGRAPH, + INIT_CODE_HASH: DEX_TRADE.SMOLSWAP_INIT_CODE_HASH, + ROUTER_CONTRACT_ADDRESS: DEX_TRADE.SMOLSWAP_ROUTER_ADDRESS, + FACTORY_CONTRACT_ADDRESS: DEX_TRADE.SMOLSWAP_FACTORY_ADDRESS, + AGAINST_TOKENS: SMOLSWAP_BASE_AGAINST_TOKENS, + ADDITIONAL_TOKENS: {}, + CUSTOM_TOKENS: SMOLSWAP_CUSTOM_BASES, + } + case TradeProvider.MMFINANCE: + return { + TYPE: tradeProvider, + IS_UNISWAP_V2_LIKE: true, + GRAPH_API: DEX_TRADE.MMFINANCE_THEGRAPH, + INIT_CODE_HASH: DEX_TRADE.MMFINANCE_INIT_CODE_HASH, + ROUTER_CONTRACT_ADDRESS: DEX_TRADE.MMFINANCE_ROUTER_ADDRESS, + FACTORY_CONTRACT_ADDRESS: DEX_TRADE.MMFINANCE_FACTORY_ADDRESS, + AGAINST_TOKENS: MMFINANCE_BASE_AGAINST_TOKENS, + ADDITIONAL_TOKENS: {}, + CUSTOM_TOKENS: MMFINANCE_CUSTOM_BASES, + } case TradeProvider.ZRX: return { TYPE: tradeProvider, diff --git a/packages/mask/src/plugins/Trader/trader/useTradeCallback.ts b/packages/mask/src/plugins/Trader/trader/useTradeCallback.ts index c678a4013af9..7f4badaa93f1 100644 --- a/packages/mask/src/plugins/Trader/trader/useTradeCallback.ts +++ b/packages/mask/src/plugins/Trader/trader/useTradeCallback.ts @@ -100,6 +100,14 @@ export function useTradeCallback( return uniswapV2Like case TradeProvider.TRISOLARIS: return uniswapV2Like + case TradeProvider.VVSFINANCE: + return uniswapV2Like + case TradeProvider.SMOLSWAP: + return uniswapV2Like + case TradeProvider.MMFINANCE: + return uniswapV2Like + case TradeProvider.CRONASWAP: + return uniswapV2Like case TradeProvider.ZRX: return zrx case TradeProvider.BALANCER: diff --git a/packages/mask/src/plugins/Trader/trader/useTradeContext.ts b/packages/mask/src/plugins/Trader/trader/useTradeContext.ts index 3db649333430..948051bd6e76 100644 --- a/packages/mask/src/plugins/Trader/trader/useTradeContext.ts +++ b/packages/mask/src/plugins/Trader/trader/useTradeContext.ts @@ -21,6 +21,14 @@ import { WANNASWAP_CUSTOM_BASES, TRISOLARIS_CUSTOM_BASES, TRISOLARIS_BASE_AGAINST_TOKENS, + VVSFINANCE_CUSTOM_BASES, + VVSFINANCE_BASE_AGAINST_TOKENS, + CRONASWAP_BASE_AGAINST_TOKENS, + CRONASWAP_CUSTOM_BASES, + MMFINANCE_BASE_AGAINST_TOKENS, + MMFINANCE_CUSTOM_BASES, + SMOLSWAP_BASE_AGAINST_TOKENS, + SMOLSWAP_CUSTOM_BASES, } from '../constants' import type { TradeContext as TradeContext_ } from '../types' import { TargetChainIdContext } from './useTargetChainIdContext' @@ -128,6 +136,54 @@ export function useTradeContext(tradeProvider: TradeProvider) { ADDITIONAL_TOKENS: {}, CUSTOM_TOKENS: TRISOLARIS_CUSTOM_BASES, } + case TradeProvider.VVSFINANCE: + return { + TYPE: tradeProvider, + IS_UNISWAP_V2_LIKE: true, + GRAPH_API: DEX_TRADE.VVSFINANCE_THEGRAPH, + INIT_CODE_HASH: DEX_TRADE.VVSFINANCE_INIT_CODE_HASH, + ROUTER_CONTRACT_ADDRESS: DEX_TRADE.VVSFINANCE_ROUTER_ADDRESS, + FACTORY_CONTRACT_ADDRESS: DEX_TRADE.VVSFINANCE_FACTORY_ADDRESS, + AGAINST_TOKENS: VVSFINANCE_BASE_AGAINST_TOKENS, + ADDITIONAL_TOKENS: {}, + CUSTOM_TOKENS: VVSFINANCE_CUSTOM_BASES, + } + case TradeProvider.SMOLSWAP: + return { + TYPE: tradeProvider, + IS_UNISWAP_V2_LIKE: true, + GRAPH_API: DEX_TRADE.SMOLSWAP_THEGRAPH, + INIT_CODE_HASH: DEX_TRADE.SMOLSWAP_INIT_CODE_HASH, + ROUTER_CONTRACT_ADDRESS: DEX_TRADE.SMOLSWAP_ROUTER_ADDRESS, + FACTORY_CONTRACT_ADDRESS: DEX_TRADE.SMOLSWAP_FACTORY_ADDRESS, + AGAINST_TOKENS: SMOLSWAP_BASE_AGAINST_TOKENS, + ADDITIONAL_TOKENS: {}, + CUSTOM_TOKENS: SMOLSWAP_CUSTOM_BASES, + } + case TradeProvider.CRONASWAP: + return { + TYPE: tradeProvider, + IS_UNISWAP_V2_LIKE: true, + GRAPH_API: DEX_TRADE.CRONASWAP_THEGRAPH, + INIT_CODE_HASH: DEX_TRADE.CRONASWAP_INIT_CODE_HASH, + ROUTER_CONTRACT_ADDRESS: DEX_TRADE.CRONASWAP_ROUTER_ADDRESS, + FACTORY_CONTRACT_ADDRESS: DEX_TRADE.CRONASWAP_FACTORY_ADDRESS, + AGAINST_TOKENS: CRONASWAP_BASE_AGAINST_TOKENS, + ADDITIONAL_TOKENS: {}, + CUSTOM_TOKENS: CRONASWAP_CUSTOM_BASES, + } + case TradeProvider.MMFINANCE: + return { + TYPE: tradeProvider, + IS_UNISWAP_V2_LIKE: true, + GRAPH_API: DEX_TRADE.MMFINANCE_THEGRAPH, + INIT_CODE_HASH: DEX_TRADE.MMFINANCE_INIT_CODE_HASH, + ROUTER_CONTRACT_ADDRESS: DEX_TRADE.MMFINANCE_ROUTER_ADDRESS, + FACTORY_CONTRACT_ADDRESS: DEX_TRADE.MMFINANCE_FACTORY_ADDRESS, + AGAINST_TOKENS: MMFINANCE_BASE_AGAINST_TOKENS, + ADDITIONAL_TOKENS: {}, + CUSTOM_TOKENS: MMFINANCE_CUSTOM_BASES, + } case TradeProvider.ZRX: return { TYPE: tradeProvider, diff --git a/packages/mask/src/plugins/Trader/types/trader.ts b/packages/mask/src/plugins/Trader/types/trader.ts index fb0d655737ee..c5e9b6afc117 100644 --- a/packages/mask/src/plugins/Trader/types/trader.ts +++ b/packages/mask/src/plugins/Trader/types/trader.ts @@ -75,6 +75,10 @@ export enum ZrxTradePool { PangolinDex = 'PangolinDex', Trisolaris = 'Trisolaris', WannaSwap = 'WannaSwap', + Vvsfinance = 'Vvsfinance', + SmolSwap = 'SmolSwap', + Mmfinance = 'Mmfinance', + CronaSwap = 'CronaSwap', } export interface TradeComputed { diff --git a/packages/mask/src/plugins/Wallet/services/account.ts b/packages/mask/src/plugins/Wallet/services/account.ts index 2b3759fc6beb..df3284470201 100644 --- a/packages/mask/src/plugins/Wallet/services/account.ts +++ b/packages/mask/src/plugins/Wallet/services/account.ts @@ -128,5 +128,6 @@ export async function getSupportedNetworks() { Flags.fantom_enabled ? NetworkType.Fantom : undefined, Flags.avalanche_enabled ? NetworkType.Avalanche : undefined, Flags.aurora_enabled ? NetworkType.Aurora : undefined, + Flags.cronos_enabled ? NetworkType.Cronos : undefined, ].filter(Boolean) as NetworkType[] } diff --git a/packages/mask/src/resources/AgoraIcon.tsx b/packages/mask/src/resources/AgoraIcon.tsx new file mode 100644 index 000000000000..3d1a3314b48f --- /dev/null +++ b/packages/mask/src/resources/AgoraIcon.tsx @@ -0,0 +1,15 @@ +import { SvgIconProps, SvgIcon } from '@mui/material' + +const svg = ( + + + + +) + +export function AgoraIcon(props: SvgIconProps) { + return {svg} +} diff --git a/packages/mask/src/resources/agoracro.png b/packages/mask/src/resources/agoracro.png new file mode 100644 index 0000000000000000000000000000000000000000..342782ac48b8f030ccd42ab16e3b83124a0e0602 GIT binary patch literal 12649 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 Z3sbp;;Lz(2#QzL&R>w&DzNS<3{{r?rkDvem literal 0 HcmV?d00001 diff --git a/packages/public-api/src/web.ts b/packages/public-api/src/web.ts index d507b9b8c2b6..a7a4013219b5 100644 --- a/packages/public-api/src/web.ts +++ b/packages/public-api/src/web.ts @@ -217,6 +217,10 @@ export enum TradeProvider { TRISOLARIS = 12, TRADERJOE = 13, PANGOLIN = 14, + VVSFINANCE = 15, + SMOLSWAP = 16, + MMFINANCE = 17, + CRONASWAP = 18, } /** Supported language settings */ export enum LanguageOptions { diff --git a/packages/web3-constants/evm/token.json b/packages/web3-constants/evm/token.json index f6fe2360d0d4..ed4feb0bd123 100644 --- a/packages/web3-constants/evm/token.json +++ b/packages/web3-constants/evm/token.json @@ -899,6 +899,86 @@ "Aurora": "", "Aurora_Testnet": "" }, + "VVS_ADDRESS": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "0x60781C2586D68229fde47564546784ab3fACA982", + "Avalanche_Fuji": "", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "" + }, + "SMOL_ADDRESS": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "" + }, + "MMF_ADDRESS": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "" + }, + "CRONA_ADDRESS": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "" + }, "ETHER_ADDRESS": { "Mainnet": "", "Ropsten": "", diff --git a/packages/web3-constants/evm/trader.json b/packages/web3-constants/evm/trader.json index b656354c3839..a380a691d8cb 100644 --- a/packages/web3-constants/evm/trader.json +++ b/packages/web3-constants/evm/trader.json @@ -1018,5 +1018,325 @@ "Fantom": "", "Aurora": "0x754e1d90e536e4c1df81b7f030f47b4ca80c87120e145c294f098c83a6cb5ace", "Aurora_Testnet": "" + }, + "VVSFINANCE_ROUTER_ADDRESS": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "" + }, + "VVSFINANCE_FACTORY_ADDRESS": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "" + }, + "VVSFINANCE_THEGRAPH": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "" + }, + "VVSFINANCE_INIT_CODE_HASH": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "" + }, + "SMOLSWAP_ROUTER_ADDRESS": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "" + }, + "SMOLSWAP_FACTORY_ADDRESS": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "" + }, + "SMOLSWAP_THEGRAPH": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "" + }, + "SMOLSWAP_INIT_CODE_HASH": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "" + }, + "CRONASWAP_ROUTER_ADDRESS": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "" + }, + "CRONASWAP_FACTORY_ADDRESS": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "" + }, + "CRONASWAP_THEGRAPH": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "" + }, + "CRONASWAP_INIT_CODE_HASH": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "" + }, + "MMFINANCE_ROUTER_ADDRESS": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "" + }, + "MMFINANCE_FACTORY_ADDRESS": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "" + }, + "MMFINANCE_THEGRAPH": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "" + }, + "MMFINANCE_INIT_CODE_HASH": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "" } } diff --git a/packages/web3-shared/evm/assets/chains.json b/packages/web3-shared/evm/assets/chains.json index 23f44392849e..a4c78e9eb868 100644 --- a/packages/web3-shared/evm/assets/chains.json +++ b/packages/web3-shared/evm/assets/chains.json @@ -1282,9 +1282,22 @@ "explorers": [{ "name": "kcc-scan", "url": "https://scan-testnet.kcc.network", "standard": "EIP3091" }] }, { - "name": "Lisinski", + "name": "Cronos Mainnet Beta", "chain": "CRO", "network": "mainnet", + "rpc": ["https://evm-cronos.crypto.org"], + "faucets": [], + "features": [], + "nativeCurrency": { "name": "Cronos", "symbol": "CRO", "decimals": 18 }, + "infoURL": "https://cronos.crypto.org/", + "shortName": "cro", + "chainId": 25, + "networkId": 25 + }, + { + "name": "Lisinski", + "chain": "LCRO", + "network": "mainnet", "rpc": ["https://rpc-bitfalls1.lisinski.online"], "faucets": ["https://pipa.lisinski.online"], "features": [], diff --git a/packages/web3-shared/evm/pipes/index.ts b/packages/web3-shared/evm/pipes/index.ts index 6b6c8cf71790..deebd3c98345 100644 --- a/packages/web3-shared/evm/pipes/index.ts +++ b/packages/web3-shared/evm/pipes/index.ts @@ -96,6 +96,7 @@ export const resolveNetworkAddressPrefix = createLookupTableResolver [NetworkType.Celo]: 'Celo', [NetworkType.Fantom]: 'Fantom', [NetworkType.Aurora]: 'Aurora', + [NetworkType.Cronos]: 'Cronos', }, 'Unknown', ) @@ -145,6 +147,7 @@ export const resolveChainColor = createLookupTableResolver( [ChainId.Fantom]: 'rgb(19, 181, 236)', [ChainId.Aurora]: 'rgb(112, 212, 74)', [ChainId.Aurora_Testnet]: 'rgb(112, 212, 74)', + [ChainId.Cronos]: 'rgb(6, 18, 34)', }, 'rgb(214, 217, 220)', ) @@ -189,6 +192,8 @@ export function resolveCollectibleProviderLink(chainId: ChainId, provider: NonFu return 'https://rarible.com' case NonFungibleAssetProvider.NFTSCAN: return 'https://nftscan.com' + case NonFungibleAssetProvider.AGORA: + return 'https://agoracro.com/' default: unreachable(provider) } @@ -204,6 +209,8 @@ export function resolveCollectibleAssetLink(chainId: ChainId, provider: NonFungi return '' case NonFungibleAssetProvider.NFTSCAN: return '' + case NonFungibleAssetProvider.AGORA: + return '' default: unreachable(provider) } @@ -224,6 +231,8 @@ export function resolveCollectibleLink( return '' case NonFungibleAssetProvider.NFTSCAN: return '' + case NonFungibleAssetProvider.AGORA: + return '' default: unreachable(provider) } diff --git a/packages/web3-shared/evm/types/index.ts b/packages/web3-shared/evm/types/index.ts index 57a155c274e7..8220535c4bf1 100644 --- a/packages/web3-shared/evm/types/index.ts +++ b/packages/web3-shared/evm/types/index.ts @@ -79,6 +79,9 @@ export enum ChainId { // Optimistic Optimistic = 10, + + // Cronos + Cronos = 25, } export enum ProviderType { @@ -114,6 +117,7 @@ export enum NetworkType { Fuse = 'Fuse', Metis = 'Metis', Optimistic = 'Optimistic', + Cronos = 'Cronos', } export interface Wallet { @@ -582,6 +586,7 @@ export enum NonFungibleAssetProvider { OPENSEA = 'OpenSea', RARIBLE = 'Rarible', NFTSCAN = 'NFTScan', + AGORA = 'AGORA', } export type UnboxTransactionObject = T extends NonPayableTransactionObject diff --git a/packages/web3-shared/evm/utils/chainDetailed.ts b/packages/web3-shared/evm/utils/chainDetailed.ts index 1cceb01fa697..79fcb77c14f4 100644 --- a/packages/web3-shared/evm/utils/chainDetailed.ts +++ b/packages/web3-shared/evm/utils/chainDetailed.ts @@ -95,6 +95,7 @@ export const getChainIdFromNetworkType = createLookupTableResolver = { [NetworkType.Boba]: 'Boba', [NetworkType.Fuse]: 'Fuse', [NetworkType.Metis]: 'Metis', - [NetworkType.Optimistic]: 'Optimistic', + [NetworkType.Optimistic]: 'OP', + [NetworkType.Cronos]: 'CRO', } export function getNetworkTypeFromChainId(chainId: ChainId, value?: boolean) { const chainDetailed = getChainDetailed(chainId) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 92663eed3ce5..943700fd9a85 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -18744,7 +18744,7 @@ packages: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} dependencies: hosted-git-info: 2.8.9 - resolve: 1.20.0 + resolve: 1.22.0 semver: 5.7.1 validate-npm-package-license: 3.0.4