{"version":3,"file":"static/js/main.833690b8.js","mappings":";uBAAA,SAASA,EAAyBC,GAGjC,OAAOC,QAAQC,UAAUC,MAAK,KAC7B,IAAIC,EAAI,IAAIC,MAAM,uBAAyBL,EAAM,KAEjD,MADAI,EAAEE,KAAO,mBACHF,CAAC,GAET,CACAL,EAAyBQ,KAAO,IAAM,GACtCR,EAAyBG,QAAUH,EACnCA,EAAyBS,GAAK,MAC9BC,EAAOC,QAAUX,sCCXjB,IAAIY,EAAmBC,MAAQA,KAAKD,kBAAqBE,OAAOC,OAAU,SAASC,EAAGC,EAAGC,EAAGC,QAC7EC,IAAPD,IAAkBA,EAAKD,GAC3B,IAAIG,EAAOP,OAAOQ,yBAAyBL,EAAGC,GACzCG,KAAS,QAASA,GAAQJ,EAAEM,WAAaF,EAAKG,UAAYH,EAAKI,gBAClEJ,EAAO,CAAEK,YAAY,EAAMC,IAAK,WAAa,OAAOV,EAAEC,EAAI,IAE5DJ,OAAOc,eAAeZ,EAAGG,EAAIE,EACjC,EAAM,SAASL,EAAGC,EAAGC,EAAGC,QACTC,IAAPD,IAAkBA,EAAKD,GAC3BF,EAAEG,GAAMF,EAAEC,EACd,GACIW,EAAgBhB,MAAQA,KAAKgB,cAAiB,SAASZ,EAAGN,GAC1D,IAAK,IAAImB,KAAKb,EAAa,YAANa,GAAoBhB,OAAOiB,UAAUC,eAAeC,KAAKtB,EAASmB,IAAIlB,EAAgBD,EAASM,EAAGa,EAC3H,EACAnB,EAAQY,YAAa,EACrBM,EAAaK,EAAQ,OAAYvB,iCCZjCA,EAAQY,YAAa,EACrBZ,EAAQwB,0BAAuB,EAC/B,IAAIC,EAAWF,EAAQ,OACnBG,EAAO,CACP,CACIC,OAAQ,GACRC,KAAM,aACNC,QAAS,CACL,CACIC,aAAc,uBACdF,KAAM,GACNG,KAAM,YAGdC,gBAAiB,OACjBD,KAAM,YAEV,CACIJ,OAAQ,GACRC,KAAM,QACNC,QAAS,CACL,CACIC,aAAc,UACdF,KAAM,GACNG,KAAM,YAGdC,gBAAiB,OACjBD,KAAM,YAEV,CACIJ,OAAQ,CACJ,CACIM,WAAY,CACR,CACIH,aAAc,UACdF,KAAM,SACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,QACNG,KAAM,WAEV,CACID,aAAc,QACdF,KAAM,WACNG,KAAM,SAEV,CACID,aAAc,QACdF,KAAM,WACNG,KAAM,SAEV,CACID,aAAc,UACdF,KAAM,eACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,uBACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,qBACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,eACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,uBACNG,KAAM,WAEV,CACID,aAAc,QACdF,KAAM,mBACNG,KAAM,SAEV,CACID,aAAc,QACdF,KAAM,YACNG,KAAM,UAGdD,aAAc,uBACdF,KAAM,SACNG,KAAM,SAEV,CACID,aAAc,UACdF,KAAM,aACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,sBACNG,KAAM,YAGdH,KAAM,iBACNC,QAAS,CACL,CACIC,aAAc,UACdF,KAAM,iBACNG,KAAM,YAGdC,gBAAiB,aACjBD,KAAM,aAGVP,EAAsC,WACtC,SAASA,IACT,CAQA,OAPAA,EAAqBU,gBAAkB,WACnC,OAAO,IAAIT,EAASU,MAAMC,UAAUV,EACxC,EACAF,EAAqBa,QAAU,SAAUC,EAASC,GAC9C,OAAO,IAAId,EAASe,SAASF,EAASZ,EAAMa,EAChD,EACAf,EAAqBiB,IAAMf,EACpBF,CACX,CAX0C,GAY1CxB,EAAQwB,qBAAuBA,gCCjI/BxB,EAAQY,YAAa,EACrBZ,EAAQ0C,4BAAyB,EACjC,IAAIjB,EAAWF,EAAQ,OACnBG,EAAO,CACP,CACIiB,WAAW,EACXhB,OAAQ,CACJ,CACIiB,SAAS,EACTd,aAAc,UACdF,KAAM,gBACNG,KAAM,WAEV,CACIa,SAAS,EACTd,aAAc,UACdF,KAAM,WACNG,KAAM,YAGdH,KAAM,uBACNG,KAAM,SAEV,CACIJ,OAAQ,CACJ,CACIG,aAAc,SACdF,KAAM,kBACNG,KAAM,WAGdH,KAAM,WACNC,QAAS,GACTG,gBAAiB,UACjBD,KAAM,YAEV,CACIJ,OAAQ,GACRC,KAAM,UACNC,QAAS,GACTG,gBAAiB,UACjBD,KAAM,YAEV,CACIJ,OAAQ,GACRC,KAAM,aACNC,QAAS,CACL,CACIC,aAAc,uBACdF,KAAM,GACNG,KAAM,YAGdC,gBAAiB,OACjBD,KAAM,YAEV,CACIJ,OAAQ,GACRC,KAAM,aACNC,QAAS,CACL,CACIC,aAAc,UACdF,KAAM,GACNG,KAAM,YAGdC,gBAAiB,OACjBD,KAAM,YAEV,CACIJ,OAAQ,GACRC,KAAM,QACNC,QAAS,CACL,CACIC,aAAc,UACdF,KAAM,GACNG,KAAM,YAGdC,gBAAiB,OACjBD,KAAM,YAEV,CACIJ,OAAQ,CACJ,CACIG,aAAc,6BACdF,KAAM,OACNG,KAAM,SAEV,CACID,aAAc,QACdF,KAAM,UACNG,KAAM,SAEV,CACID,aAAc,UACdF,KAAM,gBACNG,KAAM,YAGdH,KAAM,SACNC,QAAS,GACTG,gBAAiB,aACjBD,KAAM,YAEV,CACIJ,OAAQ,GACRC,KAAM,oBACNC,QAAS,GACTG,gBAAiB,aACjBD,KAAM,YAEV,CACIJ,OAAQ,CACJ,CACIG,aAAc,UACdF,KAAM,WACNG,KAAM,YAGdH,KAAM,oBACNC,QAAS,GACTG,gBAAiB,aACjBD,KAAM,YAEV,CACIJ,OAAQ,GACRC,KAAM,cACNC,QAAS,GACTG,gBAAiB,aACjBD,KAAM,YAEV,CACIJ,OAAQ,CACJ,CACIM,WAAY,CACR,CACIH,aAAc,UACdF,KAAM,SACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,QACNG,KAAM,WAEV,CACID,aAAc,QACdF,KAAM,WACNG,KAAM,SAEV,CACID,aAAc,QACdF,KAAM,WACNG,KAAM,SAEV,CACID,aAAc,UACdF,KAAM,eACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,uBACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,qBACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,eACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,uBACNG,KAAM,WAEV,CACID,aAAc,QACdF,KAAM,mBACNG,KAAM,SAEV,CACID,aAAc,QACdF,KAAM,YACNG,KAAM,UAGdD,aAAc,uBACdF,KAAM,SACNG,KAAM,SAEV,CACID,aAAc,UACdF,KAAM,aACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,UACNG,KAAM,YAGdH,KAAM,0BACNC,QAAS,CACL,CACIC,aAAc,QACdF,KAAM,UACNG,KAAM,SAEV,CACID,aAAc,UACdF,KAAM,iBACNG,KAAM,YAGdC,gBAAiB,aACjBD,KAAM,YAEV,CACIJ,OAAQ,CACJ,CACIG,aAAc,kBACdF,KAAM,kBACNG,KAAM,YAGdH,KAAM,gBACNC,QAAS,GACTG,gBAAiB,aACjBD,KAAM,YAEV,CACIJ,OAAQ,CACJ,CACIG,aAAc,kBACdF,KAAM,kBACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,SACNG,KAAM,YAGdH,KAAM,aACNC,QAAS,GACTG,gBAAiB,aACjBD,KAAM,aAGVW,EAAwC,WACxC,SAASA,IACT,CAQA,OAPAA,EAAuBR,gBAAkB,WACrC,OAAO,IAAIT,EAASU,MAAMC,UAAUV,EACxC,EACAgB,EAAuBL,QAAU,SAAUC,EAASC,GAChD,OAAO,IAAId,EAASe,SAASF,EAASZ,EAAMa,EAChD,EACAG,EAAuBD,IAAMf,EACtBgB,CACX,CAX4C,GAY5C1C,EAAQ0C,uBAAyBA,sCC9QjC,IAAIG,EAAa3C,MAAQA,KAAK2C,WAAe,WACzC,IAAIC,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgB3C,OAAO8C,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAI7B,KAAK6B,EAAO7C,OAAOiB,UAAUC,eAAeC,KAAK0B,EAAG7B,KAAI4B,EAAE5B,GAAK6B,EAAE7B,GAAI,EAC7F2B,EAAcC,EAAGC,EAC5B,EACA,OAAO,SAAUD,EAAGC,GAChB,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAII,UAAU,uBAAyBC,OAAOL,GAAK,iCAE7D,SAASM,IAAOpD,KAAKqD,YAAcR,CAAG,CADtCD,EAAcC,EAAGC,GAEjBD,EAAE3B,UAAkB,OAAN4B,EAAa7C,OAAOC,OAAO4C,IAAMM,EAAGlC,UAAY4B,EAAE5B,UAAW,IAAIkC,EACnF,CACJ,CAd6C,GAe7CtD,EAAQY,YAAa,EACrBZ,EAAQwD,sCAAmC,EAI3C,IAAI/B,EAAWF,EAAQ,OACnBG,EAAO,CACP,CACIC,OAAQ,CACJ,CACIG,aAAc,uBACdF,KAAM,aACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,aACNG,KAAM,YAGdC,gBAAiB,aACjBD,KAAM,eAEV,CACIJ,OAAQ,GACRC,KAAM,wBACNC,QAAS,CACL,CACIC,aAAc,4BACdF,KAAM,GACNG,KAAM,YAGdC,gBAAiB,OACjBD,KAAM,YAEV,CACIJ,OAAQ,CACJ,CACIG,aAAc,UACdF,KAAM,OACNG,KAAM,WAEV,CACID,aAAc,aACdF,KAAM,aACNG,KAAM,eAGdH,KAAM,gBACNC,QAAS,CACL,CACIC,aAAc,4BACdF,KAAM,GACNG,KAAM,YAGdC,gBAAiB,aACjBD,KAAM,YAEV,CACIJ,OAAQ,CACJ,CACIG,aAAc,UACdF,KAAM,OACNG,KAAM,WAEV,CACID,aAAc,aACdF,KAAM,aACNG,KAAM,eAGdH,KAAM,aACNC,QAAS,CACL,CACIC,aAAc,UACdF,KAAM,GACNG,KAAM,YAGdC,gBAAiB,OACjBD,KAAM,aAGV0B,EAAY,i8uBAEZD,EAAkD,SAAUE,GAE5D,SAASF,IAEL,IADA,IAAIG,EAAO,GACFC,EAAK,EAAGA,EAAKC,UAAUC,OAAQF,IACpCD,EAAKC,GAAMC,UAAUD,GASzB,OANgBD,EAToBG,OAAS,EAUjCJ,EAAOK,MAAM7D,KAAMyD,IAASzD,KAG5BwD,EAAOpC,KAAKpB,KAAMwB,EAAM+B,EAAWE,EAAK,KAAOzD,IAG/D,CAqBA,OAnCA2C,EAAUW,EAAkCE,GAe5CF,EAAiCpC,UAAU4C,OAAS,SAAUC,EAAYC,EAAYC,GAClF,OAAOT,EAAOtC,UAAU4C,OAAO1C,KAAKpB,KAAM+D,EAAYC,EAAYC,GAAa,CAAC,EACpF,EACAX,EAAiCpC,UAAUgD,qBAAuB,SAAUH,EAAYC,EAAYC,GAChG,OAAOT,EAAOtC,UAAUgD,qBAAqB9C,KAAKpB,KAAM+D,EAAYC,EAAYC,GAAa,CAAC,EAClG,EACAX,EAAiCpC,UAAUiD,OAAS,SAAU/B,GAC1D,OAAOoB,EAAOtC,UAAUiD,OAAO/C,KAAKpB,KAAMoC,EAC9C,EACAkB,EAAiCpC,UAAUiB,QAAU,SAAUiC,GAC3D,OAAOZ,EAAOtC,UAAUiB,QAAQf,KAAKpB,KAAMoE,EAC/C,EACAd,EAAiCtB,gBAAkB,WAC/C,OAAO,IAAIT,EAASU,MAAMC,UAAUV,EACxC,EACA8B,EAAiCnB,QAAU,SAAUC,EAASC,GAC1D,OAAO,IAAId,EAASe,SAASF,EAASZ,EAAMa,EAChD,EACAiB,EAAiCe,SAAWd,EAC5CD,EAAiCf,IAAMf,EAChC8B,CACX,CArCsD,CAqCpD/B,EAAS+C,iBACXxE,EAAQwD,iCAAmCA,sCC5I3C,IAAIX,EAAa3C,MAAQA,KAAK2C,WAAe,WACzC,IAAIC,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgB3C,OAAO8C,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAI7B,KAAK6B,EAAO7C,OAAOiB,UAAUC,eAAeC,KAAK0B,EAAG7B,KAAI4B,EAAE5B,GAAK6B,EAAE7B,GAAI,EAC7F2B,EAAcC,EAAGC,EAC5B,EACA,OAAO,SAAUD,EAAGC,GAChB,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAII,UAAU,uBAAyBC,OAAOL,GAAK,iCAE7D,SAASM,IAAOpD,KAAKqD,YAAcR,CAAG,CADtCD,EAAcC,EAAGC,GAEjBD,EAAE3B,UAAkB,OAAN4B,EAAa7C,OAAOC,OAAO4C,IAAMM,EAAGlC,UAAY4B,EAAE5B,UAAW,IAAIkC,EACnF,CACJ,CAd6C,GAe7CtD,EAAQY,YAAa,EACrBZ,EAAQyE,+BAA4B,EAIpC,IAAIhD,EAAWF,EAAQ,OACnBG,EAAO,CACP,CACIC,OAAQ,CACJ,CACIG,aAAc,uBACdF,KAAM,eACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,eACNG,KAAM,YAGdC,gBAAiB,aACjBD,KAAM,eAEV,CACIY,WAAW,EACXhB,OAAQ,CACJ,CACIiB,SAAS,EACTd,aAAc,UACdF,KAAM,gBACNG,KAAM,WAEV,CACIa,SAAS,EACTd,aAAc,UACdF,KAAM,WACNG,KAAM,YAGdH,KAAM,eACNG,KAAM,SAEV,CACIY,WAAW,EACXhB,OAAQ,CACJ,CACIiB,SAAS,EACTd,aAAc,UACdF,KAAM,SACNG,KAAM,YAGdH,KAAM,iBACNG,KAAM,SAEV,CACIY,WAAW,EACXhB,OAAQ,CACJ,CACIiB,SAAS,EACTd,aAAc,QACdF,KAAM,UACNG,KAAM,UAGdH,KAAM,cACNG,KAAM,SAEV,CACIY,WAAW,EACXhB,OAAQ,CACJ,CACIiB,SAAS,EACTd,aAAc,aACdF,KAAM,eACNG,KAAM,cAEV,CACIa,SAAS,EACTd,aAAc,aACdF,KAAM,eACNG,KAAM,eAGdH,KAAM,mBACNG,KAAM,SAEV,CACIY,WAAW,EACXhB,OAAQ,CACJ,CACIiB,SAAS,EACTd,aAAc,uBACdF,KAAM,aACNG,KAAM,WAEV,CACIa,SAAS,EACTd,aAAc,UACdF,KAAM,QACNG,KAAM,YAGdH,KAAM,2BACNG,KAAM,SAEV,CACIY,WAAW,EACXhB,OAAQ,CACJ,CACIiB,SAAS,EACTd,aAAc,UACdF,KAAM,iBACNG,KAAM,YAGdH,KAAM,WACNG,KAAM,SAEV,CACIJ,OAAQ,GACRC,KAAM,aACNC,QAAS,GACTG,gBAAiB,UACjBD,KAAM,YAEV,CACIJ,OAAQ,GACRC,KAAM,aACNC,QAAS,CACL,CACIC,aAAc,UACdF,KAAM,GACNG,KAAM,YAGdC,gBAAiB,OACjBD,KAAM,YAEV,CACIJ,OAAQ,GACRC,KAAM,aACNC,QAAS,CACL,CACIC,aAAc,uBACdF,KAAM,GACNG,KAAM,YAGdC,gBAAiB,OACjBD,KAAM,YAEV,CACIJ,OAAQ,CACJ,CACIG,aAAc,UACdF,KAAM,OACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,QACNG,KAAM,WAEV,CACID,aAAc,QACdF,KAAM,OACNG,KAAM,UAGdH,KAAM,UACNC,QAAS,GACTG,gBAAiB,aACjBD,KAAM,YAEV,CACIJ,OAAQ,CACJ,CACIG,aAAc,YACdF,KAAM,OACNG,KAAM,aAEV,CACID,aAAc,UACdF,KAAM,OACNG,KAAM,YAGdH,KAAM,eACNC,QAAS,GACTG,gBAAiB,aACjBD,KAAM,YAEV,CACIJ,OAAQ,GACRC,KAAM,kBACNC,QAAS,CACL,CACIC,aAAc,aACdF,KAAM,GACNG,KAAM,eAGdC,gBAAiB,OACjBD,KAAM,YAEV,CACIJ,OAAQ,GACRC,KAAM,aACNC,QAAS,CACL,CACIC,aAAc,UACdF,KAAM,GACNG,KAAM,YAGdC,gBAAiB,OACjBD,KAAM,YAEV,CACIJ,OAAQ,CACJ,CACIG,aAAc,UACdF,KAAM,UACNG,KAAM,YAGdH,KAAM,aACNC,QAAS,GACTG,gBAAiB,aACjBD,KAAM,YAEV,CACIJ,OAAQ,CACJ,CACIG,aAAc,aACdF,KAAM,aACNG,KAAM,eAGdH,KAAM,aACNC,QAAS,GACTG,gBAAiB,aACjBD,KAAM,YAEV,CACIJ,OAAQ,GACRC,KAAM,QACNC,QAAS,CACL,CACIC,aAAc,UACdF,KAAM,GACNG,KAAM,YAGdC,gBAAiB,OACjBD,KAAM,YAEV,CACIJ,OAAQ,GACRC,KAAM,QACNC,QAAS,CACL,CACIC,aAAc,UACdF,KAAM,GACNG,KAAM,YAGdC,gBAAiB,OACjBD,KAAM,YAEV,CACIJ,OAAQ,GACRC,KAAM,gBACNC,QAAS,CACL,CACIC,aAAc,UACdF,KAAM,GACNG,KAAM,YAGdC,gBAAiB,OACjBD,KAAM,YAEV,CACIJ,OAAQ,CACJ,CACIG,aAAc,UACdF,KAAM,oBACNG,KAAM,YAGdH,KAAM,YACNC,QAAS,GACTG,gBAAiB,aACjBD,KAAM,YAEV,CACIJ,OAAQ,CACJ,CACIG,aAAc,UACdF,KAAM,oBACNG,KAAM,WAEV,CACID,aAAc,QACdF,KAAM,OACNG,KAAM,UAGdH,KAAM,mBACNC,QAAS,GACTG,gBAAiB,UACjBD,KAAM,YAEV,CACIJ,OAAQ,CACJ,CACIM,WAAY,CACR,CACIH,aAAc,UACdF,KAAM,SACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,QACNG,KAAM,WAEV,CACID,aAAc,QACdF,KAAM,WACNG,KAAM,SAEV,CACID,aAAc,QACdF,KAAM,WACNG,KAAM,SAEV,CACID,aAAc,UACdF,KAAM,eACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,uBACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,qBACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,eACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,uBACNG,KAAM,WAEV,CACID,aAAc,QACdF,KAAM,mBACNG,KAAM,SAEV,CACID,aAAc,QACdF,KAAM,YACNG,KAAM,UAGdD,aAAc,uBACdF,KAAM,SACNG,KAAM,SAEV,CACID,aAAc,UACdF,KAAM,aACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,sBACNG,KAAM,YAGdH,KAAM,iBACNC,QAAS,CACL,CACIC,aAAc,UACdF,KAAM,iBACNG,KAAM,YAGdC,gBAAiB,aACjBD,KAAM,YAEV,CACIJ,OAAQ,CACJ,CACIG,aAAc,kBACdF,KAAM,kBACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,SACNG,KAAM,YAGdH,KAAM,oBACNC,QAAS,GACTG,gBAAiB,aACjBD,KAAM,YAEV,CACIC,gBAAiB,UACjBD,KAAM,YAGV0B,EAAY,i5gBAEZgB,EAA2C,SAAUf,GAErD,SAASe,IAEL,IADA,IAAId,EAAO,GACFC,EAAK,EAAGA,EAAKC,UAAUC,OAAQF,IACpCD,EAAKC,GAAMC,UAAUD,GASzB,OANgBD,EAToBG,OAAS,EAUjCJ,EAAOK,MAAM7D,KAAMyD,IAASzD,KAG5BwD,EAAOpC,KAAKpB,KAAMwB,EAAM+B,EAAWE,EAAK,KAAOzD,IAG/D,CAqBA,OAnCA2C,EAAU4B,EAA2Bf,GAerCe,EAA0BrD,UAAU4C,OAAS,SAAUU,EAAcC,EAAcR,GAC/E,OAAOT,EAAOtC,UAAU4C,OAAO1C,KAAKpB,KAAMwE,EAAcC,EAAcR,GAAa,CAAC,EACxF,EACAM,EAA0BrD,UAAUgD,qBAAuB,SAAUM,EAAcC,EAAcR,GAC7F,OAAOT,EAAOtC,UAAUgD,qBAAqB9C,KAAKpB,KAAMwE,EAAcC,EAAcR,GAAa,CAAC,EACtG,EACAM,EAA0BrD,UAAUiD,OAAS,SAAU/B,GACnD,OAAOoB,EAAOtC,UAAUiD,OAAO/C,KAAKpB,KAAMoC,EAC9C,EACAmC,EAA0BrD,UAAUiB,QAAU,SAAUiC,GACpD,OAAOZ,EAAOtC,UAAUiB,QAAQf,KAAKpB,KAAMoE,EAC/C,EACAG,EAA0BvC,gBAAkB,WACxC,OAAO,IAAIT,EAASU,MAAMC,UAAUV,EACxC,EACA+C,EAA0BpC,QAAU,SAAUC,EAASC,GACnD,OAAO,IAAId,EAASe,SAASF,EAASZ,EAAMa,EAChD,EACAkC,EAA0BF,SAAWd,EACrCgB,EAA0BhC,IAAMf,EACzB+C,CACX,CArC+C,CAqC7ChD,EAAS+C,iBACXxE,EAAQyE,0BAA4BA,sCC/dpC,IAAI5B,EAAa3C,MAAQA,KAAK2C,WAAe,WACzC,IAAIC,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgB3C,OAAO8C,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAI7B,KAAK6B,EAAO7C,OAAOiB,UAAUC,eAAeC,KAAK0B,EAAG7B,KAAI4B,EAAE5B,GAAK6B,EAAE7B,GAAI,EAC7F2B,EAAcC,EAAGC,EAC5B,EACA,OAAO,SAAUD,EAAGC,GAChB,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAII,UAAU,uBAAyBC,OAAOL,GAAK,iCAE7D,SAASM,IAAOpD,KAAKqD,YAAcR,CAAG,CADtCD,EAAcC,EAAGC,GAEjBD,EAAE3B,UAAkB,OAAN4B,EAAa7C,OAAOC,OAAO4C,IAAMM,EAAGlC,UAAY4B,EAAE5B,UAAW,IAAIkC,EACnF,CACJ,CAd6C,GAe7CtD,EAAQY,YAAa,EACrBZ,EAAQ4E,+BAA4B,EAIpC,IAAInD,EAAWF,EAAQ,OACnBG,EAAO,CACP,CACIC,OAAQ,CACJ,CACIG,aAAc,uBACdF,KAAM,cACNG,KAAM,YAGdC,gBAAiB,aACjBD,KAAM,eAEV,CACIY,WAAW,EACXhB,OAAQ,CACJ,CACIiB,SAAS,EACTd,aAAc,UACdF,KAAM,gBACNG,KAAM,WAEV,CACIa,SAAS,EACTd,aAAc,UACdF,KAAM,WACNG,KAAM,YAGdH,KAAM,uBACNG,KAAM,SAEV,CACIJ,OAAQ,GACRC,KAAM,eACNC,QAAS,CACL,CACIC,aAAc,UACdF,KAAM,GACNG,KAAM,YAGdC,gBAAiB,OACjBD,KAAM,YAEV,CACIJ,OAAQ,CACJ,CACIG,aAAc,kBACdF,KAAM,QACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,UACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,SACNG,KAAM,YAGdH,KAAM,gBACNC,QAAS,GACTG,gBAAiB,aACjBD,KAAM,YAEV,CACIJ,OAAQ,CACJ,CACIG,aAAc,SACdF,KAAM,kBACNG,KAAM,WAGdH,KAAM,WACNC,QAAS,GACTG,gBAAiB,UACjBD,KAAM,YAEV,CACIJ,OAAQ,CACJ,CACIG,aAAc,kBACdF,KAAM,QACNG,KAAM,WAEV,CACID,aAAc,mBACdF,KAAM,mBACNG,KAAM,YAGdH,KAAM,WACNC,QAAS,GACTG,gBAAiB,aACjBD,KAAM,YAEV,CACIJ,OAAQ,CACJ,CACIG,aAAc,kBACdF,KAAM,GACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,GACNG,KAAM,YAGdH,KAAM,WACNC,QAAS,CACL,CACIC,aAAc,UACdF,KAAM,GACNG,KAAM,YAGdC,gBAAiB,OACjBD,KAAM,YAEV,CACIJ,OAAQ,GACRC,KAAM,UACNC,QAAS,GACTG,gBAAiB,UACjBD,KAAM,YAEV,CACIJ,OAAQ,CACJ,CACIG,aAAc,kBACdF,KAAM,QACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,UACNG,KAAM,YAGdH,KAAM,cACNC,QAAS,CACL,CACIC,aAAc,UACdF,KAAM,SACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,eACNG,KAAM,YAGdC,gBAAiB,OACjBD,KAAM,YAEV,CACIJ,OAAQ,GACRC,KAAM,aACNC,QAAS,CACL,CACIC,aAAc,uBACdF,KAAM,GACNG,KAAM,YAGdC,gBAAiB,OACjBD,KAAM,YAEV,CACIJ,OAAQ,GACRC,KAAM,aACNC,QAAS,CACL,CACIC,aAAc,UACdF,KAAM,GACNG,KAAM,YAGdC,gBAAiB,OACjBD,KAAM,YAEV,CACIJ,OAAQ,GACRC,KAAM,mBACNC,QAAS,GACTG,gBAAiB,aACjBD,KAAM,YAEV,CACIJ,OAAQ,CACJ,CACIG,aAAc,kBACdF,KAAM,GACNG,KAAM,YAGdH,KAAM,UACNC,QAAS,CACL,CACIC,aAAc,mBACdF,KAAM,GACNG,KAAM,YAGdC,gBAAiB,OACjBD,KAAM,YAEV,CACIJ,OAAQ,GACRC,KAAM,QACNC,QAAS,CACL,CACIC,aAAc,UACdF,KAAM,GACNG,KAAM,YAGdC,gBAAiB,OACjBD,KAAM,YAEV,CACIJ,OAAQ,CACJ,CACIG,aAAc,6BACdF,KAAM,OACNG,KAAM,SAEV,CACID,aAAc,QACdF,KAAM,UACNG,KAAM,SAEV,CACID,aAAc,UACdF,KAAM,gBACNG,KAAM,YAGdH,KAAM,SACNC,QAAS,GACTG,gBAAiB,aACjBD,KAAM,YAEV,CACIJ,OAAQ,GACRC,KAAM,oBACNC,QAAS,GACTG,gBAAiB,aACjBD,KAAM,YAEV,CACIJ,OAAQ,CACJ,CACIG,aAAc,UACdF,KAAM,WACNG,KAAM,YAGdH,KAAM,oBACNC,QAAS,GACTG,gBAAiB,aACjBD,KAAM,YAEV,CACIJ,OAAQ,CACJ,CACIG,aAAc,UACdF,KAAM,GACNG,KAAM,YAGdH,KAAM,cACNC,QAAS,CACL,CACIC,aAAc,UACdF,KAAM,GACNG,KAAM,YAGdC,gBAAiB,OACjBD,KAAM,YAEV,CACIJ,OAAQ,GACRC,KAAM,cACNC,QAAS,GACTG,gBAAiB,aACjBD,KAAM,YAEV,CACIJ,OAAQ,GACRC,KAAM,qBACNC,QAAS,GACTG,gBAAiB,aACjBD,KAAM,YAEV,CACIJ,OAAQ,CACJ,CACIM,WAAY,CACR,CACIH,aAAc,UACdF,KAAM,SACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,QACNG,KAAM,WAEV,CACID,aAAc,QACdF,KAAM,WACNG,KAAM,SAEV,CACID,aAAc,QACdF,KAAM,WACNG,KAAM,SAEV,CACID,aAAc,UACdF,KAAM,eACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,uBACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,qBACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,eACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,uBACNG,KAAM,WAEV,CACID,aAAc,QACdF,KAAM,mBACNG,KAAM,SAEV,CACID,aAAc,QACdF,KAAM,YACNG,KAAM,UAGdD,aAAc,uBACdF,KAAM,SACNG,KAAM,SAEV,CACID,aAAc,UACdF,KAAM,aACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,UACNG,KAAM,YAGdH,KAAM,0BACNC,QAAS,CACL,CACIC,aAAc,QACdF,KAAM,UACNG,KAAM,SAEV,CACID,aAAc,UACdF,KAAM,iBACNG,KAAM,YAGdC,gBAAiB,aACjBD,KAAM,YAEV,CACIJ,OAAQ,CACJ,CACIG,aAAc,kBACdF,KAAM,kBACNG,KAAM,YAGdH,KAAM,gBACNC,QAAS,GACTG,gBAAiB,aACjBD,KAAM,YAEV,CACIJ,OAAQ,CACJ,CACIG,aAAc,kBACdF,KAAM,kBACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,SACNG,KAAM,YAGdH,KAAM,aACNC,QAAS,GACTG,gBAAiB,aACjBD,KAAM,YAEV,CACIJ,OAAQ,CACJ,CACIG,aAAc,kBACdF,KAAM,QACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,SACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,SACNG,KAAM,YAGdH,KAAM,mBACNC,QAAS,GACTG,gBAAiB,aACjBD,KAAM,aAGV0B,EAAY,u1fAEZmB,EAA2C,SAAUlB,GAErD,SAASkB,IAEL,IADA,IAAIjB,EAAO,GACFC,EAAK,EAAGA,EAAKC,UAAUC,OAAQF,IACpCD,EAAKC,GAAMC,UAAUD,GASzB,OANgBD,EAToBG,OAAS,EAUjCJ,EAAOK,MAAM7D,KAAMyD,IAASzD,KAG5BwD,EAAOpC,KAAKpB,KAAMwB,EAAM+B,EAAWE,EAAK,KAAOzD,IAG/D,CAqBA,OAnCA2C,EAAU+B,EAA2BlB,GAerCkB,EAA0BxD,UAAU4C,OAAS,SAAUa,EAAaV,GAChE,OAAOT,EAAOtC,UAAU4C,OAAO1C,KAAKpB,KAAM2E,EAAaV,GAAa,CAAC,EACzE,EACAS,EAA0BxD,UAAUgD,qBAAuB,SAAUS,EAAaV,GAC9E,OAAOT,EAAOtC,UAAUgD,qBAAqB9C,KAAKpB,KAAM2E,EAAaV,GAAa,CAAC,EACvF,EACAS,EAA0BxD,UAAUiD,OAAS,SAAU/B,GACnD,OAAOoB,EAAOtC,UAAUiD,OAAO/C,KAAKpB,KAAMoC,EAC9C,EACAsC,EAA0BxD,UAAUiB,QAAU,SAAUiC,GACpD,OAAOZ,EAAOtC,UAAUiB,QAAQf,KAAKpB,KAAMoE,EAC/C,EACAM,EAA0B1C,gBAAkB,WACxC,OAAO,IAAIT,EAASU,MAAMC,UAAUV,EACxC,EACAkD,EAA0BvC,QAAU,SAAUC,EAASC,GACnD,OAAO,IAAId,EAASe,SAASF,EAASZ,EAAMa,EAChD,EACAqC,EAA0BL,SAAWd,EACrCmB,EAA0BnC,IAAMf,EACzBkD,CACX,CArC+C,CAqC7CnD,EAAS+C,iBACXxE,EAAQ4E,0BAA4BA,sCC1fpC,IAAI/B,EAAa3C,MAAQA,KAAK2C,WAAe,WACzC,IAAIC,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgB3C,OAAO8C,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAI7B,KAAK6B,EAAO7C,OAAOiB,UAAUC,eAAeC,KAAK0B,EAAG7B,KAAI4B,EAAE5B,GAAK6B,EAAE7B,GAAI,EAC7F2B,EAAcC,EAAGC,EAC5B,EACA,OAAO,SAAUD,EAAGC,GAChB,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAII,UAAU,uBAAyBC,OAAOL,GAAK,iCAE7D,SAASM,IAAOpD,KAAKqD,YAAcR,CAAG,CADtCD,EAAcC,EAAGC,GAEjBD,EAAE3B,UAAkB,OAAN4B,EAAa7C,OAAOC,OAAO4C,IAAMM,EAAGlC,UAAY4B,EAAE5B,UAAW,IAAIkC,EACnF,CACJ,CAd6C,GAe7CtD,EAAQY,YAAa,EACrBZ,EAAQ8E,yBAAsB,EAI9B,IAAIrD,EAAWF,EAAQ,OACnBG,EAAO,CACP,CACIC,OAAQ,CACJ,CACIG,aAAc,UACdF,KAAM,WACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,OACNG,KAAM,WAEV,CACID,aAAc,SACdF,KAAM,aACNG,KAAM,UAEV,CACID,aAAc,SACdF,KAAM,aACNG,KAAM,UAEV,CACID,aAAc,OACdF,KAAM,gBACNG,KAAM,QAEV,CACID,aAAc,QACdF,KAAM,eACNG,KAAM,UAGdH,KAAM,kBACNG,KAAM,SAEV,CACIJ,OAAQ,CACJ,CACIG,aAAc,UACdF,KAAM,UACNG,KAAM,WAEV,CACID,aAAc,SACdF,KAAM,SACNG,KAAM,WAGdH,KAAM,WACNG,KAAM,SAEV,CACIJ,OAAQ,CACJ,CACIG,aAAc,UACdF,KAAM,SACNG,KAAM,YAGdH,KAAM,sBACNG,KAAM,SAEV,CACIJ,OAAQ,CACJ,CACIG,aAAc,UACdF,KAAM,aACNG,KAAM,YAGdH,KAAM,4BACNG,KAAM,SAEV,CACIJ,OAAQ,CACJ,CACIM,WAAY,CACR,CACIH,aAAc,UACdF,KAAM,WACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,UACNG,KAAM,WAEV,CACID,aAAc,OACdF,KAAM,YACNG,KAAM,QAEV,CACID,aAAc,SACdF,KAAM,aACNG,KAAM,UAEV,CACID,aAAc,SACdF,KAAM,aACNG,KAAM,UAEV,CACID,aAAc,QACdF,KAAM,mBACNG,KAAM,UAGdD,aAAc,gCACdF,KAAM,aACNG,KAAM,SAEV,CACIE,WAAY,CACR,CACIH,aAAc,UACdF,KAAM,QACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,kBACNG,KAAM,YAGdD,aAAc,iCACdF,KAAM,aACNG,KAAM,SAEV,CACIE,WAAY,CACR,CACIH,aAAc,UACdF,KAAM,QACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,kBACNG,KAAM,YAGdD,aAAc,iCACdF,KAAM,cACNG,KAAM,SAEV,CACIE,WAAY,CACR,CACIH,aAAc,UACdF,KAAM,QACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,kBACNG,KAAM,YAGdD,aAAc,iCACdF,KAAM,gBACNG,KAAM,UAGdH,KAAM,mBACNG,KAAM,SAEV,CACIJ,OAAQ,CACJ,CACIM,WAAY,CACR,CACIH,aAAc,UACdF,KAAM,WACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,UACNG,KAAM,WAEV,CACID,aAAc,OACdF,KAAM,YACNG,KAAM,QAEV,CACID,aAAc,SACdF,KAAM,aACNG,KAAM,UAEV,CACID,aAAc,SACdF,KAAM,aACNG,KAAM,UAEV,CACID,aAAc,QACdF,KAAM,mBACNG,KAAM,UAGdD,aAAc,gCACdF,KAAM,aACNG,KAAM,SAEV,CACIE,WAAY,CACR,CACIH,aAAc,UACdF,KAAM,QACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,kBACNG,KAAM,YAGdD,aAAc,iCACdF,KAAM,aACNG,KAAM,SAEV,CACIE,WAAY,CACR,CACIH,aAAc,UACdF,KAAM,QACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,kBACNG,KAAM,YAGdD,aAAc,iCACdF,KAAM,cACNG,KAAM,SAEV,CACIE,WAAY,CACR,CACIH,aAAc,UACdF,KAAM,QACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,kBACNG,KAAM,YAGdD,aAAc,iCACdF,KAAM,gBACNG,KAAM,SAEV,CACIE,WAAY,CACR,CACIH,aAAc,UACdF,KAAM,aACNG,KAAM,WAEV,CACIE,WAAY,CACR,CACIH,aAAc,UACdF,KAAM,QACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,kBACNG,KAAM,YAGdD,aAAc,iCACdF,KAAM,YACNG,KAAM,UAGdD,aAAc,yCACdF,KAAM,iBACNG,KAAM,UAGdH,KAAM,kCACNG,KAAM,SAEV,CACIY,WAAW,EACXhB,OAAQ,CACJ,CACIiB,SAAS,EACTd,aAAc,UACdF,KAAM,aACNG,KAAM,WAEV,CACIa,SAAS,EACTd,aAAc,UACdF,KAAM,SACNG,KAAM,WAEV,CACIa,SAAS,EACTd,aAAc,UACdF,KAAM,UACNG,KAAM,WAEV,CACIa,SAAS,EACTd,aAAc,UACdF,KAAM,YACNG,KAAM,YAGdH,KAAM,kBACNG,KAAM,SAEV,CACIY,WAAW,EACXhB,OAAQ,CACJ,CACIiB,SAAS,EACTd,aAAc,UACdF,KAAM,UACNG,KAAM,WAEV,CACIa,SAAS,EACTd,aAAc,UACdF,KAAM,eACNG,KAAM,YAGdH,KAAM,YACNG,KAAM,SAEV,CACIY,WAAW,EACXhB,OAAQ,CACJ,CACIiB,SAAS,EACTd,aAAc,UACdF,KAAM,aACNG,KAAM,YAGdH,KAAM,6BACNG,KAAM,SAEV,CACIY,WAAW,EACXhB,OAAQ,CACJ,CACIiB,SAAS,EACTd,aAAc,UACdF,KAAM,UACNG,KAAM,WAEV,CACIa,SAAS,EACTd,aAAc,UACdF,KAAM,cACNG,KAAM,WAEV,CACIa,SAAS,EACTd,aAAc,UACdF,KAAM,kBACNG,KAAM,YAGdH,KAAM,cACNG,KAAM,SAEV,CACIY,WAAW,EACXhB,OAAQ,CACJ,CACIiB,SAAS,EACTd,aAAc,UACdF,KAAM,UACNG,KAAM,WAEV,CACIa,SAAS,EACTd,aAAc,UACdF,KAAM,eACNG,KAAM,YAGdH,KAAM,gBACNG,KAAM,SAEV,CACIY,WAAW,EACXhB,OAAQ,CACJ,CACIiB,SAAS,EACTd,aAAc,UACdF,KAAM,UACNG,KAAM,WAEV,CACIa,SAAS,EACTd,aAAc,UACdF,KAAM,kBACNG,KAAM,WAEV,CACIa,SAAS,EACTd,aAAc,UACdF,KAAM,SACNG,KAAM,YAGdH,KAAM,iBACNG,KAAM,SAEV,CACIY,WAAW,EACXhB,OAAQ,CACJ,CACIiB,SAAS,EACTd,aAAc,UACdF,KAAM,aACNG,KAAM,WAEV,CACIa,SAAS,EACTd,aAAc,UACdF,KAAM,SACNG,KAAM,WAEV,CACIa,SAAS,EACTd,aAAc,UACdF,KAAM,YACNG,KAAM,WAEV,CACIa,SAAS,EACTd,aAAc,UACdF,KAAM,QACNG,KAAM,WAEV,CACIa,SAAS,EACTd,aAAc,OACdF,KAAM,UACNG,KAAM,QAEV,CACIa,SAAS,EACTd,aAAc,UACdF,KAAM,gBACNG,KAAM,WAEV,CACIa,SAAS,EACTd,aAAc,UACdF,KAAM,gBACNG,KAAM,YAGdH,KAAM,qBACNG,KAAM,SAEV,CACIY,WAAW,EACXhB,OAAQ,CACJ,CACIiB,SAAS,EACTd,aAAc,UACdF,KAAM,aACNG,KAAM,WAEV,CACIa,SAAS,EACTd,aAAc,UACdF,KAAM,SACNG,KAAM,WAEV,CACIa,SAAS,EACTd,aAAc,UACdF,KAAM,QACNG,KAAM,WAEV,CACIa,SAAS,EACTd,aAAc,QACdF,KAAM,eACNG,KAAM,UAGdH,KAAM,4BACNG,KAAM,SAEV,CACIY,WAAW,EACXhB,OAAQ,CACJ,CACIiB,SAAS,EACTd,aAAc,UACdF,KAAM,UACNG,KAAM,WAEV,CACIa,SAAS,EACTd,aAAc,UACdF,KAAM,kBACNG,KAAM,WAEV,CACIa,SAAS,EACTd,aAAc,UACdF,KAAM,SACNG,KAAM,YAGdH,KAAM,YACNG,KAAM,SAEV,CACIJ,OAAQ,GACRC,KAAM,wBACNC,QAAS,CACL,CACIC,aAAc,UACdF,KAAM,GACNG,KAAM,YAGdC,gBAAiB,OACjBD,KAAM,YAEV,CACIJ,OAAQ,CACJ,CACIG,aAAc,QACdF,KAAM,WACNG,KAAM,SAEV,CACID,aAAc,UACdF,KAAM,SACNG,KAAM,WAEV,CACID,aAAc,QACdF,KAAM,mBACNG,KAAM,UAGdH,KAAM,8BACNC,QAAS,GACTG,gBAAiB,OACjBD,KAAM,YAEV,CACIJ,OAAQ,CACJ,CACIG,aAAc,SACdF,KAAM,kBACNG,KAAM,WAGdH,KAAM,WACNC,QAAS,GACTG,gBAAiB,UACjBD,KAAM,YAEV,CACIJ,OAAQ,CACJ,CACIG,aAAc,UACdF,KAAM,UACNG,KAAM,YAGdH,KAAM,YACNC,QAAS,CACL,CACIC,aAAc,UACdF,KAAM,GACNG,KAAM,YAGdC,gBAAiB,OACjBD,KAAM,YAEV,CACIJ,OAAQ,CACJ,CACIG,aAAc,UACdF,KAAM,UACNG,KAAM,YAGdH,KAAM,YACNC,QAAS,GACTG,gBAAiB,UACjBD,KAAM,YAEV,CACIJ,OAAQ,CACJ,CACIG,aAAc,UACdF,KAAM,GACNG,KAAM,YAGdH,KAAM,WACNC,QAAS,CACL,CACIC,aAAc,UACdF,KAAM,UACNG,KAAM,WAEV,CACID,aAAc,OACdF,KAAM,SACNG,KAAM,QAEV,CACID,aAAc,UACdF,KAAM,QACNG,KAAM,WAEV,CACID,aAAc,SACdF,KAAM,kBACNG,KAAM,UAEV,CACID,aAAc,SACdF,KAAM,eACNG,KAAM,WAGdC,gBAAiB,OACjBD,KAAM,YAEV,CACIJ,OAAQ,CACJ,CACIG,aAAc,UACdF,KAAM,UACNG,KAAM,YAGdH,KAAM,iBACNC,QAAS,CACL,CACII,WAAY,CACR,CACIH,aAAc,UACdF,KAAM,UACNG,KAAM,WAEV,CACID,aAAc,OACdF,KAAM,SACNG,KAAM,QAEV,CACID,aAAc,UACdF,KAAM,QACNG,KAAM,WAEV,CACID,aAAc,SACdF,KAAM,kBACNG,KAAM,UAEV,CACID,aAAc,SACdF,KAAM,eACNG,KAAM,WAGdD,aAAc,mCACdF,KAAM,OACNG,KAAM,UAGdC,gBAAiB,OACjBD,KAAM,YAEV,CACIJ,OAAQ,CACJ,CACIG,aAAc,QACdF,KAAM,WACNG,KAAM,UAGdH,KAAM,mBACNC,QAAS,GACTG,gBAAiB,aACjBD,KAAM,YAEV,CACIJ,OAAQ,CACJ,CACIM,WAAY,CACR,CACIH,aAAc,UACdF,KAAM,SACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,QACNG,KAAM,WAEV,CACID,aAAc,QACdF,KAAM,WACNG,KAAM,SAEV,CACID,aAAc,QACdF,KAAM,WACNG,KAAM,SAEV,CACID,aAAc,UACdF,KAAM,eACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,uBACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,qBACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,eACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,uBACNG,KAAM,WAEV,CACID,aAAc,QACdF,KAAM,mBACNG,KAAM,SAEV,CACID,aAAc,QACdF,KAAM,YACNG,KAAM,UAGdD,aAAc,uBACdF,KAAM,SACNG,KAAM,UAGdH,KAAM,gBACNC,QAAS,CACL,CACIC,aAAc,UACdF,KAAM,GACNG,KAAM,YAGdC,gBAAiB,OACjBD,KAAM,YAEV,CACIJ,OAAQ,CACJ,CACIM,WAAY,CACR,CACIA,WAAY,CACR,CACIH,aAAc,UACdF,KAAM,SACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,QACNG,KAAM,WAEV,CACID,aAAc,QACdF,KAAM,WACNG,KAAM,SAEV,CACID,aAAc,QACdF,KAAM,WACNG,KAAM,SAEV,CACID,aAAc,UACdF,KAAM,eACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,uBACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,qBACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,eACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,uBACNG,KAAM,WAEV,CACID,aAAc,QACdF,KAAM,mBACNG,KAAM,SAEV,CACID,aAAc,QACdF,KAAM,YACNG,KAAM,UAGdD,aAAc,yBACdF,KAAM,UACNG,KAAM,WAEV,CACID,aAAc,uBACdF,KAAM,aACNG,KAAM,WAEV,CACID,aAAc,QACdF,KAAM,YACNG,KAAM,UAGdD,aAAc,4CACdF,KAAM,mBACNG,KAAM,WAEV,CACID,aAAc,kBACdF,KAAM,cACNG,KAAM,YAGdH,KAAM,sBACNC,QAAS,GACTG,gBAAiB,aACjBD,KAAM,YAEV,CACIJ,OAAQ,CACJ,CACIM,WAAY,CACR,CACIH,aAAc,UACdF,KAAM,SACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,QACNG,KAAM,WAEV,CACID,aAAc,QACdF,KAAM,WACNG,KAAM,SAEV,CACID,aAAc,QACdF,KAAM,WACNG,KAAM,SAEV,CACID,aAAc,UACdF,KAAM,eACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,uBACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,qBACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,eACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,uBACNG,KAAM,WAEV,CACID,aAAc,QACdF,KAAM,mBACNG,KAAM,SAEV,CACID,aAAc,QACdF,KAAM,YACNG,KAAM,UAGdD,aAAc,yBACdF,KAAM,MACNG,KAAM,WAEV,CACID,aAAc,kBACdF,KAAM,cACNG,KAAM,YAGdH,KAAM,YACNC,QAAS,GACTG,gBAAiB,aACjBD,KAAM,YAEV,CACIJ,OAAQ,CACJ,CACIG,aAAc,QACdF,KAAM,WACNG,KAAM,SAEV,CACIE,WAAY,CACR,CACIA,WAAY,CACR,CACIH,aAAc,UACdF,KAAM,SACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,QACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,eACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,uBACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,qBACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,YACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,eACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,uBACNG,KAAM,YAGdD,aAAc,iCACdF,KAAM,UACNG,KAAM,SAEV,CACID,aAAc,UACdF,KAAM,aACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,UACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,gBACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,WACNG,KAAM,YAGdD,aAAc,+BACdF,KAAM,SACNG,KAAM,SAEV,CACID,aAAc,QACdF,KAAM,UACNG,KAAM,UAGdH,KAAM,gBACNC,QAAS,CACL,CACIC,aAAc,UACdF,KAAM,gBACNG,KAAM,YAGdC,gBAAiB,aACjBD,KAAM,YAEV,CACIJ,OAAQ,CACJ,CACIM,WAAY,CACR,CACIH,aAAc,UACdF,KAAM,SACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,QACNG,KAAM,WAEV,CACID,aAAc,QACdF,KAAM,WACNG,KAAM,SAEV,CACID,aAAc,QACdF,KAAM,WACNG,KAAM,SAEV,CACID,aAAc,UACdF,KAAM,eACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,uBACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,qBACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,eACNG,KAAM,WAEV,CACID,aAAc,UACdF,KAAM,uBACNG,KAAM,WAEV,CACID,aAAc,QACdF,KAAM,mBACNG,KAAM,SAEV,CACID,aAAc,QACdF,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ACTG,gBAAiB,cAChB,CACDD,KAAM,WACNH,KAAM,0BACND,OAAQ,CAAC,CACPI,KAAM,QACNH,KAAM,OACNK,WAAY,CAAC,CACXF,KAAM,UACNH,KAAM,SACNE,aAAc,WACb,CACDC,KAAM,YACNH,KAAM,kBACNE,aAAc,aACb,CACDC,KAAM,UACNH,KAAM,iCACNE,aAAc,WACb,CACDC,KAAM,UACNH,KAAM,2BACNE,aAAc,WACb,CACDC,KAAM,UACNH,KAAM,yBACNE,aAAc,WACb,CACDC,KAAM,UACNH,KAAM,4BACNE,aAAc,WACb,CACDC,KAAM,UACNH,KAAM,0BACNE,aAAc,WACb,CACDC,KAAM,UACNH,KAAM,MACNE,aAAc,YAEhBA,aAAc,sDACb,CACDC,KAAM,QACNH,KAAM,aACNE,aAAc,UAEhBD,QAAS,GACTG,gBAAiB,cAChB,CACDD,KAAM,WACNH,KAAM,oBACND,OAAQ,CAAC,CACPI,KAAM,SACNH,KAAM,cACNE,aAAc,WAEhBD,QAAS,CAAC,CACRE,KAAM,OACNH,KAAM,GACNE,aAAc,SAEhBE,gBAAiB,QAChB,CACDD,KAAM,WACNH,KAAM,iBACND,OAAQ,CAAC,CACPI,KAAM,QACNH,KAAM,SACNK,WAAY,CAAC,CACXF,KAAM,UACNH,KAAM,SACNE,aAAc,WACb,CACDC,KAAM,UACNH,KAAM,QACNE,aAAc,WACb,CACDC,KAAM,QACNH,KAAM,WACNE,aAAc,SACb,CACDC,KAAM,QACNH,KAAM,WACNE,aAAc,SACb,CACDC,KAAM,UACNH,KAAM,eACNE,aAAc,WACb,CACDC,KAAM,UACNH,KAAM,uBACNE,aAAc,WACb,CACDC,KAAM,UACNH,KAAM,qBACNE,aAAc,WACb,CACDC,KAAM,UACNH,KAAM,eACNE,aAAc,WACb,CACDC,KAAM,UACNH,KAAM,uBACNE,aAAc,WACb,CACDC,KAAM,QACNH,KAAM,mBACNE,aAAc,SACb,CACDC,KAAM,QACNH,KAAM,YACNE,aAAc,UAEhBA,aAAc,wBACb,CACDC,KAAM,UACNH,KAAM,aACNE,aAAc,WACb,CACDC,KAAM,UACNH,KAAM,sBAC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AM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,EAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,EAAM,IAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,EAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,IAC//CC,EAAI,CAAC,GAAM,EAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,EAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,EAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,EAAM,IAAM,IAAM,GAAM,EAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,EAAM,IAAM,IAAM,IAAM,EAAM,EAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,EAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,EAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,GAAM,KAG//ChkK,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,EAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAC1/FC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,EAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,SAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAC1/FgkK,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,SAAY,WAAY,UAAY,WAAY,UAAY,WAAY,SAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,EAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAC1/FC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,SAAY,WAAY,UAAY,WAAY,UAAY,WAAY,SAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,EAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAG1/FC,EAAK,CAAC,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,EAAY,UAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/FC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,EAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,SAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/FC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,EAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/FC,EAAK,CAAC,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,WAAY,SAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,EAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,YAG1/FC,EAAK,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/FC,EAAK,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,SAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,SAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/FC,EAAK,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,WAAY,UAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/FC,EAAK,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY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MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,YAAa,MACb,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,aAAc,MACd,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,aAAc,MACd,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,cAAe,MACf,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,KACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,iBA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ACf,cAAe,MACf,cAAe,MACf,YAAa,MACb,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,aAAc,MACd,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,aAAc,MACd,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,cAAe,MACf,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAA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","sources":["../node_modules/@thirdweb-dev/crypto/dist|lazy|/^node:cry.*$/|groupOptions: {}|namespace object","../node_modules/@account-abstraction/contracts/dist/index.js","../node_modules/@account-abstraction/contracts/dist/types/factories/BaseAccount__factory.js","../node_modules/@account-abstraction/contracts/dist/types/factories/BasePaymaster__factory.js","../node_modules/@account-abstraction/contracts/dist/types/factories/BrokenBLSAccountFactory__factory.js","../node_modules/@account-abstraction/contracts/dist/types/factories/BrokenBLSAccount__factory.js","../node_modules/@account-abstraction/contracts/dist/types/factories/DepositPaymaster__factory.js","../node_modules/@account-abstraction/contracts/dist/types/factories/EntryPoint__factory.js","../node_modules/@account-abstraction/contracts/dist/types/factories/IAccount__factory.js","../node_modules/@account-abstraction/contracts/dist/types/factories/IAggregator__factory.js","../node_modules/@account-abstraction/contracts/dist/types/factories/IEntryPoint__factory.js","../node_modules/@account-abstraction/contracts/dist/types/factories/IPaymaster__factory.js","../node_modules/@account-abstraction/contracts/dist/types/factories/IStakeManager__factory.js","../node_modules/@account-abstraction/contracts/dist/types/factories/MaliciousAccount__factory.js","../node_modules/@account-abstraction/contracts/dist/types/factories/SenderCreator__factory.js","../node_modules/@account-abstraction/contracts/dist/types/factories/SimpleAccountFactory__factory.js","../node_modules/@account-abstraction/contracts/dist/types/factories/SimpleAccount__factory.js","../node_modules/@account-abstraction/contracts/dist/types/factories/StakeManager__factory.js","../node_modules/@account-abstraction/contracts/dist/types/factories/TokenPaymaster__factory.js","../node_modules/@account-abstraction/contracts/dist/types/factories/VerifyingPaymaster__factory.js","../node_modules/@account-abstraction/contracts/dist/types/factories/index.js","../node_modules/@account-abstraction/contracts/dist/types/index.js","../node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js","../node_modules/stylis/src/Utility.js","../node_modules/stylis/src/Tokenizer.js","../node_modules/stylis/src/Enum.js","../node_modules/stylis/src/Serializer.js","../node_modules/stylis/src/Parser.js","../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../node_modules/stylis/src/Middleware.js","../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","../node_modules/@emotion/hash/dist/emotion-hash.esm.js","../node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","../node_modules/@emotion/react/dist/emotion-element-c39617d8.browser.esm.js","../node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","../node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js","../node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../node_modules/@ethersproject/abi/src.ts/_version.ts","../node_modules/@ethersproject/abi/src.ts/coders/address.ts","../node_modules/@ethersproject/abi/src.ts/coders/anonymous.ts","../node_modules/@ethersproject/abi/src.ts/coders/array.ts","../node_modules/@ethersproject/abi/src.ts/coders/boolean.ts","../node_modules/@ethersproject/abi/src.ts/coders/bytes.ts","../node_modules/@ethersproject/abi/src.ts/coders/fixed-bytes.ts","../node_modules/@ethersproject/abi/src.ts/coders/null.ts","../node_modules/@ethersproject/abi/src.ts/coders/number.ts","../node_modules/@ethersproject/abi/src.ts/coders/string.ts","../node_modules/@ethersproject/abi/src.ts/coders/tuple.ts","../node_modules/@ethersproject/abi/src.ts/abi-coder.ts","../node_modules/@ethersproject/abi/src.ts/coders/abstract-coder.ts","../node_modules/@ethersproject/abi/src.ts/fragments.ts","../node_modules/@ethersproject/abi/src.ts/interface.ts","../node_modules/@ethersproject/abstract-provider/src.ts/index.ts","../node_modules/@ethersproject/abstract-provider/src.ts/_version.ts","../node_modules/@ethersproject/abstract-signer/src.ts/index.ts","../node_modules/@ethersproject/abstract-signer/src.ts/_version.ts","../node_modules/@ethersproject/address/src.ts/_version.ts","../node_modules/@ethersproject/address/src.ts/index.ts","../node_modules/@ethersproject/base64/src.ts/browser-base64.ts","../node_modules/@ethersproject/basex/src.ts/index.ts","../node_modules/@ethersproject/bignumber/src.ts/_version.ts","../node_modules/@ethersproject/bignumber/src.ts/bignumber.ts","../node_modules/@ethersproject/bignumber/src.ts/fixednumber.ts","../node_modules/@ethersproject/bignumber/node_modules/bn.js/lib/bn.js","../node_modules/@ethersproject/bytes/src.ts/_version.ts","../node_modules/@ethersproject/bytes/src.ts/index.ts","../node_modules/@ethersproject/constants/src.ts/addresses.ts","../node_modules/@ethersproject/constants/src.ts/bignumbers.ts","../node_modules/@ethersproject/constants/src.ts/hashes.ts","../node_modules/@ethersproject/constants/src.ts/strings.ts","../node_modules/@ethersproject/contracts/src.ts/index.ts","../node_modules/@ethersproject/contracts/src.ts/_version.ts","../node_modules/@ethersproject/hash/src.ts/_version.ts","../node_modules/@ethersproject/hash/src.ts/id.ts","../node_modules/@ethersproject/hash/src.ts/message.ts","../node_modules/@ethersproject/hash/src.ts/ens-normalize/decoder.ts","../node_modules/@ethersproject/hash/src.ts/ens-normalize/lib.ts","../node_modules/@ethersproject/hash/src.ts/ens-normalize/include.ts","../node_modules/@ethersproject/hash/src.ts/namehash.ts","../node_modules/@ethersproject/hash/src.ts/typed-data.ts","../node_modules/@ethersproject/hdnode/src.ts/_version.ts","../node_modules/@ethersproject/hdnode/src.ts/index.ts","../node_modules/@ethersproject/json-wallets/src.ts/_version.ts","../node_modules/@ethersproject/json-wallets/src.ts/crowdsale.ts","../node_modules/@ethersproject/json-wallets/src.ts/index.ts","../node_modules/@ethersproject/json-wallets/src.ts/inspect.ts","../node_modules/@ethersproject/json-wallets/src.ts/keystore.ts","../node_modules/@ethersproject/json-wallets/src.ts/utils.ts","../node_modules/@ethersproject/keccak256/src.ts/index.ts","../node_modules/@ethersproject/logger/src.ts/index.ts","../node_modules/@ethersproject/logger/src.ts/_version.ts","../node_modules/@ethersproject/networks/src.ts/_version.ts","../node_modules/@ethersproject/networks/src.ts/index.ts","../node_modules/@ethersproject/pbkdf2/src.ts/browser-pbkdf2.ts","../node_modules/@ethersproject/properties/src.ts/index.ts","../node_modules/@ethersproject/properties/src.ts/_version.ts","../node_modules/@ethersproject/providers/src.ts/_version.ts","../node_modules/@ethersproject/providers/src.ts/base-provider.ts","../node_modules/@ethersproject/providers/src.ts/formatter.ts","../node_modules/@ethersproject/providers/src.ts/alchemy-provider.ts","../node_modules/@ethersproject/providers/src.ts/ankr-provider.ts","../node_modules/@ethersproject/providers/src.ts/cloudflare-provider.ts","../node_modules/@ethersproject/providers/src.ts/etherscan-provider.ts","../node_modules/@ethersproject/providers/src.ts/fallback-provider.ts","../node_modules/@ethersproject/providers/src.ts/browser-ipc-provider.ts","../node_modules/@ethersproject/providers/src.ts/infura-provider.ts","../node_modules/@ethersproject/providers/src.ts/nodesmith-provider.ts","../node_modules/@ethersproject/providers/src.ts/pocket-provider.ts","../node_modules/@ethersproject/providers/src.ts/index.ts","../node_modules/@ethersproject/providers/src.ts/json-rpc-batch-provider.ts","../node_modules/@ethersproject/providers/src.ts/json-rpc-provider.ts","../node_modules/@ethersproject/providers/src.ts/url-json-rpc-provider.ts","../node_modules/@ethersproject/providers/src.ts/web3-provider.ts","../node_modules/@ethersproject/providers/src.ts/browser-ws.ts","../node_modules/@ethersproject/providers/src.ts/websocket-provider.ts","../node_modules/@ethersproject/random/src.ts/_version.ts","../node_modules/@ethersproject/random/src.ts/browser-random.ts","../node_modules/@ethersproject/random/src.ts/shuffle.ts","../node_modules/@ethersproject/rlp/src.ts/_version.ts","../node_modules/@ethersproject/rlp/src.ts/index.ts","../node_modules/@ethersproject/sha2/src.ts/_version.ts","../node_modules/@ethersproject/sha2/src.ts/browser-sha2.ts","../node_modules/@ethersproject/sha2/src.ts/types.ts","../node_modules/node_modules/minimalistic-assert/index.js","../node_modules/node_modules/minimalistic-crypto-utils/lib/utils.js","../node_modules/node_modules/elliptic/lib/elliptic/utils.js","../node_modules/node_modules/elliptic/lib/elliptic/curve/base.js","../node_modules/node_modules/inherits/inherits_browser.js","../node_modules/node_modules/elliptic/lib/elliptic/curve/short.js","../node_modules/node_modules/elliptic/lib/elliptic/curve/index.js","../node_modules/node_modules/elliptic/lib/elliptic/curves.js","../node_modules/node_modules/hmac-drbg/lib/hmac-drbg.js","../node_modules/node_modules/elliptic/lib/elliptic/ec/key.js","../node_modules/node_modules/elliptic/lib/elliptic/ec/signature.js","../node_modules/node_modules/elliptic/lib/elliptic/ec/index.js","../node_modules/@ethersproject/signing-key/lib.esm/elliptic.js","../node_modules/node_modules/elliptic/lib/elliptic.js","../node_modules/@ethersproject/signing-key/src.ts/_version.ts","../node_modules/@ethersproject/signing-key/src.ts/index.ts","../node_modules/@ethersproject/signing-key/node_modules/bn.js/lib/bn.js","../node_modules/@ethersproject/solidity/src.ts/_version.ts","../node_modules/@ethersproject/solidity/src.ts/index.ts","../node_modules/@ethersproject/strings/src.ts/bytes32.ts","../node_modules/@ethersproject/strings/src.ts/idna.ts","../node_modules/@ethersproject/strings/src.ts/_version.ts","../node_modules/@ethersproject/strings/src.ts/utf8.ts","../node_modules/@ethersproject/transactions/src.ts/_version.ts","../node_modules/@ethersproject/transactions/src.ts/index.ts","../node_modules/@ethersproject/units/src.ts/_version.ts","../node_modules/@ethersproject/units/src.ts/index.ts","../node_modules/@ethersproject/wallet/src.ts/index.ts","../node_modules/@ethersproject/wallet/src.ts/_version.ts","../node_modules/@ethersproject/web/src.ts/browser-geturl.ts","../node_modules/@ethersproject/web/src.ts/index.ts","../node_modules/@ethersproject/web/src.ts/_version.ts","../node_modules/@ethersproject/wordlists/src.ts/_version.ts","../node_modules/@ethersproject/wordlists/src.ts/wordlist.ts","../node_modules/@ethersproject/wordlists/src.ts/lang-en.ts","../node_modules/@ethersproject/wordlists/src.ts/browser-wordlists.ts","../node_modules/@multiformats/base-x/src/index.js","../node_modules/@radix-ui/react-icons/src/CheckIcon.tsx","../node_modules/@radix-ui/react-icons/src/CheckCircledIcon.tsx","../node_modules/@radix-ui/react-icons/src/ChevronDownIcon.tsx","../node_modules/@radix-ui/react-icons/src/ChevronLeftIcon.tsx","../node_modules/@radix-ui/react-icons/src/ChevronRightIcon.tsx","../node_modules/@radix-ui/react-icons/src/CopyIcon.tsx","../node_modules/@radix-ui/react-icons/src/Cross2Icon.tsx","../node_modules/@radix-ui/react-icons/src/CrossCircledIcon.tsx","../node_modules/@radix-ui/react-icons/src/EnterIcon.tsx","../node_modules/@radix-ui/react-icons/src/ExclamationTriangleIcon.tsx","../node_modules/@radix-ui/react-icons/src/ExternalLinkIcon.tsx","../node_modules/@radix-ui/react-icons/src/EyeClosedIcon.tsx","../node_modules/@radix-ui/react-icons/src/EyeOpenIcon.tsx","../node_modules/@radix-ui/react-icons/src/MagnifyingGlassIcon.tsx","../node_modules/@radix-ui/react-icons/src/PaperPlaneIcon.tsx","../node_modules/@radix-ui/react-icons/src/PinBottomIcon.tsx","../node_modules/@radix-ui/react-icons/src/ReloadIcon.tsx","../node_modules/@radix-ui/react-icons/src/ShuffleIcon.tsx","../node_modules/@radix-ui/react-icons/src/TextAlignLeftIcon.tsx","../node_modules/@stablelib/binary/binary.ts","../node_modules/@stablelib/chacha20poly1305/chacha20poly1305.ts","../node_modules/@stablelib/chacha/chacha.ts","../node_modules/@stablelib/constant-time/constant-time.ts","../node_modules/@stablelib/ed25519/ed25519.ts","../node_modules/@stablelib/hash/hash.ts","../node_modules/@stablelib/hkdf/hkdf.ts","../node_modules/@stablelib/hmac/hmac.ts","../node_modules/@stablelib/int/int.ts","../node_modules/@stablelib/poly1305/poly1305.ts","../node_modules/@stablelib/random/random.ts","../node_modules/@stablelib/random/source/browser.ts","../node_modules/@stablelib/random/source/node.ts","../node_modules/@stablelib/random/source/system.ts","../node_modules/@stablelib/sha256/sha256.ts","../node_modules/@stablelib/sha512/sha512.ts","../node_modules/@stablelib/wipe/wipe.ts","../node_modules/@stablelib/x25519/x25519.ts","../node_modules/@thirdweb-dev/chains/dist/thirdweb-dev-chains.esm.js","../node_modules/@noble/hashes/src/_assert.ts","../node_modules/@noble/hashes/src/utils.ts","../node_modules/@noble/hashes/src/_sha2.ts","../node_modules/@noble/hashes/src/sha256.ts","../node_modules/@thirdweb-dev/crypto/dist/thirdweb-dev-crypto.esm.js","../node_modules/@thirdweb-dev/crypto/node_modules/js-sha3/src/sha3.js","../node_modules/@thirdweb-dev/generated-abis/dist/thirdweb-dev-generated-abis.esm.js","../node_modules/@tanstack/query-core/src/query.ts","../node_modules/@tanstack/query-core/src/queryCache.ts","../node_modules/@tanstack/query-core/src/mutationCache.ts","../node_modules/@tanstack/query-core/src/infiniteQueryBehavior.ts","../node_modules/@tanstack/query-core/src/queryClient.ts","../node_modules/@thirdweb-dev/sdk/evm/dist/thirdweb-dev-sdk-evm.browser.esm.js","../node_modules/@thirdweb-dev/auth/node_modules/uuid/dist/esm-browser/native.js","../node_modules/@thirdweb-dev/auth/node_modules/uuid/dist/esm-browser/rng.js","../node_modules/@thirdweb-dev/auth/node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/@thirdweb-dev/auth/node_modules/uuid/dist/esm-browser/v4.js","../node_modules/@thirdweb-dev/auth/dist/auth-ffe5a232.browser.esm.js","../node_modules/@thirdweb-dev/react-core/dist/useTransactions-3bf3bf14.browser.esm.js","../node_modules/@thirdweb-dev/sdk/dist/token-f78496d9.browser.esm.js","../node_modules/@radix-ui/react-visually-hidden/dist/packages/react/visually-hidden/src/VisuallyHidden.tsx","../node_modules/@radix-ui/react-tooltip/dist/packages/react/tooltip/src/Tooltip.tsx","../node_modules/@thirdweb-dev/react/dist/Tooltip-69afad67.browser.esm.js","../node_modules/@radix-ui/colors/index.mjs","../node_modules/@thirdweb-dev/react/dist/formElements-7f371201.browser.esm.js","../node_modules/@thirdweb-dev/react/dist/frameWallet-974b0504.browser.esm.js","../node_modules/@thirdweb-dev/react/dist/magicLink-cdf1b76c.browser.esm.js","../node_modules/@radix-ui/react-collection/dist/packages/react/collection/src/Collection.tsx","../node_modules/@radix-ui/react-direction/dist/packages/react/direction/src/Direction.tsx","../node_modules/@radix-ui/react-roving-focus/dist/packages/react/roving-focus/src/RovingFocusGroup.tsx","../node_modules/@radix-ui/react-tabs/dist/packages/react/tabs/src/Tabs.tsx","../node_modules/fuse.js/dist/fuse.esm.js","../node_modules/@radix-ui/react-focus-guards/dist/packages/react/focus-guards/src/FocusGuards.tsx","../node_modules/@radix-ui/react-focus-scope/dist/packages/react/focus-scope/src/FocusScope.tsx","../node_modules/aria-hidden/dist/es2015/index.js","../node_modules/react-remove-scroll-bar/dist/es2015/constants.js","../node_modules/use-callback-ref/dist/es2015/assignRef.js","../node_modules/use-callback-ref/dist/es2015/useMergeRef.js","../node_modules/use-callback-ref/dist/es2015/useRef.js","../node_modules/use-sidecar/dist/es2015/medium.js","../node_modules/react-remove-scroll/dist/es2015/medium.js","../node_modules/react-remove-scroll/dist/es2015/UI.js","../node_modules/use-sidecar/dist/es2015/exports.js","../node_modules/get-nonce/dist/es2015/index.js","../node_modules/react-style-singleton/dist/es2015/singleton.js","../node_modules/react-style-singleton/dist/es2015/component.js","../node_modules/react-style-singleton/dist/es2015/hook.js","../node_modules/react-remove-scroll-bar/dist/es2015/utils.js","../node_modules/react-remove-scroll-bar/dist/es2015/component.js","../node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js","../node_modules/react-remove-scroll/dist/es2015/handleScroll.js","../node_modules/react-remove-scroll/dist/es2015/SideEffect.js","../node_modules/react-remove-scroll/dist/es2015/sidecar.js","../node_modules/react-remove-scroll/dist/es2015/Combination.js","../node_modules/@radix-ui/react-menu/dist/packages/react/menu/src/Menu.tsx","../node_modules/@radix-ui/react-dropdown-menu/dist/packages/react/dropdown-menu/src/DropdownMenu.tsx","../node_modules/@radix-ui/react-dialog/dist/packages/react/dialog/src/Dialog.tsx","../node_modules/@thirdweb-dev/react/dist/oneKeyWallet-f900f3da.browser.esm.js","../node_modules/@thirdweb-dev/react/dist/paperWallet-5f6092e0.browser.esm.js","../node_modules/@thirdweb-dev/react/dist/safeChainSlug-403963ed.browser.esm.js","../node_modules/@thirdweb-dev/wallets/dist/getInjectedCoinbaseProvider-b24ac791.browser.esm.js","../node_modules/@thirdweb-dev/react/dist/safeWallet-db509e55.browser.esm.js","../node_modules/@thirdweb-dev/react/dist/walletConnectV1-458b6bd4.browser.esm.js","../node_modules/@thirdweb-dev/sdk/dist/deployContractDeterministic-37b65e65.browser.esm.js","../node_modules/@thirdweb-dev/sdk/dist/fetchCurrencyValue-7173ff94.browser.esm.js","../node_modules/@thirdweb-dev/sdk/dist/index-b2a8262b.browser.esm.js","../node_modules/@thirdweb-dev/sdk/dist/normalizePriceValue-300bf9f3.browser.esm.js","../node_modules/@thirdweb-dev/sdk/dist/contract-publisher-d35c7c06.browser.esm.js","../node_modules/@thirdweb-dev/sdk/dist/sdk-23ff48ab.browser.esm.js","../node_modules/@thirdweb-dev/sdk/dist/transactions-a0a11326.browser.esm.js","../node_modules/@thirdweb-dev/sdk/node_modules/base-x/src/index.js","../node_modules/@thirdweb-dev/sdk/node_modules/bn.js/lib/bn.js","../node_modules/@thirdweb-dev/sdk/node_modules/bs58/index.js","../node_modules/@thirdweb-dev/sdk/node_modules/eventemitter3/index.js","../node_modules/@thirdweb-dev/storage/dist/thirdweb-dev-storage.esm.js","../node_modules/@thirdweb-dev/wallets/dist/assertWindowEthereum-88295886.browser.esm.js","../node_modules/@thirdweb-dev/wallets/dist/base-6ac28e37.browser.esm.js","../node_modules/@thirdweb-dev/wallets/dist/classPrivateFieldSet-a5db7c83.browser.esm.js","../node_modules/@thirdweb-dev/wallets/dist/classPrivateMethodGet-ea199cc3.browser.esm.js","../node_modules/@thirdweb-dev/wallets/dist/connector-05689d68.browser.esm.js","../node_modules/@thirdweb-dev/wallets/dist/constants-5a6f7f26.browser.esm.js","../node_modules/@thirdweb-dev/wallets/dist/constants-e71c81af.browser.esm.js","../node_modules/@thirdweb-dev/wallets/dist/defineProperty-d7c057bf.browser.esm.js","../node_modules/@thirdweb-dev/wallets/dist/embedded-wallet-9beb3895.browser.esm.js","../node_modules/@thirdweb-dev/wallets/dist/getInjectedCoin98Provider-056e8511.browser.esm.js","../node_modules/@thirdweb-dev/wallets/dist/getInjectedCoreWalletProvider-6baee5ae.browser.esm.js","../node_modules/@thirdweb-dev/wallets/dist/getInjectedCryptoDefiWalletProvider-3a00394e.browser.esm.js","../node_modules/@thirdweb-dev/wallets/dist/getInjectedMetamaskProvider-15002a29.browser.esm.js","../node_modules/@thirdweb-dev/wallets/dist/getInjectedOKXProvider-f368fd1c.browser.esm.js","../node_modules/@thirdweb-dev/wallets/dist/getInjectedOneKeyProvider-b8c89caf.browser.esm.js","../node_modules/@thirdweb-dev/wallets/dist/getInjectedPhantomProvider-95eb3d4f.browser.esm.js","../node_modules/@thirdweb-dev/wallets/dist/getInjectedRabbyProvider-db56bdef.browser.esm.js","../node_modules/@thirdweb-dev/wallets/dist/getInjectedRainbowProvider-f52a988e.browser.esm.js","../node_modules/@thirdweb-dev/wallets/evm/wallets/okx/dist/thirdweb-dev-wallets-evm-wallets-okx.browser.esm.js","../node_modules/@thirdweb-dev/wallets/evm/wallets/core-wallet/dist/thirdweb-dev-wallets-evm-wallets-core-wallet.browser.esm.js","../node_modules/@thirdweb-dev/wallets/evm/wallets/onekey/dist/thirdweb-dev-wallets-evm-wallets-onekey.browser.esm.js","../node_modules/@thirdweb-dev/wallets/evm/wallets/crypto-defi-wallet/dist/thirdweb-dev-wallets-evm-wallets-crypto-defi-wallet.browser.esm.js","../node_modules/@thirdweb-dev/wallets/evm/wallets/rabby/dist/thirdweb-dev-wallets-evm-wallets-rabby.browser.esm.js","../node_modules/@thirdweb-dev/wallets/evm/wallets/coin98/dist/thirdweb-dev-wallets-evm-wallets-coin98.browser.esm.js","../node_modules/@thirdweb-dev/wallets/evm/wallets/embedded-wallet/dist/thirdweb-dev-wallets-evm-wallets-embedded-wallet.browser.esm.js","../node_modules/@thirdweb-dev/wallets/evm/wallets/injected/dist/thirdweb-dev-wallets-evm-wallets-injected.browser.esm.js","../node_modules/@thirdweb-dev/wallets/evm/wallets/token-bound-smart-wallet/dist/thirdweb-dev-wallets-evm-wallets-token-bound-smart-wallet.browser.esm.js","../node_modules/@thirdweb-dev/wallets/dist/thirdweb-dev-wallets.browser.esm.js","../node_modules/@thirdweb-dev/wallets/dist/walletIds-afeb5af2.browser.esm.js","../node_modules/@thirdweb-dev/wallets/dist/wc-fbb7ab15.browser.esm.js","../node_modules/@thirdweb-dev/wallets/evm/wallets/abstract/dist/thirdweb-dev-wallets-evm-wallets-abstract.browser.esm.js","../node_modules/@thirdweb-dev/wallets/evm/wallets/blocto/dist/thirdweb-dev-wallets-evm-wallets-blocto.browser.esm.js","../node_modules/@thirdweb-dev/wallets/evm/wallets/coinbase-wallet/dist/thirdweb-dev-wallets-evm-wallets-coinbase-wallet.browser.esm.js","../node_modules/@thirdweb-dev/wallets/evm/wallets/frame/dist/thirdweb-dev-wallets-evm-wallets-frame.browser.esm.js","../node_modules/@thirdweb-dev/wallets/evm/wallets/local-wallet/dist/thirdweb-dev-wallets-evm-wallets-local-wallet.browser.esm.js","../node_modules/@thirdweb-dev/wallets/evm/wallets/magic/dist/thirdweb-dev-wallets-evm-wallets-magic.browser.esm.js","../node_modules/@thirdweb-dev/wallets/evm/wallets/metamask/dist/thirdweb-dev-wallets-evm-wallets-metamask.browser.esm.js","../node_modules/@thirdweb-dev/wallets/evm/wallets/paper-wallet/dist/thirdweb-dev-wallets-evm-wallets-paper-wallet.browser.esm.js","../node_modules/@thirdweb-dev/wallets/evm/wallets/phantom/dist/thirdweb-dev-wallets-evm-wallets-phantom.browser.esm.js","../node_modules/@thirdweb-dev/wallets/evm/wallets/rainbow-wallet/dist/thirdweb-dev-wallets-evm-wallets-rainbow-wallet.browser.esm.js","../node_modules/@thirdweb-dev/wallets/evm/wallets/safe/dist/thirdweb-dev-wallets-evm-wallets-safe.browser.esm.js","../node_modules/@thirdweb-dev/wallets/evm/wallets/signer/dist/thirdweb-dev-wallets-evm-wallets-signer.browser.esm.js","../node_modules/@thirdweb-dev/wallets/evm/wallets/smart-wallet/dist/thirdweb-dev-wallets-evm-wallets-smart-wallet.browser.esm.js","../node_modules/@thirdweb-dev/wallets/evm/wallets/trust/dist/thirdweb-dev-wallets-evm-wallets-trust.browser.esm.js","../node_modules/@thirdweb-dev/wallets/evm/wallets/wallet-connect/dist/thirdweb-dev-wallets-evm-wallets-wallet-connect.browser.esm.js","../node_modules/@thirdweb-dev/wallets/evm/wallets/zerion/dist/thirdweb-dev-wallets-evm-wallets-zerion.browser.esm.js","../node_modules/@thirdweb-dev/wallets/node_modules/eventemitter3/index.js","../node_modules/destr/dist/index.mjs","../node_modules/unstorage/dist/shared/unstorage.8581f561.mjs","../node_modules/unstorage/dist/index.mjs","../node_modules/idb-keyval/dist/index.js","../../../src/constants.ts","../../../src/utils.ts","../../../src/api.ts","../../../src/crypto.ts","../../../src/env.ts","../../../src/index.ts","../node_modules/@walletconnect/environment/node_modules/tslib/tslib.es6.js","../../../src/events.ts","../../../../src/constants/heartbeat.ts","../../../../src/constants/index.ts","../../../src/heartbeat.ts","../../../../src/types/heartbeat.ts","../../../../src/types/index.ts","../node_modules/@walletconnect/heartbeat/node_modules/tslib/tslib.es6.js","../../../src/provider.ts","../../../src/error.ts","../../../src/format.ts","../../../src/misc.ts","../../../src/url.ts","../../../src/validators.ts","../node_modules/@walletconnect/logger/node_modules/tslib/tslib.es6.js","../../../../src/constants/misc.ts","../../../../src/constants/time.ts","../../../../src/types/watch.ts","../../../../src/utils/convert.ts","../../../../src/utils/delay.ts","../../../../src/utils/index.ts","../../../src/watch.ts","../node_modules/@walletconnect/time/node_modules/tslib/tslib.es6.js","../../../src/jsonrpc.ts","../node_modules/@walletconnect/utils/node_modules/query-string/index.js","../node_modules/aes-js/index.js","../node_modules/base64-js/index.js","../node_modules/bech32/index.js","../node_modules/buffer/index.js","../node_modules/cid-tool/node_modules/uint8arrays/to-string.js","../node_modules/cid-tool/node_modules/uint8arrays/util/bases.js","../node_modules/cid-tool/src/core/base32.js","../node_modules/cid-tool/src/core/bases.js","../node_modules/cid-tool/src/core/codecs.js","../node_modules/cid-tool/src/core/format.js","../node_modules/cid-tool/src/core/hashes.js","../node_modules/cid-tool/src/core/index.js","../node_modules/cid-tool/src/index.js","../node_modules/cids/src/cid-util.js","../node_modules/cids/src/index.js","../node_modules/copy-to-clipboard/index.js","../node_modules/decode-uri-component/index.js","../node_modules/detect-browser/es/index.js","../node_modules/dijkstrajs/dijkstra.js","../node_modules/encode-utf8/index.js","../node_modules/ethers/src.ts/_version.ts","../node_modules/ethers/src.ts/ethers.ts","../node_modules/ethers/src.ts/index.ts","../node_modules/ethers/src.ts/utils.ts","../node_modules/events/events.js","../node_modules/explain-error/index.js","../node_modules/fast-deep-equal/index.js","../node_modules/filter-obj/index.js","../node_modules/form-data/lib/browser.js","../node_modules/hash.js/lib/hash.js","../node_modules/hash.js/lib/hash/common.js","../node_modules/hash.js/lib/hash/hmac.js","../node_modules/hash.js/lib/hash/ripemd.js","../node_modules/hash.js/lib/hash/sha.js","../node_modules/hash.js/lib/hash/sha/1.js","../node_modules/hash.js/lib/hash/sha/224.js","../node_modules/hash.js/lib/hash/sha/256.js","../node_modules/hash.js/lib/hash/sha/384.js","../node_modules/hash.js/lib/hash/sha/512.js","../node_modules/hash.js/lib/hash/sha/common.js","../node_modules/hash.js/lib/hash/utils.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/ieee754/index.js","../node_modules/inherits/inherits_browser.js","../node_modules/isomorphic-unfetch/browser.js","../node_modules/js-sha3/src/sha3.js","../node_modules/lodash.isequal/index.js","../node_modules/lodash.throttle/index.js","../node_modules/mime/Mime.js","../node_modules/mime/lite.js","../node_modules/mime/types/standard.js","../node_modules/minimalistic-assert/index.js","../node_modules/multibase/src/base.js","../node_modules/multibase/src/constants.js","../node_modules/multibase/src/index.js","../node_modules/multibase/src/rfc4648.js","../node_modules/multibase/src/util.js","../node_modules/multicodec/node_modules/varint/decode.js","../node_modules/multicodec/node_modules/varint/encode.js","../node_modules/multicodec/node_modules/varint/index.js","../node_modules/multicodec/node_modules/varint/length.js","../node_modules/multicodec/src/generated-table.js","../node_modules/multicodec/src/index.js","../node_modules/multicodec/src/maps.js","../node_modules/multicodec/src/util.js","../node_modules/multihashes/src/constants.js","../node_modules/multihashes/src/index.js","../node_modules/process/browser.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/qrcode/lib/browser.js","../node_modules/qrcode/lib/can-promise.js","../node_modules/qrcode/lib/core/alignment-pattern.js","../node_modules/qrcode/lib/core/alphanumeric-data.js","../node_modules/qrcode/lib/core/bit-buffer.js","../node_modules/qrcode/lib/core/bit-matrix.js","../node_modules/qrcode/lib/core/byte-data.js","../node_modules/qrcode/lib/core/error-correction-code.js","../node_modules/qrcode/lib/core/error-correction-level.js","../node_modules/qrcode/lib/core/finder-pattern.js","../node_modules/qrcode/lib/core/format-info.js","../node_modules/qrcode/lib/core/galois-field.js","../node_modules/qrcode/lib/core/kanji-data.js","../node_modules/qrcode/lib/core/mask-pattern.js","../node_modules/qrcode/lib/core/mode.js","../node_modules/qrcode/lib/core/numeric-data.js","../node_modules/qrcode/lib/core/polynomial.js","../node_modules/qrcode/lib/core/qrcode.js","../node_modules/qrcode/lib/core/reed-solomon-encoder.js","../node_modules/qrcode/lib/core/regex.js","../node_modules/qrcode/lib/core/segments.js","../node_modules/qrcode/lib/core/utils.js","../node_modules/qrcode/lib/core/version-check.js","../node_modules/qrcode/lib/core/version.js","../node_modules/qrcode/lib/renderer/canvas.js","../node_modules/qrcode/lib/renderer/svg-tag.js","../node_modules/qrcode/lib/renderer/utils.js","../node_modules/quick-format-unescaped/index.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-easy-swipe/lib/index.js","../node_modules/react-easy-swipe/lib/react-swipe.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react-responsive-carousel/lib/js/CSSTranslate.js","../node_modules/react-responsive-carousel/lib/js/components/Carousel/animations.js","../node_modules/react-responsive-carousel/lib/js/components/Carousel/index.js","../node_modules/react-responsive-carousel/lib/js/components/Carousel/utils.js","../node_modules/react-responsive-carousel/lib/js/components/Thumbs.js","../node_modules/react-responsive-carousel/lib/js/cssClasses.js","../node_modules/react-responsive-carousel/lib/js/dimensions.js","../node_modules/react-responsive-carousel/lib/js/index.js","../node_modules/react-responsive-carousel/lib/js/shims/document.js","../node_modules/react-responsive-carousel/lib/js/shims/window.js","../node_modules/react-scroll/modules/components/Button.js","../node_modules/react-scroll/modules/components/Element.js","../node_modules/react-scroll/modules/components/Link.js","../node_modules/react-scroll/modules/index.js","../node_modules/react-scroll/modules/mixins/Helpers.js","../node_modules/react-scroll/modules/mixins/animate-scroll.js","../node_modules/react-scroll/modules/mixins/cancel-events.js","../node_modules/react-scroll/modules/mixins/passive-event-listeners.js","../node_modules/react-scroll/modules/mixins/scroll-element.js","../node_modules/react-scroll/modules/mixins/scroll-events.js","../node_modules/react-scroll/modules/mixins/scroll-hash.js","../node_modules/react-scroll/modules/mixins/scroll-link.js","../node_modules/react-scroll/modules/mixins/scroll-spy.js","../node_modules/react-scroll/modules/mixins/scroller.js","../node_modules/react-scroll/modules/mixins/smooth.js","../node_modules/react-scroll/modules/mixins/utils.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/scrypt-js/scrypt.js","../node_modules/split-on-first/index.js","../node_modules/strict-uri-encode/index.js","../node_modules/toggle-selection/index.js","../node_modules/unfetch/src/index.mjs","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../node_modules/use-sync-external-store/shim/index.js","../node_modules/varint/decode.js","../node_modules/varint/encode.js","../node_modules/varint/index.js","../node_modules/varint/length.js","../node_modules/ws/browser.js","../node_modules/classnames/index.js","../node_modules/pino/browser.js","../node_modules/@paperxyz/sdk-common-utilities/src/constants/blockchain.ts","../node_modules/@paperxyz/sdk-common-utilities/src/constants/settings.ts","../node_modules/@radix-ui/primitive/dist/packages/core/primitive/src/primitive.tsx","../node_modules/@radix-ui/react-compose-refs/dist/packages/react/compose-refs/src/composeRefs.tsx","../node_modules/@radix-ui/react-context/dist/packages/react/context/src/createContext.tsx","../node_modules/@radix-ui/react-dismissable-layer/dist/packages/react/dismissable-layer/src/DismissableLayer.tsx","../node_modules/@radix-ui/react-use-escape-keydown/dist/packages/react/use-escape-keydown/src/useEscapeKeydown.tsx","../node_modules/@radix-ui/react-id/dist/packages/react/id/src/id.tsx","../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs","../node_modules/@radix-ui/react-arrow/dist/packages/react/arrow/src/Arrow.tsx","../node_modules/@radix-ui/react-popper/dist/packages/react/popper/src/Popper.tsx","../node_modules/@radix-ui/react-use-size/dist/packages/react/use-size/src/useSize.tsx","../node_modules/@radix-ui/react-portal/dist/packages/react/portal/src/Portal.tsx","../node_modules/@radix-ui/react-presence/dist/packages/react/presence/src/Presence.tsx","../node_modules/@radix-ui/react-presence/dist/packages/react/presence/src/useStateMachine.tsx","../node_modules/@radix-ui/react-primitive/dist/packages/react/primitive/src/Primitive.tsx","../node_modules/@radix-ui/react-slot/dist/packages/react/slot/src/Slot.tsx","../node_modules/@radix-ui/react-use-callback-ref/dist/packages/react/use-callback-ref/src/useCallbackRef.tsx","../node_modules/@radix-ui/react-use-controllable-state/dist/packages/react/use-controllable-state/src/useControllableState.tsx","../node_modules/@radix-ui/react-use-layout-effect/dist/packages/react/use-layout-effect/src/useLayoutEffect.tsx","../node_modules/@tanstack/query-core/src/focusManager.ts","../node_modules/@tanstack/query-core/src/logger.ts","../node_modules/@tanstack/query-core/src/mutation.ts","../node_modules/@tanstack/query-core/src/notifyManager.ts","../node_modules/@tanstack/query-core/src/onlineManager.ts","../node_modules/@tanstack/query-core/src/removable.ts","../node_modules/@tanstack/query-core/src/retryer.ts","../node_modules/@tanstack/query-core/src/subscribable.ts","../node_modules/@tanstack/query-core/src/utils.ts","../node_modules/@tanstack/react-query/src/QueryClientProvider.tsx","../node_modules/@tanstack/query-core/src/mutationObserver.ts","../node_modules/@tanstack/react-query/src/useMutation.ts","../node_modules/@tanstack/query-core/src/queryObserver.ts","../node_modules/@tanstack/react-query/src/QueryErrorResetBoundary.tsx","../node_modules/@tanstack/react-query/src/isRestoring.tsx","../node_modules/@tanstack/react-query/src/errorBoundaryUtils.ts","../node_modules/@tanstack/react-query/src/suspense.ts","../node_modules/@tanstack/react-query/src/useQuery.ts","../node_modules/@tanstack/react-query/src/useBaseQuery.ts","../node_modules/@tanstack/react-query/src/useSyncExternalStore.ts","../node_modules/@tanstack/react-query/src/utils.ts","../node_modules/@thirdweb-dev/sdk/node_modules/eventemitter3/index.mjs","../node_modules/@thirdweb-dev/wallets/node_modules/eventemitter3/index.mjs","../node_modules/multiformats/esm/vendor/base-x.js","../node_modules/multiformats/esm/src/bytes.js","../node_modules/multiformats/esm/src/bases/base.js","../node_modules/multiformats/esm/src/bases/identity.js","../node_modules/multiformats/esm/src/bases/base2.js","../node_modules/multiformats/esm/src/bases/base8.js","../node_modules/multiformats/esm/src/bases/base10.js","../node_modules/multiformats/esm/src/bases/base16.js","../node_modules/multiformats/esm/src/bases/base32.js","../node_modules/multiformats/esm/src/bases/base36.js","../node_modules/multiformats/esm/src/bases/base58.js","../node_modules/multiformats/esm/src/bases/base64.js","../node_modules/multiformats/esm/src/bases/base256emoji.js","../node_modules/multiformats/esm/vendor/varint.js","../node_modules/multiformats/esm/src/varint.js","../node_modules/multiformats/esm/src/hashes/digest.js","../node_modules/multiformats/esm/src/hashes/hasher.js","../node_modules/multiformats/esm/src/hashes/sha2-browser.js","../node_modules/multiformats/esm/src/hashes/identity.js","../node_modules/multiformats/esm/src/codecs/raw.js","../node_modules/multiformats/esm/src/codecs/json.js","../node_modules/multiformats/esm/src/cid.js","../node_modules/multiformats/esm/src/basics.js","../node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../node_modules/tslib/tslib.es6.mjs","../node_modules/uint8arrays/esm/src/alloc.js","../node_modules/uint8arrays/esm/src/concat.js","../node_modules/uint8arrays/esm/src/equals.js","../node_modules/uint8arrays/esm/src/from-string.js","../node_modules/uint8arrays/esm/src/to-string.js","../node_modules/uint8arrays/esm/src/util/as-uint8array.js","../node_modules/uint8arrays/esm/src/util/bases.js","../node_modules/zod/lib/index.mjs","../node_modules/@babel/runtime/helpers/esm/classExtractFieldDescriptor.js","../node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet.js","../node_modules/@babel/runtime/helpers/esm/classApplyDescriptorGet.js","../node_modules/@babel/runtime/helpers/esm/classPrivateFieldInitSpec.js","../node_modules/@babel/runtime/helpers/esm/checkPrivateRedeclaration.js","../node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet.js","../node_modules/@babel/runtime/helpers/esm/classApplyDescriptorSet.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../webpack/runtime/nonce","images/logo.svg","../node_modules/@emotion/css/create-instance/dist/emotion-css-create-instance.esm.js","../node_modules/@emotion/css/dist/emotion-css.esm.js","../node_modules/@thirdweb-dev/react/dist/thirdweb-dev-react.browser.esm.js","components/Navbar.js","components/Hero.js","components/Why.js","components/About.js","images/fpmark.svg","components/Roadmap.js","components/Team.js","components/Collection.js","components/QnA.js","components/Footer.js","components/Break.js","webpack://hr-landing-page/./src/components/Mint.css?d001","components/Mint.js","HomePage.js","index.js"],"sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(() => {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = () => ([]);\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 89844;\nmodule.exports = webpackEmptyAsyncContext;","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nexports.__esModule = true;\n__exportStar(require(\"./types\"), exports);\n","\"use strict\";\n/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\nexports.__esModule = true;\nexports.BaseAccount__factory = void 0;\nvar ethers_1 = require(\"ethers\");\nvar _abi = [\n {\n inputs: [],\n name: \"entryPoint\",\n outputs: [\n {\n internalType: \"contract IEntryPoint\",\n name: \"\",\n type: \"address\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"nonce\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"initCode\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"callData\",\n type: \"bytes\"\n },\n {\n internalType: \"uint256\",\n name: \"callGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"verificationGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"preVerificationGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxPriorityFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"paymasterAndData\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"signature\",\n type: \"bytes\"\n },\n ],\n internalType: \"struct UserOperation\",\n name: \"userOp\",\n type: \"tuple\"\n },\n {\n internalType: \"bytes32\",\n name: \"userOpHash\",\n type: \"bytes32\"\n },\n {\n internalType: \"uint256\",\n name: \"missingAccountFunds\",\n type: \"uint256\"\n },\n ],\n name: \"validateUserOp\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"validationData\",\n type: \"uint256\"\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n];\nvar BaseAccount__factory = /** @class */ (function () {\n function BaseAccount__factory() {\n }\n BaseAccount__factory.createInterface = function () {\n return new ethers_1.utils.Interface(_abi);\n };\n BaseAccount__factory.connect = function (address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n };\n BaseAccount__factory.abi = _abi;\n return BaseAccount__factory;\n}());\nexports.BaseAccount__factory = BaseAccount__factory;\n","\"use strict\";\n/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\nexports.__esModule = true;\nexports.BasePaymaster__factory = void 0;\nvar ethers_1 = require(\"ethers\");\nvar _abi = [\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"previousOwner\",\n type: \"address\"\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\"\n },\n ],\n name: \"OwnershipTransferred\",\n type: \"event\"\n },\n {\n inputs: [\n {\n internalType: \"uint32\",\n name: \"unstakeDelaySec\",\n type: \"uint32\"\n },\n ],\n name: \"addStake\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"deposit\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"entryPoint\",\n outputs: [\n {\n internalType: \"contract IEntryPoint\",\n name: \"\",\n type: \"address\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"getDeposit\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"enum IPaymaster.PostOpMode\",\n name: \"mode\",\n type: \"uint8\"\n },\n {\n internalType: \"bytes\",\n name: \"context\",\n type: \"bytes\"\n },\n {\n internalType: \"uint256\",\n name: \"actualGasCost\",\n type: \"uint256\"\n },\n ],\n name: \"postOp\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"renounceOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\"\n },\n ],\n name: \"transferOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"unlockStake\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"initCode\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"callData\",\n type: \"bytes\"\n },\n {\n internalType: \"uint256\",\n name: \"callGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"verificationGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"preVerificationGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxPriorityFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"paymasterAndData\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"signature\",\n type: \"bytes\"\n },\n ],\n internalType: \"struct UserOperation\",\n name: \"userOp\",\n type: \"tuple\"\n },\n {\n internalType: \"bytes32\",\n name: \"userOpHash\",\n type: \"bytes32\"\n },\n {\n internalType: \"uint256\",\n name: \"maxCost\",\n type: \"uint256\"\n },\n ],\n name: \"validatePaymasterUserOp\",\n outputs: [\n {\n internalType: \"bytes\",\n name: \"context\",\n type: \"bytes\"\n },\n {\n internalType: \"uint256\",\n name: \"validationData\",\n type: \"uint256\"\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address payable\",\n name: \"withdrawAddress\",\n type: \"address\"\n },\n ],\n name: \"withdrawStake\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address payable\",\n name: \"withdrawAddress\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n },\n ],\n name: \"withdrawTo\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n];\nvar BasePaymaster__factory = /** @class */ (function () {\n function BasePaymaster__factory() {\n }\n BasePaymaster__factory.createInterface = function () {\n return new ethers_1.utils.Interface(_abi);\n };\n BasePaymaster__factory.connect = function (address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n };\n BasePaymaster__factory.abi = _abi;\n return BasePaymaster__factory;\n}());\nexports.BasePaymaster__factory = BasePaymaster__factory;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nexports.__esModule = true;\nexports.BrokenBLSAccountFactory__factory = void 0;\n/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\nvar ethers_1 = require(\"ethers\");\nvar _abi = [\n {\n inputs: [\n {\n internalType: \"contract IEntryPoint\",\n name: \"entryPoint\",\n type: \"address\"\n },\n {\n internalType: \"address\",\n name: \"aggregator\",\n type: \"address\"\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\"\n },\n {\n inputs: [],\n name: \"accountImplementation\",\n outputs: [\n {\n internalType: \"contract BrokenBLSAccount\",\n name: \"\",\n type: \"address\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"salt\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256[4]\",\n name: \"aPublicKey\",\n type: \"uint256[4]\"\n },\n ],\n name: \"createAccount\",\n outputs: [\n {\n internalType: \"contract BrokenBLSAccount\",\n name: \"\",\n type: \"address\"\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"salt\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256[4]\",\n name: \"aPublicKey\",\n type: \"uint256[4]\"\n },\n ],\n name: \"getAddress\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n];\nvar _bytecode = \"0x60a060405234801561001057600080fd5b50604051612ede380380612ede83398101604081905261002f916100aa565b818160405161003d90610085565b6001600160a01b03928316815291166020820152604001604051809103906000f080158015610070573d6000803e3d6000fd5b506001600160a01b0316608052506100e49050565b6120c680610e1883390190565b6001600160a01b03811681146100a757600080fd5b50565b600080604083850312156100bd57600080fd5b82516100c881610092565b60208401519092506100d981610092565b809150509250929050565b608051610d0d61010b60003960008181604b0152818160f7015261020d0152610d0d6000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806311464fbe1461004657806319c2a1b214610096578063de3398dd146100a9575b600080fd5b61006d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61006d6100a436600461038e565b6100bc565b61006d6100b736600461038e565b6101de565b6000806100c984846101de565b905073ffffffffffffffffffffffffffffffffffffffff81163b80156100f1575090506101d8565b8460001b7f0000000000000000000000000000000000000000000000000000000000000000856040516024016101279190610418565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fee472f3600000000000000000000000000000000000000000000000000000000179052516101a790610352565b6101b2929190610479565b8190604051809103906000f59050801580156101d2573d6000803e3d6000fd5b50925050505b92915050565b60006103198360001b604051806020016101f790610352565b6020820181038252601f19601f820116604052507f00000000000000000000000000000000000000000000000000000000000000008560405160240161023d9190610418565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fee472f360000000000000000000000000000000000000000000000000000000017905290516102c293929101610479565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526102fe92916020016104e7565b60405160208183030381529060405280519060200120610320565b9392505050565b60006103198383306000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b6107c18061051783390190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060a083850312156103a157600080fd5b82359150602084603f8501126103b657600080fd5b6040516080810181811067ffffffffffffffff821117156103d9576103d961035f565b6040528060a08601878111156103ee57600080fd5b8387015b8181101561040957803583529184019184016103f2565b50505080925050509250929050565b60808101818360005b6004811015610440578151835260209283019290910190600101610421565b50505092915050565b60005b8381101561046457818101518382015260200161044c565b83811115610473576000848401525b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316815260406020820152600082518060408401526104b4816060850160208701610449565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016060019392505050565b600083516104f9818460208801610449565b83519083019061050d818360208801610449565b0194935050505056fe60806040526040516107c13803806107c183398101604081905261002291610321565b61002e82826000610035565b505061043e565b61003e8361006b565b60008251118061004b5750805b156100665761006483836100ab60201b6100291760201c565b505b505050565b610074816100d7565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100d0838360405180606001604052806027815260200161079a602791396101a9565b9392505050565b6100ea8161022260201b6100551760201c565b6101515760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b806101887f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61023160201b6100711760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080856001600160a01b0316856040516101c691906103ef565b600060405180830381855af49150503d8060008114610201576040519150601f19603f3d011682016040523d82523d6000602084013e610206565b606091505b50909250905061021886838387610234565b9695505050505050565b6001600160a01b03163b151590565b90565b606083156102a357825160000361029c576001600160a01b0385163b61029c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610148565b50816102ad565b6102ad83836102b5565b949350505050565b8151156102c55781518083602001fd5b8060405162461bcd60e51b8152600401610148919061040b565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103105781810151838201526020016102f8565b838111156100645750506000910152565b6000806040838503121561033457600080fd5b82516001600160a01b038116811461034b57600080fd5b60208401519092506001600160401b038082111561036857600080fd5b818501915085601f83011261037c57600080fd5b81518181111561038e5761038e6102df565b604051601f8201601f19908116603f011681019083821181831017156103b6576103b66102df565b816040528281528860208487010111156103cf57600080fd5b6103e08360208301602088016102f5565b80955050505050509250929050565b600082516104018184602087016102f5565b9190910192915050565b602081526000825180602084015261042a8160408501602087016102f5565b601f01601f19169190910160400192915050565b61034d8061044d6000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610074565b6100b9565b565b606061004e83836040518060600160405280602781526020016102f1602791396100dd565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b90565b60006100b47f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b905090565b3660008037600080366000845af43d6000803e8080156100d8573d6000f35b3d6000fd5b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516101079190610283565b600060405180830381855af49150503d8060008114610142576040519150601f19603f3d011682016040523d82523d6000602084013e610147565b606091505b509150915061015886838387610162565b9695505050505050565b606083156101fd5782516000036101f65773ffffffffffffffffffffffffffffffffffffffff85163b6101f6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610207565b610207838361020f565b949350505050565b81511561021f5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101ed919061029f565b60005b8381101561026e578181015183820152602001610256565b8381111561027d576000848401525b50505050565b60008251610295818460208701610253565b9190910192915050565b60208152600082518060208401526102be816040850160208701610253565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212201cd78ab6a31213989661cff2d7d05fc9b9c38b1a848e8249e2e398659a9eb7e364736f6c634300080f0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220a47065a7c8ac5bac8ed56ef1cf7419a59dfdae21ba812180654b545d4faab85f64736f6c634300080f003360e0604052306080523480156200001557600080fd5b50604051620020c6380380620020c683398101604081905262000038916200013f565b6001600160a01b03821660a052816200005062000064565b506001600160a01b031660c052506200017e565b600054610100900460ff1615620000d15760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000124576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200013c57600080fd5b50565b600080604083850312156200015357600080fd5b8251620001608162000126565b6020840151909250620001738162000126565b809150509250929050565b60805160a05160c051611ecb620001fb60003960008181610137015261068a01526000818161029001528181610703015281816107aa01528181610b8c01528181610f2e0152818161128a015261152c015260008181610486015281816105360152818161086e0152818161091e0152610a670152611ecb6000f3fe6080604052600436106100f75760003560e01c80638da5cb5b1161008a578063c399ec8811610059578063c399ec88146102d4578063c4d66de8146102e9578063e02afbae14610309578063ee472f361461032b57600080fd5b80638da5cb5b14610221578063affed0e01461025e578063b0d691fe14610281578063b61d27f6146102b457600080fd5b80634a58db19116100c65780634a58db19146101d15780634d44560d146101d95780634f1ef286146101f957806352d1902d1461020c57600080fd5b806318dfb3c714610103578063245a7bfc146101255780633659cfe6146101835780633a871cdd146101a357600080fd5b366100fe57005b600080fd5b34801561010f57600080fd5b5061012361011e3660046118ef565b61034b565b005b34801561013157600080fd5b506101597f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561018f57600080fd5b5061012361019e36600461197d565b61046f565b3480156101af57600080fd5b506101c36101be36600461199a565b610674565b60405190815260200161017a565b610123610701565b3480156101e557600080fd5b506101236101f43660046119ee565b6107a0565b610123610207366004611a98565b610857565b34801561021857600080fd5b506101c3610a4d565b34801561022d57600080fd5b50600154610159906c01000000000000000000000000900473ffffffffffffffffffffffffffffffffffffffff1681565b34801561026a57600080fd5b506001546bffffffffffffffffffffffff166101c3565b34801561028d57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610159565b3480156102c057600080fd5b506101236102cf366004611b5e565b610b39565b3480156102e057600080fd5b506101c3610b88565b3480156102f557600080fd5b5061012361030436600461197d565b610c40565b34801561031557600080fd5b5061031e610dd3565b60405161017a9190611be7565b34801561033757600080fd5b50610123610346366004611c18565b610de8565b610353610f16565b8281146103c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f77726f6e67206172726179206c656e677468730000000000000000000000000060448201526064015b60405180910390fd5b60005b83811015610468576104568585838181106103e1576103e1611c96565b90506020020160208101906103f6919061197d565b600085858581811061040a5761040a611c96565b905060200281019061041c9190611cc5565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610fe992505050565b8061046081611d59565b9150506103c4565b5050505050565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610534576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084016103b8565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166105a97f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff161461064c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f7879000000000000000000000000000000000000000060648201526084016103b8565b61065581611066565b604080516000808252602082019092526106719183919061106e565b50565b600061067e611272565b604080516060810182527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16808252600060208301819052919092015290506106df6040850185611cc5565b90506000036106f1576106f184611311565b6106fa826113da565b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006040517fb760faf900000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff919091169063b760faf99034906024016000604051808303818588803b15801561078c57600080fd5b505af1158015610468573d6000803e3d6000fd5b6107a8611445565b7f00000000000000000000000000000000000000000000000000000000000000006040517f205c287800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015260248201849052919091169063205c287890604401600060405180830381600087803b15801561083b57600080fd5b505af115801561084f573d6000803e3d6000fd5b505050505050565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016300361091c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084016103b8565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166109917f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614610a34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f7879000000000000000000000000000000000000000060648201526084016103b8565b610a3d82611066565b610a498282600161106e565b5050565b60003073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610b14576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016103b8565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b610b41610f16565b610b82848484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610fe992505050565b50505050565b60007f00000000000000000000000000000000000000000000000000000000000000006040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610c17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3b9190611d91565b905090565b600054610100900460ff1615808015610c605750600054600160ff909116105b80610c7a5750303b158015610c7a575060005460ff166001145b610d06576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016103b8565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610d6457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610d6d826114e0565b8015610a4957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b610ddb611885565b610de3611885565b919050565b600054610100900460ff1615808015610e085750600054600160ff909116105b80610e225750303b158015610e22575060005460ff166001145b610eae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016103b8565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610f0c57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610d6d60006114e0565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161480610f8157506001546c01000000000000000000000000900473ffffffffffffffffffffffffffffffffffffffff1633145b610fe7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f6163636f756e743a206e6f74204f776e6572206f7220456e747279506f696e7460448201526064016103b8565b565b6000808473ffffffffffffffffffffffffffffffffffffffff1684846040516110129190611dd6565b60006040518083038185875af1925050503d806000811461104f576040519150601f19603f3d011682016040523d82523d6000602084013e611054565b606091505b50915091508161046857805160208201fd5b610671611445565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156110a6576110a183611578565b505050565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561112b575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261112891810190611d91565b60015b6111b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f74205555505300000000000000000000000000000000000060648201526084016103b8565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114611266576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c6555554944000000000000000000000000000000000000000000000060648201526084016103b8565b506110a1838383611682565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610fe7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f6163636f756e743a206e6f742066726f6d20456e747279506f696e740000000060448201526064016103b8565b600180546020830135916bffffffffffffffffffffffff90911690600061133783611df2565b91906101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055506bffffffffffffffffffffffff1614610671576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f6163636f756e743a20696e76616c6964206e6f6e63650000000000000000000060448201526064016103b8565b80156106715760405160009033907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90849084818181858888f193505050503d8060008114610468576040519150601f19603f3d011682016040523d82523d6000602084013e610468565b6001546c01000000000000000000000000900473ffffffffffffffffffffffffffffffffffffffff1633148061147a57503330145b610fe7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c79206f776e65720000000000000000000000000000000000000000000060448201526064016103b8565b600180546bffffffffffffffffffffffff166c0100000000000000000000000073ffffffffffffffffffffffffffffffffffffffff8481168202929092179283905560405192048116917f0000000000000000000000000000000000000000000000000000000000000000909116907f47e55c76e7a6f1fd8996a1da8008c1ea29699cca35e7bcd057f2dec313b6e5de90600090a350565b73ffffffffffffffffffffffffffffffffffffffff81163b61161c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016103b8565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b61168b836116a7565b6000825111806116985750805b156110a157610b8283836116f4565b6116b081611578565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606106fa8383604051806060016040528060278152602001611e6f6027913960606000808573ffffffffffffffffffffffffffffffffffffffff168560405161173e9190611dd6565b600060405180830381855af49150503d8060008114611779576040519150601f19603f3d011682016040523d82523d6000602084013e61177e565b606091505b509150915061178f86838387611799565b9695505050505050565b6060831561182f5782516000036118285773ffffffffffffffffffffffffffffffffffffffff85163b611828576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103b8565b5081611839565b6118398383611841565b949350505050565b8151156118515781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b89190611e1d565b60405180608001604052806004906020820280368337509192915050565b60008083601f8401126118b557600080fd5b50813567ffffffffffffffff8111156118cd57600080fd5b6020830191508360208260051b85010111156118e857600080fd5b9250929050565b6000806000806040858703121561190557600080fd5b843567ffffffffffffffff8082111561191d57600080fd5b611929888389016118a3565b9096509450602087013591508082111561194257600080fd5b5061194f878288016118a3565b95989497509550505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461067157600080fd5b60006020828403121561198f57600080fd5b81356106fa8161195b565b6000806000606084860312156119af57600080fd5b833567ffffffffffffffff8111156119c657600080fd5b840161016081870312156119d957600080fd5b95602085013595506040909401359392505050565b60008060408385031215611a0157600080fd5b8235611a0c8161195b565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715611a9057611a90611a1a565b604052919050565b60008060408385031215611aab57600080fd5b8235611ab68161195b565b915060208381013567ffffffffffffffff80821115611ad457600080fd5b818601915086601f830112611ae857600080fd5b813581811115611afa57611afa611a1a565b611b2a847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601611a49565b91508082528784828501011115611b4057600080fd5b80848401858401376000848284010152508093505050509250929050565b60008060008060608587031215611b7457600080fd5b8435611b7f8161195b565b935060208501359250604085013567ffffffffffffffff80821115611ba357600080fd5b818701915087601f830112611bb757600080fd5b813581811115611bc657600080fd5b886020828501011115611bd857600080fd5b95989497505060200194505050565b60808101818360005b6004811015611c0f578151835260209283019290910190600101611bf0565b50505092915050565b600060808284031215611c2a57600080fd5b82601f830112611c3957600080fd5b6040516080810181811067ffffffffffffffff82111715611c5c57611c5c611a1a565b604052806080840185811115611c7157600080fd5b845b81811015611c8b578035835260209283019201611c73565b509195945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112611cfa57600080fd5b83018035915067ffffffffffffffff821115611d1557600080fd5b6020019150368190038213156118e857600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611d8a57611d8a611d2a565b5060010190565b600060208284031215611da357600080fd5b5051919050565b60005b83811015611dc5578181015183820152602001611dad565b83811115610b825750506000910152565b60008251611de8818460208701611daa565b9190910192915050565b60006bffffffffffffffffffffffff808316818103611e1357611e13611d2a565b6001019392505050565b6020815260008251806020840152611e3c816040850160208701611daa565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212205cf49810dc1024bbe2d76f8f79dcc489e3b6a79d7f0e35498db5239b1077074564736f6c634300080f0033\";\nvar isSuperArgs = function (xs) { return xs.length > 1; };\nvar BrokenBLSAccountFactory__factory = /** @class */ (function (_super) {\n __extends(BrokenBLSAccountFactory__factory, _super);\n function BrokenBLSAccountFactory__factory() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _this = this;\n if (isSuperArgs(args)) {\n _this = _super.apply(this, args) || this;\n }\n else {\n _this = _super.call(this, _abi, _bytecode, args[0]) || this;\n }\n return _this;\n }\n BrokenBLSAccountFactory__factory.prototype.deploy = function (entryPoint, aggregator, overrides) {\n return _super.prototype.deploy.call(this, entryPoint, aggregator, overrides || {});\n };\n BrokenBLSAccountFactory__factory.prototype.getDeployTransaction = function (entryPoint, aggregator, overrides) {\n return _super.prototype.getDeployTransaction.call(this, entryPoint, aggregator, overrides || {});\n };\n BrokenBLSAccountFactory__factory.prototype.attach = function (address) {\n return _super.prototype.attach.call(this, address);\n };\n BrokenBLSAccountFactory__factory.prototype.connect = function (signer) {\n return _super.prototype.connect.call(this, signer);\n };\n BrokenBLSAccountFactory__factory.createInterface = function () {\n return new ethers_1.utils.Interface(_abi);\n };\n BrokenBLSAccountFactory__factory.connect = function (address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n };\n BrokenBLSAccountFactory__factory.bytecode = _bytecode;\n BrokenBLSAccountFactory__factory.abi = _abi;\n return BrokenBLSAccountFactory__factory;\n}(ethers_1.ContractFactory));\nexports.BrokenBLSAccountFactory__factory = BrokenBLSAccountFactory__factory;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nexports.__esModule = true;\nexports.BrokenBLSAccount__factory = void 0;\n/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\nvar ethers_1 = require(\"ethers\");\nvar _abi = [\n {\n inputs: [\n {\n internalType: \"contract IEntryPoint\",\n name: \"anEntryPoint\",\n type: \"address\"\n },\n {\n internalType: \"address\",\n name: \"anAggregator\",\n type: \"address\"\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"address\",\n name: \"previousAdmin\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"newAdmin\",\n type: \"address\"\n },\n ],\n name: \"AdminChanged\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"beacon\",\n type: \"address\"\n },\n ],\n name: \"BeaconUpgraded\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint8\",\n name: \"version\",\n type: \"uint8\"\n },\n ],\n name: \"Initialized\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256[4]\",\n name: \"oldPublicKey\",\n type: \"uint256[4]\"\n },\n {\n indexed: false,\n internalType: \"uint256[4]\",\n name: \"newPublicKey\",\n type: \"uint256[4]\"\n },\n ],\n name: \"PublicKeyChanged\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"contract IEntryPoint\",\n name: \"entryPoint\",\n type: \"address\"\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\"\n },\n ],\n name: \"SimpleAccountInitialized\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"implementation\",\n type: \"address\"\n },\n ],\n name: \"Upgraded\",\n type: \"event\"\n },\n {\n inputs: [],\n name: \"addDeposit\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"aggregator\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"entryPoint\",\n outputs: [\n {\n internalType: \"contract IEntryPoint\",\n name: \"\",\n type: \"address\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"dest\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"value\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"func\",\n type: \"bytes\"\n },\n ],\n name: \"execute\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address[]\",\n name: \"dest\",\n type: \"address[]\"\n },\n {\n internalType: \"bytes[]\",\n name: \"func\",\n type: \"bytes[]\"\n },\n ],\n name: \"executeBatch\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"getBlsPublicKey\",\n outputs: [\n {\n internalType: \"uint256[4]\",\n name: \"\",\n type: \"uint256[4]\"\n },\n ],\n stateMutability: \"pure\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"getDeposit\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"anOwner\",\n type: \"address\"\n },\n ],\n name: \"initialize\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"uint256[4]\",\n name: \"aPublicKey\",\n type: \"uint256[4]\"\n },\n ],\n name: \"initialize\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"nonce\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"proxiableUUID\",\n outputs: [\n {\n internalType: \"bytes32\",\n name: \"\",\n type: \"bytes32\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"newImplementation\",\n type: \"address\"\n },\n ],\n name: \"upgradeTo\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"newImplementation\",\n type: \"address\"\n },\n {\n internalType: \"bytes\",\n name: \"data\",\n type: \"bytes\"\n },\n ],\n name: \"upgradeToAndCall\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"initCode\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"callData\",\n type: \"bytes\"\n },\n {\n internalType: \"uint256\",\n name: \"callGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"verificationGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"preVerificationGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxPriorityFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"paymasterAndData\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"signature\",\n type: \"bytes\"\n },\n ],\n internalType: \"struct UserOperation\",\n name: \"userOp\",\n type: \"tuple\"\n },\n {\n internalType: \"bytes32\",\n name: \"userOpHash\",\n type: \"bytes32\"\n },\n {\n internalType: \"uint256\",\n name: \"missingAccountFunds\",\n type: \"uint256\"\n },\n ],\n name: \"validateUserOp\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"validationData\",\n type: \"uint256\"\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address payable\",\n name: \"withdrawAddress\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n },\n ],\n name: \"withdrawDepositTo\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n stateMutability: \"payable\",\n type: \"receive\"\n },\n];\nvar _bytecode = \"0x60e0604052306080523480156200001557600080fd5b50604051620020c6380380620020c683398101604081905262000038916200013f565b6001600160a01b03821660a052816200005062000064565b506001600160a01b031660c052506200017e565b600054610100900460ff1615620000d15760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000124576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200013c57600080fd5b50565b600080604083850312156200015357600080fd5b8251620001608162000126565b6020840151909250620001738162000126565b809150509250929050565b60805160a05160c051611ecb620001fb60003960008181610137015261068a01526000818161029001528181610703015281816107aa01528181610b8c01528181610f2e0152818161128a015261152c015260008181610486015281816105360152818161086e0152818161091e0152610a670152611ecb6000f3fe6080604052600436106100f75760003560e01c80638da5cb5b1161008a578063c399ec8811610059578063c399ec88146102d4578063c4d66de8146102e9578063e02afbae14610309578063ee472f361461032b57600080fd5b80638da5cb5b14610221578063affed0e01461025e578063b0d691fe14610281578063b61d27f6146102b457600080fd5b80634a58db19116100c65780634a58db19146101d15780634d44560d146101d95780634f1ef286146101f957806352d1902d1461020c57600080fd5b806318dfb3c714610103578063245a7bfc146101255780633659cfe6146101835780633a871cdd146101a357600080fd5b366100fe57005b600080fd5b34801561010f57600080fd5b5061012361011e3660046118ef565b61034b565b005b34801561013157600080fd5b506101597f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561018f57600080fd5b5061012361019e36600461197d565b61046f565b3480156101af57600080fd5b506101c36101be36600461199a565b610674565b60405190815260200161017a565b610123610701565b3480156101e557600080fd5b506101236101f43660046119ee565b6107a0565b610123610207366004611a98565b610857565b34801561021857600080fd5b506101c3610a4d565b34801561022d57600080fd5b50600154610159906c01000000000000000000000000900473ffffffffffffffffffffffffffffffffffffffff1681565b34801561026a57600080fd5b506001546bffffffffffffffffffffffff166101c3565b34801561028d57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610159565b3480156102c057600080fd5b506101236102cf366004611b5e565b610b39565b3480156102e057600080fd5b506101c3610b88565b3480156102f557600080fd5b5061012361030436600461197d565b610c40565b34801561031557600080fd5b5061031e610dd3565b60405161017a9190611be7565b34801561033757600080fd5b50610123610346366004611c18565b610de8565b610353610f16565b8281146103c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f77726f6e67206172726179206c656e677468730000000000000000000000000060448201526064015b60405180910390fd5b60005b83811015610468576104568585838181106103e1576103e1611c96565b90506020020160208101906103f6919061197d565b600085858581811061040a5761040a611c96565b905060200281019061041c9190611cc5565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610fe992505050565b8061046081611d59565b9150506103c4565b5050505050565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610534576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084016103b8565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166105a97f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff161461064c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f7879000000000000000000000000000000000000000060648201526084016103b8565b61065581611066565b604080516000808252602082019092526106719183919061106e565b50565b600061067e611272565b604080516060810182527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16808252600060208301819052919092015290506106df6040850185611cc5565b90506000036106f1576106f184611311565b6106fa826113da565b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006040517fb760faf900000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff919091169063b760faf99034906024016000604051808303818588803b15801561078c57600080fd5b505af1158015610468573d6000803e3d6000fd5b6107a8611445565b7f00000000000000000000000000000000000000000000000000000000000000006040517f205c287800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015260248201849052919091169063205c287890604401600060405180830381600087803b15801561083b57600080fd5b505af115801561084f573d6000803e3d6000fd5b505050505050565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016300361091c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084016103b8565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166109917f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614610a34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f7879000000000000000000000000000000000000000060648201526084016103b8565b610a3d82611066565b610a498282600161106e565b5050565b60003073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610b14576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016103b8565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b610b41610f16565b610b82848484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610fe992505050565b50505050565b60007f00000000000000000000000000000000000000000000000000000000000000006040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610c17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3b9190611d91565b905090565b600054610100900460ff1615808015610c605750600054600160ff909116105b80610c7a5750303b158015610c7a575060005460ff166001145b610d06576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016103b8565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610d6457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610d6d826114e0565b8015610a4957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b610ddb611885565b610de3611885565b919050565b600054610100900460ff1615808015610e085750600054600160ff909116105b80610e225750303b158015610e22575060005460ff166001145b610eae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016103b8565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610f0c57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610d6d60006114e0565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161480610f8157506001546c01000000000000000000000000900473ffffffffffffffffffffffffffffffffffffffff1633145b610fe7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f6163636f756e743a206e6f74204f776e6572206f7220456e747279506f696e7460448201526064016103b8565b565b6000808473ffffffffffffffffffffffffffffffffffffffff1684846040516110129190611dd6565b60006040518083038185875af1925050503d806000811461104f576040519150601f19603f3d011682016040523d82523d6000602084013e611054565b606091505b50915091508161046857805160208201fd5b610671611445565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156110a6576110a183611578565b505050565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561112b575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261112891810190611d91565b60015b6111b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f74205555505300000000000000000000000000000000000060648201526084016103b8565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114611266576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c6555554944000000000000000000000000000000000000000000000060648201526084016103b8565b506110a1838383611682565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610fe7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f6163636f756e743a206e6f742066726f6d20456e747279506f696e740000000060448201526064016103b8565b600180546020830135916bffffffffffffffffffffffff90911690600061133783611df2565b91906101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055506bffffffffffffffffffffffff1614610671576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f6163636f756e743a20696e76616c6964206e6f6e63650000000000000000000060448201526064016103b8565b80156106715760405160009033907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90849084818181858888f193505050503d8060008114610468576040519150601f19603f3d011682016040523d82523d6000602084013e610468565b6001546c01000000000000000000000000900473ffffffffffffffffffffffffffffffffffffffff1633148061147a57503330145b610fe7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c79206f776e65720000000000000000000000000000000000000000000060448201526064016103b8565b600180546bffffffffffffffffffffffff166c0100000000000000000000000073ffffffffffffffffffffffffffffffffffffffff8481168202929092179283905560405192048116917f0000000000000000000000000000000000000000000000000000000000000000909116907f47e55c76e7a6f1fd8996a1da8008c1ea29699cca35e7bcd057f2dec313b6e5de90600090a350565b73ffffffffffffffffffffffffffffffffffffffff81163b61161c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016103b8565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b61168b836116a7565b6000825111806116985750805b156110a157610b8283836116f4565b6116b081611578565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606106fa8383604051806060016040528060278152602001611e6f6027913960606000808573ffffffffffffffffffffffffffffffffffffffff168560405161173e9190611dd6565b600060405180830381855af49150503d8060008114611779576040519150601f19603f3d011682016040523d82523d6000602084013e61177e565b606091505b509150915061178f86838387611799565b9695505050505050565b6060831561182f5782516000036118285773ffffffffffffffffffffffffffffffffffffffff85163b611828576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103b8565b5081611839565b6118398383611841565b949350505050565b8151156118515781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b89190611e1d565b60405180608001604052806004906020820280368337509192915050565b60008083601f8401126118b557600080fd5b50813567ffffffffffffffff8111156118cd57600080fd5b6020830191508360208260051b85010111156118e857600080fd5b9250929050565b6000806000806040858703121561190557600080fd5b843567ffffffffffffffff8082111561191d57600080fd5b611929888389016118a3565b9096509450602087013591508082111561194257600080fd5b5061194f878288016118a3565b95989497509550505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461067157600080fd5b60006020828403121561198f57600080fd5b81356106fa8161195b565b6000806000606084860312156119af57600080fd5b833567ffffffffffffffff8111156119c657600080fd5b840161016081870312156119d957600080fd5b95602085013595506040909401359392505050565b60008060408385031215611a0157600080fd5b8235611a0c8161195b565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715611a9057611a90611a1a565b604052919050565b60008060408385031215611aab57600080fd5b8235611ab68161195b565b915060208381013567ffffffffffffffff80821115611ad457600080fd5b818601915086601f830112611ae857600080fd5b813581811115611afa57611afa611a1a565b611b2a847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601611a49565b91508082528784828501011115611b4057600080fd5b80848401858401376000848284010152508093505050509250929050565b60008060008060608587031215611b7457600080fd5b8435611b7f8161195b565b935060208501359250604085013567ffffffffffffffff80821115611ba357600080fd5b818701915087601f830112611bb757600080fd5b813581811115611bc657600080fd5b886020828501011115611bd857600080fd5b95989497505060200194505050565b60808101818360005b6004811015611c0f578151835260209283019290910190600101611bf0565b50505092915050565b600060808284031215611c2a57600080fd5b82601f830112611c3957600080fd5b6040516080810181811067ffffffffffffffff82111715611c5c57611c5c611a1a565b604052806080840185811115611c7157600080fd5b845b81811015611c8b578035835260209283019201611c73565b509195945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112611cfa57600080fd5b83018035915067ffffffffffffffff821115611d1557600080fd5b6020019150368190038213156118e857600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611d8a57611d8a611d2a565b5060010190565b600060208284031215611da357600080fd5b5051919050565b60005b83811015611dc5578181015183820152602001611dad565b83811115610b825750506000910152565b60008251611de8818460208701611daa565b9190910192915050565b60006bffffffffffffffffffffffff808316818103611e1357611e13611d2a565b6001019392505050565b6020815260008251806020840152611e3c816040850160208701611daa565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212205cf49810dc1024bbe2d76f8f79dcc489e3b6a79d7f0e35498db5239b1077074564736f6c634300080f0033\";\nvar isSuperArgs = function (xs) { return xs.length > 1; };\nvar BrokenBLSAccount__factory = /** @class */ (function (_super) {\n __extends(BrokenBLSAccount__factory, _super);\n function BrokenBLSAccount__factory() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _this = this;\n if (isSuperArgs(args)) {\n _this = _super.apply(this, args) || this;\n }\n else {\n _this = _super.call(this, _abi, _bytecode, args[0]) || this;\n }\n return _this;\n }\n BrokenBLSAccount__factory.prototype.deploy = function (anEntryPoint, anAggregator, overrides) {\n return _super.prototype.deploy.call(this, anEntryPoint, anAggregator, overrides || {});\n };\n BrokenBLSAccount__factory.prototype.getDeployTransaction = function (anEntryPoint, anAggregator, overrides) {\n return _super.prototype.getDeployTransaction.call(this, anEntryPoint, anAggregator, overrides || {});\n };\n BrokenBLSAccount__factory.prototype.attach = function (address) {\n return _super.prototype.attach.call(this, address);\n };\n BrokenBLSAccount__factory.prototype.connect = function (signer) {\n return _super.prototype.connect.call(this, signer);\n };\n BrokenBLSAccount__factory.createInterface = function () {\n return new ethers_1.utils.Interface(_abi);\n };\n BrokenBLSAccount__factory.connect = function (address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n };\n BrokenBLSAccount__factory.bytecode = _bytecode;\n BrokenBLSAccount__factory.abi = _abi;\n return BrokenBLSAccount__factory;\n}(ethers_1.ContractFactory));\nexports.BrokenBLSAccount__factory = BrokenBLSAccount__factory;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nexports.__esModule = true;\nexports.DepositPaymaster__factory = void 0;\n/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\nvar ethers_1 = require(\"ethers\");\nvar _abi = [\n {\n inputs: [\n {\n internalType: \"contract IEntryPoint\",\n name: \"_entryPoint\",\n type: \"address\"\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"previousOwner\",\n type: \"address\"\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\"\n },\n ],\n name: \"OwnershipTransferred\",\n type: \"event\"\n },\n {\n inputs: [],\n name: \"COST_OF_POST\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"contract IERC20\",\n name: \"token\",\n type: \"address\"\n },\n {\n internalType: \"address\",\n name: \"account\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n },\n ],\n name: \"addDepositFor\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"uint32\",\n name: \"unstakeDelaySec\",\n type: \"uint32\"\n },\n ],\n name: \"addStake\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"contract IERC20\",\n name: \"token\",\n type: \"address\"\n },\n {\n internalType: \"contract IOracle\",\n name: \"tokenPriceOracle\",\n type: \"address\"\n },\n ],\n name: \"addToken\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"contract IERC20\",\n name: \"\",\n type: \"address\"\n },\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\"\n },\n ],\n name: \"balances\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"deposit\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"contract IERC20\",\n name: \"token\",\n type: \"address\"\n },\n {\n internalType: \"address\",\n name: \"account\",\n type: \"address\"\n },\n ],\n name: \"depositInfo\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"_unlockBlock\",\n type: \"uint256\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"entryPoint\",\n outputs: [\n {\n internalType: \"contract IEntryPoint\",\n name: \"\",\n type: \"address\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"getDeposit\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"lockTokenDeposit\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"contract IERC20\",\n name: \"\",\n type: \"address\"\n },\n ],\n name: \"oracles\",\n outputs: [\n {\n internalType: \"contract IOracle\",\n name: \"\",\n type: \"address\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"enum IPaymaster.PostOpMode\",\n name: \"mode\",\n type: \"uint8\"\n },\n {\n internalType: \"bytes\",\n name: \"context\",\n type: \"bytes\"\n },\n {\n internalType: \"uint256\",\n name: \"actualGasCost\",\n type: \"uint256\"\n },\n ],\n name: \"postOp\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"renounceOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\"\n },\n ],\n name: \"transferOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\"\n },\n ],\n name: \"unlockBlock\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"unlockStake\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"unlockTokenDeposit\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"initCode\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"callData\",\n type: \"bytes\"\n },\n {\n internalType: \"uint256\",\n name: \"callGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"verificationGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"preVerificationGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxPriorityFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"paymasterAndData\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"signature\",\n type: \"bytes\"\n },\n ],\n internalType: \"struct UserOperation\",\n name: \"userOp\",\n type: \"tuple\"\n },\n {\n internalType: \"bytes32\",\n name: \"userOpHash\",\n type: \"bytes32\"\n },\n {\n internalType: \"uint256\",\n name: \"maxCost\",\n type: \"uint256\"\n },\n ],\n name: \"validatePaymasterUserOp\",\n outputs: [\n {\n internalType: \"bytes\",\n name: \"context\",\n type: \"bytes\"\n },\n {\n internalType: \"uint256\",\n name: \"validationData\",\n type: \"uint256\"\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address payable\",\n name: \"withdrawAddress\",\n type: \"address\"\n },\n ],\n name: \"withdrawStake\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address payable\",\n name: \"withdrawAddress\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n },\n ],\n name: \"withdrawTo\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"contract IERC20\",\n name: \"token\",\n type: \"address\"\n },\n {\n internalType: \"address\",\n name: \"target\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n },\n ],\n name: \"withdrawTokensTo\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n];\nvar _bytecode = \"0x60a06040523480156200001157600080fd5b5060405162001fa938038062001fa98339810160408190526200003491620000bb565b8062000040336200006b565b6001600160a01b031660805262000064336000908152600360205260409020439055565b50620000ed565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215620000ce57600080fd5b81516001600160a01b0381168114620000e657600080fd5b9392505050565b608051611e6f6200013a600039600081816103b30152818161052b015281816105f50152818161089001528181610957015281816109e701528181610bb90152610ed70152611e6f6000f3fe6080604052600436106101755760003560e01c8063addd5099116100cb578063c399ec881161007f578063d0e30db011610059578063d0e30db014610499578063f2fde38b146104a1578063f465c77e146104c157600080fd5b8063c399ec8814610442578063cc9c837c14610457578063cd8f80c21461047757600080fd5b8063bb9fe6bf116100b0578063bb9fe6bf146103d5578063c23a5cea146103ea578063c23f001f1461040a57600080fd5b8063addd50991461035e578063b0d691fe146103a157600080fd5b80635476bd721161012d5780638da5cb5b116101075780638da5cb5b146102ce5780639ed0fb681461031a578063a9a234091461033e57600080fd5b80635476bd7214610283578063715018a6146102a3578063796d4371146102b857600080fd5b8063382edd9e1161015e578063382edd9e146101af578063493b0170146101cf5780634a6f84cf1461024857600080fd5b80630396cb601461017a578063205c28781461018f575b600080fd5b61018d610188366004611915565b6104ef565b005b34801561019b57600080fd5b5061018d6101aa36600461195d565b6105a1565b3480156101bb57600080fd5b5061018d6101ca366004611989565b610639565b3480156101db57600080fd5b5061022e6101ea3660046119ca565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260026020908152604080832093909416825291825282812054600390925291909120549091565b604080519283526020830191909152015b60405180910390f35b34801561025457600080fd5b50610275610263366004611a03565b60036020526000908152604090205481565b60405190815260200161023f565b34801561028f57600080fd5b5061018d61029e3660046119ca565b61076e565b3480156102af57600080fd5b5061018d610858565b3480156102c457600080fd5b506102756188b881565b3480156102da57600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161023f565b34801561032657600080fd5b5061018d336000908152600360205260409020439055565b34801561034a57600080fd5b5061018d610359366004611a20565b61086c565b34801561036a57600080fd5b506102f5610379366004611a03565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b3480156103ad57600080fd5b506102f57f000000000000000000000000000000000000000000000000000000000000000081565b3480156103e157600080fd5b5061018d610886565b3480156103f657600080fd5b5061018d610405366004611a03565b61090a565b34801561041657600080fd5b506102756104253660046119ca565b600260209081526000928352604080842090915290825290205481565b34801561044e57600080fd5b506102756109b6565b34801561046357600080fd5b5061018d610472366004611989565b610a6c565b34801561048357600080fd5b5061018d33600090815260036020526040812055565b61018d610b8b565b3480156104ad57600080fd5b5061018d6104bc366004611a03565b610c13565b3480156104cd57600080fd5b506104e16104dc366004611aaf565b610cca565b60405161023f929190611b79565b6104f7610ced565b6040517f0396cb6000000000000000000000000000000000000000000000000000000000815263ffffffff821660048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690630396cb609034906024016000604051808303818588803b15801561058557600080fd5b505af1158015610599573d6000803e3d6000fd5b505050505050565b6105a9610ced565b6040517f205c287800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063205c287890604401600060405180830381600087803b15801561058557600080fd5b61065b73ffffffffffffffffffffffffffffffffffffffff8416333084610d6e565b73ffffffffffffffffffffffffffffffffffffffff838116600090815260016020526040902054166106ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f756e737570706f7274656420746f6b656e00000000000000000000000000000060448201526064015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff808416600090815260026020908152604080832093861683529290529081208054839290610732908490611bca565b909155505073ffffffffffffffffffffffffffffffffffffffff821633036107695761076933600090815260036020526040812055565b505050565b610776610ced565b73ffffffffffffffffffffffffffffffffffffffff8281166000908152600160205260409020541615610805576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f546f6b656e20616c72656164792073657400000000000000000000000000000060448201526064016106e5565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001691909216179055565b610860610ced565b61086a6000610e4a565b565b610874610ebf565b61088084848484610f5e565b50505050565b61088e610ced565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663bb9fe6bf6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156108f657600080fd5b505af1158015610880573d6000803e3d6000fd5b610912610ced565b6040517fc23a5cea00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063c23a5cea90602401600060405180830381600087803b15801561099b57600080fd5b505af11580156109af573d6000803e3d6000fd5b5050505050565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015610a43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a679190611be2565b905090565b3360009081526003602052604090205415801590610a9857503360009081526003602052604090205443115b610b24576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4465706f7369745061796d61737465723a206d75737420756e6c6f636b546f6b60448201527f656e4465706f736974000000000000000000000000000000000000000000000060648201526084016106e5565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260026020908152604080832033845290915281208054839290610b64908490611bfb565b90915550610769905073ffffffffffffffffffffffffffffffffffffffff841683836110d6565b6040517fb760faf90000000000000000000000000000000000000000000000000000000081523060048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063b760faf99034906024016000604051808303818588803b15801561099b57600080fd5b610c1b610ced565b73ffffffffffffffffffffffffffffffffffffffff8116610cbe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016106e5565b610cc781610e4a565b50565b60606000610cd6610ebf565b610ce185858561112c565b91509150935093915050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461086a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106e5565b60405173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044820152606481018290526108809085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611475565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461086a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f53656e646572206e6f7420456e747279506f696e74000000000000000000000060448201526064016106e5565b600080808080610f7087890189611c12565b9450945094509450945060008183856188b8610f8c9190611c63565b610f96908a611bca565b610fa09190611c63565b610faa9190611ca0565b905060028a6002811115610fc057610fc0611cdb565b14610fec57610fe773ffffffffffffffffffffffffffffffffffffffff8616873084610d6e565b611036565b73ffffffffffffffffffffffffffffffffffffffff8086166000908152600260209081526040808320938a1683529290529081208054839290611030908490611bfb565b90915550505b73ffffffffffffffffffffffffffffffffffffffff85166000908152600260205260408120829161107c60005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110c59190611bca565b909155505050505050505050505050565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526107699084907fa9059cbb0000000000000000000000000000000000000000000000000000000090606401610dc8565b606060006188b88560a00135116111c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f4465706f7369745061796d61737465723a2067617320746f6f206c6f7720666f60448201527f7220706f73744f7000000000000000000000000000000000000000000000000060648201526084016106e5565b3660006111d6610120880188611d0a565b90925090506028811461126b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f4465706f7369745061796d61737465723a207061796d6173746572416e64446160448201527f7461206d757374207370656369667920746f6b656e000000000000000000000060648201526084016106e5565b600061127a8260148186611d76565b61128391611da0565b60601c9050873560006112968389611581565b905060006112a38b6116cf565b73ffffffffffffffffffffffffffffffffffffffff841660009081526003602052604090205490915015611358576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4465706f7369745061796d61737465723a206465706f736974206e6f74206c6f60448201527f636b65640000000000000000000000000000000000000000000000000000000060648201526084016106e5565b73ffffffffffffffffffffffffffffffffffffffff80851660009081526002602090815260408083209387168352929052205482111561141a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4465706f7369745061796d61737465723a206465706f73697420746f6f206c6f60448201527f770000000000000000000000000000000000000000000000000000000000000060648201526084016106e5565b6040805173ffffffffffffffffffffffffffffffffffffffff948516602082015294909316848401526060840152608083015260a0808301979097528051808303909701875260c09091019052509295600095509350505050565b60006114d7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166116f69092919063ffffffff16565b80519091501561076957808060200190518101906114f59190611de8565b610769576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016106e5565b73ffffffffffffffffffffffffffffffffffffffff80831660009081526001602052604081205490911680611638576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4465706f7369745061796d61737465723a20756e737570706f7274656420746f60448201527f6b656e000000000000000000000000000000000000000000000000000000000060648201526084016106e5565b6040517fd1eca9cf0000000000000000000000000000000000000000000000000000000081526004810184905273ffffffffffffffffffffffffffffffffffffffff82169063d1eca9cf90602401602060405180830381865afa1580156116a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116c79190611be2565b949350505050565b600060e08201356101008301358082036116ea575092915050565b6116c782488301611705565b60606116c7848460008561171d565b60008183106117145781611716565b825b9392505050565b6060824710156117af576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016106e5565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516117d89190611e0a565b60006040518083038185875af1925050503d8060008114611815576040519150601f19603f3d011682016040523d82523d6000602084013e61181a565b606091505b509150915061182b87838387611836565b979650505050505050565b606083156118cc5782516000036118c55773ffffffffffffffffffffffffffffffffffffffff85163b6118c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106e5565b50816116c7565b6116c783838151156118e15781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e59190611e26565b60006020828403121561192757600080fd5b813563ffffffff8116811461171657600080fd5b73ffffffffffffffffffffffffffffffffffffffff81168114610cc757600080fd5b6000806040838503121561197057600080fd5b823561197b8161193b565b946020939093013593505050565b60008060006060848603121561199e57600080fd5b83356119a98161193b565b925060208401356119b98161193b565b929592945050506040919091013590565b600080604083850312156119dd57600080fd5b82356119e88161193b565b915060208301356119f88161193b565b809150509250929050565b600060208284031215611a1557600080fd5b81356117168161193b565b60008060008060608587031215611a3657600080fd5b843560038110611a4557600080fd5b9350602085013567ffffffffffffffff80821115611a6257600080fd5b818701915087601f830112611a7657600080fd5b813581811115611a8557600080fd5b886020828501011115611a9757600080fd5b95986020929092019750949560400135945092505050565b600080600060608486031215611ac457600080fd5b833567ffffffffffffffff811115611adb57600080fd5b84016101608187031215611aee57600080fd5b95602085013595506040909401359392505050565b60005b83811015611b1e578181015183820152602001611b06565b838111156108805750506000910152565b60008151808452611b47816020860160208601611b03565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b604081526000611b8c6040830185611b2f565b90508260208301529392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115611bdd57611bdd611b9b565b500190565b600060208284031215611bf457600080fd5b5051919050565b600082821015611c0d57611c0d611b9b565b500390565b600080600080600060a08688031215611c2a57600080fd5b8535611c358161193b565b94506020860135611c458161193b565b94979496505050506040830135926060810135926080909101359150565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611c9b57611c9b611b9b565b500290565b600082611cd6577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112611d3f57600080fd5b83018035915067ffffffffffffffff821115611d5a57600080fd5b602001915036819003821315611d6f57600080fd5b9250929050565b60008085851115611d8657600080fd5b83861115611d9357600080fd5b5050820193919092039150565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008135818116916014851015611de05780818660140360031b1b83161692505b505092915050565b600060208284031215611dfa57600080fd5b8151801515811461171657600080fd5b60008251611e1c818460208701611b03565b9190910192915050565b6020815260006117166020830184611b2f56fea2646970667358221220f935cbe4ea2ae13e8fff0cb7f87458bc2f28e69d759658a51d6206dc7702573a64736f6c634300080f0033\";\nvar isSuperArgs = function (xs) { return xs.length > 1; };\nvar DepositPaymaster__factory = /** @class */ (function (_super) {\n __extends(DepositPaymaster__factory, _super);\n function DepositPaymaster__factory() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _this = this;\n if (isSuperArgs(args)) {\n _this = _super.apply(this, args) || this;\n }\n else {\n _this = _super.call(this, _abi, _bytecode, args[0]) || this;\n }\n return _this;\n }\n DepositPaymaster__factory.prototype.deploy = function (_entryPoint, overrides) {\n return _super.prototype.deploy.call(this, _entryPoint, overrides || {});\n };\n DepositPaymaster__factory.prototype.getDeployTransaction = function (_entryPoint, overrides) {\n return _super.prototype.getDeployTransaction.call(this, _entryPoint, overrides || {});\n };\n DepositPaymaster__factory.prototype.attach = function (address) {\n return _super.prototype.attach.call(this, address);\n };\n DepositPaymaster__factory.prototype.connect = function (signer) {\n return _super.prototype.connect.call(this, signer);\n };\n DepositPaymaster__factory.createInterface = function () {\n return new ethers_1.utils.Interface(_abi);\n };\n DepositPaymaster__factory.connect = function (address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n };\n DepositPaymaster__factory.bytecode = _bytecode;\n DepositPaymaster__factory.abi = _abi;\n return DepositPaymaster__factory;\n}(ethers_1.ContractFactory));\nexports.DepositPaymaster__factory = DepositPaymaster__factory;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nexports.__esModule = true;\nexports.EntryPoint__factory = void 0;\n/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\nvar ethers_1 = require(\"ethers\");\nvar _abi = [\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"preOpGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"paid\",\n type: \"uint256\"\n },\n {\n internalType: \"uint48\",\n name: \"validAfter\",\n type: \"uint48\"\n },\n {\n internalType: \"uint48\",\n name: \"validUntil\",\n type: \"uint48\"\n },\n {\n internalType: \"bool\",\n name: \"targetSuccess\",\n type: \"bool\"\n },\n {\n internalType: \"bytes\",\n name: \"targetResult\",\n type: \"bytes\"\n },\n ],\n name: \"ExecutionResult\",\n type: \"error\"\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"opIndex\",\n type: \"uint256\"\n },\n {\n internalType: \"string\",\n name: \"reason\",\n type: \"string\"\n },\n ],\n name: \"FailedOp\",\n type: \"error\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\"\n },\n ],\n name: \"SenderAddressResult\",\n type: \"error\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"aggregator\",\n type: \"address\"\n },\n ],\n name: \"SignatureValidationFailed\",\n type: \"error\"\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"preOpGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"prefund\",\n type: \"uint256\"\n },\n {\n internalType: \"bool\",\n name: \"sigFailed\",\n type: \"bool\"\n },\n {\n internalType: \"uint48\",\n name: \"validAfter\",\n type: \"uint48\"\n },\n {\n internalType: \"uint48\",\n name: \"validUntil\",\n type: \"uint48\"\n },\n {\n internalType: \"bytes\",\n name: \"paymasterContext\",\n type: \"bytes\"\n },\n ],\n internalType: \"struct IEntryPoint.ReturnInfo\",\n name: \"returnInfo\",\n type: \"tuple\"\n },\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"stake\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"unstakeDelaySec\",\n type: \"uint256\"\n },\n ],\n internalType: \"struct IStakeManager.StakeInfo\",\n name: \"senderInfo\",\n type: \"tuple\"\n },\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"stake\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"unstakeDelaySec\",\n type: \"uint256\"\n },\n ],\n internalType: \"struct IStakeManager.StakeInfo\",\n name: \"factoryInfo\",\n type: \"tuple\"\n },\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"stake\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"unstakeDelaySec\",\n type: \"uint256\"\n },\n ],\n internalType: \"struct IStakeManager.StakeInfo\",\n name: \"paymasterInfo\",\n type: \"tuple\"\n },\n ],\n name: \"ValidationResult\",\n type: \"error\"\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"preOpGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"prefund\",\n type: \"uint256\"\n },\n {\n internalType: \"bool\",\n name: \"sigFailed\",\n type: \"bool\"\n },\n {\n internalType: \"uint48\",\n name: \"validAfter\",\n type: \"uint48\"\n },\n {\n internalType: \"uint48\",\n name: \"validUntil\",\n type: \"uint48\"\n },\n {\n internalType: \"bytes\",\n name: \"paymasterContext\",\n type: \"bytes\"\n },\n ],\n internalType: \"struct IEntryPoint.ReturnInfo\",\n name: \"returnInfo\",\n type: \"tuple\"\n },\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"stake\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"unstakeDelaySec\",\n type: \"uint256\"\n },\n ],\n internalType: \"struct IStakeManager.StakeInfo\",\n name: \"senderInfo\",\n type: \"tuple\"\n },\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"stake\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"unstakeDelaySec\",\n type: \"uint256\"\n },\n ],\n internalType: \"struct IStakeManager.StakeInfo\",\n name: \"factoryInfo\",\n type: \"tuple\"\n },\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"stake\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"unstakeDelaySec\",\n type: \"uint256\"\n },\n ],\n internalType: \"struct IStakeManager.StakeInfo\",\n name: \"paymasterInfo\",\n type: \"tuple\"\n },\n {\n components: [\n {\n internalType: \"address\",\n name: \"aggregator\",\n type: \"address\"\n },\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"stake\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"unstakeDelaySec\",\n type: \"uint256\"\n },\n ],\n internalType: \"struct IStakeManager.StakeInfo\",\n name: \"stakeInfo\",\n type: \"tuple\"\n },\n ],\n internalType: \"struct IEntryPoint.AggregatorStakeInfo\",\n name: \"aggregatorInfo\",\n type: \"tuple\"\n },\n ],\n name: \"ValidationResultWithAggregation\",\n type: \"error\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"bytes32\",\n name: \"userOpHash\",\n type: \"bytes32\"\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"sender\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"factory\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"paymaster\",\n type: \"address\"\n },\n ],\n name: \"AccountDeployed\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"account\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"totalDeposit\",\n type: \"uint256\"\n },\n ],\n name: \"Deposited\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"aggregator\",\n type: \"address\"\n },\n ],\n name: \"SignatureAggregatorChanged\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"account\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"totalStaked\",\n type: \"uint256\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"unstakeDelaySec\",\n type: \"uint256\"\n },\n ],\n name: \"StakeLocked\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"account\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"withdrawTime\",\n type: \"uint256\"\n },\n ],\n name: \"StakeUnlocked\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"account\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"withdrawAddress\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n },\n ],\n name: \"StakeWithdrawn\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"bytes32\",\n name: \"userOpHash\",\n type: \"bytes32\"\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"sender\",\n type: \"address\"\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"paymaster\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n indexed: false,\n internalType: \"bool\",\n name: \"success\",\n type: \"bool\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"actualGasCost\",\n type: \"uint256\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"actualGasUsed\",\n type: \"uint256\"\n },\n ],\n name: \"UserOperationEvent\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"bytes32\",\n name: \"userOpHash\",\n type: \"bytes32\"\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"sender\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n indexed: false,\n internalType: \"bytes\",\n name: \"revertReason\",\n type: \"bytes\"\n },\n ],\n name: \"UserOperationRevertReason\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"account\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"withdrawAddress\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n },\n ],\n name: \"Withdrawn\",\n type: \"event\"\n },\n {\n inputs: [],\n name: \"SIG_VALIDATION_FAILED\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"bytes\",\n name: \"initCode\",\n type: \"bytes\"\n },\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\"\n },\n {\n internalType: \"bytes\",\n name: \"paymasterAndData\",\n type: \"bytes\"\n },\n ],\n name: \"_validateSenderAndPaymaster\",\n outputs: [],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"uint32\",\n name: \"unstakeDelaySec\",\n type: \"uint32\"\n },\n ],\n name: \"addStake\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"account\",\n type: \"address\"\n },\n ],\n name: \"balanceOf\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"account\",\n type: \"address\"\n },\n ],\n name: \"depositTo\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\"\n },\n ],\n name: \"deposits\",\n outputs: [\n {\n internalType: \"uint112\",\n name: \"deposit\",\n type: \"uint112\"\n },\n {\n internalType: \"bool\",\n name: \"staked\",\n type: \"bool\"\n },\n {\n internalType: \"uint112\",\n name: \"stake\",\n type: \"uint112\"\n },\n {\n internalType: \"uint32\",\n name: \"unstakeDelaySec\",\n type: \"uint32\"\n },\n {\n internalType: \"uint48\",\n name: \"withdrawTime\",\n type: \"uint48\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"account\",\n type: \"address\"\n },\n ],\n name: \"getDepositInfo\",\n outputs: [\n {\n components: [\n {\n internalType: \"uint112\",\n name: \"deposit\",\n type: \"uint112\"\n },\n {\n internalType: \"bool\",\n name: \"staked\",\n type: \"bool\"\n },\n {\n internalType: \"uint112\",\n name: \"stake\",\n type: \"uint112\"\n },\n {\n internalType: \"uint32\",\n name: \"unstakeDelaySec\",\n type: \"uint32\"\n },\n {\n internalType: \"uint48\",\n name: \"withdrawTime\",\n type: \"uint48\"\n },\n ],\n internalType: \"struct IStakeManager.DepositInfo\",\n name: \"info\",\n type: \"tuple\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"bytes\",\n name: \"initCode\",\n type: \"bytes\"\n },\n ],\n name: \"getSenderAddress\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"initCode\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"callData\",\n type: \"bytes\"\n },\n {\n internalType: \"uint256\",\n name: \"callGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"verificationGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"preVerificationGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxPriorityFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"paymasterAndData\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"signature\",\n type: \"bytes\"\n },\n ],\n internalType: \"struct UserOperation\",\n name: \"userOp\",\n type: \"tuple\"\n },\n ],\n name: \"getUserOpHash\",\n outputs: [\n {\n internalType: \"bytes32\",\n name: \"\",\n type: \"bytes32\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n components: [\n {\n components: [\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"initCode\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"callData\",\n type: \"bytes\"\n },\n {\n internalType: \"uint256\",\n name: \"callGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"verificationGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"preVerificationGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxPriorityFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"paymasterAndData\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"signature\",\n type: \"bytes\"\n },\n ],\n internalType: \"struct UserOperation[]\",\n name: \"userOps\",\n type: \"tuple[]\"\n },\n {\n internalType: \"contract IAggregator\",\n name: \"aggregator\",\n type: \"address\"\n },\n {\n internalType: \"bytes\",\n name: \"signature\",\n type: \"bytes\"\n },\n ],\n internalType: \"struct IEntryPoint.UserOpsPerAggregator[]\",\n name: \"opsPerAggregator\",\n type: \"tuple[]\"\n },\n {\n internalType: \"address payable\",\n name: \"beneficiary\",\n type: \"address\"\n },\n ],\n name: \"handleAggregatedOps\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"initCode\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"callData\",\n type: \"bytes\"\n },\n {\n internalType: \"uint256\",\n name: \"callGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"verificationGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"preVerificationGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxPriorityFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"paymasterAndData\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"signature\",\n type: \"bytes\"\n },\n ],\n internalType: \"struct UserOperation[]\",\n name: \"ops\",\n type: \"tuple[]\"\n },\n {\n internalType: \"address payable\",\n name: \"beneficiary\",\n type: \"address\"\n },\n ],\n name: \"handleOps\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"bytes\",\n name: \"callData\",\n type: \"bytes\"\n },\n {\n components: [\n {\n components: [\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"callGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"verificationGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"preVerificationGas\",\n type: \"uint256\"\n },\n {\n internalType: \"address\",\n name: \"paymaster\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"maxFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxPriorityFeePerGas\",\n type: \"uint256\"\n },\n ],\n internalType: \"struct EntryPoint.MemoryUserOp\",\n name: \"mUserOp\",\n type: \"tuple\"\n },\n {\n internalType: \"bytes32\",\n name: \"userOpHash\",\n type: \"bytes32\"\n },\n {\n internalType: \"uint256\",\n name: \"prefund\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"contextOffset\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"preOpGas\",\n type: \"uint256\"\n },\n ],\n internalType: \"struct EntryPoint.UserOpInfo\",\n name: \"opInfo\",\n type: \"tuple\"\n },\n {\n internalType: \"bytes\",\n name: \"context\",\n type: \"bytes\"\n },\n ],\n name: \"innerHandleOp\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"actualGasCost\",\n type: \"uint256\"\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"initCode\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"callData\",\n type: \"bytes\"\n },\n {\n internalType: \"uint256\",\n name: \"callGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"verificationGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"preVerificationGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxPriorityFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"paymasterAndData\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"signature\",\n type: \"bytes\"\n },\n ],\n internalType: \"struct UserOperation\",\n name: \"op\",\n type: \"tuple\"\n },\n {\n internalType: \"address\",\n name: \"target\",\n type: \"address\"\n },\n {\n internalType: \"bytes\",\n name: \"targetCallData\",\n type: \"bytes\"\n },\n ],\n name: \"simulateHandleOp\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"initCode\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"callData\",\n type: \"bytes\"\n },\n {\n internalType: \"uint256\",\n name: \"callGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"verificationGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"preVerificationGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxPriorityFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"paymasterAndData\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"signature\",\n type: \"bytes\"\n },\n ],\n internalType: \"struct UserOperation\",\n name: \"userOp\",\n type: \"tuple\"\n },\n ],\n name: \"simulateValidation\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"unlockStake\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address payable\",\n name: \"withdrawAddress\",\n type: \"address\"\n },\n ],\n name: \"withdrawStake\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address payable\",\n name: \"withdrawAddress\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"withdrawAmount\",\n type: \"uint256\"\n },\n ],\n name: \"withdrawTo\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n stateMutability: \"payable\",\n type: \"receive\"\n },\n];\nvar _bytecode = \"0x60a08060405234620000845761022c8181016001600160401b038111838210176200006e57829162005773833903906000f0801562000062576080526040516156e990816200008a8239608051818181611321015281816139700152613c910152f35b6040513d6000823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b610021614f9c565b005b60003560e01c80630396cb60146101775780631d7327561461016e5780631fad948c14610165578063205c28781461015c5780634b1d7cf5146101535780635287ce121461014a57806370a08231146101415780638f41ec5a14610138578063957122ab1461012f5780639b249f6914610126578063a61935311461011d578063b760faf914610114578063bb9fe6bf1461010b578063c23a5cea14610102578063d6383f94146100f9578063ee219423146100f05763fc7e286d0361000e576100eb611b0f565b61000e565b506100eb6118f7565b506100eb61178f565b506100eb6115f6565b506100eb611478565b506100eb611439565b506100eb611418565b506100eb611279565b506100eb6110a6565b506100eb61106b565b506100eb610fe6565b506100eb610e96565b506100eb610b6b565b506100eb6109cc565b506100eb61071c565b506100eb610549565b5060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031d5760043563ffffffff811680820361031d576103187fa5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c01916102356102053373ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b91610211811515615102565b61022e610225600185015463ffffffff1690565b63ffffffff1690565b1115615167565b54926102fa6dffffffffffffffffffffffffffff946102b861025c34888460781c166120aa565b966102688815156151cc565b61027481891115615231565b61029881610280610409565b941684906dffffffffffffffffffffffffffff169052565b6001602084015287166dffffffffffffffffffffffffffff166040830152565b63ffffffff83166060820152600060808201526102f53373ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b615296565b6040805194855263ffffffff90911660208501523393918291820190565b0390a2005b600080fd5b507f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761036e57604052565b610376610322565b604052565b610100810190811067ffffffffffffffff82111761036e57604052565b67ffffffffffffffff811161036e57604052565b6060810190811067ffffffffffffffff82111761036e57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761036e57604052565b6040519061041682610352565b565b6040519060c0820182811067ffffffffffffffff82111761036e57604052565b604051906040820182811067ffffffffffffffff82111761036e57604052565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f60209267ffffffffffffffff8111610494575b01160190565b61049c610322565b61048e565b9291926104ad82610458565b916104bb60405193846103c8565b82948184528183011161031d578281602093846000960137010152565b73ffffffffffffffffffffffffffffffffffffffff81160361031d57565b60243590610416826104d8565b60c43590610416826104d8565b3590610416826104d8565b9181601f8401121561031d5782359167ffffffffffffffff831161031d576020838186019501011161031d57565b503461031d576101c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031d5767ffffffffffffffff60043581811161031d573660238201121561031d576105ac9036906024816004013591016104a1565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc3601610180811261031d57610100604051916105e983610352565b1261031d576040516105fa8161037b565b6106026104f6565b815260443560208201526064356040820152608435606082015260a435608082015261062c610503565b60a082015260e43560c08201526101043560e082015281526101243560208201526101443560408201526101643560608201526101843560808201526101a43591821161031d576106a09261068861069093369060040161051b565b929091612786565b6040519081529081906020820190565b0390f35b9060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc83011261031d5760043567ffffffffffffffff9283821161031d578060238301121561031d57816004013593841161031d5760248460051b8301011161031d576024019190602435610719816104d8565b90565b503461031d5761072b366106a4565b610736829392611c6f565b60005b848110610788575060009283915b858310610758576100218585611dac565b90919360019061077e61076c878987611d2e565b6107768886611d0c565b519088612214565b0194019190610747565b6107b36107ac61079a83859795611d0c565b516107a6848987611d2e565b84612fc4565b9190612d9b565b73ffffffffffffffffffffffffffffffffffffffff9291831661095e576108f0576107dd90612d9b565b9116610882576107f257600101929092610739565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152602160448201527f41413332207061796d61737465722065787069726564206f72206e6f7420647560648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a490fd5b0390fd5b61087e826040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601460408201527f41413334207369676e6174757265206572726f7200000000000000000000000060608201520190565b61087e836040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601760408201527f414132322065787069726564206f72206e6f742064756500000000000000000060608201520190565b61087e846040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601460408201527f41413234207369676e6174757265206572726f7200000000000000000000000060608201520190565b503461031d5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031d57600435610a08816104d8565b6024359060009133835282602052604083206dffffffffffffffffffffffffffff81541692838311610b0d57848373ffffffffffffffffffffffffffffffffffffffff829593610ab08496610a77610a648798610b0a9c612095565b6dffffffffffffffffffffffffffff1690565b6dffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffff0000000000000000000000000000825416179055565b6040805173ffffffffffffffffffffffffffffffffffffffff831681526020810185905233917fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb91a2165af1610b04611d7c565b5061560d565b80f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f576974686472617720616d6f756e7420746f6f206c61726765000000000000006044820152fd5b503461031d57610b7a366106a4565b6000805b838210610d3c57610b8f9150611c6f565b6000805b848110610ca257505060008093815b818110610bd957610021868660007f575ff3acadd5ab348fe1855e217e0f3678f8d767d7494c9f9fefbee2e17cca4d8180a2611dac565b610c3d610be782848a6123a0565b610c12610bf9610bf960208401612442565b73ffffffffffffffffffffffffffffffffffffffff1690565b7f575ff3acadd5ab348fe1855e217e0f3678f8d767d7494c9f9fefbee2e17cca4d600080a2806123ee565b906000915b808310610c5a57505050610c5590612366565b610ba2565b90919497610c95610c8f610c9b92610c898c8b610c8282610c7c8e8b8d611d2e565b92611d0c565b5191612214565b906120aa565b99612366565b95612366565b9190610c42565b610cad8186886123a0565b6020610cc5610cbc83806123ee565b92909301612442565b9173ffffffffffffffffffffffffffffffffffffffff60009316905b828410610cfa5750505050610cf590612366565b610b93565b90919294610c9581610d2f85610d28610d16610d34968d611d0c565b51610d228c8b8a611d2e565b85612fc4565b908b612d53565b612366565b929190610ce1565b610d478285876123a0565b90610d5282806123ee565b92610d62610bf960208301612442565b9173ffffffffffffffffffffffffffffffffffffffff8316610d87600182141561244c565b610da8575b505050610da291610d9c916120aa565b91612366565b90610b7e565b909592610dc16040999693999895989788810190611e9d565b92908a3b1561031d5789938b918a5193849283927fe3563a4f00000000000000000000000000000000000000000000000000000000845260049e8f850193610e08946125e6565b03815a93600094fa9081610e7d575b50610e675786517f86a9f75000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a16818a0190815281906020010390fd5b9497509295509093509181610d9c610da2610d8c565b80610e8a610e9092610398565b80611060565b38610e17565b503461031d5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031d576106a073ffffffffffffffffffffffffffffffffffffffff600435610eea816104d8565b608060409283928351610efc81610352565b600093818580935282602082015282878201528260608201520152168152806020522090610f8b65ffffffffffff6001835194610f3886610352565b80546dffffffffffffffffffffffffffff8082168852607082901c60ff161515602089015260789190911c1685870152015463ffffffff8116606086015260201c16608084019065ffffffffffff169052565b5191829182919091608065ffffffffffff8160a08401956dffffffffffffffffffffffffffff808251168652602082015115156020870152604082015116604086015263ffffffff6060820151166060860152015116910152565b503461031d5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031d5773ffffffffffffffffffffffffffffffffffffffff600435611037816104d8565b16600052600060205260206dffffffffffffffffffffffffffff60406000205416604051908152f35b600091031261031d57565b503461031d5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031d57602060405160018152f35b503461031d5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031d57600467ffffffffffffffff813581811161031d576110f7903690840161051b565b905060243591611106836104d8565b60443590811161031d5761111d903690850161051b565b92909115908161126f575b50611208576014821015611178575b61087e836040519182917f08c379a0000000000000000000000000000000000000000000000000000000008352820160409060208152600060208201520190565b6111886111949261118e926129ab565b906129b9565b60601c90565b3b156111a1573880611137565b61087e906040519182917f08c379a0000000000000000000000000000000000000000000000000000000008352820160609060208152601b60208201527f41413330207061796d6173746572206e6f74206465706c6f796564000000000060408201520190565b61087e836040519182917f08c379a0000000000000000000000000000000000000000000000000000000008352820160609060208152601960208201527f41413230206163636f756e74206e6f74206465706c6f7965640000000000000060408201520190565b90503b1538611128565b503461031d5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031d5760043567ffffffffffffffff811161031d576112cb602491369060040161051b565b906113016040519283927f570e1a3600000000000000000000000000000000000000000000000000000000845260048401612b4f565b0360208273ffffffffffffffffffffffffffffffffffffffff92816000857f0000000000000000000000000000000000000000000000000000000000000000165af19182156113b3575b600092611383575b50604051917f6ca7b806000000000000000000000000000000000000000000000000000000008352166004820152fd5b6113a591925060203d81116113ac575b61139d81836103c8565b810190612b3a565b9038611353565b503d611393565b6113bb612058565b61134b565b908161016091031261031d5790565b60207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82011261031d576004359067ffffffffffffffff821161031d57610719916004016113c0565b503461031d57602061143161142c366113cf565b6128e1565b604051908152f35b5060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031d57610021600435611473816104d8565b615096565b503461031d576000807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126115f3573381528060205260408120600181019063ffffffff825416908115611595576115326114f761155a936114e96114e4855460ff9060701c1690565b6153fa565b65ffffffffffff421661545f565b84547fffffffffffffffffffffffffffffffffffffffffffff000000000000ffffffff16602082901b69ffffffffffff000000001617909455565b7fffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff8154169055565b60405165ffffffffffff91909116815233907ffa9b3c14cc825c412c9ed81b3ba365a5b459439403f18829e572ed53a4180f0a90602090a280f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6e6f74207374616b6564000000000000000000000000000000000000000000006044820152fd5b80fd5b503461031d5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031d57600435611632816104d8565b610b0a73ffffffffffffffffffffffffffffffffffffffff6116743373ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b9261172c611697610a6486546dffffffffffffffffffffffffffff9060781c1690565b946116a3861515615479565b611704600182016116dc65ffffffffffff6116c8835465ffffffffffff9060201c1690565b166116d48115156154de565b421015615543565b80547fffffffffffffffffffffffffffffffffffffffffffff00000000000000000000169055565b7fffffff0000000000000000000000000000ffffffffffffffffffffffffffffff8154169055565b6040805173ffffffffffffffffffffffffffffffffffffffff831681526020810186905233917fb7c918e0e249f999e965cafeb6c664271b3f4317d296461500e71da39f0cbda391a2600080809581948294165af1611789611d7c565b506155a8565b503461031d5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031d5767ffffffffffffffff60043581811161031d576117e09036906004016113c0565b602435916117ed836104d8565b60443590811161031d5761180861087e91369060040161051b565b611810611bec565b61181985612c4e565b61182c6118268287612e5c565b90614e95565b9461183c826000924384526120b7565b96438252819360609573ffffffffffffffffffffffffffffffffffffffff83166118c3575b5050505060800151936118906040611882602084015165ffffffffffff1690565b92015165ffffffffffff1690565b906040519687967f8b7ac980000000000000000000000000000000000000000000000000000000008852600488016126b6565b839550839496506118dd60409492939451809481936126a8565b03925af19060806118ec611d7c565b929190388080611861565b503461031d57611906366113cf565b61190e611bec565b61191782612c4e565b6119218183612e5c565b825160a0015191939161194e9073ffffffffffffffffffffffffffffffffffffffff16614f47565b614f47565b90611972611949855173ffffffffffffffffffffffffffffffffffffffff90511690565b9461197b612973565b506119aa61198e60409586810190611e9d565b90600060148310611b0757506111886119499261118e926129ab565b916119b491614e95565b805173ffffffffffffffffffffffffffffffffffffffff169073ffffffffffffffffffffffffffffffffffffffff821660018114916080880151978781015191886020820151611a099065ffffffffffff1690565b91015165ffffffffffff16916060015192611a22610418565b9a8b5260208b0152841515898b015265ffffffffffff1660608a015265ffffffffffff16608089015260a088015215159081611afe575b50611a93575061087e92519485947fe0cff05f00000000000000000000000000000000000000000000000000000000865260048601612ae0565b919061087e93611aa284614f47565b611ac9611aad610438565b73ffffffffffffffffffffffffffffffffffffffff9096168652565b6020850152519586957ffaecb4e400000000000000000000000000000000000000000000000000000000875260048701612a4e565b90501538611a59565b915050614f47565b503461031d5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031d5773ffffffffffffffffffffffffffffffffffffffff600435611b60816104d8565b16600052600060205260a0604060002065ffffffffffff60018254920154604051926dffffffffffffffffffffffffffff90818116855260ff8160701c161515602086015260781c16604084015263ffffffff8116606084015260201c166080820152f35b60209067ffffffffffffffff8111611bdf575b60051b0190565b611be7610322565b611bd8565b60405190611bf982610352565b604051608083610100830167ffffffffffffffff811184821017611c62575b60405260009283815283602082015283604082015283606082015283838201528360a08201528360c08201528360e082015281528260208201528260408201528260608201520152565b611c6a610322565b611c18565b90611c7982611bc5565b611c8660405191826103c8565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0611cb48294611bc5565b019060005b828110611cc557505050565b602090611cd0611bec565b82828501015201611cb9565b507f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020918151811015611d21575b60051b010190565b611d29611cdc565b611d19565b9190811015611d6f575b60051b810135907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffea18136030182121561031d570190565b611d77611cdc565b611d38565b3d15611da7573d90611d8d82610458565b91611d9b60405193846103c8565b82523d6000602084013e565b606090565b73ffffffffffffffffffffffffffffffffffffffff168015611e3f57600080809381935af1611dd9611d7c565b5015611de157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f41413931206661696c65642073656e6420746f2062656e6566696369617279006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4141393020696e76616c69642062656e656669636961727900000000000000006044820152fd5b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18136030182121561031d570180359067ffffffffffffffff821161031d5760200191813603831361031d57565b9081602091031261031d575190565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b60005b838110611f4f5750506000910152565b8181015183820152602001611f3f565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602093611f9b81518092818752878088019101611f3c565b0116010190565b90611fbc60809161071996946101c0808652850191611efd565b9360e0815173ffffffffffffffffffffffffffffffffffffffff80825116602087015260208201516040870152604082015160608701526060820151858701528482015160a087015260a08201511660c086015260c081015182860152015161010084015260208101516101208401526040810151610140840152606081015161016084015201516101808201526101a0818403910152611f5f565b506040513d6000823e3d90fd5b507f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b919082039182116120a257565b610416612065565b919082018092116120a257565b905a918160206120d06060830151936060810190611e9d565b906121098560405195869485947f1d73275600000000000000000000000000000000000000000000000000000000865260048601611fa2565b03816000305af1600091816121e4575b506121dd575060206000803e7fdeaddead00000000000000000000000000000000000000000000000000000000600051146121705761216a61215f610719945a90612095565b6080840151906120aa565b916145d7565b6040517f220266b60000000000000000000000000000000000000000000000000000000081528061087e600482016080906000815260406020820152600f60408201527f41413935206f7574206f6620676173000000000000000000000000000000000060608201520190565b9250505090565b61220691925060203d811161220d575b6121fe81836103c8565b810190611eee565b9038612119565b503d6121f4565b909291925a938060206122306060830151946060810190611e9d565b906122698660405195869485947f1d73275600000000000000000000000000000000000000000000000000000000865260048601611fa2565b03816000305af160009181612346575b5061233f575060206000803e7fdeaddead00000000000000000000000000000000000000000000000000000000600051146122d1576122cb6122c061071995965a90612095565b6080830151906120aa565b926148ba565b61087e836040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152600f60408201527f41413935206f7574206f6620676173000000000000000000000000000000000060608201520190565b9450505050565b61235f91925060203d811161220d576121fe81836103c8565b9038612279565b6001907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114612394570190565b61239c612065565b0190565b91908110156123e1575b60051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa18136030182121561031d570190565b6123e9611cdc565b6123aa565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18136030182121561031d570180359067ffffffffffffffff821161031d57602001918160051b3603831361031d57565b35610719816104d8565b1561245357565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4141393620696e76616c69642061676772656761746f720000000000000000006044820152fd5b90357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18236030181121561031d57016020813591019167ffffffffffffffff821161031d57813603831361031d57565b6107199161252c8161251284610510565b73ffffffffffffffffffffffffffffffffffffffff169052565b602082013560208201526125c761257861255d61254c60408601866124b1565b610160806040880152860191611efd565b61256a60608601866124b1565b908583036060870152611efd565b6080840135608084015260a084013560a084015260c084013560c084015260e084013560e084015261010080850135908401526101206125ba818601866124b1565b9185840390860152611efd565b916125d861014091828101906124b1565b929091818503910152611efd565b949391929083604087016040885252606086019360608160051b8801019482600090815b8483106126295750505050505084602061071995968503910152611efd565b9091929394977fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08b820301855288357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffea1843603018112156126a457600191846126929201612501565b9860209081019695019301919061260a565b8280fd5b908092918237016000815290565b92909361071996959260c0958552602085015265ffffffffffff8092166040850152166060830152151560808201528160a08201520190611f5f565b156126f957565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4141393220696e7465726e616c2063616c6c206f6e6c790000000000000000006044820152fd5b90604061071992600081528160208201520190611f5f565b604090610719939281528160208201520190611f5f565b909291925a936127973033146126f2565b8151946040860151955a6113886060830151890101116128b7576107199660009580516127de575b505050906127d8915a90036080840151019436916104a1565b91614b22565b61280d9161280991612804855173ffffffffffffffffffffffffffffffffffffffff1690565b615672565b1590565b612819575b80806127bf565b6127d892919450612828615684565b90815161283c575b50506001939091612812565b7f1c4fada7374c0a9ee8841fc38afe82932dc0f8e69012e927f061a8bae611a20173ffffffffffffffffffffffffffffffffffffffff6020870151926128ad602061289b835173ffffffffffffffffffffffffffffffffffffffff1690565b9201519560405193849316968361276f565b0390a33880612830565b7fdeaddead0000000000000000000000000000000000000000000000000000000060005260206000fd5b806128f0610140820182611e9d565b50037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081016040519182016040528082526020820192833751902060405160208101918252306040820152466060820152606081526080810181811067ffffffffffffffff821117612966575b60405251902090565b61296e610322565b61295d565b604051906040820182811067ffffffffffffffff82111761299e575b60405260006020838281520152565b6129a6610322565b61298f565b9060141161031d5790601490565b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000090358181169392601481106129ee57505050565b60140360031b82901b16169150565b9060c060a061071993805184526020810151602085015260408101511515604085015265ffffffffffff80606083015116606086015260808201511660808501520151918160a08201520190611f5f565b9294612aaf61041695612a9d610100959998612a8b612a77602097610140808c528b01906129fd565b9b878a019060208091805184520151910152565b80516060890152602001516080880152565b805160a08701526020015160c0860152565b73ffffffffffffffffffffffffffffffffffffffff81511660e0850152015191019060208091805184520151910152565b612b2961041694612b17612b0260a0959998969960e0865260e08601906129fd565b98602085019060208091805184520151910152565b80516060840152602001516080830152565b019060208091805184520151910152565b9081602091031261031d5751610719816104d8565b916020610719938181520191611efd565b90612b8f73ffffffffffffffffffffffffffffffffffffffff9161071997959694606085526060850191611efd565b941660208201526040818503910152611efd565b60009060033d11612bb057565b905060046000803e60005160e01c90565b600060443d10610719576040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc91823d016004833e815167ffffffffffffffff918282113d602484011117612c3d57818401948551938411612c45573d85010160208487010111612c3d5750610719929101602001906103c8565b949350505050565b50949350505050565b612c5b6040820182611e9d565b612c73612c6784612442565b93610120810190611e9d565b9290303b1561031d57600093612cb79160405196879586957f957122ab00000000000000000000000000000000000000000000000000000000875260048701612b60565b0381305afa9081612d40575b50610416576001612cd2612ba3565b6308c379a014612ceb575b612ce357565b610416612058565b612cf3612bc1565b80612cff575b50612cdd565b80516000925015612cf95761087e906040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301612757565b80610e8a612d4d92610398565b38612cc3565b929190612d5f90612d9b565b909273ffffffffffffffffffffffffffffffffffffffff8080951691160361095e576108f057612d8e90612d9b565b9116610882576107f25750565b8015612dee57612daa90614e3a565b73ffffffffffffffffffffffffffffffffffffffff65ffffffffffff806040840151164211908115612dde575b5091511691565b9050602083015116421038612dd7565b50600090600090565b15612dfe57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f41413934206761732076616c756573206f766572666c6f7700000000000000006044820152fd5b916000915a93815190612e6f828261318e565b612e78816128e1565b6020840152612eb66effffffffffffffffffffffffffffff60808401516060850151176040850151176101008401359060e085013517171115612df7565b612ebf82613250565b612eca818584613311565b9790612ed543600052565b73ffffffffffffffffffffffffffffffffffffffff612f0d60a0606097015173ffffffffffffffffffffffffffffffffffffffff1690565b16612faa575b505a810360a084013510612f3d5760809360c092604087015260608601525a900391013501910152565b6040517f220266b60000000000000000000000000000000000000000000000000000000081528061087e600482016080906000815260406020820152601e60408201527f41413430206f76657220766572696669636174696f6e4761734c696d6974000060608201520190565b90935081612fbb9297508584614037565b95909238612f13565b9290916000925a8251612fd7818461318e565b612fe0836128e1565b602085015261301e6effffffffffffffffffffffffffffff60808301516060840151176040840151176101008601359060e087013517171115612df7565b61302781613250565b6130338186868b61367d565b989061303e43600052565b73ffffffffffffffffffffffffffffffffffffffff61307660a0606096015173ffffffffffffffffffffffffffffffffffffffff1690565b1661310e575b505a840360a0860135106130a85750604085015260608401526080919060c0905a900391013501910152565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152601e60448201527f41413430206f76657220766572696669636174696f6e4761734c696d697400006064820152608490fd5b909250816131209298508686856142ca565b9690913861307c565b1561313057565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4141393320696e76616c6964207061796d6173746572416e64446174610000006044820152fd5b613200906131b861319e82612442565b73ffffffffffffffffffffffffffffffffffffffff168452565b602081013560208401526080810135604084015260a0810135606084015260c0810135608084015260e081013560c084015261010081013560e0840152610120810190611e9d565b9081156132455761322a61118e6111888460a094613225601461041699981015613129565b6129ab565b73ffffffffffffffffffffffffffffffffffffffff16910152565b505060a06000910152565b60a081015173ffffffffffffffffffffffffffffffffffffffff16156132925760c060035b60ff60408401519116606084015102016080830151019101510290565b60c06001613275565b6132b360409295949395606083526060830190612501565b9460208201520152565b90610416602f60405180947f414132332072657665727465643a20000000000000000000000000000000000060208301526133018151809260208686019101611f3c565b810103600f8101855201836103c8565b916000926000925a936133df6020835193613340855173ffffffffffffffffffffffffffffffffffffffff1690565b956133586133516040830183611e9d565b90846138e8565b60a086015173ffffffffffffffffffffffffffffffffffffffff169061337d43600052565b85809373ffffffffffffffffffffffffffffffffffffffff809416159889613615575b60600151908601516040517f3a871cdd00000000000000000000000000000000000000000000000000000000815297889687958693906004850161329b565b03938a1690f18291816135f5575b506135ec57506001906133fe612ba3565b6308c379a014613598575b5061352b575b61341c575b50505a900391565b6134469073ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b613461610a6482546dffffffffffffffffffffffffffff1690565b8083116134be576134b7926dffffffffffffffffffffffffffff9103166dffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffff0000000000000000000000000000825416179055565b3880613414565b6040517f220266b60000000000000000000000000000000000000000000000000000000081528061087e600482016080906000815260406020820152601760408201527f41413231206469646e2774207061792070726566756e6400000000000000000060608201520190565b6040517f220266b60000000000000000000000000000000000000000000000000000000081528061087e600482016080906000815260406020820152601660408201527f4141323320726576657274656420286f72204f4f47290000000000000000000060608201520190565b6135a0612bc1565b90816135ac5750613409565b61087e916135ba91506132bd565b6040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301612757565b955061340f9050565b61360e91925060203d811161220d576121fe81836103c8565b90386133ed565b945061365b610a646136478c73ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b546dffffffffffffffffffffffffffff1690565b8b8111156136725750856060835b969150506133a0565b606087918d03613669565b90926000936000935a946136c660208351936136ad855173ffffffffffffffffffffffffffffffffffffffff1690565b956133586136be6040830183611e9d565b90848c613c06565b03938a1690f18291816138c8575b506138bf57506001906136e5612ba3565b6308c379a014613869575b506137fb575b613704575b5050505a900391565b61372e9073ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b9161374a610a6484546dffffffffffffffffffffffffffff1690565b90818311613795575082547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000169190036dffffffffffffffffffffffffffff161790553880806136fb565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152601760448201527f41413231206469646e2774207061792070726566756e640000000000000000006064820152608490fd5b61087e846040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601660408201527f4141323320726576657274656420286f72204f4f47290000000000000000000060608201520190565b613871612bc1565b908161387d57506136f0565b869161388991506132bd565b9061087e6040519283927f220266b60000000000000000000000000000000000000000000000000000000084526004840161276f565b96506136f69050565b6138e191925060203d811161220d576121fe81836103c8565b90386136d4565b9091806138f457505050565b81515173ffffffffffffffffffffffffffffffffffffffff1692833b613b9957606083510151604051907f570e1a3600000000000000000000000000000000000000000000000000000000825260208280613953878760048401612b4f565b0381600073ffffffffffffffffffffffffffffffffffffffff95867f00000000000000000000000000000000000000000000000000000000000000001690f1918215613b8c575b600092613b6c575b50808216958615613aff5716809503613a92573b15613a255761118e6111887fd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d936139ec936129ab565b602083810151935160a001516040805173ffffffffffffffffffffffffffffffffffffffff9485168152939091169183019190915290a3565b6040517f220266b60000000000000000000000000000000000000000000000000000000081528061087e600482016080906000815260406020820152602060408201527f4141313520696e6974436f6465206d757374206372656174652073656e64657260608201520190565b6040517f220266b60000000000000000000000000000000000000000000000000000000081528061087e600482016080906000815260406020820152602060408201527f4141313420696e6974436f6465206d7573742072657475726e2073656e64657260608201520190565b6040517f220266b60000000000000000000000000000000000000000000000000000000081528061087e600482016080906000815260406020820152601b60408201527f4141313320696e6974436f6465206661696c6564206f72204f4f47000000000060608201520190565b613b8591925060203d81116113ac5761139d81836103c8565b90386139a2565b613b94612058565b61399a565b6040517f220266b60000000000000000000000000000000000000000000000000000000081528061087e600482016080906000815260406020820152601f60408201527f414131302073656e64657220616c726561647920636f6e73747275637465640060608201520190565b92909181613c15575b50505050565b82515173ffffffffffffffffffffffffffffffffffffffff1693843b613ebd57606084510151604051907f570e1a3600000000000000000000000000000000000000000000000000000000825260208280613c74888860048401612b4f565b0381600073ffffffffffffffffffffffffffffffffffffffff95867f00000000000000000000000000000000000000000000000000000000000000001690f1918215613eb0575b600092613e90575b50808216968715613e225716809603613db4573b15613d4e575061118e6111887fd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d93613d0e936129ab565b602083810151935160a001516040805173ffffffffffffffffffffffffffffffffffffffff9485168152939091169183019190915290a338808080613c0f565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152602060448201527f4141313520696e6974436f6465206d757374206372656174652073656e6465726064820152608490fd5b61087e826040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152602060408201527f4141313420696e6974436f6465206d7573742072657475726e2073656e64657260608201520190565b61087e846040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601b60408201527f4141313320696e6974436f6465206661696c6564206f72204f4f47000000000060608201520190565b613ea991925060203d81116113ac5761139d81836103c8565b9038613cc3565b613eb8612058565b613cbb565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152601f60448201527f414131302073656e64657220616c726561647920636f6e7374727563746564006064820152608490fd5b15613f2a57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4141343120746f6f206c6974746c6520766572696669636174696f6e476173006044820152fd5b919060408382031261031d57825167ffffffffffffffff811161031d5783019080601f8301121561031d57815191613fbf83610458565b91613fcd60405193846103c8565b8383526020848301011161031d57602092613fed91848085019101611f3c565b92015190565b90610416602f60405180947f414133332072657665727465643a20000000000000000000000000000000000060208301526133018151809260208686019101611f3c565b93919260609460009460009380519261407660a08a8601519561405b888811613f23565b015173ffffffffffffffffffffffffffffffffffffffff1690565b916140a18373ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b946140bd610a6487546dffffffffffffffffffffffffffff1690565b9685881061425d5773ffffffffffffffffffffffffffffffffffffffff60208a98946141338a966dffffffffffffffffffffffffffff8b61416c9e03166dffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffff0000000000000000000000000000825416179055565b015194604051998a98899788937ff465c77e0000000000000000000000000000000000000000000000000000000085526004850161329b565b0395169103f1908183918493614237575b5061423057505060019061418f612ba3565b6308c379a01461420e575b506141a157565b6040517f220266b60000000000000000000000000000000000000000000000000000000081528061087e600482016080906000815260406020820152601660408201527f4141333320726576657274656420286f72204f4f47290000000000000000000060608201520190565b614216612bc1565b9081614222575061419a565b61087e916135ba9150613ff3565b9450925050565b90925061425691503d8085833e61424e81836103c8565b810190613f88565b913861417d565b6040517f220266b60000000000000000000000000000000000000000000000000000000081528061087e600482016080906000815260406020820152601e60408201527f41413331207061796d6173746572206465706f73697420746f6f206c6f77000060608201520190565b9194929390936060956000956000938251906142f160a08b8401519361405b848611613f23565b9361431c8573ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b614337610a6482546dffffffffffffffffffffffffffff1690565b878110614492579273ffffffffffffffffffffffffffffffffffffffff60208a989693946141338a966dffffffffffffffffffffffffffff8d6143b19e9c9a03166dffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffff0000000000000000000000000000825416179055565b0395169103f1908183918493614474575b5061446c5750506001906143d4612ba3565b6308c379a01461444d575b506143e75750565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152601660448201527f4141333320726576657274656420286f72204f4f4729000000000000000000006064820152608490fd5b614455612bc1565b908161446157506143df565b613889925050613ff3565b955093505050565b90925061448b91503d8085833e61424e81836103c8565b91386143c2565b61087e8a6040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601e60408201527f41413331207061796d6173746572206465706f73697420746f6f206c6f77000060608201520190565b6003111561450a57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b92919061455760409160028652606060208701526060860190611f5f565b930152565b93929190600381101561450a57604091614557918652606060208701526060860190611f5f565b90610416603660405180947f4141353020706f73744f702072657665727465643a200000000000000000000060208301526145c78151809260208686019101611f3c565b81010360168101855201836103c8565b929190925a936000918051916145ec83614df3565b9260a0810195614610875173ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff9390848116908161477f57505050614651825173ffffffffffffffffffffffffffffffffffffffff1690565b985b5a90030193840297604084019089825110614712577f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f9461469d6020928c61470d95510390614fa5565b0151948960206146df6146c4865173ffffffffffffffffffffffffffffffffffffffff1690565b9a5173ffffffffffffffffffffffffffffffffffffffff1690565b9401519785604051968796169a16988590949392606092608083019683521515602083015260408201520152565b0390a4565b6040517f220266b60000000000000000000000000000000000000000000000000000000081528061087e600482016080906000815260406020820152602060408201527f414135312070726566756e642062656c6f772061637475616c476173436f737460608201520190565b9a91805161478f575b5050614653565b6060850151600099509091803b156148b65791899189836147e2956040518097819682957fa9a234090000000000000000000000000000000000000000000000000000000084528c029060048401614539565b0393f190816148a3575b5061489e5760016147fb612ba3565b6308c379a01461487f575b614812575b3880614788565b6040517f220266b60000000000000000000000000000000000000000000000000000000081528061087e600482016080906000815260406020820152601260408201527f4141353020706f73744f7020726576657274000000000000000000000000000060608201520190565b614887612bc1565b806148925750614806565b6135ba61087e91614583565b61480b565b80610e8a6148b092610398565b386147ec565b8980fd5b9392915a906000928051906148ce82614df3565b9360a08301966148f2885173ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff959086811690816149e857505050614933845173ffffffffffffffffffffffffffffffffffffffff1690565b915b5a9003019485029860408301908a82511061498257507f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f94939261469d61470d938c602094510390614fa5565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152602060448201527f414135312070726566756e642062656c6f772061637475616c476173436f73746064820152608490fd5b939180516149f8575b5050614935565b606087015160009a509091803b15614b1e57918a918a83614a4b956040518097819682957fa9a234090000000000000000000000000000000000000000000000000000000084528c029060048401614539565b0393f19081614b0b575b50614b06576001614a64612ba3565b6308c379a014614ae9575b614a7b575b38806149f1565b61087e8b6040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601260408201527f4141353020706f73744f7020726576657274000000000000000000000000000060608201520190565b614af1612bc1565b80614afc5750614a6f565b6138898d91614583565b614a74565b80610e8a614b1892610398565b38614a55565b8a80fd5b909392915a94805191614b3483614df3565b9260a0810195614b58875173ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff938185169182614c4057505050614b98825173ffffffffffffffffffffffffffffffffffffffff1690565b985b5a90030193840297604084019089825110614712577f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f94614be46020928c61470d95510390614fa5565b614bed88614500565b015194896020614c146146c4865173ffffffffffffffffffffffffffffffffffffffff1690565b940151604080519182529815602082015297880152606087015290821695909116939081906080820190565b9a918151614c50575b5050614b9a565b878402614c5c8a614500565b60028a14614ce7576060860151823b1561031d57614caf93600080948d604051978896879586937fa9a234090000000000000000000000000000000000000000000000000000000085526004850161455c565b0393f18015614cda575b614cc7575b505b3880614c49565b80610e8a614cd492610398565b38614cbe565b614ce2612058565b614cb9565b6060860151823b1561031d57614d3293600080948d604051978896879586937fa9a234090000000000000000000000000000000000000000000000000000000085526004850161455c565b0393f19081614de0575b50614ddb576001614d4b612ba3565b6308c379a014614dc8575b15614cc0576040517f220266b60000000000000000000000000000000000000000000000000000000081528061087e600482016080906000815260406020820152601260408201527f4141353020706f73744f7020726576657274000000000000000000000000000060608201520190565b614dd0612bc1565b806148925750614d56565b614cc0565b80610e8a614ded92610398565b38614d3c565b60e060c0820151910151808214614e1757480180821015614e12575090565b905090565b5090565b60405190614e28826103ac565b60006040838281528260208201520152565b614e42614e1b565b5065ffffffffffff808260a01c168015614e8e575b60405192614e64846103ac565b73ffffffffffffffffffffffffffffffffffffffff8116845260d01c602084015216604082015290565b5080614e57565b614eaa614eb091614ea4614e1b565b50614e3a565b91614e3a565b9073ffffffffffffffffffffffffffffffffffffffff9182825116928315614f3c575b65ffffffffffff928391826040816020850151169301511693836040816020840151169201511690808410614f34575b50808511614f2c575b5060405195614f1a876103ac565b16855216602084015216604082015290565b935038614f0c565b925038614f03565b815181169350614ed3565b9073ffffffffffffffffffffffffffffffffffffffff614f65612973565b9216600052600060205263ffffffff600160406000206dffffffffffffffffffffffffffff815460781c1685520154166020830152565b61041633615096565b73ffffffffffffffffffffffffffffffffffffffff16600052600060205260406000206dffffffffffffffffffffffffffff80825416928301809311615089575b80831161502b5761041692166dffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffff0000000000000000000000000000825416179055565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6465706f736974206f766572666c6f77000000000000000000000000000000006044820152fd5b615091612065565b614fe6565b73ffffffffffffffffffffffffffffffffffffffff906150b63482614fa5565b168060005260006020527f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c460206dffffffffffffffffffffffffffff60406000205416604051908152a2565b1561510957565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f6d757374207370656369667920756e7374616b652064656c61790000000000006044820152fd5b1561516e57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f63616e6e6f7420646563726561736520756e7374616b652074696d65000000006044820152fd5b156151d357565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6e6f207374616b652073706563696669656400000000000000000000000000006044820152fd5b1561523857565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f7374616b65206f766572666c6f770000000000000000000000000000000000006044820152fd5b9065ffffffffffff60806001610416946152f66dffffffffffffffffffffffffffff86511682906dffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffff0000000000000000000000000000825416179055565b602085015115156eff000000000000000000000000000082549160701b16807fffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff83161783557fffffff000000000000000000000000000000ffffffffffffffffffffffffffff7cffffffffffffffffffffffffffff000000000000000000000000000000604089015160781b16921617178155019263ffffffff6060820151167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000008554161784550151167fffffffffffffffffffffffffffffffffffffffffffff000000000000ffffffff69ffffffffffff0000000083549260201b169116179055565b1561540157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f616c726561647920756e7374616b696e670000000000000000000000000000006044820152fd5b91909165ffffffffffff808094169116019182116120a257565b1561548057565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f4e6f207374616b6520746f2077697468647261770000000000000000000000006044820152fd5b156154e557565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f6d7573742063616c6c20756e6c6f636b5374616b6528292066697273740000006044820152fd5b1561554a57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f5374616b65207769746864726177616c206973206e6f742064756500000000006044820152fd5b156155af57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f6661696c656420746f207769746864726177207374616b6500000000000000006044820152fd5b1561561457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6661696c656420746f20776974686472617700000000000000000000000000006044820152fd5b9060009283809360208451940192f190565b3d6108008082116156ab575b50604051906020818301016040528082526000602083013e90565b90503861569056fea2646970667358221220ae4a26a2417d41eec912cee72664fcf55e9abebe95b0def4d185ac695cb88b5564736f6c634300081100336080806040523461001657610210908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b6000803560e01c63570e1a361461002857600080fd5b346100c95760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100c95760043567ffffffffffffffff918282116100c957366023830112156100c95781600401359283116100c95736602484840101116100c9576100c561009e84602485016100fc565b60405173ffffffffffffffffffffffffffffffffffffffff90911681529081906020820190565b0390f35b80fd5b507f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90806014116101bb5767ffffffffffffffff917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec82018381116101cd575b604051937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f81600b8701160116850190858210908211176101c0575b604052808452602084019036848401116101bb576020946000600c819682946014880187378301015251923560601c5af19060005191156101b557565b60009150565b600080fd5b6101c86100cc565b610178565b6101d56100cc565b61013a56fea26469706673582212201927e80b76ab9b71c952137dd676621a9fdf520c25928815636594036eb1c40364736f6c63430008110033\";\nvar isSuperArgs = function (xs) { return xs.length > 1; };\nvar EntryPoint__factory = /** @class */ (function (_super) {\n __extends(EntryPoint__factory, _super);\n function EntryPoint__factory() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _this = this;\n if (isSuperArgs(args)) {\n _this = _super.apply(this, args) || this;\n }\n else {\n _this = _super.call(this, _abi, _bytecode, args[0]) || this;\n }\n return _this;\n }\n EntryPoint__factory.prototype.deploy = function (overrides) {\n return _super.prototype.deploy.call(this, overrides || {});\n };\n EntryPoint__factory.prototype.getDeployTransaction = function (overrides) {\n return _super.prototype.getDeployTransaction.call(this, overrides || {});\n };\n EntryPoint__factory.prototype.attach = function (address) {\n return _super.prototype.attach.call(this, address);\n };\n EntryPoint__factory.prototype.connect = function (signer) {\n return _super.prototype.connect.call(this, signer);\n };\n EntryPoint__factory.createInterface = function () {\n return new ethers_1.utils.Interface(_abi);\n };\n EntryPoint__factory.connect = function (address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n };\n EntryPoint__factory.bytecode = _bytecode;\n EntryPoint__factory.abi = _abi;\n return EntryPoint__factory;\n}(ethers_1.ContractFactory));\nexports.EntryPoint__factory = EntryPoint__factory;\n","\"use strict\";\n/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\nexports.__esModule = true;\nexports.IAccount__factory = void 0;\nvar ethers_1 = require(\"ethers\");\nvar _abi = [\n {\n inputs: [\n {\n components: [\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"initCode\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"callData\",\n type: \"bytes\"\n },\n {\n internalType: \"uint256\",\n name: \"callGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"verificationGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"preVerificationGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxPriorityFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"paymasterAndData\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"signature\",\n type: \"bytes\"\n },\n ],\n internalType: \"struct UserOperation\",\n name: \"userOp\",\n type: \"tuple\"\n },\n {\n internalType: \"bytes32\",\n name: \"userOpHash\",\n type: \"bytes32\"\n },\n {\n internalType: \"uint256\",\n name: \"missingAccountFunds\",\n type: \"uint256\"\n },\n ],\n name: \"validateUserOp\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"validationData\",\n type: \"uint256\"\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n];\nvar IAccount__factory = /** @class */ (function () {\n function IAccount__factory() {\n }\n IAccount__factory.createInterface = function () {\n return new ethers_1.utils.Interface(_abi);\n };\n IAccount__factory.connect = function (address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n };\n IAccount__factory.abi = _abi;\n return IAccount__factory;\n}());\nexports.IAccount__factory = IAccount__factory;\n","\"use strict\";\n/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\nexports.__esModule = true;\nexports.IAggregator__factory = void 0;\nvar ethers_1 = require(\"ethers\");\nvar _abi = [\n {\n inputs: [\n {\n components: [\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"initCode\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"callData\",\n type: \"bytes\"\n },\n {\n internalType: \"uint256\",\n name: \"callGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"verificationGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"preVerificationGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxPriorityFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"paymasterAndData\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"signature\",\n type: \"bytes\"\n },\n ],\n internalType: \"struct UserOperation[]\",\n name: \"userOps\",\n type: \"tuple[]\"\n },\n ],\n name: \"aggregateSignatures\",\n outputs: [\n {\n internalType: \"bytes\",\n name: \"aggregatedSignature\",\n type: \"bytes\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"initCode\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"callData\",\n type: \"bytes\"\n },\n {\n internalType: \"uint256\",\n name: \"callGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"verificationGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"preVerificationGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxPriorityFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"paymasterAndData\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"signature\",\n type: \"bytes\"\n },\n ],\n internalType: \"struct UserOperation[]\",\n name: \"userOps\",\n type: \"tuple[]\"\n },\n {\n internalType: \"bytes\",\n name: \"signature\",\n type: \"bytes\"\n },\n ],\n name: \"validateSignatures\",\n outputs: [],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"initCode\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"callData\",\n type: \"bytes\"\n },\n {\n internalType: \"uint256\",\n name: \"callGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"verificationGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"preVerificationGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxPriorityFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"paymasterAndData\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"signature\",\n type: \"bytes\"\n },\n ],\n internalType: \"struct UserOperation\",\n name: \"userOp\",\n type: \"tuple\"\n },\n ],\n name: \"validateUserOpSignature\",\n outputs: [\n {\n internalType: \"bytes\",\n name: \"sigForUserOp\",\n type: \"bytes\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n];\nvar IAggregator__factory = /** @class */ (function () {\n function IAggregator__factory() {\n }\n IAggregator__factory.createInterface = function () {\n return new ethers_1.utils.Interface(_abi);\n };\n IAggregator__factory.connect = function (address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n };\n IAggregator__factory.abi = _abi;\n return IAggregator__factory;\n}());\nexports.IAggregator__factory = IAggregator__factory;\n","\"use strict\";\n/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\nexports.__esModule = true;\nexports.IEntryPoint__factory = void 0;\nvar ethers_1 = require(\"ethers\");\nvar _abi = [\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"preOpGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"paid\",\n type: \"uint256\"\n },\n {\n internalType: \"uint48\",\n name: \"validAfter\",\n type: \"uint48\"\n },\n {\n internalType: \"uint48\",\n name: \"validUntil\",\n type: \"uint48\"\n },\n {\n internalType: \"bool\",\n name: \"targetSuccess\",\n type: \"bool\"\n },\n {\n internalType: \"bytes\",\n name: \"targetResult\",\n type: \"bytes\"\n },\n ],\n name: \"ExecutionResult\",\n type: \"error\"\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"opIndex\",\n type: \"uint256\"\n },\n {\n internalType: \"string\",\n name: \"reason\",\n type: \"string\"\n },\n ],\n name: \"FailedOp\",\n type: \"error\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\"\n },\n ],\n name: \"SenderAddressResult\",\n type: \"error\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"aggregator\",\n type: \"address\"\n },\n ],\n name: \"SignatureValidationFailed\",\n type: \"error\"\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"preOpGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"prefund\",\n type: \"uint256\"\n },\n {\n internalType: \"bool\",\n name: \"sigFailed\",\n type: \"bool\"\n },\n {\n internalType: \"uint48\",\n name: \"validAfter\",\n type: \"uint48\"\n },\n {\n internalType: \"uint48\",\n name: \"validUntil\",\n type: \"uint48\"\n },\n {\n internalType: \"bytes\",\n name: \"paymasterContext\",\n type: \"bytes\"\n },\n ],\n internalType: \"struct IEntryPoint.ReturnInfo\",\n name: \"returnInfo\",\n type: \"tuple\"\n },\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"stake\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"unstakeDelaySec\",\n type: \"uint256\"\n },\n ],\n internalType: \"struct IStakeManager.StakeInfo\",\n name: \"senderInfo\",\n type: \"tuple\"\n },\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"stake\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"unstakeDelaySec\",\n type: \"uint256\"\n },\n ],\n internalType: \"struct IStakeManager.StakeInfo\",\n name: \"factoryInfo\",\n type: \"tuple\"\n },\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"stake\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"unstakeDelaySec\",\n type: \"uint256\"\n },\n ],\n internalType: \"struct IStakeManager.StakeInfo\",\n name: \"paymasterInfo\",\n type: \"tuple\"\n },\n ],\n name: \"ValidationResult\",\n type: \"error\"\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"preOpGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"prefund\",\n type: \"uint256\"\n },\n {\n internalType: \"bool\",\n name: \"sigFailed\",\n type: \"bool\"\n },\n {\n internalType: \"uint48\",\n name: \"validAfter\",\n type: \"uint48\"\n },\n {\n internalType: \"uint48\",\n name: \"validUntil\",\n type: \"uint48\"\n },\n {\n internalType: \"bytes\",\n name: \"paymasterContext\",\n type: \"bytes\"\n },\n ],\n internalType: \"struct IEntryPoint.ReturnInfo\",\n name: \"returnInfo\",\n type: \"tuple\"\n },\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"stake\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"unstakeDelaySec\",\n type: \"uint256\"\n },\n ],\n internalType: \"struct IStakeManager.StakeInfo\",\n name: \"senderInfo\",\n type: \"tuple\"\n },\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"stake\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"unstakeDelaySec\",\n type: \"uint256\"\n },\n ],\n internalType: \"struct IStakeManager.StakeInfo\",\n name: \"factoryInfo\",\n type: \"tuple\"\n },\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"stake\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"unstakeDelaySec\",\n type: \"uint256\"\n },\n ],\n internalType: \"struct IStakeManager.StakeInfo\",\n name: \"paymasterInfo\",\n type: \"tuple\"\n },\n {\n components: [\n {\n internalType: \"address\",\n name: \"aggregator\",\n type: \"address\"\n },\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"stake\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"unstakeDelaySec\",\n type: \"uint256\"\n },\n ],\n internalType: \"struct IStakeManager.StakeInfo\",\n name: \"stakeInfo\",\n type: \"tuple\"\n },\n ],\n internalType: \"struct IEntryPoint.AggregatorStakeInfo\",\n name: \"aggregatorInfo\",\n type: \"tuple\"\n },\n ],\n name: \"ValidationResultWithAggregation\",\n type: \"error\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"bytes32\",\n name: \"userOpHash\",\n type: \"bytes32\"\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"sender\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"factory\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"paymaster\",\n type: \"address\"\n },\n ],\n name: \"AccountDeployed\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"account\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"totalDeposit\",\n type: \"uint256\"\n },\n ],\n name: \"Deposited\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"aggregator\",\n type: \"address\"\n },\n ],\n name: \"SignatureAggregatorChanged\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"account\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"totalStaked\",\n type: \"uint256\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"unstakeDelaySec\",\n type: \"uint256\"\n },\n ],\n name: \"StakeLocked\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"account\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"withdrawTime\",\n type: \"uint256\"\n },\n ],\n name: \"StakeUnlocked\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"account\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"withdrawAddress\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n },\n ],\n name: \"StakeWithdrawn\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"bytes32\",\n name: \"userOpHash\",\n type: \"bytes32\"\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"sender\",\n type: \"address\"\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"paymaster\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n indexed: false,\n internalType: \"bool\",\n name: \"success\",\n type: \"bool\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"actualGasCost\",\n type: \"uint256\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"actualGasUsed\",\n type: \"uint256\"\n },\n ],\n name: \"UserOperationEvent\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"bytes32\",\n name: \"userOpHash\",\n type: \"bytes32\"\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"sender\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n indexed: false,\n internalType: \"bytes\",\n name: \"revertReason\",\n type: \"bytes\"\n },\n ],\n name: \"UserOperationRevertReason\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"account\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"withdrawAddress\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n },\n ],\n name: \"Withdrawn\",\n type: \"event\"\n },\n {\n inputs: [\n {\n internalType: \"uint32\",\n name: \"_unstakeDelaySec\",\n type: \"uint32\"\n },\n ],\n name: \"addStake\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"account\",\n type: \"address\"\n },\n ],\n name: \"balanceOf\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"account\",\n type: \"address\"\n },\n ],\n name: \"depositTo\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"account\",\n type: \"address\"\n },\n ],\n name: \"getDepositInfo\",\n outputs: [\n {\n components: [\n {\n internalType: \"uint112\",\n name: \"deposit\",\n type: \"uint112\"\n },\n {\n internalType: \"bool\",\n name: \"staked\",\n type: \"bool\"\n },\n {\n internalType: \"uint112\",\n name: \"stake\",\n type: \"uint112\"\n },\n {\n internalType: \"uint32\",\n name: \"unstakeDelaySec\",\n type: \"uint32\"\n },\n {\n internalType: \"uint48\",\n name: \"withdrawTime\",\n type: \"uint48\"\n },\n ],\n internalType: \"struct IStakeManager.DepositInfo\",\n name: \"info\",\n type: \"tuple\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"bytes\",\n name: \"initCode\",\n type: \"bytes\"\n },\n ],\n name: \"getSenderAddress\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"initCode\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"callData\",\n type: \"bytes\"\n },\n {\n internalType: \"uint256\",\n name: \"callGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"verificationGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"preVerificationGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxPriorityFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"paymasterAndData\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"signature\",\n type: \"bytes\"\n },\n ],\n internalType: \"struct UserOperation\",\n name: \"userOp\",\n type: \"tuple\"\n },\n ],\n name: \"getUserOpHash\",\n outputs: [\n {\n internalType: \"bytes32\",\n name: \"\",\n type: \"bytes32\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n components: [\n {\n components: [\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"initCode\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"callData\",\n type: \"bytes\"\n },\n {\n internalType: \"uint256\",\n name: \"callGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"verificationGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"preVerificationGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxPriorityFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"paymasterAndData\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"signature\",\n type: \"bytes\"\n },\n ],\n internalType: \"struct UserOperation[]\",\n name: \"userOps\",\n type: \"tuple[]\"\n },\n {\n internalType: \"contract IAggregator\",\n name: \"aggregator\",\n type: \"address\"\n },\n {\n internalType: \"bytes\",\n name: \"signature\",\n type: \"bytes\"\n },\n ],\n internalType: \"struct IEntryPoint.UserOpsPerAggregator[]\",\n name: \"opsPerAggregator\",\n type: \"tuple[]\"\n },\n {\n internalType: \"address payable\",\n name: \"beneficiary\",\n type: \"address\"\n },\n ],\n name: \"handleAggregatedOps\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"initCode\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"callData\",\n type: \"bytes\"\n },\n {\n internalType: \"uint256\",\n name: \"callGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"verificationGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"preVerificationGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxPriorityFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"paymasterAndData\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"signature\",\n type: \"bytes\"\n },\n ],\n internalType: \"struct UserOperation[]\",\n name: \"ops\",\n type: \"tuple[]\"\n },\n {\n internalType: \"address payable\",\n name: \"beneficiary\",\n type: \"address\"\n },\n ],\n name: \"handleOps\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"initCode\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"callData\",\n type: \"bytes\"\n },\n {\n internalType: \"uint256\",\n name: \"callGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"verificationGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"preVerificationGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxPriorityFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"paymasterAndData\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"signature\",\n type: \"bytes\"\n },\n ],\n internalType: \"struct UserOperation\",\n name: \"op\",\n type: \"tuple\"\n },\n {\n internalType: \"address\",\n name: \"target\",\n type: \"address\"\n },\n {\n internalType: \"bytes\",\n name: \"targetCallData\",\n type: \"bytes\"\n },\n ],\n name: \"simulateHandleOp\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"initCode\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"callData\",\n type: \"bytes\"\n },\n {\n internalType: \"uint256\",\n name: \"callGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"verificationGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"preVerificationGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxPriorityFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"paymasterAndData\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"signature\",\n type: \"bytes\"\n },\n ],\n internalType: \"struct UserOperation\",\n name: \"userOp\",\n type: \"tuple\"\n },\n ],\n name: \"simulateValidation\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"unlockStake\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address payable\",\n name: \"withdrawAddress\",\n type: \"address\"\n },\n ],\n name: \"withdrawStake\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address payable\",\n name: \"withdrawAddress\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"withdrawAmount\",\n type: \"uint256\"\n },\n ],\n name: \"withdrawTo\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n];\nvar IEntryPoint__factory = /** @class */ (function () {\n function IEntryPoint__factory() {\n }\n IEntryPoint__factory.createInterface = function () {\n return new ethers_1.utils.Interface(_abi);\n };\n IEntryPoint__factory.connect = function (address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n };\n IEntryPoint__factory.abi = _abi;\n return IEntryPoint__factory;\n}());\nexports.IEntryPoint__factory = IEntryPoint__factory;\n","\"use strict\";\n/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\nexports.__esModule = true;\nexports.IPaymaster__factory = void 0;\nvar ethers_1 = require(\"ethers\");\nvar _abi = [\n {\n inputs: [\n {\n internalType: \"enum IPaymaster.PostOpMode\",\n name: \"mode\",\n type: \"uint8\"\n },\n {\n internalType: \"bytes\",\n name: \"context\",\n type: \"bytes\"\n },\n {\n internalType: \"uint256\",\n name: \"actualGasCost\",\n type: \"uint256\"\n },\n ],\n name: \"postOp\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"initCode\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"callData\",\n type: \"bytes\"\n },\n {\n internalType: \"uint256\",\n name: \"callGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"verificationGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"preVerificationGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxPriorityFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"paymasterAndData\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"signature\",\n type: \"bytes\"\n },\n ],\n internalType: \"struct UserOperation\",\n name: \"userOp\",\n type: \"tuple\"\n },\n {\n internalType: \"bytes32\",\n name: \"userOpHash\",\n type: \"bytes32\"\n },\n {\n internalType: \"uint256\",\n name: \"maxCost\",\n type: \"uint256\"\n },\n ],\n name: \"validatePaymasterUserOp\",\n outputs: [\n {\n internalType: \"bytes\",\n name: \"context\",\n type: \"bytes\"\n },\n {\n internalType: \"uint256\",\n name: \"validationData\",\n type: \"uint256\"\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n];\nvar IPaymaster__factory = /** @class */ (function () {\n function IPaymaster__factory() {\n }\n IPaymaster__factory.createInterface = function () {\n return new ethers_1.utils.Interface(_abi);\n };\n IPaymaster__factory.connect = function (address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n };\n IPaymaster__factory.abi = _abi;\n return IPaymaster__factory;\n}());\nexports.IPaymaster__factory = IPaymaster__factory;\n","\"use strict\";\n/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\nexports.__esModule = true;\nexports.IStakeManager__factory = void 0;\nvar ethers_1 = require(\"ethers\");\nvar _abi = [\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"account\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"totalDeposit\",\n type: \"uint256\"\n },\n ],\n name: \"Deposited\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"account\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"totalStaked\",\n type: \"uint256\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"unstakeDelaySec\",\n type: \"uint256\"\n },\n ],\n name: \"StakeLocked\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"account\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"withdrawTime\",\n type: \"uint256\"\n },\n ],\n name: \"StakeUnlocked\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"account\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"withdrawAddress\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n },\n ],\n name: \"StakeWithdrawn\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"account\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"withdrawAddress\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n },\n ],\n name: \"Withdrawn\",\n type: \"event\"\n },\n {\n inputs: [\n {\n internalType: \"uint32\",\n name: \"_unstakeDelaySec\",\n type: \"uint32\"\n },\n ],\n name: \"addStake\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"account\",\n type: \"address\"\n },\n ],\n name: \"balanceOf\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"account\",\n type: \"address\"\n },\n ],\n name: \"depositTo\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"account\",\n type: \"address\"\n },\n ],\n name: \"getDepositInfo\",\n outputs: [\n {\n components: [\n {\n internalType: \"uint112\",\n name: \"deposit\",\n type: \"uint112\"\n },\n {\n internalType: \"bool\",\n name: \"staked\",\n type: \"bool\"\n },\n {\n internalType: \"uint112\",\n name: \"stake\",\n type: \"uint112\"\n },\n {\n internalType: \"uint32\",\n name: \"unstakeDelaySec\",\n type: \"uint32\"\n },\n {\n internalType: \"uint48\",\n name: \"withdrawTime\",\n type: \"uint48\"\n },\n ],\n internalType: \"struct IStakeManager.DepositInfo\",\n name: \"info\",\n type: \"tuple\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"unlockStake\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address payable\",\n name: \"withdrawAddress\",\n type: \"address\"\n },\n ],\n name: \"withdrawStake\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address payable\",\n name: \"withdrawAddress\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"withdrawAmount\",\n type: \"uint256\"\n },\n ],\n name: \"withdrawTo\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n];\nvar IStakeManager__factory = /** @class */ (function () {\n function IStakeManager__factory() {\n }\n IStakeManager__factory.createInterface = function () {\n return new ethers_1.utils.Interface(_abi);\n };\n IStakeManager__factory.connect = function (address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n };\n IStakeManager__factory.abi = _abi;\n return IStakeManager__factory;\n}());\nexports.IStakeManager__factory = IStakeManager__factory;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nexports.__esModule = true;\nexports.MaliciousAccount__factory = void 0;\n/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\nvar ethers_1 = require(\"ethers\");\nvar _abi = [\n {\n inputs: [\n {\n internalType: \"contract IEntryPoint\",\n name: \"_ep\",\n type: \"address\"\n },\n ],\n stateMutability: \"payable\",\n type: \"constructor\"\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"initCode\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"callData\",\n type: \"bytes\"\n },\n {\n internalType: \"uint256\",\n name: \"callGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"verificationGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"preVerificationGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxPriorityFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"paymasterAndData\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"signature\",\n type: \"bytes\"\n },\n ],\n internalType: \"struct UserOperation\",\n name: \"userOp\",\n type: \"tuple\"\n },\n {\n internalType: \"bytes32\",\n name: \"\",\n type: \"bytes32\"\n },\n {\n internalType: \"uint256\",\n name: \"missingAccountFunds\",\n type: \"uint256\"\n },\n ],\n name: \"validateUserOp\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"validationData\",\n type: \"uint256\"\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n];\nvar _bytecode = \"0x608060405260405161034a38038061034a83398101604081905261002291610047565b600080546001600160a01b0319166001600160a01b0392909216919091179055610077565b60006020828403121561005957600080fd5b81516001600160a01b038116811461007057600080fd5b9392505050565b6102c4806100866000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80633a871cdd14610030575b600080fd5b61004361003e3660046101a1565b610055565b60405190815260200160405180910390f35b600080546040517fb760faf900000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff9091169063b760faf99084906024016000604051808303818588803b1580156100c257600080fd5b505af11580156100d6573d6000803e3d6000fd5b505050505060008460c001358560a0013586608001356100f69190610224565b6101009190610224565b9050600061010e828561023c565b9050600061012161010088013583610277565b905086602001358114610194576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f5265766572742061667465722066697273742076616c69646174696f6e000000604482015260640160405180910390fd5b5060009695505050505050565b6000806000606084860312156101b657600080fd5b833567ffffffffffffffff8111156101cd57600080fd5b840161016081870312156101e057600080fd5b95602085013595506040909401359392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115610237576102376101f5565b500190565b600082610272577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b600082821015610289576102896101f5565b50039056fea2646970667358221220233c1b53bed3630405955a2809bf977fcd3053b67e56cf39bd460d18cc03844c64736f6c634300080f0033\";\nvar isSuperArgs = function (xs) { return xs.length > 1; };\nvar MaliciousAccount__factory = /** @class */ (function (_super) {\n __extends(MaliciousAccount__factory, _super);\n function MaliciousAccount__factory() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _this = this;\n if (isSuperArgs(args)) {\n _this = _super.apply(this, args) || this;\n }\n else {\n _this = _super.call(this, _abi, _bytecode, args[0]) || this;\n }\n return _this;\n }\n MaliciousAccount__factory.prototype.deploy = function (_ep, overrides) {\n return _super.prototype.deploy.call(this, _ep, overrides || {});\n };\n MaliciousAccount__factory.prototype.getDeployTransaction = function (_ep, overrides) {\n return _super.prototype.getDeployTransaction.call(this, _ep, overrides || {});\n };\n MaliciousAccount__factory.prototype.attach = function (address) {\n return _super.prototype.attach.call(this, address);\n };\n MaliciousAccount__factory.prototype.connect = function (signer) {\n return _super.prototype.connect.call(this, signer);\n };\n MaliciousAccount__factory.createInterface = function () {\n return new ethers_1.utils.Interface(_abi);\n };\n MaliciousAccount__factory.connect = function (address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n };\n MaliciousAccount__factory.bytecode = _bytecode;\n MaliciousAccount__factory.abi = _abi;\n return MaliciousAccount__factory;\n}(ethers_1.ContractFactory));\nexports.MaliciousAccount__factory = MaliciousAccount__factory;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nexports.__esModule = true;\nexports.SenderCreator__factory = void 0;\n/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\nvar ethers_1 = require(\"ethers\");\nvar _abi = [\n {\n inputs: [\n {\n internalType: \"bytes\",\n name: \"initCode\",\n type: \"bytes\"\n },\n ],\n name: \"createSender\",\n outputs: [\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\"\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n];\nvar _bytecode = \"0x608060405234801561001057600080fd5b50610213806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063570e1a3614610030575b600080fd5b61004361003e3660046100f9565b61006c565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60008061007c601482858761016b565b61008591610195565b60601c90506000610099846014818861016b565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525084519495509360209350849250905082850182875af190506000519350806100f057600093505b50505092915050565b6000806020838503121561010c57600080fd5b823567ffffffffffffffff8082111561012457600080fd5b818501915085601f83011261013857600080fd5b81358181111561014757600080fd5b86602082850101111561015957600080fd5b60209290920196919550909350505050565b6000808585111561017b57600080fd5b8386111561018857600080fd5b5050820193919092039150565b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000081358181169160148510156101d55780818660140360031b1b83161692505b50509291505056fea2646970667358221220d5d7cb55b3123d86b2710028be2074a469cca162ad2a26c50fb1cfdce4424b9464736f6c634300080f0033\";\nvar isSuperArgs = function (xs) { return xs.length > 1; };\nvar SenderCreator__factory = /** @class */ (function (_super) {\n __extends(SenderCreator__factory, _super);\n function SenderCreator__factory() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _this = this;\n if (isSuperArgs(args)) {\n _this = _super.apply(this, args) || this;\n }\n else {\n _this = _super.call(this, _abi, _bytecode, args[0]) || this;\n }\n return _this;\n }\n SenderCreator__factory.prototype.deploy = function (overrides) {\n return _super.prototype.deploy.call(this, overrides || {});\n };\n SenderCreator__factory.prototype.getDeployTransaction = function (overrides) {\n return _super.prototype.getDeployTransaction.call(this, overrides || {});\n };\n SenderCreator__factory.prototype.attach = function (address) {\n return _super.prototype.attach.call(this, address);\n };\n SenderCreator__factory.prototype.connect = function (signer) {\n return _super.prototype.connect.call(this, signer);\n };\n SenderCreator__factory.createInterface = function () {\n return new ethers_1.utils.Interface(_abi);\n };\n SenderCreator__factory.connect = function (address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n };\n SenderCreator__factory.bytecode = _bytecode;\n SenderCreator__factory.abi = _abi;\n return SenderCreator__factory;\n}(ethers_1.ContractFactory));\nexports.SenderCreator__factory = SenderCreator__factory;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nexports.__esModule = true;\nexports.SimpleAccountFactory__factory = void 0;\n/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\nvar ethers_1 = require(\"ethers\");\nvar _abi = [\n {\n inputs: [\n {\n internalType: \"contract IEntryPoint\",\n name: \"_entryPoint\",\n type: \"address\"\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\"\n },\n {\n inputs: [],\n name: \"accountImplementation\",\n outputs: [\n {\n internalType: \"contract SimpleAccount\",\n name: \"\",\n type: \"address\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"salt\",\n type: \"uint256\"\n },\n ],\n name: \"createAccount\",\n outputs: [\n {\n internalType: \"contract SimpleAccount\",\n name: \"ret\",\n type: \"address\"\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"salt\",\n type: \"uint256\"\n },\n ],\n name: \"getAddress\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n];\nvar _bytecode = \"0x60a060405234801561001057600080fd5b50604051612f0f380380612f0f83398101604081905261002f91610088565b8060405161003c9061007b565b6001600160a01b039091168152602001604051809103906000f080158015610068573d6000803e3d6000fd5b506001600160a01b0316608052506100b8565b61218980610d8683390190565b60006020828403121561009a57600080fd5b81516001600160a01b03811681146100b157600080fd5b9392505050565b608051610ca66100e060003960008181604b0152818161011401526102580152610ca66000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806311464fbe146100465780635fbfb9cf146100965780638cb84e18146100a9575b600080fd5b61006d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61006d6100a436600461039d565b6100bc565b61006d6100b736600461039d565b6101ee565b6000806100c984846101ee565b905073ffffffffffffffffffffffffffffffffffffffff81163b80156100f1575090506101e8565b60405173ffffffffffffffffffffffffffffffffffffffff8616602482015284907f000000000000000000000000000000000000000000000000000000000000000090604401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc4d66de800000000000000000000000000000000000000000000000000000000179052516101b790610390565b6101c2929190610412565b8190604051809103906000f59050801580156101e2573d6000803e3d6000fd5b50925050505b92915050565b60006103578260001b6040518060200161020790610390565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082820381018352601f90910116604081905273ffffffffffffffffffffffffffffffffffffffff871660248201527f000000000000000000000000000000000000000000000000000000000000000090604401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc4d66de800000000000000000000000000000000000000000000000000000000179052905161030093929101610412565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905261033c9291602001610480565b6040516020818303038152906040528051906020012061035e565b9392505050565b60006103578383306000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b6107c1806104b083390190565b600080604083850312156103b057600080fd5b823573ffffffffffffffffffffffffffffffffffffffff811681146103d457600080fd5b946020939093013593505050565b60005b838110156103fd5781810151838201526020016103e5565b8381111561040c576000848401525b50505050565b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201526000825180604084015261044d8160608501602087016103e2565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016060019392505050565b600083516104928184602088016103e2565b8351908301906104a68183602088016103e2565b0194935050505056fe60806040526040516107c13803806107c183398101604081905261002291610321565b61002e82826000610035565b505061043e565b61003e8361006b565b60008251118061004b5750805b156100665761006483836100ab60201b6100291760201c565b505b505050565b610074816100d7565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100d0838360405180606001604052806027815260200161079a602791396101a9565b9392505050565b6100ea8161022260201b6100551760201c565b6101515760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b806101887f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61023160201b6100711760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080856001600160a01b0316856040516101c691906103ef565b600060405180830381855af49150503d8060008114610201576040519150601f19603f3d011682016040523d82523d6000602084013e610206565b606091505b50909250905061021886838387610234565b9695505050505050565b6001600160a01b03163b151590565b90565b606083156102a357825160000361029c576001600160a01b0385163b61029c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610148565b50816102ad565b6102ad83836102b5565b949350505050565b8151156102c55781518083602001fd5b8060405162461bcd60e51b8152600401610148919061040b565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103105781810151838201526020016102f8565b838111156100645750506000910152565b6000806040838503121561033457600080fd5b82516001600160a01b038116811461034b57600080fd5b60208401519092506001600160401b038082111561036857600080fd5b818501915085601f83011261037c57600080fd5b81518181111561038e5761038e6102df565b604051601f8201601f19908116603f011681019083821181831017156103b6576103b66102df565b816040528281528860208487010111156103cf57600080fd5b6103e08360208301602088016102f5565b80955050505050509250929050565b600082516104018184602087016102f5565b9190910192915050565b602081526000825180602084015261042a8160408501602087016102f5565b601f01601f19169190910160400192915050565b61034d8061044d6000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610074565b6100b9565b565b606061004e83836040518060600160405280602781526020016102f1602791396100dd565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b90565b60006100b47f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b905090565b3660008037600080366000845af43d6000803e8080156100d8573d6000f35b3d6000fd5b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516101079190610283565b600060405180830381855af49150503d8060008114610142576040519150601f19603f3d011682016040523d82523d6000602084013e610147565b606091505b509150915061015886838387610162565b9695505050505050565b606083156101fd5782516000036101f65773ffffffffffffffffffffffffffffffffffffffff85163b6101f6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610207565b610207838361020f565b949350505050565b81511561021f5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101ed919061029f565b60005b8381101561026e578181015183820152602001610256565b8381111561027d576000848401525b50505050565b60008251610295818460208701610253565b9190910192915050565b60208152600082518060208401526102be816040850160208701610253565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212201cd78ab6a31213989661cff2d7d05fc9b9c38b1a848e8249e2e398659a9eb7e364736f6c634300080f0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122030a4cd3aed4a6d9ec37ebc1d87061b12ed9906b5ba9c82d2d00395cabba20fbd64736f6c634300080f003360c0604052306080523480156200001557600080fd5b506040516200218938038062002189833981016040819052620000389162000118565b6001600160a01b03811660a0526200004f62000056565b506200014a565b600054610100900460ff1615620000c35760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000116576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156200012b57600080fd5b81516001600160a01b03811681146200014357600080fd5b9392505050565b60805160a051611fd3620001b66000396000818161023b01528181610624015281816106cb01528181610aad01528181610d0c0152818161106801526113fc0152600081816103ef0152818161049f0152818161078f0152818161083f01526109880152611fd36000f3fe6080604052600436106100d65760003560e01c806352d1902d1161007f578063b0d691fe11610059578063b0d691fe1461022c578063b61d27f61461025f578063c399ec881461027f578063c4d66de81461029457600080fd5b806352d1902d146101925780638da5cb5b146101a7578063affed0e01461020957600080fd5b80634a58db19116100b05780634a58db19146101575780634d44560d1461015f5780634f1ef2861461017f57600080fd5b806318dfb3c7146100e25780633659cfe6146101045780633a871cdd1461012457600080fd5b366100dd57005b600080fd5b3480156100ee57600080fd5b506101026100fd366004611aaa565b6102b4565b005b34801561011057600080fd5b5061010261011f366004611b38565b6103d8565b34801561013057600080fd5b5061014461013f366004611b55565b6105dd565b6040519081526020015b60405180910390f35b610102610622565b34801561016b57600080fd5b5061010261017a366004611ba9565b6106c1565b61010261018d366004611c04565b610778565b34801561019e57600080fd5b5061014461096e565b3480156101b357600080fd5b506001546101e4906c01000000000000000000000000900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161014e565b34801561021557600080fd5b506001546bffffffffffffffffffffffff16610144565b34801561023857600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006101e4565b34801561026b57600080fd5b5061010261027a366004611ce6565b610a5a565b34801561028b57600080fd5b50610144610aa9565b3480156102a057600080fd5b506101026102af366004611b38565b610b61565b6102bc610cf4565b82811461032a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f77726f6e67206172726179206c656e677468730000000000000000000000000060448201526064015b60405180910390fd5b60005b838110156103d1576103bf85858381811061034a5761034a611d6f565b905060200201602081019061035f9190611b38565b600085858581811061037357610373611d6f565b90506020028101906103859190611d9e565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610dc792505050565b806103c981611e32565b91505061032d565b5050505050565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016300361049d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152608401610321565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166105127f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16146105b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f787900000000000000000000000000000000000000006064820152608401610321565b6105be81610e44565b604080516000808252602082019092526105da91839190610e4c565b50565b60006105e7611050565b6105f184846110ef565b90506106006040850185611d9e565b905060000361061257610612846111e1565b61061b826112aa565b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006040517fb760faf900000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff919091169063b760faf99034906024016000604051808303818588803b1580156106ad57600080fd5b505af11580156103d1573d6000803e3d6000fd5b6106c9611315565b7f00000000000000000000000000000000000000000000000000000000000000006040517f205c287800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015260248201849052919091169063205c287890604401600060405180830381600087803b15801561075c57600080fd5b505af1158015610770573d6000803e3d6000fd5b505050505050565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016300361083d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152608401610321565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166108b27f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614610955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f787900000000000000000000000000000000000000006064820152608401610321565b61095e82610e44565b61096a82826001610e4c565b5050565b60003073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610a35576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610321565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b610a62610cf4565b610aa3848484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610dc792505050565b50505050565b60007f00000000000000000000000000000000000000000000000000000000000000006040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610b38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5c9190611e6a565b905090565b600054610100900460ff1615808015610b815750600054600160ff909116105b80610b9b5750303b158015610b9b575060005460ff166001145b610c27576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610321565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610c8557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610c8e826113b0565b801561096a57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161480610d5f57506001546c01000000000000000000000000900473ffffffffffffffffffffffffffffffffffffffff1633145b610dc5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f6163636f756e743a206e6f74204f776e6572206f7220456e747279506f696e746044820152606401610321565b565b6000808473ffffffffffffffffffffffffffffffffffffffff168484604051610df09190611eaf565b60006040518083038185875af1925050503d8060008114610e2d576040519150601f19603f3d011682016040523d82523d6000602084013e610e32565b606091505b5091509150816103d157805160208201fd5b6105da611315565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610e8457610e7f83611448565b505050565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610f09575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252610f0691810190611e6a565b60015b610f95576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f7420555550530000000000000000000000000000000000006064820152608401610321565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114611044576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c655555494400000000000000000000000000000000000000000000006064820152608401610321565b50610e7f838383611552565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610dc5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f6163636f756e743a206e6f742066726f6d20456e747279506f696e74000000006044820152606401610321565b600080611149836040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b905061119961115c610140860186611d9e565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525085939250506115779050565b6001546c01000000000000000000000000900473ffffffffffffffffffffffffffffffffffffffff9081169116146111d55760019150506111db565b60009150505b92915050565b600180546020830135916bffffffffffffffffffffffff90911690600061120783611ecb565b91906101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055506bffffffffffffffffffffffff16146105da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f6163636f756e743a20696e76616c6964206e6f6e6365000000000000000000006044820152606401610321565b80156105da5760405160009033907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90849084818181858888f193505050503d80600081146103d1576040519150601f19603f3d011682016040523d82523d6000602084013e6103d1565b6001546c01000000000000000000000000900473ffffffffffffffffffffffffffffffffffffffff1633148061134a57503330145b610dc5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c79206f776e6572000000000000000000000000000000000000000000006044820152606401610321565b600180546bffffffffffffffffffffffff166c0100000000000000000000000073ffffffffffffffffffffffffffffffffffffffff8481168202929092179283905560405192048116917f0000000000000000000000000000000000000000000000000000000000000000909116907f47e55c76e7a6f1fd8996a1da8008c1ea29699cca35e7bcd057f2dec313b6e5de90600090a350565b73ffffffffffffffffffffffffffffffffffffffff81163b6114ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152608401610321565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b61155b8361159b565b6000825111806115685750805b15610e7f57610aa383836115e8565b6000806000611586858561160d565b9150915061159381611652565b509392505050565b6115a481611448565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061061b8383604051806060016040528060278152602001611f7760279139611805565b60008082516041036116435760208301516040840151606085015160001a6116378782858561188a565b9450945050505061164b565b506000905060025b9250929050565b600081600481111561166657611666611ef6565b0361166e5750565b600181600481111561168257611682611ef6565b036116e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610321565b60028160048111156116fd576116fd611ef6565b03611764576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610321565b600381600481111561177857611778611ef6565b036105da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608401610321565b60606000808573ffffffffffffffffffffffffffffffffffffffff168560405161182f9190611eaf565b600060405180830381855af49150503d806000811461186a576040519150601f19603f3d011682016040523d82523d6000602084013e61186f565b606091505b509150915061188086838387611979565b9695505050505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156118c15750600090506003611970565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611915573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811661196957600060019250925050611970565b9150600090505b94509492505050565b60608315611a0f578251600003611a085773ffffffffffffffffffffffffffffffffffffffff85163b611a08576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610321565b5081611a19565b611a198383611a21565b949350505050565b815115611a315781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103219190611f25565b60008083601f840112611a7757600080fd5b50813567ffffffffffffffff811115611a8f57600080fd5b6020830191508360208260051b850101111561164b57600080fd5b60008060008060408587031215611ac057600080fd5b843567ffffffffffffffff80821115611ad857600080fd5b611ae488838901611a65565b90965094506020870135915080821115611afd57600080fd5b50611b0a87828801611a65565b95989497509550505050565b73ffffffffffffffffffffffffffffffffffffffff811681146105da57600080fd5b600060208284031215611b4a57600080fd5b813561061b81611b16565b600080600060608486031215611b6a57600080fd5b833567ffffffffffffffff811115611b8157600080fd5b84016101608187031215611b9457600080fd5b95602085013595506040909401359392505050565b60008060408385031215611bbc57600080fd5b8235611bc781611b16565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060408385031215611c1757600080fd5b8235611c2281611b16565b9150602083013567ffffffffffffffff80821115611c3f57600080fd5b818501915085601f830112611c5357600080fd5b813581811115611c6557611c65611bd5565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715611cab57611cab611bd5565b81604052828152886020848701011115611cc457600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60008060008060608587031215611cfc57600080fd5b8435611d0781611b16565b935060208501359250604085013567ffffffffffffffff80821115611d2b57600080fd5b818701915087601f830112611d3f57600080fd5b813581811115611d4e57600080fd5b886020828501011115611d6057600080fd5b95989497505060200194505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112611dd357600080fd5b83018035915067ffffffffffffffff821115611dee57600080fd5b60200191503681900382131561164b57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611e6357611e63611e03565b5060010190565b600060208284031215611e7c57600080fd5b5051919050565b60005b83811015611e9e578181015183820152602001611e86565b83811115610aa35750506000910152565b60008251611ec1818460208701611e83565b9190910192915050565b60006bffffffffffffffffffffffff808316818103611eec57611eec611e03565b6001019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6020815260008251806020840152611f44816040850160208701611e83565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220fd4b8799a91c8d4b8c5386672729ac9615b60b5f5b7dbac6da122be87a2a90b164736f6c634300080f0033\";\nvar isSuperArgs = function (xs) { return xs.length > 1; };\nvar SimpleAccountFactory__factory = /** @class */ (function (_super) {\n __extends(SimpleAccountFactory__factory, _super);\n function SimpleAccountFactory__factory() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _this = this;\n if (isSuperArgs(args)) {\n _this = _super.apply(this, args) || this;\n }\n else {\n _this = _super.call(this, _abi, _bytecode, args[0]) || this;\n }\n return _this;\n }\n SimpleAccountFactory__factory.prototype.deploy = function (_entryPoint, overrides) {\n return _super.prototype.deploy.call(this, _entryPoint, overrides || {});\n };\n SimpleAccountFactory__factory.prototype.getDeployTransaction = function (_entryPoint, overrides) {\n return _super.prototype.getDeployTransaction.call(this, _entryPoint, overrides || {});\n };\n SimpleAccountFactory__factory.prototype.attach = function (address) {\n return _super.prototype.attach.call(this, address);\n };\n SimpleAccountFactory__factory.prototype.connect = function (signer) {\n return _super.prototype.connect.call(this, signer);\n };\n SimpleAccountFactory__factory.createInterface = function () {\n return new ethers_1.utils.Interface(_abi);\n };\n SimpleAccountFactory__factory.connect = function (address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n };\n SimpleAccountFactory__factory.bytecode = _bytecode;\n SimpleAccountFactory__factory.abi = _abi;\n return SimpleAccountFactory__factory;\n}(ethers_1.ContractFactory));\nexports.SimpleAccountFactory__factory = SimpleAccountFactory__factory;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nexports.__esModule = true;\nexports.SimpleAccount__factory = void 0;\n/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\nvar ethers_1 = require(\"ethers\");\nvar _abi = [\n {\n inputs: [\n {\n internalType: \"contract IEntryPoint\",\n name: \"anEntryPoint\",\n type: \"address\"\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"address\",\n name: \"previousAdmin\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"newAdmin\",\n type: \"address\"\n },\n ],\n name: \"AdminChanged\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"beacon\",\n type: \"address\"\n },\n ],\n name: \"BeaconUpgraded\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint8\",\n name: \"version\",\n type: \"uint8\"\n },\n ],\n name: \"Initialized\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"contract IEntryPoint\",\n name: \"entryPoint\",\n type: \"address\"\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\"\n },\n ],\n name: \"SimpleAccountInitialized\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"implementation\",\n type: \"address\"\n },\n ],\n name: \"Upgraded\",\n type: \"event\"\n },\n {\n inputs: [],\n name: \"addDeposit\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"entryPoint\",\n outputs: [\n {\n internalType: \"contract IEntryPoint\",\n name: \"\",\n type: \"address\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"dest\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"value\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"func\",\n type: \"bytes\"\n },\n ],\n name: \"execute\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address[]\",\n name: \"dest\",\n type: \"address[]\"\n },\n {\n internalType: \"bytes[]\",\n name: \"func\",\n type: \"bytes[]\"\n },\n ],\n name: \"executeBatch\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"getDeposit\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"anOwner\",\n type: \"address\"\n },\n ],\n name: \"initialize\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"nonce\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"proxiableUUID\",\n outputs: [\n {\n internalType: \"bytes32\",\n name: \"\",\n type: \"bytes32\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"newImplementation\",\n type: \"address\"\n },\n ],\n name: \"upgradeTo\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"newImplementation\",\n type: \"address\"\n },\n {\n internalType: \"bytes\",\n name: \"data\",\n type: \"bytes\"\n },\n ],\n name: \"upgradeToAndCall\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"initCode\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"callData\",\n type: \"bytes\"\n },\n {\n internalType: \"uint256\",\n name: \"callGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"verificationGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"preVerificationGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxPriorityFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"paymasterAndData\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"signature\",\n type: \"bytes\"\n },\n ],\n internalType: \"struct UserOperation\",\n name: \"userOp\",\n type: \"tuple\"\n },\n {\n internalType: \"bytes32\",\n name: \"userOpHash\",\n type: \"bytes32\"\n },\n {\n internalType: \"uint256\",\n name: \"missingAccountFunds\",\n type: \"uint256\"\n },\n ],\n name: \"validateUserOp\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"validationData\",\n type: \"uint256\"\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address payable\",\n name: \"withdrawAddress\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n },\n ],\n name: \"withdrawDepositTo\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n stateMutability: \"payable\",\n type: \"receive\"\n },\n];\nvar _bytecode = \"0x60c03461015a57601f62001ed338819003918201601f19168301916001600160401b0383118484101761015f5780849260209460405283398101031261015a57516001600160a01b038116810361015a573060805260a05260005460ff8160081c166101055760ff808216106100ca575b604051611d5d908162000176823960805181818161032601528181610a460152610c23015260a051818181610548015281816107180152818161080101528181610dcf01528181610ef20152818161187301526118d10152f35b60ff90811916176000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a138610070565b60405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001b575b361561001957600080fd5b005b60003560e01c806318dfb3c71461011f5780633659cfe6146101165780633a871cdd1461010d5780634a58db19146101045780634d44560d146100fb5780634f1ef286146100f257806352d1902d146100e95780638da5cb5b146100e0578063affed0e0146100d7578063b0d691fe146100ce578063b61d27f6146100c5578063c399ec88146100bc5763c4d66de80361000e576100b7610f75565b61000e565b506100b7610e78565b506100b7610df3565b506100b7610d83565b506100b7610d38565b506100b7610cf8565b506100b7610bdc565b506100b76109c4565b506100b76107a2565b506100b76106d5565b506100b76104dd565b506100b76102d1565b506100b761015e565b9181601f840112156101595782359167ffffffffffffffff8311610159576020808501948460051b01011161015957565b600080fd5b50346101595760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101595767ffffffffffffffff600435818111610159576101af903690600401610128565b9091602435908111610159576101c9903690600401610128565b91906101d36118ba565b8282036102555760005b8281106101e657005b8061021a6101ff6101fa600194878a61173f565b61175d565b61021461020d848988611767565b369161098d565b90611c93565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610248575b016101dd565b6102506116df565b610242565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f77726f6e67206172726179206c656e67746873000000000000000000000000006044820152fd5b73ffffffffffffffffffffffffffffffffffffffff81160361015957565b50346101595760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101595760043561030d816102b3565b73ffffffffffffffffffffffffffffffffffffffff90817f00000000000000000000000000000000000000000000000000000000000000001691610353833014156110d9565b6103827f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc938285541614611164565b61038a611caa565b60405190610397826108cb565b600082527f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156103d15750506100199150611296565b6020600491604094939451928380927f52d1902d00000000000000000000000000000000000000000000000000000000825286165afa600091816104ad575b5061049a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f7420555550530000000000000000000000000000000000006064820152608490fd5b610019936104a8911461120b565b611382565b6104cf91925060203d81116104d6575b6104c78183610903565b8101906111ef565b9038610410565b503d6104bd565b5034610159577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6060813601126101595760043567ffffffffffffffff811161015957610160816004019282360301126101595773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633036106775761058861057d6024358461196d565b926044830190611620565b9050156105b3575b6105af8261059f604435611671565b6040519081529081906020820190565b0390f35b6024600154916bffffffffffffffffffffffff927fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008482169480861461066a575b600186011691161760015501350361060c5738610590565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f6163636f756e743a20696e76616c6964206e6f6e6365000000000000000000006044820152fd5b6106726116df565b6105f4565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f6163636f756e743a206e6f742066726f6d20456e747279506f696e74000000006044820152fd5b506000807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261079f5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001681813b1561079f57602491604051928380927fb760faf900000000000000000000000000000000000000000000000000000000825230600483015234905af18015610792575b610786575080f35b61078f906108aa565b80f35b61079a6111fe565b61077e565b80fd5b503461015957600060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261079f576004356107e0816102b3565b6107e8611caa565b8173ffffffffffffffffffffffffffffffffffffffff807f00000000000000000000000000000000000000000000000000000000000000001692833b15610876576044908360405195869485937f205c287800000000000000000000000000000000000000000000000000000000855216600484015260243560248401525af1801561079257610786575080f35b8280fd5b507f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b67ffffffffffffffff81116108be57604052565b6108c661087a565b604052565b6020810190811067ffffffffffffffff8211176108be57604052565b6060810190811067ffffffffffffffff8211176108be57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176108be57604052565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f60209267ffffffffffffffff8111610980575b01160190565b61098861087a565b61097a565b92919261099982610944565b916109a76040519384610903565b829481845281830111610159578281602093846000960137010152565b5060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610159576004356109fb816102b3565b60243567ffffffffffffffff8111610159573660238201121561015957610a2c90369060248160040135910161098d565b9073ffffffffffffffffffffffffffffffffffffffff91827f00000000000000000000000000000000000000000000000000000000000000001692610a73843014156110d9565b610aa27f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc948286541614611164565b610aaa611caa565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610ae05750506100199150611296565b6020600491604094939451928380927f52d1902d00000000000000000000000000000000000000000000000000000000825286165afa60009181610bbc575b50610ba9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f7420555550530000000000000000000000000000000000006064820152608490fd5b61001993610bb7911461120b565b611461565b610bd591925060203d81116104d6576104c78183610903565b9038610b1f565b50346101595760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101595773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610c74576040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152602090f35b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152fd5b50346101595760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015957602060015460601c604051908152f35b50346101595760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101595760206bffffffffffffffffffffffff60015416604051908152f35b50346101595760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015957602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101595760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015957600435610e2f816102b3565b6044359067ffffffffffffffff908183116101595736602384011215610159578260040135918211610159573660248385010111610159576024610019930190602435906116ab565b5034610159576000807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261079f576040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610f68575b8291610f2e575b604051828152602090f35b90506020813d8211610f60575b81610f4860209383610903565b81010312610f5c576105af91505138610f23565b5080fd5b3d9150610f3b565b610f706111fe565b610f1c565b50346101595760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015957600435610fb1816102b3565b61101360005491610fd960ff8460081c1615809481956110cb575b81156110ab575b50611791565b8261100a60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006000541617600055565b6110755761181c565b61101957005b6110467fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff60005416600055565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b6110a66101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff6000541617600055565b61181c565b303b159150816110bd575b5038610fd3565b6001915060ff1614386110b6565b600160ff8216109150610fcc565b156110e057565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152fd5b1561116b57565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f787900000000000000000000000000000000000000006064820152fd5b90816020910312610159575190565b506040513d6000823e3d90fd5b1561121257565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c655555494400000000000000000000000000000000000000000000006064820152fd5b803b156112fe5773ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152fd5b9061138c82611296565b73ffffffffffffffffffffffffffffffffffffffff82167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2805115801590611459575b6113db575050565b61145691600080604051936113ef856108e7565b602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208601527f206661696c6564000000000000000000000000000000000000000000000000006040860152602081519101845af46114506114c1565b91611556565b50565b5060006113d3565b9061146b82611296565b73ffffffffffffffffffffffffffffffffffffffff82167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a28051158015906114b9576113db575050565b5060016113d3565b3d156114ec573d906114d282610944565b916114e06040519384610903565b82523d6000602084013e565b606090565b156114f857565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b91929015611579575081511561156a575090565b611576903b15156114f1565b90565b82519091501561158c5750805190602001fd5b604051907f08c379a000000000000000000000000000000000000000000000000000000000825281602080600483015282519283602484015260005b848110611609575050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f836000604480968601015201168101030190fd5b8181018301518682016044015285935082016115c8565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe181360301821215610159570180359067ffffffffffffffff82116101595760200191813603831361015957565b806116795750565b600080808093337ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1506114566114c1565b6116bc60009493859461020d6118ba565b91602083519301915af16116ce6114c1565b90156116d75750565b602081519101fd5b507f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b507f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9190811015611750575b60051b0190565b61175861170f565b611749565b35611576816102b3565b909161178092811015611784575b60051b810190611620565b9091565b61178c61170f565b611775565b1561179857565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152fd5b6bffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006001549260601b169116178060015560601c73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f47e55c76e7a6f1fd8996a1da8008c1ea29699cca35e7bcd057f2dec313b6e5de600080a3565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314801561195f575b1561190157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f6163636f756e743a206e6f74204f776e6572206f7220456e747279506f696e746044820152fd5b5060015460601c33146118fa565b906119f06119e873ffffffffffffffffffffffffffffffffffffffff9260405160208101917f19457468657265756d205369676e6564204d6573736167653a0a3332000000008352603c820152603c81526119c7816108e7565b5190206119e261020d60015460601c96610140810190611620565b90611bc2565b919091611a39565b16036119fb57600090565b600190565b60051115611a0a57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b611a4281611a00565b80611a4a5750565b611a5381611a00565b60018103611aba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606490fd5b611ac381611a00565b60028103611b2a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606490fd5b80611b36600392611a00565b14611b3d57565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608490fd5b906041815114600014611bec57611780916020820151906060604084015193015160001a90611bf6565b5050600090600290565b9291907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311611c875791608094939160ff602094604051948552168484015260408301526060820152600093849182805260015afa15611c7a575b815173ffffffffffffffffffffffffffffffffffffffff811615611c74579190565b50600190565b611c826111fe565b611c52565b50505050600090600390565b600091829182602083519301915af16116ce6114c1565b60015460601c33148015611d1e575b15611cc057565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c79206f776e6572000000000000000000000000000000000000000000006044820152fd5b50303314611cb956fea2646970667358221220593fa2403beef0636f4ff38625c8e0f27859145384a308b0a9f2e56754fd82f664736f6c63430008110033\";\nvar isSuperArgs = function (xs) { return xs.length > 1; };\nvar SimpleAccount__factory = /** @class */ (function (_super) {\n __extends(SimpleAccount__factory, _super);\n function SimpleAccount__factory() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _this = this;\n if (isSuperArgs(args)) {\n _this = _super.apply(this, args) || this;\n }\n else {\n _this = _super.call(this, _abi, _bytecode, args[0]) || this;\n }\n return _this;\n }\n SimpleAccount__factory.prototype.deploy = function (anEntryPoint, overrides) {\n return _super.prototype.deploy.call(this, anEntryPoint, overrides || {});\n };\n SimpleAccount__factory.prototype.getDeployTransaction = function (anEntryPoint, overrides) {\n return _super.prototype.getDeployTransaction.call(this, anEntryPoint, overrides || {});\n };\n SimpleAccount__factory.prototype.attach = function (address) {\n return _super.prototype.attach.call(this, address);\n };\n SimpleAccount__factory.prototype.connect = function (signer) {\n return _super.prototype.connect.call(this, signer);\n };\n SimpleAccount__factory.createInterface = function () {\n return new ethers_1.utils.Interface(_abi);\n };\n SimpleAccount__factory.connect = function (address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n };\n SimpleAccount__factory.bytecode = _bytecode;\n SimpleAccount__factory.abi = _abi;\n return SimpleAccount__factory;\n}(ethers_1.ContractFactory));\nexports.SimpleAccount__factory = SimpleAccount__factory;\n","\"use strict\";\n/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\nexports.__esModule = true;\nexports.StakeManager__factory = void 0;\nvar ethers_1 = require(\"ethers\");\nvar _abi = [\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"account\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"totalDeposit\",\n type: \"uint256\"\n },\n ],\n name: \"Deposited\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"account\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"totalStaked\",\n type: \"uint256\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"unstakeDelaySec\",\n type: \"uint256\"\n },\n ],\n name: \"StakeLocked\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"account\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"withdrawTime\",\n type: \"uint256\"\n },\n ],\n name: \"StakeUnlocked\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"account\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"withdrawAddress\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n },\n ],\n name: \"StakeWithdrawn\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"account\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"withdrawAddress\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n },\n ],\n name: \"Withdrawn\",\n type: \"event\"\n },\n {\n inputs: [\n {\n internalType: \"uint32\",\n name: \"unstakeDelaySec\",\n type: \"uint32\"\n },\n ],\n name: \"addStake\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"account\",\n type: \"address\"\n },\n ],\n name: \"balanceOf\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"account\",\n type: \"address\"\n },\n ],\n name: \"depositTo\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\"\n },\n ],\n name: \"deposits\",\n outputs: [\n {\n internalType: \"uint112\",\n name: \"deposit\",\n type: \"uint112\"\n },\n {\n internalType: \"bool\",\n name: \"staked\",\n type: \"bool\"\n },\n {\n internalType: \"uint112\",\n name: \"stake\",\n type: \"uint112\"\n },\n {\n internalType: \"uint32\",\n name: \"unstakeDelaySec\",\n type: \"uint32\"\n },\n {\n internalType: \"uint48\",\n name: \"withdrawTime\",\n type: \"uint48\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"account\",\n type: \"address\"\n },\n ],\n name: \"getDepositInfo\",\n outputs: [\n {\n components: [\n {\n internalType: \"uint112\",\n name: \"deposit\",\n type: \"uint112\"\n },\n {\n internalType: \"bool\",\n name: \"staked\",\n type: \"bool\"\n },\n {\n internalType: \"uint112\",\n name: \"stake\",\n type: \"uint112\"\n },\n {\n internalType: \"uint32\",\n name: \"unstakeDelaySec\",\n type: \"uint32\"\n },\n {\n internalType: \"uint48\",\n name: \"withdrawTime\",\n type: \"uint48\"\n },\n ],\n internalType: \"struct IStakeManager.DepositInfo\",\n name: \"info\",\n type: \"tuple\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"unlockStake\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address payable\",\n name: \"withdrawAddress\",\n type: \"address\"\n },\n ],\n name: \"withdrawStake\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address payable\",\n name: \"withdrawAddress\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"withdrawAmount\",\n type: \"uint256\"\n },\n ],\n name: \"withdrawTo\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n stateMutability: \"payable\",\n type: \"receive\"\n },\n];\nvar StakeManager__factory = /** @class */ (function () {\n function StakeManager__factory() {\n }\n StakeManager__factory.createInterface = function () {\n return new ethers_1.utils.Interface(_abi);\n };\n StakeManager__factory.connect = function (address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n };\n StakeManager__factory.abi = _abi;\n return StakeManager__factory;\n}());\nexports.StakeManager__factory = StakeManager__factory;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nexports.__esModule = true;\nexports.TokenPaymaster__factory = void 0;\n/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\nvar ethers_1 = require(\"ethers\");\nvar _abi = [\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"accountFactory\",\n type: \"address\"\n },\n {\n internalType: \"string\",\n name: \"_symbol\",\n type: \"string\"\n },\n {\n internalType: \"contract IEntryPoint\",\n name: \"_entryPoint\",\n type: \"address\"\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"owner\",\n type: \"address\"\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"spender\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"value\",\n type: \"uint256\"\n },\n ],\n name: \"Approval\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"previousOwner\",\n type: \"address\"\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\"\n },\n ],\n name: \"OwnershipTransferred\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"from\",\n type: \"address\"\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"to\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"value\",\n type: \"uint256\"\n },\n ],\n name: \"Transfer\",\n type: \"event\"\n },\n {\n inputs: [],\n name: \"COST_OF_POST\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"uint32\",\n name: \"unstakeDelaySec\",\n type: \"uint32\"\n },\n ],\n name: \"addStake\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\"\n },\n {\n internalType: \"address\",\n name: \"spender\",\n type: \"address\"\n },\n ],\n name: \"allowance\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"spender\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n },\n ],\n name: \"approve\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\"\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"account\",\n type: \"address\"\n },\n ],\n name: \"balanceOf\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"decimals\",\n outputs: [\n {\n internalType: \"uint8\",\n name: \"\",\n type: \"uint8\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"spender\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"subtractedValue\",\n type: \"uint256\"\n },\n ],\n name: \"decreaseAllowance\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\"\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"deposit\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"entryPoint\",\n outputs: [\n {\n internalType: \"contract IEntryPoint\",\n name: \"\",\n type: \"address\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"getDeposit\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"spender\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"addedValue\",\n type: \"uint256\"\n },\n ],\n name: \"increaseAllowance\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\"\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"recipient\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n },\n ],\n name: \"mintTokens\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"name\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"enum IPaymaster.PostOpMode\",\n name: \"mode\",\n type: \"uint8\"\n },\n {\n internalType: \"bytes\",\n name: \"context\",\n type: \"bytes\"\n },\n {\n internalType: \"uint256\",\n name: \"actualGasCost\",\n type: \"uint256\"\n },\n ],\n name: \"postOp\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"renounceOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"symbol\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"theFactory\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"totalSupply\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n },\n ],\n name: \"transfer\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\"\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\"\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n },\n ],\n name: \"transferFrom\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\"\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\"\n },\n ],\n name: \"transferOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"unlockStake\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"initCode\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"callData\",\n type: \"bytes\"\n },\n {\n internalType: \"uint256\",\n name: \"callGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"verificationGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"preVerificationGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxPriorityFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"paymasterAndData\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"signature\",\n type: \"bytes\"\n },\n ],\n internalType: \"struct UserOperation\",\n name: \"userOp\",\n type: \"tuple\"\n },\n {\n internalType: \"bytes32\",\n name: \"userOpHash\",\n type: \"bytes32\"\n },\n {\n internalType: \"uint256\",\n name: \"maxCost\",\n type: \"uint256\"\n },\n ],\n name: \"validatePaymasterUserOp\",\n outputs: [\n {\n internalType: \"bytes\",\n name: \"context\",\n type: \"bytes\"\n },\n {\n internalType: \"uint256\",\n name: \"validationData\",\n type: \"uint256\"\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address payable\",\n name: \"withdrawAddress\",\n type: \"address\"\n },\n ],\n name: \"withdrawStake\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address payable\",\n name: \"withdrawAddress\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n },\n ],\n name: \"withdrawTo\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n];\nvar _bytecode = \"0x60c06040523480156200001157600080fd5b506040516200224438038062002244833981016040819052620000349162000327565b8180826200004233620000a0565b6001600160a01b031660805260046200005c8382620004bc565b5060056200006b8282620004bc565b5050506001600160a01b03831660a05262000088306001620000f0565b620000973033600019620001b9565b505050620005af565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0382166200014c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b806003600082825462000160919062000588565b90915550506001600160a01b0382166000818152600160209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b0383166200021d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840162000143565b6001600160a01b038216620002805760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000143565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b505050565b6001600160a01b0381168114620002fc57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b80516200032281620002e6565b919050565b6000806000606084860312156200033d57600080fd5b83516200034a81620002e6565b602085810151919450906001600160401b03808211156200036a57600080fd5b818701915087601f8301126200037f57600080fd5b815181811115620003945762000394620002ff565b604051601f8201601f19908116603f01168101908382118183101715620003bf57620003bf620002ff565b816040528281528a86848701011115620003d857600080fd5b600093505b82841015620003fc5784840186015181850187015292850192620003dd565b828411156200040e5760008684830101525b809750505050505050620004256040850162000315565b90509250925092565b600181811c908216806200044357607f821691505b6020821081036200046457634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620002e157600081815260208120601f850160051c81016020861015620004935750805b601f850160051c820191505b81811015620004b4578281556001016200049f565b505050505050565b81516001600160401b03811115620004d857620004d8620002ff565b620004f081620004e984546200042e565b846200046a565b602080601f8311600181146200052857600084156200050f5750858301515b600019600386901b1c1916600185901b178555620004b4565b600085815260208120601f198616915b82811015620005595788860151825594840194600190910190840162000538565b5085821015620005785787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008219821115620005aa57634e487b7160e01b600052601160045260246000fd5b500190565b60805160a051611c376200060d6000396000818161039201526116fa015260008181610426015281816105970152818161070b015281816108ea015281816109b101528181610a4101528181610af401526111f80152611c376000f3fe6080604052600436106101a15760003560e01c80639f5ca221116100e1578063c23a5cea1161008a578063dd62ed3e11610064578063dd62ed3e1461049a578063f0dda65c146104ed578063f2fde38b1461050d578063f465c77e1461052d57600080fd5b8063c23a5cea1461045d578063c399ec881461047d578063d0e30db01461049257600080fd5b8063a9a23409116100bb578063a9a23409146103f4578063b0d691fe14610414578063bb9fe6bf1461044857600080fd5b80639f5ca22114610380578063a457c2d7146103b4578063a9059cbb146103d457600080fd5b8063313ce5671161014e578063715018a611610128578063715018a6146102f4578063796d4371146103095780638da5cb5b1461031f57806395d89b411461036b57600080fd5b8063313ce56714610275578063395093511461029157806370a08231146102b157600080fd5b806318160ddd1161017f57806318160ddd14610216578063205c28781461023557806323b872dd1461025557600080fd5b80630396cb60146101a657806306fdde03146101bb578063095ea7b3146101e6575b600080fd5b6101b96101b43660046117a8565b61055b565b005b3480156101c757600080fd5b506101d061060d565b6040516101dd9190611840565b60405180910390f35b3480156101f257600080fd5b50610206610201366004611875565b61069f565b60405190151581526020016101dd565b34801561022257600080fd5b506003545b6040519081526020016101dd565b34801561024157600080fd5b506101b9610250366004611875565b6106b7565b34801561026157600080fd5b506102066102703660046118a1565b61074f565b34801561028157600080fd5b50604051601281526020016101dd565b34801561029d57600080fd5b506102066102ac366004611875565b610773565b3480156102bd57600080fd5b506102276102cc3660046118e2565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205490565b34801561030057600080fd5b506101b96107bf565b34801561031557600080fd5b50610227613a9881565b34801561032b57600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101dd565b34801561037757600080fd5b506101d06107d3565b34801561038c57600080fd5b506103467f000000000000000000000000000000000000000000000000000000000000000081565b3480156103c057600080fd5b506102066103cf366004611875565b6107e2565b3480156103e057600080fd5b506102066103ef366004611875565b6108b8565b34801561040057600080fd5b506101b961040f3660046118ff565b6108c6565b34801561042057600080fd5b506103467f000000000000000000000000000000000000000000000000000000000000000081565b34801561045457600080fd5b506101b96108e0565b34801561046957600080fd5b506101b96104783660046118e2565b610964565b34801561048957600080fd5b50610227610a10565b6101b9610ac6565b3480156104a657600080fd5b506102276104b536600461198e565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260026020908152604080832093909416825291909152205490565b3480156104f957600080fd5b506101b9610508366004611875565b610b4e565b34801561051957600080fd5b506101b96105283660046118e2565b610b64565b34801561053957600080fd5b5061054d6105483660046119c7565b610bcd565b6040516101dd929190611a1b565b610563610bf0565b6040517f0396cb6000000000000000000000000000000000000000000000000000000000815263ffffffff821660048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690630396cb609034906024016000604051808303818588803b1580156105f157600080fd5b505af1158015610605573d6000803e3d6000fd5b505050505050565b60606004805461061c90611a3d565b80601f016020809104026020016040519081016040528092919081815260200182805461064890611a3d565b80156106955780601f1061066a57610100808354040283529160200191610695565b820191906000526020600020905b81548152906001019060200180831161067857829003601f168201915b5050505050905090565b6000336106ad818585610c71565b5060019392505050565b6106bf610bf0565b6040517f205c287800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063205c287890604401600060405180830381600087803b1580156105f157600080fd5b60003361075d858285610e24565b610768858585610ef5565b506001949350505050565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906106ad90829086906107ba908790611a90565b610c71565b6107c7610bf0565b6107d1600061116b565b565b60606005805461061c90611a3d565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909190838110156108ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6107688286868403610c71565b6000336106ad818585610ef5565b6108ce6111e0565b6108da8484848461127f565b50505050565b6108e8610bf0565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663bb9fe6bf6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561095057600080fd5b505af11580156108da573d6000803e3d6000fd5b61096c610bf0565b6040517fc23a5cea00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063c23a5cea90602401600060405180830381600087803b1580156109f557600080fd5b505af1158015610a09573d6000803e3d6000fd5b5050505050565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac19190611acf565b905090565b6040517fb760faf90000000000000000000000000000000000000000000000000000000081523060048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063b760faf99034906024016000604051808303818588803b1580156109f557600080fd5b610b56610bf0565b610b6082826112b2565b5050565b610b6c610bf0565b610b9630610b8f60005473ffffffffffffffffffffffffffffffffffffffff1690565b6000610c71565b610b9f816113a7565b610bca30827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610c71565b50565b60606000610bd96111e0565b610be485858561145b565b91509150935093915050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146107d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108a2565b73ffffffffffffffffffffffffffffffffffffffff8316610d13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016108a2565b73ffffffffffffffffffffffffffffffffffffffff8216610db6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016108a2565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600260209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146108da5781811015610ee8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016108a2565b6108da8484848403610c71565b73ffffffffffffffffffffffffffffffffffffffff8316610f98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016108a2565b73ffffffffffffffffffffffffffffffffffffffff821661103b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016108a2565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054818110156110f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016108a2565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526001602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061115e9086815260200190565b60405180910390a36108da565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146107d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f53656e646572206e6f7420456e747279506f696e74000000000000000000000060448201526064016108a2565b600061128d838501856118e2565b905060006112a56112a0613a9885611a90565b6116a4565b9050610605823083610ef5565b73ffffffffffffffffffffffffffffffffffffffff821661132f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016108a2565b80600360008282546113419190611a90565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000818152600160209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6113af610bf0565b73ffffffffffffffffffffffffffffffffffffffff8116611452576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016108a2565b610bca8161116b565b6060600080611469846116a4565b9050613a988660a0013511611500576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f546f6b656e5061796d61737465723a2067617320746f6f206c6f7720666f722060448201527f706f73744f70000000000000000000000000000000000000000000000000000060648201526084016108a2565b61150d6040870187611ae8565b1590506115c15761151d866116b7565b8061152e6102cc60208901896118e2565b10156115bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f546f6b656e5061796d61737465723a206e6f2062616c616e636520287072652d60448201527f637265617465290000000000000000000000000000000000000000000000000060648201526084016108a2565b61163a565b806115d26102cc60208901896118e2565b101561163a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f546f6b656e5061796d61737465723a206e6f2062616c616e636500000000000060448201526064016108a2565b61164760208701876118e2565b6040805173ffffffffffffffffffffffffffffffffffffffff909216602083015201604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190529660009650945050505050565b60006116b1606483611b54565b92915050565b60006116c66040830183611ae8565b6116d591601491600091611b8f565b6116de91611bb9565b60601c905073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168114610b60576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f546f6b656e5061796d61737465723a2077726f6e67206163636f756e7420666160448201527f63746f727900000000000000000000000000000000000000000000000000000060648201526084016108a2565b6000602082840312156117ba57600080fd5b813563ffffffff811681146117ce57600080fd5b9392505050565b6000815180845260005b818110156117fb576020818501810151868301820152016117df565b8181111561180d576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006117ce60208301846117d5565b73ffffffffffffffffffffffffffffffffffffffff81168114610bca57600080fd5b6000806040838503121561188857600080fd5b823561189381611853565b946020939093013593505050565b6000806000606084860312156118b657600080fd5b83356118c181611853565b925060208401356118d181611853565b929592945050506040919091013590565b6000602082840312156118f457600080fd5b81356117ce81611853565b6000806000806060858703121561191557600080fd5b84356003811061192457600080fd5b9350602085013567ffffffffffffffff8082111561194157600080fd5b818701915087601f83011261195557600080fd5b81358181111561196457600080fd5b88602082850101111561197657600080fd5b95986020929092019750949560400135945092505050565b600080604083850312156119a157600080fd5b82356119ac81611853565b915060208301356119bc81611853565b809150509250929050565b6000806000606084860312156119dc57600080fd5b833567ffffffffffffffff8111156119f357600080fd5b84016101608187031215611a0657600080fd5b95602085013595506040909401359392505050565b604081526000611a2e60408301856117d5565b90508260208301529392505050565b600181811c90821680611a5157607f821691505b602082108103611a8a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60008219821115611aca577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500190565b600060208284031215611ae157600080fd5b5051919050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112611b1d57600080fd5b83018035915067ffffffffffffffff821115611b3857600080fd5b602001915036819003821315611b4d57600080fd5b9250929050565b600082611b8a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60008085851115611b9f57600080fd5b83861115611bac57600080fd5b5050820193919092039150565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008135818116916014851015611bf95780818660140360031b1b83161692505b50509291505056fea2646970667358221220a332863119321216e5189708c2880dbc64e46a1707c0f292f429daa2c9a7ea3764736f6c634300080f0033\";\nvar isSuperArgs = function (xs) { return xs.length > 1; };\nvar TokenPaymaster__factory = /** @class */ (function (_super) {\n __extends(TokenPaymaster__factory, _super);\n function TokenPaymaster__factory() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _this = this;\n if (isSuperArgs(args)) {\n _this = _super.apply(this, args) || this;\n }\n else {\n _this = _super.call(this, _abi, _bytecode, args[0]) || this;\n }\n return _this;\n }\n TokenPaymaster__factory.prototype.deploy = function (accountFactory, _symbol, _entryPoint, overrides) {\n return _super.prototype.deploy.call(this, accountFactory, _symbol, _entryPoint, overrides || {});\n };\n TokenPaymaster__factory.prototype.getDeployTransaction = function (accountFactory, _symbol, _entryPoint, overrides) {\n return _super.prototype.getDeployTransaction.call(this, accountFactory, _symbol, _entryPoint, overrides || {});\n };\n TokenPaymaster__factory.prototype.attach = function (address) {\n return _super.prototype.attach.call(this, address);\n };\n TokenPaymaster__factory.prototype.connect = function (signer) {\n return _super.prototype.connect.call(this, signer);\n };\n TokenPaymaster__factory.createInterface = function () {\n return new ethers_1.utils.Interface(_abi);\n };\n TokenPaymaster__factory.connect = function (address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n };\n TokenPaymaster__factory.bytecode = _bytecode;\n TokenPaymaster__factory.abi = _abi;\n return TokenPaymaster__factory;\n}(ethers_1.ContractFactory));\nexports.TokenPaymaster__factory = TokenPaymaster__factory;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nexports.__esModule = true;\nexports.VerifyingPaymaster__factory = void 0;\n/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\nvar ethers_1 = require(\"ethers\");\nvar _abi = [\n {\n inputs: [\n {\n internalType: \"contract IEntryPoint\",\n name: \"_entryPoint\",\n type: \"address\"\n },\n {\n internalType: \"address\",\n name: \"_verifyingSigner\",\n type: \"address\"\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"previousOwner\",\n type: \"address\"\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\"\n },\n ],\n name: \"OwnershipTransferred\",\n type: \"event\"\n },\n {\n inputs: [\n {\n internalType: \"uint32\",\n name: \"unstakeDelaySec\",\n type: \"uint32\"\n },\n ],\n name: \"addStake\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"deposit\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"entryPoint\",\n outputs: [\n {\n internalType: \"contract IEntryPoint\",\n name: \"\",\n type: \"address\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"getDeposit\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"initCode\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"callData\",\n type: \"bytes\"\n },\n {\n internalType: \"uint256\",\n name: \"callGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"verificationGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"preVerificationGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxPriorityFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"paymasterAndData\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"signature\",\n type: \"bytes\"\n },\n ],\n internalType: \"struct UserOperation\",\n name: \"userOp\",\n type: \"tuple\"\n },\n {\n internalType: \"uint48\",\n name: \"validUntil\",\n type: \"uint48\"\n },\n {\n internalType: \"uint48\",\n name: \"validAfter\",\n type: \"uint48\"\n },\n ],\n name: \"getHash\",\n outputs: [\n {\n internalType: \"bytes32\",\n name: \"\",\n type: \"bytes32\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"bytes\",\n name: \"paymasterAndData\",\n type: \"bytes\"\n },\n ],\n name: \"parsePaymasterAndData\",\n outputs: [\n {\n internalType: \"uint48\",\n name: \"validUntil\",\n type: \"uint48\"\n },\n {\n internalType: \"uint48\",\n name: \"validAfter\",\n type: \"uint48\"\n },\n {\n internalType: \"bytes\",\n name: \"signature\",\n type: \"bytes\"\n },\n ],\n stateMutability: \"pure\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"enum IPaymaster.PostOpMode\",\n name: \"mode\",\n type: \"uint8\"\n },\n {\n internalType: \"bytes\",\n name: \"context\",\n type: \"bytes\"\n },\n {\n internalType: \"uint256\",\n name: \"actualGasCost\",\n type: \"uint256\"\n },\n ],\n name: \"postOp\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"renounceOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\"\n },\n ],\n name: \"senderNonce\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\"\n },\n ],\n name: \"transferOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"unlockStake\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"initCode\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"callData\",\n type: \"bytes\"\n },\n {\n internalType: \"uint256\",\n name: \"callGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"verificationGasLimit\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"preVerificationGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"maxPriorityFeePerGas\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"paymasterAndData\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"signature\",\n type: \"bytes\"\n },\n ],\n internalType: \"struct UserOperation\",\n name: \"userOp\",\n type: \"tuple\"\n },\n {\n internalType: \"bytes32\",\n name: \"userOpHash\",\n type: \"bytes32\"\n },\n {\n internalType: \"uint256\",\n name: \"maxCost\",\n type: \"uint256\"\n },\n ],\n name: \"validatePaymasterUserOp\",\n outputs: [\n {\n internalType: \"bytes\",\n name: \"context\",\n type: \"bytes\"\n },\n {\n internalType: \"uint256\",\n name: \"validationData\",\n type: \"uint256\"\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"verifyingSigner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\"\n },\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address payable\",\n name: \"withdrawAddress\",\n type: \"address\"\n },\n ],\n name: \"withdrawStake\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address payable\",\n name: \"withdrawAddress\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n },\n ],\n name: \"withdrawTo\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n];\nvar _bytecode = \"0x60c06040523480156200001157600080fd5b5060405162001723380380620017238339810160408190526200003491620000c2565b81620000403362000059565b6001600160a01b039081166080521660a0525062000101565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114620000bf57600080fd5b50565b60008060408385031215620000d657600080fd5b8251620000e381620000a9565b6020840151909250620000f681620000a9565b809150509250929050565b60805160a0516115c46200015f6000396000818161013f0152610ca20152600081816102880152818161038601528181610450015281816105730152818161063a015281816106ca0152818161077d0152610a0401526115c46000f3fe6080604052600436106100f35760003560e01c8063a9a234091161008a578063c399ec8811610059578063c399ec88146102df578063d0e30db0146102f4578063f2fde38b146102fc578063f465c77e1461031c57600080fd5b8063a9a2340914610256578063b0d691fe14610276578063bb9fe6bf146102aa578063c23a5cea146102bf57600080fd5b80638da5cb5b116100c65780638da5cb5b146101a057806394d4ad60146101cb57806394e1fc19146101fb5780639c90b4431461022957600080fd5b80630396cb60146100f8578063205c28781461010d57806323d9ac9b1461012d578063715018a61461018b575b600080fd5b61010b610106366004611075565b61034a565b005b34801561011957600080fd5b5061010b6101283660046110c4565b6103fc565b34801561013957600080fd5b506101617f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561019757600080fd5b5061010b610494565b3480156101ac57600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff16610161565b3480156101d757600080fd5b506101eb6101e6366004611132565b6104a8565b6040516101829493929190611174565b34801561020757600080fd5b5061021b610216366004611212565b6104e5565b604051908152602001610182565b34801561023557600080fd5b5061021b610244366004611270565b60016020526000908152604090205481565b34801561026257600080fd5b5061010b61027136600461128d565b61054f565b34801561028257600080fd5b506101617f000000000000000000000000000000000000000000000000000000000000000081565b3480156102b657600080fd5b5061010b610569565b3480156102cb57600080fd5b5061010b6102da366004611270565b6105ed565b3480156102eb57600080fd5b5061021b610699565b61010b61074f565b34801561030857600080fd5b5061010b610317366004611270565b6107d7565b34801561032857600080fd5b5061033c6103373660046112ed565b610893565b6040516101829291906113a6565b6103526108b7565b6040517f0396cb6000000000000000000000000000000000000000000000000000000000815263ffffffff821660048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690630396cb609034906024016000604051808303818588803b1580156103e057600080fd5b505af11580156103f4573d6000803e3d6000fd5b505050505050565b6104046108b7565b6040517f205c287800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063205c287890604401600060405180830381600087803b1580156103e057600080fd5b61049c6108b7565b6104a66000610938565b565b60008036816104bb6054601487896113c8565b8101906104c891906113f2565b90945092506104da85605481896113c8565b949793965094505050565b60006104f0846109ad565b73ffffffffffffffffffffffffffffffffffffffff8535166000908152600160209081526040918290205491516105309392469230928991899101611425565b6040516020818303038152906040528051906020012090509392505050565b6105576109ec565b61056384848484610a8b565b50505050565b6105716108b7565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663bb9fe6bf6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156105d957600080fd5b505af1158015610563573d6000803e3d6000fd5b6105f56108b7565b6040517fc23a5cea00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063c23a5cea90602401600060405180830381600087803b15801561067e57600080fd5b505af1158015610692573d6000803e3d6000fd5b5050505050565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015610726573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074a9190611482565b905090565b6040517fb760faf90000000000000000000000000000000000000000000000000000000081523060048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063b760faf99034906024016000604051808303818588803b15801561067e57600080fd5b6107df6108b7565b73ffffffffffffffffffffffffffffffffffffffff8116610887576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61089081610938565b50565b6060600061089f6109ec565b6108aa858585610aed565b915091505b935093915050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146104a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161087e565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60603660006109c061012085018561149b565b915091508360208184030360405194506020810185016040528085528082602087013750505050919050565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146104a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f53656e646572206e6f7420456e747279506f696e740000000000000000000000604482015260640161087e565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f6d757374206f7665727269646500000000000000000000000000000000000000604482015260640161087e565b6060600080803681610b066101e66101208b018b61149b565b929650909450925090506040811480610b1f5750604181145b610bad57604080517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260248101919091527f566572696679696e675061796d61737465723a20696e76616c6964207369676e60448201527f6174757265206c656e67746820696e207061796d6173746572416e6444617461606482015260840161087e565b6000610c10610bbd8b87876104e5565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b73ffffffffffffffffffffffffffffffffffffffff8b35166000908152600160205260408120805492935090610c4583611500565b9190505550610c8a8184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610d3292505050565b73ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610d0757610ce860018686610d56565b60405180602001604052806000815250909650965050505050506108af565b610d1360008686610d56565b6040805160208101909152600081529b909a5098505050505050505050565b6000806000610d418585610d8e565b91509150610d4e81610dd3565b509392505050565b600060d08265ffffffffffff16901b60a08465ffffffffffff16901b85610d7e576000610d81565b60015b60ff161717949350505050565b6000808251604103610dc45760208301516040840151606085015160001a610db887828585610f86565b94509450505050610dcc565b506000905060025b9250929050565b6000816004811115610de757610de761155f565b03610def5750565b6001816004811115610e0357610e0361155f565b03610e6a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161087e565b6002816004811115610e7e57610e7e61155f565b03610ee5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161087e565b6003816004811115610ef957610ef961155f565b03610890576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f7565000000000000000000000000000000000000000000000000000000000000606482015260840161087e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115610fbd575060009050600361106c565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611011573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166110655760006001925092505061106c565b9150600090505b94509492505050565b60006020828403121561108757600080fd5b813563ffffffff8116811461109b57600080fd5b9392505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461089057600080fd5b600080604083850312156110d757600080fd5b82356110e2816110a2565b946020939093013593505050565b60008083601f84011261110257600080fd5b50813567ffffffffffffffff81111561111a57600080fd5b602083019150836020828501011115610dcc57600080fd5b6000806020838503121561114557600080fd5b823567ffffffffffffffff81111561115c57600080fd5b611168858286016110f0565b90969095509350505050565b600065ffffffffffff8087168352808616602084015250606060408301528260608301528284608084013760006080848401015260807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f850116830101905095945050505050565b600061016082840312156111f157600080fd5b50919050565b803565ffffffffffff8116811461120d57600080fd5b919050565b60008060006060848603121561122757600080fd5b833567ffffffffffffffff81111561123e57600080fd5b61124a868287016111de565b935050611259602085016111f7565b9150611267604085016111f7565b90509250925092565b60006020828403121561128257600080fd5b813561109b816110a2565b600080600080606085870312156112a357600080fd5b8435600381106112b257600080fd5b9350602085013567ffffffffffffffff8111156112ce57600080fd5b6112da878288016110f0565b9598909750949560400135949350505050565b60008060006060848603121561130257600080fd5b833567ffffffffffffffff81111561131957600080fd5b611325868287016111de565b9660208601359650604090950135949350505050565b6000815180845260005b8181101561136157602081850181015186830182015201611345565b81811115611373576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6040815260006113b9604083018561133b565b90508260208301529392505050565b600080858511156113d857600080fd5b838611156113e557600080fd5b5050820193919092039150565b6000806040838503121561140557600080fd5b61140e836111f7565b915061141c602084016111f7565b90509250929050565b60c08152600061143860c083018961133b565b60208301979097525073ffffffffffffffffffffffffffffffffffffffff949094166040850152606084019290925265ffffffffffff90811660808401521660a090910152919050565b60006020828403121561149457600080fd5b5051919050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126114d057600080fd5b83018035915067ffffffffffffffff8211156114eb57600080fd5b602001915036819003821315610dcc57600080fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611558577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea26469706673582212201f0be91b92179d101ae4aa96dcbd313210e5b62f1b15c18338e0acb937cb466a64736f6c634300080f0033\";\nvar isSuperArgs = function (xs) { return xs.length > 1; };\nvar VerifyingPaymaster__factory = /** @class */ (function (_super) {\n __extends(VerifyingPaymaster__factory, _super);\n function VerifyingPaymaster__factory() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _this = this;\n if (isSuperArgs(args)) {\n _this = _super.apply(this, args) || this;\n }\n else {\n _this = _super.call(this, _abi, _bytecode, args[0]) || this;\n }\n return _this;\n }\n VerifyingPaymaster__factory.prototype.deploy = function (_entryPoint, _verifyingSigner, overrides) {\n return _super.prototype.deploy.call(this, _entryPoint, _verifyingSigner, overrides || {});\n };\n VerifyingPaymaster__factory.prototype.getDeployTransaction = function (_entryPoint, _verifyingSigner, overrides) {\n return _super.prototype.getDeployTransaction.call(this, _entryPoint, _verifyingSigner, overrides || {});\n };\n VerifyingPaymaster__factory.prototype.attach = function (address) {\n return _super.prototype.attach.call(this, address);\n };\n VerifyingPaymaster__factory.prototype.connect = function (signer) {\n return _super.prototype.connect.call(this, signer);\n };\n VerifyingPaymaster__factory.createInterface = function () {\n return new ethers_1.utils.Interface(_abi);\n };\n VerifyingPaymaster__factory.connect = function (address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n };\n VerifyingPaymaster__factory.bytecode = _bytecode;\n VerifyingPaymaster__factory.abi = _abi;\n return VerifyingPaymaster__factory;\n}(ethers_1.ContractFactory));\nexports.VerifyingPaymaster__factory = VerifyingPaymaster__factory;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nexports.__esModule = true;\nexports.VerifyingPaymaster__factory = exports.TokenPaymaster__factory = exports.StakeManager__factory = exports.SimpleAccountFactory__factory = exports.SimpleAccount__factory = exports.SenderCreator__factory = exports.MaliciousAccount__factory = exports.IStakeManager__factory = exports.IPaymaster__factory = exports.IEntryPoint__factory = exports.IAggregator__factory = exports.IAccount__factory = exports.EntryPoint__factory = exports.DepositPaymaster__factory = exports.BrokenBLSAccountFactory__factory = exports.BrokenBLSAccount__factory = exports.BasePaymaster__factory = exports.BaseAccount__factory = void 0;\n/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\nvar BaseAccount__factory_1 = require(\"./BaseAccount__factory\");\n__createBinding(exports, BaseAccount__factory_1, \"BaseAccount__factory\");\nvar BasePaymaster__factory_1 = require(\"./BasePaymaster__factory\");\n__createBinding(exports, BasePaymaster__factory_1, \"BasePaymaster__factory\");\nvar BrokenBLSAccount__factory_1 = require(\"./BrokenBLSAccount__factory\");\n__createBinding(exports, BrokenBLSAccount__factory_1, \"BrokenBLSAccount__factory\");\nvar BrokenBLSAccountFactory__factory_1 = require(\"./BrokenBLSAccountFactory__factory\");\n__createBinding(exports, BrokenBLSAccountFactory__factory_1, \"BrokenBLSAccountFactory__factory\");\nvar DepositPaymaster__factory_1 = require(\"./DepositPaymaster__factory\");\n__createBinding(exports, DepositPaymaster__factory_1, \"DepositPaymaster__factory\");\nvar EntryPoint__factory_1 = require(\"./EntryPoint__factory\");\n__createBinding(exports, EntryPoint__factory_1, \"EntryPoint__factory\");\nvar IAccount__factory_1 = require(\"./IAccount__factory\");\n__createBinding(exports, IAccount__factory_1, \"IAccount__factory\");\nvar IAggregator__factory_1 = require(\"./IAggregator__factory\");\n__createBinding(exports, IAggregator__factory_1, \"IAggregator__factory\");\nvar IEntryPoint__factory_1 = require(\"./IEntryPoint__factory\");\n__createBinding(exports, IEntryPoint__factory_1, \"IEntryPoint__factory\");\nvar IPaymaster__factory_1 = require(\"./IPaymaster__factory\");\n__createBinding(exports, IPaymaster__factory_1, \"IPaymaster__factory\");\nvar IStakeManager__factory_1 = require(\"./IStakeManager__factory\");\n__createBinding(exports, IStakeManager__factory_1, \"IStakeManager__factory\");\nvar MaliciousAccount__factory_1 = require(\"./MaliciousAccount__factory\");\n__createBinding(exports, MaliciousAccount__factory_1, \"MaliciousAccount__factory\");\nvar SenderCreator__factory_1 = require(\"./SenderCreator__factory\");\n__createBinding(exports, SenderCreator__factory_1, \"SenderCreator__factory\");\nvar SimpleAccount__factory_1 = require(\"./SimpleAccount__factory\");\n__createBinding(exports, SimpleAccount__factory_1, \"SimpleAccount__factory\");\nvar SimpleAccountFactory__factory_1 = require(\"./SimpleAccountFactory__factory\");\n__createBinding(exports, SimpleAccountFactory__factory_1, \"SimpleAccountFactory__factory\");\nvar StakeManager__factory_1 = require(\"./StakeManager__factory\");\n__createBinding(exports, StakeManager__factory_1, \"StakeManager__factory\");\nvar TokenPaymaster__factory_1 = require(\"./TokenPaymaster__factory\");\n__createBinding(exports, TokenPaymaster__factory_1, \"TokenPaymaster__factory\");\nvar VerifyingPaymaster__factory_1 = require(\"./VerifyingPaymaster__factory\");\n__createBinding(exports, VerifyingPaymaster__factory_1, \"VerifyingPaymaster__factory\");\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nexports.__esModule = true;\nexports.VerifyingPaymaster__factory = exports.TokenPaymaster__factory = exports.StakeManager__factory = exports.SimpleAccountFactory__factory = exports.SimpleAccount__factory = exports.SenderCreator__factory = exports.MaliciousAccount__factory = exports.IStakeManager__factory = exports.IPaymaster__factory = exports.IEntryPoint__factory = exports.IAggregator__factory = exports.IAccount__factory = exports.EntryPoint__factory = exports.DepositPaymaster__factory = exports.BrokenBLSAccountFactory__factory = exports.BrokenBLSAccount__factory = exports.BasePaymaster__factory = exports.BaseAccount__factory = exports.factories = void 0;\nexports.factories = require(\"./factories\");\nvar BaseAccount__factory_1 = require(\"./factories/BaseAccount__factory\");\n__createBinding(exports, BaseAccount__factory_1, \"BaseAccount__factory\");\nvar BasePaymaster__factory_1 = require(\"./factories/BasePaymaster__factory\");\n__createBinding(exports, BasePaymaster__factory_1, \"BasePaymaster__factory\");\nvar BrokenBLSAccount__factory_1 = require(\"./factories/BrokenBLSAccount__factory\");\n__createBinding(exports, BrokenBLSAccount__factory_1, \"BrokenBLSAccount__factory\");\nvar BrokenBLSAccountFactory__factory_1 = require(\"./factories/BrokenBLSAccountFactory__factory\");\n__createBinding(exports, BrokenBLSAccountFactory__factory_1, \"BrokenBLSAccountFactory__factory\");\nvar DepositPaymaster__factory_1 = require(\"./factories/DepositPaymaster__factory\");\n__createBinding(exports, DepositPaymaster__factory_1, \"DepositPaymaster__factory\");\nvar EntryPoint__factory_1 = require(\"./factories/EntryPoint__factory\");\n__createBinding(exports, EntryPoint__factory_1, \"EntryPoint__factory\");\nvar IAccount__factory_1 = require(\"./factories/IAccount__factory\");\n__createBinding(exports, IAccount__factory_1, \"IAccount__factory\");\nvar IAggregator__factory_1 = require(\"./factories/IAggregator__factory\");\n__createBinding(exports, IAggregator__factory_1, \"IAggregator__factory\");\nvar IEntryPoint__factory_1 = require(\"./factories/IEntryPoint__factory\");\n__createBinding(exports, IEntryPoint__factory_1, \"IEntryPoint__factory\");\nvar IPaymaster__factory_1 = require(\"./factories/IPaymaster__factory\");\n__createBinding(exports, IPaymaster__factory_1, \"IPaymaster__factory\");\nvar IStakeManager__factory_1 = require(\"./factories/IStakeManager__factory\");\n__createBinding(exports, IStakeManager__factory_1, \"IStakeManager__factory\");\nvar MaliciousAccount__factory_1 = require(\"./factories/MaliciousAccount__factory\");\n__createBinding(exports, MaliciousAccount__factory_1, \"MaliciousAccount__factory\");\nvar SenderCreator__factory_1 = require(\"./factories/SenderCreator__factory\");\n__createBinding(exports, SenderCreator__factory_1, \"SenderCreator__factory\");\nvar SimpleAccount__factory_1 = require(\"./factories/SimpleAccount__factory\");\n__createBinding(exports, SimpleAccount__factory_1, \"SimpleAccount__factory\");\nvar SimpleAccountFactory__factory_1 = require(\"./factories/SimpleAccountFactory__factory\");\n__createBinding(exports, SimpleAccountFactory__factory_1, \"SimpleAccountFactory__factory\");\nvar StakeManager__factory_1 = require(\"./factories/StakeManager__factory\");\n__createBinding(exports, StakeManager__factory_1, \"StakeManager__factory\");\nvar TokenPaymaster__factory_1 = require(\"./factories/TokenPaymaster__factory\");\n__createBinding(exports, TokenPaymaster__factory_1, \"TokenPaymaster__factory\");\nvar VerifyingPaymaster__factory_1 = require(\"./factories/VerifyingPaymaster__factory\");\n__createBinding(exports, VerifyingPaymaster__factory_1, \"VerifyingPaymaster__factory\");\n","/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n // Using Node instead of HTMLElement since container may be a ShadowRoot\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? process.env.NODE_ENV === 'production' : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (process.env.NODE_ENV !== 'production') {\n var isImportRule = rule.charCodeAt(0) === 64 && rule.charCodeAt(1) === 105;\n\n if (isImportRule && this._alreadyInsertedOrderInsensitiveRule) {\n // this would only cause problem in speedy mode\n // but we don't want enabling speedy to affect the observable behavior\n // so we report this error at all times\n console.error(\"You're attempting to insert the following rule:\\n\" + rule + '\\n\\n`@import` rules must be before all other types of rules in a stylesheet but other rules have already been inserted. Please ensure that `@import` rules are before all other rules.');\n }\n this._alreadyInsertedOrderInsensitiveRule = this._alreadyInsertedOrderInsensitiveRule || !isImportRule;\n }\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production' && !/:(-moz-placeholder|-moz-focus-inner|-moz-focusring|-ms-input-placeholder|-moz-read-write|-moz-read-only|-ms-clear|-ms-expand|-ms-reveal){/.test(rule)) {\n console.error(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n }\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode && tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n\n if (process.env.NODE_ENV !== 'production') {\n this._alreadyInsertedOrderInsensitiveRule = false;\n }\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, RULESET, combine, match, serialize, copy, replace, WEBKIT, MOZ, MS, KEYFRAMES, DECLARATION, hash, charat, strlen, indexof, stringify, COMMENT, rulesheet, middleware, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value,\n parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\nvar ignoreFlag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n\nvar isIgnoringComment = function isIgnoringComment(element) {\n return element.type === 'comm' && element.children.indexOf(ignoreFlag) > -1;\n};\n\nvar createUnsafeSelectorsAlarm = function createUnsafeSelectorsAlarm(cache) {\n return function (element, index, children) {\n if (element.type !== 'rule' || cache.compat) return;\n var unsafePseudoClasses = element.value.match(/(:first|:nth|:nth-last)-child/g);\n\n if (unsafePseudoClasses) {\n var isNested = !!element.parent; // in nested rules comments become children of the \"auto-inserted\" rule and that's always the `element.parent`\n //\n // considering this input:\n // .a {\n // .b /* comm */ {}\n // color: hotpink;\n // }\n // we get output corresponding to this:\n // .a {\n // & {\n // /* comm */\n // color: hotpink;\n // }\n // .b {}\n // }\n\n var commentContainer = isNested ? element.parent.children : // global rule at the root level\n children;\n\n for (var i = commentContainer.length - 1; i >= 0; i--) {\n var node = commentContainer[i];\n\n if (node.line < element.line) {\n break;\n } // it is quite weird but comments are *usually* put at `column: element.column - 1`\n // so we seek *from the end* for the node that is earlier than the rule's `element` and check that\n // this will also match inputs like this:\n // .a {\n // /* comm */\n // .b {}\n // }\n //\n // but that is fine\n //\n // it would be the easiest to change the placement of the comment to be the first child of the rule:\n // .a {\n // .b { /* comm */ }\n // }\n // with such inputs we wouldn't have to search for the comment at all\n // TODO: consider changing this comment placement in the next major version\n\n\n if (node.column < element.column) {\n if (isIgnoringComment(node)) {\n return;\n }\n\n break;\n }\n }\n\n unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n });\n }\n };\n};\n\nvar isImportRule = function isImportRule(element) {\n return element.type.charCodeAt(1) === 105 && element.type.charCodeAt(0) === 64;\n};\n\nvar isPrependedWithRegularRules = function isPrependedWithRegularRules(index, children) {\n for (var i = index - 1; i >= 0; i--) {\n if (!isImportRule(children[i])) {\n return true;\n }\n }\n\n return false;\n}; // use this to remove incorrect elements from further processing\n// so they don't get handed to the `sheet` (or anything else)\n// as that could potentially lead to additional logs which in turn could be overhelming to the user\n\n\nvar nullifyElement = function nullifyElement(element) {\n element.type = '';\n element.value = '';\n element[\"return\"] = '';\n element.children = '';\n element.props = '';\n};\n\nvar incorrectImportAlarm = function incorrectImportAlarm(element, index, children) {\n if (!isImportRule(element)) {\n return;\n }\n\n if (element.parent) {\n console.error(\"`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles.\");\n nullifyElement(element);\n } else if (isPrependedWithRegularRules(index, children)) {\n console.error(\"`@import` rules can't be after other rules. Please put your `@import` rules before your other rules.\");\n nullifyElement(element);\n }\n};\n\n/* eslint-disable no-fallthrough */\n\nfunction prefix(value, length) {\n switch (hash(value, length)) {\n // color-adjust\n case 5103:\n return WEBKIT + 'print-' + value + value;\n // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n case 5737:\n case 4201:\n case 3177:\n case 3433:\n case 1641:\n case 4457:\n case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n case 5572:\n case 6356:\n case 5844:\n case 3191:\n case 6645:\n case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n case 6391:\n case 5879:\n case 5623:\n case 6135:\n case 4599:\n case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n case 4215:\n case 6389:\n case 5109:\n case 5365:\n case 5621:\n case 3829:\n return WEBKIT + value + value;\n // appearance, user-select, transform, hyphens, text-size-adjust\n\n case 5349:\n case 4246:\n case 4810:\n case 6968:\n case 2756:\n return WEBKIT + value + MOZ + value + MS + value + value;\n // flex, flex-direction\n\n case 6828:\n case 4268:\n return WEBKIT + value + MS + value + value;\n // order\n\n case 6165:\n return WEBKIT + value + MS + 'flex-' + value + value;\n // align-items\n\n case 5187:\n return WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value;\n // align-self\n\n case 5443:\n return WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value;\n // align-content\n\n case 4675:\n return WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value;\n // flex-shrink\n\n case 5548:\n return WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value;\n // flex-basis\n\n case 5292:\n return WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value;\n // flex-grow\n\n case 6060:\n return WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value;\n // transition\n\n case 4554:\n return WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value;\n // cursor\n\n case 6187:\n return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value;\n // background, background-image\n\n case 5495:\n case 3959:\n return replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1');\n // justify-content\n\n case 4968:\n return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value;\n // (margin|padding)-inline-(start|end)\n\n case 4095:\n case 3583:\n case 4068:\n case 2532:\n return replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value;\n // (min|max)?(width|height|inline-size|block-size)\n\n case 8116:\n case 7059:\n case 5753:\n case 5535:\n case 5445:\n case 5701:\n case 4933:\n case 4677:\n case 5533:\n case 5789:\n case 5021:\n case 4765:\n // stretch, max-content, min-content, fill-available\n if (strlen(value) - 1 - length > 6) switch (charat(value, length + 1)) {\n // (m)ax-content, (m)in-content\n case 109:\n // -\n if (charat(value, length + 4) !== 45) break;\n // (f)ill-available, (f)it-content\n\n case 102:\n return replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n // (s)tretch\n\n case 115:\n return ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value;\n }\n break;\n // position: sticky\n\n case 4949:\n // (s)ticky?\n if (charat(value, length + 1) !== 115) break;\n // display: (flex|inline-flex)\n\n case 6444:\n switch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n // stic(k)y\n case 107:\n return replace(value, ':', ':' + WEBKIT) + value;\n // (inline-)?fl(e)x\n\n case 101:\n return replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value;\n }\n\n break;\n // writing-mode\n\n case 5936:\n switch (charat(value, length + 11)) {\n // vertical-l(r)\n case 114:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n // vertical-r(l)\n\n case 108:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n // horizontal(-)tb\n\n case 45:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n }\n\n return WEBKIT + value + MS + value + value;\n }\n\n return value;\n}\n\nvar prefixer = function prefixer(element, index, children, callback) {\n if (element.length > -1) if (!element[\"return\"]) switch (element.type) {\n case DECLARATION:\n element[\"return\"] = prefix(element.value, element.length);\n break;\n\n case KEYFRAMES:\n return serialize([copy(element, {\n value: replace(element.value, '@', '@' + WEBKIT)\n })], callback);\n\n case RULESET:\n if (element.length) return combine(element.props, function (value) {\n switch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n // :read-(only|write)\n case ':read-only':\n case ':read-write':\n return serialize([copy(element, {\n props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]\n })], callback);\n // :placeholder\n\n case '::placeholder':\n return serialize([copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]\n })], callback);\n }\n\n return '';\n });\n }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n var key = options.key;\n\n if (process.env.NODE_ENV !== 'production' && !key) {\n throw new Error(\"You have to configure `key` for your cache. Please make sure it's unique (and not equal to 'css') as it's used for linking styles to your cache.\\n\" + \"If multiple caches share the same key they might \\\"fight\\\" for each other's style elements.\");\n }\n\n if (key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var inserted = {};\n var container;\n var nodesToHydrate = [];\n\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n var attrib = node.getAttribute(\"data-emotion\").split(' '); // $FlowFixMe\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n\n var omnipresentPlugins = [compat, removeLabel];\n\n if (process.env.NODE_ENV !== 'production') {\n omnipresentPlugins.push(createUnsafeSelectorsAlarm({\n get compat() {\n return cache.compat;\n }\n\n }), incorrectImportAlarm);\n }\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, process.env.NODE_ENV !== 'production' ? function (element) {\n if (!element.root) {\n if (element[\"return\"]) {\n currentSheet.insert(element[\"return\"]);\n } else if (element.value && element.type !== COMMENT) {\n // insert empty rule in non-production environments\n // so @emotion/jest can grab `key` from the (JS)DOM for caches without any rules inserted yet\n currentSheet.insert(element.value + \"{}\");\n }\n }\n } : rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n currentSheet = sheet;\n\n if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n currentSheet = {\n insert: function insert(rule) {\n sheet.insert(rule + serialized.map);\n }\n };\n }\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport { createCache as default };\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport { memoize as default };\n","import { h as hasOwnProperty, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext, i as isBrowser$1 } from './emotion-element-c39617d8.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, a as ThemeProvider, _ as __unsafe_useEmotionCache, u as useTheme, w as withEmotionCache, b as withTheme } from './emotion-element-c39617d8.browser.esm.js';\nimport * as React from 'react';\nimport { insertStyles, registerStyles, getRegisteredStyles } from '@emotion/utils';\nimport { useInsertionEffectWithLayoutFallback, useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\nimport { serializeStyles } from '@emotion/serialize';\nimport '@emotion/cache';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport 'hoist-non-react-statics';\n\nvar pkg = {\n\tname: \"@emotion/react\",\n\tversion: \"11.11.3\",\n\tmain: \"dist/emotion-react.cjs.js\",\n\tmodule: \"dist/emotion-react.esm.js\",\n\tbrowser: {\n\t\t\"./dist/emotion-react.esm.js\": \"./dist/emotion-react.browser.esm.js\"\n\t},\n\texports: {\n\t\t\".\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./dist/emotion-react.worker.esm.js\",\n\t\t\t\tbrowser: \"./dist/emotion-react.browser.esm.js\",\n\t\t\t\t\"default\": \"./dist/emotion-react.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./dist/emotion-react.cjs.mjs\",\n\t\t\t\"default\": \"./dist/emotion-react.cjs.js\"\n\t\t},\n\t\t\"./jsx-runtime\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./jsx-runtime/dist/emotion-react-jsx-runtime.worker.esm.js\",\n\t\t\t\tbrowser: \"./jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js\",\n\t\t\t\t\"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.mjs\",\n\t\t\t\"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.js\"\n\t\t},\n\t\t\"./_isolated-hnrs\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.worker.esm.js\",\n\t\t\t\tbrowser: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js\",\n\t\t\t\t\"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.mjs\",\n\t\t\t\"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.js\"\n\t\t},\n\t\t\"./jsx-dev-runtime\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.worker.esm.js\",\n\t\t\t\tbrowser: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.browser.esm.js\",\n\t\t\t\t\"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.mjs\",\n\t\t\t\"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.js\"\n\t\t},\n\t\t\"./package.json\": \"./package.json\",\n\t\t\"./types/css-prop\": \"./types/css-prop.d.ts\",\n\t\t\"./macro\": {\n\t\t\ttypes: {\n\t\t\t\t\"import\": \"./macro.d.mts\",\n\t\t\t\t\"default\": \"./macro.d.ts\"\n\t\t\t},\n\t\t\t\"default\": \"./macro.js\"\n\t\t}\n\t},\n\ttypes: \"types/index.d.ts\",\n\tfiles: [\n\t\t\"src\",\n\t\t\"dist\",\n\t\t\"jsx-runtime\",\n\t\t\"jsx-dev-runtime\",\n\t\t\"_isolated-hnrs\",\n\t\t\"types/*.d.ts\",\n\t\t\"macro.*\"\n\t],\n\tsideEffects: false,\n\tauthor: \"Emotion Contributors\",\n\tlicense: \"MIT\",\n\tscripts: {\n\t\t\"test:typescript\": \"dtslint types\"\n\t},\n\tdependencies: {\n\t\t\"@babel/runtime\": \"^7.18.3\",\n\t\t\"@emotion/babel-plugin\": \"^11.11.0\",\n\t\t\"@emotion/cache\": \"^11.11.0\",\n\t\t\"@emotion/serialize\": \"^1.1.3\",\n\t\t\"@emotion/use-insertion-effect-with-fallbacks\": \"^1.0.1\",\n\t\t\"@emotion/utils\": \"^1.2.1\",\n\t\t\"@emotion/weak-memoize\": \"^0.3.1\",\n\t\t\"hoist-non-react-statics\": \"^3.3.1\"\n\t},\n\tpeerDependencies: {\n\t\treact: \">=16.8.0\"\n\t},\n\tpeerDependenciesMeta: {\n\t\t\"@types/react\": {\n\t\t\toptional: true\n\t\t}\n\t},\n\tdevDependencies: {\n\t\t\"@definitelytyped/dtslint\": \"0.0.112\",\n\t\t\"@emotion/css\": \"11.11.2\",\n\t\t\"@emotion/css-prettifier\": \"1.1.3\",\n\t\t\"@emotion/server\": \"11.11.0\",\n\t\t\"@emotion/styled\": \"11.11.0\",\n\t\t\"html-tag-names\": \"^1.1.2\",\n\t\treact: \"16.14.0\",\n\t\t\"svg-tag-names\": \"^1.1.1\",\n\t\ttypescript: \"^4.5.5\"\n\t},\n\trepository: \"https://github.com/emotion-js/emotion/tree/main/packages/react\",\n\tpublishConfig: {\n\t\taccess: \"public\"\n\t},\n\t\"umd:main\": \"dist/emotion-react.umd.min.js\",\n\tpreconstruct: {\n\t\tentrypoints: [\n\t\t\t\"./index.js\",\n\t\t\t\"./jsx-runtime.js\",\n\t\t\t\"./jsx-dev-runtime.js\",\n\t\t\t\"./_isolated-hnrs.js\"\n\t\t],\n\t\tumdName: \"emotionReact\",\n\t\texports: {\n\t\t\tenvConditions: [\n\t\t\t\t\"browser\",\n\t\t\t\t\"worker\"\n\t\t\t],\n\t\t\textra: {\n\t\t\t\t\"./types/css-prop\": \"./types/css-prop.d.ts\",\n\t\t\t\t\"./macro\": {\n\t\t\t\t\ttypes: {\n\t\t\t\t\t\t\"import\": \"./macro.d.mts\",\n\t\t\t\t\t\t\"default\": \"./macro.d.ts\"\n\t\t\t\t\t},\n\t\t\t\t\t\"default\": \"./macro.js\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar jsx = function jsx(type, props) {\n var args = arguments;\n\n if (props == null || !hasOwnProperty.call(props, 'css')) {\n // $FlowFixMe\n return React.createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n } // $FlowFixMe\n\n\n return React.createElement.apply(null, createElementArgArray);\n};\n\nvar warnedAboutCssPropForGlobal = false; // maintain place over rerenders.\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n if (process.env.NODE_ENV !== 'production' && !warnedAboutCssPropForGlobal && ( // check for className as well since the user is\n // probably using the custom createElement which\n // means it will be turned into a className prop\n // $FlowFixMe I don't really want to add it to the type since it shouldn't be used\n props.className || props.css)) {\n console.error(\"It looks like you're using the css prop on Global, did you mean to use the styles prop instead?\");\n warnedAboutCssPropForGlobal = true;\n }\n\n var styles = props.styles;\n var serialized = serializeStyles([styles], undefined, React.useContext(ThemeContext));\n\n if (!isBrowser$1) {\n var _ref;\n\n var serializedNames = serialized.name;\n var serializedStyles = serialized.styles;\n var next = serialized.next;\n\n while (next !== undefined) {\n serializedNames += ' ' + next.name;\n serializedStyles += next.styles;\n next = next.next;\n }\n\n var shouldCache = cache.compat === true;\n var rules = cache.insert(\"\", {\n name: serializedNames,\n styles: serializedStyles\n }, cache.sheet, shouldCache);\n\n if (shouldCache) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"style\", (_ref = {}, _ref[\"data-emotion\"] = cache.key + \"-global \" + serializedNames, _ref.dangerouslySetInnerHTML = {\n __html: rules\n }, _ref.nonce = cache.sheet.nonce, _ref));\n } // yes, i know these hooks are used conditionally\n // but it is based on a constant that will never change at runtime\n // it's effectively like having two implementations and switching them out\n // so it's not actually breaking anything\n\n\n var sheetRef = React.useRef();\n useInsertionEffectWithLayoutFallback(function () {\n var key = cache.key + \"-global\"; // use case of https://github.com/emotion-js/emotion/issues/2675\n\n var sheet = new cache.sheet.constructor({\n key: key,\n nonce: cache.sheet.nonce,\n container: cache.sheet.container,\n speedy: cache.sheet.isSpeedy\n });\n var rehydrating = false; // $FlowFixMe\n\n var node = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n if (cache.sheet.tags.length) {\n sheet.before = cache.sheet.tags[0];\n }\n\n if (node !== null) {\n rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other s\n\n node.setAttribute('data-emotion', key);\n sheet.hydrate([node]);\n }\n\n sheetRef.current = [sheet, rehydrating];\n return function () {\n sheet.flush();\n };\n }, [cache]);\n useInsertionEffectWithLayoutFallback(function () {\n var sheetRefCurrent = sheetRef.current;\n var sheet = sheetRefCurrent[0],\n rehydrating = sheetRefCurrent[1];\n\n if (rehydrating) {\n sheetRefCurrent[1] = false;\n return;\n }\n\n if (serialized.next !== undefined) {\n // insert keyframes\n insertStyles(cache, serialized.next, true);\n }\n\n if (sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n sheet.before = element;\n sheet.flush();\n }\n\n cache.insert(\"\", serialized, sheet, false);\n }, [cache, serialized.name]);\n return null;\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Global.displayName = 'EmotionGlobal';\n}\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\nvar keyframes = function keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name; // $FlowFixMe\n\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n};\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n if (process.env.NODE_ENV !== 'production' && arg.styles !== undefined && arg.name !== undefined) {\n console.error('You have passed styles created with `css` from `@emotion/react` package to the `cx`.\\n' + '`cx` is meant to compose class names (strings) so you should convert those styles to a class name by passing them to the `css` received from component.');\n }\n\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serializedArr = _ref.serializedArr;\n useInsertionEffectAlwaysWithSyncFallback(function () {\n\n for (var i = 0; i < serializedArr.length; i++) {\n insertStyles(cache, serializedArr[i], false);\n }\n });\n\n return null;\n};\n\nvar ClassNames = /* #__PURE__ */withEmotionCache(function (props, cache) {\n var hasRendered = false;\n var serializedArr = [];\n\n var css = function css() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`\n\n registerStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: React.useContext(ThemeContext)\n };\n var ele = props.children(content);\n hasRendered = true;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serializedArr: serializedArr\n }), ele);\n});\n\nif (process.env.NODE_ENV !== 'production') {\n ClassNames.displayName = 'EmotionClassNames';\n}\n\nif (process.env.NODE_ENV !== 'production') {\n var isBrowser = \"object\" !== 'undefined'; // #1727, #2905 for some reason Jest and Vitest evaluate modules twice if some consuming module gets mocked\n\n var isTestEnv = typeof jest !== 'undefined' || typeof vi !== 'undefined';\n\n if (isBrowser && !isTestEnv) {\n // globalThis has wide browser support - https://caniuse.com/?search=globalThis, Node.js 12 and later\n var globalContext = // $FlowIgnore\n typeof globalThis !== 'undefined' ? globalThis // eslint-disable-line no-undef\n : isBrowser ? window : global;\n var globalKey = \"__EMOTION_REACT_\" + pkg.version.split('.')[0] + \"__\";\n\n if (globalContext[globalKey]) {\n console.warn('You are loading @emotion/react when it is already loaded. Running ' + 'multiple instances may cause problems. This can happen if multiple ' + 'versions are used, or if multiple builds of the same version are ' + 'used.');\n }\n\n globalContext[globalKey] = true;\n }\n}\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };\n","var unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport { unitlessKeys as default };\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(var|attr|counters?|url|element|(((repeating-)?(linear|radial))|conic)-gradient)\\(|(no-)?(open|close)-quote/;\n var contentValues = ['normal', 'none', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n throw new Error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error(noComponentSelectorMessage);\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n return cached !== undefined ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error(noComponentSelectorMessage);\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//g;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport { murmur2 as default };\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport { isPropValid as default };\n","import * as React from 'react';\nimport { useContext, forwardRef } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar isBrowser = \"object\" !== 'undefined';\nvar hasOwnProperty = {}.hasOwnProperty;\n\nvar EmotionCacheContext = /* #__PURE__ */React.createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n key: 'css'\n}) : null);\n\nif (process.env.NODE_ENV !== 'production') {\n EmotionCacheContext.displayName = 'EmotionCacheContext';\n}\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache(func) {\n // $FlowFixMe\n return /*#__PURE__*/forwardRef(function (props, ref) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nif (!isBrowser) {\n withEmotionCache = function withEmotionCache(func) {\n return function (props) {\n var cache = useContext(EmotionCacheContext);\n\n if (cache === null) {\n // yes, we're potentially creating this on every render\n // it doesn't actually matter though since it's only on the server\n // so there will only every be a single render\n // that could change in the future because of suspense and etc. but for now,\n // this works and i don't want to optimise for a future thing that we aren't sure about\n cache = createCache({\n key: 'css'\n });\n return /*#__PURE__*/React.createElement(EmotionCacheContext.Provider, {\n value: cache\n }, func(props, cache));\n } else {\n return func(props, cache);\n }\n };\n };\n}\n\nvar ThemeContext = /* #__PURE__ */React.createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'EmotionThemeContext';\n}\n\nvar useTheme = function useTheme() {\n return React.useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme == null || typeof mergedTheme !== 'object' || Array.isArray(mergedTheme))) {\n throw new Error('[ThemeProvider] Please return an object from your theme function, i.e. theme={() => ({})}!');\n }\n\n return mergedTheme;\n }\n\n if (process.env.NODE_ENV !== 'production' && (theme == null || typeof theme !== 'object' || Array.isArray(theme))) {\n throw new Error('[ThemeProvider] Please make your theme prop a plain object');\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n var theme = React.useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme(Component) {\n var componentName = Component.displayName || Component.name || 'Component';\n\n var render = function render(props, ref) {\n var theme = React.useContext(ThemeContext);\n return /*#__PURE__*/React.createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n }; // $FlowFixMe\n\n\n var WithTheme = /*#__PURE__*/React.forwardRef(render);\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar getLastPart = function getLastPart(functionName) {\n // The match may be something like 'Object.createEmotionProps' or\n // 'Loader.prototype.render'\n var parts = functionName.split('.');\n return parts[parts.length - 1];\n};\n\nvar getFunctionNameFromStackTraceLine = function getFunctionNameFromStackTraceLine(line) {\n // V8\n var match = /^\\s+at\\s+([A-Za-z0-9$.]+)\\s/.exec(line);\n if (match) return getLastPart(match[1]); // Safari / Firefox\n\n match = /^([A-Za-z0-9$.]+)@/.exec(line);\n if (match) return getLastPart(match[1]);\n return undefined;\n};\n\nvar internalReactFunctionNames = /* #__PURE__ */new Set(['renderWithHooks', 'processChild', 'finishClassComponent', 'renderToString']); // These identifiers come from error stacks, so they have to be valid JS\n// identifiers, thus we only need to replace what is a valid character for JS,\n// but not for CSS.\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n return identifier.replace(/\\$/g, '-');\n};\n\nvar getLabelFromStackTrace = function getLabelFromStackTrace(stackTrace) {\n if (!stackTrace) return undefined;\n var lines = stackTrace.split('\\n');\n\n for (var i = 0; i < lines.length; i++) {\n var functionName = getFunctionNameFromStackTraceLine(lines[i]); // The first line of V8 stack traces is just \"Error\"\n\n if (!functionName) continue; // If we reach one of these, we have gone too far and should quit\n\n if (internalReactFunctionNames.has(functionName)) break; // The component name is the first function in the stack that starts with an\n // uppercase letter\n\n if (/^[A-Z]/.test(functionName)) return sanitizeIdentifier(functionName);\n }\n\n return undefined;\n};\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n if (process.env.NODE_ENV !== 'production' && typeof props.css === 'string' && // check if there is a css declaration\n props.css.indexOf(':') !== -1) {\n throw new Error(\"Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/react' like this: css`\" + props.css + \"`\");\n }\n\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // For performance, only call getLabelFromStackTrace in development and when\n // the label hasn't already been computed\n\n if (process.env.NODE_ENV !== 'production' && !!props.css && (typeof props.css !== 'object' || typeof props.css.name !== 'string' || props.css.name.indexOf('-') === -1)) {\n var label = getLabelFromStackTrace(new Error().stack);\n if (label) newProps[labelPropName] = label;\n }\n\n return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var WrappedComponent = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles, undefined, React.useContext(ThemeContext));\n\n if (process.env.NODE_ENV !== 'production' && serialized.name.indexOf('-') === -1) {\n var labelFromStack = props[labelPropName];\n\n if (labelFromStack) {\n serialized = serializeStyles([serialized, 'label:' + labelFromStack + ';']);\n }\n }\n\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && (process.env.NODE_ENV === 'production' || key !== labelPropName)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.ref = ref;\n newProps.className = className;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/React.createElement(WrappedComponent, newProps));\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nvar Emotion$1 = Emotion;\n\nexport { CacheProvider as C, Emotion$1 as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwnProperty as h, isBrowser as i, useTheme as u, withEmotionCache as w };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport * as React from 'react';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { withEmotionCache, ThemeContext } from '@emotion/react';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar testOmitPropsOnStringTag = isPropValid;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key) {\n return key !== 'theme';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) {\n return typeof tag === 'string' && // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\nvar composeShouldForwardProps = function composeShouldForwardProps(tag, options, isReal) {\n var shouldForwardProp;\n\n if (options) {\n var optionsShouldForwardProp = options.shouldForwardProp;\n shouldForwardProp = tag.__emotion_forwardProp && optionsShouldForwardProp ? function (propName) {\n return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName);\n } : optionsShouldForwardProp;\n }\n\n if (typeof shouldForwardProp !== 'function' && isReal) {\n shouldForwardProp = tag.__emotion_forwardProp;\n }\n\n return shouldForwardProp;\n};\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar createStyled = function createStyled(tag, options) {\n if (process.env.NODE_ENV !== 'production') {\n if (tag === undefined) {\n throw new Error('You are trying to create a styled element with an undefined component.\\nYou may have forgotten to import it.');\n }\n }\n\n var isReal = tag.__emotion_real === tag;\n var baseTag = isReal && tag.__emotion_base || tag;\n var identifierName;\n var targetClassName;\n\n if (options !== undefined) {\n identifierName = options.label;\n targetClassName = options.target;\n }\n\n var shouldForwardProp = composeShouldForwardProps(tag, options, isReal);\n var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n var shouldUseAs = !defaultShouldForwardProp('as');\n return function () {\n var args = arguments;\n var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n if (identifierName !== undefined) {\n styles.push(\"label:\" + identifierName + \";\");\n }\n\n if (args[0] == null || args[0].raw === undefined) {\n styles.push.apply(styles, args);\n } else {\n if (process.env.NODE_ENV !== 'production' && args[0][0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[0][0]);\n var len = args.length;\n var i = 1;\n\n for (; i < len; i++) {\n if (process.env.NODE_ENV !== 'production' && args[0][i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[i], args[0][i]);\n }\n } // $FlowFixMe: we need to cast StatelessFunctionalComponent to our PrivateStyledComponent class\n\n\n var Styled = withEmotionCache(function (props, cache, ref) {\n var FinalTag = shouldUseAs && props.as || baseTag;\n var className = '';\n var classInterpolations = [];\n var mergedProps = props;\n\n if (props.theme == null) {\n mergedProps = {};\n\n for (var key in props) {\n mergedProps[key] = props[key];\n }\n\n mergedProps.theme = React.useContext(ThemeContext);\n }\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, classInterpolations, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(styles.concat(classInterpolations), cache.registered, mergedProps);\n className += cache.key + \"-\" + serialized.name;\n\n if (targetClassName !== undefined) {\n className += \" \" + targetClassName;\n }\n\n var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(FinalTag) : defaultShouldForwardProp;\n var newProps = {};\n\n for (var _key in props) {\n if (shouldUseAs && _key === 'as') continue;\n\n if ( // $FlowFixMe\n finalShouldForwardProp(_key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps.className = className;\n newProps.ref = ref;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof FinalTag === 'string'\n }), /*#__PURE__*/React.createElement(FinalTag, newProps));\n });\n Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n Styled.defaultProps = tag.defaultProps;\n Styled.__emotion_real = Styled;\n Styled.__emotion_base = baseTag;\n Styled.__emotion_styles = styles;\n Styled.__emotion_forwardProp = shouldForwardProp;\n Object.defineProperty(Styled, 'toString', {\n value: function value() {\n if (targetClassName === undefined && process.env.NODE_ENV !== 'production') {\n return 'NO_COMPONENT_SELECTOR';\n } // $FlowFixMe: coerce undefined to string\n\n\n return \".\" + targetClassName;\n }\n });\n\n Styled.withComponent = function (nextTag, nextOptions) {\n return createStyled(nextTag, _extends({}, options, nextOptions, {\n shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true)\n })).apply(void 0, styles);\n };\n\n return Styled;\n };\n};\n\nexport { createStyled as default };\n","import createStyled from '../base/dist/emotion-styled-base.browser.esm.js';\nimport '@babel/runtime/helpers/extends';\nimport 'react';\nimport '@emotion/is-prop-valid';\nimport '@emotion/react';\nimport '@emotion/utils';\nimport '@emotion/serialize';\nimport '@emotion/use-insertion-effect-with-fallbacks';\n\nvar tags = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\nvar newStyled = createStyled.bind();\ntags.forEach(function (tagName) {\n // $FlowFixMe: we can ignore this because its exposed type is defined by the CreateStyled type\n newStyled[tagName] = newStyled(tagName);\n});\n\nexport { newStyled as default };\n","import * as React from 'react';\n\nvar syncFallback = function syncFallback(create) {\n return create();\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : false;\nvar useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect || syncFallback;\nvar useInsertionEffectWithLayoutFallback = useInsertionEffect || React.useLayoutEffect;\n\nexport { useInsertionEffectAlwaysWithSyncFallback, useInsertionEffectWithLayoutFallback };\n","var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","export const version = \"abi/5.7.0\";\n","\"use strict\";\n\nimport { getAddress } from \"@ethersproject/address\";\nimport { hexZeroPad } from \"@ethersproject/bytes\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\nexport class AddressCoder extends Coder {\n\n constructor(localName: string) {\n super(\"address\", \"address\", localName, false);\n }\n\n defaultValue(): string {\n return \"0x0000000000000000000000000000000000000000\";\n }\n\n encode(writer: Writer, value: string): number {\n try {\n value = getAddress(value)\n } catch (error) {\n this._throwError(error.message, value);\n }\n return writer.writeValue(value);\n }\n\n decode(reader: Reader): any {\n return getAddress(hexZeroPad(reader.readValue().toHexString(), 20));\n }\n}\n\n","\"use strict\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\n// Clones the functionality of an existing Coder, but without a localName\nexport class AnonymousCoder extends Coder {\n private coder: Coder;\n\n constructor(coder: Coder) {\n super(coder.name, coder.type, undefined, coder.dynamic);\n this.coder = coder;\n }\n\n defaultValue(): any {\n return this.coder.defaultValue();\n }\n\n encode(writer: Writer, value: any): number {\n return this.coder.encode(writer, value);\n }\n\n decode(reader: Reader): any {\n return this.coder.decode(reader);\n }\n}\n","\"use strict\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"../_version\";\nconst logger = new Logger(version);\n\nimport { Coder, Reader, Result, Writer } from \"./abstract-coder\";\nimport { AnonymousCoder } from \"./anonymous\";\n\nexport function pack(writer: Writer, coders: ReadonlyArray, values: Array | { [ name: string ]: any }): number {\n let arrayValues: Array = null;\n\n if (Array.isArray(values)) {\n arrayValues = values;\n\n } else if (values && typeof(values) === \"object\") {\n let unique: { [ name: string ]: boolean } = { };\n\n arrayValues = coders.map((coder) => {\n const name = coder.localName;\n if (!name) {\n logger.throwError(\"cannot encode object for signature with missing names\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"values\",\n coder: coder,\n value: values\n });\n }\n\n if (unique[name]) {\n logger.throwError(\"cannot encode object for signature with duplicate names\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"values\",\n coder: coder,\n value: values\n });\n }\n\n unique[name] = true;\n\n return values[name];\n });\n\n } else {\n logger.throwArgumentError(\"invalid tuple value\", \"tuple\", values);\n }\n\n if (coders.length !== arrayValues.length) {\n logger.throwArgumentError(\"types/value length mismatch\", \"tuple\", values);\n }\n\n let staticWriter = new Writer(writer.wordSize);\n let dynamicWriter = new Writer(writer.wordSize);\n\n let updateFuncs: Array<(baseOffset: number) => void> = [];\n coders.forEach((coder, index) => {\n let value = arrayValues[index];\n\n if (coder.dynamic) {\n // Get current dynamic offset (for the future pointer)\n let dynamicOffset = dynamicWriter.length;\n\n // Encode the dynamic value into the dynamicWriter\n coder.encode(dynamicWriter, value);\n\n // Prepare to populate the correct offset once we are done\n let updateFunc = staticWriter.writeUpdatableValue();\n updateFuncs.push((baseOffset: number) => {\n updateFunc(baseOffset + dynamicOffset);\n });\n\n } else {\n coder.encode(staticWriter, value);\n }\n });\n\n // Backfill all the dynamic offsets, now that we know the static length\n updateFuncs.forEach((func) => { func(staticWriter.length); });\n\n let length = writer.appendWriter(staticWriter);\n length += writer.appendWriter(dynamicWriter);\n return length;\n}\n\nexport function unpack(reader: Reader, coders: Array): Result {\n let values: any = [];\n\n // A reader anchored to this base\n let baseReader = reader.subReader(0);\n\n coders.forEach((coder) => {\n let value: any = null;\n\n if (coder.dynamic) {\n let offset = reader.readValue();\n let offsetReader = baseReader.subReader(offset.toNumber());\n try {\n value = coder.decode(offsetReader);\n } catch (error) {\n // Cannot recover from this\n if (error.code === Logger.errors.BUFFER_OVERRUN) { throw error; }\n value = error;\n value.baseType = coder.name;\n value.name = coder.localName;\n value.type = coder.type;\n }\n\n } else {\n try {\n value = coder.decode(reader);\n } catch (error) {\n // Cannot recover from this\n if (error.code === Logger.errors.BUFFER_OVERRUN) { throw error; }\n value = error;\n value.baseType = coder.name;\n value.name = coder.localName;\n value.type = coder.type;\n }\n }\n\n if (value != undefined) {\n values.push(value);\n }\n });\n\n // We only output named properties for uniquely named coders\n const uniqueNames = coders.reduce((accum, coder) => {\n const name = coder.localName;\n if (name) {\n if (!accum[name]) { accum[name] = 0; }\n accum[name]++;\n }\n return accum;\n }, <{ [ name: string ]: number }>{ });\n\n // Add any named parameters (i.e. tuples)\n coders.forEach((coder: Coder, index: number) => {\n let name = coder.localName;\n if (!name || uniqueNames[name] !== 1) { return; }\n\n if (name === \"length\") { name = \"_length\"; }\n\n if (values[name] != null) { return; }\n\n const value = values[index];\n\n if (value instanceof Error) {\n Object.defineProperty(values, name, {\n enumerable: true,\n get: () => { throw value; }\n });\n } else {\n values[name] = value;\n }\n });\n\n for (let i = 0; i < values.length; i++) {\n const value = values[i];\n if (value instanceof Error) {\n Object.defineProperty(values, i, {\n enumerable: true,\n get: () => { throw value; }\n });\n }\n }\n\n return Object.freeze(values);\n}\n\n\nexport class ArrayCoder extends Coder {\n readonly coder: Coder;\n readonly length: number;\n\n constructor(coder: Coder, length: number, localName: string) {\n const type = (coder.type + \"[\" + (length >= 0 ? length: \"\") + \"]\");\n const dynamic = (length === -1 || coder.dynamic);\n super(\"array\", type, localName, dynamic);\n\n this.coder = coder;\n this.length = length;\n }\n\n defaultValue(): Array {\n // Verifies the child coder is valid (even if the array is dynamic or 0-length)\n const defaultChild = this.coder.defaultValue();\n\n const result: Array = [];\n for (let i = 0; i < this.length; i++) {\n result.push(defaultChild);\n }\n return result;\n }\n\n encode(writer: Writer, value: Array): number {\n if (!Array.isArray(value)) {\n this._throwError(\"expected array value\", value);\n }\n\n let count = this.length;\n\n if (count === -1) {\n count = value.length;\n writer.writeValue(value.length);\n }\n\n logger.checkArgumentCount(value.length, count, \"coder array\" + (this.localName? (\" \"+ this.localName): \"\"));\n\n let coders = [];\n for (let i = 0; i < value.length; i++) { coders.push(this.coder); }\n\n return pack(writer, coders, value);\n }\n\n decode(reader: Reader): any {\n let count = this.length;\n if (count === -1) {\n count = reader.readValue().toNumber();\n\n // Check that there is *roughly* enough data to ensure\n // stray random data is not being read as a length. Each\n // slot requires at least 32 bytes for their value (or 32\n // bytes as a link to the data). This could use a much\n // tighter bound, but we are erroring on the side of safety.\n if (count * 32 > reader._data.length) {\n logger.throwError(\"insufficient data length\", Logger.errors.BUFFER_OVERRUN, {\n length: reader._data.length,\n count: count\n });\n }\n }\n let coders = [];\n for (let i = 0; i < count; i++) { coders.push(new AnonymousCoder(this.coder)); }\n\n return reader.coerce(this.name, unpack(reader, coders));\n }\n}\n\n","\"use strict\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\nexport class BooleanCoder extends Coder {\n\n constructor(localName: string) {\n super(\"bool\", \"bool\", localName, false);\n }\n\n defaultValue(): boolean {\n return false;\n }\n\n encode(writer: Writer, value: boolean): number {\n return writer.writeValue(value ? 1: 0);\n }\n\n decode(reader: Reader): any {\n return reader.coerce(this.type, !reader.readValue().isZero());\n }\n}\n\n","\"use strict\";\n\nimport { arrayify, hexlify } from \"@ethersproject/bytes\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\nexport class DynamicBytesCoder extends Coder {\n constructor(type: string, localName: string) {\n super(type, type, localName, true);\n }\n\n defaultValue(): string {\n return \"0x\";\n }\n\n encode(writer: Writer, value: any): number {\n value = arrayify(value);\n let length = writer.writeValue(value.length);\n length += writer.writeBytes(value);\n return length;\n }\n\n decode(reader: Reader): any {\n return reader.readBytes(reader.readValue().toNumber(), true);\n }\n}\n\nexport class BytesCoder extends DynamicBytesCoder {\n constructor(localName: string) {\n super(\"bytes\", localName);\n }\n\n decode(reader: Reader): any {\n return reader.coerce(this.name, hexlify(super.decode(reader)));\n }\n}\n\n\n","\"use strict\";\n\nimport { arrayify, BytesLike, hexlify } from \"@ethersproject/bytes\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\n// @TODO: Merge this with bytes\nexport class FixedBytesCoder extends Coder {\n readonly size: number;\n\n constructor(size: number, localName: string) {\n let name = \"bytes\" + String(size);\n super(name, name, localName, false);\n this.size = size;\n }\n\n defaultValue(): string {\n return (\"0x0000000000000000000000000000000000000000000000000000000000000000\").substring(0, 2 + this.size * 2);\n }\n\n encode(writer: Writer, value: BytesLike): number {\n let data = arrayify(value);\n if (data.length !== this.size) { this._throwError(\"incorrect data length\", value); }\n return writer.writeBytes(data);\n }\n\n decode(reader: Reader): any {\n return reader.coerce(this.name, hexlify(reader.readBytes(this.size)));\n }\n}\n","\"use strict\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\nexport class NullCoder extends Coder {\n\n constructor(localName: string) {\n super(\"null\", \"\", localName, false);\n }\n\n defaultValue(): null {\n return null;\n }\n\n encode(writer: Writer, value: any): number {\n if (value != null) { this._throwError(\"not null\", value); }\n return writer.writeBytes([ ]);\n }\n\n decode(reader: Reader): any {\n reader.readBytes(0);\n return reader.coerce(this.name, null);\n }\n}\n","\"use strict\";\n\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { MaxUint256, NegativeOne, One, Zero } from \"@ethersproject/constants\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\nexport class NumberCoder extends Coder {\n readonly size: number;\n readonly signed: boolean;\n\n constructor(size: number, signed: boolean, localName: string) {\n const name = ((signed ? \"int\": \"uint\") + (size * 8));\n super(name, name, localName, false);\n\n this.size = size;\n this.signed = signed;\n }\n\n defaultValue(): number {\n return 0;\n }\n\n encode(writer: Writer, value: BigNumberish): number {\n let v = BigNumber.from(value);\n\n // Check bounds are safe for encoding\n let maxUintValue = MaxUint256.mask(writer.wordSize * 8);\n if (this.signed) {\n let bounds = maxUintValue.mask(this.size * 8 - 1);\n if (v.gt(bounds) || v.lt(bounds.add(One).mul(NegativeOne))) {\n this._throwError(\"value out-of-bounds\", value);\n }\n } else if (v.lt(Zero) || v.gt(maxUintValue.mask(this.size * 8))) {\n this._throwError(\"value out-of-bounds\", value);\n }\n\n v = v.toTwos(this.size * 8).mask(this.size * 8);\n\n if (this.signed) {\n v = v.fromTwos(this.size * 8).toTwos(8 * writer.wordSize);\n }\n\n return writer.writeValue(v);\n }\n\n decode(reader: Reader): any {\n let value = reader.readValue().mask(this.size * 8);\n\n if (this.signed) {\n value = value.fromTwos(this.size * 8);\n }\n\n return reader.coerce(this.name, value);\n }\n}\n\n","\"use strict\";\n\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\n\nimport { Reader, Writer } from \"./abstract-coder\";\nimport { DynamicBytesCoder } from \"./bytes\";\n\nexport class StringCoder extends DynamicBytesCoder {\n\n constructor(localName: string) {\n super(\"string\", localName);\n }\n\n defaultValue(): string {\n return \"\";\n }\n\n encode(writer: Writer, value: any): number {\n return super.encode(writer, toUtf8Bytes(value));\n }\n\n decode(reader: Reader): any {\n return toUtf8String(super.decode(reader));\n }\n}\n","\"use strict\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\nimport { pack, unpack } from \"./array\";\n\nexport class TupleCoder extends Coder {\n readonly coders: Array;\n\n constructor(coders: Array, localName: string) {\n let dynamic = false;\n const types: Array = [];\n coders.forEach((coder) => {\n if (coder.dynamic) { dynamic = true; }\n types.push(coder.type);\n });\n const type = (\"tuple(\" + types.join(\",\") + \")\");\n\n super(\"tuple\", type, localName, dynamic);\n this.coders = coders;\n }\n\n defaultValue(): any {\n const values: any = [ ];\n this.coders.forEach((coder) => {\n values.push(coder.defaultValue());\n });\n\n // We only output named properties for uniquely named coders\n const uniqueNames = this.coders.reduce((accum, coder) => {\n const name = coder.localName;\n if (name) {\n if (!accum[name]) { accum[name] = 0; }\n accum[name]++;\n }\n return accum;\n }, <{ [ name: string ]: number }>{ });\n\n // Add named values\n this.coders.forEach((coder: Coder, index: number) => {\n let name = coder.localName;\n if (!name || uniqueNames[name] !== 1) { return; }\n\n if (name === \"length\") { name = \"_length\"; }\n\n if (values[name] != null) { return; }\n\n values[name] = values[index];\n });\n\n return Object.freeze(values);\n }\n\n encode(writer: Writer, value: Array | { [ name: string ]: any }): number {\n return pack(writer, this.coders, value);\n }\n\n decode(reader: Reader): any {\n return reader.coerce(this.name, unpack(reader, this.coders));\n }\n}\n\n","\"use strict\";\n\n// See: https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI\n\nimport { arrayify, BytesLike } from \"@ethersproject/bytes\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { Coder, Reader, Result, Writer } from \"./coders/abstract-coder\";\nimport { AddressCoder } from \"./coders/address\";\nimport { ArrayCoder } from \"./coders/array\";\nimport { BooleanCoder } from \"./coders/boolean\";\nimport { BytesCoder } from \"./coders/bytes\";\nimport { FixedBytesCoder } from \"./coders/fixed-bytes\";\nimport { NullCoder } from \"./coders/null\";\nimport { NumberCoder } from \"./coders/number\";\nimport { StringCoder } from \"./coders/string\";\nimport { TupleCoder } from \"./coders/tuple\";\n\nimport { ParamType } from \"./fragments\";\n\n\nconst paramTypeBytes = new RegExp(/^bytes([0-9]*)$/);\nconst paramTypeNumber = new RegExp(/^(u?int)([0-9]*)$/);\n\n\nexport type CoerceFunc = (type: string, value: any) => any;\n\nexport class AbiCoder {\n readonly coerceFunc: CoerceFunc;\n\n constructor(coerceFunc?: CoerceFunc) {\n defineReadOnly(this, \"coerceFunc\", coerceFunc || null);\n }\n\n _getCoder(param: ParamType): Coder {\n\n switch (param.baseType) {\n case \"address\":\n return new AddressCoder(param.name);\n case \"bool\":\n return new BooleanCoder(param.name);\n case \"string\":\n return new StringCoder(param.name);\n case \"bytes\":\n return new BytesCoder(param.name);\n case \"array\":\n return new ArrayCoder(this._getCoder(param.arrayChildren), param.arrayLength, param.name);\n case \"tuple\":\n return new TupleCoder((param.components || []).map((component) => {\n return this._getCoder(component);\n }), param.name);\n case \"\":\n return new NullCoder(param.name);\n }\n\n // u?int[0-9]*\n let match = param.type.match(paramTypeNumber);\n if (match) {\n let size = parseInt(match[2] || \"256\");\n if (size === 0 || size > 256 || (size % 8) !== 0) {\n logger.throwArgumentError(\"invalid \" + match[1] + \" bit length\", \"param\", param);\n }\n return new NumberCoder(size / 8, (match[1] === \"int\"), param.name);\n }\n\n // bytes[0-9]+\n match = param.type.match(paramTypeBytes);\n if (match) {\n let size = parseInt(match[1]);\n if (size === 0 || size > 32) {\n logger.throwArgumentError(\"invalid bytes length\", \"param\", param);\n }\n return new FixedBytesCoder(size, param.name);\n }\n\n return logger.throwArgumentError(\"invalid type\", \"type\", param.type);\n }\n\n _getWordSize(): number { return 32; }\n\n _getReader(data: Uint8Array, allowLoose?: boolean): Reader {\n return new Reader(data, this._getWordSize(), this.coerceFunc, allowLoose);\n }\n\n _getWriter(): Writer {\n return new Writer(this._getWordSize());\n }\n\n getDefaultValue(types: ReadonlyArray): Result {\n const coders: Array = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = new TupleCoder(coders, \"_\");\n return coder.defaultValue();\n }\n\n encode(types: ReadonlyArray, values: ReadonlyArray): string {\n if (types.length !== values.length) {\n logger.throwError(\"types/values length mismatch\", Logger.errors.INVALID_ARGUMENT, {\n count: { types: types.length, values: values.length },\n value: { types: types, values: values }\n });\n }\n\n const coders = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = (new TupleCoder(coders, \"_\"));\n\n const writer = this._getWriter();\n coder.encode(writer, values);\n return writer.data;\n }\n\n decode(types: ReadonlyArray, data: BytesLike, loose?: boolean): Result {\n const coders: Array = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = new TupleCoder(coders, \"_\");\n return coder.decode(this._getReader(arrayify(data), loose));\n }\n}\n\nexport const defaultAbiCoder: AbiCoder = new AbiCoder();\n\n","\"use strict\";\n\nimport { arrayify, BytesLike, concat, hexConcat, hexlify } from \"@ethersproject/bytes\";\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"../_version\";\nconst logger = new Logger(version);\n\nexport interface Result extends ReadonlyArray {\n readonly [key: string]: any;\n}\n\nexport function checkResultErrors(result: Result): Array<{ path: Array, error: Error }> {\n // Find the first error (if any)\n const errors: Array<{ path: Array, error: Error }> = [ ];\n\n const checkErrors = function(path: Array, object: any): void {\n if (!Array.isArray(object)) { return; }\n for (let key in object) {\n const childPath = path.slice();\n childPath.push(key);\n\n try {\n checkErrors(childPath, object[key]);\n } catch (error) {\n errors.push({ path: childPath, error: error });\n }\n }\n }\n checkErrors([ ], result);\n\n return errors;\n\n}\n\nexport type CoerceFunc = (type: string, value: any) => any;\n\nexport abstract class Coder {\n\n // The coder name:\n // - address, uint256, tuple, array, etc.\n readonly name: string;\n\n // The fully expanded type, including composite types:\n // - address, uint256, tuple(address,bytes), uint256[3][4][], etc.\n readonly type: string;\n\n // The localName bound in the signature, in this example it is \"baz\":\n // - tuple(address foo, uint bar) baz\n readonly localName: string;\n\n // Whether this type is dynamic:\n // - Dynamic: bytes, string, address[], tuple(boolean[]), etc.\n // - Not Dynamic: address, uint256, boolean[3], tuple(address, uint8)\n readonly dynamic: boolean;\n\n constructor(name: string, type: string, localName: string, dynamic: boolean) {\n // @TODO: defineReadOnly these\n this.name = name;\n this.type = type;\n this.localName = localName;\n this.dynamic = dynamic;\n }\n\n _throwError(message: string, value: any): void {\n logger.throwArgumentError(message, this.localName, value);\n }\n\n abstract encode(writer: Writer, value: any): number;\n abstract decode(reader: Reader): any;\n\n abstract defaultValue(): any;\n}\n\nexport class Writer {\n readonly wordSize: number;\n\n _data: Array;\n _dataLength: number;\n _padding: Uint8Array;\n\n constructor(wordSize?: number) {\n defineReadOnly(this, \"wordSize\", wordSize || 32);\n this._data = [ ];\n this._dataLength = 0;\n this._padding = new Uint8Array(wordSize);\n }\n\n get data(): string {\n return hexConcat(this._data);\n }\n get length(): number { return this._dataLength; }\n\n _writeData(data: Uint8Array): number {\n this._data.push(data);\n this._dataLength += data.length;\n return data.length;\n }\n\n appendWriter(writer: Writer): number {\n return this._writeData(concat(writer._data));\n }\n\n // Arrayish items; padded on the right to wordSize\n writeBytes(value: BytesLike): number {\n let bytes = arrayify(value);\n const paddingOffset = bytes.length % this.wordSize;\n if (paddingOffset) {\n bytes = concat([ bytes, this._padding.slice(paddingOffset) ])\n }\n return this._writeData(bytes);\n }\n\n _getValue(value: BigNumberish): Uint8Array {\n let bytes = arrayify(BigNumber.from(value));\n if (bytes.length > this.wordSize) {\n logger.throwError(\"value out-of-bounds\", Logger.errors.BUFFER_OVERRUN, {\n length: this.wordSize,\n offset: bytes.length\n });\n }\n if (bytes.length % this.wordSize) {\n bytes = concat([ this._padding.slice(bytes.length % this.wordSize), bytes ]);\n }\n return bytes;\n }\n\n // BigNumberish items; padded on the left to wordSize\n writeValue(value: BigNumberish): number {\n return this._writeData(this._getValue(value));\n }\n\n writeUpdatableValue(): (value: BigNumberish) => void {\n const offset = this._data.length;\n this._data.push(this._padding);\n this._dataLength += this.wordSize;\n return (value: BigNumberish) => {\n this._data[offset] = this._getValue(value);\n };\n }\n}\n\nexport class Reader {\n readonly wordSize: number;\n readonly allowLoose: boolean;\n\n readonly _data: Uint8Array;\n readonly _coerceFunc: CoerceFunc;\n\n _offset: number;\n\n constructor(data: BytesLike, wordSize?: number, coerceFunc?: CoerceFunc, allowLoose?: boolean) {\n defineReadOnly(this, \"_data\", arrayify(data));\n defineReadOnly(this, \"wordSize\", wordSize || 32);\n defineReadOnly(this, \"_coerceFunc\", coerceFunc);\n defineReadOnly(this, \"allowLoose\", allowLoose);\n\n this._offset = 0;\n }\n\n get data(): string { return hexlify(this._data); }\n get consumed(): number { return this._offset; }\n\n // The default Coerce function\n static coerce(name: string, value: any): any {\n let match = name.match(\"^u?int([0-9]+)$\");\n if (match && parseInt(match[1]) <= 48) { value = value.toNumber(); }\n return value;\n }\n\n coerce(name: string, value: any): any {\n if (this._coerceFunc) { return this._coerceFunc(name, value); }\n return Reader.coerce(name, value);\n }\n\n _peekBytes(offset: number, length: number, loose?: boolean): Uint8Array {\n let alignedLength = Math.ceil(length / this.wordSize) * this.wordSize;\n if (this._offset + alignedLength > this._data.length) {\n if (this.allowLoose && loose && this._offset + length <= this._data.length) {\n alignedLength = length;\n } else {\n logger.throwError(\"data out-of-bounds\", Logger.errors.BUFFER_OVERRUN, {\n length: this._data.length,\n offset: this._offset + alignedLength\n });\n }\n }\n return this._data.slice(this._offset, this._offset + alignedLength)\n }\n\n subReader(offset: number): Reader {\n return new Reader(this._data.slice(this._offset + offset), this.wordSize, this._coerceFunc, this.allowLoose);\n }\n\n readBytes(length: number, loose?: boolean): Uint8Array {\n let bytes = this._peekBytes(0, length, !!loose);\n this._offset += bytes.length;\n // @TODO: Make sure the length..end bytes are all 0?\n return bytes.slice(0, length);\n }\n\n readValue(): BigNumber {\n return BigNumber.from(this.readBytes(this.wordSize));\n }\n}\n","\"use strict\";\n\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nexport interface JsonFragmentType {\n readonly name?: string;\n readonly indexed?: boolean;\n readonly type?: string;\n readonly internalType?: any; // @TODO: in v6 reduce type\n readonly components?: ReadonlyArray;\n}\n\nexport interface JsonFragment {\n readonly name?: string;\n readonly type?: string;\n\n readonly anonymous?: boolean;\n\n readonly payable?: boolean;\n readonly constant?: boolean;\n readonly stateMutability?: string;\n\n readonly inputs?: ReadonlyArray;\n readonly outputs?: ReadonlyArray;\n\n readonly gas?: string;\n};\n\nconst _constructorGuard = { };\n\n// AST Node parser state\ntype ParseState = {\n allowArray?: boolean,\n allowName?: boolean,\n allowParams?: boolean,\n allowType?: boolean,\n readArray?: boolean,\n};\n\n// AST Node\ntype ParseNode = {\n parent?: any,\n type?: string,\n name?: string,\n state?: ParseState,\n indexed?: boolean,\n components?: Array\n};\n\nlet ModifiersBytes: { [ name: string ]: boolean } = { calldata: true, memory: true, storage: true };\nlet ModifiersNest: { [ name: string ]: boolean } = { calldata: true, memory: true };\nfunction checkModifier(type: string, name: string): boolean {\n if (type === \"bytes\" || type === \"string\") {\n if (ModifiersBytes[name]) { return true; }\n } else if (type === \"address\") {\n if (name === \"payable\") { return true; }\n } else if (type.indexOf(\"[\") >= 0 || type === \"tuple\") {\n if (ModifiersNest[name]) { return true; }\n }\n if (ModifiersBytes[name] || name === \"payable\") {\n logger.throwArgumentError(\"invalid modifier\", \"name\", name);\n }\n return false;\n}\n\n// @TODO: Make sure that children of an indexed tuple are marked with a null indexed\nfunction parseParamType(param: string, allowIndexed: boolean): ParseNode {\n\n let originalParam = param;\n function throwError(i: number) {\n logger.throwArgumentError(`unexpected character at position ${ i }`, \"param\", param);\n }\n param = param.replace(/\\s/g, \" \");\n\n function newNode(parent: ParseNode): ParseNode {\n let node: ParseNode = { type: \"\", name: \"\", parent: parent, state: { allowType: true } };\n if (allowIndexed) { node.indexed = false; }\n return node\n }\n\n let parent: ParseNode = { type: \"\", name: \"\", state: { allowType: true } };\n let node = parent;\n\n for (let i = 0; i < param.length; i++) {\n let c = param[i];\n switch (c) {\n case \"(\":\n if (node.state.allowType && node.type === \"\") {\n node.type = \"tuple\";\n } else if (!node.state.allowParams) {\n throwError(i);\n }\n node.state.allowType = false;\n node.type = verifyType(node.type);\n node.components = [ newNode(node) ];\n node = node.components[0];\n break;\n\n case \")\":\n delete node.state;\n\n if (node.name === \"indexed\") {\n if (!allowIndexed) { throwError(i); }\n node.indexed = true;\n node.name = \"\";\n }\n\n if (checkModifier(node.type, node.name)) { node.name = \"\"; }\n\n node.type = verifyType(node.type);\n\n let child = node;\n node = node.parent;\n if (!node) { throwError(i); }\n delete child.parent;\n node.state.allowParams = false;\n node.state.allowName = true;\n node.state.allowArray = true;\n break;\n\n case \",\":\n delete node.state;\n\n if (node.name === \"indexed\") {\n if (!allowIndexed) { throwError(i); }\n node.indexed = true;\n node.name = \"\";\n }\n\n if (checkModifier(node.type, node.name)) { node.name = \"\"; }\n\n node.type = verifyType(node.type);\n\n let sibling: ParseNode = newNode(node.parent);\n //{ type: \"\", name: \"\", parent: node.parent, state: { allowType: true } };\n node.parent.components.push(sibling);\n delete node.parent;\n node = sibling;\n break;\n\n // Hit a space...\n case \" \":\n\n // If reading type, the type is done and may read a param or name\n if (node.state.allowType) {\n if (node.type !== \"\") {\n node.type = verifyType(node.type);\n delete node.state.allowType;\n node.state.allowName = true;\n node.state.allowParams = true;\n }\n }\n\n // If reading name, the name is done\n if (node.state.allowName) {\n if (node.name !== \"\") {\n if (node.name === \"indexed\") {\n if (!allowIndexed) { throwError(i); }\n if (node.indexed) { throwError(i); }\n node.indexed = true;\n node.name = \"\";\n } else if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n } else {\n node.state.allowName = false;\n }\n }\n }\n\n break;\n\n case \"[\":\n if (!node.state.allowArray) { throwError(i); }\n\n node.type += c;\n\n node.state.allowArray = false;\n node.state.allowName = false;\n node.state.readArray = true;\n break;\n\n case \"]\":\n if (!node.state.readArray) { throwError(i); }\n\n node.type += c;\n\n node.state.readArray = false;\n node.state.allowArray = true;\n node.state.allowName = true;\n break;\n\n default:\n if (node.state.allowType) {\n node.type += c;\n node.state.allowParams = true;\n node.state.allowArray = true;\n } else if (node.state.allowName) {\n node.name += c;\n delete node.state.allowArray;\n } else if (node.state.readArray) {\n node.type += c;\n } else {\n throwError(i);\n }\n }\n }\n\n if (node.parent) { logger.throwArgumentError(\"unexpected eof\", \"param\", param); }\n\n delete parent.state;\n\n if (node.name === \"indexed\") {\n if (!allowIndexed) { throwError(originalParam.length - 7); }\n if (node.indexed) { throwError(originalParam.length - 7); }\n node.indexed = true;\n node.name = \"\";\n } else if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n }\n\n parent.type = verifyType(parent.type);\n\n return parent;\n}\n\nfunction populate(object: any, params: any) {\n for (let key in params) { defineReadOnly(object, key, params[key]); }\n}\n\nexport const FormatTypes: { [ name: string ]: string } = Object.freeze({\n // Bare formatting, as is needed for computing a sighash of an event or function\n sighash: \"sighash\",\n\n // Human-Readable with Minimal spacing and without names (compact human-readable)\n minimal: \"minimal\",\n\n // Human-Readable with nice spacing, including all names\n full: \"full\",\n\n // JSON-format a la Solidity\n json: \"json\"\n});\n\nconst paramTypeArray = new RegExp(/^(.*)\\[([0-9]*)\\]$/);\n\nexport class ParamType {\n\n // The local name of the parameter (of null if unbound)\n readonly name: string;\n\n // The fully qualified type (e.g. \"address\", \"tuple(address)\", \"uint256[3][]\"\n readonly type: string;\n\n // The base type (e.g. \"address\", \"tuple\", \"array\")\n readonly baseType: string;\n\n // Indexable Paramters ONLY (otherwise null)\n readonly indexed: boolean;\n\n // Tuples ONLY: (otherwise null)\n // - sub-components\n readonly components: Array;\n\n // Arrays ONLY: (otherwise null)\n // - length of the array (-1 for dynamic length)\n // - child type\n readonly arrayLength: number;\n readonly arrayChildren: ParamType;\n\n readonly _isParamType: boolean;\n\n constructor(constructorGuard: any, params: any) {\n if (constructorGuard !== _constructorGuard) { logger.throwError(\"use fromString\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new ParamType()\"\n }); }\n populate(this, params);\n\n let match = this.type.match(paramTypeArray);\n if (match) {\n populate(this, {\n arrayLength: parseInt(match[2] || \"-1\"),\n arrayChildren: ParamType.fromObject({\n type: match[1],\n components: this.components\n }),\n baseType: \"array\"\n });\n } else {\n populate(this, {\n arrayLength: null,\n arrayChildren: null,\n baseType: ((this.components != null) ? \"tuple\": this.type)\n });\n }\n\n this._isParamType = true;\n\n Object.freeze(this);\n }\n\n // Format the parameter fragment\n // - sighash: \"(uint256,address)\"\n // - minimal: \"tuple(uint256,address) indexed\"\n // - full: \"tuple(uint256 foo, address bar) indexed baz\"\n format(format?: string): string {\n if (!format) { format = FormatTypes.sighash; }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n\n if (format === FormatTypes.json) {\n let result: any = {\n type: ((this.baseType === \"tuple\") ? \"tuple\": this.type),\n name: (this.name || undefined)\n };\n if (typeof(this.indexed) === \"boolean\") { result.indexed = this.indexed; }\n if (this.components) {\n result.components = this.components.map((comp) => JSON.parse(comp.format(format)));\n }\n return JSON.stringify(result);\n }\n\n let result = \"\";\n\n // Array\n if (this.baseType === \"array\") {\n result += this.arrayChildren.format(format);\n result += \"[\" + (this.arrayLength < 0 ? \"\": String(this.arrayLength)) + \"]\";\n } else {\n if (this.baseType === \"tuple\") {\n if (format !== FormatTypes.sighash) {\n result += this.type;\n }\n result += \"(\" + this.components.map(\n (comp) => comp.format(format)\n ).join((format === FormatTypes.full) ? \", \": \",\") + \")\";\n } else {\n result += this.type;\n }\n }\n\n if (format !== FormatTypes.sighash) {\n if (this.indexed === true) { result += \" indexed\"; }\n if (format === FormatTypes.full && this.name) {\n result += \" \" + this.name;\n }\n }\n\n return result;\n }\n\n static from(value: string | JsonFragmentType | ParamType, allowIndexed?: boolean): ParamType {\n if (typeof(value) === \"string\") {\n return ParamType.fromString(value, allowIndexed);\n }\n return ParamType.fromObject(value);\n }\n\n static fromObject(value: JsonFragmentType | ParamType): ParamType {\n if (ParamType.isParamType(value)) { return value; }\n\n return new ParamType(_constructorGuard, {\n name: (value.name || null),\n type: verifyType(value.type),\n indexed: ((value.indexed == null) ? null: !!value.indexed),\n components: (value.components ? value.components.map(ParamType.fromObject): null)\n });\n }\n\n static fromString(value: string, allowIndexed?: boolean): ParamType {\n function ParamTypify(node: ParseNode): ParamType {\n return ParamType.fromObject({\n name: node.name,\n type: node.type,\n indexed: node.indexed,\n components: node.components\n });\n }\n\n return ParamTypify(parseParamType(value, !!allowIndexed));\n }\n\n static isParamType(value: any): value is ParamType {\n return !!(value != null && value._isParamType);\n }\n};\n\nfunction parseParams(value: string, allowIndex: boolean): Array {\n return splitNesting(value).map((param) => ParamType.fromString(param, allowIndex));\n}\n\ntype TypeCheck = { -readonly [ K in keyof T ]: T[K] };\n\ninterface _Fragment {\n readonly type: string;\n readonly name: string;\n readonly inputs: ReadonlyArray;\n}\n\nexport abstract class Fragment {\n\n readonly type: string;\n readonly name: string;\n readonly inputs: Array;\n\n readonly _isFragment: boolean;\n\n constructor(constructorGuard: any, params: any) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"use a static from method\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new Fragment()\"\n });\n }\n populate(this, params);\n\n this._isFragment = true;\n\n Object.freeze(this);\n }\n\n abstract format(format?: string): string;\n\n static from(value: Fragment | JsonFragment | string): Fragment {\n if (Fragment.isFragment(value)) { return value; }\n\n if (typeof(value) === \"string\") {\n return Fragment.fromString(value);\n }\n\n return Fragment.fromObject(value);\n }\n\n static fromObject(value: Fragment | JsonFragment): Fragment {\n if (Fragment.isFragment(value)) { return value; }\n\n switch (value.type) {\n case \"function\":\n return FunctionFragment.fromObject(value);\n case \"event\":\n return EventFragment.fromObject(value);\n case \"constructor\":\n return ConstructorFragment.fromObject(value);\n case \"error\":\n return ErrorFragment.fromObject(value);\n case \"fallback\":\n case \"receive\":\n // @TODO: Something? Maybe return a FunctionFragment? A custom DefaultFunctionFragment?\n return null;\n }\n\n return logger.throwArgumentError(\"invalid fragment object\", \"value\", value);\n }\n\n static fromString(value: string): Fragment {\n // Make sure the \"returns\" is surrounded by a space and all whitespace is exactly one space\n value = value.replace(/\\s/g, \" \");\n value = value.replace(/\\(/g, \" (\").replace(/\\)/g, \") \").replace(/\\s+/g, \" \");\n value = value.trim();\n\n if (value.split(\" \")[0] === \"event\") {\n return EventFragment.fromString(value.substring(5).trim());\n } else if (value.split(\" \")[0] === \"function\") {\n return FunctionFragment.fromString(value.substring(8).trim());\n } else if (value.split(\"(\")[0].trim() === \"constructor\") {\n return ConstructorFragment.fromString(value.trim());\n } else if (value.split(\" \")[0] === \"error\") {\n return ErrorFragment.fromString(value.substring(5).trim());\n }\n\n return logger.throwArgumentError(\"unsupported fragment\", \"value\", value);\n }\n\n static isFragment(value: any): value is Fragment {\n return !!(value && value._isFragment);\n }\n}\n\ninterface _EventFragment extends _Fragment {\n readonly anonymous: boolean;\n}\n\nexport class EventFragment extends Fragment {\n readonly anonymous: boolean;\n\n format(format?: string): string {\n if (!format) { format = FormatTypes.sighash; }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"event\",\n anonymous: this.anonymous,\n name: this.name,\n inputs: this.inputs.map((input) => JSON.parse(input.format(format)))\n });\n }\n\n let result = \"\";\n\n if (format !== FormatTypes.sighash) {\n result += \"event \";\n }\n\n result += this.name + \"(\" + this.inputs.map(\n (input) => input.format(format)\n ).join((format === FormatTypes.full) ? \", \": \",\") + \") \";\n\n if (format !== FormatTypes.sighash) {\n if (this.anonymous) {\n result += \"anonymous \";\n }\n }\n\n return result.trim();\n }\n\n static from(value: EventFragment | JsonFragment | string): EventFragment {\n if (typeof(value) === \"string\") {\n return EventFragment.fromString(value);\n }\n return EventFragment.fromObject(value);\n }\n\n static fromObject(value: JsonFragment | EventFragment): EventFragment {\n if (EventFragment.isEventFragment(value)) { return value; }\n\n if (value.type !== \"event\") {\n logger.throwArgumentError(\"invalid event object\", \"value\", value);\n }\n\n const params: TypeCheck<_EventFragment> = {\n name: verifyIdentifier(value.name),\n anonymous: value.anonymous,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : []),\n type: \"event\"\n };\n\n return new EventFragment(_constructorGuard, params);\n }\n\n static fromString(value: string): EventFragment {\n\n let match = value.match(regexParen);\n if (!match) {\n logger.throwArgumentError(\"invalid event string\", \"value\", value);\n }\n\n let anonymous = false;\n match[3].split(\" \").forEach((modifier) => {\n switch(modifier.trim()) {\n case \"anonymous\":\n anonymous = true;\n break;\n case \"\":\n break;\n default:\n logger.warn(\"unknown modifier: \" + modifier);\n }\n });\n\n return EventFragment.fromObject({\n name: match[1].trim(),\n anonymous: anonymous,\n inputs: parseParams(match[2], true),\n type: \"event\"\n });\n }\n\n static isEventFragment(value: any): value is EventFragment {\n return (value && value._isFragment && value.type === \"event\");\n }\n}\n\nfunction parseGas(value: string, params: any): string {\n params.gas = null;\n\n let comps = value.split(\"@\");\n if (comps.length !== 1) {\n if (comps.length > 2) {\n logger.throwArgumentError(\"invalid human-readable ABI signature\", \"value\", value);\n }\n if (!comps[1].match(/^[0-9]+$/)) {\n logger.throwArgumentError(\"invalid human-readable ABI signature gas\", \"value\", value);\n }\n params.gas = BigNumber.from(comps[1]);\n return comps[0];\n }\n\n return value;\n}\n\nfunction parseModifiers(value: string, params: any): void {\n params.constant = false;\n params.payable = false;\n params.stateMutability = \"nonpayable\";\n\n value.split(\" \").forEach((modifier) => {\n switch (modifier.trim()) {\n case \"constant\":\n params.constant = true;\n break;\n case \"payable\":\n params.payable = true;\n params.stateMutability = \"payable\";\n break;\n case \"nonpayable\":\n params.payable = false;\n params.stateMutability = \"nonpayable\";\n break;\n case \"pure\":\n params.constant = true;\n params.stateMutability = \"pure\";\n break;\n case \"view\":\n params.constant = true;\n params.stateMutability = \"view\";\n break;\n case \"external\":\n case \"public\":\n case \"\":\n break;\n default:\n console.log(\"unknown modifier: \" + modifier);\n }\n });\n}\n\ntype StateInputValue = {\n constant?: boolean;\n payable?: boolean;\n stateMutability?: string;\n type?: string;\n};\n\ntype StateOutputValue = {\n constant: boolean;\n payable: boolean;\n stateMutability: string;\n};\n\nfunction verifyState(value: StateInputValue): StateOutputValue {\n let result: any = {\n constant: false,\n payable: true,\n stateMutability: \"payable\"\n };\n\n if (value.stateMutability != null) {\n result.stateMutability = value.stateMutability;\n\n // Set (and check things are consistent) the constant property\n result.constant = (result.stateMutability === \"view\" || result.stateMutability === \"pure\");\n if (value.constant != null) {\n if ((!!value.constant) !== result.constant) {\n logger.throwArgumentError(\"cannot have constant function with mutability \" + result.stateMutability, \"value\", value);\n }\n }\n\n // Set (and check things are consistent) the payable property\n result.payable = (result.stateMutability === \"payable\");\n if (value.payable != null) {\n if ((!!value.payable) !== result.payable) {\n logger.throwArgumentError(\"cannot have payable function with mutability \" + result.stateMutability, \"value\", value);\n }\n }\n\n } else if (value.payable != null) {\n result.payable = !!value.payable;\n\n // If payable we can assume non-constant; otherwise we can't assume\n if (value.constant == null && !result.payable && value.type !== \"constructor\") {\n logger.throwArgumentError(\"unable to determine stateMutability\", \"value\", value);\n }\n\n result.constant = !!value.constant;\n\n if (result.constant) {\n result.stateMutability = \"view\";\n } else {\n result.stateMutability = (result.payable ? \"payable\": \"nonpayable\");\n }\n\n if (result.payable && result.constant) {\n logger.throwArgumentError(\"cannot have constant payable function\", \"value\", value);\n }\n\n } else if (value.constant != null) {\n result.constant = !!value.constant;\n result.payable = !result.constant;\n result.stateMutability = (result.constant ? \"view\": \"payable\");\n\n } else if (value.type !== \"constructor\") {\n logger.throwArgumentError(\"unable to determine stateMutability\", \"value\", value);\n }\n\n return result;\n}\n\ninterface _ConstructorFragment extends _Fragment {\n stateMutability: string;\n payable: boolean;\n gas?: BigNumber;\n}\n\nexport class ConstructorFragment extends Fragment {\n stateMutability: string;\n payable: boolean;\n gas?: BigNumber;\n\n format(format?: string): string {\n if (!format) { format = FormatTypes.sighash; }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"constructor\",\n stateMutability: ((this.stateMutability !== \"nonpayable\") ? this.stateMutability: undefined),\n payable: this.payable,\n gas: (this.gas ? this.gas.toNumber(): undefined),\n inputs: this.inputs.map((input) => JSON.parse(input.format(format)))\n });\n }\n\n if (format === FormatTypes.sighash) {\n logger.throwError(\"cannot format a constructor for sighash\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"format(sighash)\"\n });\n }\n\n let result = \"constructor(\" + this.inputs.map(\n (input) => input.format(format)\n ).join((format === FormatTypes.full) ? \", \": \",\") + \") \";\n\n if (this.stateMutability && this.stateMutability !== \"nonpayable\") {\n result += this.stateMutability + \" \";\n }\n\n return result.trim();\n }\n\n static from(value: ConstructorFragment | JsonFragment | string): ConstructorFragment {\n if (typeof(value) === \"string\") {\n return ConstructorFragment.fromString(value);\n }\n return ConstructorFragment.fromObject(value);\n }\n\n static fromObject(value: ConstructorFragment | JsonFragment): ConstructorFragment {\n if (ConstructorFragment.isConstructorFragment(value)) { return value; }\n\n if (value.type !== \"constructor\") {\n logger.throwArgumentError(\"invalid constructor object\", \"value\", value);\n }\n\n let state = verifyState(value);\n if (state.constant) {\n logger.throwArgumentError(\"constructor cannot be constant\", \"value\", value);\n }\n\n const params: TypeCheck<_ConstructorFragment> = {\n name: null,\n type: value.type,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject): []),\n payable: state.payable,\n stateMutability: state.stateMutability,\n gas: (value.gas ? BigNumber.from(value.gas): null)\n };\n\n return new ConstructorFragment(_constructorGuard, params);\n }\n\n static fromString(value: string): ConstructorFragment {\n let params: any = { type: \"constructor\" };\n\n value = parseGas(value, params);\n\n let parens = value.match(regexParen);\n if (!parens || parens[1].trim() !== \"constructor\") {\n logger.throwArgumentError(\"invalid constructor string\", \"value\", value);\n }\n\n params.inputs = parseParams(parens[2].trim(), false);\n\n parseModifiers(parens[3].trim(), params);\n\n return ConstructorFragment.fromObject(params);\n }\n\n static isConstructorFragment(value: any): value is ConstructorFragment {\n return (value && value._isFragment && value.type === \"constructor\");\n }\n}\n\ninterface _FunctionFragment extends _ConstructorFragment {\n constant: boolean;\n outputs?: Array;\n}\n\nexport class FunctionFragment extends ConstructorFragment {\n constant: boolean;\n outputs?: Array;\n\n format(format?: string): string {\n if (!format) { format = FormatTypes.sighash; }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"function\",\n name: this.name,\n constant: this.constant,\n stateMutability: ((this.stateMutability !== \"nonpayable\") ? this.stateMutability: undefined),\n payable: this.payable,\n gas: (this.gas ? this.gas.toNumber(): undefined),\n inputs: this.inputs.map((input) => JSON.parse(input.format(format))),\n outputs: this.outputs.map((output) => JSON.parse(output.format(format))),\n });\n }\n\n let result = \"\";\n\n if (format !== FormatTypes.sighash) {\n result += \"function \";\n }\n\n result += this.name + \"(\" + this.inputs.map(\n (input) => input.format(format)\n ).join((format === FormatTypes.full) ? \", \": \",\") + \") \";\n\n if (format !== FormatTypes.sighash) {\n if (this.stateMutability) {\n if (this.stateMutability !== \"nonpayable\") {\n result += (this.stateMutability + \" \");\n }\n } else if (this.constant) {\n result += \"view \";\n }\n\n if (this.outputs && this.outputs.length) {\n result += \"returns (\" + this.outputs.map(\n (output) => output.format(format)\n ).join(\", \") + \") \";\n }\n\n if (this.gas != null) {\n result += \"@\" + this.gas.toString() + \" \";\n }\n }\n\n return result.trim();\n }\n\n static from(value: FunctionFragment | JsonFragment | string): FunctionFragment {\n if (typeof(value) === \"string\") {\n return FunctionFragment.fromString(value);\n }\n return FunctionFragment.fromObject(value);\n }\n\n static fromObject(value: FunctionFragment | JsonFragment): FunctionFragment {\n if (FunctionFragment.isFunctionFragment(value)) { return value; }\n\n if (value.type !== \"function\") {\n logger.throwArgumentError(\"invalid function object\", \"value\", value);\n }\n\n let state = verifyState(value);\n\n const params: TypeCheck<_FunctionFragment> = {\n type: value.type,\n name: verifyIdentifier(value.name),\n constant: state.constant,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject): []),\n outputs: (value.outputs ? value.outputs.map(ParamType.fromObject): [ ]),\n payable: state.payable,\n stateMutability: state.stateMutability,\n gas: (value.gas ? BigNumber.from(value.gas): null)\n };\n\n return new FunctionFragment(_constructorGuard, params);\n }\n\n static fromString(value: string): FunctionFragment {\n let params: any = { type: \"function\" };\n value = parseGas(value, params);\n\n let comps = value.split(\" returns \");\n if (comps.length > 2) {\n logger.throwArgumentError(\"invalid function string\", \"value\", value);\n }\n\n let parens = comps[0].match(regexParen);\n if (!parens) {\n logger.throwArgumentError(\"invalid function signature\", \"value\", value);\n }\n\n params.name = parens[1].trim();\n if (params.name) { verifyIdentifier(params.name); }\n\n params.inputs = parseParams(parens[2], false);\n\n parseModifiers(parens[3].trim(), params);\n\n // We have outputs\n if (comps.length > 1) {\n let returns = comps[1].match(regexParen);\n if (returns[1].trim() != \"\" || returns[3].trim() != \"\") {\n logger.throwArgumentError(\"unexpected tokens\", \"value\", value);\n }\n params.outputs = parseParams(returns[2], false);\n } else {\n params.outputs = [ ];\n }\n\n return FunctionFragment.fromObject(params);\n }\n\n static isFunctionFragment(value: any): value is FunctionFragment {\n return (value && value._isFragment && value.type === \"function\");\n }\n}\n\n//export class StructFragment extends Fragment {\n//}\n\nfunction checkForbidden(fragment: ErrorFragment): ErrorFragment {\n const sig = fragment.format();\n if (sig === \"Error(string)\" || sig === \"Panic(uint256)\") {\n logger.throwArgumentError(`cannot specify user defined ${ sig } error`, \"fragment\", fragment);\n }\n return fragment;\n}\n\nexport class ErrorFragment extends Fragment {\n\n format(format?: string): string {\n if (!format) { format = FormatTypes.sighash; }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"error\",\n name: this.name,\n inputs: this.inputs.map((input) => JSON.parse(input.format(format))),\n });\n }\n\n let result = \"\";\n\n if (format !== FormatTypes.sighash) {\n result += \"error \";\n }\n\n result += this.name + \"(\" + this.inputs.map(\n (input) => input.format(format)\n ).join((format === FormatTypes.full) ? \", \": \",\") + \") \";\n\n return result.trim();\n }\n\n static from(value: ErrorFragment | JsonFragment | string): ErrorFragment {\n if (typeof(value) === \"string\") {\n return ErrorFragment.fromString(value);\n }\n return ErrorFragment.fromObject(value);\n }\n\n static fromObject(value: ErrorFragment | JsonFragment): ErrorFragment {\n if (ErrorFragment.isErrorFragment(value)) { return value; }\n\n if (value.type !== \"error\") {\n logger.throwArgumentError(\"invalid error object\", \"value\", value);\n }\n\n const params: TypeCheck<_Fragment> = {\n type: value.type,\n name: verifyIdentifier(value.name),\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject): [])\n };\n\n return checkForbidden(new ErrorFragment(_constructorGuard, params));\n }\n\n static fromString(value: string): ErrorFragment {\n let params: any = { type: \"error\" };\n\n let parens = value.match(regexParen);\n if (!parens) {\n logger.throwArgumentError(\"invalid error signature\", \"value\", value);\n }\n\n params.name = parens[1].trim();\n if (params.name) { verifyIdentifier(params.name); }\n\n params.inputs = parseParams(parens[2], false);\n\n return checkForbidden(ErrorFragment.fromObject(params));\n }\n\n static isErrorFragment(value: any): value is ErrorFragment {\n return (value && value._isFragment && value.type === \"error\");\n }\n}\n\nfunction verifyType(type: string): string {\n\n // These need to be transformed to their full description\n if (type.match(/^uint($|[^1-9])/)) {\n type = \"uint256\" + type.substring(4);\n } else if (type.match(/^int($|[^1-9])/)) {\n type = \"int256\" + type.substring(3);\n }\n\n // @TODO: more verification\n\n return type;\n}\n\n// See: https://github.com/ethereum/solidity/blob/1f8f1a3db93a548d0555e3e14cfc55a10e25b60e/docs/grammar/SolidityLexer.g4#L234\nconst regexIdentifier = new RegExp(\"^[a-zA-Z$_][a-zA-Z0-9$_]*$\");\nfunction verifyIdentifier(value: string): string {\n if (!value || !value.match(regexIdentifier)) {\n logger.throwArgumentError(`invalid identifier \"${ value }\"`, \"value\", value);\n }\n return value;\n}\n\nconst regexParen = new RegExp(\"^([^)(]*)\\\\((.*)\\\\)([^)(]*)$\");\n\nfunction splitNesting(value: string): Array {\n value = value.trim();\n\n let result = [];\n let accum = \"\";\n let depth = 0;\n for (let offset = 0; offset < value.length; offset++) {\n let c = value[offset];\n if (c === \",\" && depth === 0) {\n result.push(accum);\n accum = \"\";\n } else {\n accum += c;\n if (c === \"(\") {\n depth++;\n } else if (c === \")\") {\n depth--;\n if (depth === -1) {\n logger.throwArgumentError(\"unbalanced parenthesis\", \"value\", value);\n }\n }\n }\n }\n if (accum) { result.push(accum); }\n\n return result;\n}\n\n","\"use strict\";\n\nimport { getAddress } from \"@ethersproject/address\";\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { arrayify, BytesLike, concat, hexDataSlice, hexlify, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { id } from \"@ethersproject/hash\";\nimport { keccak256 } from \"@ethersproject/keccak256\"\nimport { defineReadOnly, Description, getStatic } from \"@ethersproject/properties\";\n\nimport { AbiCoder, defaultAbiCoder } from \"./abi-coder\";\nimport { checkResultErrors, Result } from \"./coders/abstract-coder\";\nimport { ConstructorFragment, ErrorFragment, EventFragment, FormatTypes, Fragment, FunctionFragment, JsonFragment, ParamType } from \"./fragments\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nexport { checkResultErrors, Result };\n\nexport class LogDescription extends Description {\n readonly eventFragment: EventFragment;\n readonly name: string;\n readonly signature: string;\n readonly topic: string;\n readonly args: Result\n}\n\nexport class TransactionDescription extends Description {\n readonly functionFragment: FunctionFragment;\n readonly name: string;\n readonly args: Result;\n readonly signature: string;\n readonly sighash: string;\n readonly value: BigNumber;\n}\n\nexport class ErrorDescription extends Description {\n readonly errorFragment: ErrorFragment;\n readonly name: string;\n readonly args: Result;\n readonly signature: string;\n readonly sighash: string;\n}\n\nexport class Indexed extends Description {\n readonly hash: string;\n readonly _isIndexed: boolean;\n\n static isIndexed(value: any): value is Indexed {\n return !!(value && value._isIndexed);\n }\n}\n\nconst BuiltinErrors: Record, name: string, reason?: boolean }> = {\n \"0x08c379a0\": { signature: \"Error(string)\", name: \"Error\", inputs: [ \"string\" ], reason: true },\n \"0x4e487b71\": { signature: \"Panic(uint256)\", name: \"Panic\", inputs: [ \"uint256\" ] }\n}\n\nfunction wrapAccessError(property: string, error: Error): Error {\n const wrap = new Error(`deferred error during ABI decoding triggered accessing ${ property }`);\n (wrap).error = error;\n return wrap;\n}\n\n/*\nfunction checkNames(fragment: Fragment, type: \"input\" | \"output\", params: Array): void {\n params.reduce((accum, param) => {\n if (param.name) {\n if (accum[param.name]) {\n logger.throwArgumentError(`duplicate ${ type } parameter ${ JSON.stringify(param.name) } in ${ fragment.format(\"full\") }`, \"fragment\", fragment);\n }\n accum[param.name] = true;\n }\n return accum;\n }, <{ [ name: string ]: boolean }>{ });\n}\n*/\nexport class Interface {\n readonly fragments: ReadonlyArray;\n\n readonly errors: { [ name: string ]: ErrorFragment };\n readonly events: { [ name: string ]: EventFragment };\n readonly functions: { [ name: string ]: FunctionFragment };\n readonly structs: { [ name: string ]: any };\n\n readonly deploy: ConstructorFragment;\n\n readonly _abiCoder: AbiCoder;\n\n readonly _isInterface: boolean;\n\n constructor(fragments: string | ReadonlyArray) {\n let abi: ReadonlyArray = [ ];\n if (typeof(fragments) === \"string\") {\n abi = JSON.parse(fragments);\n } else {\n abi = fragments;\n }\n\n defineReadOnly(this, \"fragments\", abi.map((fragment) => {\n return Fragment.from(fragment);\n }).filter((fragment) => (fragment != null)));\n\n defineReadOnly(this, \"_abiCoder\", getStatic<() => AbiCoder>(new.target, \"getAbiCoder\")());\n\n defineReadOnly(this, \"functions\", { });\n defineReadOnly(this, \"errors\", { });\n defineReadOnly(this, \"events\", { });\n defineReadOnly(this, \"structs\", { });\n\n // Add all fragments by their signature\n this.fragments.forEach((fragment) => {\n let bucket: { [ name: string ]: Fragment } = null;\n switch (fragment.type) {\n case \"constructor\":\n if (this.deploy) {\n logger.warn(\"duplicate definition - constructor\");\n return;\n }\n //checkNames(fragment, \"input\", fragment.inputs);\n defineReadOnly(this, \"deploy\", fragment);\n return;\n case \"function\":\n //checkNames(fragment, \"input\", fragment.inputs);\n //checkNames(fragment, \"output\", (fragment).outputs);\n bucket = this.functions;\n break;\n case \"event\":\n //checkNames(fragment, \"input\", fragment.inputs);\n bucket = this.events;\n break;\n case \"error\":\n bucket = this.errors;\n break;\n default:\n return;\n }\n\n let signature = fragment.format();\n if (bucket[signature]) {\n logger.warn(\"duplicate definition - \" + signature);\n return;\n }\n\n bucket[signature] = fragment;\n });\n\n // If we do not have a constructor add a default\n if (!this.deploy) {\n defineReadOnly(this, \"deploy\", ConstructorFragment.from({\n payable: false,\n type: \"constructor\"\n }));\n }\n\n defineReadOnly(this, \"_isInterface\", true);\n }\n\n format(format?: string): string | Array {\n if (!format) { format = FormatTypes.full; }\n if (format === FormatTypes.sighash) {\n logger.throwArgumentError(\"interface does not support formatting sighash\", \"format\", format);\n }\n\n const abi = this.fragments.map((fragment) => fragment.format(format));\n\n // We need to re-bundle the JSON fragments a bit\n if (format === FormatTypes.json) {\n return JSON.stringify(abi.map((j) => JSON.parse(j)));\n }\n\n return abi;\n }\n\n // Sub-classes can override these to handle other blockchains\n static getAbiCoder(): AbiCoder {\n return defaultAbiCoder;\n }\n\n static getAddress(address: string): string {\n return getAddress(address);\n }\n\n static getSighash(fragment: ErrorFragment | FunctionFragment): string {\n return hexDataSlice(id(fragment.format()), 0, 4);\n }\n\n static getEventTopic(eventFragment: EventFragment): string {\n return id(eventFragment.format());\n }\n\n // Find a function definition by any means necessary (unless it is ambiguous)\n getFunction(nameOrSignatureOrSighash: string): FunctionFragment {\n if (isHexString(nameOrSignatureOrSighash)) {\n for (const name in this.functions) {\n if (nameOrSignatureOrSighash === this.getSighash(name)) {\n return this.functions[name];\n }\n }\n logger.throwArgumentError(\"no matching function\", \"sighash\", nameOrSignatureOrSighash);\n }\n\n // It is a bare name, look up the function (will return null if ambiguous)\n if (nameOrSignatureOrSighash.indexOf(\"(\") === -1) {\n const name = nameOrSignatureOrSighash.trim();\n const matching = Object.keys(this.functions).filter((f) => (f.split(\"(\"/* fix:) */)[0] === name));\n if (matching.length === 0) {\n logger.throwArgumentError(\"no matching function\", \"name\", name);\n } else if (matching.length > 1) {\n logger.throwArgumentError(\"multiple matching functions\", \"name\", name);\n }\n\n return this.functions[matching[0]];\n }\n\n // Normalize the signature and lookup the function\n const result = this.functions[FunctionFragment.fromString(nameOrSignatureOrSighash).format()];\n if (!result) {\n logger.throwArgumentError(\"no matching function\", \"signature\", nameOrSignatureOrSighash);\n }\n return result;\n }\n\n // Find an event definition by any means necessary (unless it is ambiguous)\n getEvent(nameOrSignatureOrTopic: string): EventFragment {\n if (isHexString(nameOrSignatureOrTopic)) {\n const topichash = nameOrSignatureOrTopic.toLowerCase();\n for (const name in this.events) {\n if (topichash === this.getEventTopic(name)) {\n return this.events[name];\n }\n }\n logger.throwArgumentError(\"no matching event\", \"topichash\", topichash);\n }\n\n // It is a bare name, look up the function (will return null if ambiguous)\n if (nameOrSignatureOrTopic.indexOf(\"(\") === -1) {\n const name = nameOrSignatureOrTopic.trim();\n const matching = Object.keys(this.events).filter((f) => (f.split(\"(\"/* fix:) */)[0] === name));\n if (matching.length === 0) {\n logger.throwArgumentError(\"no matching event\", \"name\", name);\n } else if (matching.length > 1) {\n logger.throwArgumentError(\"multiple matching events\", \"name\", name);\n }\n\n return this.events[matching[0]];\n }\n\n // Normalize the signature and lookup the function\n const result = this.events[EventFragment.fromString(nameOrSignatureOrTopic).format()];\n if (!result) {\n logger.throwArgumentError(\"no matching event\", \"signature\", nameOrSignatureOrTopic);\n }\n return result;\n }\n\n // Find a function definition by any means necessary (unless it is ambiguous)\n getError(nameOrSignatureOrSighash: string): ErrorFragment {\n if (isHexString(nameOrSignatureOrSighash)) {\n const getSighash = getStatic<(f: ErrorFragment | FunctionFragment) => string>(this.constructor, \"getSighash\");\n for (const name in this.errors) {\n const error = this.errors[name];\n if (nameOrSignatureOrSighash === getSighash(error)) {\n return this.errors[name];\n }\n }\n logger.throwArgumentError(\"no matching error\", \"sighash\", nameOrSignatureOrSighash);\n }\n\n // It is a bare name, look up the function (will return null if ambiguous)\n if (nameOrSignatureOrSighash.indexOf(\"(\") === -1) {\n const name = nameOrSignatureOrSighash.trim();\n const matching = Object.keys(this.errors).filter((f) => (f.split(\"(\"/* fix:) */)[0] === name));\n if (matching.length === 0) {\n logger.throwArgumentError(\"no matching error\", \"name\", name);\n } else if (matching.length > 1) {\n logger.throwArgumentError(\"multiple matching errors\", \"name\", name);\n }\n\n return this.errors[matching[0]];\n }\n\n // Normalize the signature and lookup the function\n const result = this.errors[FunctionFragment.fromString(nameOrSignatureOrSighash).format()];\n if (!result) {\n logger.throwArgumentError(\"no matching error\", \"signature\", nameOrSignatureOrSighash);\n }\n return result;\n }\n\n // Get the sighash (the bytes4 selector) used by Solidity to identify a function\n getSighash(fragment: ErrorFragment | FunctionFragment | string): string {\n if (typeof(fragment) === \"string\") {\n try {\n fragment = this.getFunction(fragment);\n } catch (error) {\n try {\n fragment = this.getError(fragment);\n } catch (_) {\n throw error;\n }\n }\n }\n\n return getStatic<(f: ErrorFragment | FunctionFragment) => string>(this.constructor, \"getSighash\")(fragment);\n }\n\n // Get the topic (the bytes32 hash) used by Solidity to identify an event\n getEventTopic(eventFragment: EventFragment | string): string {\n if (typeof(eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n\n return getStatic<(e: EventFragment) => string>(this.constructor, \"getEventTopic\")(eventFragment);\n }\n\n\n _decodeParams(params: ReadonlyArray, data: BytesLike): Result {\n return this._abiCoder.decode(params, data)\n }\n\n _encodeParams(params: ReadonlyArray, values: ReadonlyArray): string {\n return this._abiCoder.encode(params, values)\n }\n\n encodeDeploy(values?: ReadonlyArray): string {\n return this._encodeParams(this.deploy.inputs, values || [ ]);\n }\n\n decodeErrorResult(fragment: ErrorFragment | string, data: BytesLike): Result {\n if (typeof(fragment) === \"string\") {\n fragment = this.getError(fragment);\n }\n\n const bytes = arrayify(data);\n\n if (hexlify(bytes.slice(0, 4)) !== this.getSighash(fragment)) {\n logger.throwArgumentError(`data signature does not match error ${ fragment.name }.`, \"data\", hexlify(bytes));\n }\n\n return this._decodeParams(fragment.inputs, bytes.slice(4));\n }\n\n encodeErrorResult(fragment: ErrorFragment | string, values?: ReadonlyArray): string {\n if (typeof(fragment) === \"string\") {\n fragment = this.getError(fragment);\n }\n\n return hexlify(concat([\n this.getSighash(fragment),\n this._encodeParams(fragment.inputs, values || [ ])\n ]));\n }\n\n // Decode the data for a function call (e.g. tx.data)\n decodeFunctionData(functionFragment: FunctionFragment | string, data: BytesLike): Result {\n if (typeof(functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n\n const bytes = arrayify(data);\n\n if (hexlify(bytes.slice(0, 4)) !== this.getSighash(functionFragment)) {\n logger.throwArgumentError(`data signature does not match function ${ functionFragment.name }.`, \"data\", hexlify(bytes));\n }\n\n return this._decodeParams(functionFragment.inputs, bytes.slice(4));\n }\n\n // Encode the data for a function call (e.g. tx.data)\n encodeFunctionData(functionFragment: FunctionFragment | string, values?: ReadonlyArray): string {\n if (typeof(functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n\n return hexlify(concat([\n this.getSighash(functionFragment),\n this._encodeParams(functionFragment.inputs, values || [ ])\n ]));\n }\n\n // Decode the result from a function call (e.g. from eth_call)\n decodeFunctionResult(functionFragment: FunctionFragment | string, data: BytesLike): Result {\n if (typeof(functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n\n let bytes = arrayify(data);\n\n let reason: string = null;\n let message = \"\";\n let errorArgs: Result = null;\n let errorName: string = null;\n let errorSignature: string = null;\n switch (bytes.length % this._abiCoder._getWordSize()) {\n case 0:\n try {\n return this._abiCoder.decode(functionFragment.outputs, bytes);\n } catch (error) { }\n break;\n\n case 4: {\n const selector = hexlify(bytes.slice(0, 4));\n const builtin = BuiltinErrors[selector];\n if (builtin) {\n errorArgs = this._abiCoder.decode(builtin.inputs, bytes.slice(4));\n errorName = builtin.name;\n errorSignature = builtin.signature;\n if (builtin.reason) { reason = errorArgs[0]; }\n if (errorName === \"Error\") {\n message = `; VM Exception while processing transaction: reverted with reason string ${ JSON.stringify(errorArgs[0]) }`;\n } else if (errorName === \"Panic\") {\n message = `; VM Exception while processing transaction: reverted with panic code ${ errorArgs[0] }`;\n }\n } else {\n try {\n const error = this.getError(selector);\n errorArgs = this._abiCoder.decode(error.inputs, bytes.slice(4));\n errorName = error.name;\n errorSignature = error.format();\n } catch (error) { }\n }\n break;\n }\n }\n\n return logger.throwError(\"call revert exception\" + message, Logger.errors.CALL_EXCEPTION, {\n method: functionFragment.format(),\n data: hexlify(data), errorArgs, errorName, errorSignature, reason\n });\n }\n\n // Encode the result for a function call (e.g. for eth_call)\n encodeFunctionResult(functionFragment: FunctionFragment | string, values?: ReadonlyArray): string {\n if (typeof(functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n\n return hexlify(this._abiCoder.encode(functionFragment.outputs, values || [ ]));\n }\n\n // Create the filter for the event with search criteria (e.g. for eth_filterLog)\n encodeFilterTopics(eventFragment: EventFragment | string, values: ReadonlyArray): Array> {\n if (typeof(eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n\n if (values.length > eventFragment.inputs.length) {\n logger.throwError(\"too many arguments for \" + eventFragment.format(), Logger.errors.UNEXPECTED_ARGUMENT, {\n argument: \"values\",\n value: values\n })\n }\n\n let topics: Array> = [];\n if (!eventFragment.anonymous) { topics.push(this.getEventTopic(eventFragment)); }\n\n const encodeTopic = (param: ParamType, value: any): string => {\n if (param.type === \"string\") {\n return id(value);\n } else if (param.type === \"bytes\") {\n return keccak256(hexlify(value));\n }\n\n if (param.type === \"bool\" && typeof(value) === \"boolean\") {\n value = (value ? \"0x01\": \"0x00\");\n }\n\n if (param.type.match(/^u?int/)) {\n value = BigNumber.from(value).toHexString();\n }\n\n // Check addresses are valid\n if (param.type === \"address\") { this._abiCoder.encode( [ \"address\" ], [ value ]); }\n return hexZeroPad(hexlify(value), 32);\n };\n\n values.forEach((value, index) => {\n\n let param = (eventFragment).inputs[index];\n\n if (!param.indexed) {\n if (value != null) {\n logger.throwArgumentError(\"cannot filter non-indexed parameters; must be null\", (\"contract.\" + param.name), value);\n }\n return;\n }\n\n if (value == null) {\n topics.push(null);\n } else if (param.baseType === \"array\" || param.baseType === \"tuple\") {\n logger.throwArgumentError(\"filtering with tuples or arrays not supported\", (\"contract.\" + param.name), value);\n } else if (Array.isArray(value)) {\n topics.push(value.map((value) => encodeTopic(param, value)));\n } else {\n topics.push(encodeTopic(param, value));\n }\n });\n\n // Trim off trailing nulls\n while (topics.length && topics[topics.length - 1] === null) {\n topics.pop();\n }\n\n return topics;\n }\n\n encodeEventLog(eventFragment: EventFragment | string, values: ReadonlyArray): { data: string, topics: Array } {\n if (typeof(eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n\n const topics: Array = [ ];\n\n const dataTypes: Array = [ ];\n const dataValues: Array = [ ];\n\n if (!eventFragment.anonymous) {\n topics.push(this.getEventTopic(eventFragment));\n }\n\n if (values.length !== eventFragment.inputs.length) {\n logger.throwArgumentError(\"event arguments/values mismatch\", \"values\", values);\n }\n\n eventFragment.inputs.forEach((param, index) => {\n const value = values[index];\n if (param.indexed) {\n if (param.type === \"string\") {\n topics.push(id(value))\n } else if (param.type === \"bytes\") {\n topics.push(keccak256(value))\n } else if (param.baseType === \"tuple\" || param.baseType === \"array\") {\n // @TODO\n throw new Error(\"not implemented\");\n } else {\n topics.push(this._abiCoder.encode([ param.type] , [ value ]));\n }\n } else {\n dataTypes.push(param);\n dataValues.push(value);\n }\n });\n\n return {\n data: this._abiCoder.encode(dataTypes , dataValues),\n topics: topics\n };\n }\n\n // Decode a filter for the event and the search criteria\n decodeEventLog(eventFragment: EventFragment | string, data: BytesLike, topics?: ReadonlyArray): Result {\n if (typeof(eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n\n if (topics != null && !eventFragment.anonymous) {\n let topicHash = this.getEventTopic(eventFragment);\n if (!isHexString(topics[0], 32) || topics[0].toLowerCase() !== topicHash) {\n logger.throwError(\"fragment/topic mismatch\", Logger.errors.INVALID_ARGUMENT, { argument: \"topics[0]\", expected: topicHash, value: topics[0] });\n }\n topics = topics.slice(1);\n }\n\n let indexed: Array = [];\n let nonIndexed: Array = [];\n let dynamic: Array = [];\n\n eventFragment.inputs.forEach((param, index) => {\n if (param.indexed) {\n if (param.type === \"string\" || param.type === \"bytes\" || param.baseType === \"tuple\" || param.baseType === \"array\") {\n indexed.push(ParamType.fromObject({ type: \"bytes32\", name: param.name }));\n dynamic.push(true);\n } else {\n indexed.push(param);\n dynamic.push(false);\n }\n } else {\n nonIndexed.push(param);\n dynamic.push(false);\n }\n });\n\n let resultIndexed = (topics != null) ? this._abiCoder.decode(indexed, concat(topics)): null;\n let resultNonIndexed = this._abiCoder.decode(nonIndexed, data, true);\n\n let result: (Array & { [ key: string ]: any }) = [ ];\n let nonIndexedIndex = 0, indexedIndex = 0;\n eventFragment.inputs.forEach((param, index) => {\n if (param.indexed) {\n if (resultIndexed == null) {\n result[index] = new Indexed({ _isIndexed: true, hash: null });\n\n } else if (dynamic[index]) {\n result[index] = new Indexed({ _isIndexed: true, hash: resultIndexed[indexedIndex++] });\n\n } else {\n try {\n result[index] = resultIndexed[indexedIndex++];\n } catch (error) {\n result[index] = error;\n }\n }\n } else {\n try {\n result[index] = resultNonIndexed[nonIndexedIndex++];\n } catch (error) {\n result[index] = error;\n }\n }\n\n // Add the keyword argument if named and safe\n if (param.name && result[param.name] == null) {\n const value = result[index];\n\n // Make error named values throw on access\n if (value instanceof Error) {\n Object.defineProperty(result, param.name, {\n enumerable: true,\n get: () => { throw wrapAccessError(`property ${ JSON.stringify(param.name) }`, value); }\n });\n } else {\n result[param.name] = value;\n }\n }\n });\n\n // Make all error indexed values throw on access\n for (let i = 0; i < result.length; i++) {\n const value = result[i];\n if (value instanceof Error) {\n Object.defineProperty(result, i, {\n enumerable: true,\n get: () => { throw wrapAccessError(`index ${ i }`, value); }\n });\n }\n }\n\n return Object.freeze(result);\n }\n\n // Given a transaction, find the matching function fragment (if any) and\n // determine all its properties and call parameters\n parseTransaction(tx: { data: string, value?: BigNumberish }): TransactionDescription {\n let fragment = this.getFunction(tx.data.substring(0, 10).toLowerCase())\n\n if (!fragment) { return null; }\n\n return new TransactionDescription({\n args: this._abiCoder.decode(fragment.inputs, \"0x\" + tx.data.substring(10)),\n functionFragment: fragment,\n name: fragment.name,\n signature: fragment.format(),\n sighash: this.getSighash(fragment),\n value: BigNumber.from(tx.value || \"0\"),\n });\n }\n\n // @TODO\n //parseCallResult(data: BytesLike): ??\n\n // Given an event log, find the matching event fragment (if any) and\n // determine all its properties and values\n parseLog(log: { topics: Array, data: string}): LogDescription {\n let fragment = this.getEvent(log.topics[0]);\n\n if (!fragment || fragment.anonymous) { return null; }\n\n // @TODO: If anonymous, and the only method, and the input count matches, should we parse?\n // Probably not, because just because it is the only event in the ABI does\n // not mean we have the full ABI; maybe just a fragment?\n\n\n return new LogDescription({\n eventFragment: fragment,\n name: fragment.name,\n signature: fragment.format(),\n topic: this.getEventTopic(fragment),\n args: this.decodeEventLog(fragment, log.data, log.topics)\n });\n }\n\n parseError(data: BytesLike): ErrorDescription {\n const hexData = hexlify(data);\n let fragment = this.getError(hexData.substring(0, 10).toLowerCase())\n\n if (!fragment) { return null; }\n\n return new ErrorDescription({\n args: this._abiCoder.decode(fragment.inputs, \"0x\" + hexData.substring(10)),\n errorFragment: fragment,\n name: fragment.name,\n signature: fragment.format(),\n sighash: this.getSighash(fragment),\n });\n }\n\n\n /*\n static from(value: Array | string | Interface) {\n if (Interface.isInterface(value)) {\n return value;\n }\n if (typeof(value) === \"string\") {\n return new Interface(JSON.parse(value));\n }\n return new Interface(value);\n }\n */\n\n static isInterface(value: any): value is Interface {\n return !!(value && value._isInterface);\n }\n}\n\n","\"use strict\";\n\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { BytesLike, isHexString } from \"@ethersproject/bytes\";\nimport { Network } from \"@ethersproject/networks\";\nimport { Deferrable, Description, defineReadOnly, resolveProperties } from \"@ethersproject/properties\";\nimport { AccessListish, Transaction } from \"@ethersproject/transactions\";\nimport { OnceBlockable } from \"@ethersproject/web\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n///////////////////////////////\n// Exported Types\n\n\nexport type TransactionRequest = {\n to?: string,\n from?: string,\n nonce?: BigNumberish,\n\n gasLimit?: BigNumberish,\n gasPrice?: BigNumberish,\n\n data?: BytesLike,\n value?: BigNumberish,\n chainId?: number\n\n type?: number;\n accessList?: AccessListish;\n\n maxPriorityFeePerGas?: BigNumberish;\n maxFeePerGas?: BigNumberish;\n\n customData?: Record;\n ccipReadEnabled?: boolean;\n}\n\nexport interface TransactionResponse extends Transaction {\n hash: string;\n\n // Only if a transaction has been mined\n blockNumber?: number,\n blockHash?: string,\n timestamp?: number,\n\n confirmations: number,\n\n // Not optional (as it is in Transaction)\n from: string;\n\n // The raw transaction\n raw?: string,\n\n // This function waits until the transaction has been mined\n wait: (confirmations?: number) => Promise\n};\n\nexport type BlockTag = string | number;\n\nexport interface _Block {\n hash: string;\n parentHash: string;\n number: number;\n\n timestamp: number;\n nonce: string;\n difficulty: number;\n _difficulty: BigNumber;\n\n gasLimit: BigNumber;\n gasUsed: BigNumber;\n\n miner: string;\n extraData: string;\n\n baseFeePerGas?: null | BigNumber;\n}\n\nexport interface Block extends _Block {\n transactions: Array;\n}\n\nexport interface BlockWithTransactions extends _Block {\n transactions: Array;\n}\n\n\nexport interface Log {\n blockNumber: number;\n blockHash: string;\n transactionIndex: number;\n\n removed: boolean;\n\n address: string;\n data: string;\n\n topics: Array;\n\n transactionHash: string;\n logIndex: number;\n}\n\nexport interface TransactionReceipt {\n to: string;\n from: string;\n contractAddress: string,\n transactionIndex: number,\n root?: string,\n gasUsed: BigNumber,\n logsBloom: string,\n blockHash: string,\n transactionHash: string,\n logs: Array,\n blockNumber: number,\n confirmations: number,\n cumulativeGasUsed: BigNumber,\n effectiveGasPrice: BigNumber,\n byzantium: boolean,\n type: number;\n status?: number\n};\n\nexport interface FeeData {\n lastBaseFeePerGas: null | BigNumber;\n maxFeePerGas: null | BigNumber;\n maxPriorityFeePerGas: null | BigNumber;\n gasPrice: null | BigNumber;\n}\n\nexport interface EventFilter {\n address?: string;\n topics?: Array | null>;\n}\n\nexport interface Filter extends EventFilter {\n fromBlock?: BlockTag,\n toBlock?: BlockTag,\n}\n\nexport interface FilterByBlockHash extends EventFilter {\n blockHash?: string;\n}\n\n//export type CallTransactionable = {\n// call(transaction: TransactionRequest): Promise;\n//};\n\nexport abstract class ForkEvent extends Description {\n readonly expiry: number;\n\n readonly _isForkEvent?: boolean;\n\n static isForkEvent(value: any): value is ForkEvent {\n return !!(value && value._isForkEvent);\n }\n}\n\nexport class BlockForkEvent extends ForkEvent {\n readonly blockHash: string;\n\n readonly _isBlockForkEvent?: boolean;\n\n constructor(blockHash: string, expiry?: number) {\n if (!isHexString(blockHash, 32)) {\n logger.throwArgumentError(\"invalid blockHash\", \"blockHash\", blockHash);\n }\n\n super({\n _isForkEvent: true,\n _isBlockForkEvent: true,\n expiry: (expiry || 0),\n blockHash: blockHash\n });\n }\n}\n\nexport class TransactionForkEvent extends ForkEvent {\n readonly hash: string;\n\n readonly _isTransactionOrderForkEvent?: boolean;\n\n constructor(hash: string, expiry?: number) {\n if (!isHexString(hash, 32)) {\n logger.throwArgumentError(\"invalid transaction hash\", \"hash\", hash);\n }\n\n super({\n _isForkEvent: true,\n _isTransactionForkEvent: true,\n expiry: (expiry || 0),\n hash: hash\n });\n }\n}\n\nexport class TransactionOrderForkEvent extends ForkEvent {\n readonly beforeHash: string;\n readonly afterHash: string;\n\n constructor(beforeHash: string, afterHash: string, expiry?: number) {\n if (!isHexString(beforeHash, 32)) {\n logger.throwArgumentError(\"invalid transaction hash\", \"beforeHash\", beforeHash);\n }\n if (!isHexString(afterHash, 32)) {\n logger.throwArgumentError(\"invalid transaction hash\", \"afterHash\", afterHash);\n }\n\n super({\n _isForkEvent: true,\n _isTransactionOrderForkEvent: true,\n expiry: (expiry || 0),\n beforeHash: beforeHash,\n afterHash: afterHash\n });\n }\n}\n\nexport type EventType = string | Array> | EventFilter | ForkEvent;\n\nexport type Listener = (...args: Array) => void;\n\n///////////////////////////////\n// Exported Abstracts\nexport abstract class Provider implements OnceBlockable {\n\n // Network\n abstract getNetwork(): Promise;\n\n // Latest State\n abstract getBlockNumber(): Promise;\n abstract getGasPrice(): Promise;\n async getFeeData(): Promise {\n const { block, gasPrice } = await resolveProperties({\n block: this.getBlock(\"latest\"),\n gasPrice: this.getGasPrice().catch((error) => {\n // @TODO: Why is this now failing on Calaveras?\n //console.log(error);\n return null;\n })\n });\n\n let lastBaseFeePerGas = null, maxFeePerGas = null, maxPriorityFeePerGas = null;\n\n if (block && block.baseFeePerGas) {\n // We may want to compute this more accurately in the future,\n // using the formula \"check if the base fee is correct\".\n // See: https://eips.ethereum.org/EIPS/eip-1559\n lastBaseFeePerGas = block.baseFeePerGas;\n maxPriorityFeePerGas = BigNumber.from(\"1500000000\");\n maxFeePerGas = block.baseFeePerGas.mul(2).add(maxPriorityFeePerGas);\n }\n\n return { lastBaseFeePerGas, maxFeePerGas, maxPriorityFeePerGas, gasPrice };\n }\n\n // Account\n abstract getBalance(addressOrName: string | Promise, blockTag?: BlockTag | Promise): Promise;\n abstract getTransactionCount(addressOrName: string | Promise, blockTag?: BlockTag | Promise): Promise;\n abstract getCode(addressOrName: string | Promise, blockTag?: BlockTag | Promise): Promise ;\n abstract getStorageAt(addressOrName: string | Promise, position: BigNumberish | Promise, blockTag?: BlockTag | Promise): Promise;\n\n // Execution\n abstract sendTransaction(signedTransaction: string | Promise): Promise;\n abstract call(transaction: Deferrable, blockTag?: BlockTag | Promise): Promise;\n abstract estimateGas(transaction: Deferrable): Promise;\n\n // Queries\n abstract getBlock(blockHashOrBlockTag: BlockTag | string | Promise): Promise;\n abstract getBlockWithTransactions(blockHashOrBlockTag: BlockTag | string | Promise): Promise;\n abstract getTransaction(transactionHash: string): Promise;\n abstract getTransactionReceipt(transactionHash: string): Promise;\n\n // Bloom-filter Queries\n abstract getLogs(filter: Filter): Promise>;\n\n // ENS\n abstract resolveName(name: string | Promise): Promise;\n abstract lookupAddress(address: string | Promise): Promise;\n\n // Event Emitter (ish)\n abstract on(eventName: EventType, listener: Listener): Provider;\n abstract once(eventName: EventType, listener: Listener): Provider;\n abstract emit(eventName: EventType, ...args: Array): boolean\n abstract listenerCount(eventName?: EventType): number;\n abstract listeners(eventName?: EventType): Array;\n abstract off(eventName: EventType, listener?: Listener): Provider;\n abstract removeAllListeners(eventName?: EventType): Provider;\n\n // Alias for \"on\"\n addListener(eventName: EventType, listener: Listener): Provider {\n return this.on(eventName, listener);\n }\n\n // Alias for \"off\"\n removeListener(eventName: EventType, listener: Listener): Provider {\n return this.off(eventName, listener);\n }\n\n // @TODO: This *could* be implemented here, but would pull in events...\n abstract waitForTransaction(transactionHash: string, confirmations?: number, timeout?: number): Promise;\n\n readonly _isProvider: boolean;\n\n constructor() {\n logger.checkAbstract(new.target, Provider);\n defineReadOnly(this, \"_isProvider\", true);\n }\n\n static isProvider(value: any): value is Provider {\n return !!(value && value._isProvider);\n }\n\n/*\n static getResolver(network: Network, callable: CallTransactionable, namehash: string): string {\n // No ENS...\n if (!network.ensAddress) {\n errors.throwError(\n \"network does support ENS\",\n errors.UNSUPPORTED_OPERATION,\n { operation: \"ENS\", network: network.name }\n );\n }\n\n // Not a namehash\n if (!isHexString(namehash, 32)) {\n errors.throwArgumentError(\"invalid name hash\", \"namehash\", namehash);\n }\n\n // keccak256(\"resolver(bytes32)\")\n let data = \"0x0178b8bf\" + namehash.substring(2);\n let transaction = { to: network.ensAddress, data: data };\n\n return provider.call(transaction).then((data) => {\n return provider.formatter.callAddress(data);\n });\n }\n\n static resolveNamehash(network: Network, callable: CallTransactionable, namehash: string): string {\n return this.getResolver(network, callable, namehash).then((resolverAddress) => {\n if (!resolverAddress) { return null; }\n\n // keccak256(\"addr(bytes32)\")\n let data = \"0x3b3b57de\" + namehash(name).substring(2);\n let transaction = { to: resolverAddress, data: data };\n return callable.call(transaction).then((data) => {\n return this.formatter.callAddress(data);\n });\n\n })\n }\n*/\n}\n","export const version = \"abstract-provider/5.7.0\";\n","\"use strict\";\n\nimport { BlockTag, FeeData, Provider, TransactionRequest, TransactionResponse } from \"@ethersproject/abstract-provider\";\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { Bytes, BytesLike } from \"@ethersproject/bytes\";\nimport { Deferrable, defineReadOnly, resolveProperties, shallowCopy } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nconst allowedTransactionKeys: Array = [\n \"accessList\", \"ccipReadEnabled\", \"chainId\", \"customData\", \"data\", \"from\", \"gasLimit\", \"gasPrice\", \"maxFeePerGas\", \"maxPriorityFeePerGas\", \"nonce\", \"to\", \"type\", \"value\"\n];\n\nconst forwardErrors = [\n Logger.errors.INSUFFICIENT_FUNDS,\n Logger.errors.NONCE_EXPIRED,\n Logger.errors.REPLACEMENT_UNDERPRICED,\n];\n\n// EIP-712 Typed Data\n// See: https://eips.ethereum.org/EIPS/eip-712\n\nexport interface TypedDataDomain {\n name?: string;\n version?: string;\n chainId?: BigNumberish;\n verifyingContract?: string;\n salt?: BytesLike;\n};\n\nexport interface TypedDataField {\n name: string;\n type: string;\n};\n\n// Sub-classes of Signer may optionally extend this interface to indicate\n// they have a private key available synchronously\nexport interface ExternallyOwnedAccount {\n readonly address: string;\n readonly privateKey: string;\n}\n\n// Sub-Class Notes:\n// - A Signer MUST always make sure, that if present, the \"from\" field\n// matches the Signer, before sending or signing a transaction\n// - A Signer SHOULD always wrap private information (such as a private\n// key or mnemonic) in a function, so that console.log does not leak\n// the data\n\n// @TODO: This is a temporary measure to preserve backwards compatibility\n// In v6, the method on TypedDataSigner will be added to Signer\nexport interface TypedDataSigner {\n _signTypedData(domain: TypedDataDomain, types: Record>, value: Record): Promise;\n}\n\nexport abstract class Signer {\n readonly provider?: Provider;\n\n ///////////////////\n // Sub-classes MUST implement these\n\n // Returns the checksum address\n abstract getAddress(): Promise\n\n // Returns the signed prefixed-message. This MUST treat:\n // - Bytes as a binary message\n // - string as a UTF8-message\n // i.e. \"0x1234\" is a SIX (6) byte string, NOT 2 bytes of data\n abstract signMessage(message: Bytes | string): Promise;\n\n // Signs a transaction and returns the fully serialized, signed transaction.\n // The EXACT transaction MUST be signed, and NO additional properties to be added.\n // - This MAY throw if signing transactions is not supports, but if\n // it does, sentTransaction MUST be overridden.\n abstract signTransaction(transaction: Deferrable): Promise;\n\n // Returns a new instance of the Signer, connected to provider.\n // This MAY throw if changing providers is not supported.\n abstract connect(provider: Provider): Signer;\n\n readonly _isSigner: boolean;\n\n\n ///////////////////\n // Sub-classes MUST call super\n constructor() {\n logger.checkAbstract(new.target, Signer);\n defineReadOnly(this, \"_isSigner\", true);\n }\n\n\n ///////////////////\n // Sub-classes MAY override these\n\n async getBalance(blockTag?: BlockTag): Promise {\n this._checkProvider(\"getBalance\");\n return await this.provider.getBalance(this.getAddress(), blockTag);\n }\n\n async getTransactionCount(blockTag?: BlockTag): Promise {\n this._checkProvider(\"getTransactionCount\");\n return await this.provider.getTransactionCount(this.getAddress(), blockTag);\n }\n\n // Populates \"from\" if unspecified, and estimates the gas for the transaction\n async estimateGas(transaction: Deferrable): Promise {\n this._checkProvider(\"estimateGas\");\n const tx = await resolveProperties(this.checkTransaction(transaction));\n return await this.provider.estimateGas(tx);\n }\n\n // Populates \"from\" if unspecified, and calls with the transaction\n async call(transaction: Deferrable, blockTag?: BlockTag): Promise {\n this._checkProvider(\"call\");\n const tx = await resolveProperties(this.checkTransaction(transaction));\n return await this.provider.call(tx, blockTag);\n }\n\n // Populates all fields in a transaction, signs it and sends it to the network\n async sendTransaction(transaction: Deferrable): Promise {\n this._checkProvider(\"sendTransaction\");\n const tx = await this.populateTransaction(transaction);\n const signedTx = await this.signTransaction(tx);\n return await this.provider.sendTransaction(signedTx);\n }\n\n async getChainId(): Promise {\n this._checkProvider(\"getChainId\");\n const network = await this.provider.getNetwork();\n return network.chainId;\n }\n\n async getGasPrice(): Promise {\n this._checkProvider(\"getGasPrice\");\n return await this.provider.getGasPrice();\n }\n\n async getFeeData(): Promise {\n this._checkProvider(\"getFeeData\");\n return await this.provider.getFeeData();\n }\n\n\n async resolveName(name: string): Promise {\n this._checkProvider(\"resolveName\");\n return await this.provider.resolveName(name);\n }\n\n\n\n // Checks a transaction does not contain invalid keys and if\n // no \"from\" is provided, populates it.\n // - does NOT require a provider\n // - adds \"from\" is not present\n // - returns a COPY (safe to mutate the result)\n // By default called from: (overriding these prevents it)\n // - call\n // - estimateGas\n // - populateTransaction (and therefor sendTransaction)\n checkTransaction(transaction: Deferrable): Deferrable {\n for (const key in transaction) {\n if (allowedTransactionKeys.indexOf(key) === -1) {\n logger.throwArgumentError(\"invalid transaction key: \" + key, \"transaction\", transaction);\n }\n }\n\n const tx = shallowCopy(transaction);\n\n if (tx.from == null) {\n tx.from = this.getAddress();\n\n } else {\n // Make sure any provided address matches this signer\n tx.from = Promise.all([\n Promise.resolve(tx.from),\n this.getAddress()\n ]).then((result) => {\n if (result[0].toLowerCase() !== result[1].toLowerCase()) {\n logger.throwArgumentError(\"from address mismatch\", \"transaction\", transaction);\n }\n return result[0];\n });\n }\n\n return tx;\n }\n\n // Populates ALL keys for a transaction and checks that \"from\" matches\n // this Signer. Should be used by sendTransaction but NOT by signTransaction.\n // By default called from: (overriding these prevents it)\n // - sendTransaction\n //\n // Notes:\n // - We allow gasPrice for EIP-1559 as long as it matches maxFeePerGas\n async populateTransaction(transaction: Deferrable): Promise {\n\n const tx: Deferrable = await resolveProperties(this.checkTransaction(transaction))\n\n if (tx.to != null) {\n tx.to = Promise.resolve(tx.to).then(async (to) => {\n if (to == null) { return null; }\n const address = await this.resolveName(to);\n if (address == null) {\n logger.throwArgumentError(\"provided ENS name resolves to null\", \"tx.to\", to);\n }\n return address;\n });\n\n // Prevent this error from causing an UnhandledPromiseException\n tx.to.catch((error) => { });\n }\n\n // Do not allow mixing pre-eip-1559 and eip-1559 properties\n const hasEip1559 = (tx.maxFeePerGas != null || tx.maxPriorityFeePerGas != null);\n if (tx.gasPrice != null && (tx.type === 2 || hasEip1559)) {\n logger.throwArgumentError(\"eip-1559 transaction do not support gasPrice\", \"transaction\", transaction);\n } else if ((tx.type === 0 || tx.type === 1) && hasEip1559) {\n logger.throwArgumentError(\"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas\", \"transaction\", transaction);\n }\n\n if ((tx.type === 2 || tx.type == null) && (tx.maxFeePerGas != null && tx.maxPriorityFeePerGas != null)) {\n // Fully-formed EIP-1559 transaction (skip getFeeData)\n tx.type = 2;\n\n } else if (tx.type === 0 || tx.type === 1) {\n // Explicit Legacy or EIP-2930 transaction\n\n // Populate missing gasPrice\n if (tx.gasPrice == null) { tx.gasPrice = this.getGasPrice(); }\n\n } else {\n\n // We need to get fee data to determine things\n const feeData = await this.getFeeData();\n\n if (tx.type == null) {\n // We need to auto-detect the intended type of this transaction...\n\n if (feeData.maxFeePerGas != null && feeData.maxPriorityFeePerGas != null) {\n // The network supports EIP-1559!\n\n // Upgrade transaction from null to eip-1559\n tx.type = 2;\n\n if (tx.gasPrice != null) {\n // Using legacy gasPrice property on an eip-1559 network,\n // so use gasPrice as both fee properties\n const gasPrice = tx.gasPrice;\n delete tx.gasPrice;\n tx.maxFeePerGas = gasPrice;\n tx.maxPriorityFeePerGas = gasPrice;\n\n } else {\n // Populate missing fee data\n if (tx.maxFeePerGas == null) { tx.maxFeePerGas = feeData.maxFeePerGas; }\n if (tx.maxPriorityFeePerGas == null) { tx.maxPriorityFeePerGas = feeData.maxPriorityFeePerGas; }\n }\n\n } else if (feeData.gasPrice != null) {\n // Network doesn't support EIP-1559...\n\n // ...but they are trying to use EIP-1559 properties\n if (hasEip1559) {\n logger.throwError(\"network does not support EIP-1559\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"populateTransaction\"\n });\n }\n\n // Populate missing fee data\n if (tx.gasPrice == null) { tx.gasPrice = feeData.gasPrice; }\n\n // Explicitly set untyped transaction to legacy\n tx.type = 0;\n\n } else {\n // getFeeData has failed us.\n logger.throwError(\"failed to get consistent fee data\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"signer.getFeeData\"\n });\n }\n\n } else if (tx.type === 2) {\n // Explicitly using EIP-1559\n\n // Populate missing fee data\n if (tx.maxFeePerGas == null) { tx.maxFeePerGas = feeData.maxFeePerGas; }\n if (tx.maxPriorityFeePerGas == null) { tx.maxPriorityFeePerGas = feeData.maxPriorityFeePerGas; }\n }\n }\n\n if (tx.nonce == null) { tx.nonce = this.getTransactionCount(\"pending\"); }\n\n if (tx.gasLimit == null) {\n tx.gasLimit = this.estimateGas(tx).catch((error) => {\n if (forwardErrors.indexOf(error.code) >= 0) {\n throw error;\n }\n\n return logger.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n error: error,\n tx: tx\n });\n });\n }\n\n if (tx.chainId == null) {\n tx.chainId = this.getChainId();\n } else {\n tx.chainId = Promise.all([\n Promise.resolve(tx.chainId),\n this.getChainId()\n ]).then((results) => {\n if (results[1] !== 0 && results[0] !== results[1]) {\n logger.throwArgumentError(\"chainId address mismatch\", \"transaction\", transaction);\n }\n return results[0];\n });\n }\n\n return await resolveProperties(tx);\n }\n\n\n ///////////////////\n // Sub-classes SHOULD leave these alone\n\n _checkProvider(operation?: string): void {\n if (!this.provider) { logger.throwError(\"missing provider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: (operation || \"_checkProvider\") });\n }\n }\n\n static isSigner(value: any): value is Signer {\n return !!(value && value._isSigner);\n }\n}\n\nexport class VoidSigner extends Signer implements TypedDataSigner {\n readonly address: string;\n\n constructor(address: string, provider?: Provider) {\n super();\n defineReadOnly(this, \"address\", address);\n defineReadOnly(this, \"provider\", provider || null);\n }\n\n getAddress(): Promise {\n return Promise.resolve(this.address);\n }\n\n _fail(message: string, operation: string): Promise {\n return Promise.resolve().then(() => {\n logger.throwError(message, Logger.errors.UNSUPPORTED_OPERATION, { operation: operation });\n });\n }\n\n signMessage(message: Bytes | string): Promise {\n return this._fail(\"VoidSigner cannot sign messages\", \"signMessage\");\n }\n\n signTransaction(transaction: Deferrable): Promise {\n return this._fail(\"VoidSigner cannot sign transactions\", \"signTransaction\");\n }\n\n _signTypedData(domain: TypedDataDomain, types: Record>, value: Record): Promise {\n return this._fail(\"VoidSigner cannot sign typed data\", \"signTypedData\");\n }\n\n connect(provider: Provider): VoidSigner {\n return new VoidSigner(this.address, provider);\n }\n}\n\n","export const version = \"abstract-signer/5.7.0\";\n","export const version = \"address/5.7.0\";\n","\"use strict\";\n\nimport { arrayify, BytesLike, concat, hexDataLength, hexDataSlice, isHexString, stripZeros } from \"@ethersproject/bytes\";\nimport { BigNumber, BigNumberish, _base16To36, _base36To16 } from \"@ethersproject/bignumber\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { encode } from \"@ethersproject/rlp\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nfunction getChecksumAddress(address: string): string {\n if (!isHexString(address, 20)) {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n\n address = address.toLowerCase();\n\n const chars = address.substring(2).split(\"\");\n\n const expanded = new Uint8Array(40);\n for (let i = 0; i < 40; i++) {\n expanded[i] = chars[i].charCodeAt(0);\n }\n\n const hashed = arrayify(keccak256(expanded));\n\n for (let i = 0; i < 40; i += 2) {\n if ((hashed[i >> 1] >> 4) >= 8) {\n chars[i] = chars[i].toUpperCase();\n }\n if ((hashed[i >> 1] & 0x0f) >= 8) {\n chars[i + 1] = chars[i + 1].toUpperCase();\n }\n }\n\n return \"0x\" + chars.join(\"\");\n}\n\n// Shims for environments that are missing some required constants and functions\nconst MAX_SAFE_INTEGER: number = 0x1fffffffffffff;\n\nfunction log10(x: number): number {\n if (Math.log10) { return Math.log10(x); }\n return Math.log(x) / Math.LN10;\n}\n\n\n// See: https://en.wikipedia.org/wiki/International_Bank_Account_Number\n\n// Create lookup table\nconst ibanLookup: { [character: string]: string } = { };\nfor (let i = 0; i < 10; i++) { ibanLookup[String(i)] = String(i); }\nfor (let i = 0; i < 26; i++) { ibanLookup[String.fromCharCode(65 + i)] = String(10 + i); }\n\n// How many decimal digits can we process? (for 64-bit float, this is 15)\nconst safeDigits = Math.floor(log10(MAX_SAFE_INTEGER));\n\nfunction ibanChecksum(address: string): string {\n address = address.toUpperCase();\n address = address.substring(4) + address.substring(0, 2) + \"00\";\n\n let expanded = address.split(\"\").map((c) => { return ibanLookup[c]; }).join(\"\");\n\n // Javascript can handle integers safely up to 15 (decimal) digits\n while (expanded.length >= safeDigits){\n let block = expanded.substring(0, safeDigits);\n expanded = parseInt(block, 10) % 97 + expanded.substring(block.length);\n }\n\n let checksum = String(98 - (parseInt(expanded, 10) % 97));\n while (checksum.length < 2) { checksum = \"0\" + checksum; }\n\n return checksum;\n};\n\nexport function getAddress(address: string): string {\n let result = null;\n\n if (typeof(address) !== \"string\") {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n\n if (address.match(/^(0x)?[0-9a-fA-F]{40}$/)) {\n\n // Missing the 0x prefix\n if (address.substring(0, 2) !== \"0x\") { address = \"0x\" + address; }\n\n result = getChecksumAddress(address);\n\n // It is a checksummed address with a bad checksum\n if (address.match(/([A-F].*[a-f])|([a-f].*[A-F])/) && result !== address) {\n logger.throwArgumentError(\"bad address checksum\", \"address\", address);\n }\n\n // Maybe ICAP? (we only support direct mode)\n } else if (address.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)) {\n\n // It is an ICAP address with a bad checksum\n if (address.substring(2, 4) !== ibanChecksum(address)) {\n logger.throwArgumentError(\"bad icap checksum\", \"address\", address);\n }\n\n result = _base36To16(address.substring(4));\n while (result.length < 40) { result = \"0\" + result; }\n result = getChecksumAddress(\"0x\" + result);\n\n } else {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n\n return result;\n}\n\nexport function isAddress(address: string): boolean {\n try {\n getAddress(address);\n return true;\n } catch (error) { }\n return false;\n}\n\nexport function getIcapAddress(address: string): string {\n let base36 = _base16To36(getAddress(address).substring(2)).toUpperCase();\n while (base36.length < 30) { base36 = \"0\" + base36; }\n return \"XE\" + ibanChecksum(\"XE00\" + base36) + base36;\n}\n\n// http://ethereum.stackexchange.com/questions/760/how-is-the-address-of-an-ethereum-contract-computed\nexport function getContractAddress(transaction: { from: string, nonce: BigNumberish }) {\n let from: string = null;\n try {\n from = getAddress(transaction.from);\n } catch (error) {\n logger.throwArgumentError(\"missing from address\", \"transaction\", transaction);\n }\n\n const nonce = stripZeros(arrayify(BigNumber.from(transaction.nonce).toHexString()));\n\n return getAddress(hexDataSlice(keccak256(encode([ from, nonce ])), 12));\n}\n\nexport function getCreate2Address(from: string, salt: BytesLike, initCodeHash: BytesLike): string {\n if (hexDataLength(salt) !== 32) {\n logger.throwArgumentError(\"salt must be 32 bytes\", \"salt\", salt);\n }\n if (hexDataLength(initCodeHash) !== 32) {\n logger.throwArgumentError(\"initCodeHash must be 32 bytes\", \"initCodeHash\", initCodeHash);\n }\n return getAddress(hexDataSlice(keccak256(concat([ \"0xff\", getAddress(from), salt, initCodeHash ])), 12))\n}\n","\"use strict\";\n\nimport { arrayify, BytesLike } from \"@ethersproject/bytes\";\n\nexport function decode(textData: string): Uint8Array {\n textData = atob(textData);\n const data = [];\n for (let i = 0; i < textData.length; i++) {\n data.push(textData.charCodeAt(i));\n }\n return arrayify(data);\n}\n\nexport function encode(data: BytesLike): string {\n data = arrayify(data);\n let textData = \"\";\n for (let i = 0; i < data.length; i++) {\n textData += String.fromCharCode(data[i]);\n }\n return btoa(textData);\n}\n\n\n","/**\n * var basex = require(\"base-x\");\n *\n * This implementation is heavily based on base-x. The main reason to\n * deviate was to prevent the dependency of Buffer.\n *\n * Contributors:\n *\n * base-x encoding\n * Forked from https://github.com/cryptocoinjs/bs58\n * Originally written by Mike Hearn for BitcoinJ\n * Copyright (c) 2011 Google Inc\n * Ported to JavaScript by Stefan Thomas\n * Merged Buffer refactorings from base58-native by Stephen Pair\n * Copyright (c) 2013 BitPay Inc\n *\n * The MIT License (MIT)\n *\n * Copyright base-x contributors (c) 2016\n *\n * Permission is hereby granted, free of charge, to any person obtaining a\n * copy of this software and associated documentation files (the \"Software\"),\n * to deal in the Software without restriction, including without limitation\n * the rights to use, copy, modify, merge, publish, distribute, sublicense,\n * and/or sell copies of the Software, and to permit persons to whom the\n * Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n *\n */\n\nimport { arrayify, BytesLike } from \"@ethersproject/bytes\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\n\nexport class BaseX {\n readonly alphabet: string;\n readonly base: number;\n\n _alphabetMap: { [ character: string ]: number };\n _leader: string;\n\n constructor(alphabet: string) {\n defineReadOnly(this, \"alphabet\", alphabet);\n defineReadOnly(this, \"base\", alphabet.length);\n\n defineReadOnly(this, \"_alphabetMap\", { });\n defineReadOnly(this, \"_leader\", alphabet.charAt(0));\n\n // pre-compute lookup table\n for (let i = 0; i < alphabet.length; i++) {\n this._alphabetMap[alphabet.charAt(i)] = i;\n }\n }\n\n encode(value: BytesLike): string {\n let source = arrayify(value);\n\n if (source.length === 0) { return \"\"; }\n\n let digits = [ 0 ]\n for (let i = 0; i < source.length; ++i) {\n let carry = source[i];\n for (let j = 0; j < digits.length; ++j) {\n carry += digits[j] << 8;\n digits[j] = carry % this.base;\n carry = (carry / this.base) | 0;\n }\n\n while (carry > 0) {\n digits.push(carry % this.base);\n carry = (carry / this.base) | 0;\n }\n }\n\n let string = \"\"\n\n // deal with leading zeros\n for (let k = 0; source[k] === 0 && k < source.length - 1; ++k) {\n string += this._leader;\n }\n\n // convert digits to a string\n for (let q = digits.length - 1; q >= 0; --q) {\n string += this.alphabet[digits[q]];\n }\n\n return string;\n }\n\n decode(value: string): Uint8Array {\n if (typeof(value) !== \"string\") {\n throw new TypeError(\"Expected String\");\n }\n\n let bytes: Array = [];\n if (value.length === 0) { return new Uint8Array(bytes); }\n\n bytes.push(0);\n for (let i = 0; i < value.length; i++) {\n let byte = this._alphabetMap[value[i]];\n\n if (byte === undefined) {\n throw new Error(\"Non-base\" + this.base + \" character\");\n }\n\n let carry = byte;\n for (let j = 0; j < bytes.length; ++j) {\n carry += bytes[j] * this.base;\n bytes[j] = carry & 0xff;\n carry >>= 8;\n }\n\n while (carry > 0) {\n bytes.push(carry & 0xff);\n carry >>= 8;\n }\n }\n\n // deal with leading zeros\n for (let k = 0; value[k] === this._leader && k < value.length - 1; ++k) {\n bytes.push(0)\n }\n\n return arrayify(new Uint8Array(bytes.reverse()))\n }\n}\n\nconst Base32 = new BaseX(\"abcdefghijklmnopqrstuvwxyz234567\");\nconst Base58 = new BaseX(\"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz\");\n\nexport { Base32, Base58 };\n\n//console.log(Base58.decode(\"Qmd2V777o5XvJbYMeMb8k2nU5f8d3ciUQ5YpYuWhzv8iDj\"))\n//console.log(Base58.encode(Base58.decode(\"Qmd2V777o5XvJbYMeMb8k2nU5f8d3ciUQ5YpYuWhzv8iDj\")))\n","export const version = \"bignumber/5.7.0\";\n","\"use strict\";\n\n/**\n * BigNumber\n *\n * A wrapper around the BN.js object. We use the BN.js library\n * because it is used by elliptic, so it is required regardless.\n *\n */\n\nimport _BN from \"bn.js\";\nimport BN = _BN.BN;\n\nimport { Bytes, Hexable, hexlify, isBytes, isHexString } from \"@ethersproject/bytes\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nconst _constructorGuard = { };\n\nconst MAX_SAFE = 0x1fffffffffffff;\n\n\nexport type BigNumberish = BigNumber | Bytes | bigint | string | number;\n\nexport function isBigNumberish(value: any): value is BigNumberish {\n return (value != null) && (\n BigNumber.isBigNumber(value) ||\n (typeof(value) === \"number\" && (value % 1) === 0) ||\n (typeof(value) === \"string\" && !!value.match(/^-?[0-9]+$/)) ||\n isHexString(value) ||\n (typeof(value) === \"bigint\") ||\n isBytes(value)\n );\n}\n\n// Only warn about passing 10 into radix once\nlet _warnedToStringRadix = false;\n\nexport class BigNumber implements Hexable {\n readonly _hex: string;\n readonly _isBigNumber: boolean;\n\n constructor(constructorGuard: any, hex: string) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"cannot call constructor directly; use BigNumber.from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new (BigNumber)\"\n });\n }\n\n this._hex = hex;\n this._isBigNumber = true;\n\n Object.freeze(this);\n }\n\n fromTwos(value: number): BigNumber {\n return toBigNumber(toBN(this).fromTwos(value));\n }\n\n toTwos(value: number): BigNumber {\n return toBigNumber(toBN(this).toTwos(value));\n }\n\n abs(): BigNumber {\n if (this._hex[0] === \"-\") {\n return BigNumber.from(this._hex.substring(1));\n }\n return this;\n }\n\n add(other: BigNumberish): BigNumber {\n return toBigNumber(toBN(this).add(toBN(other)));\n }\n\n sub(other: BigNumberish): BigNumber {\n return toBigNumber(toBN(this).sub(toBN(other)));\n }\n\n div(other: BigNumberish): BigNumber {\n const o = BigNumber.from(other);\n if (o.isZero()) {\n throwFault(\"division-by-zero\", \"div\");\n }\n return toBigNumber(toBN(this).div(toBN(other)));\n }\n\n mul(other: BigNumberish): BigNumber {\n return toBigNumber(toBN(this).mul(toBN(other)));\n }\n\n mod(other: BigNumberish): BigNumber {\n const value = toBN(other);\n if (value.isNeg()) {\n throwFault(\"division-by-zero\", \"mod\");\n }\n return toBigNumber(toBN(this).umod(value));\n }\n\n pow(other: BigNumberish): BigNumber {\n const value = toBN(other);\n if (value.isNeg()) {\n throwFault(\"negative-power\", \"pow\");\n }\n return toBigNumber(toBN(this).pow(value));\n }\n\n and(other: BigNumberish): BigNumber {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"and\");\n }\n return toBigNumber(toBN(this).and(value));\n }\n\n or(other: BigNumberish): BigNumber {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"or\");\n }\n return toBigNumber(toBN(this).or(value));\n }\n\n xor(other: BigNumberish): BigNumber {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"xor\");\n }\n return toBigNumber(toBN(this).xor(value));\n }\n\n mask(value: number): BigNumber {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"mask\");\n }\n return toBigNumber(toBN(this).maskn(value));\n }\n\n shl(value: number): BigNumber {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"shl\");\n }\n return toBigNumber(toBN(this).shln(value));\n }\n\n shr(value: number): BigNumber {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"shr\");\n }\n return toBigNumber(toBN(this).shrn(value));\n }\n\n eq(other: BigNumberish): boolean {\n return toBN(this).eq(toBN(other));\n }\n\n lt(other: BigNumberish): boolean {\n return toBN(this).lt(toBN(other));\n }\n\n lte(other: BigNumberish): boolean {\n return toBN(this).lte(toBN(other));\n }\n\n gt(other: BigNumberish): boolean {\n return toBN(this).gt(toBN(other));\n }\n\n gte(other: BigNumberish): boolean {\n return toBN(this).gte(toBN(other));\n }\n\n isNegative(): boolean {\n return (this._hex[0] === \"-\");\n }\n\n isZero(): boolean {\n return toBN(this).isZero();\n }\n\n toNumber(): number {\n try {\n return toBN(this).toNumber();\n } catch (error) {\n throwFault(\"overflow\", \"toNumber\", this.toString());\n }\n return null;\n }\n\n toBigInt(): bigint {\n try {\n return BigInt(this.toString());\n } catch (e) { }\n\n return logger.throwError(\"this platform does not support BigInt\", Logger.errors.UNSUPPORTED_OPERATION, {\n value: this.toString()\n });\n }\n\n toString(): string {\n // Lots of people expect this, which we do not support, so check (See: #889)\n if (arguments.length > 0) {\n if (arguments[0] === 10) {\n if (!_warnedToStringRadix) {\n _warnedToStringRadix = true;\n logger.warn(\"BigNumber.toString does not accept any parameters; base-10 is assumed\");\n }\n } else if (arguments[0] === 16) {\n logger.throwError(\"BigNumber.toString does not accept any parameters; use bigNumber.toHexString()\", Logger.errors.UNEXPECTED_ARGUMENT, { });\n } else {\n logger.throwError(\"BigNumber.toString does not accept parameters\", Logger.errors.UNEXPECTED_ARGUMENT, { });\n }\n }\n return toBN(this).toString(10);\n }\n\n toHexString(): string {\n return this._hex;\n }\n\n toJSON(key?: string): any {\n return { type: \"BigNumber\", hex: this.toHexString() };\n }\n\n static from(value: any): BigNumber {\n if (value instanceof BigNumber) { return value; }\n\n if (typeof(value) === \"string\") {\n if (value.match(/^-?0x[0-9a-f]+$/i)) {\n return new BigNumber(_constructorGuard, toHex(value));\n }\n\n if (value.match(/^-?[0-9]+$/)) {\n return new BigNumber(_constructorGuard, toHex(new BN(value)));\n }\n\n return logger.throwArgumentError(\"invalid BigNumber string\", \"value\", value);\n }\n\n if (typeof(value) === \"number\") {\n if (value % 1) {\n throwFault(\"underflow\", \"BigNumber.from\", value);\n }\n\n if (value >= MAX_SAFE || value <= -MAX_SAFE) {\n throwFault(\"overflow\", \"BigNumber.from\", value);\n }\n\n return BigNumber.from(String(value));\n }\n\n const anyValue = value;\n\n if (typeof(anyValue) === \"bigint\") {\n return BigNumber.from(anyValue.toString());\n }\n\n if (isBytes(anyValue)) {\n return BigNumber.from(hexlify(anyValue));\n }\n\n if (anyValue) {\n\n // Hexable interface (takes priority)\n if (anyValue.toHexString) {\n const hex = anyValue.toHexString();\n if (typeof(hex) === \"string\") {\n return BigNumber.from(hex);\n }\n\n } else {\n // For now, handle legacy JSON-ified values (goes away in v6)\n let hex = anyValue._hex;\n\n // New-form JSON\n if (hex == null && anyValue.type === \"BigNumber\") {\n hex = anyValue.hex;\n }\n\n if (typeof(hex) === \"string\") {\n if (isHexString(hex) || (hex[0] === \"-\" && isHexString(hex.substring(1)))) {\n return BigNumber.from(hex);\n }\n }\n }\n }\n\n return logger.throwArgumentError(\"invalid BigNumber value\", \"value\", value);\n }\n\n static isBigNumber(value: any): value is BigNumber {\n return !!(value && value._isBigNumber);\n }\n}\n\n// Normalize the hex string\nfunction toHex(value: string | BN): string {\n\n // For BN, call on the hex string\n if (typeof(value) !== \"string\") {\n return toHex(value.toString(16));\n }\n\n // If negative, prepend the negative sign to the normalized positive value\n if (value[0] === \"-\") {\n // Strip off the negative sign\n value = value.substring(1);\n\n // Cannot have multiple negative signs (e.g. \"--0x04\")\n if (value[0] === \"-\") { logger.throwArgumentError(\"invalid hex\", \"value\", value); }\n\n // Call toHex on the positive component\n value = toHex(value);\n\n // Do not allow \"-0x00\"\n if (value === \"0x00\") { return value; }\n\n // Negate the value\n return \"-\" + value;\n }\n\n // Add a \"0x\" prefix if missing\n if (value.substring(0, 2) !== \"0x\") { value = \"0x\" + value; }\n\n // Normalize zero\n if (value === \"0x\") { return \"0x00\"; }\n\n // Make the string even length\n if (value.length % 2) { value = \"0x0\" + value.substring(2); }\n\n // Trim to smallest even-length string\n while (value.length > 4 && value.substring(0, 4) === \"0x00\") {\n value = \"0x\" + value.substring(4);\n }\n\n return value;\n}\n\nfunction toBigNumber(value: BN): BigNumber {\n return BigNumber.from(toHex(value));\n}\n\nfunction toBN(value: BigNumberish): BN {\n const hex = BigNumber.from(value).toHexString();\n if (hex[0] === \"-\") {\n return (new BN(\"-\" + hex.substring(3), 16));\n }\n return new BN(hex.substring(2), 16);\n}\n\nfunction throwFault(fault: string, operation: string, value?: any): never {\n const params: any = { fault: fault, operation: operation };\n if (value != null) { params.value = value; }\n\n return logger.throwError(fault, Logger.errors.NUMERIC_FAULT, params);\n}\n\n// value should have no prefix\nexport function _base36To16(value: string): string {\n return (new BN(value, 36)).toString(16);\n}\n\n// value should have no prefix\nexport function _base16To36(value: string): string {\n return (new BN(value, 16)).toString(36);\n}\n","\"use strict\";\n\nimport { arrayify, BytesLike, hexZeroPad, isBytes } from \"@ethersproject/bytes\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { BigNumber, BigNumberish, isBigNumberish } from \"./bignumber\";\n\nconst _constructorGuard = { };\n\nconst Zero = BigNumber.from(0);\nconst NegativeOne = BigNumber.from(-1);\n\nfunction throwFault(message: string, fault: string, operation: string, value?: any): never {\n const params: any = { fault: fault, operation: operation };\n if (value !== undefined) { params.value = value; }\n return logger.throwError(message, Logger.errors.NUMERIC_FAULT, params);\n}\n\n// Constant to pull zeros from for multipliers\nlet zeros = \"0\";\nwhile (zeros.length < 256) { zeros += zeros; }\n\n// Returns a string \"1\" followed by decimal \"0\"s\nfunction getMultiplier(decimals: BigNumberish): string {\n\n if (typeof(decimals) !== \"number\") {\n try {\n decimals = BigNumber.from(decimals).toNumber();\n } catch (e) { }\n }\n\n if (typeof(decimals) === \"number\" && decimals >= 0 && decimals <= 256 && !(decimals % 1)) {\n return (\"1\" + zeros.substring(0, decimals));\n }\n\n return logger.throwArgumentError(\"invalid decimal size\", \"decimals\", decimals);\n}\n\nexport function formatFixed(value: BigNumberish, decimals?: string | BigNumberish): string {\n if (decimals == null) { decimals = 0; }\n const multiplier = getMultiplier(decimals);\n\n // Make sure wei is a big number (convert as necessary)\n value = BigNumber.from(value);\n\n const negative = value.lt(Zero);\n if (negative) { value = value.mul(NegativeOne); }\n\n let fraction = value.mod(multiplier).toString();\n while (fraction.length < multiplier.length - 1) { fraction = \"0\" + fraction; }\n\n // Strip training 0\n fraction = fraction.match(/^([0-9]*[1-9]|0)(0*)/)[1];\n\n const whole = value.div(multiplier).toString();\n if (multiplier.length === 1) {\n value = whole;\n } else {\n value = whole + \".\" + fraction;\n }\n\n if (negative) { value = \"-\" + value; }\n\n return value;\n}\n\nexport function parseFixed(value: string, decimals?: BigNumberish): BigNumber {\n\n if (decimals == null) { decimals = 0; }\n const multiplier = getMultiplier(decimals);\n\n if (typeof(value) !== \"string\" || !value.match(/^-?[0-9.]+$/)) {\n logger.throwArgumentError(\"invalid decimal value\", \"value\", value);\n }\n\n // Is it negative?\n const negative = (value.substring(0, 1) === \"-\");\n if (negative) { value = value.substring(1); }\n\n if (value === \".\") {\n logger.throwArgumentError(\"missing value\", \"value\", value);\n }\n\n // Split it into a whole and fractional part\n const comps = value.split(\".\");\n if (comps.length > 2) {\n logger.throwArgumentError(\"too many decimal points\", \"value\", value);\n }\n\n let whole = comps[0], fraction = comps[1];\n if (!whole) { whole = \"0\"; }\n if (!fraction) { fraction = \"0\"; }\n\n // Trim trailing zeros\n while (fraction[fraction.length - 1] === \"0\") {\n fraction = fraction.substring(0, fraction.length - 1);\n }\n\n // Check the fraction doesn't exceed our decimals size\n if (fraction.length > multiplier.length - 1) {\n throwFault(\"fractional component exceeds decimals\", \"underflow\", \"parseFixed\");\n }\n\n // If decimals is 0, we have an empty string for fraction\n if (fraction === \"\") { fraction = \"0\"; }\n\n // Fully pad the string with zeros to get to wei\n while (fraction.length < multiplier.length - 1) { fraction += \"0\"; }\n\n const wholeValue = BigNumber.from(whole);\n const fractionValue = BigNumber.from(fraction);\n\n let wei = (wholeValue.mul(multiplier)).add(fractionValue);\n\n if (negative) { wei = wei.mul(NegativeOne); }\n\n return wei;\n}\n\n\nexport class FixedFormat {\n readonly signed: boolean;\n readonly width: number;\n readonly decimals: number;\n readonly name: string;\n readonly _multiplier: string;\n\n constructor(constructorGuard: any, signed: boolean, width: number, decimals: number) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"cannot use FixedFormat constructor; use FixedFormat.from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new FixedFormat\"\n });\n }\n\n this.signed = signed;\n this.width = width;\n this.decimals = decimals;\n\n this.name = (signed ? \"\": \"u\") + \"fixed\" + String(width) + \"x\" + String(decimals);\n\n this._multiplier = getMultiplier(decimals);\n\n Object.freeze(this);\n }\n\n static from(value: any): FixedFormat {\n if (value instanceof FixedFormat) { return value; }\n\n if (typeof(value) === \"number\") {\n value = `fixed128x${value}`\n }\n\n let signed = true;\n let width = 128;\n let decimals = 18;\n\n if (typeof(value) === \"string\") {\n if (value === \"fixed\") {\n // defaults...\n } else if (value === \"ufixed\") {\n signed = false;\n } else {\n const match = value.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);\n if (!match) { logger.throwArgumentError(\"invalid fixed format\", \"format\", value); }\n signed = (match[1] !== \"u\");\n width = parseInt(match[2]);\n decimals = parseInt(match[3]);\n }\n } else if (value) {\n const check = (key: string, type: string, defaultValue: any): any => {\n if (value[key] == null) { return defaultValue; }\n if (typeof(value[key]) !== type) {\n logger.throwArgumentError(\"invalid fixed format (\" + key + \" not \" + type +\")\", \"format.\" + key, value[key]);\n }\n return value[key];\n }\n signed = check(\"signed\", \"boolean\", signed);\n width = check(\"width\", \"number\", width);\n decimals = check(\"decimals\", \"number\", decimals);\n }\n\n if (width % 8) {\n logger.throwArgumentError(\"invalid fixed format width (not byte aligned)\", \"format.width\", width);\n }\n\n if (decimals > 80) {\n logger.throwArgumentError(\"invalid fixed format (decimals too large)\", \"format.decimals\", decimals);\n }\n\n return new FixedFormat(_constructorGuard, signed, width, decimals);\n }\n}\n\nexport class FixedNumber {\n readonly format: FixedFormat;\n readonly _hex: string;\n readonly _value: string;\n\n readonly _isFixedNumber: boolean;\n\n constructor(constructorGuard: any, hex: string, value: string, format?: FixedFormat) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"cannot use FixedNumber constructor; use FixedNumber.from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new FixedFormat\"\n });\n }\n\n this.format = format;\n this._hex = hex;\n this._value = value;\n\n this._isFixedNumber = true;\n\n Object.freeze(this);\n }\n\n _checkFormat(other: FixedNumber): void {\n if (this.format.name !== other.format.name) {\n logger.throwArgumentError(\"incompatible format; use fixedNumber.toFormat\", \"other\", other);\n }\n }\n\n addUnsafe(other: FixedNumber): FixedNumber {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.add(b), this.format.decimals, this.format);\n }\n\n subUnsafe(other: FixedNumber): FixedNumber {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.sub(b), this.format.decimals, this.format);\n }\n\n mulUnsafe(other: FixedNumber): FixedNumber {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.mul(b).div(this.format._multiplier), this.format.decimals, this.format);\n }\n\n divUnsafe(other: FixedNumber): FixedNumber {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.mul(this.format._multiplier).div(b), this.format.decimals, this.format);\n }\n\n floor(): FixedNumber {\n const comps = this.toString().split(\".\");\n if (comps.length === 1) { comps.push(\"0\"); }\n\n let result = FixedNumber.from(comps[0], this.format);\n\n const hasFraction = !comps[1].match(/^(0*)$/);\n if (this.isNegative() && hasFraction) {\n result = result.subUnsafe(ONE.toFormat(result.format));\n }\n\n return result;\n }\n\n ceiling(): FixedNumber {\n const comps = this.toString().split(\".\");\n if (comps.length === 1) { comps.push(\"0\"); }\n\n let result = FixedNumber.from(comps[0], this.format);\n\n const hasFraction = !comps[1].match(/^(0*)$/);\n if (!this.isNegative() && hasFraction) {\n result = result.addUnsafe(ONE.toFormat(result.format));\n }\n\n return result;\n }\n\n // @TODO: Support other rounding algorithms\n round(decimals?: number): FixedNumber {\n if (decimals == null) { decimals = 0; }\n\n // If we are already in range, we're done\n const comps = this.toString().split(\".\");\n if (comps.length === 1) { comps.push(\"0\"); }\n\n if (decimals < 0 || decimals > 80 || (decimals % 1)) {\n logger.throwArgumentError(\"invalid decimal count\", \"decimals\", decimals);\n }\n\n if (comps[1].length <= decimals) { return this; }\n\n const factor = FixedNumber.from(\"1\" + zeros.substring(0, decimals), this.format);\n const bump = BUMP.toFormat(this.format);\n\n return this.mulUnsafe(factor).addUnsafe(bump).floor().divUnsafe(factor);\n }\n\n isZero(): boolean {\n return (this._value === \"0.0\" || this._value === \"0\");\n }\n\n isNegative(): boolean {\n return (this._value[0] === \"-\");\n }\n\n toString(): string { return this._value; }\n\n toHexString(width?: number): string {\n if (width == null) { return this._hex; }\n if (width % 8) { logger.throwArgumentError(\"invalid byte width\", \"width\", width); }\n const hex = BigNumber.from(this._hex).fromTwos(this.format.width).toTwos(width).toHexString();\n return hexZeroPad(hex, width / 8);\n }\n\n toUnsafeFloat(): number { return parseFloat(this.toString()); }\n\n toFormat(format: FixedFormat | string): FixedNumber {\n return FixedNumber.fromString(this._value, format);\n }\n\n\n static fromValue(value: BigNumber, decimals?: BigNumberish, format?: FixedFormat | string | number): FixedNumber {\n // If decimals looks more like a format, and there is no format, shift the parameters\n if (format == null && decimals != null && !isBigNumberish(decimals)) {\n format = decimals;\n decimals = null;\n }\n\n if (decimals == null) { decimals = 0; }\n if (format == null) { format = \"fixed\"; }\n\n return FixedNumber.fromString(formatFixed(value, decimals), FixedFormat.from(format));\n }\n\n\n static fromString(value: string, format?: FixedFormat | string | number): FixedNumber {\n if (format == null) { format = \"fixed\"; }\n\n const fixedFormat = FixedFormat.from(format);\n\n const numeric = parseFixed(value, fixedFormat.decimals);\n\n if (!fixedFormat.signed && numeric.lt(Zero)) {\n throwFault(\"unsigned value cannot be negative\", \"overflow\", \"value\", value);\n }\n\n let hex: string = null;\n if (fixedFormat.signed) {\n hex = numeric.toTwos(fixedFormat.width).toHexString();\n } else {\n hex = numeric.toHexString();\n hex = hexZeroPad(hex, fixedFormat.width / 8);\n }\n\n const decimal = formatFixed(numeric, fixedFormat.decimals);\n\n return new FixedNumber(_constructorGuard, hex, decimal, fixedFormat);\n }\n\n static fromBytes(value: BytesLike, format?: FixedFormat | string | number): FixedNumber {\n if (format == null) { format = \"fixed\"; }\n\n const fixedFormat = FixedFormat.from(format);\n\n if (arrayify(value).length > fixedFormat.width / 8) {\n throw new Error(\"overflow\");\n }\n\n let numeric = BigNumber.from(value);\n if (fixedFormat.signed) { numeric = numeric.fromTwos(fixedFormat.width); }\n\n const hex = numeric.toTwos((fixedFormat.signed ? 0: 1) + fixedFormat.width).toHexString();\n const decimal = formatFixed(numeric, fixedFormat.decimals);\n\n return new FixedNumber(_constructorGuard, hex, decimal, fixedFormat);\n }\n\n static from(value: any, format?: FixedFormat | string | number) {\n if (typeof(value) === \"string\") {\n return FixedNumber.fromString(value, format);\n }\n\n if (isBytes(value)) {\n return FixedNumber.fromBytes(value, format);\n }\n\n try {\n return FixedNumber.fromValue(value, 0, format);\n } catch (error) {\n // Allow NUMERIC_FAULT to bubble up\n if (error.code !== Logger.errors.INVALID_ARGUMENT) {\n throw error;\n }\n }\n\n return logger.throwArgumentError(\"invalid FixedNumber value\", \"value\", value);\n }\n\n static isFixedNumber(value: any): value is FixedNumber {\n return !!(value && value._isFixedNumber);\n }\n}\n\nconst ONE = FixedNumber.from(1);\nconst BUMP = FixedNumber.from(\"0.5\");\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","export const version = \"bytes/5.7.0\";\n","\"use strict\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n///////////////////////////////\n// Exported Types\n\nexport type Bytes = ArrayLike;\n\nexport type BytesLike = Bytes | string;\n\nexport type DataOptions = {\n allowMissingPrefix?: boolean;\n hexPad?: \"left\" | \"right\" | null;\n};\n\nexport interface Hexable {\n toHexString(): string;\n}\n\n\n/*\nexport interface HexString {\n length: number;\n substring: (start: number, end?: number) => string;\n\n [index: number]: string;\n}\n*/\n\nexport type SignatureLike = {\n r: string;\n s?: string;\n _vs?: string,\n recoveryParam?: number;\n v?: number;\n} | BytesLike;\n\nexport interface Signature {\n r: string;\n\n s: string;\n _vs: string,\n\n recoveryParam: number;\n v: number;\n\n yParityAndS: string\n compact: string;\n}\n\n///////////////////////////////\n\n\nfunction isHexable(value: any): value is Hexable {\n return !!(value.toHexString);\n}\n\nfunction addSlice(array: Uint8Array): Uint8Array {\n if (array.slice) { return array; }\n\n array.slice = function() {\n const args = Array.prototype.slice.call(arguments);\n return addSlice(new Uint8Array(Array.prototype.slice.apply(array, args)));\n }\n\n return array;\n}\n\nexport function isBytesLike(value: any): value is BytesLike {\n return ((isHexString(value) && !(value.length % 2)) || isBytes(value));\n}\n\nfunction isInteger(value: number) {\n return (typeof(value) === \"number\" && value == value && (value % 1) === 0);\n}\n\nexport function isBytes(value: any): value is Bytes {\n if (value == null) { return false; }\n\n if (value.constructor === Uint8Array) { return true; }\n if (typeof(value) === \"string\") { return false; }\n if (!isInteger(value.length) || value.length < 0) { return false; }\n\n for (let i = 0; i < value.length; i++) {\n const v = value[i];\n if (!isInteger(v) || v < 0 || v >= 256) { return false; }\n }\n return true;\n}\n\n\nexport function arrayify(value: BytesLike | Hexable | number, options?: DataOptions): Uint8Array {\n if (!options) { options = { }; }\n\n if (typeof(value) === \"number\") {\n logger.checkSafeUint53(value, \"invalid arrayify value\");\n\n const result = [];\n while (value) {\n result.unshift(value & 0xff);\n value = parseInt(String(value / 256));\n }\n if (result.length === 0) { result.push(0); }\n\n return addSlice(new Uint8Array(result));\n }\n\n if (options.allowMissingPrefix && typeof(value) === \"string\" && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n\n if (isHexable(value)) { value = value.toHexString(); }\n\n if (isHexString(value)) {\n let hex = (value).substring(2);\n if (hex.length % 2) {\n if (options.hexPad === \"left\") {\n hex = \"0\" + hex;\n } else if (options.hexPad === \"right\") {\n hex += \"0\";\n } else {\n logger.throwArgumentError(\"hex data is odd-length\", \"value\", value);\n }\n }\n\n const result = [];\n for (let i = 0; i < hex.length; i += 2) {\n result.push(parseInt(hex.substring(i, i + 2), 16));\n }\n\n return addSlice(new Uint8Array(result));\n }\n\n if (isBytes(value)) {\n return addSlice(new Uint8Array(value));\n }\n\n return logger.throwArgumentError(\"invalid arrayify value\", \"value\", value);\n}\n\nexport function concat(items: ReadonlyArray): Uint8Array {\n const objects = items.map(item => arrayify(item));\n const length = objects.reduce((accum, item) => (accum + item.length), 0);\n\n const result = new Uint8Array(length);\n\n objects.reduce((offset, object) => {\n result.set(object, offset);\n return offset + object.length;\n }, 0);\n\n return addSlice(result);\n}\n\nexport function stripZeros(value: BytesLike): Uint8Array {\n let result: Uint8Array = arrayify(value);\n\n if (result.length === 0) { return result; }\n\n // Find the first non-zero entry\n let start = 0;\n while (start < result.length && result[start] === 0) { start++ }\n\n // If we started with zeros, strip them\n if (start) {\n result = result.slice(start);\n }\n\n return result;\n}\n\nexport function zeroPad(value: BytesLike, length: number): Uint8Array {\n value = arrayify(value);\n\n if (value.length > length) {\n logger.throwArgumentError(\"value out of range\", \"value\", arguments[0]);\n }\n\n const result = new Uint8Array(length);\n result.set(value, length - value.length);\n return addSlice(result);\n}\n\n\nexport function isHexString(value: any, length?: number): boolean {\n if (typeof(value) !== \"string\" || !value.match(/^0x[0-9A-Fa-f]*$/)) {\n return false\n }\n if (length && value.length !== 2 + 2 * length) { return false; }\n return true;\n}\n\nconst HexCharacters: string = \"0123456789abcdef\";\n\nexport function hexlify(value: BytesLike | Hexable | number | bigint, options?: DataOptions): string {\n if (!options) { options = { }; }\n\n if (typeof(value) === \"number\") {\n logger.checkSafeUint53(value, \"invalid hexlify value\");\n\n let hex = \"\";\n while (value) {\n hex = HexCharacters[value & 0xf] + hex;\n value = Math.floor(value / 16);\n }\n\n if (hex.length) {\n if (hex.length % 2) { hex = \"0\" + hex; }\n return \"0x\" + hex;\n }\n\n return \"0x00\";\n }\n\n if (typeof(value) === \"bigint\") {\n value = value.toString(16);\n if (value.length % 2) { return (\"0x0\" + value); }\n return \"0x\" + value;\n }\n\n if (options.allowMissingPrefix && typeof(value) === \"string\" && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n\n if (isHexable(value)) { return value.toHexString(); }\n\n if (isHexString(value)) {\n if ((value).length % 2) {\n if (options.hexPad === \"left\") {\n value = \"0x0\" + (value).substring(2);\n } else if (options.hexPad === \"right\") {\n value += \"0\";\n } else {\n logger.throwArgumentError(\"hex data is odd-length\", \"value\", value);\n }\n }\n return (value).toLowerCase();\n }\n\n if (isBytes(value)) {\n let result = \"0x\";\n for (let i = 0; i < value.length; i++) {\n let v = value[i];\n result += HexCharacters[(v & 0xf0) >> 4] + HexCharacters[v & 0x0f];\n }\n return result;\n }\n\n return logger.throwArgumentError(\"invalid hexlify value\", \"value\", value);\n}\n\n/*\nfunction unoddify(value: BytesLike | Hexable | number): BytesLike | Hexable | number {\n if (typeof(value) === \"string\" && value.length % 2 && value.substring(0, 2) === \"0x\") {\n return \"0x0\" + value.substring(2);\n }\n return value;\n}\n*/\nexport function hexDataLength(data: BytesLike) {\n if (typeof(data) !== \"string\") {\n data = hexlify(data);\n } else if (!isHexString(data) || (data.length % 2)) {\n return null;\n }\n\n return (data.length - 2) / 2;\n}\n\nexport function hexDataSlice(data: BytesLike, offset: number, endOffset?: number): string {\n if (typeof(data) !== \"string\") {\n data = hexlify(data);\n } else if (!isHexString(data) || (data.length % 2)) {\n logger.throwArgumentError(\"invalid hexData\", \"value\", data );\n }\n\n offset = 2 + 2 * offset;\n\n if (endOffset != null) {\n return \"0x\" + data.substring(offset, 2 + 2 * endOffset);\n }\n\n return \"0x\" + data.substring(offset);\n}\n\nexport function hexConcat(items: ReadonlyArray): string {\n let result = \"0x\";\n items.forEach((item) => {\n result += hexlify(item).substring(2);\n });\n return result;\n}\n\nexport function hexValue(value: BytesLike | Hexable | number | bigint): string {\n const trimmed = hexStripZeros(hexlify(value, { hexPad: \"left\" }));\n if (trimmed === \"0x\") { return \"0x0\"; }\n return trimmed;\n}\n\nexport function hexStripZeros(value: BytesLike): string {\n if (typeof(value) !== \"string\") { value = hexlify(value); }\n\n if (!isHexString(value)) {\n logger.throwArgumentError(\"invalid hex string\", \"value\", value);\n }\n value = value.substring(2);\n let offset = 0;\n while (offset < value.length && value[offset] === \"0\") { offset++; }\n return \"0x\" + value.substring(offset);\n}\n\nexport function hexZeroPad(value: BytesLike, length: number): string {\n if (typeof(value) !== \"string\") {\n value = hexlify(value);\n } else if (!isHexString(value)) {\n logger.throwArgumentError(\"invalid hex string\", \"value\", value);\n }\n\n if (value.length > 2 * length + 2) {\n logger.throwArgumentError(\"value out of range\", \"value\", arguments[1]);\n }\n\n while (value.length < 2 * length + 2) {\n value = \"0x0\" + value.substring(2);\n }\n\n return value;\n}\n\nexport function splitSignature(signature: SignatureLike): Signature {\n\n const result = {\n r: \"0x\",\n s: \"0x\",\n _vs: \"0x\",\n recoveryParam: 0,\n v: 0,\n yParityAndS: \"0x\",\n compact: \"0x\"\n };\n\n if (isBytesLike(signature)) {\n let bytes: Uint8Array = arrayify(signature);\n\n // Get the r, s and v\n if (bytes.length === 64) {\n // EIP-2098; pull the v from the top bit of s and clear it\n result.v = 27 + (bytes[32] >> 7);\n bytes[32] &= 0x7f;\n\n result.r = hexlify(bytes.slice(0, 32));\n result.s = hexlify(bytes.slice(32, 64));\n\n } else if (bytes.length === 65) {\n result.r = hexlify(bytes.slice(0, 32));\n result.s = hexlify(bytes.slice(32, 64));\n result.v = bytes[64];\n } else {\n\n logger.throwArgumentError(\"invalid signature string\", \"signature\", signature);\n }\n\n\n // Allow a recid to be used as the v\n if (result.v < 27) {\n if (result.v === 0 || result.v === 1) {\n result.v += 27;\n } else {\n logger.throwArgumentError(\"signature invalid v byte\", \"signature\", signature);\n }\n }\n\n // Compute recoveryParam from v\n result.recoveryParam = 1 - (result.v % 2);\n\n // Compute _vs from recoveryParam and s\n if (result.recoveryParam) { bytes[32] |= 0x80; }\n result._vs = hexlify(bytes.slice(32, 64))\n\n } else {\n result.r = signature.r;\n result.s = signature.s;\n result.v = signature.v;\n result.recoveryParam = signature.recoveryParam;\n result._vs = signature._vs;\n\n // If the _vs is available, use it to populate missing s, v and recoveryParam\n // and verify non-missing s, v and recoveryParam\n if (result._vs != null) {\n const vs = zeroPad(arrayify(result._vs), 32);\n result._vs = hexlify(vs);\n\n // Set or check the recid\n const recoveryParam = ((vs[0] >= 128) ? 1: 0);\n if (result.recoveryParam == null) {\n result.recoveryParam = recoveryParam;\n } else if (result.recoveryParam !== recoveryParam) {\n logger.throwArgumentError(\"signature recoveryParam mismatch _vs\", \"signature\", signature);\n }\n\n // Set or check the s\n vs[0] &= 0x7f;\n const s = hexlify(vs);\n if (result.s == null) {\n result.s = s;\n } else if (result.s !== s) {\n logger.throwArgumentError(\"signature v mismatch _vs\", \"signature\", signature);\n }\n }\n\n // Use recid and v to populate each other\n if (result.recoveryParam == null) {\n if (result.v == null) {\n logger.throwArgumentError(\"signature missing v and recoveryParam\", \"signature\", signature);\n } else if (result.v === 0 || result.v === 1) {\n result.recoveryParam = result.v;\n } else {\n result.recoveryParam = 1 - (result.v % 2);\n }\n } else {\n if (result.v == null) {\n result.v = 27 + result.recoveryParam;\n } else {\n const recId = (result.v === 0 || result.v === 1) ? result.v :(1 - (result.v % 2));\n if (result.recoveryParam !== recId) {\n logger.throwArgumentError(\"signature recoveryParam mismatch v\", \"signature\", signature);\n }\n }\n }\n\n if (result.r == null || !isHexString(result.r)) {\n logger.throwArgumentError(\"signature missing or invalid r\", \"signature\", signature);\n } else {\n result.r = hexZeroPad(result.r, 32);\n }\n\n if (result.s == null || !isHexString(result.s)) {\n logger.throwArgumentError(\"signature missing or invalid s\", \"signature\", signature);\n } else {\n result.s = hexZeroPad(result.s, 32);\n }\n\n const vs = arrayify(result.s);\n if (vs[0] >= 128) {\n logger.throwArgumentError(\"signature s out of range\", \"signature\", signature);\n }\n if (result.recoveryParam) { vs[0] |= 0x80; }\n const _vs = hexlify(vs);\n\n if (result._vs) {\n if (!isHexString(result._vs)) {\n logger.throwArgumentError(\"signature invalid _vs\", \"signature\", signature);\n }\n result._vs = hexZeroPad(result._vs, 32);\n }\n\n // Set or check the _vs\n if (result._vs == null) {\n result._vs = _vs;\n } else if (result._vs !== _vs) {\n logger.throwArgumentError(\"signature _vs mismatch v and s\", \"signature\", signature);\n }\n }\n\n result.yParityAndS = result._vs;\n result.compact = result.r + result.yParityAndS.substring(2);\n\n return result;\n}\n\nexport function joinSignature(signature: SignatureLike): string {\n signature = splitSignature(signature);\n\n return hexlify(concat([\n signature.r,\n signature.s,\n (signature.recoveryParam ? \"0x1c\": \"0x1b\")\n ]));\n}\n\n","export const AddressZero = \"0x0000000000000000000000000000000000000000\";\n\n","import { BigNumber } from \"@ethersproject/bignumber\";\n\nconst NegativeOne: BigNumber = (/*#__PURE__*/BigNumber.from(-1));\nconst Zero: BigNumber = (/*#__PURE__*/BigNumber.from(0));\nconst One: BigNumber = (/*#__PURE__*/BigNumber.from(1));\nconst Two: BigNumber = (/*#__PURE__*/BigNumber.from(2));\nconst WeiPerEther: BigNumber = (/*#__PURE__*/BigNumber.from(\"1000000000000000000\"));\nconst MaxUint256: BigNumber = (/*#__PURE__*/BigNumber.from(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"));\n\nconst MinInt256: BigNumber = (/*#__PURE__*/BigNumber.from(\"-0x8000000000000000000000000000000000000000000000000000000000000000\"));\nconst MaxInt256: BigNumber = (/*#__PURE__*/BigNumber.from(\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"));\n\nexport {\n NegativeOne,\n Zero,\n One,\n Two,\n WeiPerEther,\n MaxUint256,\n MinInt256,\n MaxInt256,\n};\n","export const HashZero = \"0x0000000000000000000000000000000000000000000000000000000000000000\";\n\n","// NFKC (composed) // (decomposed)\nexport const EtherSymbol = \"\\u039e\"; // \"\\uD835\\uDF63\";\n","\"use strict\";\n\nimport { checkResultErrors, EventFragment, Fragment, FunctionFragment, Indexed, Interface, JsonFragment, LogDescription, ParamType, Result } from \"@ethersproject/abi\";\nimport { Block, BlockTag, Filter, FilterByBlockHash, Listener, Log, Provider, TransactionReceipt, TransactionRequest, TransactionResponse } from \"@ethersproject/abstract-provider\";\nimport { Signer, VoidSigner } from \"@ethersproject/abstract-signer\";\nimport { getAddress, getContractAddress } from \"@ethersproject/address\";\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { arrayify, BytesLike, concat, hexlify, isBytes, isHexString } from \"@ethersproject/bytes\";\nimport { Deferrable, defineReadOnly, deepCopy, getStatic, resolveProperties, shallowCopy } from \"@ethersproject/properties\";\nimport { AccessList, accessListify, AccessListish } from \"@ethersproject/transactions\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\n\nconst logger = new Logger(version);\n\nexport interface Overrides {\n gasLimit?: BigNumberish | Promise;\n gasPrice?: BigNumberish | Promise;\n maxFeePerGas?: BigNumberish | Promise;\n maxPriorityFeePerGas?: BigNumberish | Promise;\n nonce?: BigNumberish | Promise;\n type?: number;\n accessList?: AccessListish;\n customData?: Record;\n ccipReadEnabled?: boolean;\n};\n\nexport interface PayableOverrides extends Overrides {\n value?: BigNumberish | Promise;\n}\n\nexport interface CallOverrides extends PayableOverrides {\n blockTag?: BlockTag | Promise;\n from?: string | Promise;\n}\n\n// @TODO: Better hierarchy with: (in v6)\n// - abstract-provider:TransactionRequest\n// - transactions:Transaction\n// - transaction:UnsignedTransaction\n\nexport interface PopulatedTransaction {\n to?: string;\n from?: string;\n nonce?: number;\n\n gasLimit?: BigNumber;\n gasPrice?: BigNumber;\n\n data?: string;\n value?: BigNumber;\n chainId?: number;\n\n type?: number;\n accessList?: AccessList;\n\n maxFeePerGas?: BigNumber;\n maxPriorityFeePerGas?: BigNumber;\n\n customData?: Record;\n ccipReadEnabled?: boolean;\n};\n\nexport type EventFilter = {\n address?: string;\n topics?: Array>;\n};\n\n\nexport type ContractFunction = (...args: Array) => Promise;\n\n\n// The (n + 1)th parameter passed to contract event callbacks\nexport interface Event extends Log {\n\n // The event name\n event?: string;\n\n // The event signature\n eventSignature?: string;\n\n // The parsed arguments to the event\n args?: Result;\n\n // If parsing the arguments failed, this is the error\n decodeError?: Error;\n\n // A function that can be used to decode event data and topics\n decode?: (data: string, topics?: Array) => any;\n\n // A function that will remove the listener responsible for this event (if any)\n removeListener: () => void;\n\n // Get blockchain details about this event's block and transaction\n getBlock: () => Promise;\n getTransaction: () => Promise;\n getTransactionReceipt: () => Promise;\n}\n\nexport interface ContractReceipt extends TransactionReceipt {\n events?: Array;\n}\n\nexport interface ContractTransaction extends TransactionResponse {\n wait(confirmations?: number): Promise;\n}\n\n///////////////////////////////\n\nconst allowedTransactionKeys: { [ key: string ]: boolean } = {\n chainId: true, data: true, from: true, gasLimit: true, gasPrice:true, nonce: true, to: true, value: true,\n type: true, accessList: true,\n maxFeePerGas: true, maxPriorityFeePerGas: true,\n customData: true,\n ccipReadEnabled: true\n}\n\nasync function resolveName(resolver: Signer | Provider, nameOrPromise: string | Promise): Promise {\n const name = await nameOrPromise;\n\n if (typeof(name) !== \"string\") {\n logger.throwArgumentError(\"invalid address or ENS name\", \"name\", name);\n }\n\n // If it is already an address, just use it (after adding checksum)\n try {\n return getAddress(name);\n } catch (error) { }\n\n if (!resolver) {\n logger.throwError(\"a provider or signer is needed to resolve ENS names\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"resolveName\"\n });\n }\n\n const address = await resolver.resolveName(name);\n\n if (address == null) {\n logger.throwArgumentError(\"resolver or addr is not configured for ENS name\", \"name\", name);\n }\n\n return address;\n}\n\n// Recursively replaces ENS names with promises to resolve the name and resolves all properties\nasync function resolveAddresses(resolver: Signer | Provider, value: any, paramType: ParamType | Array): Promise {\n if (Array.isArray(paramType)) {\n return await Promise.all(paramType.map((paramType, index) => {\n return resolveAddresses(\n resolver,\n ((Array.isArray(value)) ? value[index]: value[paramType.name]),\n paramType\n );\n }));\n }\n\n if (paramType.type === \"address\") {\n return await resolveName(resolver, value);\n }\n\n if (paramType.type === \"tuple\") {\n return await resolveAddresses(resolver, value, paramType.components);\n }\n\n if (paramType.baseType === \"array\") {\n if (!Array.isArray(value)) {\n return Promise.reject(logger.makeError(\"invalid value for array\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"value\",\n value\n }));\n }\n return await Promise.all(value.map((v) => resolveAddresses(resolver, v, paramType.arrayChildren)));\n }\n\n return value;\n}\n\nasync function populateTransaction(contract: Contract, fragment: FunctionFragment, args: Array): Promise {\n // If an extra argument is given, it is overrides\n let overrides: CallOverrides = { };\n if (args.length === fragment.inputs.length + 1 && typeof(args[args.length - 1]) === \"object\") {\n overrides = shallowCopy(args.pop());\n }\n\n // Make sure the parameter count matches\n logger.checkArgumentCount(args.length, fragment.inputs.length, \"passed to contract\");\n\n // Populate \"from\" override (allow promises)\n if (contract.signer) {\n if (overrides.from) {\n // Contracts with a Signer are from the Signer's frame-of-reference;\n // but we allow overriding \"from\" if it matches the signer\n overrides.from = resolveProperties({\n override: resolveName(contract.signer, overrides.from),\n signer: contract.signer.getAddress()\n }).then(async (check) => {\n if (getAddress(check.signer) !== check.override) {\n logger.throwError(\"Contract with a Signer cannot override from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"overrides.from\"\n });\n }\n\n return check.override;\n });\n\n } else {\n overrides.from = contract.signer.getAddress();\n }\n\n } else if (overrides.from) {\n overrides.from = resolveName(contract.provider, overrides.from);\n\n //} else {\n // Contracts without a signer can override \"from\", and if\n // unspecified the zero address is used\n //overrides.from = AddressZero;\n }\n\n // Wait for all dependencies to be resolved (prefer the signer over the provider)\n const resolved = await resolveProperties({\n args: resolveAddresses(contract.signer || contract.provider, args, fragment.inputs),\n address: contract.resolvedAddress,\n overrides: (resolveProperties(overrides) || { })\n });\n\n // The ABI coded transaction\n const data = contract.interface.encodeFunctionData(fragment, resolved.args);\n const tx: PopulatedTransaction = {\n data: data,\n to: resolved.address\n };\n\n // Resolved Overrides\n const ro = resolved.overrides;\n\n // Populate simple overrides\n if (ro.nonce != null) { tx.nonce = BigNumber.from(ro.nonce).toNumber(); }\n if (ro.gasLimit != null) { tx.gasLimit = BigNumber.from(ro.gasLimit); }\n if (ro.gasPrice != null) { tx.gasPrice = BigNumber.from(ro.gasPrice); }\n if (ro.maxFeePerGas != null) { tx.maxFeePerGas = BigNumber.from(ro.maxFeePerGas); }\n if (ro.maxPriorityFeePerGas != null) { tx.maxPriorityFeePerGas = BigNumber.from(ro.maxPriorityFeePerGas); }\n if (ro.from != null) { tx.from = ro.from; }\n\n if (ro.type != null) { tx.type = ro.type; }\n if (ro.accessList != null) { tx.accessList = accessListify(ro.accessList); }\n\n // If there was no \"gasLimit\" override, but the ABI specifies a default, use it\n if (tx.gasLimit == null && fragment.gas != null) {\n // Compute the intrinsic gas cost for this transaction\n // @TODO: This is based on the yellow paper as of Petersburg; this is something\n // we may wish to parameterize in v6 as part of the Network object. Since this\n // is always a non-nil to address, we can ignore G_create, but may wish to add\n // similar logic to the ContractFactory.\n let intrinsic = 21000;\n const bytes = arrayify(data);\n for (let i = 0; i < bytes.length; i++) {\n intrinsic += 4;\n if (bytes[i]) { intrinsic += 64; }\n }\n tx.gasLimit = BigNumber.from(fragment.gas).add(intrinsic);\n }\n\n // Populate \"value\" override\n if (ro.value) {\n const roValue = BigNumber.from(ro.value);\n if (!roValue.isZero() && !fragment.payable) {\n logger.throwError(\"non-payable method cannot override value\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"overrides.value\",\n value: overrides.value\n });\n }\n tx.value = roValue;\n }\n\n if (ro.customData) {\n tx.customData = shallowCopy(ro.customData);\n }\n\n if (ro.ccipReadEnabled) {\n tx.ccipReadEnabled = !!ro.ccipReadEnabled;\n }\n\n // Remove the overrides\n delete overrides.nonce;\n delete overrides.gasLimit;\n delete overrides.gasPrice;\n delete overrides.from;\n delete overrides.value;\n\n delete overrides.type;\n delete overrides.accessList;\n\n delete overrides.maxFeePerGas;\n delete overrides.maxPriorityFeePerGas;\n\n delete overrides.customData;\n delete overrides.ccipReadEnabled;\n\n // Make sure there are no stray overrides, which may indicate a\n // typo or using an unsupported key.\n const leftovers = Object.keys(overrides).filter((key) => ((overrides)[key] != null));\n if (leftovers.length) {\n logger.throwError(`cannot override ${ leftovers.map((l) => JSON.stringify(l)).join(\",\") }`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"overrides\",\n overrides: leftovers\n });\n }\n\n return tx;\n}\n\n\nfunction buildPopulate(contract: Contract, fragment: FunctionFragment): ContractFunction {\n return function(...args: Array): Promise {\n return populateTransaction(contract, fragment, args);\n };\n}\n\nfunction buildEstimate(contract: Contract, fragment: FunctionFragment): ContractFunction {\n const signerOrProvider = (contract.signer || contract.provider);\n return async function(...args: Array): Promise {\n if (!signerOrProvider) {\n logger.throwError(\"estimate require a provider or signer\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"estimateGas\"\n })\n }\n\n const tx = await populateTransaction(contract, fragment, args);\n return await signerOrProvider.estimateGas(tx);\n };\n}\n\nfunction addContractWait(contract: Contract, tx: TransactionResponse) {\n const wait = tx.wait.bind(tx);\n tx.wait = (confirmations?: number) => {\n return wait(confirmations).then((receipt: ContractReceipt) => {\n receipt.events = receipt.logs.map((log) => {\n let event: Event = (deepCopy(log));\n let parsed: LogDescription = null;\n try {\n parsed = contract.interface.parseLog(log);\n } catch (e){ }\n\n // Successfully parsed the event log; include it\n if (parsed) {\n event.args = parsed.args;\n event.decode = (data: BytesLike, topics?: Array) => {\n return contract.interface.decodeEventLog(parsed.eventFragment, data, topics);\n };\n event.event = parsed.name;\n event.eventSignature = parsed.signature;\n }\n\n // Useful operations\n event.removeListener = () => { return contract.provider; }\n event.getBlock = () => {\n return contract.provider.getBlock(receipt.blockHash);\n }\n event.getTransaction = () => {\n return contract.provider.getTransaction(receipt.transactionHash);\n }\n event.getTransactionReceipt = () => {\n return Promise.resolve(receipt);\n }\n\n return event;\n });\n\n return receipt;\n });\n };\n}\n\nfunction buildCall(contract: Contract, fragment: FunctionFragment, collapseSimple: boolean): ContractFunction {\n const signerOrProvider = (contract.signer || contract.provider);\n\n return async function(...args: Array): Promise {\n // Extract the \"blockTag\" override if present\n let blockTag = undefined;\n if (args.length === fragment.inputs.length + 1 && typeof(args[args.length - 1]) === \"object\") {\n const overrides = shallowCopy(args.pop());\n if (overrides.blockTag != null) {\n blockTag = await overrides.blockTag;\n }\n delete overrides.blockTag;\n args.push(overrides);\n }\n\n // If the contract was just deployed, wait until it is mined\n if (contract.deployTransaction != null) {\n await contract._deployed(blockTag);\n }\n\n // Call a node and get the result\n const tx = await populateTransaction(contract, fragment, args);\n const result = await signerOrProvider.call(tx, blockTag);\n\n try {\n let value = contract.interface.decodeFunctionResult(fragment, result);\n if (collapseSimple && fragment.outputs.length === 1) {\n value = value[0];\n }\n return value;\n\n } catch (error) {\n if (error.code === Logger.errors.CALL_EXCEPTION) {\n error.address = contract.address;\n error.args = args;\n error.transaction = tx;\n }\n throw error;\n }\n };\n}\n\nfunction buildSend(contract: Contract, fragment: FunctionFragment): ContractFunction {\n return async function(...args: Array): Promise {\n if (!contract.signer) {\n logger.throwError(\"sending a transaction requires a signer\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"sendTransaction\"\n })\n }\n\n // If the contract was just deployed, wait until it is mined\n if (contract.deployTransaction != null) {\n await contract._deployed();\n }\n\n const txRequest = await populateTransaction(contract, fragment, args);\n\n const tx = await contract.signer.sendTransaction(txRequest);\n\n // Tweak the tx.wait so the receipt has extra properties\n addContractWait(contract, tx);\n\n return tx;\n };\n}\n\nfunction buildDefault(contract: Contract, fragment: FunctionFragment, collapseSimple: boolean): ContractFunction {\n if (fragment.constant) {\n return buildCall(contract, fragment, collapseSimple);\n }\n return buildSend(contract, fragment);\n}\n\nfunction getEventTag(filter: EventFilter): string {\n if (filter.address && (filter.topics == null || filter.topics.length === 0)) {\n return \"*\";\n }\n\n return (filter.address || \"*\") + \"@\" + (filter.topics ? filter.topics.map((topic) => {\n if (Array.isArray(topic)) {\n return topic.join(\"|\");\n }\n return topic;\n }).join(\":\"): \"\");\n}\n\nclass RunningEvent {\n readonly tag: string;\n readonly filter: EventFilter;\n private _listeners: Array<{ listener: Listener, once: boolean }>;\n\n constructor(tag: string, filter: EventFilter) {\n defineReadOnly(this, \"tag\", tag);\n defineReadOnly(this, \"filter\", filter);\n this._listeners = [ ];\n }\n\n addListener(listener: Listener, once: boolean): void {\n this._listeners.push({ listener: listener, once: once });\n }\n\n removeListener(listener: Listener): void {\n let done = false;\n this._listeners = this._listeners.filter((item) => {\n if (done || item.listener !== listener) { return true; }\n done = true;\n return false;\n });\n }\n\n removeAllListeners(): void {\n this._listeners = [];\n }\n\n listeners(): Array {\n return this._listeners.map((i) => i.listener);\n }\n\n listenerCount(): number {\n return this._listeners.length;\n }\n\n run(args: Array): number {\n const listenerCount = this.listenerCount();\n this._listeners = this._listeners.filter((item) => {\n\n const argsCopy = args.slice();\n\n // Call the callback in the next event loop\n setTimeout(() => {\n item.listener.apply(this, argsCopy);\n }, 0);\n\n // Reschedule it if it not \"once\"\n return !(item.once);\n });\n\n return listenerCount;\n }\n\n prepareEvent(event: Event): void {\n }\n\n // Returns the array that will be applied to an emit\n getEmit(event: Event): Array {\n return [ event ];\n }\n}\n\nclass ErrorRunningEvent extends RunningEvent {\n constructor() {\n super(\"error\", null);\n }\n}\n\n\n// @TODO Fragment should inherit Wildcard? and just override getEmit?\n// or have a common abstract super class, with enough constructor\n// options to configure both.\n\n// A Fragment Event will populate all the properties that Wildcard\n// will, and additionally dereference the arguments when emitting\nclass FragmentRunningEvent extends RunningEvent {\n readonly address: string;\n readonly interface: Interface;\n readonly fragment: EventFragment;\n\n constructor(address: string, contractInterface: Interface, fragment: EventFragment, topics?: Array>) {\n const filter: EventFilter = {\n address: address\n }\n\n let topic = contractInterface.getEventTopic(fragment);\n if (topics) {\n if (topic !== topics[0]) { logger.throwArgumentError(\"topic mismatch\", \"topics\", topics); }\n filter.topics = topics.slice();\n } else {\n filter.topics = [ topic ];\n }\n\n super(getEventTag(filter), filter);\n defineReadOnly(this, \"address\", address);\n defineReadOnly(this, \"interface\", contractInterface);\n defineReadOnly(this, \"fragment\", fragment);\n }\n\n\n prepareEvent(event: Event): void {\n super.prepareEvent(event);\n\n event.event = this.fragment.name;\n event.eventSignature = this.fragment.format();\n\n event.decode = (data: BytesLike, topics?: Array) => {\n return this.interface.decodeEventLog(this.fragment, data, topics);\n };\n\n try {\n event.args = this.interface.decodeEventLog(this.fragment, event.data, event.topics);\n } catch (error) {\n event.args = null;\n event.decodeError = error;\n }\n }\n\n getEmit(event: Event): Array {\n const errors = checkResultErrors(event.args);\n if (errors.length) { throw errors[0].error; }\n\n const args = (event.args || []).slice();\n args.push(event);\n return args;\n }\n}\n\n// A Wildcard Event will attempt to populate:\n// - event The name of the event name\n// - eventSignature The full signature of the event\n// - decode A function to decode data and topics\n// - args The decoded data and topics\nclass WildcardRunningEvent extends RunningEvent {\n readonly address: string;\n readonly interface: Interface;\n\n constructor(address: string, contractInterface: Interface) {\n super(\"*\", { address: address });\n defineReadOnly(this, \"address\", address);\n defineReadOnly(this, \"interface\", contractInterface);\n }\n\n prepareEvent(event: Event): void {\n super.prepareEvent(event);\n\n try {\n const parsed = this.interface.parseLog(event);\n event.event = parsed.name;\n event.eventSignature = parsed.signature;\n\n event.decode = (data: BytesLike, topics?: Array) => {\n return this.interface.decodeEventLog(parsed.eventFragment, data, topics);\n };\n\n event.args = parsed.args;\n } catch (error) {\n // No matching event\n }\n }\n}\n\nexport type ContractInterface = string | ReadonlyArray | Interface;\n\ntype InterfaceFunc = (contractInterface: ContractInterface) => Interface;\n\n\nexport class BaseContract {\n readonly address: string;\n readonly interface: Interface;\n\n readonly signer: Signer;\n readonly provider: Provider;\n\n readonly functions: { [ name: string ]: ContractFunction };\n\n readonly callStatic: { [ name: string ]: ContractFunction };\n readonly estimateGas: { [ name: string ]: ContractFunction };\n readonly populateTransaction: { [ name: string ]: ContractFunction };\n\n readonly filters: { [ name: string ]: (...args: Array) => EventFilter };\n\n // This will always be an address. This will only differ from\n // address if an ENS name was used in the constructor\n readonly resolvedAddress: Promise;\n\n // This is only set if the contract was created with a call to deploy\n readonly deployTransaction: TransactionResponse;\n\n _deployedPromise: Promise;\n\n // A list of RunningEvents to track listeners for each event tag\n _runningEvents: { [ eventTag: string ]: RunningEvent };\n\n // Wrapped functions to call emit and allow deregistration from the provider\n _wrappedEmits: { [ eventTag: string ]: (...args: Array) => void };\n\n constructor(addressOrName: string, contractInterface: ContractInterface, signerOrProvider?: Signer | Provider) {\n // @TODO: Maybe still check the addressOrName looks like a valid address or name?\n //address = getAddress(address);\n defineReadOnly(this, \"interface\", getStatic(new.target, \"getInterface\")(contractInterface));\n\n if (signerOrProvider == null) {\n defineReadOnly(this, \"provider\", null);\n defineReadOnly(this, \"signer\", null);\n } else if (Signer.isSigner(signerOrProvider)) {\n defineReadOnly(this, \"provider\", signerOrProvider.provider || null);\n defineReadOnly(this, \"signer\", signerOrProvider);\n } else if (Provider.isProvider(signerOrProvider)) {\n defineReadOnly(this, \"provider\", signerOrProvider);\n defineReadOnly(this, \"signer\", null);\n } else {\n logger.throwArgumentError(\"invalid signer or provider\", \"signerOrProvider\", signerOrProvider);\n }\n\n defineReadOnly(this, \"callStatic\", { });\n defineReadOnly(this, \"estimateGas\", { });\n defineReadOnly(this, \"functions\", { });\n defineReadOnly(this, \"populateTransaction\", { });\n\n defineReadOnly(this, \"filters\", { });\n\n {\n const uniqueFilters: { [ name: string ]: Array } = { };\n Object.keys(this.interface.events).forEach((eventSignature) => {\n const event = this.interface.events[eventSignature];\n defineReadOnly(this.filters, eventSignature, (...args: Array) => {\n return {\n address: this.address,\n topics: this.interface.encodeFilterTopics(event, args)\n }\n });\n if (!uniqueFilters[event.name]) { uniqueFilters[event.name] = [ ]; }\n uniqueFilters[event.name].push(eventSignature);\n });\n\n Object.keys(uniqueFilters).forEach((name) => {\n const filters = uniqueFilters[name];\n if (filters.length === 1) {\n defineReadOnly(this.filters, name, this.filters[filters[0]]);\n } else {\n logger.warn(`Duplicate definition of ${ name } (${ filters.join(\", \")})`);\n }\n });\n }\n\n defineReadOnly(this, \"_runningEvents\", { });\n defineReadOnly(this, \"_wrappedEmits\", { });\n\n if (addressOrName == null) {\n logger.throwArgumentError(\"invalid contract address or ENS name\", \"addressOrName\", addressOrName);\n }\n\n defineReadOnly(this, \"address\", addressOrName);\n if (this.provider) {\n defineReadOnly(this, \"resolvedAddress\", resolveName(this.provider, addressOrName));\n } else {\n try {\n defineReadOnly(this, \"resolvedAddress\", Promise.resolve(getAddress(addressOrName)));\n } catch (error) {\n // Without a provider, we cannot use ENS names\n logger.throwError(\"provider is required to use ENS name as contract address\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new Contract\"\n });\n }\n }\n\n // Swallow bad ENS names to prevent Unhandled Exceptions\n this.resolvedAddress.catch((e) => { });\n\n const uniqueNames: { [ name: string ]: Array } = { };\n const uniqueSignatures: { [ signature: string ]: boolean } = { };\n Object.keys(this.interface.functions).forEach((signature) => {\n const fragment = this.interface.functions[signature];\n\n // Check that the signature is unique; if not the ABI generation has\n // not been cleaned or may be incorrectly generated\n if (uniqueSignatures[signature]) {\n logger.warn(`Duplicate ABI entry for ${ JSON.stringify(signature) }`);\n return;\n }\n uniqueSignatures[signature] = true;\n\n // Track unique names; we only expose bare named functions if they\n // are ambiguous\n {\n const name = fragment.name;\n if (!uniqueNames[`%${ name }`]) { uniqueNames[`%${ name }`] = [ ]; }\n uniqueNames[`%${ name }`].push(signature);\n }\n\n if ((this)[signature] == null) {\n defineReadOnly(this, signature, buildDefault(this, fragment, true));\n }\n\n // We do not collapse simple calls on this bucket, which allows\n // frameworks to safely use this without introspection as well as\n // allows decoding error recovery.\n if (this.functions[signature] == null) {\n defineReadOnly(this.functions, signature, buildDefault(this, fragment, false));\n }\n\n if (this.callStatic[signature] == null) {\n defineReadOnly(this.callStatic, signature, buildCall(this, fragment, true));\n }\n\n if (this.populateTransaction[signature] == null) {\n defineReadOnly(this.populateTransaction, signature, buildPopulate(this, fragment));\n }\n\n if (this.estimateGas[signature] == null) {\n defineReadOnly(this.estimateGas, signature, buildEstimate(this, fragment));\n }\n });\n\n Object.keys(uniqueNames).forEach((name) => {\n // Ambiguous names to not get attached as bare names\n const signatures = uniqueNames[name];\n if (signatures.length > 1) { return; }\n\n // Strip off the leading \"%\" used for prototype protection\n name = name.substring(1);\n\n const signature = signatures[0];\n\n // If overwriting a member property that is null, swallow the error\n try {\n if ((this)[name] == null) {\n defineReadOnly(this, name, (this)[signature]);\n }\n } catch (e) { }\n\n if (this.functions[name] == null) {\n defineReadOnly(this.functions, name, this.functions[signature]);\n }\n\n if (this.callStatic[name] == null) {\n defineReadOnly(this.callStatic, name, this.callStatic[signature]);\n }\n\n if (this.populateTransaction[name] == null) {\n defineReadOnly(this.populateTransaction, name, this.populateTransaction[signature]);\n }\n\n if (this.estimateGas[name] == null) {\n defineReadOnly(this.estimateGas, name, this.estimateGas[signature]);\n }\n });\n }\n\n static getContractAddress(transaction: { from: string, nonce: BigNumberish }): string {\n return getContractAddress(transaction);\n }\n\n static getInterface(contractInterface: ContractInterface): Interface {\n if (Interface.isInterface(contractInterface)) {\n return contractInterface;\n }\n return new Interface(contractInterface);\n }\n\n // @TODO: Allow timeout?\n deployed(): Promise {\n return this._deployed();\n }\n\n _deployed(blockTag?: BlockTag): Promise {\n if (!this._deployedPromise) {\n\n // If we were just deployed, we know the transaction we should occur in\n if (this.deployTransaction) {\n this._deployedPromise = this.deployTransaction.wait().then(() => {\n return this;\n });\n\n } else {\n // @TODO: Once we allow a timeout to be passed in, we will wait\n // up to that many blocks for getCode\n\n // Otherwise, poll for our code to be deployed\n this._deployedPromise = this.provider.getCode(this.address, blockTag).then((code) => {\n if (code === \"0x\") {\n logger.throwError(\"contract not deployed\", Logger.errors.UNSUPPORTED_OPERATION, {\n contractAddress: this.address,\n operation: \"getDeployed\"\n });\n }\n return this;\n });\n }\n }\n\n return this._deployedPromise;\n }\n\n // @TODO:\n // estimateFallback(overrides?: TransactionRequest): Promise\n\n // @TODO:\n // estimateDeploy(bytecode: string, ...args): Promise\n\n fallback(overrides?: TransactionRequest): Promise {\n if (!this.signer) {\n logger.throwError(\"sending a transactions require a signer\", Logger.errors.UNSUPPORTED_OPERATION, { operation: \"sendTransaction(fallback)\" })\n }\n\n const tx: Deferrable = shallowCopy(overrides || {});\n\n [\"from\", \"to\"].forEach(function(key) {\n if ((tx)[key] == null) { return; }\n logger.throwError(\"cannot override \" + key, Logger.errors.UNSUPPORTED_OPERATION, { operation: key })\n });\n\n tx.to = this.resolvedAddress;\n return this.deployed().then(() => {\n return this.signer.sendTransaction(tx);\n });\n }\n\n // Reconnect to a different signer or provider\n connect(signerOrProvider: Signer | Provider | string): Contract {\n if (typeof(signerOrProvider) === \"string\") {\n signerOrProvider = new VoidSigner(signerOrProvider, this.provider);\n }\n\n const contract = new (<{ new(...args: any[]): Contract }>(this.constructor))(this.address, this.interface, signerOrProvider);\n if (this.deployTransaction) {\n defineReadOnly(contract, \"deployTransaction\", this.deployTransaction);\n }\n\n return contract;\n }\n\n // Re-attach to a different on-chain instance of this contract\n attach(addressOrName: string): Contract {\n return new (<{ new(...args: any[]): Contract }>(this.constructor))(addressOrName, this.interface, this.signer || this.provider);\n }\n\n static isIndexed(value: any): value is Indexed {\n return Indexed.isIndexed(value);\n }\n\n private _normalizeRunningEvent(runningEvent: RunningEvent): RunningEvent {\n // Already have an instance of this event running; we can re-use it\n if (this._runningEvents[runningEvent.tag]) {\n return this._runningEvents[runningEvent.tag];\n }\n return runningEvent\n }\n\n private _getRunningEvent(eventName: EventFilter | string): RunningEvent {\n if (typeof(eventName) === \"string\") {\n\n // Listen for \"error\" events (if your contract has an error event, include\n // the full signature to bypass this special event keyword)\n if (eventName === \"error\") {\n return this._normalizeRunningEvent(new ErrorRunningEvent());\n }\n\n // Listen for any event that is registered\n if (eventName === \"event\") {\n return this._normalizeRunningEvent(new RunningEvent(\"event\", null));\n }\n\n // Listen for any event\n if (eventName === \"*\") {\n return this._normalizeRunningEvent(new WildcardRunningEvent(this.address, this.interface));\n }\n\n // Get the event Fragment (throws if ambiguous/unknown event)\n const fragment = this.interface.getEvent(eventName)\n return this._normalizeRunningEvent(new FragmentRunningEvent(this.address, this.interface, fragment));\n }\n\n // We have topics to filter by...\n if (eventName.topics && eventName.topics.length > 0) {\n\n // Is it a known topichash? (throws if no matching topichash)\n try {\n const topic = eventName.topics[0];\n if (typeof(topic) !== \"string\") {\n throw new Error(\"invalid topic\"); // @TODO: May happen for anonymous events\n }\n const fragment = this.interface.getEvent(topic);\n return this._normalizeRunningEvent(new FragmentRunningEvent(this.address, this.interface, fragment, eventName.topics));\n } catch (error) { }\n\n // Filter by the unknown topichash\n const filter: EventFilter = {\n address: this.address,\n topics: eventName.topics\n }\n\n return this._normalizeRunningEvent(new RunningEvent(getEventTag(filter), filter));\n }\n\n return this._normalizeRunningEvent(new WildcardRunningEvent(this.address, this.interface));\n }\n\n _checkRunningEvents(runningEvent: RunningEvent): void {\n if (runningEvent.listenerCount() === 0) {\n delete this._runningEvents[runningEvent.tag];\n\n // If we have a poller for this, remove it\n const emit = this._wrappedEmits[runningEvent.tag];\n if (emit && runningEvent.filter) {\n this.provider.off(runningEvent.filter, emit);\n delete this._wrappedEmits[runningEvent.tag];\n }\n }\n }\n\n // Subclasses can override this to gracefully recover\n // from parse errors if they wish\n _wrapEvent(runningEvent: RunningEvent, log: Log, listener: Listener): Event {\n const event = deepCopy(log);\n\n event.removeListener = () => {\n if (!listener) { return; }\n runningEvent.removeListener(listener);\n this._checkRunningEvents(runningEvent);\n };\n\n event.getBlock = () => { return this.provider.getBlock(log.blockHash); }\n event.getTransaction = () => { return this.provider.getTransaction(log.transactionHash); }\n event.getTransactionReceipt = () => { return this.provider.getTransactionReceipt(log.transactionHash); }\n\n // This may throw if the topics and data mismatch the signature\n runningEvent.prepareEvent(event);\n\n return event;\n }\n\n private _addEventListener(runningEvent: RunningEvent, listener: Listener, once: boolean): void {\n if (!this.provider) {\n logger.throwError(\"events require a provider or a signer with a provider\", Logger.errors.UNSUPPORTED_OPERATION, { operation: \"once\" })\n }\n\n runningEvent.addListener(listener, once);\n\n // Track this running event and its listeners (may already be there; but no hard in updating)\n this._runningEvents[runningEvent.tag] = runningEvent;\n\n // If we are not polling the provider, start polling\n if (!this._wrappedEmits[runningEvent.tag]) {\n const wrappedEmit = (log: Log) => {\n let event = this._wrapEvent(runningEvent, log, listener);\n\n // Try to emit the result for the parameterized event...\n if (event.decodeError == null) {\n try {\n const args = runningEvent.getEmit(event);\n this.emit(runningEvent.filter, ...args);\n } catch (error) {\n event.decodeError = error.error;\n }\n }\n\n // Always emit \"event\" for fragment-base events\n if (runningEvent.filter != null) {\n this.emit(\"event\", event);\n }\n\n // Emit \"error\" if there was an error\n if (event.decodeError != null) {\n this.emit(\"error\", event.decodeError, event);\n }\n };\n this._wrappedEmits[runningEvent.tag] = wrappedEmit;\n\n // Special events, like \"error\" do not have a filter\n if (runningEvent.filter != null) {\n this.provider.on(runningEvent.filter, wrappedEmit);\n }\n }\n }\n\n queryFilter(event: EventFilter | string, fromBlockOrBlockhash?: BlockTag | string, toBlock?: BlockTag): Promise> {\n const runningEvent = this._getRunningEvent(event);\n const filter = shallowCopy(runningEvent.filter);\n\n if (typeof(fromBlockOrBlockhash) === \"string\" && isHexString(fromBlockOrBlockhash, 32)) {\n if (toBlock != null) {\n logger.throwArgumentError(\"cannot specify toBlock with blockhash\", \"toBlock\", toBlock);\n }\n (filter).blockHash = fromBlockOrBlockhash;\n } else {\n (filter).fromBlock = ((fromBlockOrBlockhash != null) ? fromBlockOrBlockhash: 0);\n (filter).toBlock = ((toBlock != null) ? toBlock: \"latest\");\n }\n\n return this.provider.getLogs(filter).then((logs) => {\n return logs.map((log) => this._wrapEvent(runningEvent, log, null));\n });\n }\n\n on(event: EventFilter | string, listener: Listener): this {\n this._addEventListener(this._getRunningEvent(event), listener, false);\n return this;\n }\n\n once(event: EventFilter | string, listener: Listener): this {\n this._addEventListener(this._getRunningEvent(event), listener, true);\n return this;\n }\n\n emit(eventName: EventFilter | string, ...args: Array): boolean {\n if (!this.provider) { return false; }\n\n const runningEvent = this._getRunningEvent(eventName);\n const result = (runningEvent.run(args) > 0);\n\n // May have drained all the \"once\" events; check for living events\n this._checkRunningEvents(runningEvent);\n\n return result;\n }\n\n listenerCount(eventName?: EventFilter | string): number {\n if (!this.provider) { return 0; }\n if (eventName == null) {\n return Object.keys(this._runningEvents).reduce((accum, key) => {\n return accum + this._runningEvents[key].listenerCount();\n }, 0);\n }\n return this._getRunningEvent(eventName).listenerCount();\n }\n\n listeners(eventName?: EventFilter | string): Array {\n if (!this.provider) { return []; }\n\n if (eventName == null) {\n const result: Array = [ ];\n for (let tag in this._runningEvents) {\n this._runningEvents[tag].listeners().forEach((listener) => {\n result.push(listener)\n });\n }\n return result;\n }\n\n return this._getRunningEvent(eventName).listeners();\n }\n\n removeAllListeners(eventName?: EventFilter | string): this {\n if (!this.provider) { return this; }\n\n if (eventName == null) {\n for (const tag in this._runningEvents) {\n const runningEvent = this._runningEvents[tag];\n runningEvent.removeAllListeners();\n this._checkRunningEvents(runningEvent);\n }\n return this;\n }\n\n // Delete any listeners\n const runningEvent = this._getRunningEvent(eventName);\n runningEvent.removeAllListeners();\n this._checkRunningEvents(runningEvent);\n\n return this;\n }\n\n off(eventName: EventFilter | string, listener: Listener): this {\n if (!this.provider) { return this; }\n const runningEvent = this._getRunningEvent(eventName);\n runningEvent.removeListener(listener);\n this._checkRunningEvents(runningEvent);\n return this;\n }\n\n removeListener(eventName: EventFilter | string, listener: Listener): this {\n return this.off(eventName, listener);\n }\n\n}\n\nexport class Contract extends BaseContract {\n // The meta-class properties\n readonly [ key: string ]: ContractFunction | any;\n}\n\nexport class ContractFactory {\n\n readonly interface: Interface;\n readonly bytecode: string;\n readonly signer: Signer;\n\n constructor(contractInterface: ContractInterface, bytecode: BytesLike | { object: string }, signer?: Signer) {\n\n let bytecodeHex: string = null;\n\n if (typeof(bytecode) === \"string\") {\n bytecodeHex = bytecode;\n } else if (isBytes(bytecode)) {\n bytecodeHex = hexlify(bytecode);\n } else if (bytecode && typeof(bytecode.object) === \"string\") {\n // Allow the bytecode object from the Solidity compiler\n bytecodeHex = (bytecode).object;\n } else {\n // Crash in the next verification step\n bytecodeHex = \"!\";\n }\n\n // Make sure it is 0x prefixed\n if (bytecodeHex.substring(0, 2) !== \"0x\") { bytecodeHex = \"0x\" + bytecodeHex; }\n\n // Make sure the final result is valid bytecode\n if (!isHexString(bytecodeHex) || (bytecodeHex.length % 2)) {\n logger.throwArgumentError(\"invalid bytecode\", \"bytecode\", bytecode);\n }\n\n // If we have a signer, make sure it is valid\n if (signer && !Signer.isSigner(signer)) {\n logger.throwArgumentError(\"invalid signer\", \"signer\", signer);\n }\n\n defineReadOnly(this, \"bytecode\", bytecodeHex);\n defineReadOnly(this, \"interface\", getStatic(new.target, \"getInterface\")(contractInterface));\n defineReadOnly(this, \"signer\", signer || null);\n }\n\n // @TODO: Future; rename to populateTransaction?\n getDeployTransaction(...args: Array): TransactionRequest {\n let tx: TransactionRequest = { };\n\n // If we have 1 additional argument, we allow transaction overrides\n if (args.length === this.interface.deploy.inputs.length + 1 && typeof(args[args.length - 1]) === \"object\") {\n tx = shallowCopy(args.pop());\n for (const key in tx) {\n if (!allowedTransactionKeys[key]) {\n throw new Error(\"unknown transaction override \" + key);\n }\n }\n }\n\n // Do not allow these to be overridden in a deployment transaction\n [\"data\", \"from\", \"to\"].forEach((key) => {\n if ((tx)[key] == null) { return; }\n logger.throwError(\"cannot override \" + key, Logger.errors.UNSUPPORTED_OPERATION, { operation: key })\n });\n\n if (tx.value) {\n const value = BigNumber.from(tx.value);\n if (!value.isZero() && !this.interface.deploy.payable) {\n logger.throwError(\"non-payable constructor cannot override value\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"overrides.value\",\n value: tx.value\n });\n }\n }\n\n // Make sure the call matches the constructor signature\n logger.checkArgumentCount(args.length, this.interface.deploy.inputs.length, \" in Contract constructor\");\n\n // Set the data to the bytecode + the encoded constructor arguments\n tx.data = hexlify(concat([\n this.bytecode,\n this.interface.encodeDeploy(args)\n ]));\n\n return tx\n }\n\n async deploy(...args: Array): Promise {\n\n let overrides: any = { };\n\n // If 1 extra parameter was passed in, it contains overrides\n if (args.length === this.interface.deploy.inputs.length + 1) {\n overrides = args.pop();\n }\n\n // Make sure the call matches the constructor signature\n logger.checkArgumentCount(args.length, this.interface.deploy.inputs.length, \" in Contract constructor\");\n\n // Resolve ENS names and promises in the arguments\n const params = await resolveAddresses(this.signer, args, this.interface.deploy.inputs);\n params.push(overrides);\n\n // Get the deployment transaction (with optional overrides)\n const unsignedTx = this.getDeployTransaction(...params);\n\n // Send the deployment transaction\n const tx = await this.signer.sendTransaction(unsignedTx);\n\n const address = getStatic<(tx: TransactionResponse) => string>(this.constructor, \"getContractAddress\")(tx);\n const contract = getStatic<(address: string, contractInterface: ContractInterface, signer?: Signer) => Contract>(this.constructor, \"getContract\")(address, this.interface, this.signer);\n\n // Add the modified wait that wraps events\n addContractWait(contract, tx);\n\n defineReadOnly(contract, \"deployTransaction\", tx);\n return contract;\n }\n\n attach(address: string): Contract {\n return ((this.constructor)).getContract(address, this.interface, this.signer);\n }\n\n connect(signer: Signer) {\n return new (<{ new(...args: any[]): ContractFactory }>(this.constructor))(this.interface, this.bytecode, signer);\n }\n\n static fromSolidity(compilerOutput: any, signer?: Signer): ContractFactory {\n if (compilerOutput == null) {\n logger.throwError(\"missing compiler output\", Logger.errors.MISSING_ARGUMENT, { argument: \"compilerOutput\" });\n }\n\n if (typeof(compilerOutput) === \"string\") {\n compilerOutput = JSON.parse(compilerOutput);\n }\n\n const abi = compilerOutput.abi;\n\n let bytecode: any = null;\n if (compilerOutput.bytecode) {\n bytecode = compilerOutput.bytecode;\n } else if (compilerOutput.evm && compilerOutput.evm.bytecode) {\n bytecode = compilerOutput.evm.bytecode;\n }\n\n return new this(abi, bytecode, signer);\n }\n\n static getInterface(contractInterface: ContractInterface) {\n return Contract.getInterface(contractInterface);\n }\n\n static getContractAddress(tx: { from: string, nonce: BytesLike | BigNumber | number }): string {\n return getContractAddress(tx);\n }\n\n static getContract(address: string, contractInterface: ContractInterface, signer?: Signer): Contract {\n return new Contract(address, contractInterface, signer);\n }\n}\n","export const version = \"contracts/5.7.0\";\n","export const version = \"hash/5.7.0\";\n","import { keccak256 } from \"@ethersproject/keccak256\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\n\nexport function id(text: string): string {\n return keccak256(toUtf8Bytes(text));\n}\n","import { Bytes, concat } from \"@ethersproject/bytes\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\n\nexport const messagePrefix = \"\\x19Ethereum Signed Message:\\n\";\n\nexport function hashMessage(message: Bytes | string): string {\n if (typeof(message) === \"string\") { message = toUtf8Bytes(message); }\n return keccak256(concat([\n toUtf8Bytes(messagePrefix),\n toUtf8Bytes(String(message.length)),\n message\n ]));\n}\n\n","/**\n * MIT License\n *\n * Copyright (c) 2021 Andrew Raffensperger\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n *\n * This is a near carbon-copy of the original source (link below) with the\n * TypeScript typings added and a few tweaks to make it ES3-compatible.\n *\n * See: https://github.com/adraffy/ens-normalize.js\n */\n\nexport type Numbers = Uint8Array | Array;\nexport type NextFunc = (...args: Array) => number;\n\n// https://github.com/behnammodi/polyfill/blob/master/array.polyfill.js\nfunction flat(array: Array, depth?: number): Array {\n if (depth == null) { depth = 1; }\n const result: Array = [];\n\n const forEach = result.forEach;\n\n const flatDeep = function (arr: Array, depth: number) {\n forEach.call(arr, function (val: any) {\n if (depth > 0 && Array.isArray(val)) {\n flatDeep(val, depth - 1);\n } else {\n result.push(val);\n }\n });\n };\n\n flatDeep(array, depth);\n return result;\n}\n\nfunction fromEntries(array: Array<[T, U]>): Record {\n const result: Record = >{ };\n for (let i = 0; i < array.length; i++) {\n const value = array[i];\n result[value[0]] = value[1];\n }\n return result;\n}\n\nexport function decode_arithmetic(bytes: Numbers): Array {\n\tlet pos = 0;\n\tfunction u16() { return (bytes[pos++] << 8) | bytes[pos++]; }\n\t\n\t// decode the frequency table\n\tlet symbol_count = u16();\n\tlet total = 1;\n\tlet acc = [0, 1]; // first symbol has frequency 1\n\tfor (let i = 1; i < symbol_count; i++) {\n\t\tacc.push(total += u16());\n\t}\n\n\t// skip the sized-payload that the last 3 symbols index into\n\tlet skip = u16();\n\tlet pos_payload = pos;\n\tpos += skip;\n\n\tlet read_width = 0;\n\tlet read_buffer = 0; \n\tfunction read_bit() {\n\t\tif (read_width == 0) {\n\t\t\t// this will read beyond end of buffer\n\t\t\t// but (undefined|0) => zero pad\n\t\t\tread_buffer = (read_buffer << 8) | bytes[pos++];\n\t\t\tread_width = 8;\n\t\t}\n\t\treturn (read_buffer >> --read_width) & 1;\n\t}\n\n\tconst N = 31;\n\tconst FULL = 2**N;\n\tconst HALF = FULL >>> 1;\n\tconst QRTR = HALF >> 1;\n\tconst MASK = FULL - 1;\n\n\t// fill register\n\tlet register = 0;\n\tfor (let i = 0; i < N; i++) register = (register << 1) | read_bit();\n\n\tlet symbols = [];\n\tlet low = 0;\n\tlet range = FULL; // treat like a float\n\twhile (true) {\n\t\tlet value = Math.floor((((register - low + 1) * total) - 1) / range);\n\t\tlet start = 0;\n\t\tlet end = symbol_count;\n\t\twhile (end - start > 1) { // binary search\n\t\t\tlet mid = (start + end) >>> 1;\n\t\t\tif (value < acc[mid]) {\n\t\t\t\tend = mid;\n\t\t\t} else {\n\t\t\t\tstart = mid;\n\t\t\t}\n\t\t}\n\t\tif (start == 0) break; // first symbol is end mark\n\t\tsymbols.push(start);\n\t\tlet a = low + Math.floor(range * acc[start] / total);\n\t\tlet b = low + Math.floor(range * acc[start+1] / total) - 1\n\t\twhile (((a ^ b) & HALF) == 0) {\n\t\t\tregister = (register << 1) & MASK | read_bit();\n\t\t\ta = (a << 1) & MASK;\n\t\t\tb = (b << 1) & MASK | 1;\n\t\t}\n\t\twhile (a & ~b & QRTR) {\n\t\t\tregister = (register & HALF) | ((register << 1) & (MASK >>> 1)) | read_bit();\n\t\t\ta = (a << 1) ^ HALF;\n\t\t\tb = ((b ^ HALF) << 1) | HALF | 1;\n\t\t}\n\t\tlow = a;\n\t\trange = 1 + b - a;\n\t}\n\tlet offset = symbol_count - 4;\n\treturn symbols.map(x => { // index into payload\n\t\tswitch (x - offset) {\n\t\t\tcase 3: return offset + 0x10100 + ((bytes[pos_payload++] << 16) | (bytes[pos_payload++] << 8) | bytes[pos_payload++]);\n\t\t\tcase 2: return offset + 0x100 + ((bytes[pos_payload++] << 8) | bytes[pos_payload++]);\n\t\t\tcase 1: return offset + bytes[pos_payload++];\n\t\t\tdefault: return x - 1;\n\t\t}\n\t});\n}\t\n\n\n// returns an iterator which returns the next symbol\nexport function read_payload(v: Numbers): NextFunc {\n\tlet pos = 0;\n\treturn () => v[pos++];\n}\nexport function read_compressed_payload(bytes: Numbers): NextFunc {\n\treturn read_payload(decode_arithmetic(bytes));\n}\n\n// eg. [0,1,2,3...] => [0,-1,1,-2,...]\nexport function signed(i: number): number { \n\treturn (i & 1) ? (~i >> 1) : (i >> 1);\n}\n\nfunction read_counts(n: number, next: NextFunc): Array {\n\tlet v = Array(n);\n\tfor (let i = 0; i < n; i++) v[i] = 1 + next();\n\treturn v;\n}\n\nfunction read_ascending(n: number, next: NextFunc): Array {\n\tlet v = Array(n);\n\tfor (let i = 0, x = -1; i < n; i++) v[i] = x += 1 + next();\n\treturn v;\n}\n\nfunction read_deltas(n: number, next: NextFunc): Array {\n\tlet v = Array(n);\n\tfor (let i = 0, x = 0; i < n; i++) v[i] = x += signed(next());\n\treturn v;\n}\n\nexport function read_member_array(next: NextFunc, lookup?: Record) {\n let v = read_ascending(next(), next);\n let n = next();\n let vX = read_ascending(n, next);\n let vN = read_counts(n, next);\n for (let i = 0; i < n; i++) {\n for (let j = 0; j < vN[i]; j++) {\n v.push(vX[i] + j);\n }\n }\n return lookup ? v.map(x => lookup[x]) : v;\n}\n\n// returns array of \n// [x, ys] => single replacement rule\n// [x, ys, n, dx, dx] => linear map\nexport function read_mapped_map(next: NextFunc): Record> {\n\tlet ret = [];\n\twhile (true) {\n\t\tlet w = next();\n\t\tif (w == 0) break;\n\t\tret.push(read_linear_table(w, next));\n\t}\n\twhile (true) {\n\t\tlet w = next() - 1;\n\t\tif (w < 0) break;\n\t\tret.push(read_replacement_table(w, next));\n\t}\n\treturn fromEntries>(flat(ret));\n}\n\nexport function read_zero_terminated_array(next: NextFunc): Array {\n\tlet v = [];\n\twhile (true) {\n\t\tlet i = next();\n\t\tif (i == 0) break;\n\t\tv.push(i);\n\t}\n\treturn v;\n}\n\nfunction read_transposed(n: number, w: number, next: NextFunc): Array> {\n let m = Array(n).fill(undefined).map(() => []);\n for (let i = 0; i < w; i++) {\n read_deltas(n, next).forEach((x, j) => m[j].push(x));\n }\n return m;\n}\n\n\nfunction read_linear_table(w: number, next: NextFunc): Array>> {\n\tlet dx = 1 + next();\n\tlet dy = next();\n\tlet vN = read_zero_terminated_array(next);\n\tlet m = read_transposed(vN.length, 1+w, next);\n\treturn flat(m.map((v, i) => {\n\t const x = v[0], ys = v.slice(1);\n\t\t//let [x, ...ys] = v;\n\t\t//return Array(vN[i]).fill().map((_, j) => {\n\t\treturn Array(vN[i]).fill(undefined).map((_, j) => {\n\t\t\tlet j_dy = j * dy;\n\t\t\treturn [x + j * dx, ys.map(y => y + j_dy)];\n\t\t});\n\t}));\n}\n\nfunction read_replacement_table(w: number, next: NextFunc): Array<[ number, Array ]> {\n\tlet n = 1 + next();\n\tlet m = read_transposed(n, 1+w, next);\n\treturn m.map(v => [v[0], v.slice(1)]);\n}\n\nexport type Branch = {\n set: Set;\n node: Node;\n};\n\nexport type Node = {\n branches: Array;\n valid: number;\n fe0f: boolean;\n save: boolean;\n check: boolean;\n};\n\nexport function read_emoji_trie(next: NextFunc): Node {\n\tlet sorted = read_member_array(next).sort((a, b) => a - b);\n\treturn read();\n\tfunction read(): Node {\n\t\tlet branches = [];\n\t\twhile (true) {\n\t\t\tlet keys = read_member_array(next, sorted);\n\t\t\tif (keys.length == 0) break;\n\t\t\tbranches.push({set: new Set(keys), node: read()});\n\t\t}\n branches.sort((a, b) => b.set.size - a.set.size); // sort by likelihood\n \t\tlet temp = next();\n \t\tlet valid = temp % 3;\n \t\ttemp = (temp / 3)|0;\n \t\tlet fe0f = !!(temp & 1);\n \t\ttemp >>= 1;\n \t\tlet save = temp == 1;\n \t\tlet check = temp == 2;\n \t\treturn {branches, valid, fe0f, save, check};\n\t}\n}\n","/**\n * MIT License\n *\n * Copyright (c) 2021 Andrew Raffensperger\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n *\n * This is a near carbon-copy of the original source (link below) with the\n * TypeScript typings added and a few tweaks to make it ES3-compatible.\n *\n * See: https://github.com/adraffy/ens-normalize.js\n */\n\nimport { toUtf8CodePoints } from \"@ethersproject/strings\";\n\nimport { getData } from './include.js';\nconst r = getData();\n\nimport {read_member_array, read_mapped_map, read_emoji_trie} from './decoder.js';\n\n// @TODO: This should be lazily loaded\n\nconst VALID = new Set(read_member_array(r));\nconst IGNORED = new Set(read_member_array(r));\nconst MAPPED = read_mapped_map(r);\nconst EMOJI_ROOT = read_emoji_trie(r);\n//const NFC_CHECK = new Set(read_member_array(r, Array.from(VALID.values()).sort((a, b) => a - b)));\n\n//const STOP = 0x2E;\nconst HYPHEN = 0x2D;\nconst UNDERSCORE = 0x5F;\n\nfunction explode_cp(name: string): Array {\n return toUtf8CodePoints(name);\n}\n\nfunction filter_fe0f(cps: Array): Array {\n return cps.filter(cp => cp != 0xFE0F);\n}\n\nexport function ens_normalize_post_check(name: string): string {\n\tfor (let label of name.split('.')) {\n\t\tlet cps = explode_cp(label);\n\t\ttry {\n\t\t\tfor (let i = cps.lastIndexOf(UNDERSCORE) - 1; i >= 0; i--) {\n\t\t\t\tif (cps[i] !== UNDERSCORE) {\n\t\t\t\t\tthrow new Error(`underscore only allowed at start`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (cps.length >= 4 && cps.every(cp => cp < 0x80) && cps[2] === HYPHEN && cps[3] === HYPHEN) {\n\t\t\t\tthrow new Error(`invalid label extension`);\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tthrow new Error(`Invalid label \"${label}\": ${err.message}`);\n\t\t}\n\t}\n\treturn name;\n}\n\nexport function ens_normalize(name: string): string {\n\treturn ens_normalize_post_check(normalize(name, filter_fe0f));\n}\n\nfunction normalize(name: string, emoji_filter: (a: Array) => Array): string {\n\tlet input = explode_cp(name).reverse(); // flip for pop\n\tlet output = [];\n\twhile (input.length) {\t\t\n\t\tlet emoji = consume_emoji_reversed(input);\n\t\tif (emoji) {\n\t\t\toutput.push(...emoji_filter(emoji));\n\t\t\tcontinue;\n\t\t}\n\t\tlet cp = input.pop();\n\t\tif (VALID.has(cp)) {\n\t\t\toutput.push(cp);\n\t\t\tcontinue;\n\t\t} \n\t\tif (IGNORED.has(cp)) {\n\t\t\tcontinue;\n\t\t}\n\t\tlet cps = MAPPED[cp];\n\t\tif (cps) {\n\t\t\toutput.push(...cps);\n\t\t\tcontinue;\n\t\t}\n\t\tthrow new Error(`Disallowed codepoint: 0x${cp.toString(16).toUpperCase()}`);\n\t}\n\treturn ens_normalize_post_check(nfc(String.fromCodePoint(...output)));\n}\n\nfunction nfc(s: string): string {\n return s.normalize('NFC');\n}\n\nfunction consume_emoji_reversed(cps: Array, eaten?: Array) {\n\tlet node = EMOJI_ROOT;\n\tlet emoji;\n\tlet saved;\n\tlet stack = [];\n\tlet pos = cps.length;\n\tif (eaten) eaten.length = 0; // clear input buffer (if needed)\n\twhile (pos) {\n\t\tlet cp = cps[--pos];\n\t\tnode = node.branches.find(x => x.set.has(cp))?.node;\n\t\tif (!node) break;\n\t\tif (node.save) { // remember\n\t\t\tsaved = cp;\n\t\t} else if (node.check) { // check exclusion\n\t\t\tif (cp === saved) break;\n\t\t}\n\t\tstack.push(cp);\n\t\tif (node.fe0f) {\n\t\t\tstack.push(0xFE0F);\n\t\t\tif (pos > 0 && cps[pos - 1] == 0xFE0F) pos--; // consume optional FE0F\n\t\t}\n\t\tif (node.valid) { // this is a valid emoji (so far)\n\t\t\temoji = stack.slice(); // copy stack\n\t\t\tif (node.valid == 2) emoji.splice(1, 1); // delete FE0F at position 1 (RGI ZWJ don't follow spec!)\n\t\t\tif (eaten) eaten.push(...cps.slice(pos).reverse()); // copy input (if needed)\n\t\t\tcps.length = pos; // truncate\n\t\t}\n\t}\n\treturn emoji;\n}\n","/**\n * MIT License\n *\n * Copyright (c) 2021 Andrew Raffensperger\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n *\n * This is a near carbon-copy of the original source (link below) with the\n * TypeScript typings added and a few tweaks to make it ES3-compatible.\n *\n * See: https://github.com/adraffy/ens-normalize.js\n */\n\nimport { decode } from \"@ethersproject/base64\";\n\nimport {read_compressed_payload} from './decoder.js';\n\nexport function getData(): () => number {\n return read_compressed_payload(decode('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'));\n}\n\n","import { concat, hexlify } from \"@ethersproject/bytes\";\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { ens_normalize } from \"./ens-normalize/lib\";\n\nconst Zeros = new Uint8Array(32);\nZeros.fill(0);\n\nfunction checkComponent(comp: Uint8Array): Uint8Array {\n if (comp.length === 0) { throw new Error(\"invalid ENS name; empty component\"); }\n return comp;\n}\n\nfunction ensNameSplit(name: string): Array {\n const bytes = toUtf8Bytes(ens_normalize(name));\n const comps: Array = [ ];\n\n if (name.length === 0) { return comps; }\n\n let last = 0;\n for (let i = 0; i < bytes.length; i++) {\n const d = bytes[i];\n\n // A separator (i.e. \".\"); copy this component\n if (d === 0x2e) {\n comps.push(checkComponent(bytes.slice(last, i)));\n last = i + 1;\n }\n }\n\n // There was a stray separator at the end of the name\n if (last >= bytes.length) { throw new Error(\"invalid ENS name; empty component\"); }\n\n comps.push(checkComponent(bytes.slice(last)));\n return comps;\n}\n\nexport function ensNormalize(name: string): string {\n return ensNameSplit(name).map((comp) => toUtf8String(comp)).join(\".\");\n}\n\nexport function isValidName(name: string): boolean {\n try {\n return (ensNameSplit(name).length !== 0);\n } catch (error) { }\n return false;\n}\n\nexport function namehash(name: string): string {\n /* istanbul ignore if */\n if (typeof(name) !== \"string\") {\n logger.throwArgumentError(\"invalid ENS name; not a string\", \"name\", name);\n }\n\n let result: string | Uint8Array = Zeros;\n\n const comps = ensNameSplit(name);\n while (comps.length) {\n result = keccak256(concat([result, keccak256(comps.pop())]));\n }\n\n return hexlify(result);\n}\n\nexport function dnsEncode(name: string): string {\n return hexlify(concat(ensNameSplit(name).map((comp) => {\n // DNS does not allow components over 63 bytes in length\n if (comp.length > 63) {\n throw new Error(\"invalid DNS encoded entry; length exceeds 63 bytes\");\n }\n\n const bytes = new Uint8Array(comp.length + 1);\n bytes.set(comp, 1);\n bytes[0] = bytes.length - 1;\n return bytes;\n\n }))) + \"00\";\n}\n","import { TypedDataDomain, TypedDataField } from \"@ethersproject/abstract-signer\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { arrayify, BytesLike, hexConcat, hexlify, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { deepCopy, defineReadOnly, shallowCopy } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { id } from \"./id\";\n\nconst padding = new Uint8Array(32);\npadding.fill(0);\n\nconst NegativeOne: BigNumber = BigNumber.from(-1);\nconst Zero: BigNumber = BigNumber.from(0);\nconst One: BigNumber = BigNumber.from(1);\nconst MaxUint256: BigNumber = BigNumber.from(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\");\n\nfunction hexPadRight(value: BytesLike) {\n const bytes = arrayify(value);\n const padOffset = bytes.length % 32\n if (padOffset) {\n return hexConcat([ bytes, padding.slice(padOffset) ]);\n }\n return hexlify(bytes);\n}\n\nconst hexTrue = hexZeroPad(One.toHexString(), 32);\nconst hexFalse = hexZeroPad(Zero.toHexString(), 32);\n\nconst domainFieldTypes: Record = {\n name: \"string\",\n version: \"string\",\n chainId: \"uint256\",\n verifyingContract: \"address\",\n salt: \"bytes32\"\n};\n\nconst domainFieldNames: Array = [\n \"name\", \"version\", \"chainId\", \"verifyingContract\", \"salt\"\n];\n\nfunction checkString(key: string): (value: any) => string {\n return function (value: any){\n if (typeof(value) !== \"string\") {\n logger.throwArgumentError(`invalid domain value for ${ JSON.stringify(key) }`, `domain.${ key }`, value);\n }\n return value;\n }\n}\n\nconst domainChecks: Record any> = {\n name: checkString(\"name\"),\n version: checkString(\"version\"),\n chainId: function(value: any) {\n try {\n return BigNumber.from(value).toString()\n } catch (error) { }\n return logger.throwArgumentError(`invalid domain value for \"chainId\"`, \"domain.chainId\", value);\n },\n verifyingContract: function(value: any) {\n try {\n return getAddress(value).toLowerCase();\n } catch (error) { }\n return logger.throwArgumentError(`invalid domain value \"verifyingContract\"`, \"domain.verifyingContract\", value);\n },\n salt: function(value: any) {\n try {\n const bytes = arrayify(value);\n if (bytes.length !== 32) { throw new Error(\"bad length\"); }\n return hexlify(bytes);\n } catch (error) { }\n return logger.throwArgumentError(`invalid domain value \"salt\"`, \"domain.salt\", value);\n }\n}\n\nfunction getBaseEncoder(type: string): (value: any) => string {\n // intXX and uintXX\n {\n const match = type.match(/^(u?)int(\\d*)$/);\n if (match) {\n const signed = (match[1] === \"\");\n\n const width = parseInt(match[2] || \"256\");\n if (width % 8 !== 0 || width > 256 || (match[2] && match[2] !== String(width))) {\n logger.throwArgumentError(\"invalid numeric width\", \"type\", type);\n }\n\n const boundsUpper = MaxUint256.mask(signed ? (width - 1): width);\n const boundsLower = signed ? boundsUpper.add(One).mul(NegativeOne): Zero;\n\n return function(value: BigNumberish) {\n const v = BigNumber.from(value);\n\n if (v.lt(boundsLower) || v.gt(boundsUpper)) {\n logger.throwArgumentError(`value out-of-bounds for ${ type }`, \"value\", value);\n }\n\n return hexZeroPad(v.toTwos(256).toHexString(), 32);\n };\n }\n }\n\n // bytesXX\n {\n const match = type.match(/^bytes(\\d+)$/);\n if (match) {\n const width = parseInt(match[1]);\n if (width === 0 || width > 32 || match[1] !== String(width)) {\n logger.throwArgumentError(\"invalid bytes width\", \"type\", type);\n }\n\n return function(value: BytesLike) {\n const bytes = arrayify(value);\n if (bytes.length !== width) {\n logger.throwArgumentError(`invalid length for ${ type }`, \"value\", value);\n }\n return hexPadRight(value);\n };\n }\n }\n\n switch (type) {\n case \"address\": return function(value: string) {\n return hexZeroPad(getAddress(value), 32);\n };\n case \"bool\": return function(value: boolean) {\n return ((!value) ? hexFalse: hexTrue);\n };\n case \"bytes\": return function(value: BytesLike) {\n return keccak256(value);\n };\n case \"string\": return function(value: string) {\n return id(value);\n };\n }\n\n return null;\n}\n\nfunction encodeType(name: string, fields: Array): string {\n return `${ name }(${ fields.map(({ name, type }) => (type + \" \" + name)).join(\",\") })`;\n}\n\nexport class TypedDataEncoder {\n readonly primaryType: string;\n readonly types: Record>;\n\n readonly _encoderCache: Record string>;\n readonly _types: Record;\n\n constructor(types: Record>) {\n defineReadOnly(this, \"types\", Object.freeze(deepCopy(types)));\n\n defineReadOnly(this, \"_encoderCache\", { });\n defineReadOnly(this, \"_types\", { });\n\n // Link struct types to their direct child structs\n const links: Record> = { };\n\n // Link structs to structs which contain them as a child\n const parents: Record> = { };\n\n // Link all subtypes within a given struct\n const subtypes: Record> = { };\n\n Object.keys(types).forEach((type) => {\n links[type] = { };\n parents[type] = [ ];\n subtypes[type] = { }\n });\n\n for (const name in types) {\n\n const uniqueNames: Record = { };\n\n types[name].forEach((field) => {\n\n // Check each field has a unique name\n if (uniqueNames[field.name]) {\n logger.throwArgumentError(`duplicate variable name ${ JSON.stringify(field.name) } in ${ JSON.stringify(name) }`, \"types\", types);\n }\n uniqueNames[field.name] = true;\n\n // Get the base type (drop any array specifiers)\n const baseType = field.type.match(/^([^\\x5b]*)(\\x5b|$)/)[1];\n if (baseType === name) {\n logger.throwArgumentError(`circular type reference to ${ JSON.stringify(baseType) }`, \"types\", types);\n }\n\n // Is this a base encoding type?\n const encoder = getBaseEncoder(baseType);\n if (encoder) { return ;}\n\n if (!parents[baseType]) {\n logger.throwArgumentError(`unknown type ${ JSON.stringify(baseType) }`, \"types\", types);\n }\n\n // Add linkage\n parents[baseType].push(name);\n links[name][baseType] = true;\n });\n }\n\n // Deduce the primary type\n const primaryTypes = Object.keys(parents).filter((n) => (parents[n].length === 0));\n\n if (primaryTypes.length === 0) {\n logger.throwArgumentError(\"missing primary type\", \"types\", types);\n } else if (primaryTypes.length > 1) {\n logger.throwArgumentError(`ambiguous primary types or unused types: ${ primaryTypes.map((t) => (JSON.stringify(t))).join(\", \") }`, \"types\", types);\n }\n\n defineReadOnly(this, \"primaryType\", primaryTypes[0]);\n\n // Check for circular type references\n function checkCircular(type: string, found: Record) {\n if (found[type]) {\n logger.throwArgumentError(`circular type reference to ${ JSON.stringify(type) }`, \"types\", types);\n }\n\n found[type] = true;\n\n Object.keys(links[type]).forEach((child) => {\n if (!parents[child]) { return; }\n\n // Recursively check children\n checkCircular(child, found);\n\n // Mark all ancestors as having this decendant\n Object.keys(found).forEach((subtype) => {\n subtypes[subtype][child] = true;\n });\n });\n\n delete found[type];\n }\n checkCircular(this.primaryType, { });\n\n // Compute each fully describe type\n for (const name in subtypes) {\n const st = Object.keys(subtypes[name]);\n st.sort();\n this._types[name] = encodeType(name, types[name]) + st.map((t) => encodeType(t, types[t])).join(\"\");\n }\n }\n\n getEncoder(type: string): (value: any) => string {\n let encoder = this._encoderCache[type];\n if (!encoder) {\n encoder = this._encoderCache[type] = this._getEncoder(type);\n }\n return encoder;\n }\n\n _getEncoder(type: string): (value: any) => string {\n\n // Basic encoder type (address, bool, uint256, etc)\n {\n const encoder = getBaseEncoder(type);\n if (encoder) { return encoder; }\n }\n\n // Array\n const match = type.match(/^(.*)(\\x5b(\\d*)\\x5d)$/);\n if (match) {\n const subtype = match[1];\n const subEncoder = this.getEncoder(subtype);\n const length = parseInt(match[3]);\n return (value: Array) => {\n if (length >= 0 && value.length !== length) {\n logger.throwArgumentError(\"array length mismatch; expected length ${ arrayLength }\", \"value\", value);\n }\n\n let result = value.map(subEncoder);\n if (this._types[subtype]) {\n result = result.map(keccak256);\n }\n\n return keccak256(hexConcat(result));\n };\n }\n\n // Struct\n const fields = this.types[type];\n if (fields) {\n const encodedType = id(this._types[type]);\n return (value: Record) => {\n const values = fields.map(({ name, type }) => {\n const result = this.getEncoder(type)(value[name]);\n if (this._types[type]) { return keccak256(result); }\n return result;\n });\n values.unshift(encodedType);\n return hexConcat(values);\n }\n }\n\n return logger.throwArgumentError(`unknown type: ${ type }`, \"type\", type);\n }\n\n encodeType(name: string): string {\n const result = this._types[name];\n if (!result) {\n logger.throwArgumentError(`unknown type: ${ JSON.stringify(name) }`, \"name\", name);\n }\n return result;\n }\n\n encodeData(type: string, value: any): string {\n return this.getEncoder(type)(value);\n }\n\n hashStruct(name: string, value: Record): string {\n return keccak256(this.encodeData(name, value));\n }\n\n encode(value: Record): string {\n return this.encodeData(this.primaryType, value);\n }\n\n hash(value: Record): string {\n return this.hashStruct(this.primaryType, value);\n }\n\n _visit(type: string, value: any, callback: (type: string, data: any) => any): any {\n // Basic encoder type (address, bool, uint256, etc)\n {\n const encoder = getBaseEncoder(type);\n if (encoder) { return callback(type, value); }\n }\n\n // Array\n const match = type.match(/^(.*)(\\x5b(\\d*)\\x5d)$/);\n if (match) {\n const subtype = match[1];\n const length = parseInt(match[3]);\n if (length >= 0 && value.length !== length) {\n logger.throwArgumentError(\"array length mismatch; expected length ${ arrayLength }\", \"value\", value);\n }\n return value.map((v: any) => this._visit(subtype, v, callback));\n }\n\n // Struct\n const fields = this.types[type];\n if (fields) {\n return fields.reduce((accum, { name, type }) => {\n accum[name] = this._visit(type, value[name], callback);\n return accum;\n }, >{});\n }\n\n return logger.throwArgumentError(`unknown type: ${ type }`, \"type\", type);\n }\n\n visit(value: Record, callback: (type: string, data: any) => any): any {\n return this._visit(this.primaryType, value, callback);\n }\n\n static from(types: Record>): TypedDataEncoder {\n return new TypedDataEncoder(types);\n }\n\n static getPrimaryType(types: Record>): string {\n return TypedDataEncoder.from(types).primaryType;\n }\n\n static hashStruct(name: string, types: Record>, value: Record): string {\n return TypedDataEncoder.from(types).hashStruct(name, value);\n }\n\n static hashDomain(domain: TypedDataDomain): string {\n const domainFields: Array = [ ];\n for (const name in domain) {\n const type = domainFieldTypes[name];\n if (!type) {\n logger.throwArgumentError(`invalid typed-data domain key: ${ JSON.stringify(name) }`, \"domain\", domain);\n }\n domainFields.push({ name, type });\n }\n\n domainFields.sort((a, b) => {\n return domainFieldNames.indexOf(a.name) - domainFieldNames.indexOf(b.name);\n });\n\n return TypedDataEncoder.hashStruct(\"EIP712Domain\", { EIP712Domain: domainFields }, domain);\n }\n\n static encode(domain: TypedDataDomain, types: Record>, value: Record): string {\n return hexConcat([\n \"0x1901\",\n TypedDataEncoder.hashDomain(domain),\n TypedDataEncoder.from(types).hash(value)\n ]);\n }\n\n static hash(domain: TypedDataDomain, types: Record>, value: Record): string {\n return keccak256(TypedDataEncoder.encode(domain, types, value));\n }\n\n // Replaces all address types with ENS names with their looked up address\n static async resolveNames(domain: TypedDataDomain, types: Record>, value: Record, resolveName: (name: string) => Promise): Promise<{ domain: TypedDataDomain, value: any }> {\n // Make a copy to isolate it from the object passed in\n domain = shallowCopy(domain);\n\n // Look up all ENS names\n const ensCache: Record = { };\n\n // Do we need to look up the domain's verifyingContract?\n if (domain.verifyingContract && !isHexString(domain.verifyingContract, 20)) {\n ensCache[domain.verifyingContract] = \"0x\";\n }\n\n // We are going to use the encoder to visit all the base values\n const encoder = TypedDataEncoder.from(types);\n\n // Get a list of all the addresses\n encoder.visit(value, (type: string, value: any) => {\n if (type === \"address\" && !isHexString(value, 20)) {\n ensCache[value] = \"0x\";\n }\n return value;\n });\n\n // Lookup each name\n for (const name in ensCache) {\n ensCache[name] = await resolveName(name);\n }\n\n // Replace the domain verifyingContract if needed\n if (domain.verifyingContract && ensCache[domain.verifyingContract]) {\n domain.verifyingContract = ensCache[domain.verifyingContract];\n }\n\n // Replace all ENS names with their address\n value = encoder.visit(value, (type: string, value: any) => {\n if (type === \"address\" && ensCache[value]) { return ensCache[value]; }\n return value;\n });\n\n return { domain, value };\n }\n\n static getPayload(domain: TypedDataDomain, types: Record>, value: Record): any {\n // Validate the domain fields\n TypedDataEncoder.hashDomain(domain);\n\n // Derive the EIP712Domain Struct reference type\n const domainValues: Record = { };\n const domainTypes: Array<{ name: string, type:string }> = [ ];\n\n domainFieldNames.forEach((name) => {\n const value = (domain)[name];\n if (value == null) { return; }\n domainValues[name] = domainChecks[name](value);\n domainTypes.push({ name, type: domainFieldTypes[name] });\n });\n\n const encoder = TypedDataEncoder.from(types);\n\n const typesWithDomain = shallowCopy(types);\n if (typesWithDomain.EIP712Domain) {\n logger.throwArgumentError(\"types must not contain EIP712Domain type\", \"types.EIP712Domain\", types);\n } else {\n typesWithDomain.EIP712Domain = domainTypes;\n }\n\n // Validate the data structures and types\n encoder.encode(value);\n\n return {\n types: typesWithDomain,\n domain: domainValues,\n primaryType: encoder.primaryType,\n message: encoder.visit(value, (type: string, value: any) => {\n\n // bytes\n if (type.match(/^bytes(\\d*)/)) {\n return hexlify(arrayify(value));\n }\n\n // uint or int\n if (type.match(/^u?int/)) {\n return BigNumber.from(value).toString();\n }\n\n switch (type) {\n case \"address\":\n return value.toLowerCase();\n case \"bool\":\n return !!value;\n case \"string\":\n if (typeof(value) !== \"string\") {\n logger.throwArgumentError(`invalid string`, \"value\", value);\n }\n return value;\n }\n\n return logger.throwArgumentError(\"unsupported type\", \"type\", type);\n })\n };\n }\n}\n\n","export const version = \"hdnode/5.7.0\";\n","\"use strict\";\n\n// See: https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki\n// See: https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki\n\n\nimport { ExternallyOwnedAccount } from \"@ethersproject/abstract-signer\";\nimport { Base58 } from \"@ethersproject/basex\";\nimport { arrayify, BytesLike, concat, hexDataSlice, hexZeroPad, hexlify } from \"@ethersproject/bytes\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { toUtf8Bytes, UnicodeNormalizationForm } from \"@ethersproject/strings\";\nimport { pbkdf2 } from \"@ethersproject/pbkdf2\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { SigningKey } from \"@ethersproject/signing-key\";\nimport { computeHmac, ripemd160, sha256, SupportedAlgorithm } from \"@ethersproject/sha2\";\nimport { computeAddress } from \"@ethersproject/transactions\";\nimport { Wordlist, wordlists } from \"@ethersproject/wordlists\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nconst N = BigNumber.from(\"0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141\");\n\n\n// \"Bitcoin seed\"\nconst MasterSecret = toUtf8Bytes(\"Bitcoin seed\");\n\nconst HardenedBit = 0x80000000;\n\n// Returns a byte with the MSB bits set\nfunction getUpperMask(bits: number): number {\n return ((1 << bits) - 1) << (8 - bits);\n}\n\n// Returns a byte with the LSB bits set\nfunction getLowerMask(bits: number): number {\n return (1 << bits) - 1;\n}\n\nfunction bytes32(value: BigNumber | Uint8Array): string {\n return hexZeroPad(hexlify(value), 32);\n}\n\nfunction base58check(data: Uint8Array): string {\n return Base58.encode(concat([ data, hexDataSlice(sha256(sha256(data)), 0, 4) ]));\n}\n\nfunction getWordlist(wordlist: string | Wordlist): Wordlist {\n if (wordlist == null) {\n return wordlists[\"en\"];\n }\n\n if (typeof(wordlist) === \"string\") {\n const words = wordlists[wordlist];\n if (words == null) {\n logger.throwArgumentError(\"unknown locale\", \"wordlist\", wordlist);\n }\n return words;\n }\n\n return wordlist;\n}\n\nconst _constructorGuard: any = {};\n\nexport const defaultPath = \"m/44'/60'/0'/0/0\";\n\nexport interface Mnemonic {\n readonly phrase: string;\n readonly path: string;\n readonly locale: string;\n};\n\nexport class HDNode implements ExternallyOwnedAccount {\n readonly privateKey: string;\n readonly publicKey: string;\n\n readonly fingerprint: string;\n readonly parentFingerprint: string;\n\n readonly address: string;\n\n readonly mnemonic?: Mnemonic;\n readonly path: string;\n\n readonly chainCode: string;\n\n readonly index: number;\n readonly depth: number;\n\n /**\n * This constructor should not be called directly.\n *\n * Please use:\n * - fromMnemonic\n * - fromSeed\n */\n constructor(constructorGuard: any, privateKey: string, publicKey: string, parentFingerprint: string, chainCode: string, index: number, depth: number, mnemonicOrPath: Mnemonic | string) {\n /* istanbul ignore if */\n if (constructorGuard !== _constructorGuard) {\n throw new Error(\"HDNode constructor cannot be called directly\");\n }\n\n if (privateKey) {\n const signingKey = new SigningKey(privateKey);\n defineReadOnly(this, \"privateKey\", signingKey.privateKey);\n defineReadOnly(this, \"publicKey\", signingKey.compressedPublicKey);\n } else {\n defineReadOnly(this, \"privateKey\", null);\n defineReadOnly(this, \"publicKey\", hexlify(publicKey));\n }\n\n defineReadOnly(this, \"parentFingerprint\", parentFingerprint);\n defineReadOnly(this, \"fingerprint\", hexDataSlice(ripemd160(sha256(this.publicKey)), 0, 4));\n\n defineReadOnly(this, \"address\", computeAddress(this.publicKey));\n\n defineReadOnly(this, \"chainCode\", chainCode);\n\n defineReadOnly(this, \"index\", index);\n defineReadOnly(this, \"depth\", depth);\n\n if (mnemonicOrPath == null) {\n // From a source that does not preserve the path (e.g. extended keys)\n defineReadOnly(this, \"mnemonic\", null);\n defineReadOnly(this, \"path\", null);\n\n } else if (typeof(mnemonicOrPath) === \"string\") {\n // From a source that does not preserve the mnemonic (e.g. neutered)\n defineReadOnly(this, \"mnemonic\", null);\n defineReadOnly(this, \"path\", mnemonicOrPath);\n\n } else {\n // From a fully qualified source\n defineReadOnly(this, \"mnemonic\", mnemonicOrPath);\n defineReadOnly(this, \"path\", mnemonicOrPath.path);\n }\n }\n\n get extendedKey(): string {\n // We only support the mainnet values for now, but if anyone needs\n // testnet values, let me know. I believe current sentiment is that\n // we should always use mainnet, and use BIP-44 to derive the network\n // - Mainnet: public=0x0488B21E, private=0x0488ADE4\n // - Testnet: public=0x043587CF, private=0x04358394\n\n if (this.depth >= 256) { throw new Error(\"Depth too large!\"); }\n\n return base58check(concat([\n ((this.privateKey != null) ? \"0x0488ADE4\": \"0x0488B21E\"),\n hexlify(this.depth),\n this.parentFingerprint,\n hexZeroPad(hexlify(this.index), 4),\n this.chainCode,\n ((this.privateKey != null) ? concat([ \"0x00\", this.privateKey ]): this.publicKey),\n ]));\n }\n\n neuter(): HDNode {\n return new HDNode(_constructorGuard, null, this.publicKey, this.parentFingerprint, this.chainCode, this.index, this.depth, this.path);\n }\n\n private _derive(index: number): HDNode {\n if (index > 0xffffffff) { throw new Error(\"invalid index - \" + String(index)); }\n\n // Base path\n let path = this.path;\n if (path) { path += \"/\" + (index & ~HardenedBit); }\n\n const data = new Uint8Array(37);\n\n if (index & HardenedBit) {\n if (!this.privateKey) {\n throw new Error(\"cannot derive child of neutered node\");\n }\n\n // Data = 0x00 || ser_256(k_par)\n data.set(arrayify(this.privateKey), 1);\n\n // Hardened path\n if (path) { path += \"'\"; }\n\n } else {\n // Data = ser_p(point(k_par))\n data.set(arrayify(this.publicKey));\n }\n\n // Data += ser_32(i)\n for (let i = 24; i >= 0; i -= 8) { data[33 + (i >> 3)] = ((index >> (24 - i)) & 0xff); }\n\n const I = arrayify(computeHmac(SupportedAlgorithm.sha512, this.chainCode, data));\n const IL = I.slice(0, 32);\n const IR = I.slice(32);\n\n // The private key\n let ki: string = null\n\n // The public key\n let Ki: string = null;\n\n if (this.privateKey) {\n ki = bytes32(BigNumber.from(IL).add(this.privateKey).mod(N));\n } else {\n const ek = new SigningKey(hexlify(IL));\n Ki = ek._addPoint(this.publicKey);\n }\n\n let mnemonicOrPath: Mnemonic | string = path;\n\n const srcMnemonic = this.mnemonic;\n if (srcMnemonic) {\n mnemonicOrPath = Object.freeze({\n phrase: srcMnemonic.phrase,\n path: path,\n locale: (srcMnemonic.locale || \"en\")\n });\n }\n\n return new HDNode(_constructorGuard, ki, Ki, this.fingerprint, bytes32(IR), index, this.depth + 1, mnemonicOrPath);\n }\n\n derivePath(path: string): HDNode {\n const components = path.split(\"/\");\n\n if (components.length === 0 || (components[0] === \"m\" && this.depth !== 0)) {\n throw new Error(\"invalid path - \" + path);\n }\n\n if (components[0] === \"m\") { components.shift(); }\n\n let result: HDNode = this;\n for (let i = 0; i < components.length; i++) {\n const component = components[i];\n if (component.match(/^[0-9]+'$/)) {\n const index = parseInt(component.substring(0, component.length - 1));\n if (index >= HardenedBit) { throw new Error(\"invalid path index - \" + component); }\n result = result._derive(HardenedBit + index);\n } else if (component.match(/^[0-9]+$/)) {\n const index = parseInt(component);\n if (index >= HardenedBit) { throw new Error(\"invalid path index - \" + component); }\n result = result._derive(index);\n } else {\n throw new Error(\"invalid path component - \" + component);\n }\n }\n\n return result;\n }\n\n\n static _fromSeed(seed: BytesLike, mnemonic: Mnemonic): HDNode {\n const seedArray: Uint8Array = arrayify(seed);\n if (seedArray.length < 16 || seedArray.length > 64) { throw new Error(\"invalid seed\"); }\n\n const I: Uint8Array = arrayify(computeHmac(SupportedAlgorithm.sha512, MasterSecret, seedArray));\n\n return new HDNode(_constructorGuard, bytes32(I.slice(0, 32)), null, \"0x00000000\", bytes32(I.slice(32)), 0, 0, mnemonic);\n }\n\n static fromMnemonic(mnemonic: string, password?: string, wordlist?: string | Wordlist): HDNode {\n\n // If a locale name was passed in, find the associated wordlist\n wordlist = getWordlist(wordlist);\n\n // Normalize the case and spacing in the mnemonic (throws if the mnemonic is invalid)\n mnemonic = entropyToMnemonic(mnemonicToEntropy(mnemonic, wordlist), wordlist);\n\n return HDNode._fromSeed(mnemonicToSeed(mnemonic, password), {\n phrase: mnemonic,\n path: \"m\",\n locale: wordlist.locale\n });\n }\n\n static fromSeed(seed: BytesLike): HDNode {\n return HDNode._fromSeed(seed, null);\n }\n\n static fromExtendedKey(extendedKey: string): HDNode {\n const bytes = Base58.decode(extendedKey);\n\n if (bytes.length !== 82 || base58check(bytes.slice(0, 78)) !== extendedKey) {\n logger.throwArgumentError(\"invalid extended key\", \"extendedKey\", \"[REDACTED]\");\n }\n\n const depth = bytes[4];\n const parentFingerprint = hexlify(bytes.slice(5, 9));\n const index = parseInt(hexlify(bytes.slice(9, 13)).substring(2), 16);\n const chainCode = hexlify(bytes.slice(13, 45));\n const key = bytes.slice(45, 78);\n\n switch (hexlify(bytes.slice(0, 4))) {\n // Public Key\n case \"0x0488b21e\": case \"0x043587cf\":\n return new HDNode(_constructorGuard, null, hexlify(key), parentFingerprint, chainCode, index, depth, null);\n\n // Private Key\n case \"0x0488ade4\": case \"0x04358394 \":\n if (key[0] !== 0) { break; }\n return new HDNode(_constructorGuard, hexlify(key.slice(1)), null, parentFingerprint, chainCode, index, depth, null);\n }\n\n return logger.throwArgumentError(\"invalid extended key\", \"extendedKey\", \"[REDACTED]\");\n }\n}\n\nexport function mnemonicToSeed(mnemonic: string, password?: string): string {\n if (!password) { password = \"\"; }\n\n const salt = toUtf8Bytes(\"mnemonic\" + password, UnicodeNormalizationForm.NFKD);\n\n return pbkdf2(toUtf8Bytes(mnemonic, UnicodeNormalizationForm.NFKD), salt, 2048, 64, \"sha512\");\n}\n\nexport function mnemonicToEntropy(mnemonic: string, wordlist?: string | Wordlist): string {\n wordlist = getWordlist(wordlist);\n\n logger.checkNormalize();\n\n const words = wordlist.split(mnemonic);\n if ((words.length % 3) !== 0) { throw new Error(\"invalid mnemonic\"); }\n\n const entropy = arrayify(new Uint8Array(Math.ceil(11 * words.length / 8)));\n\n let offset = 0;\n for (let i = 0; i < words.length; i++) {\n let index = wordlist.getWordIndex(words[i].normalize(\"NFKD\"));\n if (index === -1) { throw new Error(\"invalid mnemonic\"); }\n\n for (let bit = 0; bit < 11; bit++) {\n if (index & (1 << (10 - bit))) {\n entropy[offset >> 3] |= (1 << (7 - (offset % 8)));\n }\n offset++;\n }\n }\n\n const entropyBits = 32 * words.length / 3;\n\n const checksumBits = words.length / 3;\n const checksumMask = getUpperMask(checksumBits);\n\n const checksum = arrayify(sha256(entropy.slice(0, entropyBits / 8)))[0] & checksumMask;\n\n if (checksum !== (entropy[entropy.length - 1] & checksumMask)) {\n throw new Error(\"invalid checksum\");\n }\n\n return hexlify(entropy.slice(0, entropyBits / 8));\n}\n\nexport function entropyToMnemonic(entropy: BytesLike, wordlist?: string | Wordlist): string {\n wordlist = getWordlist(wordlist);\n\n entropy = arrayify(entropy);\n\n if ((entropy.length % 4) !== 0 || entropy.length < 16 || entropy.length > 32) {\n throw new Error(\"invalid entropy\");\n }\n\n const indices: Array = [ 0 ];\n\n let remainingBits = 11;\n for (let i = 0; i < entropy.length; i++) {\n\n // Consume the whole byte (with still more to go)\n if (remainingBits > 8) {\n indices[indices.length - 1] <<= 8;\n indices[indices.length - 1] |= entropy[i];\n\n remainingBits -= 8;\n\n // This byte will complete an 11-bit index\n } else {\n indices[indices.length - 1] <<= remainingBits;\n indices[indices.length - 1] |= entropy[i] >> (8 - remainingBits);\n\n // Start the next word\n indices.push(entropy[i] & getLowerMask(8 - remainingBits));\n\n remainingBits += 3;\n }\n }\n\n // Compute the checksum bits\n const checksumBits = entropy.length / 4;\n const checksum = arrayify(sha256(entropy))[0] & getUpperMask(checksumBits);\n\n // Shift the checksum into the word indices\n indices[indices.length - 1] <<= checksumBits;\n indices[indices.length - 1] |= (checksum >> (8 - checksumBits));\n\n return wordlist.join(indices.map((index) => (wordlist).getWord(index)));\n}\n\nexport function isValidMnemonic(mnemonic: string, wordlist?: Wordlist): boolean {\n try {\n mnemonicToEntropy(mnemonic, wordlist);\n return true;\n } catch (error) { }\n return false;\n}\n\nexport function getAccountPath(index: number): string {\n if (typeof(index) !== \"number\" || index < 0 || index >= HardenedBit || index % 1) {\n logger.throwArgumentError(\"invalid account index\", \"index\", index);\n }\n return `m/44'/60'/${ index }'/0/0`;\n}\n","export const version = \"json-wallets/5.7.0\";\n","\"use strict\";\n\nimport aes from \"aes-js\";\n\nimport { ExternallyOwnedAccount } from \"@ethersproject/abstract-signer\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { arrayify, Bytes } from \"@ethersproject/bytes\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { pbkdf2 } from \"@ethersproject/pbkdf2\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\nimport { Description } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { getPassword, looseArrayify, searchPath } from \"./utils\";\n\nexport interface _CrowdsaleAccount {\n address: string;\n privateKey: string;\n\n _isCrowdsaleAccount: boolean;\n}\n\nexport class CrowdsaleAccount extends Description<_CrowdsaleAccount> implements ExternallyOwnedAccount {\n readonly address: string;\n readonly privateKey: string;\n readonly mnemonic?: string;\n readonly path?: string;\n\n readonly _isCrowdsaleAccount: boolean;\n\n isCrowdsaleAccount(value: any): value is CrowdsaleAccount {\n return !!(value && value._isCrowdsaleAccount);\n }\n}\n\n// See: https://github.com/ethereum/pyethsaletool\nexport function decrypt(json: string, password: Bytes | string): ExternallyOwnedAccount {\n const data = JSON.parse(json);\n\n password = getPassword(password);\n\n // Ethereum Address\n const ethaddr = getAddress(searchPath(data, \"ethaddr\"));\n\n // Encrypted Seed\n const encseed = looseArrayify(searchPath(data, \"encseed\"));\n if (!encseed || (encseed.length % 16) !== 0) {\n logger.throwArgumentError(\"invalid encseed\", \"json\", json);\n }\n\n const key = arrayify(pbkdf2(password, password, 2000, 32, \"sha256\")).slice(0, 16);\n\n const iv = encseed.slice(0, 16);\n const encryptedSeed = encseed.slice(16);\n\n // Decrypt the seed\n const aesCbc = new aes.ModeOfOperation.cbc(key, iv);\n const seed = aes.padding.pkcs7.strip(arrayify(aesCbc.decrypt(encryptedSeed)));\n\n // This wallet format is weird... Convert the binary encoded hex to a string.\n let seedHex = \"\";\n for (let i = 0; i < seed.length; i++) {\n seedHex += String.fromCharCode(seed[i]);\n }\n\n const seedHexBytes = toUtf8Bytes(seedHex);\n\n const privateKey = keccak256(seedHexBytes);\n\n return new CrowdsaleAccount ({\n _isCrowdsaleAccount: true,\n address: ethaddr,\n privateKey: privateKey\n });\n}\n\n","\"use strict\";\n\nimport { Bytes } from \"@ethersproject/bytes\";\nimport { ExternallyOwnedAccount } from \"@ethersproject/abstract-signer\";\n\nimport { decrypt as decryptCrowdsale } from \"./crowdsale\";\nimport { getJsonWalletAddress, isCrowdsaleWallet, isKeystoreWallet } from \"./inspect\";\nimport { decrypt as decryptKeystore, decryptSync as decryptKeystoreSync, encrypt as encryptKeystore, EncryptOptions, ProgressCallback } from \"./keystore\";\n\nfunction decryptJsonWallet(json: string, password: Bytes | string, progressCallback?: ProgressCallback): Promise {\n if (isCrowdsaleWallet(json)) {\n if (progressCallback) { progressCallback(0); }\n const account = decryptCrowdsale(json, password)\n if (progressCallback) { progressCallback(1); }\n return Promise.resolve(account);\n }\n\n if (isKeystoreWallet(json)) {\n return decryptKeystore(json, password, progressCallback);\n }\n\n return Promise.reject(new Error(\"invalid JSON wallet\"));\n}\n\nfunction decryptJsonWalletSync(json: string, password: Bytes | string): ExternallyOwnedAccount {\n if (isCrowdsaleWallet(json)) {\n return decryptCrowdsale(json, password)\n }\n\n if (isKeystoreWallet(json)) {\n return decryptKeystoreSync(json, password);\n }\n\n throw new Error(\"invalid JSON wallet\");\n}\n\nexport {\n decryptCrowdsale,\n\n decryptKeystore,\n decryptKeystoreSync,\n encryptKeystore,\n\n isCrowdsaleWallet,\n isKeystoreWallet,\n getJsonWalletAddress,\n\n decryptJsonWallet,\n decryptJsonWalletSync,\n\n ProgressCallback,\n EncryptOptions,\n};\n","\"use strict\";\n\nimport { getAddress } from \"@ethersproject/address\";\n\n\nexport function isCrowdsaleWallet(json: string): boolean {\n let data: any = null;\n try {\n data = JSON.parse(json);\n } catch (error) { return false; }\n\n return (data.encseed && data.ethaddr);\n}\n\nexport function isKeystoreWallet(json: string): boolean {\n let data: any = null;\n try {\n data = JSON.parse(json);\n } catch (error) { return false; }\n\n if (!data.version || parseInt(data.version) !== data.version || parseInt(data.version) !== 3) {\n return false;\n }\n\n // @TODO: Put more checks to make sure it has kdf, iv and all that good stuff\n return true;\n}\n\n//export function isJsonWallet(json: string): boolean {\n// return (isSecretStorageWallet(json) || isCrowdsaleWallet(json));\n//}\n\nexport function getJsonWalletAddress(json: string): string {\n if (isCrowdsaleWallet(json)) {\n try {\n return getAddress(JSON.parse(json).ethaddr);\n } catch (error) { return null; }\n }\n\n if (isKeystoreWallet(json)) {\n try {\n return getAddress(JSON.parse(json).address);\n } catch (error) { return null; }\n }\n\n return null;\n}\n\n","\"use strict\";\n\nimport aes from \"aes-js\";\nimport scrypt from \"scrypt-js\";\n\nimport { ExternallyOwnedAccount } from \"@ethersproject/abstract-signer\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { arrayify, Bytes, BytesLike, concat, hexlify } from \"@ethersproject/bytes\";\nimport { defaultPath, entropyToMnemonic, HDNode, Mnemonic, mnemonicToEntropy } from \"@ethersproject/hdnode\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { pbkdf2 as _pbkdf2 } from \"@ethersproject/pbkdf2\";\nimport { randomBytes } from \"@ethersproject/random\";\nimport { Description } from \"@ethersproject/properties\";\nimport { computeAddress } from \"@ethersproject/transactions\";\n\nimport { getPassword, looseArrayify, searchPath, uuidV4, zpad } from \"./utils\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n// Exported Types\n\nfunction hasMnemonic(value: any): value is { mnemonic: Mnemonic } {\n return (value != null && value.mnemonic && value.mnemonic.phrase);\n}\n\nexport interface _KeystoreAccount {\n address: string;\n privateKey: string;\n mnemonic?: Mnemonic;\n\n _isKeystoreAccount: boolean;\n}\n\nexport class KeystoreAccount extends Description<_KeystoreAccount> implements ExternallyOwnedAccount {\n readonly address: string;\n readonly privateKey: string;\n readonly mnemonic?: Mnemonic;\n\n readonly _isKeystoreAccount: boolean;\n\n isKeystoreAccount(value: any): value is KeystoreAccount {\n return !!(value && value._isKeystoreAccount);\n }\n}\n\nexport type ProgressCallback = (percent: number) => void;\n\nexport type EncryptOptions = {\n iv?: BytesLike;\n entropy?: BytesLike;\n client?: string;\n salt?: BytesLike;\n uuid?: string;\n scrypt?: {\n N?: number;\n r?: number;\n p?: number;\n }\n}\n\nfunction _decrypt(data: any, key: Uint8Array, ciphertext: Uint8Array): Uint8Array {\n const cipher = searchPath(data, \"crypto/cipher\");\n if (cipher === \"aes-128-ctr\") {\n const iv = looseArrayify(searchPath(data, \"crypto/cipherparams/iv\"))\n const counter = new aes.Counter(iv);\n\n const aesCtr = new aes.ModeOfOperation.ctr(key, counter);\n\n return arrayify(aesCtr.decrypt(ciphertext));\n }\n\n return null;\n}\n\nfunction _getAccount(data: any, key: Uint8Array): KeystoreAccount {\n const ciphertext = looseArrayify(searchPath(data, \"crypto/ciphertext\"));\n\n const computedMAC = hexlify(keccak256(concat([ key.slice(16, 32), ciphertext ]))).substring(2);\n if (computedMAC !== searchPath(data, \"crypto/mac\").toLowerCase()) {\n throw new Error(\"invalid password\");\n }\n\n const privateKey = _decrypt(data, key.slice(0, 16), ciphertext);\n\n if (!privateKey) {\n logger.throwError(\"unsupported cipher\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"decrypt\"\n });\n }\n\n const mnemonicKey = key.slice(32, 64);\n\n const address = computeAddress(privateKey);\n if (data.address) {\n let check = data.address.toLowerCase();\n if (check.substring(0, 2) !== \"0x\") { check = \"0x\" + check; }\n\n if (getAddress(check) !== address) {\n throw new Error(\"address mismatch\");\n }\n }\n\n const account: _KeystoreAccount = {\n _isKeystoreAccount: true,\n address: address,\n privateKey: hexlify(privateKey)\n };\n\n // Version 0.1 x-ethers metadata must contain an encrypted mnemonic phrase\n if (searchPath(data, \"x-ethers/version\") === \"0.1\") {\n const mnemonicCiphertext = looseArrayify(searchPath(data, \"x-ethers/mnemonicCiphertext\"));\n const mnemonicIv = looseArrayify(searchPath(data, \"x-ethers/mnemonicCounter\"));\n\n const mnemonicCounter = new aes.Counter(mnemonicIv);\n const mnemonicAesCtr = new aes.ModeOfOperation.ctr(mnemonicKey, mnemonicCounter);\n\n const path = searchPath(data, \"x-ethers/path\") || defaultPath;\n const locale = searchPath(data, \"x-ethers/locale\") || \"en\";\n\n const entropy = arrayify(mnemonicAesCtr.decrypt(mnemonicCiphertext));\n\n try {\n const mnemonic = entropyToMnemonic(entropy, locale);\n const node = HDNode.fromMnemonic(mnemonic, null, locale).derivePath(path);\n\n if (node.privateKey != account.privateKey) {\n throw new Error(\"mnemonic mismatch\");\n }\n\n account.mnemonic = node.mnemonic;\n\n } catch (error) {\n // If we don't have the locale wordlist installed to\n // read this mnemonic, just bail and don't set the\n // mnemonic\n if (error.code !== Logger.errors.INVALID_ARGUMENT || error.argument !== \"wordlist\") {\n throw error;\n }\n }\n }\n\n return new KeystoreAccount(account);\n}\n\ntype ScryptFunc = (pw: Uint8Array, salt: Uint8Array, n: number, r: number, p: number, dkLen: number, callback?: ProgressCallback) => T;\ntype Pbkdf2Func = (pw: Uint8Array, salt: Uint8Array, c: number, dkLen: number, prfFunc: string) => T;\n\nfunction pbkdf2Sync(passwordBytes: Uint8Array, salt: Uint8Array, count: number, dkLen: number, prfFunc: string): Uint8Array {\n return arrayify(_pbkdf2(passwordBytes, salt, count, dkLen, prfFunc));\n}\n\nfunction pbkdf2(passwordBytes: Uint8Array, salt: Uint8Array, count: number, dkLen: number, prfFunc: string): Promise {\n return Promise.resolve(pbkdf2Sync(passwordBytes, salt, count, dkLen, prfFunc));\n}\n\nfunction _computeKdfKey(data: any, password: Bytes | string, pbkdf2Func: Pbkdf2Func, scryptFunc: ScryptFunc, progressCallback?: ProgressCallback): T {\n const passwordBytes = getPassword(password);\n\n const kdf = searchPath(data, \"crypto/kdf\");\n\n if (kdf && typeof(kdf) === \"string\") {\n const throwError = function(name: string, value: any): never {\n return logger.throwArgumentError(\"invalid key-derivation function parameters\", name, value);\n }\n\n if (kdf.toLowerCase() === \"scrypt\") {\n const salt = looseArrayify(searchPath(data, \"crypto/kdfparams/salt\"));\n const N = parseInt(searchPath(data, \"crypto/kdfparams/n\"));\n const r = parseInt(searchPath(data, \"crypto/kdfparams/r\"));\n const p = parseInt(searchPath(data, \"crypto/kdfparams/p\"));\n\n // Check for all required parameters\n if (!N || !r || !p) { throwError(\"kdf\", kdf); }\n\n // Make sure N is a power of 2\n if ((N & (N - 1)) !== 0) { throwError(\"N\", N); }\n\n const dkLen = parseInt(searchPath(data, \"crypto/kdfparams/dklen\"));\n if (dkLen !== 32) { throwError(\"dklen\", dkLen); }\n\n return scryptFunc(passwordBytes, salt, N, r, p, 64, progressCallback);\n\n } else if (kdf.toLowerCase() === \"pbkdf2\") {\n\n const salt = looseArrayify(searchPath(data, \"crypto/kdfparams/salt\"));\n\n let prfFunc: string = null;\n const prf = searchPath(data, \"crypto/kdfparams/prf\");\n if (prf === \"hmac-sha256\") {\n prfFunc = \"sha256\";\n } else if (prf === \"hmac-sha512\") {\n prfFunc = \"sha512\";\n } else {\n throwError(\"prf\", prf);\n }\n\n const count = parseInt(searchPath(data, \"crypto/kdfparams/c\"));\n\n const dkLen = parseInt(searchPath(data, \"crypto/kdfparams/dklen\"));\n if (dkLen !== 32) { throwError(\"dklen\", dkLen); }\n\n return pbkdf2Func(passwordBytes, salt, count, dkLen, prfFunc);\n }\n }\n\n return logger.throwArgumentError(\"unsupported key-derivation function\", \"kdf\", kdf);\n}\n\n\nexport function decryptSync(json: string, password: Bytes | string): KeystoreAccount {\n const data = JSON.parse(json);\n\n const key = _computeKdfKey(data, password, pbkdf2Sync, scrypt.syncScrypt);\n return _getAccount(data, key);\n}\n\nexport async function decrypt(json: string, password: Bytes | string, progressCallback?: ProgressCallback): Promise {\n const data = JSON.parse(json);\n\n const key = await _computeKdfKey(data, password, pbkdf2, scrypt.scrypt, progressCallback);\n return _getAccount(data, key);\n}\n\n\nexport function encrypt(account: ExternallyOwnedAccount, password: Bytes | string, options?: EncryptOptions, progressCallback?: ProgressCallback): Promise {\n\n try {\n // Check the address matches the private key\n if (getAddress(account.address) !== computeAddress(account.privateKey)) {\n throw new Error(\"address/privateKey mismatch\");\n }\n\n // Check the mnemonic (if any) matches the private key\n if (hasMnemonic(account)) {\n const mnemonic = account.mnemonic;\n const node = HDNode.fromMnemonic(mnemonic.phrase, null, mnemonic.locale).derivePath(mnemonic.path || defaultPath);\n\n if (node.privateKey != account.privateKey) {\n throw new Error(\"mnemonic mismatch\");\n }\n }\n\n } catch (e) {\n return Promise.reject(e);\n }\n\n // The options are optional, so adjust the call as needed\n if (typeof(options) === \"function\" && !progressCallback) {\n progressCallback = options;\n options = {};\n }\n if (!options) { options = {}; }\n\n const privateKey: Uint8Array = arrayify(account.privateKey);\n const passwordBytes = getPassword(password);\n\n let entropy: Uint8Array = null\n let path: string = null;\n let locale: string = null;\n if (hasMnemonic(account)) {\n const srcMnemonic = account.mnemonic;\n entropy = arrayify(mnemonicToEntropy(srcMnemonic.phrase, srcMnemonic.locale || \"en\"));\n path = srcMnemonic.path || defaultPath;\n locale = srcMnemonic.locale || \"en\";\n }\n\n let client = options.client;\n if (!client) { client = \"ethers.js\"; }\n\n // Check/generate the salt\n let salt: Uint8Array = null;\n if (options.salt) {\n salt = arrayify(options.salt);\n } else {\n salt = randomBytes(32);;\n }\n\n // Override initialization vector\n let iv: Uint8Array = null;\n if (options.iv) {\n iv = arrayify(options.iv);\n if (iv.length !== 16) { throw new Error(\"invalid iv\"); }\n } else {\n iv = randomBytes(16);\n }\n\n // Override the uuid\n let uuidRandom: Uint8Array = null;\n if (options.uuid) {\n uuidRandom = arrayify(options.uuid);\n if (uuidRandom.length !== 16) { throw new Error(\"invalid uuid\"); }\n } else {\n uuidRandom = randomBytes(16);\n }\n\n // Override the scrypt password-based key derivation function parameters\n let N = (1 << 17), r = 8, p = 1;\n if (options.scrypt) {\n if (options.scrypt.N) { N = options.scrypt.N; }\n if (options.scrypt.r) { r = options.scrypt.r; }\n if (options.scrypt.p) { p = options.scrypt.p; }\n }\n\n // We take 64 bytes:\n // - 32 bytes As normal for the Web3 secret storage (derivedKey, macPrefix)\n // - 32 bytes AES key to encrypt mnemonic with (required here to be Ethers Wallet)\n return scrypt.scrypt(passwordBytes, salt, N, r, p, 64, progressCallback).then((key) => {\n key = arrayify(key);\n\n // This will be used to encrypt the wallet (as per Web3 secret storage)\n const derivedKey = key.slice(0, 16);\n const macPrefix = key.slice(16, 32);\n\n // This will be used to encrypt the mnemonic phrase (if any)\n const mnemonicKey = key.slice(32, 64);\n\n // Encrypt the private key\n const counter = new aes.Counter(iv);\n const aesCtr = new aes.ModeOfOperation.ctr(derivedKey, counter);\n const ciphertext = arrayify(aesCtr.encrypt(privateKey));\n\n // Compute the message authentication code, used to check the password\n const mac = keccak256(concat([macPrefix, ciphertext]))\n\n // See: https://github.com/ethereum/wiki/wiki/Web3-Secret-Storage-Definition\n const data: { [key: string]: any } = {\n address: account.address.substring(2).toLowerCase(),\n id: uuidV4(uuidRandom),\n version: 3,\n crypto: {\n cipher: \"aes-128-ctr\",\n cipherparams: {\n iv: hexlify(iv).substring(2),\n },\n ciphertext: hexlify(ciphertext).substring(2),\n kdf: \"scrypt\",\n kdfparams: {\n salt: hexlify(salt).substring(2),\n n: N,\n dklen: 32,\n p: p,\n r: r\n },\n mac: mac.substring(2)\n }\n };\n\n // If we have a mnemonic, encrypt it into the JSON wallet\n if (entropy) {\n const mnemonicIv = randomBytes(16);\n const mnemonicCounter = new aes.Counter(mnemonicIv);\n const mnemonicAesCtr = new aes.ModeOfOperation.ctr(mnemonicKey, mnemonicCounter);\n const mnemonicCiphertext = arrayify(mnemonicAesCtr.encrypt(entropy));\n const now = new Date();\n const timestamp = (now.getUTCFullYear() + \"-\" +\n zpad(now.getUTCMonth() + 1, 2) + \"-\" +\n zpad(now.getUTCDate(), 2) + \"T\" +\n zpad(now.getUTCHours(), 2) + \"-\" +\n zpad(now.getUTCMinutes(), 2) + \"-\" +\n zpad(now.getUTCSeconds(), 2) + \".0Z\"\n );\n data[\"x-ethers\"] = {\n client: client,\n gethFilename: (\"UTC--\" + timestamp + \"--\" + data.address),\n mnemonicCounter: hexlify(mnemonicIv).substring(2),\n mnemonicCiphertext: hexlify(mnemonicCiphertext).substring(2),\n path: path,\n locale: locale,\n version: \"0.1\"\n };\n }\n\n return JSON.stringify(data);\n });\n}\n","\"use strict\";\n\nimport { arrayify, Bytes, BytesLike, hexlify } from \"@ethersproject/bytes\";\nimport { toUtf8Bytes, UnicodeNormalizationForm } from '@ethersproject/strings';\n\nexport function looseArrayify(hexString: string): Uint8Array {\n if (typeof(hexString) === 'string' && hexString.substring(0, 2) !== '0x') {\n hexString = '0x' + hexString;\n }\n return arrayify(hexString);\n}\n\nexport function zpad(value: String | number, length: number): String {\n value = String(value);\n while (value.length < length) { value = '0' + value; }\n return value;\n}\n\nexport function getPassword(password: Bytes | string): Uint8Array {\n if (typeof(password) === 'string') {\n return toUtf8Bytes(password, UnicodeNormalizationForm.NFKC);\n }\n return arrayify(password);\n}\n\nexport function searchPath(object: any, path: string): string {\n let currentChild = object;\n\n const comps = path.toLowerCase().split('/');\n for (let i = 0; i < comps.length; i++) {\n\n // Search for a child object with a case-insensitive matching key\n let matchingChild = null;\n for (const key in currentChild) {\n if (key.toLowerCase() === comps[i]) {\n matchingChild = currentChild[key];\n break;\n }\n }\n\n // Didn't find one. :'(\n if (matchingChild === null) {\n return null;\n }\n\n // Now check this child...\n currentChild = matchingChild;\n }\n\n return currentChild;\n}\n\n// See: https://www.ietf.org/rfc/rfc4122.txt (Section 4.4)\nexport function uuidV4(randomBytes: BytesLike): string {\n const bytes = arrayify(randomBytes);\n\n // Section: 4.1.3:\n // - time_hi_and_version[12:16] = 0b0100\n bytes[6] = (bytes[6] & 0x0f) | 0x40;\n\n // Section 4.4\n // - clock_seq_hi_and_reserved[6] = 0b0\n // - clock_seq_hi_and_reserved[7] = 0b1\n bytes[8] = (bytes[8] & 0x3f) | 0x80;\n\n const value = hexlify(bytes);\n\n return [\n value.substring(2, 10),\n value.substring(10, 14),\n value.substring(14, 18),\n value.substring(18, 22),\n value.substring(22, 34),\n ].join(\"-\");\n}\n\n","\"use strict\";\n\nimport sha3 from \"js-sha3\";\n\nimport { arrayify, BytesLike } from \"@ethersproject/bytes\";\n\nexport function keccak256(data: BytesLike): string {\n return '0x' + sha3.keccak_256(arrayify(data));\n}\n","\"use strict\";\n\nlet _permanentCensorErrors = false;\nlet _censorErrors = false;\n\nconst LogLevels: { [ name: string ]: number } = { debug: 1, \"default\": 2, info: 2, warning: 3, error: 4, off: 5 };\nlet _logLevel = LogLevels[\"default\"];\n\nimport { version } from \"./_version\";\n\nlet _globalLogger: Logger = null;\n\nfunction _checkNormalize(): string {\n try {\n const missing: Array = [ ];\n\n // Make sure all forms of normalization are supported\n [\"NFD\", \"NFC\", \"NFKD\", \"NFKC\"].forEach((form) => {\n try {\n if (\"test\".normalize(form) !== \"test\") {\n throw new Error(\"bad normalize\");\n };\n } catch(error) {\n missing.push(form);\n }\n });\n\n if (missing.length) {\n throw new Error(\"missing \" + missing.join(\", \"));\n }\n\n if (String.fromCharCode(0xe9).normalize(\"NFD\") !== String.fromCharCode(0x65, 0x0301)) {\n throw new Error(\"broken implementation\")\n }\n } catch (error) {\n return error.message;\n }\n\n return null;\n}\n\nconst _normalizeError = _checkNormalize();\n\nexport enum LogLevel {\n DEBUG = \"DEBUG\",\n INFO = \"INFO\",\n WARNING = \"WARNING\",\n ERROR = \"ERROR\",\n OFF = \"OFF\"\n}\n\n\nexport enum ErrorCode {\n\n ///////////////////\n // Generic Errors\n\n // Unknown Error\n UNKNOWN_ERROR = \"UNKNOWN_ERROR\",\n\n // Not Implemented\n NOT_IMPLEMENTED = \"NOT_IMPLEMENTED\",\n\n // Unsupported Operation\n // - operation\n UNSUPPORTED_OPERATION = \"UNSUPPORTED_OPERATION\",\n\n // Network Error (i.e. Ethereum Network, such as an invalid chain ID)\n // - event (\"noNetwork\" is not re-thrown in provider.ready; otherwise thrown)\n NETWORK_ERROR = \"NETWORK_ERROR\",\n\n // Some sort of bad response from the server\n SERVER_ERROR = \"SERVER_ERROR\",\n\n // Timeout\n TIMEOUT = \"TIMEOUT\",\n\n ///////////////////\n // Operational Errors\n\n // Buffer Overrun\n BUFFER_OVERRUN = \"BUFFER_OVERRUN\",\n\n // Numeric Fault\n // - operation: the operation being executed\n // - fault: the reason this faulted\n NUMERIC_FAULT = \"NUMERIC_FAULT\",\n\n\n ///////////////////\n // Argument Errors\n\n // Missing new operator to an object\n // - name: The name of the class\n MISSING_NEW = \"MISSING_NEW\",\n\n // Invalid argument (e.g. value is incompatible with type) to a function:\n // - argument: The argument name that was invalid\n // - value: The value of the argument\n INVALID_ARGUMENT = \"INVALID_ARGUMENT\",\n\n // Missing argument to a function:\n // - count: The number of arguments received\n // - expectedCount: The number of arguments expected\n MISSING_ARGUMENT = \"MISSING_ARGUMENT\",\n\n // Too many arguments\n // - count: The number of arguments received\n // - expectedCount: The number of arguments expected\n UNEXPECTED_ARGUMENT = \"UNEXPECTED_ARGUMENT\",\n\n\n ///////////////////\n // Blockchain Errors\n\n // Call exception\n // - transaction: the transaction\n // - address?: the contract address\n // - args?: The arguments passed into the function\n // - method?: The Solidity method signature\n // - errorSignature?: The EIP848 error signature\n // - errorArgs?: The EIP848 error parameters\n // - reason: The reason (only for EIP848 \"Error(string)\")\n CALL_EXCEPTION = \"CALL_EXCEPTION\",\n\n // Insufficient funds (< value + gasLimit * gasPrice)\n // - transaction: the transaction attempted\n INSUFFICIENT_FUNDS = \"INSUFFICIENT_FUNDS\",\n\n // Nonce has already been used\n // - transaction: the transaction attempted\n NONCE_EXPIRED = \"NONCE_EXPIRED\",\n\n // The replacement fee for the transaction is too low\n // - transaction: the transaction attempted\n REPLACEMENT_UNDERPRICED = \"REPLACEMENT_UNDERPRICED\",\n\n // The gas limit could not be estimated\n // - transaction: the transaction passed to estimateGas\n UNPREDICTABLE_GAS_LIMIT = \"UNPREDICTABLE_GAS_LIMIT\",\n\n // The transaction was replaced by one with a higher gas price\n // - reason: \"cancelled\", \"replaced\" or \"repriced\"\n // - cancelled: true if reason == \"cancelled\" or reason == \"replaced\")\n // - hash: original transaction hash\n // - replacement: the full TransactionsResponse for the replacement\n // - receipt: the receipt of the replacement\n TRANSACTION_REPLACED = \"TRANSACTION_REPLACED\",\n\n\n ///////////////////\n // Interaction Errors\n\n // The user rejected the action, such as signing a message or sending\n // a transaction\n ACTION_REJECTED = \"ACTION_REJECTED\",\n};\n\nconst HEX = \"0123456789abcdef\";\n\nexport class Logger {\n readonly version: string;\n\n static errors = ErrorCode;\n\n static levels = LogLevel;\n\n constructor(version: string) {\n Object.defineProperty(this, \"version\", {\n enumerable: true,\n value: version,\n writable: false\n });\n }\n\n _log(logLevel: LogLevel, args: Array): void {\n const level = logLevel.toLowerCase();\n if (LogLevels[level] == null) {\n this.throwArgumentError(\"invalid log level name\", \"logLevel\", logLevel);\n }\n if (_logLevel > LogLevels[level]) { return; }\n console.log.apply(console, args);\n }\n\n debug(...args: Array): void {\n this._log(Logger.levels.DEBUG, args);\n }\n\n info(...args: Array): void {\n this._log(Logger.levels.INFO, args);\n }\n\n warn(...args: Array): void {\n this._log(Logger.levels.WARNING, args);\n }\n\n makeError(message: string, code?: ErrorCode, params?: any): Error {\n // Errors are being censored\n if (_censorErrors) {\n return this.makeError(\"censored error\", code, { });\n }\n\n if (!code) { code = Logger.errors.UNKNOWN_ERROR; }\n if (!params) { params = {}; }\n\n const messageDetails: Array = [];\n Object.keys(params).forEach((key) => {\n const value = params[key];\n try {\n if (value instanceof Uint8Array) {\n let hex = \"\";\n for (let i = 0; i < value.length; i++) {\n hex += HEX[value[i] >> 4];\n hex += HEX[value[i] & 0x0f];\n }\n messageDetails.push(key + \"=Uint8Array(0x\" + hex + \")\");\n } else {\n messageDetails.push(key + \"=\" + JSON.stringify(value));\n }\n } catch (error) {\n messageDetails.push(key + \"=\" + JSON.stringify(params[key].toString()));\n }\n });\n messageDetails.push(`code=${ code }`);\n messageDetails.push(`version=${ this.version }`);\n\n const reason = message;\n\n let url = \"\";\n\n switch (code) {\n case ErrorCode.NUMERIC_FAULT: {\n url = \"NUMERIC_FAULT\";\n const fault = message;\n\n switch (fault) {\n case \"overflow\": case \"underflow\": case \"division-by-zero\":\n url += \"-\" + fault;\n break;\n case \"negative-power\": case \"negative-width\":\n url += \"-unsupported\";\n break;\n case \"unbound-bitwise-result\":\n url += \"-unbound-result\";\n break;\n }\n break;\n }\n case ErrorCode.CALL_EXCEPTION:\n case ErrorCode.INSUFFICIENT_FUNDS:\n case ErrorCode.MISSING_NEW:\n case ErrorCode.NONCE_EXPIRED:\n case ErrorCode.REPLACEMENT_UNDERPRICED:\n case ErrorCode.TRANSACTION_REPLACED:\n case ErrorCode.UNPREDICTABLE_GAS_LIMIT:\n url = code;\n break;\n }\n\n if (url) {\n message += \" [ See: https:/\\/links.ethers.org/v5-errors-\" + url + \" ]\";\n }\n\n if (messageDetails.length) {\n message += \" (\" + messageDetails.join(\", \") + \")\";\n }\n\n // @TODO: Any??\n const error: any = new Error(message);\n error.reason = reason;\n error.code = code\n\n Object.keys(params).forEach(function(key) {\n error[key] = params[key];\n });\n\n return error;\n }\n\n throwError(message: string, code?: ErrorCode, params?: any): never {\n throw this.makeError(message, code, params);\n }\n\n throwArgumentError(message: string, name: string, value: any): never {\n return this.throwError(message, Logger.errors.INVALID_ARGUMENT, {\n argument: name,\n value: value\n });\n }\n\n assert(condition: any, message: string, code?: ErrorCode, params?: any): void {\n if (!!condition) { return; }\n this.throwError(message, code, params);\n }\n\n assertArgument(condition: any, message: string, name: string, value: any): void {\n if (!!condition) { return; }\n this.throwArgumentError(message, name, value);\n }\n\n checkNormalize(message?: string): void {\n if (message == null) { message = \"platform missing String.prototype.normalize\"; }\n if (_normalizeError) {\n this.throwError(\"platform missing String.prototype.normalize\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"String.prototype.normalize\", form: _normalizeError\n });\n }\n }\n\n checkSafeUint53(value: number, message?: string): void {\n if (typeof(value) !== \"number\") { return; }\n\n if (message == null) { message = \"value not safe\"; }\n\n if (value < 0 || value >= 0x1fffffffffffff) {\n this.throwError(message, Logger.errors.NUMERIC_FAULT, {\n operation: \"checkSafeInteger\",\n fault: \"out-of-safe-range\",\n value: value\n });\n }\n\n if (value % 1) {\n this.throwError(message, Logger.errors.NUMERIC_FAULT, {\n operation: \"checkSafeInteger\",\n fault: \"non-integer\",\n value: value\n });\n }\n }\n\n checkArgumentCount(count: number, expectedCount: number, message?: string): void {\n if (message) {\n message = \": \" + message;\n } else {\n message = \"\";\n }\n\n if (count < expectedCount) {\n this.throwError(\"missing argument\" + message, Logger.errors.MISSING_ARGUMENT, {\n count: count,\n expectedCount: expectedCount\n });\n }\n\n if (count > expectedCount) {\n this.throwError(\"too many arguments\" + message, Logger.errors.UNEXPECTED_ARGUMENT, {\n count: count,\n expectedCount: expectedCount\n });\n }\n }\n\n checkNew(target: any, kind: any): void {\n if (target === Object || target == null) {\n this.throwError(\"missing new\", Logger.errors.MISSING_NEW, { name: kind.name });\n }\n }\n\n checkAbstract(target: any, kind: any): void {\n if (target === kind) {\n this.throwError(\n \"cannot instantiate abstract class \" + JSON.stringify(kind.name) + \" directly; use a sub-class\",\n Logger.errors.UNSUPPORTED_OPERATION,\n { name: target.name, operation: \"new\" }\n );\n } else if (target === Object || target == null) {\n this.throwError(\"missing new\", Logger.errors.MISSING_NEW, { name: kind.name });\n }\n }\n\n static globalLogger(): Logger {\n if (!_globalLogger) { _globalLogger = new Logger(version); }\n return _globalLogger;\n }\n\n static setCensorship(censorship: boolean, permanent?: boolean): void {\n if (!censorship && permanent) {\n this.globalLogger().throwError(\"cannot permanently disable censorship\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setCensorship\"\n });\n }\n\n if (_permanentCensorErrors) {\n if (!censorship) { return; }\n this.globalLogger().throwError(\"error censorship permanent\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setCensorship\"\n });\n }\n\n _censorErrors = !!censorship;\n _permanentCensorErrors = !!permanent;\n }\n\n static setLogLevel(logLevel: LogLevel): void {\n const level = LogLevels[logLevel.toLowerCase()];\n if (level == null) {\n Logger.globalLogger().warn(\"invalid log level - \" + logLevel);\n return;\n }\n _logLevel = level;\n }\n\n static from(version: string): Logger {\n return new Logger(version);\n }\n}\n","export const version = \"logger/5.7.0\";\n","export const version = \"networks/5.7.1\";\n","\"use strict\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { Network, Networkish } from \"./types\";\n\nexport {\n Network,\n Networkish\n};\n\ntype DefaultProviderFunc = (providers: any, options?: any) => any;\n\ninterface Renetworkable extends DefaultProviderFunc {\n renetwork: (network: Network) => DefaultProviderFunc;\n};\n\nfunction isRenetworkable(value: any): value is Renetworkable {\n return (value && typeof(value.renetwork) === \"function\");\n}\n\nfunction ethDefaultProvider(network: string | Network): Renetworkable {\n const func = function(providers: any, options?: any): any {\n if (options == null) { options = { }; }\n const providerList: Array = [];\n\n if (providers.InfuraProvider && options.infura !== \"-\") {\n try {\n providerList.push(new providers.InfuraProvider(network, options.infura));\n } catch(error) { }\n }\n\n if (providers.EtherscanProvider && options.etherscan !== \"-\") {\n try {\n providerList.push(new providers.EtherscanProvider(network, options.etherscan));\n } catch(error) { }\n }\n\n if (providers.AlchemyProvider && options.alchemy !== \"-\") {\n try {\n providerList.push(new providers.AlchemyProvider(network, options.alchemy));\n } catch(error) { }\n }\n\n if (providers.PocketProvider && options.pocket !== \"-\") {\n // These networks are currently faulty on Pocket as their\n // network does not handle the Berlin hardfork, which is\n // live on these ones.\n // @TODO: This goes away once Pocket has upgraded their nodes\n const skip = [ \"goerli\", \"ropsten\", \"rinkeby\", \"sepolia\" ];\n try {\n const provider = new providers.PocketProvider(network, options.pocket);\n if (provider.network && skip.indexOf(provider.network.name) === -1) {\n providerList.push(provider);\n }\n } catch(error) { }\n }\n\n if (providers.CloudflareProvider && options.cloudflare !== \"-\") {\n try {\n providerList.push(new providers.CloudflareProvider(network));\n } catch(error) { }\n }\n\n if (providers.AnkrProvider && options.ankr !== \"-\") {\n try {\n const skip = [ \"ropsten\" ];\n const provider = new providers.AnkrProvider(network, options.ankr);\n if (provider.network && skip.indexOf(provider.network.name) === -1) {\n providerList.push(provider);\n }\n } catch(error) { }\n }\n\n if (providerList.length === 0) { return null; }\n\n if (providers.FallbackProvider) {\n let quorum = 1;\n if (options.quorum != null) {\n quorum = options.quorum;\n } else if (network === \"homestead\") {\n quorum = 2;\n }\n return new providers.FallbackProvider(providerList, quorum);\n }\n\n return providerList[0];\n };\n\n func.renetwork = function(network: Network) {\n return ethDefaultProvider(network);\n };\n\n return func;\n}\n\nfunction etcDefaultProvider(url: string, network: string | Network): Renetworkable {\n const func = function(providers: any, options?: any): any {\n if (providers.JsonRpcProvider) {\n return new providers.JsonRpcProvider(url, network);\n }\n\n return null;\n };\n\n func.renetwork = function(network: Network) {\n return etcDefaultProvider(url, network);\n };\n\n return func;\n}\n\nconst homestead: Network = {\n chainId: 1,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"homestead\",\n _defaultProvider: ethDefaultProvider(\"homestead\")\n};\n\nconst ropsten: Network = {\n chainId: 3,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"ropsten\",\n _defaultProvider: ethDefaultProvider(\"ropsten\")\n};\n\nconst classicMordor: Network = {\n chainId: 63,\n name: \"classicMordor\",\n _defaultProvider: etcDefaultProvider(\"https://www.ethercluster.com/mordor\", \"classicMordor\")\n};\n\n// See: https://chainlist.org\nconst networks: { [name: string]: Network } = {\n unspecified: { chainId: 0, name: \"unspecified\" },\n\n homestead: homestead,\n mainnet: homestead,\n\n morden: { chainId: 2, name: \"morden\" },\n\n ropsten: ropsten,\n testnet: ropsten,\n\n rinkeby: {\n chainId: 4,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"rinkeby\",\n _defaultProvider: ethDefaultProvider(\"rinkeby\")\n },\n\n kovan: {\n chainId: 42,\n name: \"kovan\",\n _defaultProvider: ethDefaultProvider(\"kovan\")\n },\n\n goerli: {\n chainId: 5,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"goerli\",\n _defaultProvider: ethDefaultProvider(\"goerli\")\n },\n\n kintsugi: { chainId: 1337702, name: \"kintsugi\" },\n\n sepolia: {\n chainId: 11155111,\n name: \"sepolia\",\n _defaultProvider: ethDefaultProvider(\"sepolia\")\n },\n\n\n // ETC (See: #351)\n classic: {\n chainId: 61,\n name: \"classic\",\n _defaultProvider: etcDefaultProvider(\"https:/\\/www.ethercluster.com/etc\", \"classic\")\n },\n\n classicMorden: { chainId: 62, name: \"classicMorden\" },\n\n classicMordor: classicMordor,\n classicTestnet: classicMordor,\n\n classicKotti: {\n chainId: 6,\n name: \"classicKotti\",\n _defaultProvider: etcDefaultProvider(\"https:/\\/www.ethercluster.com/kotti\", \"classicKotti\")\n },\n\n xdai: { chainId: 100, name: \"xdai\" },\n\n matic: {\n chainId: 137,\n name: \"matic\",\n _defaultProvider: ethDefaultProvider(\"matic\")\n },\n maticmum: { chainId: 80001, name: \"maticmum\" },\n\n optimism: {\n chainId: 10,\n name: \"optimism\",\n _defaultProvider: ethDefaultProvider(\"optimism\")\n },\n \"optimism-kovan\": { chainId: 69, name: \"optimism-kovan\" },\n \"optimism-goerli\": { chainId: 420, name: \"optimism-goerli\" },\n\n arbitrum: { chainId: 42161, name: \"arbitrum\" },\n \"arbitrum-rinkeby\": { chainId: 421611, name: \"arbitrum-rinkeby\" },\n \"arbitrum-goerli\": { chainId: 421613, name: \"arbitrum-goerli\" },\n\n bnb: { chainId: 56, name: \"bnb\" },\n bnbt: { chainId: 97, name: \"bnbt\" },\n}\n\n/**\n * getNetwork\n *\n * Converts a named common networks or chain ID (network ID) to a Network\n * and verifies a network is a valid Network..\n */\nexport function getNetwork(network: Networkish): Network {\n // No network (null)\n if (network == null) { return null; }\n\n if (typeof(network) === \"number\") {\n for (const name in networks) {\n const standard = networks[name];\n if (standard.chainId === network) {\n return {\n name: standard.name,\n chainId: standard.chainId,\n ensAddress: (standard.ensAddress || null),\n _defaultProvider: (standard._defaultProvider || null)\n };\n }\n }\n\n return {\n chainId: network,\n name: \"unknown\"\n };\n }\n\n if (typeof(network) === \"string\") {\n const standard = networks[network];\n if (standard == null) { return null; }\n return {\n name: standard.name,\n chainId: standard.chainId,\n ensAddress: standard.ensAddress,\n _defaultProvider: (standard._defaultProvider || null)\n };\n }\n\n const standard = networks[network.name];\n\n // Not a standard network; check that it is a valid network in general\n if (!standard) {\n if (typeof(network.chainId) !== \"number\") {\n logger.throwArgumentError(\"invalid network chainId\", \"network\", network);\n }\n return network;\n }\n\n // Make sure the chainId matches the expected network chainId (or is 0; disable EIP-155)\n if (network.chainId !== 0 && network.chainId !== standard.chainId) {\n logger.throwArgumentError(\"network chainId mismatch\", \"network\", network);\n }\n\n // @TODO: In the next major version add an attach function to a defaultProvider\n // class and move the _defaultProvider internal to this file (extend Network)\n let defaultProvider: DefaultProviderFunc = network._defaultProvider || null;\n if (defaultProvider == null && standard._defaultProvider) {\n if (isRenetworkable(standard._defaultProvider)) {\n defaultProvider = standard._defaultProvider.renetwork(network);\n } else {\n defaultProvider = standard._defaultProvider;\n }\n }\n\n // Standard Network (allow overriding the ENS address)\n return {\n name: network.name,\n chainId: standard.chainId,\n ensAddress: (network.ensAddress || standard.ensAddress || null),\n _defaultProvider: defaultProvider\n };\n}\n","\"use strict\";\n\nimport { arrayify, BytesLike, hexlify } from \"@ethersproject/bytes\";\nimport { computeHmac, SupportedAlgorithm } from \"@ethersproject/sha2\";\n\nexport function pbkdf2(password: BytesLike, salt: BytesLike, iterations: number, keylen: number, hashAlgorithm: string): string {\n password = arrayify(password);\n salt = arrayify(salt);\n let hLen;\n let l = 1;\n const DK = new Uint8Array(keylen)\n const block1 = new Uint8Array(salt.length + 4)\n block1.set(salt);\n //salt.copy(block1, 0, 0, salt.length)\n\n let r: number;\n let T: Uint8Array;\n\n for (let i = 1; i <= l; i++) {\n //block1.writeUInt32BE(i, salt.length)\n block1[salt.length] = (i >> 24) & 0xff;\n block1[salt.length + 1] = (i >> 16) & 0xff;\n block1[salt.length + 2] = (i >> 8) & 0xff;\n block1[salt.length + 3] = i & 0xff;\n\n //let U = createHmac(password).update(block1).digest();\n let U = arrayify(computeHmac(hashAlgorithm, password, block1));\n\n if (!hLen) {\n hLen = U.length\n T = new Uint8Array(hLen)\n l = Math.ceil(keylen / hLen)\n r = keylen - (l - 1) * hLen\n }\n\n //U.copy(T, 0, 0, hLen)\n T.set(U);\n\n\n for (let j = 1; j < iterations; j++) {\n //U = createHmac(password).update(U).digest();\n U = arrayify(computeHmac(hashAlgorithm, password, U));\n for (let k = 0; k < hLen; k++) T[k] ^= U[k]\n }\n\n\n const destPos = (i - 1) * hLen\n const len = (i === l ? r : hLen)\n //T.copy(DK, destPos, 0, len)\n DK.set(arrayify(T).slice(0, len), destPos);\n }\n\n return hexlify(DK)\n}\n\n","\"use strict\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nexport function defineReadOnly(object: T, name: K, value: T[K]): void {\n Object.defineProperty(object, name, {\n enumerable: true,\n value: value,\n writable: false,\n });\n}\n\n// Crawl up the constructor chain to find a static method\nexport function getStatic(ctor: any, key: string): T {\n for (let i = 0; i < 32; i++) {\n if (ctor[key]) { return ctor[key]; }\n if (!ctor.prototype || typeof(ctor.prototype) !== \"object\") { break; }\n ctor = Object.getPrototypeOf(ctor.prototype).constructor;\n }\n return null;\n}\n\nexport type Deferrable = {\n [ K in keyof T ]: T[K] | Promise;\n}\n\n\ntype Result = { key: string, value: any};\n\nexport async function resolveProperties(object: Readonly>): Promise {\n const promises: Array> = Object.keys(object).map((key) => {\n const value = object[>key];\n return Promise.resolve(value).then((v) => ({ key: key, value: v }));\n });\n\n const results = await Promise.all(promises);\n\n return results.reduce((accum, result) => {\n accum[(result.key)] = result.value;\n return accum;\n }, { });\n}\n\nexport function checkProperties(object: any, properties: { [ name: string ]: boolean }): void {\n if (!object || typeof(object) !== \"object\") {\n logger.throwArgumentError(\"invalid object\", \"object\", object);\n }\n\n Object.keys(object).forEach((key) => {\n if (!properties[key]) {\n logger.throwArgumentError(\"invalid object key - \" + key, \"transaction:\" + key, object);\n }\n });\n}\n\nexport function shallowCopy(object: T): T {\n const result: any = {};\n for (const key in object) { result[key] = object[key]; }\n return result;\n}\n\nconst opaque: { [key: string]: boolean } = { bigint: true, boolean: true, \"function\": true, number: true, string: true };\n\nfunction _isFrozen(object: any): boolean {\n\n // Opaque objects are not mutable, so safe to copy by assignment\n if (object === undefined || object === null || opaque[typeof(object)]) { return true; }\n\n if (Array.isArray(object) || typeof(object) === \"object\") {\n if (!Object.isFrozen(object)) { return false; }\n\n const keys = Object.keys(object);\n for (let i = 0; i < keys.length; i++) {\n let value: any = null;\n try {\n value = object[keys[i]];\n } catch (error) {\n // If accessing a value triggers an error, it is a getter\n // designed to do so (e.g. Result) and is therefore \"frozen\"\n continue;\n }\n\n if (!_isFrozen(value)) { return false; }\n }\n\n return true;\n }\n\n return logger.throwArgumentError(`Cannot deepCopy ${ typeof(object) }`, \"object\", object);\n}\n\n// Returns a new copy of object, such that no properties may be replaced.\n// New properties may be added only to objects.\nfunction _deepCopy(object: any): any {\n\n if (_isFrozen(object)) { return object; }\n\n // Arrays are mutable, so we need to create a copy\n if (Array.isArray(object)) {\n return Object.freeze(object.map((item) => deepCopy(item)));\n }\n\n if (typeof(object) === \"object\") {\n const result: { [ key: string ]: any } = {};\n for (const key in object) {\n const value = object[key];\n if (value === undefined) { continue; }\n defineReadOnly(result, key, deepCopy(value));\n }\n\n return result;\n }\n\n return logger.throwArgumentError(`Cannot deepCopy ${ typeof(object) }`, \"object\", object);\n}\n\nexport function deepCopy(object: T): T {\n return _deepCopy(object);\n}\n\nexport class Description {\n constructor(info: { [ K in keyof T ]: T[K] }) {\n for (const key in info) {\n (this)[key] = deepCopy(info[key]);\n }\n }\n}\n","export const version = \"properties/5.7.0\";\n","export const version = \"providers/5.7.2\";\n","\"use strict\";\n\nimport {\n Block, BlockTag, BlockWithTransactions, EventType, Filter, FilterByBlockHash, ForkEvent,\n Listener, Log, Provider, TransactionReceipt, TransactionRequest, TransactionResponse\n} from \"@ethersproject/abstract-provider\";\nimport { encode as base64Encode } from \"@ethersproject/base64\";\nimport { Base58 } from \"@ethersproject/basex\";\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { arrayify, BytesLike, concat, hexConcat, hexDataLength, hexDataSlice, hexlify, hexValue, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { HashZero } from \"@ethersproject/constants\";\nimport { dnsEncode, namehash } from \"@ethersproject/hash\";\nimport { getNetwork, Network, Networkish } from \"@ethersproject/networks\";\nimport { Deferrable, defineReadOnly, getStatic, resolveProperties } from \"@ethersproject/properties\";\nimport { Transaction } from \"@ethersproject/transactions\";\nimport { sha256 } from \"@ethersproject/sha2\";\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\nimport { fetchJson, poll } from \"@ethersproject/web\";\n\nimport bech32 from \"bech32\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { Formatter } from \"./formatter\";\n\nconst MAX_CCIP_REDIRECTS = 10;\n\n//////////////////////////////\n// Event Serializeing\n\nfunction checkTopic(topic: string): string {\n if (topic == null) { return \"null\"; }\n if (hexDataLength(topic) !== 32) {\n logger.throwArgumentError(\"invalid topic\", \"topic\", topic);\n }\n return topic.toLowerCase();\n}\n\nfunction serializeTopics(topics: Array>): string {\n // Remove trailing null AND-topics; they are redundant\n topics = topics.slice();\n while (topics.length > 0 && topics[topics.length - 1] == null) { topics.pop(); }\n\n return topics.map((topic) => {\n if (Array.isArray(topic)) {\n\n // Only track unique OR-topics\n const unique: { [ topic: string ]: boolean } = { }\n topic.forEach((topic) => {\n unique[checkTopic(topic)] = true;\n });\n\n // The order of OR-topics does not matter\n const sorted = Object.keys(unique);\n sorted.sort();\n\n return sorted.join(\"|\");\n\n } else {\n return checkTopic(topic);\n }\n }).join(\"&\");\n}\n\nfunction deserializeTopics(data: string): Array> {\n if (data === \"\") { return [ ]; }\n\n return data.split(/&/g).map((topic) => {\n if (topic === \"\") { return [ ]; }\n\n const comps = topic.split(\"|\").map((topic) => {\n return ((topic === \"null\") ? null: topic);\n });\n\n return ((comps.length === 1) ? comps[0]: comps);\n });\n}\n\nfunction getEventTag(eventName: EventType): string {\n if (typeof(eventName) === \"string\") {\n eventName = eventName.toLowerCase();\n\n if (hexDataLength(eventName) === 32) {\n return \"tx:\" + eventName;\n }\n\n if (eventName.indexOf(\":\") === -1) {\n return eventName;\n }\n\n } else if (Array.isArray(eventName)) {\n return \"filter:*:\" + serializeTopics(eventName);\n\n } else if (ForkEvent.isForkEvent(eventName)) {\n logger.warn(\"not implemented\");\n throw new Error(\"not implemented\");\n\n } else if (eventName && typeof(eventName) === \"object\") {\n return \"filter:\" + (eventName.address || \"*\") + \":\" + serializeTopics(eventName.topics || []);\n }\n\n throw new Error(\"invalid event - \" + eventName);\n}\n\n//////////////////////////////\n// Helper Object\n\nfunction getTime() {\n return (new Date()).getTime();\n}\n\nfunction stall(duration: number): Promise {\n return new Promise((resolve) => {\n setTimeout(resolve, duration);\n });\n}\n\n//////////////////////////////\n// Provider Object\n\n\n/**\n * EventType\n * - \"block\"\n * - \"poll\"\n * - \"didPoll\"\n * - \"pending\"\n * - \"error\"\n * - \"network\"\n * - filter\n * - topics array\n * - transaction hash\n */\n\nconst PollableEvents = [ \"block\", \"network\", \"pending\", \"poll\" ];\n\nexport class Event {\n readonly listener: Listener;\n readonly once: boolean;\n readonly tag: string;\n\n _lastBlockNumber: number\n _inflight: boolean;\n\n constructor(tag: string, listener: Listener, once: boolean) {\n defineReadOnly(this, \"tag\", tag);\n defineReadOnly(this, \"listener\", listener);\n defineReadOnly(this, \"once\", once);\n\n this._lastBlockNumber = -2;\n this._inflight = false;\n }\n\n get event(): EventType {\n switch (this.type) {\n case \"tx\":\n return this.hash;\n case \"filter\":\n return this.filter;\n }\n return this.tag;\n }\n\n get type(): string {\n return this.tag.split(\":\")[0]\n }\n\n get hash(): string {\n const comps = this.tag.split(\":\");\n if (comps[0] !== \"tx\") { return null; }\n return comps[1];\n }\n\n get filter(): Filter {\n const comps = this.tag.split(\":\");\n if (comps[0] !== \"filter\") { return null; }\n const address = comps[1];\n\n const topics = deserializeTopics(comps[2]);\n const filter: Filter = { };\n\n if (topics.length > 0) { filter.topics = topics; }\n if (address && address !== \"*\") { filter.address = address; }\n\n return filter;\n }\n\n pollable(): boolean {\n return (this.tag.indexOf(\":\") >= 0 || PollableEvents.indexOf(this.tag) >= 0);\n }\n}\n\nexport interface EnsResolver {\n\n // Name this Resolver is associated with\n readonly name: string;\n\n // The address of the resolver\n readonly address: string;\n\n // Multichain address resolution (also normal address resolution)\n // See: https://eips.ethereum.org/EIPS/eip-2304\n getAddress(coinType?: 60): Promise\n\n // Contenthash field\n // See: https://eips.ethereum.org/EIPS/eip-1577\n getContentHash(): Promise;\n\n // Storage of text records\n // See: https://eips.ethereum.org/EIPS/eip-634\n getText(key: string): Promise;\n};\n\nexport interface EnsProvider {\n resolveName(name: string): Promise;\n lookupAddress(address: string): Promise;\n getResolver(name: string): Promise;\n}\n\ntype CoinInfo = {\n symbol: string,\n ilk?: string, // General family\n prefix?: string, // Bech32 prefix\n p2pkh?: number, // Pay-to-Public-Key-Hash Version\n p2sh?: number, // Pay-to-Script-Hash Version\n};\n\n// https://github.com/satoshilabs/slips/blob/master/slip-0044.md\nconst coinInfos: { [ coinType: string ]: CoinInfo } = {\n \"0\": { symbol: \"btc\", p2pkh: 0x00, p2sh: 0x05, prefix: \"bc\" },\n \"2\": { symbol: \"ltc\", p2pkh: 0x30, p2sh: 0x32, prefix: \"ltc\" },\n \"3\": { symbol: \"doge\", p2pkh: 0x1e, p2sh: 0x16 },\n \"60\": { symbol: \"eth\", ilk: \"eth\" },\n \"61\": { symbol: \"etc\", ilk: \"eth\" },\n \"700\": { symbol: \"xdai\", ilk: \"eth\" },\n};\n\nfunction bytes32ify(value: number): string {\n return hexZeroPad(BigNumber.from(value).toHexString(), 32);\n}\n\n// Compute the Base58Check encoded data (checksum is first 4 bytes of sha256d)\nfunction base58Encode(data: Uint8Array): string {\n return Base58.encode(concat([ data, hexDataSlice(sha256(sha256(data)), 0, 4) ]));\n}\n\nexport interface Avatar {\n url: string;\n linkage: Array<{ type: string, content: string }>;\n}\n\nconst matcherIpfs = new RegExp(\"^(ipfs):/\\/(.*)$\", \"i\");\nconst matchers = [\n new RegExp(\"^(https):/\\/(.*)$\", \"i\"),\n new RegExp(\"^(data):(.*)$\", \"i\"),\n matcherIpfs,\n new RegExp(\"^eip155:[0-9]+/(erc[0-9]+):(.*)$\", \"i\"),\n];\n\nfunction _parseString(result: string, start: number): null | string {\n try {\n return toUtf8String(_parseBytes(result, start));\n } catch(error) { }\n return null;\n}\n\nfunction _parseBytes(result: string, start: number): null | string {\n if (result === \"0x\") { return null; }\n\n const offset = BigNumber.from(hexDataSlice(result, start, start + 32)).toNumber();\n const length = BigNumber.from(hexDataSlice(result, offset, offset + 32)).toNumber();\n\n return hexDataSlice(result, offset + 32, offset + 32 + length);\n}\n\n// Trim off the ipfs:// prefix and return the default gateway URL\nfunction getIpfsLink(link: string): string {\n if (link.match(/^ipfs:\\/\\/ipfs\\//i)) {\n link = link.substring(12);\n } else if (link.match(/^ipfs:\\/\\//i)) {\n link = link.substring(7);\n } else {\n logger.throwArgumentError(\"unsupported IPFS format\", \"link\", link);\n }\n\n return `https:/\\/gateway.ipfs.io/ipfs/${ link }`;\n}\n\nfunction numPad(value: number): Uint8Array {\n const result = arrayify(value);\n if (result.length > 32) { throw new Error(\"internal; should not happen\"); }\n\n const padded = new Uint8Array(32);\n padded.set(result, 32 - result.length);\n return padded;\n}\n\nfunction bytesPad(value: Uint8Array): Uint8Array {\n if ((value.length % 32) === 0) { return value; }\n\n const result = new Uint8Array(Math.ceil(value.length / 32) * 32);\n result.set(value);\n return result;\n}\n\n// ABI Encodes a series of (bytes, bytes, ...)\nfunction encodeBytes(datas: Array) {\n const result: Array = [ ];\n\n let byteCount = 0;\n\n // Add place-holders for pointers as we add items\n for (let i = 0; i < datas.length; i++) {\n result.push(null);\n byteCount += 32;\n }\n\n for (let i = 0; i < datas.length; i++) {\n const data = arrayify(datas[i]);\n\n // Update the bytes offset\n result[i] = numPad(byteCount);\n\n // The length and padded value of data\n result.push(numPad(data.length));\n result.push(bytesPad(data));\n byteCount += 32 + Math.ceil(data.length / 32) * 32;\n }\n\n return hexConcat(result);\n}\n\nexport class Resolver implements EnsResolver {\n readonly provider: BaseProvider;\n\n readonly name: string;\n readonly address: string;\n\n readonly _resolvedAddress: null | string;\n\n // For EIP-2544 names, the ancestor that provided the resolver\n _supportsEip2544: null | Promise;\n\n // The resolvedAddress is only for creating a ReverseLookup resolver\n constructor(provider: BaseProvider, address: string, name: string, resolvedAddress?: string) {\n defineReadOnly(this, \"provider\", provider);\n defineReadOnly(this, \"name\", name);\n defineReadOnly(this, \"address\", provider.formatter.address(address));\n defineReadOnly(this, \"_resolvedAddress\", resolvedAddress);\n }\n\n supportsWildcard(): Promise {\n if (!this._supportsEip2544) {\n // supportsInterface(bytes4 = selector(\"resolve(bytes,bytes)\"))\n this._supportsEip2544 = this.provider.call({\n to: this.address,\n data: \"0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000\"\n }).then((result) => {\n return BigNumber.from(result).eq(1);\n }).catch((error) => {\n if (error.code === Logger.errors.CALL_EXCEPTION) { return false; }\n // Rethrow the error: link is down, etc. Let future attempts retry.\n this._supportsEip2544 = null;\n throw error;\n });\n }\n\n return this._supportsEip2544;\n }\n\n async _fetch(selector: string, parameters?: string): Promise {\n\n // e.g. keccak256(\"addr(bytes32,uint256)\")\n const tx = {\n to: this.address,\n ccipReadEnabled: true,\n data: hexConcat([ selector, namehash(this.name), (parameters || \"0x\") ])\n };\n\n // Wildcard support; use EIP-2544 to resolve the request\n let parseBytes = false;\n if (await this.supportsWildcard()) {\n parseBytes = true;\n\n // selector(\"resolve(bytes,bytes)\")\n tx.data = hexConcat([ \"0x9061b923\", encodeBytes([ dnsEncode(this.name), tx.data ]) ]);\n }\n\n try {\n let result = await this.provider.call(tx);\n if ((arrayify(result).length % 32) === 4) {\n logger.throwError(\"resolver threw error\", Logger.errors.CALL_EXCEPTION, {\n transaction: tx, data: result\n });\n }\n if (parseBytes) { result = _parseBytes(result, 0); }\n return result;\n } catch (error) {\n if (error.code === Logger.errors.CALL_EXCEPTION) { return null; }\n throw error;\n }\n }\n\n async _fetchBytes(selector: string, parameters?: string): Promise {\n const result = await this._fetch(selector, parameters);\n if (result != null) { return _parseBytes(result, 0); }\n return null;\n }\n\n _getAddress(coinType: number, hexBytes: string): string {\n const coinInfo = coinInfos[String(coinType)];\n\n if (coinInfo == null) {\n logger.throwError(`unsupported coin type: ${ coinType }`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: `getAddress(${ coinType })`\n });\n }\n\n if (coinInfo.ilk === \"eth\") {\n return this.provider.formatter.address(hexBytes);\n }\n\n const bytes = arrayify(hexBytes);\n\n // P2PKH: OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG\n if (coinInfo.p2pkh != null) {\n const p2pkh = hexBytes.match(/^0x76a9([0-9a-f][0-9a-f])([0-9a-f]*)88ac$/);\n if (p2pkh) {\n const length = parseInt(p2pkh[1], 16);\n if (p2pkh[2].length === length * 2 && length >= 1 && length <= 75) {\n return base58Encode(concat([ [ coinInfo.p2pkh ], (\"0x\" + p2pkh[2]) ]));\n }\n }\n }\n\n // P2SH: OP_HASH160 OP_EQUAL\n if (coinInfo.p2sh != null) {\n const p2sh = hexBytes.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/);\n if (p2sh) {\n const length = parseInt(p2sh[1], 16);\n if (p2sh[2].length === length * 2 && length >= 1 && length <= 75) {\n return base58Encode(concat([ [ coinInfo.p2sh ], (\"0x\" + p2sh[2]) ]));\n }\n }\n }\n\n // Bech32\n if (coinInfo.prefix != null) {\n const length = bytes[1];\n\n // https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki#witness-program\n let version = bytes[0];\n if (version === 0x00) {\n if (length !== 20 && length !== 32) {\n version = -1;\n }\n } else {\n version = -1;\n }\n\n if (version >= 0 && bytes.length === 2 + length && length >= 1 && length <= 75) {\n const words = bech32.toWords(bytes.slice(2));\n words.unshift(version);\n return bech32.encode(coinInfo.prefix, words);\n }\n }\n\n return null;\n }\n\n\n async getAddress(coinType?: number): Promise {\n if (coinType == null) { coinType = 60; }\n\n // If Ethereum, use the standard `addr(bytes32)`\n if (coinType === 60) {\n try {\n // keccak256(\"addr(bytes32)\")\n const result = await this._fetch(\"0x3b3b57de\");\n\n // No address\n if (result === \"0x\" || result === HashZero) { return null; }\n\n return this.provider.formatter.callAddress(result);\n } catch (error) {\n if (error.code === Logger.errors.CALL_EXCEPTION) { return null; }\n throw error;\n }\n }\n\n // keccak256(\"addr(bytes32,uint256\")\n const hexBytes = await this._fetchBytes(\"0xf1cb7e06\", bytes32ify(coinType));\n\n // No address\n if (hexBytes == null || hexBytes === \"0x\") { return null; }\n\n // Compute the address\n const address = this._getAddress(coinType, hexBytes);\n\n if (address == null) {\n logger.throwError(`invalid or unsupported coin data`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: `getAddress(${ coinType })`,\n coinType: coinType,\n data: hexBytes\n });\n }\n\n return address;\n }\n\n async getAvatar(): Promise {\n const linkage: Array<{ type: string, content: string }> = [ { type: \"name\", content: this.name } ];\n try {\n // test data for ricmoo.eth\n //const avatar = \"eip155:1/erc721:0x265385c7f4132228A0d54EB1A9e7460b91c0cC68/29233\";\n const avatar = await this.getText(\"avatar\");\n if (avatar == null) { return null; }\n\n for (let i = 0; i < matchers.length; i++) {\n const match = avatar.match(matchers[i]);\n if (match == null) { continue; }\n\n const scheme = match[1].toLowerCase();\n\n switch (scheme) {\n case \"https\":\n linkage.push({ type: \"url\", content: avatar });\n return { linkage, url: avatar };\n\n case \"data\":\n linkage.push({ type: \"data\", content: avatar });\n return { linkage, url: avatar };\n\n case \"ipfs\":\n linkage.push({ type: \"ipfs\", content: avatar });\n return { linkage, url: getIpfsLink(avatar) };\n\n case \"erc721\":\n case \"erc1155\": {\n // Depending on the ERC type, use tokenURI(uint256) or url(uint256)\n const selector = (scheme === \"erc721\") ? \"0xc87b56dd\": \"0x0e89341c\";\n linkage.push({ type: scheme, content: avatar });\n\n // The owner of this name\n const owner = (this._resolvedAddress || await this.getAddress());\n\n const comps = (match[2] || \"\").split(\"/\");\n if (comps.length !== 2) { return null; }\n\n const addr = await this.provider.formatter.address(comps[0]);\n const tokenId = hexZeroPad(BigNumber.from(comps[1]).toHexString(), 32);\n\n // Check that this account owns the token\n if (scheme === \"erc721\") {\n // ownerOf(uint256 tokenId)\n const tokenOwner = this.provider.formatter.callAddress(await this.provider.call({\n to: addr, data: hexConcat([ \"0x6352211e\", tokenId ])\n }));\n if (owner !== tokenOwner) { return null; }\n linkage.push({ type: \"owner\", content: tokenOwner });\n\n } else if (scheme === \"erc1155\") {\n // balanceOf(address owner, uint256 tokenId)\n const balance = BigNumber.from(await this.provider.call({\n to: addr, data: hexConcat([ \"0x00fdd58e\", hexZeroPad(owner, 32), tokenId ])\n }));\n if (balance.isZero()) { return null; }\n linkage.push({ type: \"balance\", content: balance.toString() });\n }\n\n // Call the token contract for the metadata URL\n const tx = {\n to: this.provider.formatter.address(comps[0]),\n data: hexConcat([ selector, tokenId ])\n };\n\n let metadataUrl = _parseString(await this.provider.call(tx), 0);\n if (metadataUrl == null) { return null; }\n linkage.push({ type: \"metadata-url-base\", content: metadataUrl });\n\n // ERC-1155 allows a generic {id} in the URL\n if (scheme === \"erc1155\") {\n metadataUrl = metadataUrl.replace(\"{id}\", tokenId.substring(2));\n linkage.push({ type: \"metadata-url-expanded\", content: metadataUrl });\n }\n\n // Transform IPFS metadata links\n if (metadataUrl.match(/^ipfs:/i)) {\n metadataUrl = getIpfsLink(metadataUrl);\n }\n\n linkage.push({ type: \"metadata-url\", content: metadataUrl });\n\n // Get the token metadata\n const metadata = await fetchJson(metadataUrl);\n if (!metadata) { return null; }\n linkage.push({ type: \"metadata\", content: JSON.stringify(metadata) });\n\n // Pull the image URL out\n let imageUrl = metadata.image;\n if (typeof(imageUrl) !== \"string\") { return null; }\n\n if (imageUrl.match(/^(https:\\/\\/|data:)/i)) {\n // Allow\n } else {\n // Transform IPFS link to gateway\n const ipfs = imageUrl.match(matcherIpfs);\n if (ipfs == null) { return null; }\n\n linkage.push({ type: \"url-ipfs\", content: imageUrl });\n imageUrl = getIpfsLink(imageUrl);\n }\n\n linkage.push({ type: \"url\", content: imageUrl });\n\n return { linkage, url: imageUrl };\n }\n }\n }\n } catch (error) { }\n\n return null;\n }\n\n async getContentHash(): Promise {\n\n // keccak256(\"contenthash()\")\n const hexBytes = await this._fetchBytes(\"0xbc1c58d1\");\n\n // No contenthash\n if (hexBytes == null || hexBytes === \"0x\") { return null; }\n\n // IPFS (CID: 1, Type: DAG-PB)\n const ipfs = hexBytes.match(/^0xe3010170(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);\n if (ipfs) {\n const length = parseInt(ipfs[3], 16);\n if (ipfs[4].length === length * 2) {\n return \"ipfs:/\\/\" + Base58.encode(\"0x\" + ipfs[1]);\n }\n }\n\n // IPNS (CID: 1, Type: libp2p-key)\n const ipns = hexBytes.match(/^0xe5010172(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);\n if (ipns) {\n const length = parseInt(ipns[3], 16);\n if (ipns[4].length === length * 2) {\n return \"ipns:/\\/\" + Base58.encode(\"0x\" + ipns[1]);\n }\n }\n\n // Swarm (CID: 1, Type: swarm-manifest; hash/length hard-coded to keccak256/32)\n const swarm = hexBytes.match(/^0xe40101fa011b20([0-9a-f]*)$/)\n if (swarm) {\n if (swarm[1].length === (32 * 2)) {\n return \"bzz:/\\/\" + swarm[1]\n }\n }\n\n const skynet = hexBytes.match(/^0x90b2c605([0-9a-f]*)$/);\n if (skynet) {\n if (skynet[1].length === (34 * 2)) {\n // URL Safe base64; https://datatracker.ietf.org/doc/html/rfc4648#section-5\n const urlSafe: Record = { \"=\": \"\", \"+\": \"-\", \"/\": \"_\" };\n const hash = base64Encode(\"0x\" + skynet[1]).replace(/[=+\\/]/g, (a) => (urlSafe[a]));\n return \"sia:/\\/\" + hash;\n }\n }\n\n return logger.throwError(`invalid or unsupported content hash data`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"getContentHash()\",\n data: hexBytes\n });\n }\n\n async getText(key: string): Promise {\n\n // The key encoded as parameter to fetchBytes\n let keyBytes = toUtf8Bytes(key);\n\n // The nodehash consumes the first slot, so the string pointer targets\n // offset 64, with the length at offset 64 and data starting at offset 96\n keyBytes = concat([ bytes32ify(64), bytes32ify(keyBytes.length), keyBytes ]);\n\n // Pad to word-size (32 bytes)\n if ((keyBytes.length % 32) !== 0) {\n keyBytes = concat([ keyBytes, hexZeroPad(\"0x\", 32 - (key.length % 32)) ])\n }\n\n const hexBytes = await this._fetchBytes(\"0x59d1d43c\", hexlify(keyBytes));\n if (hexBytes == null || hexBytes === \"0x\") { return null; }\n\n return toUtf8String(hexBytes);\n }\n}\n\nlet defaultFormatter: Formatter = null;\n\nlet nextPollId = 1;\n\nexport class BaseProvider extends Provider implements EnsProvider {\n _networkPromise: Promise;\n _network: Network;\n\n _events: Array;\n\n formatter: Formatter;\n\n // To help mitigate the eventually consistent nature of the blockchain\n // we keep a mapping of events we emit. If we emit an event X, we expect\n // that a user should be able to query for that event in the callback,\n // if the node returns null, we stall the response until we get back a\n // meaningful value, since we may be hitting a re-org, or a node that\n // has not indexed the event yet.\n // Events:\n // - t:{hash} - Transaction hash\n // - b:{hash} - BlockHash\n // - block - The most recent emitted block\n _emitted: { [ eventName: string ]: number | \"pending\" };\n\n _pollingInterval: number;\n _poller: NodeJS.Timer;\n _bootstrapPoll: NodeJS.Timer;\n\n _lastBlockNumber: number;\n _maxFilterBlockRange: number;\n\n _fastBlockNumber: number;\n _fastBlockNumberPromise: Promise;\n _fastQueryDate: number;\n\n _maxInternalBlockNumber: number;\n _internalBlockNumber: Promise<{ blockNumber: number, reqTime: number, respTime: number }>;\n\n readonly anyNetwork: boolean;\n\n disableCcipRead: boolean;\n\n\n /**\n * ready\n *\n * A Promise that resolves only once the provider is ready.\n *\n * Sub-classes that call the super with a network without a chainId\n * MUST set this. Standard named networks have a known chainId.\n *\n */\n\n constructor(network: Networkish | Promise) {\n super();\n\n // Events being listened to\n this._events = [];\n\n this._emitted = { block: -2 };\n\n this.disableCcipRead = false;\n\n this.formatter = new.target.getFormatter();\n\n // If network is any, this Provider allows the underlying\n // network to change dynamically, and we auto-detect the\n // current network\n defineReadOnly(this, \"anyNetwork\", (network === \"any\"));\n if (this.anyNetwork) { network = this.detectNetwork(); }\n\n if (network instanceof Promise) {\n this._networkPromise = network;\n\n // Squash any \"unhandled promise\" errors; that do not need to be handled\n network.catch((error) => { });\n\n // Trigger initial network setting (async)\n this._ready().catch((error) => { });\n\n } else {\n const knownNetwork = getStatic<(network: Networkish) => Network>(new.target, \"getNetwork\")(network);\n if (knownNetwork) {\n defineReadOnly(this, \"_network\", knownNetwork);\n this.emit(\"network\", knownNetwork, null);\n\n } else {\n logger.throwArgumentError(\"invalid network\", \"network\", network);\n }\n }\n\n this._maxInternalBlockNumber = -1024;\n\n this._lastBlockNumber = -2;\n this._maxFilterBlockRange = 10;\n\n this._pollingInterval = 4000;\n\n this._fastQueryDate = 0;\n }\n\n async _ready(): Promise {\n if (this._network == null) {\n let network: Network = null;\n if (this._networkPromise) {\n try {\n network = await this._networkPromise;\n } catch (error) { }\n }\n\n // Try the Provider's network detection (this MUST throw if it cannot)\n if (network == null) {\n network = await this.detectNetwork();\n }\n\n // This should never happen; every Provider sub-class should have\n // suggested a network by here (or have thrown).\n if (!network) {\n logger.throwError(\"no network detected\", Logger.errors.UNKNOWN_ERROR, { });\n }\n\n // Possible this call stacked so do not call defineReadOnly again\n if (this._network == null) {\n if (this.anyNetwork) {\n this._network = network;\n } else {\n defineReadOnly(this, \"_network\", network);\n }\n this.emit(\"network\", network, null);\n }\n }\n\n return this._network;\n }\n\n // This will always return the most recently established network.\n // For \"any\", this can change (a \"network\" event is emitted before\n // any change is reflected); otherwise this cannot change\n get ready(): Promise {\n return poll(() => {\n return this._ready().then((network) => {\n return network;\n }, (error) => {\n // If the network isn't running yet, we will wait\n if (error.code === Logger.errors.NETWORK_ERROR && error.event === \"noNetwork\") {\n return undefined;\n }\n throw error;\n });\n });\n }\n\n // @TODO: Remove this and just create a singleton formatter\n static getFormatter(): Formatter {\n if (defaultFormatter == null) {\n defaultFormatter = new Formatter();\n }\n return defaultFormatter;\n }\n\n // @TODO: Remove this and just use getNetwork\n static getNetwork(network: Networkish): Network {\n return getNetwork((network == null) ? \"homestead\": network);\n }\n\n async ccipReadFetch(tx: Transaction, calldata: string, urls: Array): Promise {\n if (this.disableCcipRead || urls.length === 0) { return null; }\n\n const sender = tx.to.toLowerCase();\n const data = calldata.toLowerCase();\n\n const errorMessages: Array = [ ];\n\n for (let i = 0; i < urls.length; i++) {\n const url = urls[i];\n\n // URL expansion\n const href = url.replace(\"{sender}\", sender).replace(\"{data}\", data);\n\n // If no {data} is present, use POST; otherwise GET\n const json: string | null = (url.indexOf(\"{data}\") >= 0) ? null: JSON.stringify({ data, sender });\n\n const result = await fetchJson({ url: href, errorPassThrough: true }, json, (value, response) => {\n value.status = response.statusCode;\n return value;\n });\n\n if (result.data) { return result.data; }\n\n const errorMessage = (result.message || \"unknown error\");\n\n // 4xx indicates the result is not present; stop\n if (result.status >= 400 && result.status < 500) {\n return logger.throwError(`response not found during CCIP fetch: ${ errorMessage }`, Logger.errors.SERVER_ERROR, { url, errorMessage });\n }\n\n // 5xx indicates server issue; try the next url\n errorMessages.push(errorMessage);\n }\n\n return logger.throwError(`error encountered during CCIP fetch: ${ errorMessages.map((m) => JSON.stringify(m)).join(\", \") }`, Logger.errors.SERVER_ERROR, {\n urls, errorMessages\n });\n }\n\n // Fetches the blockNumber, but will reuse any result that is less\n // than maxAge old or has been requested since the last request\n async _getInternalBlockNumber(maxAge: number): Promise {\n await this._ready();\n\n // Allowing stale data up to maxAge old\n if (maxAge > 0) {\n\n // While there are pending internal block requests...\n while (this._internalBlockNumber) {\n\n // ...\"remember\" which fetch we started with\n const internalBlockNumber = this._internalBlockNumber;\n\n try {\n // Check the result is not too stale\n const result = await internalBlockNumber;\n if ((getTime() - result.respTime) <= maxAge) {\n return result.blockNumber;\n }\n\n // Too old; fetch a new value\n break;\n\n } catch(error) {\n\n // The fetch rejected; if we are the first to get the\n // rejection, drop through so we replace it with a new\n // fetch; all others blocked will then get that fetch\n // which won't match the one they \"remembered\" and loop\n if (this._internalBlockNumber === internalBlockNumber) {\n break;\n }\n }\n }\n }\n\n const reqTime = getTime();\n\n const checkInternalBlockNumber = resolveProperties({\n blockNumber: this.perform(\"getBlockNumber\", { }),\n networkError: this.getNetwork().then((network) => (null), (error) => (error))\n }).then(({ blockNumber, networkError }) => {\n if (networkError) {\n // Unremember this bad internal block number\n if (this._internalBlockNumber === checkInternalBlockNumber) {\n this._internalBlockNumber = null;\n }\n throw networkError;\n }\n\n const respTime = getTime();\n\n blockNumber = BigNumber.from(blockNumber).toNumber();\n if (blockNumber < this._maxInternalBlockNumber) { blockNumber = this._maxInternalBlockNumber; }\n\n this._maxInternalBlockNumber = blockNumber;\n this._setFastBlockNumber(blockNumber); // @TODO: Still need this?\n return { blockNumber, reqTime, respTime };\n });\n\n this._internalBlockNumber = checkInternalBlockNumber;\n\n // Swallow unhandled exceptions; if needed they are handled else where\n checkInternalBlockNumber.catch((error) => {\n // Don't null the dead (rejected) fetch, if it has already been updated\n if (this._internalBlockNumber === checkInternalBlockNumber) {\n this._internalBlockNumber = null;\n }\n });\n\n return (await checkInternalBlockNumber).blockNumber;\n }\n\n async poll(): Promise {\n const pollId = nextPollId++;\n\n // Track all running promises, so we can trigger a post-poll once they are complete\n const runners: Array> = [];\n\n let blockNumber: number = null;\n try {\n blockNumber = await this._getInternalBlockNumber(100 + this.pollingInterval / 2);\n } catch (error) {\n this.emit(\"error\", error);\n return;\n }\n this._setFastBlockNumber(blockNumber);\n\n // Emit a poll event after we have the latest (fast) block number\n this.emit(\"poll\", pollId, blockNumber);\n\n // If the block has not changed, meh.\n if (blockNumber === this._lastBlockNumber) {\n this.emit(\"didPoll\", pollId);\n return;\n }\n\n // First polling cycle, trigger a \"block\" events\n if (this._emitted.block === -2) {\n this._emitted.block = blockNumber - 1;\n }\n\n if (Math.abs(((this._emitted.block)) - blockNumber) > 1000) {\n logger.warn(`network block skew detected; skipping block events (emitted=${ this._emitted.block } blockNumber${ blockNumber })`);\n this.emit(\"error\", logger.makeError(\"network block skew detected\", Logger.errors.NETWORK_ERROR, {\n blockNumber: blockNumber,\n event: \"blockSkew\",\n previousBlockNumber: this._emitted.block\n }));\n this.emit(\"block\", blockNumber);\n\n } else {\n // Notify all listener for each block that has passed\n for (let i = (this._emitted.block) + 1; i <= blockNumber; i++) {\n this.emit(\"block\", i);\n }\n }\n\n // The emitted block was updated, check for obsolete events\n if ((this._emitted.block) !== blockNumber) {\n this._emitted.block = blockNumber;\n\n Object.keys(this._emitted).forEach((key) => {\n // The block event does not expire\n if (key === \"block\") { return; }\n\n // The block we were at when we emitted this event\n const eventBlockNumber = this._emitted[key];\n\n // We cannot garbage collect pending transactions or blocks here\n // They should be garbage collected by the Provider when setting\n // \"pending\" events\n if (eventBlockNumber === \"pending\") { return; }\n\n // Evict any transaction hashes or block hashes over 12 blocks\n // old, since they should not return null anyways\n if (blockNumber - eventBlockNumber > 12) {\n delete this._emitted[key];\n }\n });\n }\n\n // First polling cycle\n if (this._lastBlockNumber === -2) {\n this._lastBlockNumber = blockNumber - 1;\n }\n // Find all transaction hashes we are waiting on\n this._events.forEach((event) => {\n switch (event.type) {\n case \"tx\": {\n const hash = event.hash;\n let runner = this.getTransactionReceipt(hash).then((receipt) => {\n if (!receipt || receipt.blockNumber == null) { return null; }\n this._emitted[\"t:\" + hash] = receipt.blockNumber;\n this.emit(hash, receipt);\n return null;\n }).catch((error: Error) => { this.emit(\"error\", error); });\n\n runners.push(runner);\n\n break;\n }\n\n case \"filter\": {\n // We only allow a single getLogs to be in-flight at a time\n if (!event._inflight) {\n event._inflight = true;\n\n // This is the first filter for this event, so we want to\n // restrict events to events that happened no earlier than now\n if (event._lastBlockNumber === -2) {\n event._lastBlockNumber = blockNumber - 1;\n }\n\n // Filter from the last *known* event; due to load-balancing\n // and some nodes returning updated block numbers before\n // indexing events, a logs result with 0 entries cannot be\n // trusted and we must retry a range which includes it again\n const filter = event.filter;\n filter.fromBlock = event._lastBlockNumber + 1;\n filter.toBlock = blockNumber;\n\n // Prevent fitler ranges from growing too wild, since it is quite\n // likely there just haven't been any events to move the lastBlockNumber.\n const minFromBlock = filter.toBlock - this._maxFilterBlockRange;\n if (minFromBlock > filter.fromBlock) { filter.fromBlock = minFromBlock; }\n\n if (filter.fromBlock < 0) { filter.fromBlock = 0; }\n\n const runner = this.getLogs(filter).then((logs) => {\n // Allow the next getLogs\n event._inflight = false;\n\n if (logs.length === 0) { return; }\n\n logs.forEach((log: Log) => {\n // Only when we get an event for a given block number\n // can we trust the events are indexed\n if (log.blockNumber > event._lastBlockNumber) {\n event._lastBlockNumber = log.blockNumber;\n }\n\n // Make sure we stall requests to fetch blocks and txs\n this._emitted[\"b:\" + log.blockHash] = log.blockNumber;\n this._emitted[\"t:\" + log.transactionHash] = log.blockNumber;\n\n this.emit(filter, log);\n });\n }).catch((error: Error) => {\n this.emit(\"error\", error);\n\n // Allow another getLogs (the range was not updated)\n event._inflight = false;\n });\n runners.push(runner);\n }\n\n break;\n }\n }\n });\n\n this._lastBlockNumber = blockNumber;\n\n // Once all events for this loop have been processed, emit \"didPoll\"\n Promise.all(runners).then(() => {\n this.emit(\"didPoll\", pollId);\n }).catch((error) => { this.emit(\"error\", error); });\n\n return;\n }\n\n // Deprecated; do not use this\n resetEventsBlock(blockNumber: number): void {\n this._lastBlockNumber = blockNumber - 1;\n if (this.polling) { this.poll(); }\n }\n\n get network(): Network {\n return this._network;\n }\n\n // This method should query the network if the underlying network\n // can change, such as when connected to a JSON-RPC backend\n async detectNetwork(): Promise {\n return logger.throwError(\"provider does not support network detection\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"provider.detectNetwork\"\n });\n }\n\n async getNetwork(): Promise {\n const network = await this._ready();\n\n // Make sure we are still connected to the same network; this is\n // only an external call for backends which can have the underlying\n // network change spontaneously\n const currentNetwork = await this.detectNetwork();\n if (network.chainId !== currentNetwork.chainId) {\n\n // We are allowing network changes, things can get complex fast;\n // make sure you know what you are doing if you use \"any\"\n if (this.anyNetwork) {\n this._network = currentNetwork;\n\n // Reset all internal block number guards and caches\n this._lastBlockNumber = -2;\n this._fastBlockNumber = null;\n this._fastBlockNumberPromise = null;\n this._fastQueryDate = 0;\n this._emitted.block = -2;\n this._maxInternalBlockNumber = -1024;\n this._internalBlockNumber = null;\n\n // The \"network\" event MUST happen before this method resolves\n // so any events have a chance to unregister, so we stall an\n // additional event loop before returning from /this/ call\n this.emit(\"network\", currentNetwork, network);\n await stall(0);\n\n return this._network;\n }\n\n const error = logger.makeError(\"underlying network changed\", Logger.errors.NETWORK_ERROR, {\n event: \"changed\",\n network: network,\n detectedNetwork: currentNetwork\n });\n\n this.emit(\"error\", error);\n throw error;\n }\n\n return network;\n }\n\n get blockNumber(): number {\n this._getInternalBlockNumber(100 + this.pollingInterval / 2).then((blockNumber) => {\n this._setFastBlockNumber(blockNumber);\n }, (error) => { });\n\n return (this._fastBlockNumber != null) ? this._fastBlockNumber: -1;\n }\n\n get polling(): boolean {\n return (this._poller != null);\n }\n\n set polling(value: boolean) {\n if (value && !this._poller) {\n this._poller = setInterval(() => { this.poll(); }, this.pollingInterval);\n\n if (!this._bootstrapPoll) {\n this._bootstrapPoll = setTimeout(() => {\n this.poll();\n\n // We block additional polls until the polling interval\n // is done, to prevent overwhelming the poll function\n this._bootstrapPoll = setTimeout(() => {\n // If polling was disabled, something may require a poke\n // since starting the bootstrap poll and it was disabled\n if (!this._poller) { this.poll(); }\n\n // Clear out the bootstrap so we can do another\n this._bootstrapPoll = null;\n }, this.pollingInterval);\n }, 0);\n }\n\n } else if (!value && this._poller) {\n clearInterval(this._poller);\n this._poller = null;\n }\n }\n\n get pollingInterval(): number {\n return this._pollingInterval;\n }\n\n set pollingInterval(value: number) {\n if (typeof(value) !== \"number\" || value <= 0 || parseInt(String(value)) != value) {\n throw new Error(\"invalid polling interval\");\n }\n\n this._pollingInterval = value;\n\n if (this._poller) {\n clearInterval(this._poller);\n this._poller = setInterval(() => { this.poll(); }, this._pollingInterval);\n }\n }\n\n _getFastBlockNumber(): Promise {\n const now = getTime();\n\n // Stale block number, request a newer value\n if ((now - this._fastQueryDate) > 2 * this._pollingInterval) {\n this._fastQueryDate = now;\n this._fastBlockNumberPromise = this.getBlockNumber().then((blockNumber) => {\n if (this._fastBlockNumber == null || blockNumber > this._fastBlockNumber) {\n this._fastBlockNumber = blockNumber;\n }\n return this._fastBlockNumber;\n });\n }\n\n return this._fastBlockNumberPromise;\n }\n\n _setFastBlockNumber(blockNumber: number): void {\n // Older block, maybe a stale request\n if (this._fastBlockNumber != null && blockNumber < this._fastBlockNumber) { return; }\n\n // Update the time we updated the blocknumber\n this._fastQueryDate = getTime();\n\n // Newer block number, use it\n if (this._fastBlockNumber == null || blockNumber > this._fastBlockNumber) {\n this._fastBlockNumber = blockNumber;\n this._fastBlockNumberPromise = Promise.resolve(blockNumber);\n }\n }\n\n async waitForTransaction(transactionHash: string, confirmations?: number, timeout?: number): Promise {\n return this._waitForTransaction(transactionHash, (confirmations == null) ? 1: confirmations, timeout || 0, null);\n }\n\n async _waitForTransaction(transactionHash: string, confirmations: number, timeout: number, replaceable: { data: string, from: string, nonce: number, to: string, value: BigNumber, startBlock: number }): Promise {\n const receipt = await this.getTransactionReceipt(transactionHash);\n\n // Receipt is already good\n if ((receipt ? receipt.confirmations: 0) >= confirmations) { return receipt; }\n\n // Poll until the receipt is good...\n return new Promise((resolve, reject) => {\n const cancelFuncs: Array<() => void> = [];\n\n let done = false;\n const alreadyDone = function() {\n if (done) { return true; }\n done = true;\n cancelFuncs.forEach((func) => { func(); });\n return false;\n };\n\n const minedHandler = (receipt: TransactionReceipt) => {\n if (receipt.confirmations < confirmations) { return; }\n if (alreadyDone()) { return; }\n resolve(receipt);\n }\n this.on(transactionHash, minedHandler);\n cancelFuncs.push(() => { this.removeListener(transactionHash, minedHandler); });\n\n if (replaceable) {\n let lastBlockNumber = replaceable.startBlock;\n let scannedBlock: number = null;\n const replaceHandler = async (blockNumber: number) => {\n if (done) { return; }\n\n // Wait 1 second; this is only used in the case of a fault, so\n // we will trade off a little bit of latency for more consistent\n // results and fewer JSON-RPC calls\n await stall(1000);\n\n this.getTransactionCount(replaceable.from).then(async (nonce) => {\n if (done) { return; }\n\n if (nonce <= replaceable.nonce) {\n lastBlockNumber = blockNumber;\n\n } else {\n // First check if the transaction was mined\n {\n const mined = await this.getTransaction(transactionHash);\n if (mined && mined.blockNumber != null) { return; }\n }\n\n // First time scanning. We start a little earlier for some\n // wiggle room here to handle the eventually consistent nature\n // of blockchain (e.g. the getTransactionCount was for a\n // different block)\n if (scannedBlock == null) {\n scannedBlock = lastBlockNumber - 3;\n if (scannedBlock < replaceable.startBlock) {\n scannedBlock = replaceable.startBlock;\n }\n }\n\n while (scannedBlock <= blockNumber) {\n if (done) { return; }\n\n const block = await this.getBlockWithTransactions(scannedBlock);\n for (let ti = 0; ti < block.transactions.length; ti++) {\n const tx = block.transactions[ti];\n\n // Successfully mined!\n if (tx.hash === transactionHash) { return; }\n\n // Matches our transaction from and nonce; its a replacement\n if (tx.from === replaceable.from && tx.nonce === replaceable.nonce) {\n if (done) { return; }\n\n // Get the receipt of the replacement\n const receipt = await this.waitForTransaction(tx.hash, confirmations);\n\n // Already resolved or rejected (prolly a timeout)\n if (alreadyDone()) { return; }\n\n // The reason we were replaced\n let reason = \"replaced\";\n if (tx.data === replaceable.data && tx.to === replaceable.to && tx.value.eq(replaceable.value)) {\n reason = \"repriced\";\n } else if (tx.data === \"0x\" && tx.from === tx.to && tx.value.isZero()) {\n reason = \"cancelled\"\n }\n\n // Explain why we were replaced\n reject(logger.makeError(\"transaction was replaced\", Logger.errors.TRANSACTION_REPLACED, {\n cancelled: (reason === \"replaced\" || reason === \"cancelled\"),\n reason,\n replacement: this._wrapTransaction(tx),\n hash: transactionHash,\n receipt\n }));\n\n return;\n }\n }\n scannedBlock++;\n }\n }\n\n if (done) { return; }\n this.once(\"block\", replaceHandler);\n\n }, (error) => {\n if (done) { return; }\n this.once(\"block\", replaceHandler);\n });\n };\n\n if (done) { return; }\n this.once(\"block\", replaceHandler);\n\n cancelFuncs.push(() => {\n this.removeListener(\"block\", replaceHandler);\n });\n }\n\n if (typeof(timeout) === \"number\" && timeout > 0) {\n const timer = setTimeout(() => {\n if (alreadyDone()) { return; }\n reject(logger.makeError(\"timeout exceeded\", Logger.errors.TIMEOUT, { timeout: timeout }));\n }, timeout);\n if (timer.unref) { timer.unref(); }\n\n cancelFuncs.push(() => { clearTimeout(timer); });\n }\n });\n }\n\n async getBlockNumber(): Promise {\n return this._getInternalBlockNumber(0);\n }\n\n async getGasPrice(): Promise {\n await this.getNetwork();\n\n const result = await this.perform(\"getGasPrice\", { });\n try {\n return BigNumber.from(result);\n } catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getGasPrice\",\n result, error\n });\n }\n }\n\n async getBalance(addressOrName: string | Promise, blockTag?: BlockTag | Promise): Promise {\n await this.getNetwork();\n const params = await resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag)\n });\n\n const result = await this.perform(\"getBalance\", params);\n try {\n return BigNumber.from(result);\n } catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getBalance\",\n params, result, error\n });\n }\n }\n\n async getTransactionCount(addressOrName: string | Promise, blockTag?: BlockTag | Promise): Promise {\n await this.getNetwork();\n const params = await resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag)\n });\n\n const result = await this.perform(\"getTransactionCount\", params);\n try {\n return BigNumber.from(result).toNumber();\n } catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getTransactionCount\",\n params, result, error\n });\n }\n }\n\n async getCode(addressOrName: string | Promise, blockTag?: BlockTag | Promise): Promise {\n await this.getNetwork();\n const params = await resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag)\n });\n\n const result = await this.perform(\"getCode\", params);\n try {\n return hexlify(result);\n } catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getCode\",\n params, result, error\n });\n }\n }\n\n async getStorageAt(addressOrName: string | Promise, position: BigNumberish | Promise, blockTag?: BlockTag | Promise): Promise {\n await this.getNetwork();\n const params = await resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag),\n position: Promise.resolve(position).then((p) => hexValue(p))\n });\n const result = await this.perform(\"getStorageAt\", params);\n try {\n return hexlify(result);\n } catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getStorageAt\",\n params, result, error\n });\n }\n }\n\n // This should be called by any subclass wrapping a TransactionResponse\n _wrapTransaction(tx: Transaction, hash?: string, startBlock?: number): TransactionResponse {\n if (hash != null && hexDataLength(hash) !== 32) { throw new Error(\"invalid response - sendTransaction\"); }\n\n const result = tx;\n\n // Check the hash we expect is the same as the hash the server reported\n if (hash != null && tx.hash !== hash) {\n logger.throwError(\"Transaction hash mismatch from Provider.sendTransaction.\", Logger.errors.UNKNOWN_ERROR, { expectedHash: tx.hash, returnedHash: hash });\n }\n\n result.wait = async (confirms?: number, timeout?: number) => {\n if (confirms == null) { confirms = 1; }\n if (timeout == null) { timeout = 0; }\n\n // Get the details to detect replacement\n let replacement = undefined;\n if (confirms !== 0 && startBlock != null) {\n replacement = {\n data: tx.data,\n from: tx.from,\n nonce: tx.nonce,\n to: tx.to,\n value: tx.value,\n startBlock\n };\n }\n\n const receipt = await this._waitForTransaction(tx.hash, confirms, timeout, replacement);\n if (receipt == null && confirms === 0) { return null; }\n\n // No longer pending, allow the polling loop to garbage collect this\n this._emitted[\"t:\" + tx.hash] = receipt.blockNumber;\n\n if (receipt.status === 0) {\n logger.throwError(\"transaction failed\", Logger.errors.CALL_EXCEPTION, {\n transactionHash: tx.hash,\n transaction: tx,\n receipt: receipt\n });\n }\n return receipt;\n };\n\n return result;\n }\n\n async sendTransaction(signedTransaction: string | Promise): Promise {\n await this.getNetwork();\n const hexTx = await Promise.resolve(signedTransaction).then(t => hexlify(t));\n const tx = this.formatter.transaction(signedTransaction);\n if (tx.confirmations == null) { tx.confirmations = 0; }\n const blockNumber = await this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n try {\n const hash = await this.perform(\"sendTransaction\", { signedTransaction: hexTx });\n return this._wrapTransaction(tx, hash, blockNumber);\n } catch (error) {\n (error).transaction = tx;\n (error).transactionHash = tx.hash;\n throw error;\n }\n }\n\n async _getTransactionRequest(transaction: Deferrable): Promise {\n const values: any = await transaction;\n\n const tx: any = { };\n\n [\"from\", \"to\"].forEach((key) => {\n if (values[key] == null) { return; }\n tx[key] = Promise.resolve(values[key]).then((v) => (v ? this._getAddress(v): null))\n });\n\n [\"gasLimit\", \"gasPrice\", \"maxFeePerGas\", \"maxPriorityFeePerGas\", \"value\"].forEach((key) => {\n if (values[key] == null) { return; }\n tx[key] = Promise.resolve(values[key]).then((v) => (v ? BigNumber.from(v): null));\n });\n\n [\"type\"].forEach((key) => {\n if (values[key] == null) { return; }\n tx[key] = Promise.resolve(values[key]).then((v) => ((v != null) ? v: null));\n });\n\n if (values.accessList) {\n tx.accessList = this.formatter.accessList(values.accessList);\n }\n\n [\"data\"].forEach((key) => {\n if (values[key] == null) { return; }\n tx[key] = Promise.resolve(values[key]).then((v) => (v ? hexlify(v): null));\n });\n\n return this.formatter.transactionRequest(await resolveProperties(tx));\n }\n\n async _getFilter(filter: Filter | FilterByBlockHash | Promise): Promise {\n filter = await filter;\n\n const result: any = { };\n\n if (filter.address != null) {\n result.address = this._getAddress(filter.address);\n }\n\n [\"blockHash\", \"topics\"].forEach((key) => {\n if ((filter)[key] == null) { return; }\n result[key] = (filter)[key];\n });\n\n [\"fromBlock\", \"toBlock\"].forEach((key) => {\n if ((filter)[key] == null) { return; }\n result[key] = this._getBlockTag((filter)[key]);\n });\n\n return this.formatter.filter(await resolveProperties(result));\n }\n\n async _call(transaction: TransactionRequest, blockTag: BlockTag, attempt: number): Promise {\n if (attempt >= MAX_CCIP_REDIRECTS) {\n logger.throwError(\"CCIP read exceeded maximum redirections\", Logger.errors.SERVER_ERROR, {\n redirects: attempt, transaction\n });\n }\n\n const txSender = transaction.to;\n\n const result = await this.perform(\"call\", { transaction, blockTag });\n\n // CCIP Read request via OffchainLookup(address,string[],bytes,bytes4,bytes)\n if (attempt >= 0 && blockTag === \"latest\" && txSender != null && result.substring(0, 10) === \"0x556f1830\" && (hexDataLength(result) % 32 === 4)) {\n try {\n const data = hexDataSlice(result, 4);\n\n // Check the sender of the OffchainLookup matches the transaction\n const sender = hexDataSlice(data, 0, 32);\n if (!BigNumber.from(sender).eq(txSender)) {\n logger.throwError(\"CCIP Read sender did not match\", Logger.errors.CALL_EXCEPTION, {\n name: \"OffchainLookup\",\n signature: \"OffchainLookup(address,string[],bytes,bytes4,bytes)\",\n transaction, data: result\n });\n }\n\n // Read the URLs from the response\n const urls: Array = [];\n const urlsOffset = BigNumber.from(hexDataSlice(data, 32, 64)).toNumber();\n const urlsLength = BigNumber.from(hexDataSlice(data, urlsOffset, urlsOffset + 32)).toNumber();\n const urlsData = hexDataSlice(data, urlsOffset + 32);\n for (let u = 0; u < urlsLength; u++) {\n const url = _parseString(urlsData, u * 32);\n if (url == null) {\n logger.throwError(\"CCIP Read contained corrupt URL string\", Logger.errors.CALL_EXCEPTION, {\n name: \"OffchainLookup\",\n signature: \"OffchainLookup(address,string[],bytes,bytes4,bytes)\",\n transaction, data: result\n });\n }\n urls.push(url);\n }\n\n // Get the CCIP calldata to forward\n const calldata = _parseBytes(data, 64);\n\n // Get the callbackSelector (bytes4)\n if (!BigNumber.from(hexDataSlice(data, 100, 128)).isZero()) {\n logger.throwError(\"CCIP Read callback selector included junk\", Logger.errors.CALL_EXCEPTION, {\n name: \"OffchainLookup\",\n signature: \"OffchainLookup(address,string[],bytes,bytes4,bytes)\",\n transaction, data: result\n });\n }\n const callbackSelector = hexDataSlice(data, 96, 100);\n\n // Get the extra data to send back to the contract as context\n const extraData = _parseBytes(data, 128);\n\n const ccipResult = await this.ccipReadFetch(transaction, calldata, urls);\n if (ccipResult == null) {\n logger.throwError(\"CCIP Read disabled or provided no URLs\", Logger.errors.CALL_EXCEPTION, {\n name: \"OffchainLookup\",\n signature: \"OffchainLookup(address,string[],bytes,bytes4,bytes)\",\n transaction, data: result\n });\n }\n\n const tx = {\n to: txSender,\n data: hexConcat([ callbackSelector, encodeBytes([ ccipResult, extraData ]) ])\n };\n\n return this._call(tx, blockTag, attempt + 1);\n\n } catch (error) {\n if (error.code === Logger.errors.SERVER_ERROR) { throw error; }\n }\n }\n\n try {\n return hexlify(result);\n } catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"call\",\n params: { transaction, blockTag }, result, error\n });\n }\n\n }\n\n async call(transaction: Deferrable, blockTag?: BlockTag | Promise): Promise {\n await this.getNetwork();\n const resolved = await resolveProperties({\n transaction: this._getTransactionRequest(transaction),\n blockTag: this._getBlockTag(blockTag),\n ccipReadEnabled: Promise.resolve(transaction.ccipReadEnabled)\n });\n return this._call(resolved.transaction, resolved.blockTag, resolved.ccipReadEnabled ? 0: -1);\n }\n\n async estimateGas(transaction: Deferrable): Promise {\n await this.getNetwork();\n const params = await resolveProperties({\n transaction: this._getTransactionRequest(transaction)\n });\n\n const result = await this.perform(\"estimateGas\", params);\n try {\n return BigNumber.from(result);\n } catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"estimateGas\",\n params, result, error\n });\n }\n }\n\n async _getAddress(addressOrName: string | Promise): Promise {\n addressOrName = await addressOrName;\n if (typeof(addressOrName) !== \"string\") {\n logger.throwArgumentError(\"invalid address or ENS name\", \"name\", addressOrName);\n }\n\n const address = await this.resolveName(addressOrName);\n if (address == null) {\n logger.throwError(\"ENS name not configured\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: `resolveName(${ JSON.stringify(addressOrName) })`\n });\n }\n return address;\n }\n\n async _getBlock(blockHashOrBlockTag: BlockTag | string | Promise, includeTransactions?: boolean): Promise {\n await this.getNetwork();\n\n blockHashOrBlockTag = await blockHashOrBlockTag;\n\n // If blockTag is a number (not \"latest\", etc), this is the block number\n let blockNumber = -128;\n\n const params: { [key: string]: any } = {\n includeTransactions: !!includeTransactions\n };\n\n if (isHexString(blockHashOrBlockTag, 32)) {\n params.blockHash = blockHashOrBlockTag;\n } else {\n try {\n params.blockTag = await this._getBlockTag(blockHashOrBlockTag);\n if (isHexString(params.blockTag)) {\n blockNumber = parseInt(params.blockTag.substring(2), 16);\n }\n } catch (error) {\n logger.throwArgumentError(\"invalid block hash or block tag\", \"blockHashOrBlockTag\", blockHashOrBlockTag);\n }\n }\n\n return poll(async () => {\n const block = await this.perform(\"getBlock\", params);\n\n // Block was not found\n if (block == null) {\n\n // For blockhashes, if we didn't say it existed, that blockhash may\n // not exist. If we did see it though, perhaps from a log, we know\n // it exists, and this node is just not caught up yet.\n if (params.blockHash != null) {\n if (this._emitted[\"b:\" + params.blockHash] == null) { return null; }\n }\n\n // For block tags, if we are asking for a future block, we return null\n if (params.blockTag != null) {\n if (blockNumber > this._emitted.block) { return null; }\n }\n\n // Retry on the next block\n return undefined;\n }\n\n // Add transactions\n if (includeTransactions) {\n let blockNumber: number = null;\n for (let i = 0; i < block.transactions.length; i++) {\n const tx = block.transactions[i];\n if (tx.blockNumber == null) {\n tx.confirmations = 0;\n\n } else if (tx.confirmations == null) {\n if (blockNumber == null) {\n blockNumber = await this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n }\n\n // Add the confirmations using the fast block number (pessimistic)\n let confirmations = (blockNumber - tx.blockNumber) + 1;\n if (confirmations <= 0) { confirmations = 1; }\n tx.confirmations = confirmations;\n }\n }\n\n const blockWithTxs: any = this.formatter.blockWithTransactions(block);\n blockWithTxs.transactions = blockWithTxs.transactions.map((tx: TransactionResponse) => this._wrapTransaction(tx));\n return blockWithTxs;\n }\n\n return this.formatter.block(block);\n\n }, { oncePoll: this });\n }\n\n getBlock(blockHashOrBlockTag: BlockTag | string | Promise): Promise {\n return >(this._getBlock(blockHashOrBlockTag, false));\n }\n\n getBlockWithTransactions(blockHashOrBlockTag: BlockTag | string | Promise): Promise {\n return >(this._getBlock(blockHashOrBlockTag, true));\n }\n\n async getTransaction(transactionHash: string | Promise): Promise {\n await this.getNetwork();\n transactionHash = await transactionHash;\n\n const params = { transactionHash: this.formatter.hash(transactionHash, true) };\n\n return poll(async () => {\n const result = await this.perform(\"getTransaction\", params);\n\n if (result == null) {\n if (this._emitted[\"t:\" + transactionHash] == null) {\n return null;\n }\n return undefined;\n }\n\n const tx = this.formatter.transactionResponse(result);\n\n if (tx.blockNumber == null) {\n tx.confirmations = 0;\n\n } else if (tx.confirmations == null) {\n const blockNumber = await this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n\n // Add the confirmations using the fast block number (pessimistic)\n let confirmations = (blockNumber - tx.blockNumber) + 1;\n if (confirmations <= 0) { confirmations = 1; }\n tx.confirmations = confirmations;\n }\n\n return this._wrapTransaction(tx);\n }, { oncePoll: this });\n }\n\n async getTransactionReceipt(transactionHash: string | Promise): Promise {\n await this.getNetwork();\n\n transactionHash = await transactionHash;\n\n const params = { transactionHash: this.formatter.hash(transactionHash, true) };\n\n return poll(async () => {\n const result = await this.perform(\"getTransactionReceipt\", params);\n\n if (result == null) {\n if (this._emitted[\"t:\" + transactionHash] == null) {\n return null;\n }\n return undefined;\n }\n\n // \"geth-etc\" returns receipts before they are ready\n if (result.blockHash == null) { return undefined; }\n\n const receipt = this.formatter.receipt(result);\n\n if (receipt.blockNumber == null) {\n receipt.confirmations = 0;\n\n } else if (receipt.confirmations == null) {\n const blockNumber = await this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n\n // Add the confirmations using the fast block number (pessimistic)\n let confirmations = (blockNumber - receipt.blockNumber) + 1;\n if (confirmations <= 0) { confirmations = 1; }\n receipt.confirmations = confirmations;\n }\n\n return receipt;\n }, { oncePoll: this });\n }\n\n async getLogs(filter: Filter | FilterByBlockHash | Promise): Promise> {\n await this.getNetwork();\n const params = await resolveProperties({ filter: this._getFilter(filter) });\n const logs: Array = await this.perform(\"getLogs\", params);\n logs.forEach((log) => {\n if (log.removed == null) { log.removed = false; }\n });\n return Formatter.arrayOf(this.formatter.filterLog.bind(this.formatter))(logs);\n }\n\n async getEtherPrice(): Promise {\n await this.getNetwork();\n return this.perform(\"getEtherPrice\", { });\n }\n\n async _getBlockTag(blockTag: BlockTag | Promise): Promise {\n blockTag = await blockTag;\n\n if (typeof(blockTag) === \"number\" && blockTag < 0) {\n if (blockTag % 1) {\n logger.throwArgumentError(\"invalid BlockTag\", \"blockTag\", blockTag);\n }\n\n let blockNumber = await this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n blockNumber += blockTag;\n if (blockNumber < 0) { blockNumber = 0; }\n return this.formatter.blockTag(blockNumber)\n }\n\n return this.formatter.blockTag(blockTag);\n }\n\n\n async getResolver(name: string): Promise {\n let currentName = name;\n while (true) {\n if (currentName === \"\" || currentName === \".\") { return null; }\n\n // Optimization since the eth node cannot change and does\n // not have a wildcard resolver\n if (name !== \"eth\" && currentName === \"eth\") { return null; }\n\n // Check the current node for a resolver\n const addr = await this._getResolver(currentName, \"getResolver\");\n\n // Found a resolver!\n if (addr != null) {\n const resolver = new Resolver(this, addr, name);\n\n // Legacy resolver found, using EIP-2544 so it isn't safe to use\n if (currentName !== name && !(await resolver.supportsWildcard())) { return null; }\n\n return resolver;\n }\n\n // Get the parent node\n currentName = currentName.split(\".\").slice(1).join(\".\");\n }\n\n }\n\n async _getResolver(name: string, operation?: string): Promise {\n if (operation == null) { operation = \"ENS\"; }\n\n const network = await this.getNetwork();\n\n // No ENS...\n if (!network.ensAddress) {\n logger.throwError(\n \"network does not support ENS\",\n Logger.errors.UNSUPPORTED_OPERATION,\n { operation, network: network.name }\n );\n }\n\n try {\n // keccak256(\"resolver(bytes32)\")\n const addrData = await this.call({\n to: network.ensAddress,\n data: (\"0x0178b8bf\" + namehash(name).substring(2))\n });\n return this.formatter.callAddress(addrData);\n } catch (error) {\n // ENS registry cannot throw errors on resolver(bytes32)\n }\n\n return null;\n }\n\n async resolveName(name: string | Promise): Promise {\n name = await name;\n\n // If it is already an address, nothing to resolve\n try {\n return Promise.resolve(this.formatter.address(name));\n } catch (error) {\n // If is is a hexstring, the address is bad (See #694)\n if (isHexString(name)) { throw error; }\n }\n\n if (typeof(name) !== \"string\") {\n logger.throwArgumentError(\"invalid ENS name\", \"name\", name);\n }\n\n // Get the addr from the resolver\n const resolver = await this.getResolver(name);\n if (!resolver) { return null; }\n\n return await resolver.getAddress();\n }\n\n async lookupAddress(address: string | Promise): Promise {\n address = await address;\n address = this.formatter.address(address);\n\n const node = address.substring(2).toLowerCase() + \".addr.reverse\";\n\n const resolverAddr = await this._getResolver(node, \"lookupAddress\");\n if (resolverAddr == null) { return null; }\n\n // keccak(\"name(bytes32)\")\n const name = _parseString(await this.call({\n to: resolverAddr,\n data: (\"0x691f3431\" + namehash(node).substring(2))\n }), 0);\n\n const addr = await this.resolveName(name);\n if (addr != address) { return null; }\n\n return name;\n }\n\n async getAvatar(nameOrAddress: string): Promise {\n let resolver: Resolver = null;\n if (isHexString(nameOrAddress)) {\n // Address; reverse lookup\n const address = this.formatter.address(nameOrAddress);\n\n const node = address.substring(2).toLowerCase() + \".addr.reverse\";\n\n const resolverAddress = await this._getResolver(node, \"getAvatar\");\n if (!resolverAddress) { return null; }\n\n // Try resolving the avatar against the addr.reverse resolver\n resolver = new Resolver(this, resolverAddress, node);\n try {\n const avatar = await resolver.getAvatar();\n if (avatar) { return avatar.url; }\n } catch (error) {\n if (error.code !== Logger.errors.CALL_EXCEPTION) { throw error; }\n }\n\n // Try getting the name and performing forward lookup; allowing wildcards\n try {\n // keccak(\"name(bytes32)\")\n const name = _parseString(await this.call({\n to: resolverAddress,\n data: (\"0x691f3431\" + namehash(node).substring(2))\n }), 0);\n resolver = await this.getResolver(name);\n } catch (error) {\n if (error.code !== Logger.errors.CALL_EXCEPTION) { throw error; }\n return null;\n }\n\n } else {\n // ENS name; forward lookup with wildcard\n resolver = await this.getResolver(nameOrAddress);\n if (!resolver) { return null; }\n }\n\n const avatar = await resolver.getAvatar();\n if (avatar == null) { return null; }\n\n return avatar.url;\n }\n\n perform(method: string, params: any): Promise {\n return logger.throwError(method + \" not implemented\", Logger.errors.NOT_IMPLEMENTED, { operation: method });\n }\n\n _startEvent(event: Event): void {\n this.polling = (this._events.filter((e) => e.pollable()).length > 0);\n }\n\n _stopEvent(event: Event): void {\n this.polling = (this._events.filter((e) => e.pollable()).length > 0);\n }\n\n _addEventListener(eventName: EventType, listener: Listener, once: boolean): this {\n const event = new Event(getEventTag(eventName), listener, once)\n this._events.push(event);\n this._startEvent(event);\n\n return this;\n }\n\n on(eventName: EventType, listener: Listener): this {\n return this._addEventListener(eventName, listener, false);\n }\n\n once(eventName: EventType, listener: Listener): this {\n return this._addEventListener(eventName, listener, true);\n }\n\n\n emit(eventName: EventType, ...args: Array): boolean {\n let result = false;\n\n let stopped: Array = [ ];\n\n let eventTag = getEventTag(eventName);\n this._events = this._events.filter((event) => {\n if (event.tag !== eventTag) { return true; }\n\n setTimeout(() => {\n event.listener.apply(this, args);\n }, 0);\n\n result = true;\n\n if (event.once) {\n stopped.push(event);\n return false;\n }\n\n return true;\n });\n\n stopped.forEach((event) => { this._stopEvent(event); });\n\n return result;\n }\n\n listenerCount(eventName?: EventType): number {\n if (!eventName) { return this._events.length; }\n\n let eventTag = getEventTag(eventName);\n return this._events.filter((event) => {\n return (event.tag === eventTag);\n }).length;\n }\n\n listeners(eventName?: EventType): Array {\n if (eventName == null) {\n return this._events.map((event) => event.listener);\n }\n\n let eventTag = getEventTag(eventName);\n return this._events\n .filter((event) => (event.tag === eventTag))\n .map((event) => event.listener);\n }\n\n off(eventName: EventType, listener?: Listener): this {\n if (listener == null) {\n return this.removeAllListeners(eventName);\n }\n\n const stopped: Array = [ ];\n\n let found = false;\n\n let eventTag = getEventTag(eventName);\n this._events = this._events.filter((event) => {\n if (event.tag !== eventTag || event.listener != listener) { return true; }\n if (found) { return true; }\n found = true;\n stopped.push(event);\n return false;\n });\n\n stopped.forEach((event) => { this._stopEvent(event); });\n\n return this;\n }\n\n removeAllListeners(eventName?: EventType): this {\n let stopped: Array = [ ];\n if (eventName == null) {\n stopped = this._events;\n\n this._events = [ ];\n } else {\n const eventTag = getEventTag(eventName);\n this._events = this._events.filter((event) => {\n if (event.tag !== eventTag) { return true; }\n stopped.push(event);\n return false;\n });\n }\n\n stopped.forEach((event) => { this._stopEvent(event); });\n\n return this;\n }\n}\n","\"use strict\";\n\nimport { Block, TransactionReceipt, TransactionResponse } from \"@ethersproject/abstract-provider\";\nimport { getAddress, getContractAddress } from \"@ethersproject/address\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { hexDataLength, hexDataSlice, hexValue, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { AddressZero } from \"@ethersproject/constants\";\nimport { shallowCopy } from \"@ethersproject/properties\";\nimport { AccessList, accessListify, parse as parseTransaction } from \"@ethersproject/transactions\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nexport type FormatFunc = (value: any) => any;\n\nexport type FormatFuncs = { [ key: string ]: FormatFunc };\n\nexport type Formats = {\n transaction: FormatFuncs,\n transactionRequest: FormatFuncs,\n receipt: FormatFuncs,\n receiptLog: FormatFuncs,\n block: FormatFuncs,\n blockWithTransactions: FormatFuncs,\n filter: FormatFuncs,\n filterLog: FormatFuncs,\n};\n\nexport class Formatter {\n readonly formats: Formats;\n\n constructor() {\n this.formats = this.getDefaultFormats();\n }\n\n getDefaultFormats(): Formats {\n const formats: Formats = ({ });\n\n const address = this.address.bind(this);\n const bigNumber = this.bigNumber.bind(this);\n const blockTag = this.blockTag.bind(this);\n const data = this.data.bind(this);\n const hash = this.hash.bind(this);\n const hex = this.hex.bind(this);\n const number = this.number.bind(this);\n const type = this.type.bind(this);\n\n const strictData = (v: any) => { return this.data(v, true); };\n\n formats.transaction = {\n hash: hash,\n\n type: type,\n accessList: Formatter.allowNull(this.accessList.bind(this), null),\n\n blockHash: Formatter.allowNull(hash, null),\n blockNumber: Formatter.allowNull(number, null),\n transactionIndex: Formatter.allowNull(number, null),\n\n confirmations: Formatter.allowNull(number, null),\n\n from: address,\n\n // either (gasPrice) or (maxPriorityFeePerGas + maxFeePerGas)\n // must be set\n gasPrice: Formatter.allowNull(bigNumber),\n maxPriorityFeePerGas: Formatter.allowNull(bigNumber),\n maxFeePerGas: Formatter.allowNull(bigNumber),\n\n gasLimit: bigNumber,\n to: Formatter.allowNull(address, null),\n value: bigNumber,\n nonce: number,\n data: data,\n\n r: Formatter.allowNull(this.uint256),\n s: Formatter.allowNull(this.uint256),\n v: Formatter.allowNull(number),\n\n creates: Formatter.allowNull(address, null),\n\n raw: Formatter.allowNull(data),\n };\n\n formats.transactionRequest = {\n from: Formatter.allowNull(address),\n nonce: Formatter.allowNull(number),\n gasLimit: Formatter.allowNull(bigNumber),\n gasPrice: Formatter.allowNull(bigNumber),\n maxPriorityFeePerGas: Formatter.allowNull(bigNumber),\n maxFeePerGas: Formatter.allowNull(bigNumber),\n to: Formatter.allowNull(address),\n value: Formatter.allowNull(bigNumber),\n data: Formatter.allowNull(strictData),\n type: Formatter.allowNull(number),\n accessList: Formatter.allowNull(this.accessList.bind(this), null),\n };\n\n formats.receiptLog = {\n transactionIndex: number,\n blockNumber: number,\n transactionHash: hash,\n address: address,\n topics: Formatter.arrayOf(hash),\n data: data,\n logIndex: number,\n blockHash: hash,\n };\n\n formats.receipt = {\n to: Formatter.allowNull(this.address, null),\n from: Formatter.allowNull(this.address, null),\n contractAddress: Formatter.allowNull(address, null),\n transactionIndex: number,\n // should be allowNull(hash), but broken-EIP-658 support is handled in receipt\n root: Formatter.allowNull(hex),\n gasUsed: bigNumber,\n logsBloom: Formatter.allowNull(data),// @TODO: should this be data?\n blockHash: hash,\n transactionHash: hash,\n logs: Formatter.arrayOf(this.receiptLog.bind(this)),\n blockNumber: number,\n confirmations: Formatter.allowNull(number, null),\n cumulativeGasUsed: bigNumber,\n effectiveGasPrice: Formatter.allowNull(bigNumber),\n status: Formatter.allowNull(number),\n type: type\n };\n\n formats.block = {\n hash: Formatter.allowNull(hash),\n parentHash: hash,\n number: number,\n\n timestamp: number,\n nonce: Formatter.allowNull(hex),\n difficulty: this.difficulty.bind(this),\n\n gasLimit: bigNumber,\n gasUsed: bigNumber,\n\n miner: Formatter.allowNull(address),\n extraData: data,\n\n transactions: Formatter.allowNull(Formatter.arrayOf(hash)),\n\n baseFeePerGas: Formatter.allowNull(bigNumber)\n };\n\n formats.blockWithTransactions = shallowCopy(formats.block);\n formats.blockWithTransactions.transactions = Formatter.allowNull(Formatter.arrayOf(this.transactionResponse.bind(this)));\n\n formats.filter = {\n fromBlock: Formatter.allowNull(blockTag, undefined),\n toBlock: Formatter.allowNull(blockTag, undefined),\n blockHash: Formatter.allowNull(hash, undefined),\n address: Formatter.allowNull(address, undefined),\n topics: Formatter.allowNull(this.topics.bind(this), undefined),\n };\n\n formats.filterLog = {\n blockNumber: Formatter.allowNull(number),\n blockHash: Formatter.allowNull(hash),\n transactionIndex: number,\n\n removed: Formatter.allowNull(this.boolean.bind(this)),\n\n address: address,\n data: Formatter.allowFalsish(data, \"0x\"),\n\n topics: Formatter.arrayOf(hash),\n\n transactionHash: hash,\n logIndex: number,\n };\n\n return formats;\n }\n\n accessList(accessList: Array): AccessList {\n return accessListify(accessList || []);\n }\n\n // Requires a BigNumberish that is within the IEEE754 safe integer range; returns a number\n // Strict! Used on input.\n number(number: any): number {\n if (number === \"0x\") { return 0; }\n return BigNumber.from(number).toNumber();\n }\n\n type(number: any): number {\n if (number === \"0x\" || number == null) { return 0; }\n return BigNumber.from(number).toNumber();\n }\n\n // Strict! Used on input.\n bigNumber(value: any): BigNumber {\n return BigNumber.from(value);\n }\n\n // Requires a boolean, \"true\" or \"false\"; returns a boolean\n boolean(value: any): boolean {\n if (typeof(value) === \"boolean\") { return value; }\n if (typeof(value) === \"string\") {\n value = value.toLowerCase();\n if (value === \"true\") { return true; }\n if (value === \"false\") { return false; }\n }\n throw new Error(\"invalid boolean - \" + value);\n }\n\n hex(value: any, strict?: boolean): string {\n if (typeof(value) === \"string\") {\n if (!strict && value.substring(0, 2) !== \"0x\") { value = \"0x\" + value; }\n if (isHexString(value)) {\n return value.toLowerCase();\n }\n }\n return logger.throwArgumentError(\"invalid hash\", \"value\", value);\n }\n\n data(value: any, strict?: boolean): string {\n const result = this.hex(value, strict);\n if ((result.length % 2) !== 0) {\n throw new Error(\"invalid data; odd-length - \" + value);\n }\n return result;\n }\n\n // Requires an address\n // Strict! Used on input.\n address(value: any): string {\n return getAddress(value);\n }\n\n callAddress(value: any): string {\n if (!isHexString(value, 32)) { return null; }\n const address = getAddress(hexDataSlice(value, 12));\n return (address === AddressZero) ? null: address;\n }\n\n contractAddress(value: any): string {\n return getContractAddress(value);\n }\n\n // Strict! Used on input.\n blockTag(blockTag: any): string {\n if (blockTag == null) { return \"latest\"; }\n\n if (blockTag === \"earliest\") { return \"0x0\"; }\n\n switch (blockTag) {\n case \"earliest\": return \"0x0\";\n case \"latest\": case \"pending\": case \"safe\": case \"finalized\":\n return blockTag;\n }\n\n if (typeof(blockTag) === \"number\" || isHexString(blockTag)) {\n return hexValue(blockTag);\n }\n\n throw new Error(\"invalid blockTag\");\n }\n\n // Requires a hash, optionally requires 0x prefix; returns prefixed lowercase hash.\n hash(value: any, strict?: boolean): string {\n const result = this.hex(value, strict);\n if (hexDataLength(result) !== 32) {\n return logger.throwArgumentError(\"invalid hash\", \"value\", value);\n }\n return result;\n }\n\n // Returns the difficulty as a number, or if too large (i.e. PoA network) null\n difficulty(value: any): number {\n if (value == null) { return null; }\n\n const v = BigNumber.from(value);\n\n try {\n return v.toNumber();\n } catch (error) { }\n\n return null;\n }\n\n uint256(value: any): string {\n if (!isHexString(value)) {\n throw new Error(\"invalid uint256\");\n }\n return hexZeroPad(value, 32);\n }\n\n _block(value: any, format: any): Block {\n if (value.author != null && value.miner == null) {\n value.miner = value.author;\n }\n // The difficulty may need to come from _difficulty in recursed blocks\n const difficulty = (value._difficulty != null) ? value._difficulty: value.difficulty;\n const result = Formatter.check(format, value);\n result._difficulty = ((difficulty == null) ? null: BigNumber.from(difficulty));\n return result;\n }\n\n block(value: any): Block {\n return this._block(value, this.formats.block);\n }\n\n blockWithTransactions(value: any): Block {\n return this._block(value, this.formats.blockWithTransactions);\n }\n\n // Strict! Used on input.\n transactionRequest(value: any): any {\n return Formatter.check(this.formats.transactionRequest, value);\n }\n\n transactionResponse(transaction: any): TransactionResponse {\n\n // Rename gas to gasLimit\n if (transaction.gas != null && transaction.gasLimit == null) {\n transaction.gasLimit = transaction.gas;\n }\n\n // Some clients (TestRPC) do strange things like return 0x0 for the\n // 0 address; correct this to be a real address\n if (transaction.to && BigNumber.from(transaction.to).isZero()) {\n transaction.to = \"0x0000000000000000000000000000000000000000\";\n }\n\n // Rename input to data\n if (transaction.input != null && transaction.data == null) {\n transaction.data = transaction.input;\n }\n\n // If to and creates are empty, populate the creates from the transaction\n if (transaction.to == null && transaction.creates == null) {\n transaction.creates = this.contractAddress(transaction);\n }\n\n if ((transaction.type === 1 || transaction.type === 2)&& transaction.accessList == null) {\n transaction.accessList = [ ];\n }\n\n const result: TransactionResponse = Formatter.check(this.formats.transaction, transaction);\n\n if (transaction.chainId != null) {\n let chainId = transaction.chainId;\n\n if (isHexString(chainId)) {\n chainId = BigNumber.from(chainId).toNumber();\n }\n\n result.chainId = chainId;\n\n } else {\n let chainId = transaction.networkId;\n\n // geth-etc returns chainId\n if (chainId == null && result.v == null) {\n chainId = transaction.chainId;\n }\n\n if (isHexString(chainId)) {\n chainId = BigNumber.from(chainId).toNumber();\n }\n\n if (typeof(chainId) !== \"number\" && result.v != null) {\n chainId = (result.v - 35) / 2;\n if (chainId < 0) { chainId = 0; }\n chainId = parseInt(chainId);\n }\n\n if (typeof(chainId) !== \"number\") { chainId = 0; }\n\n result.chainId = chainId;\n }\n\n // 0x0000... should actually be null\n if (result.blockHash && result.blockHash.replace(/0/g, \"\") === \"x\") {\n result.blockHash = null;\n }\n\n return result;\n }\n\n transaction(value: any): any {\n return parseTransaction(value);\n }\n\n receiptLog(value: any): any {\n return Formatter.check(this.formats.receiptLog, value);\n }\n\n receipt(value: any): TransactionReceipt {\n const result: TransactionReceipt = Formatter.check(this.formats.receipt, value);\n\n // RSK incorrectly implemented EIP-658, so we munge things a bit here for it\n if (result.root != null) {\n if (result.root.length <= 4) {\n // Could be 0x00, 0x0, 0x01 or 0x1\n const value = BigNumber.from(result.root).toNumber();\n if (value === 0 || value === 1) {\n // Make sure if both are specified, they match\n if (result.status != null && (result.status !== value)) {\n logger.throwArgumentError(\"alt-root-status/status mismatch\", \"value\", { root: result.root, status: result.status });\n }\n result.status = value;\n delete result.root;\n } else {\n logger.throwArgumentError(\"invalid alt-root-status\", \"value.root\", result.root);\n }\n } else if (result.root.length !== 66) {\n // Must be a valid bytes32\n logger.throwArgumentError(\"invalid root hash\", \"value.root\", result.root);\n }\n }\n\n if (result.status != null) {\n result.byzantium = true;\n }\n\n return result;\n }\n\n topics(value: any): any {\n if (Array.isArray(value)) {\n return value.map((v) => this.topics(v));\n\n } else if (value != null) {\n return this.hash(value, true);\n }\n\n return null;\n }\n\n filter(value: any): any {\n return Formatter.check(this.formats.filter, value);\n }\n\n filterLog(value: any): any {\n return Formatter.check(this.formats.filterLog, value);\n }\n\n static check(format: { [ name: string ]: FormatFunc }, object: any): any {\n const result: any = {};\n for (const key in format) {\n try {\n const value = format[key](object[key]);\n if (value !== undefined) { result[key] = value; }\n } catch (error) {\n error.checkKey = key;\n error.checkValue = object[key];\n throw error;\n }\n }\n return result;\n }\n\n // if value is null-ish, nullValue is returned\n static allowNull(format: FormatFunc, nullValue?: any): FormatFunc {\n return (function(value: any) {\n if (value == null) { return nullValue; }\n return format(value);\n });\n }\n\n // If value is false-ish, replaceValue is returned\n static allowFalsish(format: FormatFunc, replaceValue: any): FormatFunc {\n return (function(value: any) {\n if (!value) { return replaceValue; }\n return format(value);\n });\n }\n\n // Requires an Array satisfying check\n static arrayOf(format: FormatFunc): FormatFunc {\n return (function(array: any): Array {\n if (!Array.isArray(array)) { throw new Error(\"not an array\"); }\n\n const result: any = [];\n\n array.forEach(function(value) {\n result.push(format(value));\n });\n\n return result;\n });\n }\n}\n\nexport interface CommunityResourcable {\n isCommunityResource(): boolean;\n}\n\nexport function isCommunityResourcable(value: any): value is CommunityResourcable {\n return (value && typeof(value.isCommunityResource) === \"function\");\n}\n\nexport function isCommunityResource(value: any): boolean {\n return (isCommunityResourcable(value) && value.isCommunityResource());\n}\n\n// Show the throttle message only once\nlet throttleMessage = false;\nexport function showThrottleMessage() {\n if (throttleMessage) { return; }\n throttleMessage = true;\n\n console.log(\"========= NOTICE =========\")\n console.log(\"Request-Rate Exceeded (this message will not be repeated)\");\n console.log(\"\");\n console.log(\"The default API keys for each service are provided as a highly-throttled,\");\n console.log(\"community resource for low-traffic projects and early prototyping.\");\n console.log(\"\");\n console.log(\"While your application will continue to function, we highly recommended\");\n console.log(\"signing up for your own API keys to improve performance, increase your\");\n console.log(\"request rate/limit and enable other perks, such as metrics and advanced APIs.\");\n console.log(\"\");\n console.log(\"For more details: https:/\\/docs.ethers.io/api-keys/\");\n console.log(\"==========================\");\n}\n\n","\"use strict\";\n\nimport { Network, Networkish } from \"@ethersproject/networks\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { ConnectionInfo } from \"@ethersproject/web\";\n\nimport { CommunityResourcable, showThrottleMessage } from \"./formatter\";\nimport { WebSocketProvider } from \"./websocket-provider\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\n\n// This key was provided to ethers.js by Alchemy to be used by the\n// default provider, but it is recommended that for your own\n// production environments, that you acquire your own API key at:\n// https://dashboard.alchemyapi.io\n\nconst defaultApiKey = \"_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC\"\n\nexport class AlchemyWebSocketProvider extends WebSocketProvider implements CommunityResourcable {\n readonly apiKey: string;\n\n constructor(network?: Networkish, apiKey?: any) {\n const provider = new AlchemyProvider(network, apiKey);\n\n const url = provider.connection.url.replace(/^http/i, \"ws\")\n .replace(\".alchemyapi.\", \".ws.alchemyapi.\");\n\n super(url, provider.network);\n defineReadOnly(this, \"apiKey\", provider.apiKey);\n }\n\n isCommunityResource(): boolean {\n return (this.apiKey === defaultApiKey);\n }\n}\n\nexport class AlchemyProvider extends UrlJsonRpcProvider {\n\n static getWebSocketProvider(network?: Networkish, apiKey?: any): AlchemyWebSocketProvider {\n return new AlchemyWebSocketProvider(network, apiKey);\n }\n\n static getApiKey(apiKey: any): any {\n if (apiKey == null) { return defaultApiKey; }\n if (apiKey && typeof(apiKey) !== \"string\") {\n logger.throwArgumentError(\"invalid apiKey\", \"apiKey\", apiKey);\n }\n return apiKey;\n }\n\n static getUrl(network: Network, apiKey: string): ConnectionInfo {\n let host = null;\n switch (network.name) {\n case \"homestead\":\n host = \"eth-mainnet.alchemyapi.io/v2/\";\n break;\n case \"goerli\":\n host = \"eth-goerli.g.alchemy.com/v2/\";\n break;\n case \"matic\":\n host = \"polygon-mainnet.g.alchemy.com/v2/\";\n break;\n case \"maticmum\":\n host = \"polygon-mumbai.g.alchemy.com/v2/\";\n break;\n case \"arbitrum\":\n host = \"arb-mainnet.g.alchemy.com/v2/\";\n break;\n case \"arbitrum-goerli\":\n host = \"arb-goerli.g.alchemy.com/v2/\";\n break;\n case \"optimism\":\n host = \"opt-mainnet.g.alchemy.com/v2/\";\n break;\n case \"optimism-goerli\":\n host = \"opt-goerli.g.alchemy.com/v2/\"\n break;\n default:\n logger.throwArgumentError(\"unsupported network\", \"network\", arguments[0]);\n }\n\n return {\n allowGzip: true,\n url: (\"https:/\" + \"/\" + host + apiKey),\n throttleCallback: (attempt: number, url: string) => {\n if (apiKey === defaultApiKey) {\n showThrottleMessage();\n }\n return Promise.resolve(true);\n }\n };\n }\n\n isCommunityResource(): boolean {\n return (this.apiKey === defaultApiKey);\n }\n}\n","\nimport { Network } from \"@ethersproject/networks\";\n\nimport { showThrottleMessage } from \"./formatter\";\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\n\nimport type { ConnectionInfo } from \"@ethersproject/web\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n\nconst defaultApiKey = \"9f7d929b018cdffb338517efa06f58359e86ff1ffd350bc889738523659e7972\";\n\nfunction getHost(name: string): string {\n switch (name) {\n case \"homestead\":\n return \"rpc.ankr.com/eth/\";\n case \"ropsten\":\n return \"rpc.ankr.com/eth_ropsten/\";\n case \"rinkeby\":\n return \"rpc.ankr.com/eth_rinkeby/\";\n case \"goerli\":\n return \"rpc.ankr.com/eth_goerli/\";\n\n case \"matic\":\n return \"rpc.ankr.com/polygon/\";\n\n case \"arbitrum\":\n return \"rpc.ankr.com/arbitrum/\";\n }\n return logger.throwArgumentError(\"unsupported network\", \"name\", name);\n}\n\nexport class AnkrProvider extends UrlJsonRpcProvider {\n readonly apiKey: string;\n\n isCommunityResource(): boolean {\n return (this.apiKey === defaultApiKey);\n }\n\n static getApiKey(apiKey: any): any {\n if (apiKey == null) { return defaultApiKey; }\n return apiKey;\n }\n\n static getUrl(network: Network, apiKey: any): ConnectionInfo {\n if (apiKey == null) { apiKey = defaultApiKey; }\n const connection: ConnectionInfo = {\n allowGzip: true,\n url: (\"https:/\\/\" + getHost(network.name) + apiKey),\n throttleCallback: (attempt: number, url: string) => {\n if (apiKey.apiKey === defaultApiKey) {\n showThrottleMessage();\n }\n return Promise.resolve(true);\n }\n };\n\n if (apiKey.projectSecret != null) {\n connection.user = \"\";\n connection.password = apiKey.projectSecret\n }\n\n return connection;\n }\n}\n","\"use strict\";\n\nimport { Network } from \"@ethersproject/networks\";\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nexport class CloudflareProvider extends UrlJsonRpcProvider {\n\n static getApiKey(apiKey: any): any {\n if (apiKey != null) {\n logger.throwArgumentError(\"apiKey not supported for cloudflare\", \"apiKey\", apiKey);\n }\n return null;\n }\n\n static getUrl(network: Network, apiKey?: any): string {\n let host = null;\n switch (network.name) {\n case \"homestead\":\n host = \"https://cloudflare-eth.com/\";\n break;\n default:\n logger.throwArgumentError(\"unsupported network\", \"network\", arguments[0]);\n }\n\n return host;\n }\n\n async perform(method: string, params: any): Promise {\n // The Cloudflare provider does not support eth_blockNumber,\n // so we get the latest block and pull it from that\n if (method === \"getBlockNumber\") {\n const block = await super.perform(\"getBlock\", { blockTag: \"latest\" });\n return block.number;\n }\n\n return super.perform(method, params);\n }\n}\n","\"use strict\";\n\nimport { BlockTag, TransactionRequest, TransactionResponse } from \"@ethersproject/abstract-provider\";\nimport { hexlify, hexValue, isHexString } from \"@ethersproject/bytes\";\nimport { Network, Networkish } from \"@ethersproject/networks\";\nimport { deepCopy, defineReadOnly } from \"@ethersproject/properties\";\nimport { accessListify } from \"@ethersproject/transactions\";\nimport { ConnectionInfo, fetchJson } from \"@ethersproject/web\";\n\nimport { showThrottleMessage } from \"./formatter\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { BaseProvider } from \"./base-provider\";\n\n\n// The transaction has already been sanitized by the calls in Provider\nfunction getTransactionPostData(transaction: TransactionRequest): Record {\n const result: Record = { };\n for (let key in transaction) {\n if ((transaction)[key] == null) { continue; }\n let value = (transaction)[key];\n if (key === \"type\" && value === 0) { continue; }\n\n // Quantity-types require no leading zero, unless 0\n if (({ type: true, gasLimit: true, gasPrice: true, maxFeePerGs: true, maxPriorityFeePerGas: true, nonce: true, value: true })[key]) {\n value = hexValue(hexlify(value));\n } else if (key === \"accessList\") {\n value = \"[\" + accessListify(value).map((set) => {\n return `{address:\"${ set.address }\",storageKeys:[\"${ set.storageKeys.join('\",\"') }\"]}`;\n }).join(\",\") + \"]\";\n } else {\n value = hexlify(value);\n }\n result[key] = value;\n }\n return result;\n}\n\nfunction getResult(result: { status?: number, message?: string, result?: any }): any {\n // getLogs, getHistory have weird success responses\n if (result.status == 0 && (result.message === \"No records found\" || result.message === \"No transactions found\")) {\n return result.result;\n }\n\n if (result.status != 1 || typeof(result.message) !== \"string\" || !result.message.match(/^OK/)) {\n const error: any = new Error(\"invalid response\");\n error.result = JSON.stringify(result);\n if ((result.result || \"\").toLowerCase().indexOf(\"rate limit\") >= 0) {\n error.throttleRetry = true;\n }\n throw error;\n }\n\n return result.result;\n}\n\nfunction getJsonResult(result: { jsonrpc: string, result?: any, error?: { code?: number, data?: any, message?: string} } ): any {\n // This response indicates we are being throttled\n if (result && (result).status == 0 && (result).message == \"NOTOK\" && (result.result || \"\").toLowerCase().indexOf(\"rate limit\") >= 0) {\n const error: any = new Error(\"throttled response\");\n error.result = JSON.stringify(result);\n error.throttleRetry = true;\n throw error;\n }\n\n if (result.jsonrpc != \"2.0\") {\n // @TODO: not any\n const error: any = new Error(\"invalid response\");\n error.result = JSON.stringify(result);\n throw error;\n }\n\n if (result.error) {\n // @TODO: not any\n const error: any = new Error(result.error.message || \"unknown error\");\n if (result.error.code) { error.code = result.error.code; }\n if (result.error.data) { error.data = result.error.data; }\n throw error;\n }\n\n return result.result;\n}\n\n// The blockTag was normalized as a string by the Provider pre-perform operations\nfunction checkLogTag(blockTag: string): number | \"latest\" {\n if (blockTag === \"pending\") { throw new Error(\"pending not supported\"); }\n if (blockTag === \"latest\") { return blockTag; }\n\n return parseInt(blockTag.substring(2), 16);\n}\n\n\nfunction checkError(method: string, error: any, transaction: any): any {\n // Undo the \"convenience\" some nodes are attempting to prevent backwards\n // incompatibility; maybe for v6 consider forwarding reverts as errors\n if (method === \"call\" && error.code === Logger.errors.SERVER_ERROR) {\n const e = error.error;\n\n // Etherscan keeps changing their string\n if (e && (e.message.match(/reverted/i) || e.message.match(/VM execution error/i))) {\n // Etherscan prefixes the data like \"Reverted 0x1234\"\n let data = e.data;\n if (data) { data = \"0x\" + data.replace(/^.*0x/i, \"\"); }\n\n if (isHexString(data)) { return data; }\n\n logger.throwError(\"missing revert data in call exception\", Logger.errors.CALL_EXCEPTION, {\n error, data: \"0x\"\n });\n }\n }\n\n // Get the message from any nested error structure\n let message = error.message;\n if (error.code === Logger.errors.SERVER_ERROR) {\n if (error.error && typeof(error.error.message) === \"string\") {\n message = error.error.message;\n } else if (typeof(error.body) === \"string\") {\n message = error.body;\n } else if (typeof(error.responseText) === \"string\") {\n message = error.responseText;\n }\n }\n message = (message || \"\").toLowerCase();\n\n // \"Insufficient funds. The account you tried to send transaction from does not have enough funds. Required 21464000000000 and got: 0\"\n if (message.match(/insufficient funds/)) {\n logger.throwError(\"insufficient funds for intrinsic transaction cost\", Logger.errors.INSUFFICIENT_FUNDS, {\n error, method, transaction\n });\n }\n\n // \"Transaction with the same hash was already imported.\"\n if (message.match(/same hash was already imported|transaction nonce is too low|nonce too low/)) {\n logger.throwError(\"nonce has already been used\", Logger.errors.NONCE_EXPIRED, {\n error, method, transaction\n });\n }\n\n // \"Transaction gas price is too low. There is another transaction with same nonce in the queue. Try increasing the gas price or incrementing the nonce.\"\n if (message.match(/another transaction with same nonce/)) {\n logger.throwError(\"replacement fee too low\", Logger.errors.REPLACEMENT_UNDERPRICED, {\n error, method, transaction\n });\n }\n\n if (message.match(/execution failed due to an exception|execution reverted/)) {\n logger.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n error, method, transaction\n });\n }\n\n throw error;\n}\n\nexport class EtherscanProvider extends BaseProvider{\n readonly baseUrl: string;\n readonly apiKey: string | null;\n\n constructor(network?: Networkish, apiKey?: string) {\n super(network);\n\n defineReadOnly(this, \"baseUrl\", this.getBaseUrl());\n defineReadOnly(this, \"apiKey\", apiKey || null);\n }\n\n getBaseUrl(): string {\n switch(this.network ? this.network.name: \"invalid\") {\n case \"homestead\":\n return \"https:/\\/api.etherscan.io\";\n case \"goerli\":\n return \"https:/\\/api-goerli.etherscan.io\";\n case \"sepolia\":\n return \"https:/\\/api-sepolia.etherscan.io\";\n case \"matic\":\n return \"https:/\\/api.polygonscan.com\";\n case \"maticmum\":\n return \"https:/\\/api-testnet.polygonscan.com\";\n case \"arbitrum\":\n return \"https:/\\/api.arbiscan.io\";\n case \"arbitrum-goerli\":\n return \"https:/\\/api-goerli.arbiscan.io\";\n case \"optimism\":\n return \"https:/\\/api-optimistic.etherscan.io\";\n case \"optimism-goerli\":\n return \"https:/\\/api-goerli-optimistic.etherscan.io\";\n default:\n }\n\n return logger.throwArgumentError(\"unsupported network\", \"network\", this.network.name);\n }\n\n getUrl(module: string, params: Record): string {\n const query = Object.keys(params).reduce((accum, key) => {\n const value = params[key];\n if (value != null) {\n accum += `&${ key }=${ value }`\n }\n return accum\n }, \"\");\n const apiKey = ((this.apiKey) ? `&apikey=${ this.apiKey }`: \"\");\n return `${ this.baseUrl }/api?module=${ module }${ query }${ apiKey }`;\n }\n\n getPostUrl(): string {\n return `${ this.baseUrl }/api`;\n }\n\n getPostData(module: string, params: Record): Record {\n params.module = module;\n params.apikey = this.apiKey;\n return params;\n }\n\n async fetch(module: string, params: Record, post?: boolean): Promise {\n const url = (post ? this.getPostUrl(): this.getUrl(module, params));\n const payload = (post ? this.getPostData(module, params): null);\n const procFunc = (module === \"proxy\") ? getJsonResult: getResult;\n\n this.emit(\"debug\", {\n action: \"request\",\n request: url,\n provider: this\n });\n\n const connection: ConnectionInfo = {\n url: url,\n throttleSlotInterval: 1000,\n throttleCallback: (attempt: number, url: string) => {\n if (this.isCommunityResource()) {\n showThrottleMessage();\n }\n return Promise.resolve(true);\n }\n };\n\n let payloadStr: string = null;\n if (payload) {\n connection.headers = { \"content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\" };\n payloadStr = Object.keys(payload).map((key) => {\n return `${ key }=${ payload[key] }`\n }).join(\"&\");\n }\n\n const result = await fetchJson(connection, payloadStr, procFunc || getJsonResult);\n\n this.emit(\"debug\", {\n action: \"response\",\n request: url,\n response: deepCopy(result),\n provider: this\n });\n\n return result;\n }\n\n async detectNetwork(): Promise {\n return this.network;\n }\n\n async perform(method: string, params: any): Promise {\n\n switch (method) {\n case \"getBlockNumber\":\n return this.fetch(\"proxy\", { action: \"eth_blockNumber\" });\n\n case \"getGasPrice\":\n return this.fetch(\"proxy\", { action: \"eth_gasPrice\" });\n\n case \"getBalance\":\n // Returns base-10 result\n return this.fetch(\"account\", {\n action: \"balance\",\n address: params.address,\n tag: params.blockTag\n });\n\n case \"getTransactionCount\":\n return this.fetch(\"proxy\", {\n action: \"eth_getTransactionCount\",\n address: params.address,\n tag: params.blockTag\n });\n\n case \"getCode\":\n return this.fetch(\"proxy\", {\n action: \"eth_getCode\",\n address: params.address,\n tag: params.blockTag\n });\n\n case \"getStorageAt\":\n return this.fetch(\"proxy\", {\n action: \"eth_getStorageAt\",\n address: params.address,\n position: params.position,\n tag: params.blockTag\n });\n\n case \"sendTransaction\":\n return this.fetch(\"proxy\", {\n action: \"eth_sendRawTransaction\",\n hex: params.signedTransaction\n }, true).catch((error) => {\n return checkError(\"sendTransaction\", error, params.signedTransaction);\n });\n\n case \"getBlock\":\n if (params.blockTag) {\n return this.fetch(\"proxy\", {\n action: \"eth_getBlockByNumber\",\n tag: params.blockTag,\n boolean: (params.includeTransactions ? \"true\": \"false\")\n });\n }\n throw new Error(\"getBlock by blockHash not implemented\");\n\n case \"getTransaction\":\n return this.fetch(\"proxy\", {\n action: \"eth_getTransactionByHash\",\n txhash: params.transactionHash\n });\n\n case \"getTransactionReceipt\":\n return this.fetch(\"proxy\", {\n action: \"eth_getTransactionReceipt\",\n txhash: params.transactionHash\n });\n\n case \"call\": {\n if (params.blockTag !== \"latest\") {\n throw new Error(\"EtherscanProvider does not support blockTag for call\");\n }\n\n const postData = getTransactionPostData(params.transaction);\n postData.module = \"proxy\";\n postData.action = \"eth_call\";\n\n try {\n return await this.fetch(\"proxy\", postData, true);\n } catch (error) {\n return checkError(\"call\", error, params.transaction);\n }\n }\n\n case \"estimateGas\": {\n const postData = getTransactionPostData(params.transaction);\n postData.module = \"proxy\";\n postData.action = \"eth_estimateGas\";\n\n try {\n return await this.fetch(\"proxy\", postData, true);\n } catch (error) {\n return checkError(\"estimateGas\", error, params.transaction);\n }\n }\n\n case \"getLogs\": {\n const args: Record = { action: \"getLogs\" }\n\n if (params.filter.fromBlock) {\n args.fromBlock = checkLogTag(params.filter.fromBlock);\n }\n\n if (params.filter.toBlock) {\n args.toBlock = checkLogTag(params.filter.toBlock);\n }\n\n if (params.filter.address) {\n args.address = params.filter.address;\n }\n\n // @TODO: We can handle slightly more complicated logs using the logs API\n if (params.filter.topics && params.filter.topics.length > 0) {\n if (params.filter.topics.length > 1) {\n logger.throwError(\"unsupported topic count\", Logger.errors.UNSUPPORTED_OPERATION, { topics: params.filter.topics });\n }\n\n if (params.filter.topics.length === 1) {\n const topic0 = params.filter.topics[0];\n if (typeof(topic0) !== \"string\" || topic0.length !== 66) {\n logger.throwError(\"unsupported topic format\", Logger.errors.UNSUPPORTED_OPERATION, { topic0: topic0 });\n }\n args.topic0 = topic0;\n }\n }\n\n const logs: Array = await this.fetch(\"logs\", args);\n\n // Cache txHash => blockHash\n let blocks: { [tag: string]: string } = {};\n\n // Add any missing blockHash to the logs\n for (let i = 0; i < logs.length; i++) {\n const log = logs[i];\n if (log.blockHash != null) { continue; }\n if (blocks[log.blockNumber] == null) {\n const block = await this.getBlock(log.blockNumber);\n if (block) {\n blocks[log.blockNumber] = block.hash;\n }\n }\n log.blockHash = blocks[log.blockNumber];\n }\n\n return logs;\n }\n\n case \"getEtherPrice\":\n if (this.network.name !== \"homestead\") { return 0.0; }\n return parseFloat((await this.fetch(\"stats\", { action: \"ethprice\" })).ethusd);\n\n default:\n break;\n }\n\n return super.perform(method, params);\n }\n\n // Note: The `page` page parameter only allows pagination within the\n // 10,000 window available without a page and offset parameter\n // Error: Result window is too large, PageNo x Offset size must\n // be less than or equal to 10000\n async getHistory(addressOrName: string | Promise, startBlock?: BlockTag, endBlock?: BlockTag): Promise> {\n const params = {\n action: \"txlist\",\n address: (await this.resolveName(addressOrName)),\n startblock: ((startBlock == null) ? 0: startBlock),\n endblock: ((endBlock == null) ? 99999999: endBlock),\n sort: \"asc\"\n };\n\n const result = await this.fetch(\"account\", params);\n\n return result.map((tx: any) => {\n [\"contractAddress\", \"to\"].forEach(function(key) {\n if (tx[key] == \"\") { delete tx[key]; }\n });\n if (tx.creates == null && tx.contractAddress != null) {\n tx.creates = tx.contractAddress;\n }\n const item = this.formatter.transactionResponse(tx);\n if (tx.timeStamp) { item.timestamp = parseInt(tx.timeStamp); }\n return item;\n });\n }\n\n isCommunityResource(): boolean {\n return (this.apiKey == null);\n }\n}\n","\"use strict\";\n\nimport { Block, BlockWithTransactions, Provider } from \"@ethersproject/abstract-provider\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { isHexString } from \"@ethersproject/bytes\";\nimport { Network } from \"@ethersproject/networks\";\nimport { deepCopy, defineReadOnly, shallowCopy } from \"@ethersproject/properties\";\nimport { shuffled } from \"@ethersproject/random\";\nimport { poll } from \"@ethersproject/web\";\n\nimport { BaseProvider } from \"./base-provider\";\nimport { isCommunityResource } from \"./formatter\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nfunction now() { return (new Date()).getTime(); }\n\n// Returns to network as long as all agree, or null if any is null.\n// Throws an error if any two networks do not match.\nfunction checkNetworks(networks: Array): Network {\n let result = null;\n\n for (let i = 0; i < networks.length; i++) {\n const network = networks[i];\n\n // Null! We do not know our network; bail.\n if (network == null) { return null; }\n\n if (result) {\n // Make sure the network matches the previous networks\n if (!(result.name === network.name && result.chainId === network.chainId &&\n ((result.ensAddress === network.ensAddress) || (result.ensAddress == null && network.ensAddress == null)))) {\n\n logger.throwArgumentError(\"provider mismatch\", \"networks\", networks);\n }\n } else {\n result = network;\n }\n }\n\n return result;\n}\n\nfunction median(values: Array, maxDelta?: number): number {\n values = values.slice().sort();\n const middle = Math.floor(values.length / 2);\n\n // Odd length; take the middle\n if (values.length % 2) {\n return values[middle];\n }\n\n // Even length; take the average of the two middle\n const a = values[middle - 1], b = values[middle];\n\n if (maxDelta != null && Math.abs(a - b) > maxDelta) {\n return null;\n }\n\n return (a + b) / 2;\n}\n\nfunction serialize(value: any): string {\n if (value === null) {\n return \"null\";\n } else if (typeof(value) === \"number\" || typeof(value) === \"boolean\") {\n return JSON.stringify(value);\n } else if (typeof(value) === \"string\") {\n return value;\n } else if (BigNumber.isBigNumber(value)) {\n return value.toString();\n } else if (Array.isArray(value)) {\n return JSON.stringify(value.map((i) => serialize(i)));\n } else if (typeof(value) === \"object\") {\n const keys = Object.keys(value);\n keys.sort();\n return \"{\" + keys.map((key) => {\n let v = value[key];\n if (typeof(v) === \"function\") {\n v = \"[function]\";\n } else {\n v = serialize(v);\n }\n return JSON.stringify(key) + \":\" + v;\n }).join(\",\") + \"}\";\n }\n\n throw new Error(\"unknown value type: \" + typeof(value));\n}\n\n// Next request ID to use for emitting debug info\nlet nextRid = 1;\n\n\nexport interface FallbackProviderConfig {\n // The Provider\n provider: Provider;\n\n // The priority to favour this Provider; lower values are used first (higher priority)\n priority?: number;\n\n // Timeout before also triggering the next provider; this does not stop\n // this provider and if its result comes back before a quorum is reached\n // it will be incorporated into the vote\n // - lower values will cause more network traffic but may result in a\n // faster result.\n stallTimeout?: number;\n\n // How much this provider contributes to the quorum; sometimes a specific\n // provider may be more reliable or trustworthy than others, but usually\n // this should be left as the default\n weight?: number;\n};\n\n// A Staller is used to provide a delay to give a Provider a chance to response\n// before asking the next Provider to try.\ntype Staller = {\n wait: (func: () => void) => Promise\n getPromise: () => Promise,\n cancel: () => void\n};\n\nfunction stall(duration: number): Staller {\n let cancel: () => void = null;\n\n let timer: NodeJS.Timer = null;\n let promise = >(new Promise((resolve) => {\n cancel = function() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n resolve();\n }\n timer = setTimeout(cancel, duration);\n }));\n\n const wait = (func: () => void) => {\n promise = promise.then(func);\n return promise;\n }\n\n function getPromise(): Promise {\n return promise;\n }\n\n return { cancel, getPromise, wait };\n}\n\nconst ForwardErrors = [\n Logger.errors.CALL_EXCEPTION,\n Logger.errors.INSUFFICIENT_FUNDS,\n Logger.errors.NONCE_EXPIRED,\n Logger.errors.REPLACEMENT_UNDERPRICED,\n Logger.errors.UNPREDICTABLE_GAS_LIMIT\n];\n\nconst ForwardProperties = [\n \"address\",\n \"args\",\n \"errorArgs\",\n \"errorSignature\",\n \"method\",\n \"transaction\",\n];\n\n\n// @TODO: Make this an object with staller and cancel built-in\ninterface RunningConfig extends FallbackProviderConfig {\n start?: number;\n done?: boolean;\n cancelled?: boolean;\n runner?: Promise;\n staller?: Staller;\n result?: any;\n error?: Error;\n};\n\nfunction exposeDebugConfig(config: RunningConfig, now?: number): any {\n const result: any = {\n weight: config.weight\n };\n Object.defineProperty(result, \"provider\", { get: () => config.provider });\n if (config.start) { result.start = config.start; }\n if (now) { result.duration = (now - config.start); }\n if (config.done) {\n if (config.error) {\n result.error = config.error;\n } else {\n result.result = config.result || null;\n }\n }\n return result;\n}\n\nfunction normalizedTally(normalize: (value: any) => string, quorum: number): (configs: Array) => any {\n return function(configs: Array): any {\n\n // Count the votes for each result\n const tally: { [ key: string]: { count: number, result: any } } = { };\n configs.forEach((c) => {\n const value = normalize(c.result);\n if (!tally[value]) { tally[value] = { count: 0, result: c.result }; }\n tally[value].count++;\n });\n\n // Check for a quorum on any given result\n const keys = Object.keys(tally);\n for (let i = 0; i < keys.length; i++) {\n const check = tally[keys[i]];\n if (check.count >= quorum) {\n return check.result;\n }\n }\n\n // No quroum\n return undefined;\n }\n}\nfunction getProcessFunc(provider: FallbackProvider, method: string, params: { [ key: string ]: any }): (configs: Array) => any {\n\n let normalize = serialize;\n\n switch (method) {\n case \"getBlockNumber\":\n // Return the median value, unless there is (median + 1) is also\n // present, in which case that is probably true and the median\n // is going to be stale soon. In the event of a malicious node,\n // the lie will be true soon enough.\n return function(configs: Array): number {\n const values = configs.map((c) => c.result);\n\n // Get the median block number\n let blockNumber = median(configs.map((c) => c.result), 2);\n if (blockNumber == null) { return undefined; }\n\n blockNumber = Math.ceil(blockNumber);\n\n // If the next block height is present, its prolly safe to use\n if (values.indexOf(blockNumber + 1) >= 0) { blockNumber++; }\n\n // Don't ever roll back the blockNumber\n if (blockNumber >= provider._highestBlockNumber) {\n provider._highestBlockNumber = blockNumber;\n }\n\n return provider._highestBlockNumber;\n };\n\n case \"getGasPrice\":\n // Return the middle (round index up) value, similar to median\n // but do not average even entries and choose the higher.\n // Malicious actors must compromise 50% of the nodes to lie.\n return function(configs: Array): BigNumber {\n const values = configs.map((c) => c.result);\n values.sort();\n return values[Math.floor(values.length / 2)];\n }\n\n case \"getEtherPrice\":\n // Returns the median price. Malicious actors must compromise at\n // least 50% of the nodes to lie (in a meaningful way).\n return function(configs: Array): number {\n return median(configs.map((c) => c.result));\n }\n\n // No additional normalizing required; serialize is enough\n case \"getBalance\":\n case \"getTransactionCount\":\n case \"getCode\":\n case \"getStorageAt\":\n case \"call\":\n case \"estimateGas\":\n case \"getLogs\":\n break;\n\n // We drop the confirmations from transactions as it is approximate\n case \"getTransaction\":\n case \"getTransactionReceipt\":\n normalize = function(tx: any): string {\n if (tx == null) { return null; }\n\n tx = shallowCopy(tx);\n tx.confirmations = -1;\n return serialize(tx);\n }\n break;\n\n // We drop the confirmations from transactions as it is approximate\n case \"getBlock\":\n // We drop the confirmations from transactions as it is approximate\n if (params.includeTransactions) {\n normalize = function(block: BlockWithTransactions): string {\n if (block == null) { return null; }\n\n block = shallowCopy(block);\n block.transactions = block.transactions.map((tx) => {\n tx = shallowCopy(tx);\n tx.confirmations = -1;\n return tx;\n });\n return serialize(block);\n };\n } else {\n normalize = function(block: Block): string {\n if (block == null) { return null; }\n return serialize(block);\n }\n }\n break;\n\n default:\n throw new Error(\"unknown method: \" + method);\n }\n\n // Return the result if and only if the expected quorum is\n // satisfied and agreed upon for the final result.\n return normalizedTally(normalize, provider.quorum);\n\n}\n\n// If we are doing a blockTag query, we need to make sure the backend is\n// caught up to the FallbackProvider, before sending a request to it.\nasync function waitForSync(config: RunningConfig, blockNumber: number): Promise {\n const provider = (config.provider);\n\n if ((provider.blockNumber != null && provider.blockNumber >= blockNumber) || blockNumber === -1) {\n return provider;\n }\n\n return poll(() => {\n return new Promise((resolve, reject) => {\n setTimeout(function() {\n\n // We are synced\n if (provider.blockNumber >= blockNumber) { return resolve(provider); }\n\n // We're done; just quit\n if (config.cancelled) { return resolve(null); }\n\n // Try again, next block\n return resolve(undefined);\n }, 0);\n });\n }, { oncePoll: provider });\n}\n\nasync function getRunner(config: RunningConfig, currentBlockNumber: number, method: string, params: { [ key: string]: any }): Promise {\n let provider = config.provider;\n\n switch (method) {\n case \"getBlockNumber\":\n case \"getGasPrice\":\n return provider[method]();\n case \"getEtherPrice\":\n if ((provider).getEtherPrice) {\n return (provider).getEtherPrice();\n }\n break;\n case \"getBalance\":\n case \"getTransactionCount\":\n case \"getCode\":\n if (params.blockTag && isHexString(params.blockTag)) {\n provider = await waitForSync(config, currentBlockNumber)\n }\n return provider[method](params.address, params.blockTag || \"latest\");\n case \"getStorageAt\":\n if (params.blockTag && isHexString(params.blockTag)) {\n provider = await waitForSync(config, currentBlockNumber)\n }\n return provider.getStorageAt(params.address, params.position, params.blockTag || \"latest\");\n case \"getBlock\":\n if (params.blockTag && isHexString(params.blockTag)) {\n provider = await waitForSync(config, currentBlockNumber)\n }\n return provider[(params.includeTransactions ? \"getBlockWithTransactions\": \"getBlock\")](params.blockTag || params.blockHash);\n case \"call\":\n case \"estimateGas\":\n if (params.blockTag && isHexString(params.blockTag)) {\n provider = await waitForSync(config, currentBlockNumber)\n }\n if (method === \"call\" && params.blockTag) {\n return provider[method](params.transaction, params.blockTag);\n }\n return provider[method](params.transaction);\n case \"getTransaction\":\n case \"getTransactionReceipt\":\n return provider[method](params.transactionHash);\n case \"getLogs\": {\n let filter = params.filter;\n if ((filter.fromBlock && isHexString(filter.fromBlock)) || (filter.toBlock && isHexString(filter.toBlock))) {\n provider = await waitForSync(config, currentBlockNumber)\n }\n return provider.getLogs(filter);\n }\n }\n\n return logger.throwError(\"unknown method error\", Logger.errors.UNKNOWN_ERROR, {\n method: method,\n params: params\n });\n}\n\nexport class FallbackProvider extends BaseProvider {\n readonly providerConfigs: ReadonlyArray;\n readonly quorum: number;\n\n // Due to the highly asyncronous nature of the blockchain, we need\n // to make sure we never unroll the blockNumber due to our random\n // sample of backends\n _highestBlockNumber: number;\n\n constructor(providers: Array, quorum?: number) {\n if (providers.length === 0) {\n logger.throwArgumentError(\"missing providers\", \"providers\", providers);\n }\n\n const providerConfigs: Array = providers.map((configOrProvider, index) => {\n if (Provider.isProvider(configOrProvider)) {\n const stallTimeout = isCommunityResource(configOrProvider) ? 2000: 750;\n const priority = 1;\n return Object.freeze({ provider: configOrProvider, weight: 1, stallTimeout, priority });\n }\n\n const config: FallbackProviderConfig = shallowCopy(configOrProvider);\n\n if (config.priority == null) { config.priority = 1; }\n if (config.stallTimeout == null) {\n config.stallTimeout = isCommunityResource(configOrProvider) ? 2000: 750;\n }\n if (config.weight == null) { config.weight = 1; }\n\n const weight = config.weight;\n if (weight % 1 || weight > 512 || weight < 1) {\n logger.throwArgumentError(\"invalid weight; must be integer in [1, 512]\", `providers[${ index }].weight`, weight);\n }\n\n return Object.freeze(config);\n });\n\n const total = providerConfigs.reduce((accum, c) => (accum + c.weight), 0);\n\n if (quorum == null) {\n quorum = total / 2;\n } else if (quorum > total) {\n logger.throwArgumentError(\"quorum will always fail; larger than total weight\", \"quorum\", quorum);\n }\n\n // Are all providers' networks are known\n let networkOrReady: Network | Promise = checkNetworks(providerConfigs.map((c) => ((c.provider)).network));\n\n // Not all networks are known; we must stall\n if (networkOrReady == null) {\n networkOrReady = new Promise((resolve, reject) => {\n setTimeout(() => {\n this.detectNetwork().then(resolve, reject);\n }, 0);\n });\n }\n\n super(networkOrReady);\n\n // Preserve a copy, so we do not get mutated\n defineReadOnly(this, \"providerConfigs\", Object.freeze(providerConfigs));\n defineReadOnly(this, \"quorum\", quorum);\n\n this._highestBlockNumber = -1;\n }\n\n async detectNetwork(): Promise {\n const networks = await Promise.all(this.providerConfigs.map((c) => c.provider.getNetwork()));\n return checkNetworks(networks);\n }\n\n async perform(method: string, params: { [name: string]: any }): Promise {\n // Sending transactions is special; always broadcast it to all backends\n if (method === \"sendTransaction\") {\n const results: Array = await Promise.all(this.providerConfigs.map((c) => {\n return c.provider.sendTransaction(params.signedTransaction).then((result) => {\n return result.hash;\n }, (error) => {\n return error;\n });\n }));\n\n // Any success is good enough (other errors are likely \"already seen\" errors\n for (let i = 0; i < results.length; i++) {\n const result = results[i];\n if (typeof(result) === \"string\") { return result; }\n }\n\n // They were all an error; pick the first error\n throw results[0];\n }\n\n // We need to make sure we are in sync with our backends, so we need\n // to know this before we can make a lot of calls\n if (this._highestBlockNumber === -1 && method !== \"getBlockNumber\") {\n await this.getBlockNumber();\n }\n\n const processFunc = getProcessFunc(this, method, params);\n\n // Shuffle the providers and then sort them by their priority; we\n // shallowCopy them since we will store the result in them too\n const configs: Array = shuffled(this.providerConfigs.map(shallowCopy));\n configs.sort((a, b) => (a.priority - b.priority));\n\n const currentBlockNumber = this._highestBlockNumber;\n\n let i = 0;\n let first = true;\n while (true) {\n const t0 = now();\n\n // Compute the inflight weight (exclude anything past)\n let inflightWeight = configs.filter((c) => (c.runner && ((t0 - c.start) < c.stallTimeout)))\n .reduce((accum, c) => (accum + c.weight), 0);\n\n // Start running enough to meet quorum\n while (inflightWeight < this.quorum && i < configs.length) {\n const config = configs[i++];\n\n const rid = nextRid++;\n\n config.start = now();\n config.staller = stall(config.stallTimeout);\n config.staller.wait(() => { config.staller = null; });\n\n config.runner = getRunner(config, currentBlockNumber, method, params).then((result) => {\n config.done = true;\n config.result = result;\n\n if (this.listenerCount(\"debug\")) {\n this.emit(\"debug\", {\n action: \"request\",\n rid: rid,\n backend: exposeDebugConfig(config, now()),\n request: { method: method, params: deepCopy(params) },\n provider: this\n });\n }\n\n }, (error) => {\n config.done = true;\n config.error = error;\n\n if (this.listenerCount(\"debug\")) {\n this.emit(\"debug\", {\n action: \"request\",\n rid: rid,\n backend: exposeDebugConfig(config, now()),\n request: { method: method, params: deepCopy(params) },\n provider: this\n });\n }\n });\n\n if (this.listenerCount(\"debug\")) {\n this.emit(\"debug\", {\n action: \"request\",\n rid: rid,\n backend: exposeDebugConfig(config, null),\n request: { method: method, params: deepCopy(params) },\n provider: this\n });\n }\n\n inflightWeight += config.weight;\n }\n\n // Wait for anything meaningful to finish or stall out\n const waiting: Array> = [ ];\n configs.forEach((c) => {\n if (c.done || !c.runner) { return; }\n waiting.push(c.runner);\n if (c.staller) { waiting.push(c.staller.getPromise()); }\n });\n\n if (waiting.length) { await Promise.race(waiting); }\n\n // Check the quorum and process the results; the process function\n // may additionally decide the quorum is not met\n const results = configs.filter((c) => (c.done && c.error == null));\n if (results.length >= this.quorum) {\n const result = processFunc(results);\n if (result !== undefined) {\n // Shut down any stallers\n configs.forEach(c => {\n if (c.staller) { c.staller.cancel(); }\n c.cancelled = true;\n });\n return result;\n }\n if (!first) { await stall(100).getPromise(); }\n first = false;\n }\n\n // No result, check for errors that should be forwarded\n const errors = configs.reduce((accum, c) => {\n if (!c.done || c.error == null) { return accum; }\n\n const code = ((c.error)).code;\n if (ForwardErrors.indexOf(code) >= 0) {\n if (!accum[code]) { accum[code] = { error: c.error, weight: 0 }; }\n accum[code].weight += c.weight;\n }\n\n return accum;\n }, <{ [ code: string ]: { error: Error, weight: number } }>({ }));\n\n Object.keys(errors).forEach((errorCode: string) => {\n const tally = errors[errorCode];\n if (tally.weight < this.quorum) { return; }\n\n // Shut down any stallers\n configs.forEach(c => {\n if (c.staller) { c.staller.cancel(); }\n c.cancelled = true;\n });\n\n const e = (tally.error);\n\n const props: { [ name: string ]: any } = { };\n ForwardProperties.forEach((name) => {\n if (e[name] == null) { return; }\n props[name] = e[name];\n });\n\n logger.throwError(e.reason || e.message, errorCode, props);\n });\n\n // All configs have run to completion; we will never get more data\n if (configs.filter((c) => !c.done).length === 0) { break; }\n }\n\n // Shut down any stallers; shouldn't be any\n configs.forEach(c => {\n if (c.staller) { c.staller.cancel(); }\n c.cancelled = true;\n });\n\n return logger.throwError(\"failed to meet quorum\", Logger.errors.SERVER_ERROR, {\n method: method,\n params: params,\n //results: configs.map((c) => c.result),\n //errors: configs.map((c) => c.error),\n results: configs.map((c) => exposeDebugConfig(c)),\n provider: this\n });\n }\n}\n","\"use strict\";\n\nconst IpcProvider: any = null;\n\nexport {\n IpcProvider\n};\n","\"use strict\";\n\nimport { Network, Networkish } from \"@ethersproject/networks\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { ConnectionInfo } from \"@ethersproject/web\";\n\nimport { WebSocketProvider } from \"./websocket-provider\";\nimport { CommunityResourcable, showThrottleMessage } from \"./formatter\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\n\n\nconst defaultProjectId = \"84842078b09946638c03157f83405213\"\n\nexport class InfuraWebSocketProvider extends WebSocketProvider implements CommunityResourcable {\n readonly apiKey: string;\n readonly projectId: string;\n readonly projectSecret: string;\n\n constructor(network?: Networkish, apiKey?: any) {\n const provider = new InfuraProvider(network, apiKey);\n const connection = provider.connection;\n if (connection.password) {\n logger.throwError(\"INFURA WebSocket project secrets unsupported\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"InfuraProvider.getWebSocketProvider()\"\n });\n }\n\n const url = connection.url.replace(/^http/i, \"ws\").replace(\"/v3/\", \"/ws/v3/\");\n super(url, network);\n\n defineReadOnly(this, \"apiKey\", provider.projectId);\n defineReadOnly(this, \"projectId\", provider.projectId);\n defineReadOnly(this, \"projectSecret\", provider.projectSecret);\n }\n\n isCommunityResource(): boolean {\n return (this.projectId === defaultProjectId);\n }\n}\n\nexport class InfuraProvider extends UrlJsonRpcProvider {\n readonly projectId: string;\n readonly projectSecret: string;\n\n static getWebSocketProvider(network?: Networkish, apiKey?: any): InfuraWebSocketProvider {\n return new InfuraWebSocketProvider(network, apiKey);\n }\n\n static getApiKey(apiKey: any): any {\n const apiKeyObj: { apiKey: string, projectId: string, projectSecret: string } = {\n apiKey: defaultProjectId,\n projectId: defaultProjectId,\n projectSecret: null\n };\n\n if (apiKey == null) { return apiKeyObj; }\n\n if (typeof(apiKey) === \"string\") {\n apiKeyObj.projectId = apiKey;\n\n } else if (apiKey.projectSecret != null) {\n logger.assertArgument((typeof(apiKey.projectId) === \"string\"),\n \"projectSecret requires a projectId\", \"projectId\", apiKey.projectId);\n logger.assertArgument((typeof(apiKey.projectSecret) === \"string\"),\n \"invalid projectSecret\", \"projectSecret\", \"[REDACTED]\");\n\n apiKeyObj.projectId = apiKey.projectId;\n apiKeyObj.projectSecret = apiKey.projectSecret;\n\n } else if (apiKey.projectId) {\n apiKeyObj.projectId = apiKey.projectId;\n }\n\n apiKeyObj.apiKey = apiKeyObj.projectId;\n\n return apiKeyObj;\n }\n\n static getUrl(network: Network, apiKey: any): ConnectionInfo {\n let host: string = null;\n switch(network ? network.name: \"unknown\") {\n case \"homestead\":\n host = \"mainnet.infura.io\";\n break;\n case \"goerli\":\n host = \"goerli.infura.io\";\n break;\n case \"sepolia\":\n host = \"sepolia.infura.io\";\n break;\n case \"matic\":\n host = \"polygon-mainnet.infura.io\";\n break;\n case \"maticmum\":\n host = \"polygon-mumbai.infura.io\";\n break;\n case \"optimism\":\n host = \"optimism-mainnet.infura.io\";\n break;\n case \"optimism-goerli\":\n host = \"optimism-goerli.infura.io\";\n break;\n case \"arbitrum\":\n host = \"arbitrum-mainnet.infura.io\";\n break;\n case \"arbitrum-goerli\":\n host = \"arbitrum-goerli.infura.io\";\n break;\n default:\n logger.throwError(\"unsupported network\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"network\",\n value: network\n });\n }\n\n const connection: ConnectionInfo = {\n allowGzip: true,\n url: (\"https:/\" + \"/\" + host + \"/v3/\" + apiKey.projectId),\n throttleCallback: (attempt: number, url: string) => {\n if (apiKey.projectId === defaultProjectId) {\n showThrottleMessage();\n }\n return Promise.resolve(true);\n }\n };\n\n if (apiKey.projectSecret != null) {\n connection.user = \"\";\n connection.password = apiKey.projectSecret\n }\n\n return connection;\n }\n\n isCommunityResource(): boolean {\n return (this.projectId === defaultProjectId);\n }\n}\n","/* istanbul ignore file */\n\n\"use strict\";\n\nimport { Network } from \"@ethersproject/networks\";\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n// Special API key provided by Nodesmith for ethers.js\nconst defaultApiKey = \"ETHERS_JS_SHARED\";\n\nexport class NodesmithProvider extends UrlJsonRpcProvider {\n\n static getApiKey(apiKey: any): any {\n if (apiKey && typeof(apiKey) !== \"string\") {\n logger.throwArgumentError(\"invalid apiKey\", \"apiKey\", apiKey);\n }\n return apiKey || defaultApiKey;\n }\n\n static getUrl(network: Network, apiKey?: any): string {\n logger.warn(\"NodeSmith will be discontinued on 2019-12-20; please migrate to another platform.\");\n\n let host = null;\n switch (network.name) {\n case \"homestead\":\n host = \"https://ethereum.api.nodesmith.io/v1/mainnet/jsonrpc\";\n break;\n case \"ropsten\":\n host = \"https://ethereum.api.nodesmith.io/v1/ropsten/jsonrpc\";\n break;\n case \"rinkeby\":\n host = \"https://ethereum.api.nodesmith.io/v1/rinkeby/jsonrpc\";\n break;\n case \"goerli\":\n host = \"https://ethereum.api.nodesmith.io/v1/goerli/jsonrpc\";\n break;\n case \"kovan\":\n host = \"https://ethereum.api.nodesmith.io/v1/kovan/jsonrpc\";\n break;\n default:\n logger.throwArgumentError(\"unsupported network\", \"network\", arguments[0]);\n }\n\n return (host + \"?apiKey=\" + apiKey);\n }\n}\n","\"use strict\";\n\nimport { Network } from \"@ethersproject/networks\";\nimport { ConnectionInfo } from \"@ethersproject/web\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\n\nconst defaultApplicationId = \"62e1ad51b37b8e00394bda3b\";\n\n\nexport class PocketProvider extends UrlJsonRpcProvider {\n readonly applicationId: string;\n readonly applicationSecretKey: string;\n readonly loadBalancer: boolean;\n\n static getApiKey(apiKey: any): any {\n const apiKeyObj: { applicationId: string, applicationSecretKey: string, loadBalancer: boolean } = {\n applicationId: null,\n loadBalancer: true,\n applicationSecretKey: null\n };\n\n // Parse applicationId and applicationSecretKey\n if (apiKey == null) {\n apiKeyObj.applicationId = defaultApplicationId;\n\n } else if (typeof (apiKey) === \"string\") {\n apiKeyObj.applicationId = apiKey;\n\n } else if (apiKey.applicationSecretKey != null) {\n apiKeyObj.applicationId = apiKey.applicationId;\n apiKeyObj.applicationSecretKey = apiKey.applicationSecretKey;\n\n } else if (apiKey.applicationId) {\n apiKeyObj.applicationId = apiKey.applicationId;\n\n } else {\n logger.throwArgumentError(\"unsupported PocketProvider apiKey\", \"apiKey\", apiKey);\n }\n\n return apiKeyObj;\n }\n\n static getUrl(network: Network, apiKey: any): ConnectionInfo {\n let host: string = null;\n switch (network ? network.name : \"unknown\") {\n case \"goerli\":\n host = \"eth-goerli.gateway.pokt.network\";\n break;\n case \"homestead\":\n host = \"eth-mainnet.gateway.pokt.network\";\n break;\n case \"kovan\":\n host = \"poa-kovan.gateway.pokt.network\";\n break;\n case \"matic\":\n host = \"poly-mainnet.gateway.pokt.network\";\n break;\n case \"maticmum\":\n host = \"polygon-mumbai-rpc.gateway.pokt.network\";\n break;\n case \"rinkeby\":\n host = \"eth-rinkeby.gateway.pokt.network\";\n break;\n case \"ropsten\":\n host = \"eth-ropsten.gateway.pokt.network\";\n break;\n default:\n logger.throwError(\"unsupported network\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"network\",\n value: network\n });\n }\n\n const url = `https:/\\/${ host }/v1/lb/${ apiKey.applicationId }`\n\n const connection: ConnectionInfo = { headers: { }, url };\n if (apiKey.applicationSecretKey != null) {\n connection.user = \"\";\n connection.password = apiKey.applicationSecretKey\n }\n\n return connection;\n }\n\n isCommunityResource(): boolean {\n return (this.applicationId === defaultApplicationId);\n }\n}\n","\"use strict\";\n\nimport {\n Block,\n BlockTag,\n EventType,\n FeeData,\n Filter,\n Log,\n Listener,\n Provider,\n TransactionReceipt,\n TransactionRequest,\n TransactionResponse\n} from \"@ethersproject/abstract-provider\";\n\nimport { getNetwork } from \"@ethersproject/networks\";\nimport { Network, Networkish } from \"@ethersproject/networks\";\n\nimport { BaseProvider, EnsProvider, EnsResolver, Resolver } from \"./base-provider\";\n\nimport { AlchemyProvider, AlchemyWebSocketProvider } from \"./alchemy-provider\";\nimport { AnkrProvider } from \"./ankr-provider\";\nimport { CloudflareProvider } from \"./cloudflare-provider\";\nimport { EtherscanProvider } from \"./etherscan-provider\";\nimport { FallbackProvider, FallbackProviderConfig } from \"./fallback-provider\";\nimport { IpcProvider } from \"./ipc-provider\";\nimport { InfuraProvider, InfuraWebSocketProvider } from \"./infura-provider\";\nimport { JsonRpcProvider, JsonRpcSigner } from \"./json-rpc-provider\";\nimport { JsonRpcBatchProvider } from \"./json-rpc-batch-provider\";\nimport { NodesmithProvider } from \"./nodesmith-provider\";\nimport { PocketProvider } from \"./pocket-provider\";\nimport { StaticJsonRpcProvider, UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\nimport { Web3Provider } from \"./web3-provider\";\nimport { WebSocketProvider } from \"./websocket-provider\";\nimport { ExternalProvider, JsonRpcFetchFunc } from \"./web3-provider\";\n\nimport { CommunityResourcable, Formatter, isCommunityResourcable, isCommunityResource, showThrottleMessage } from \"./formatter\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n////////////////////////\n// Helper Functions\n\nfunction getDefaultProvider(network?: Networkish, options?: any): BaseProvider {\n if (network == null) { network = \"homestead\"; }\n\n // If passed a URL, figure out the right type of provider based on the scheme\n if (typeof(network) === \"string\") {\n // @TODO: Add support for IpcProvider; maybe if it ends in \".ipc\"?\n\n // Handle http and ws (and their secure variants)\n const match = network.match(/^(ws|http)s?:/i);\n if (match) {\n switch (match[1].toLowerCase()) {\n case \"http\": case \"https\":\n return new JsonRpcProvider(network);\n case \"ws\": case \"wss\":\n return new WebSocketProvider(network);\n default:\n logger.throwArgumentError(\"unsupported URL scheme\", \"network\", network);\n }\n }\n }\n\n const n = getNetwork(network);\n if (!n || !n._defaultProvider) {\n logger.throwError(\"unsupported getDefaultProvider network\", Logger.errors.NETWORK_ERROR, {\n operation: \"getDefaultProvider\",\n network: network\n });\n }\n\n return n._defaultProvider({\n FallbackProvider,\n\n AlchemyProvider,\n AnkrProvider,\n CloudflareProvider,\n EtherscanProvider,\n InfuraProvider,\n JsonRpcProvider,\n NodesmithProvider,\n PocketProvider,\n Web3Provider,\n\n IpcProvider,\n }, options);\n}\n\n////////////////////////\n// Exports\n\nexport {\n\n // Abstract Providers (or Abstract-ish)\n Provider,\n BaseProvider,\n\n Resolver,\n\n UrlJsonRpcProvider,\n\n ///////////////////////\n // Concrete Providers\n\n FallbackProvider,\n\n AlchemyProvider,\n AlchemyWebSocketProvider,\n AnkrProvider,\n CloudflareProvider,\n EtherscanProvider,\n InfuraProvider,\n InfuraWebSocketProvider,\n JsonRpcProvider,\n JsonRpcBatchProvider,\n NodesmithProvider,\n PocketProvider,\n StaticJsonRpcProvider,\n Web3Provider,\n WebSocketProvider,\n\n IpcProvider,\n\n\n ///////////////////////\n // Signer\n\n JsonRpcSigner,\n\n\n ///////////////////////\n // Functions\n\n getDefaultProvider,\n getNetwork,\n isCommunityResource,\n isCommunityResourcable,\n showThrottleMessage,\n\n\n ///////////////////////\n // Objects\n\n Formatter,\n\n\n ///////////////////////\n // Types\n\n Block,\n BlockTag,\n EventType,\n FeeData,\n Filter,\n Log,\n Listener,\n TransactionReceipt,\n TransactionRequest,\n TransactionResponse,\n\n ExternalProvider,\n JsonRpcFetchFunc,\n\n FallbackProviderConfig,\n\n Network,\n Networkish,\n\n EnsProvider,\n EnsResolver,\n\n CommunityResourcable\n};\n\n","\nimport { deepCopy } from \"@ethersproject/properties\";\nimport { fetchJson } from \"@ethersproject/web\";\n\nimport { JsonRpcProvider } from \"./json-rpc-provider\";\n\n// Experimental\n\nexport class JsonRpcBatchProvider extends JsonRpcProvider {\n _pendingBatchAggregator: NodeJS.Timer;\n _pendingBatch: Array<{\n request: { method: string, params: Array, id: number, jsonrpc: \"2.0\" },\n resolve: (result: any) => void,\n reject: (error: Error) => void\n }>;\n\n send(method: string, params: Array): Promise {\n const request = {\n method: method,\n params: params,\n id: (this._nextId++),\n jsonrpc: \"2.0\"\n };\n\n if (this._pendingBatch == null) {\n this._pendingBatch = [ ];\n }\n\n const inflightRequest: any = { request, resolve: null, reject: null };\n\n const promise = new Promise((resolve, reject) => {\n inflightRequest.resolve = resolve;\n inflightRequest.reject = reject;\n });\n\n this._pendingBatch.push(inflightRequest);\n\n if (!this._pendingBatchAggregator) {\n // Schedule batch for next event loop + short duration\n this._pendingBatchAggregator = setTimeout(() => {\n\n // Get teh current batch and clear it, so new requests\n // go into the next batch\n const batch = this._pendingBatch;\n this._pendingBatch = null;\n this._pendingBatchAggregator = null;\n\n // Get the request as an array of requests\n const request = batch.map((inflight) => inflight.request);\n\n this.emit(\"debug\", {\n action: \"requestBatch\",\n request: deepCopy(request),\n provider: this\n });\n\n return fetchJson(this.connection, JSON.stringify(request)).then((result) => {\n this.emit(\"debug\", {\n action: \"response\",\n request: request,\n response: result,\n provider: this\n });\n\n // For each result, feed it to the correct Promise, depending\n // on whether it was a success or error\n batch.forEach((inflightRequest, index) => {\n const payload = result[index];\n if (payload.error) {\n const error = new Error(payload.error.message);\n (error).code = payload.error.code;\n (error).data = payload.error.data;\n inflightRequest.reject(error);\n } else {\n inflightRequest.resolve(payload.result);\n }\n });\n\n }, (error) => {\n this.emit(\"debug\", {\n action: \"response\",\n error: error,\n request: request,\n provider: this\n });\n\n batch.forEach((inflightRequest) => {\n inflightRequest.reject(error);\n });\n });\n\n }, 10);\n }\n\n return promise;\n }\n}\n","\"use strict\";\n\n// See: https://github.com/ethereum/wiki/wiki/JSON-RPC\n\nimport { Provider, TransactionRequest, TransactionResponse } from \"@ethersproject/abstract-provider\";\nimport { Signer, TypedDataDomain, TypedDataField, TypedDataSigner } from \"@ethersproject/abstract-signer\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { Bytes, hexlify, hexValue, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { _TypedDataEncoder } from \"@ethersproject/hash\";\nimport { Network, Networkish } from \"@ethersproject/networks\";\nimport { checkProperties, deepCopy, Deferrable, defineReadOnly, getStatic, resolveProperties, shallowCopy } from \"@ethersproject/properties\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\nimport { AccessList, accessListify } from \"@ethersproject/transactions\";\nimport { ConnectionInfo, fetchJson, poll } from \"@ethersproject/web\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { BaseProvider, Event } from \"./base-provider\";\n\n\nconst errorGas = [ \"call\", \"estimateGas\" ];\n\nfunction spelunk(value: any, requireData: boolean): null | { message: string, data: null | string } {\n if (value == null) { return null; }\n\n // These *are* the droids we're looking for.\n if (typeof(value.message) === \"string\" && value.message.match(\"reverted\")) {\n const data = isHexString(value.data) ? value.data: null;\n if (!requireData || data) {\n return { message: value.message, data };\n }\n }\n\n // Spelunk further...\n if (typeof(value) === \"object\") {\n for (const key in value) {\n const result = spelunk(value[key], requireData);\n if (result) { return result; }\n }\n return null;\n }\n\n // Might be a JSON string we can further descend...\n if (typeof(value) === \"string\") {\n try {\n return spelunk(JSON.parse(value), requireData);\n } catch (error) { }\n }\n\n return null;\n}\n\nfunction checkError(method: string, error: any, params: any): any {\n\n const transaction = params.transaction || params.signedTransaction;\n\n // Undo the \"convenience\" some nodes are attempting to prevent backwards\n // incompatibility; maybe for v6 consider forwarding reverts as errors\n if (method === \"call\") {\n const result = spelunk(error, true);\n if (result) { return result.data; }\n\n // Nothing descriptive..\n logger.throwError(\"missing revert data in call exception; Transaction reverted without a reason string\", Logger.errors.CALL_EXCEPTION, {\n data: \"0x\", transaction, error\n });\n }\n\n if (method === \"estimateGas\") {\n // Try to find something, with a preference on SERVER_ERROR body\n let result = spelunk(error.body, false);\n if (result == null) { result = spelunk(error, false); }\n\n // Found \"reverted\", this is a CALL_EXCEPTION\n if (result) {\n logger.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n reason: result.message, method, transaction, error\n });\n }\n }\n\n // @TODO: Should we spelunk for message too?\n\n let message = error.message;\n if (error.code === Logger.errors.SERVER_ERROR && error.error && typeof(error.error.message) === \"string\") {\n message = error.error.message;\n } else if (typeof(error.body) === \"string\") {\n message = error.body;\n } else if (typeof(error.responseText) === \"string\") {\n message = error.responseText;\n }\n message = (message || \"\").toLowerCase();\n\n // \"insufficient funds for gas * price + value + cost(data)\"\n if (message.match(/insufficient funds|base fee exceeds gas limit|InsufficientFunds/i)) {\n logger.throwError(\"insufficient funds for intrinsic transaction cost\", Logger.errors.INSUFFICIENT_FUNDS, {\n error, method, transaction\n });\n }\n\n // \"nonce too low\"\n if (message.match(/nonce (is )?too low/i)) {\n logger.throwError(\"nonce has already been used\", Logger.errors.NONCE_EXPIRED, {\n error, method, transaction\n });\n }\n\n // \"replacement transaction underpriced\"\n if (message.match(/replacement transaction underpriced|transaction gas price.*too low/i)) {\n logger.throwError(\"replacement fee too low\", Logger.errors.REPLACEMENT_UNDERPRICED, {\n error, method, transaction\n });\n }\n\n // \"replacement transaction underpriced\"\n if (message.match(/only replay-protected/i)) {\n logger.throwError(\"legacy pre-eip-155 transactions not supported\", Logger.errors.UNSUPPORTED_OPERATION, {\n error, method, transaction\n });\n }\n\n if (errorGas.indexOf(method) >= 0 && message.match(/gas required exceeds allowance|always failing transaction|execution reverted|revert/)) {\n logger.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n error, method, transaction\n });\n }\n\n throw error;\n}\n\nfunction timer(timeout: number): Promise {\n return new Promise(function(resolve) {\n setTimeout(resolve, timeout);\n });\n}\n\nfunction getResult(payload: { error?: { code?: number, data?: any, message?: string }, result?: any }): any {\n if (payload.error) {\n // @TODO: not any\n const error: any = new Error(payload.error.message);\n error.code = payload.error.code;\n error.data = payload.error.data;\n throw error;\n }\n\n return payload.result;\n}\n\nfunction getLowerCase(value: string): string {\n if (value) { return value.toLowerCase(); }\n return value;\n}\n\nconst _constructorGuard = {};\n\nexport class JsonRpcSigner extends Signer implements TypedDataSigner {\n readonly provider: JsonRpcProvider;\n _index: number;\n _address: string;\n\n constructor(constructorGuard: any, provider: JsonRpcProvider, addressOrIndex?: string | number) {\n super();\n\n if (constructorGuard !== _constructorGuard) {\n throw new Error(\"do not call the JsonRpcSigner constructor directly; use provider.getSigner\");\n }\n\n defineReadOnly(this, \"provider\", provider);\n\n if (addressOrIndex == null) { addressOrIndex = 0; }\n\n if (typeof(addressOrIndex) === \"string\") {\n defineReadOnly(this, \"_address\", this.provider.formatter.address(addressOrIndex));\n defineReadOnly(this, \"_index\", null);\n\n } else if (typeof(addressOrIndex) === \"number\") {\n defineReadOnly(this, \"_index\", addressOrIndex);\n defineReadOnly(this, \"_address\", null);\n\n } else {\n logger.throwArgumentError(\"invalid address or index\", \"addressOrIndex\", addressOrIndex);\n }\n }\n\n connect(provider: Provider): JsonRpcSigner {\n return logger.throwError(\"cannot alter JSON-RPC Signer connection\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"connect\"\n });\n }\n\n connectUnchecked(): JsonRpcSigner {\n return new UncheckedJsonRpcSigner(_constructorGuard, this.provider, this._address || this._index);\n }\n\n getAddress(): Promise {\n if (this._address) {\n return Promise.resolve(this._address);\n }\n\n return this.provider.send(\"eth_accounts\", []).then((accounts) => {\n if (accounts.length <= this._index) {\n logger.throwError(\"unknown account #\" + this._index, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"getAddress\"\n });\n }\n return this.provider.formatter.address(accounts[this._index])\n });\n }\n\n sendUncheckedTransaction(transaction: Deferrable): Promise {\n transaction = shallowCopy(transaction);\n\n const fromAddress = this.getAddress().then((address) => {\n if (address) { address = address.toLowerCase(); }\n return address;\n });\n\n // The JSON-RPC for eth_sendTransaction uses 90000 gas; if the user\n // wishes to use this, it is easy to specify explicitly, otherwise\n // we look it up for them.\n if (transaction.gasLimit == null) {\n const estimate = shallowCopy(transaction);\n estimate.from = fromAddress;\n transaction.gasLimit = this.provider.estimateGas(estimate);\n }\n\n if (transaction.to != null) {\n transaction.to = Promise.resolve(transaction.to).then(async (to) => {\n if (to == null) { return null; }\n const address = await this.provider.resolveName(to);\n if (address == null) {\n logger.throwArgumentError(\"provided ENS name resolves to null\", \"tx.to\", to);\n }\n return address;\n });\n }\n\n return resolveProperties({\n tx: resolveProperties(transaction),\n sender: fromAddress\n }).then(({ tx, sender }) => {\n\n if (tx.from != null) {\n if (tx.from.toLowerCase() !== sender) {\n logger.throwArgumentError(\"from address mismatch\", \"transaction\", transaction);\n }\n } else {\n tx.from = sender;\n }\n\n const hexTx = (this.provider.constructor).hexlifyTransaction(tx, { from: true });\n\n return this.provider.send(\"eth_sendTransaction\", [ hexTx ]).then((hash) => {\n return hash;\n }, (error) => {\n if (typeof(error.message) === \"string\" && error.message.match(/user denied/i)) {\n logger.throwError(\"user rejected transaction\", Logger.errors.ACTION_REJECTED, {\n action: \"sendTransaction\",\n transaction: tx\n });\n }\n\n return checkError(\"sendTransaction\", error, hexTx);\n });\n });\n }\n\n signTransaction(transaction: Deferrable): Promise {\n return logger.throwError(\"signing transactions is unsupported\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"signTransaction\"\n });\n }\n\n async sendTransaction(transaction: Deferrable): Promise {\n // This cannot be mined any earlier than any recent block\n const blockNumber = await this.provider._getInternalBlockNumber(100 + 2 * this.provider.pollingInterval);\n\n // Send the transaction\n const hash = await this.sendUncheckedTransaction(transaction);\n\n try {\n // Unfortunately, JSON-RPC only provides and opaque transaction hash\n // for a response, and we need the actual transaction, so we poll\n // for it; it should show up very quickly\n return await poll(async () => {\n const tx = await this.provider.getTransaction(hash);\n if (tx === null) { return undefined; }\n return this.provider._wrapTransaction(tx, hash, blockNumber);\n }, { oncePoll: this.provider });\n } catch (error) {\n (error).transactionHash = hash;\n throw error;\n }\n }\n\n async signMessage(message: Bytes | string): Promise {\n const data = ((typeof(message) === \"string\") ? toUtf8Bytes(message): message);\n const address = await this.getAddress();\n try {\n return await this.provider.send(\"personal_sign\", [ hexlify(data), address.toLowerCase() ]);\n } catch (error) {\n if (typeof(error.message) === \"string\" && error.message.match(/user denied/i)) {\n logger.throwError(\"user rejected signing\", Logger.errors.ACTION_REJECTED, {\n action: \"signMessage\",\n from: address,\n messageData: message\n });\n }\n throw error;\n }\n }\n\n async _legacySignMessage(message: Bytes | string): Promise {\n const data = ((typeof(message) === \"string\") ? toUtf8Bytes(message): message);\n const address = await this.getAddress();\n\n try {\n // https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign\n return await this.provider.send(\"eth_sign\", [ address.toLowerCase(), hexlify(data) ]);\n } catch (error) {\n if (typeof(error.message) === \"string\" && error.message.match(/user denied/i)) {\n logger.throwError(\"user rejected signing\", Logger.errors.ACTION_REJECTED, {\n action: \"_legacySignMessage\",\n from: address,\n messageData: message\n });\n }\n throw error;\n }\n }\n\n async _signTypedData(domain: TypedDataDomain, types: Record>, value: Record): Promise {\n // Populate any ENS names (in-place)\n const populated = await _TypedDataEncoder.resolveNames(domain, types, value, (name: string) => {\n return this.provider.resolveName(name);\n });\n\n const address = await this.getAddress();\n\n try {\n return await this.provider.send(\"eth_signTypedData_v4\", [\n address.toLowerCase(),\n JSON.stringify(_TypedDataEncoder.getPayload(populated.domain, types, populated.value))\n ]);\n } catch (error) {\n if (typeof(error.message) === \"string\" && error.message.match(/user denied/i)) {\n logger.throwError(\"user rejected signing\", Logger.errors.ACTION_REJECTED, {\n action: \"_signTypedData\",\n from: address,\n messageData: { domain: populated.domain, types, value: populated.value }\n });\n }\n throw error;\n }\n }\n\n async unlock(password: string): Promise {\n const provider = this.provider;\n\n const address = await this.getAddress();\n\n return provider.send(\"personal_unlockAccount\", [ address.toLowerCase(), password, null ]);\n }\n}\n\nclass UncheckedJsonRpcSigner extends JsonRpcSigner {\n sendTransaction(transaction: Deferrable): Promise {\n return this.sendUncheckedTransaction(transaction).then((hash) => {\n return {\n hash: hash,\n nonce: null,\n gasLimit: null,\n gasPrice: null,\n data: null,\n value: null,\n chainId: null,\n confirmations: 0,\n from: null,\n wait: (confirmations?: number) => { return this.provider.waitForTransaction(hash, confirmations); }\n };\n });\n }\n}\n\nconst allowedTransactionKeys: { [ key: string ]: boolean } = {\n chainId: true, data: true, gasLimit: true, gasPrice:true, nonce: true, to: true, value: true,\n type: true, accessList: true,\n maxFeePerGas: true, maxPriorityFeePerGas: true\n}\n\nexport class JsonRpcProvider extends BaseProvider {\n readonly connection: ConnectionInfo;\n\n _pendingFilter: Promise;\n _nextId: number;\n\n // During any given event loop, the results for a given call will\n // all be the same, so we can dedup the calls to save requests and\n // bandwidth. @TODO: Try out generalizing this against send?\n _eventLoopCache: Record>;\n get _cache(): Record> {\n if (this._eventLoopCache == null) {\n this._eventLoopCache = { };\n }\n return this._eventLoopCache;\n }\n\n constructor(url?: ConnectionInfo | string, network?: Networkish) {\n let networkOrReady: Networkish | Promise = network;\n\n // The network is unknown, query the JSON-RPC for it\n if (networkOrReady == null) {\n networkOrReady = new Promise((resolve, reject) => {\n setTimeout(() => {\n this.detectNetwork().then((network) => {\n resolve(network);\n }, (error) => {\n reject(error);\n });\n }, 0);\n });\n }\n\n super(networkOrReady);\n\n // Default URL\n if (!url) { url = getStatic<() => string>(this.constructor, \"defaultUrl\")(); }\n\n if (typeof(url) === \"string\") {\n defineReadOnly(this, \"connection\",Object.freeze({\n url: url\n }));\n } else {\n defineReadOnly(this, \"connection\", Object.freeze(shallowCopy(url)));\n }\n\n this._nextId = 42;\n }\n\n static defaultUrl(): string {\n return \"http:/\\/localhost:8545\";\n }\n\n detectNetwork(): Promise {\n if (!this._cache[\"detectNetwork\"]) {\n this._cache[\"detectNetwork\"] = this._uncachedDetectNetwork();\n\n // Clear this cache at the beginning of the next event loop\n setTimeout(() => {\n this._cache[\"detectNetwork\"] = null;\n }, 0);\n }\n return this._cache[\"detectNetwork\"];\n }\n\n async _uncachedDetectNetwork(): Promise {\n await timer(0);\n\n let chainId = null;\n try {\n chainId = await this.send(\"eth_chainId\", [ ]);\n } catch (error) {\n try {\n chainId = await this.send(\"net_version\", [ ]);\n } catch (error) { }\n }\n\n if (chainId != null) {\n const getNetwork = getStatic<(network: Networkish) => Network>(this.constructor, \"getNetwork\");\n try {\n return getNetwork(BigNumber.from(chainId).toNumber());\n } catch (error) {\n return logger.throwError(\"could not detect network\", Logger.errors.NETWORK_ERROR, {\n chainId: chainId,\n event: \"invalidNetwork\",\n serverError: error\n });\n }\n }\n\n return logger.throwError(\"could not detect network\", Logger.errors.NETWORK_ERROR, {\n event: \"noNetwork\"\n });\n }\n\n getSigner(addressOrIndex?: string | number): JsonRpcSigner {\n return new JsonRpcSigner(_constructorGuard, this, addressOrIndex);\n }\n\n getUncheckedSigner(addressOrIndex?: string | number): UncheckedJsonRpcSigner {\n return this.getSigner(addressOrIndex).connectUnchecked();\n }\n\n listAccounts(): Promise> {\n return this.send(\"eth_accounts\", []).then((accounts: Array) => {\n return accounts.map((a) => this.formatter.address(a));\n });\n }\n\n send(method: string, params: Array): Promise {\n const request = {\n method: method,\n params: params,\n id: (this._nextId++),\n jsonrpc: \"2.0\"\n };\n\n this.emit(\"debug\", {\n action: \"request\",\n request: deepCopy(request),\n provider: this\n });\n\n // We can expand this in the future to any call, but for now these\n // are the biggest wins and do not require any serializing parameters.\n const cache = ([ \"eth_chainId\", \"eth_blockNumber\" ].indexOf(method) >= 0);\n if (cache && this._cache[method]) {\n return this._cache[method];\n }\n\n const result = fetchJson(this.connection, JSON.stringify(request), getResult).then((result) => {\n this.emit(\"debug\", {\n action: \"response\",\n request: request,\n response: result,\n provider: this\n });\n\n return result;\n\n }, (error) => {\n this.emit(\"debug\", {\n action: \"response\",\n error: error,\n request: request,\n provider: this\n });\n\n throw error;\n });\n\n // Cache the fetch, but clear it on the next event loop\n if (cache) {\n this._cache[method] = result;\n setTimeout(() => {\n this._cache[method] = null;\n }, 0);\n }\n\n return result;\n }\n\n prepareRequest(method: string, params: any): [ string, Array ] {\n switch (method) {\n case \"getBlockNumber\":\n return [ \"eth_blockNumber\", [] ];\n\n case \"getGasPrice\":\n return [ \"eth_gasPrice\", [] ];\n\n case \"getBalance\":\n return [ \"eth_getBalance\", [ getLowerCase(params.address), params.blockTag ] ];\n\n case \"getTransactionCount\":\n return [ \"eth_getTransactionCount\", [ getLowerCase(params.address), params.blockTag ] ];\n\n case \"getCode\":\n return [ \"eth_getCode\", [ getLowerCase(params.address), params.blockTag ] ];\n\n case \"getStorageAt\":\n return [ \"eth_getStorageAt\", [ getLowerCase(params.address), hexZeroPad(params.position, 32), params.blockTag ] ];\n\n case \"sendTransaction\":\n return [ \"eth_sendRawTransaction\", [ params.signedTransaction ] ]\n\n case \"getBlock\":\n if (params.blockTag) {\n return [ \"eth_getBlockByNumber\", [ params.blockTag, !!params.includeTransactions ] ];\n } else if (params.blockHash) {\n return [ \"eth_getBlockByHash\", [ params.blockHash, !!params.includeTransactions ] ];\n }\n return null;\n\n case \"getTransaction\":\n return [ \"eth_getTransactionByHash\", [ params.transactionHash ] ];\n\n case \"getTransactionReceipt\":\n return [ \"eth_getTransactionReceipt\", [ params.transactionHash ] ];\n\n case \"call\": {\n const hexlifyTransaction = getStatic<(t: TransactionRequest, a?: { [key: string]: boolean }) => { [key: string]: string }>(this.constructor, \"hexlifyTransaction\");\n return [ \"eth_call\", [ hexlifyTransaction(params.transaction, { from: true }), params.blockTag ] ];\n }\n\n case \"estimateGas\": {\n const hexlifyTransaction = getStatic<(t: TransactionRequest, a?: { [key: string]: boolean }) => { [key: string]: string }>(this.constructor, \"hexlifyTransaction\");\n return [ \"eth_estimateGas\", [ hexlifyTransaction(params.transaction, { from: true }) ] ];\n }\n\n case \"getLogs\":\n if (params.filter && params.filter.address != null) {\n params.filter.address = getLowerCase(params.filter.address);\n }\n return [ \"eth_getLogs\", [ params.filter ] ];\n\n default:\n break;\n }\n\n return null;\n }\n\n async perform(method: string, params: any): Promise {\n // Legacy networks do not like the type field being passed along (which\n // is fair), so we delete type if it is 0 and a non-EIP-1559 network\n if (method === \"call\" || method === \"estimateGas\") {\n const tx = params.transaction;\n if (tx && tx.type != null && BigNumber.from(tx.type).isZero()) {\n // If there are no EIP-1559 properties, it might be non-EIP-1559\n if (tx.maxFeePerGas == null && tx.maxPriorityFeePerGas == null) {\n const feeData = await this.getFeeData();\n if (feeData.maxFeePerGas == null && feeData.maxPriorityFeePerGas == null) {\n // Network doesn't know about EIP-1559 (and hence type)\n params = shallowCopy(params);\n params.transaction = shallowCopy(tx);\n delete params.transaction.type;\n }\n }\n }\n }\n\n const args = this.prepareRequest(method, params);\n\n if (args == null) {\n logger.throwError(method + \" not implemented\", Logger.errors.NOT_IMPLEMENTED, { operation: method });\n }\n try {\n return await this.send(args[0], args[1])\n } catch (error) {\n return checkError(method, error, params);\n }\n }\n\n _startEvent(event: Event): void {\n if (event.tag === \"pending\") { this._startPending(); }\n super._startEvent(event);\n }\n\n _startPending(): void {\n if (this._pendingFilter != null) { return; }\n const self = this;\n\n const pendingFilter: Promise = this.send(\"eth_newPendingTransactionFilter\", []);\n this._pendingFilter = pendingFilter;\n\n pendingFilter.then(function(filterId) {\n function poll() {\n self.send(\"eth_getFilterChanges\", [ filterId ]).then(function(hashes: Array) {\n if (self._pendingFilter != pendingFilter) { return null; }\n\n let seq = Promise.resolve();\n hashes.forEach(function(hash) {\n // @TODO: This should be garbage collected at some point... How? When?\n self._emitted[\"t:\" + hash.toLowerCase()] = \"pending\";\n seq = seq.then(function() {\n return self.getTransaction(hash).then(function(tx) {\n self.emit(\"pending\", tx);\n return null;\n });\n });\n });\n\n return seq.then(function() {\n return timer(1000);\n });\n }).then(function() {\n if (self._pendingFilter != pendingFilter) {\n self.send(\"eth_uninstallFilter\", [ filterId ]);\n return;\n }\n setTimeout(function() { poll(); }, 0);\n\n return null;\n }).catch((error: Error) => { });\n }\n poll();\n\n return filterId;\n }).catch((error: Error) => { });\n }\n\n _stopEvent(event: Event): void {\n if (event.tag === \"pending\" && this.listenerCount(\"pending\") === 0) {\n this._pendingFilter = null;\n }\n super._stopEvent(event);\n }\n\n // Convert an ethers.js transaction into a JSON-RPC transaction\n // - gasLimit => gas\n // - All values hexlified\n // - All numeric values zero-striped\n // - All addresses are lowercased\n // NOTE: This allows a TransactionRequest, but all values should be resolved\n // before this is called\n // @TODO: This will likely be removed in future versions and prepareRequest\n // will be the preferred method for this.\n static hexlifyTransaction(transaction: TransactionRequest, allowExtra?: { [key: string]: boolean }): { [key: string]: string | AccessList } {\n // Check only allowed properties are given\n const allowed = shallowCopy(allowedTransactionKeys);\n if (allowExtra) {\n for (const key in allowExtra) {\n if (allowExtra[key]) { allowed[key] = true; }\n }\n }\n\n checkProperties(transaction, allowed);\n\n const result: { [key: string]: string | AccessList } = {};\n\n // JSON-RPC now requires numeric values to be \"quantity\" values\n [\"chainId\", \"gasLimit\", \"gasPrice\", \"type\", \"maxFeePerGas\", \"maxPriorityFeePerGas\", \"nonce\", \"value\"].forEach(function(key) {\n if ((transaction)[key] == null) { return; }\n const value = hexValue(BigNumber.from((transaction)[key]));\n if (key === \"gasLimit\") { key = \"gas\"; }\n result[key] = value;\n });\n\n [\"from\", \"to\", \"data\"].forEach(function(key) {\n if ((transaction)[key] == null) { return; }\n result[key] = hexlify((transaction)[key]);\n });\n\n if ((transaction).accessList) {\n result[\"accessList\"] = accessListify((transaction).accessList);\n }\n\n return result;\n }\n}\n","\n\"use strict\";\n\nimport { Network, Networkish } from \"@ethersproject/networks\";\nimport { defineReadOnly, getStatic } from \"@ethersproject/properties\";\nimport { ConnectionInfo } from \"@ethersproject/web\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { CommunityResourcable } from \"./formatter\";\nimport { JsonRpcProvider, JsonRpcSigner } from \"./json-rpc-provider\";\n\ntype getUrlFunc = (network: Network, apiKey: string) => string | ConnectionInfo;\n\n// A StaticJsonRpcProvider is useful when you *know* for certain that\n// the backend will never change, as it never calls eth_chainId to\n// verify its backend. However, if the backend does change, the effects\n// are undefined and may include:\n// - inconsistent results\n// - locking up the UI\n// - block skew warnings\n// - wrong results\n// If the network is not explicit (i.e. auto-detection is expected), the\n// node MUST be running and available to respond to requests BEFORE this\n// is instantiated.\nexport class StaticJsonRpcProvider extends JsonRpcProvider {\n async detectNetwork(): Promise {\n let network = this.network;\n if (network == null) {\n network = await super.detectNetwork();\n\n if (!network) {\n logger.throwError(\"no network detected\", Logger.errors.UNKNOWN_ERROR, { });\n }\n\n // If still not set, set it\n if (this._network == null) {\n // A static network does not support \"any\"\n defineReadOnly(this, \"_network\", network);\n\n this.emit(\"network\", network, null);\n }\n }\n return network;\n }\n}\n\nexport abstract class UrlJsonRpcProvider extends StaticJsonRpcProvider implements CommunityResourcable {\n readonly apiKey: any;\n\n constructor(network?: Networkish, apiKey?: any) {\n logger.checkAbstract(new.target, UrlJsonRpcProvider);\n\n // Normalize the Network and API Key\n network = getStatic<(network: Networkish) => Network>(new.target, \"getNetwork\")(network);\n apiKey = getStatic<(apiKey: string) => string>(new.target, \"getApiKey\")(apiKey);\n\n const connection = getStatic(new.target, \"getUrl\")(network, apiKey);\n\n super(connection, network);\n\n if (typeof(apiKey) === \"string\") {\n defineReadOnly(this, \"apiKey\", apiKey);\n } else if (apiKey != null) {\n Object.keys(apiKey).forEach((key) => {\n defineReadOnly(this, key, apiKey[key]);\n });\n }\n }\n\n _startPending(): void {\n logger.warn(\"WARNING: API provider does not support pending filters\");\n }\n\n isCommunityResource(): boolean {\n return false;\n }\n\n getSigner(address?: string): JsonRpcSigner {\n return logger.throwError(\n \"API provider does not support signing\",\n Logger.errors.UNSUPPORTED_OPERATION,\n { operation: \"getSigner\" }\n );\n }\n\n listAccounts(): Promise> {\n return Promise.resolve([]);\n }\n\n // Return a defaultApiKey if null, otherwise validate the API key\n static getApiKey(apiKey: any): any {\n return apiKey;\n }\n\n // Returns the url or connection for the given network and API key. The\n // API key will have been sanitized by the getApiKey first, so any validation\n // or transformations can be done there.\n static getUrl(network: Network, apiKey: any): string | ConnectionInfo {\n return logger.throwError(\"not implemented; sub-classes must override getUrl\", Logger.errors.NOT_IMPLEMENTED, {\n operation: \"getUrl\"\n });\n }\n}\n","\"use strict\";\n\nimport { Networkish } from \"@ethersproject/networks\";\nimport { deepCopy, defineReadOnly } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { JsonRpcProvider } from \"./json-rpc-provider\";\n\n// Exported Types\nexport type ExternalProvider = {\n isMetaMask?: boolean;\n isStatus?: boolean;\n host?: string;\n path?: string;\n sendAsync?: (request: { method: string, params?: Array }, callback: (error: any, response: any) => void) => void\n send?: (request: { method: string, params?: Array }, callback: (error: any, response: any) => void) => void\n request?: (request: { method: string, params?: Array }) => Promise\n}\n\nlet _nextId = 1;\n\nexport type JsonRpcFetchFunc = (method: string, params?: Array) => Promise;\n\ntype Web3LegacySend = (request: any, callback: (error: Error, response: any) => void) => void;\n\nfunction buildWeb3LegacyFetcher(provider: ExternalProvider, sendFunc: Web3LegacySend) : JsonRpcFetchFunc {\n const fetcher = \"Web3LegacyFetcher\";\n\n return function(method: string, params: Array): Promise {\n const request = {\n method: method,\n params: params,\n id: (_nextId++),\n jsonrpc: \"2.0\"\n };\n\n return new Promise((resolve, reject) => {\n this.emit(\"debug\", {\n action: \"request\",\n fetcher,\n request: deepCopy(request),\n provider: this\n });\n\n sendFunc(request, (error, response) => {\n\n if (error) {\n this.emit(\"debug\", {\n action: \"response\",\n fetcher,\n error,\n request,\n provider: this\n });\n\n return reject(error);\n }\n\n this.emit(\"debug\", {\n action: \"response\",\n fetcher,\n request,\n response,\n provider: this\n });\n\n if (response.error) {\n const error = new Error(response.error.message);\n (error).code = response.error.code;\n (error).data = response.error.data;\n return reject(error);\n }\n\n resolve(response.result);\n });\n });\n }\n}\n\nfunction buildEip1193Fetcher(provider: ExternalProvider): JsonRpcFetchFunc {\n return function(method: string, params: Array): Promise {\n if (params == null) { params = [ ]; }\n\n const request = { method, params };\n\n this.emit(\"debug\", {\n action: \"request\",\n fetcher: \"Eip1193Fetcher\",\n request: deepCopy(request),\n provider: this\n });\n\n return provider.request(request).then((response) => {\n this.emit(\"debug\", {\n action: \"response\",\n fetcher: \"Eip1193Fetcher\",\n request,\n response,\n provider: this\n });\n\n return response;\n\n }, (error) => {\n this.emit(\"debug\", {\n action: \"response\",\n fetcher: \"Eip1193Fetcher\",\n request,\n error,\n provider: this\n });\n\n throw error;\n });\n }\n}\n\nexport class Web3Provider extends JsonRpcProvider {\n readonly provider: ExternalProvider;\n readonly jsonRpcFetchFunc: JsonRpcFetchFunc;\n\n constructor(provider: ExternalProvider | JsonRpcFetchFunc, network?: Networkish) {\n if (provider == null) {\n logger.throwArgumentError(\"missing provider\", \"provider\", provider);\n }\n\n let path: string = null;\n let jsonRpcFetchFunc: JsonRpcFetchFunc = null;\n let subprovider: ExternalProvider = null;\n\n if (typeof(provider) === \"function\") {\n path = \"unknown:\";\n jsonRpcFetchFunc = provider;\n\n } else {\n path = provider.host || provider.path || \"\";\n if (!path && provider.isMetaMask) {\n path = \"metamask\";\n }\n\n subprovider = provider;\n\n if (provider.request) {\n if (path === \"\") { path = \"eip-1193:\"; }\n jsonRpcFetchFunc = buildEip1193Fetcher(provider);\n } else if (provider.sendAsync) {\n jsonRpcFetchFunc = buildWeb3LegacyFetcher(provider, provider.sendAsync.bind(provider));\n } else if (provider.send) {\n jsonRpcFetchFunc = buildWeb3LegacyFetcher(provider, provider.send.bind(provider));\n } else {\n logger.throwArgumentError(\"unsupported provider\", \"provider\", provider);\n }\n\n if (!path) { path = \"unknown:\"; }\n }\n\n super(path, network);\n\n defineReadOnly(this, \"jsonRpcFetchFunc\", jsonRpcFetchFunc);\n defineReadOnly(this, \"provider\", subprovider);\n }\n\n send(method: string, params: Array): Promise {\n return this.jsonRpcFetchFunc(method, params);\n }\n}\n","\"use strict\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\n\nlet WS: any = null;\n\ntry {\n WS = (WebSocket as any);\n if (WS == null) { throw new Error(\"inject please\"); }\n} catch (error) {\n const logger = new Logger(version);\n WS = function() {\n logger.throwError(\"WebSockets not supported in this environment\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new WebSocket()\"\n });\n }\n}\n//export default WS;\n//module.exports = WS;\nexport { WS as WebSocket };\n","\"use strict\";\n\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { Network, Networkish } from \"@ethersproject/networks\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\n\nimport { Event } from \"./base-provider\";\nimport { JsonRpcProvider } from \"./json-rpc-provider\";\nimport { WebSocket } from \"./ws\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n/**\n * Notes:\n *\n * This provider differs a bit from the polling providers. One main\n * difference is how it handles consistency. The polling providers\n * will stall responses to ensure a consistent state, while this\n * WebSocket provider assumes the connected backend will manage this.\n *\n * For example, if a polling provider emits an event which indicates\n * the event occurred in blockhash XXX, a call to fetch that block by\n * its hash XXX, if not present will retry until it is present. This\n * can occur when querying a pool of nodes that are mildly out of sync\n * with each other.\n */\n\nlet NextId = 1;\n\nexport type InflightRequest = {\n callback: (error: Error, result: any) => void;\n payload: string;\n};\n\nexport type Subscription = {\n tag: string;\n processFunc: (payload: any) => void;\n};\n\nexport interface WebSocketLike {\n onopen: ((...args: Array) => any) | null;\n onmessage: ((...args: Array) => any) | null;\n onerror: ((...args: Array) => any) | null;\n\n readyState: number;\n\n send(payload: any): void;\n close(code?: number, reason?: string): void;\n}\n\n// For more info about the Real-time Event API see:\n// https://geth.ethereum.org/docs/rpc/pubsub\n\nexport class WebSocketProvider extends JsonRpcProvider {\n readonly _websocket: any;\n readonly _requests: { [ name: string ]: InflightRequest };\n readonly _detectNetwork: Promise;\n\n // Maps event tag to subscription ID (we dedupe identical events)\n readonly _subIds: { [ tag: string ]: Promise };\n\n // Maps Subscription ID to Subscription\n readonly _subs: { [ name: string ]: Subscription };\n\n _wsReady: boolean;\n\n constructor(url: string | WebSocketLike, network?: Networkish) {\n\n // This will be added in the future; please open an issue to expedite\n if (network === \"any\") {\n logger.throwError(\"WebSocketProvider does not support 'any' network yet\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"network:any\"\n });\n }\n\n if (typeof(url) === \"string\") {\n super(url, network);\n } else {\n super(\"_websocket\", network);\n }\n\n this._pollingInterval = -1;\n\n this._wsReady = false;\n\n if (typeof(url) === \"string\") {\n defineReadOnly(this, \"_websocket\", new WebSocket(this.connection.url));\n } else {\n defineReadOnly(this, \"_websocket\", url);\n }\n\n defineReadOnly(this, \"_requests\", { });\n defineReadOnly(this, \"_subs\", { });\n defineReadOnly(this, \"_subIds\", { });\n defineReadOnly(this, \"_detectNetwork\", super.detectNetwork());\n\n // Stall sending requests until the socket is open...\n this.websocket.onopen = () => {\n this._wsReady = true;\n Object.keys(this._requests).forEach((id) => {\n this.websocket.send(this._requests[id].payload);\n });\n };\n\n this.websocket.onmessage = (messageEvent: { data: string }) => {\n const data = messageEvent.data;\n const result = JSON.parse(data);\n if (result.id != null) {\n const id = String(result.id);\n const request = this._requests[id];\n delete this._requests[id];\n\n if (result.result !== undefined) {\n request.callback(null, result.result);\n\n this.emit(\"debug\", {\n action: \"response\",\n request: JSON.parse(request.payload),\n response: result.result,\n provider: this\n });\n\n } else {\n let error: Error = null;\n if (result.error) {\n error = new Error(result.error.message || \"unknown error\");\n defineReadOnly(error, \"code\", result.error.code || null);\n defineReadOnly(error, \"response\", data);\n } else {\n error = new Error(\"unknown error\");\n }\n\n request.callback(error, undefined);\n\n this.emit(\"debug\", {\n action: \"response\",\n error: error,\n request: JSON.parse(request.payload),\n provider: this\n });\n\n }\n\n } else if (result.method === \"eth_subscription\") {\n // Subscription...\n const sub = this._subs[result.params.subscription];\n if (sub) {\n //this.emit.apply(this, );\n sub.processFunc(result.params.result)\n }\n\n } else {\n console.warn(\"this should not happen\");\n }\n };\n\n // This Provider does not actually poll, but we want to trigger\n // poll events for things that depend on them (like stalling for\n // block and transaction lookups)\n const fauxPoll = setInterval(() => {\n this.emit(\"poll\");\n }, 1000);\n if (fauxPoll.unref) { fauxPoll.unref(); }\n }\n\n // Cannot narrow the type of _websocket, as that is not backwards compatible\n // so we add a getter and let the WebSocket be a public API.\n get websocket(): WebSocketLike { return this._websocket; }\n\n detectNetwork(): Promise {\n return this._detectNetwork;\n }\n\n get pollingInterval(): number {\n return 0;\n }\n\n resetEventsBlock(blockNumber: number): void {\n logger.throwError(\"cannot reset events block on WebSocketProvider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"resetEventBlock\"\n });\n }\n\n set pollingInterval(value: number) {\n logger.throwError(\"cannot set polling interval on WebSocketProvider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setPollingInterval\"\n });\n }\n\n async poll(): Promise {\n return null;\n }\n\n set polling(value: boolean) {\n if (!value) { return; }\n\n logger.throwError(\"cannot set polling on WebSocketProvider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setPolling\"\n });\n }\n\n send(method: string, params?: Array): Promise {\n const rid = NextId++;\n\n return new Promise((resolve, reject) => {\n function callback(error: Error, result: any) {\n if (error) { return reject(error); }\n return resolve(result);\n }\n\n const payload = JSON.stringify({\n method: method,\n params: params,\n id: rid,\n jsonrpc: \"2.0\"\n });\n\n this.emit(\"debug\", {\n action: \"request\",\n request: JSON.parse(payload),\n provider: this\n });\n\n this._requests[String(rid)] = { callback, payload };\n\n if (this._wsReady) { this.websocket.send(payload); }\n });\n }\n\n static defaultUrl(): string {\n return \"ws:/\\/localhost:8546\";\n }\n\n async _subscribe(tag: string, param: Array, processFunc: (result: any) => void): Promise {\n let subIdPromise = this._subIds[tag];\n if (subIdPromise == null) {\n subIdPromise = Promise.all(param).then((param) => {\n return this.send(\"eth_subscribe\", param);\n });\n this._subIds[tag] = subIdPromise;\n }\n const subId = await subIdPromise;\n this._subs[subId] = { tag, processFunc };\n }\n\n _startEvent(event: Event): void {\n switch (event.type) {\n case \"block\":\n this._subscribe(\"block\", [ \"newHeads\" ], (result: any) => {\n const blockNumber = BigNumber.from(result.number).toNumber();\n this._emitted.block = blockNumber;\n this.emit(\"block\", blockNumber);\n });\n break;\n\n case \"pending\":\n this._subscribe(\"pending\", [ \"newPendingTransactions\" ], (result: any) => {\n this.emit(\"pending\", result);\n });\n break;\n\n case \"filter\":\n this._subscribe(event.tag, [ \"logs\", this._getFilter(event.filter) ], (result: any) => {\n if (result.removed == null) { result.removed = false; }\n this.emit(event.filter, this.formatter.filterLog(result));\n });\n break;\n\n case \"tx\": {\n const emitReceipt = (event: Event) => {\n const hash = event.hash;\n this.getTransactionReceipt(hash).then((receipt) => {\n if (!receipt) { return; }\n this.emit(hash, receipt);\n });\n };\n\n // In case it is already mined\n emitReceipt(event);\n\n // To keep things simple, we start up a single newHeads subscription\n // to keep an eye out for transactions we are watching for.\n // Starting a subscription for an event (i.e. \"tx\") that is already\n // running is (basically) a nop.\n this._subscribe(\"tx\", [ \"newHeads\" ], (result: any) => {\n this._events.filter((e) => (e.type === \"tx\")).forEach(emitReceipt);\n });\n break;\n }\n\n // Nothing is needed\n case \"debug\":\n case \"poll\":\n case \"willPoll\":\n case \"didPoll\":\n case \"error\":\n break;\n\n default:\n console.log(\"unhandled:\", event);\n break;\n }\n }\n\n _stopEvent(event: Event): void {\n let tag = event.tag;\n\n if (event.type === \"tx\") {\n // There are remaining transaction event listeners\n if (this._events.filter((e) => (e.type === \"tx\")).length) {\n return;\n }\n tag = \"tx\";\n } else if (this.listenerCount(event.event)) {\n // There are remaining event listeners\n return;\n }\n\n const subId = this._subIds[tag];\n if (!subId) { return; }\n\n delete this._subIds[tag];\n subId.then((subId) => {\n if (!this._subs[subId]) { return; }\n delete this._subs[subId];\n this.send(\"eth_unsubscribe\", [ subId ]);\n });\n }\n\n async destroy(): Promise {\n // Wait until we have connected before trying to disconnect\n if (this.websocket.readyState === WebSocket.CONNECTING) {\n await (new Promise((resolve) => {\n this.websocket.onopen = function() {\n resolve(true);\n };\n\n this.websocket.onerror = function() {\n resolve(false);\n };\n }));\n }\n\n // Hangup\n // See: https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent#Status_codes\n this.websocket.close(1000);\n }\n}\n","export const version = \"random/5.7.0\";\n","\"use strict\";\n\nimport { arrayify } from \"@ethersproject/bytes\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n// Debugging line for testing browser lib in node\n//const window = { crypto: { getRandomValues: () => { } } };\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis\nfunction getGlobal(): any {\n if (typeof self !== 'undefined') { return self; }\n if (typeof window !== 'undefined') { return window; }\n if (typeof global !== 'undefined') { return global; }\n throw new Error('unable to locate global object');\n};\n\nconst anyGlobal = getGlobal();\n\nlet crypto: any = anyGlobal.crypto || anyGlobal.msCrypto;\nif (!crypto || !crypto.getRandomValues) {\n\n logger.warn(\"WARNING: Missing strong random number source\");\n\n crypto = {\n getRandomValues: function(buffer: Uint8Array): Uint8Array {\n return logger.throwError(\"no secure random source avaialble\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"crypto.getRandomValues\"\n });\n }\n };\n}\n\nexport function randomBytes(length: number): Uint8Array {\n if (length <= 0 || length > 1024 || (length % 1) || length != length) {\n logger.throwArgumentError(\"invalid length\", \"length\", length);\n }\n\n const result = new Uint8Array(length);\n crypto.getRandomValues(result);\n return arrayify(result);\n};\n","\"use strict\";\n\nexport function shuffled(array: Array): Array {\n array = array.slice();\n\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n const tmp = array[i];\n array[i] = array[j];\n array[j] = tmp;\n }\n\n return array;\n}\n","export const version = \"rlp/5.7.0\";\n","\"use strict\";\n\n//See: https://github.com/ethereum/wiki/wiki/RLP\n\nimport { arrayify, BytesLike, hexlify, isBytesLike } from \"@ethersproject/bytes\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nfunction arrayifyInteger(value: number): Array {\n const result = [];\n while (value) {\n result.unshift(value & 0xff);\n value >>= 8;\n }\n return result;\n}\n\nfunction unarrayifyInteger(data: Uint8Array, offset: number, length: number): number {\n let result = 0;\n for (let i = 0; i < length; i++) {\n result = (result * 256) + data[offset + i];\n }\n return result;\n}\n\nfunction _encode(object: Array | string): Array {\n if (Array.isArray(object)) {\n let payload: Array = [];\n object.forEach(function(child) {\n payload = payload.concat(_encode(child));\n });\n\n if (payload.length <= 55) {\n payload.unshift(0xc0 + payload.length)\n return payload;\n }\n\n const length = arrayifyInteger(payload.length);\n length.unshift(0xf7 + length.length);\n\n return length.concat(payload);\n\n }\n\n if (!isBytesLike(object)) {\n logger.throwArgumentError(\"RLP object must be BytesLike\", \"object\", object);\n }\n\n const data: Array = Array.prototype.slice.call(arrayify(object));\n\n if (data.length === 1 && data[0] <= 0x7f) {\n return data;\n\n } else if (data.length <= 55) {\n data.unshift(0x80 + data.length);\n return data;\n }\n\n const length = arrayifyInteger(data.length);\n length.unshift(0xb7 + length.length);\n\n return length.concat(data);\n}\n\nexport function encode(object: any): string {\n return hexlify(_encode(object));\n}\n\ntype Decoded = {\n result: any;\n consumed: number;\n};\n\nfunction _decodeChildren(data: Uint8Array, offset: number, childOffset: number, length: number): Decoded {\n const result = [];\n\n while (childOffset < offset + 1 + length) {\n const decoded = _decode(data, childOffset);\n\n result.push(decoded.result);\n\n childOffset += decoded.consumed;\n if (childOffset > offset + 1 + length) {\n logger.throwError(\"child data too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n }\n\n return {consumed: (1 + length), result: result};\n}\n\n// returns { consumed: number, result: Object }\nfunction _decode(data: Uint8Array, offset: number): { consumed: number, result: any } {\n if (data.length === 0) {\n logger.throwError(\"data too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n // Array with extra length prefix\n if (data[offset] >= 0xf8) {\n const lengthLength = data[offset] - 0xf7;\n if (offset + 1 + lengthLength > data.length) {\n logger.throwError(\"data short segment too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n const length = unarrayifyInteger(data, offset + 1, lengthLength);\n if (offset + 1 + lengthLength + length > data.length) {\n logger.throwError(\"data long segment too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n return _decodeChildren(data, offset, offset + 1 + lengthLength, lengthLength + length);\n\n } else if (data[offset] >= 0xc0) {\n const length = data[offset] - 0xc0;\n if (offset + 1 + length > data.length) {\n logger.throwError(\"data array too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n return _decodeChildren(data, offset, offset + 1, length);\n\n } else if (data[offset] >= 0xb8) {\n const lengthLength = data[offset] - 0xb7;\n if (offset + 1 + lengthLength > data.length) {\n logger.throwError(\"data array too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n const length = unarrayifyInteger(data, offset + 1, lengthLength);\n if (offset + 1 + lengthLength + length > data.length) {\n logger.throwError(\"data array too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n const result = hexlify(data.slice(offset + 1 + lengthLength, offset + 1 + lengthLength + length));\n return { consumed: (1 + lengthLength + length), result: result }\n\n } else if (data[offset] >= 0x80) {\n const length = data[offset] - 0x80;\n if (offset + 1 + length > data.length) {\n logger.throwError(\"data too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n const result = hexlify(data.slice(offset + 1, offset + 1 + length));\n return { consumed: (1 + length), result: result }\n }\n return { consumed: 1, result: hexlify(data[offset]) };\n}\n\nexport function decode(data: BytesLike): any {\n const bytes = arrayify(data);\n const decoded = _decode(bytes, 0);\n if (decoded.consumed !== bytes.length) {\n logger.throwArgumentError(\"invalid rlp data\", \"data\", data);\n }\n return decoded.result;\n}\n\n","export const version = \"sha2/5.7.0\";\n","\"use strict\";\n\nimport hash from \"hash.js\";\n//const _ripemd160 = _hash.ripemd160;\n\nimport { arrayify, BytesLike } from \"@ethersproject/bytes\";\n\nimport { SupportedAlgorithm } from \"./types\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nexport function ripemd160(data: BytesLike): string {\n return \"0x\" + (hash.ripemd160().update(arrayify(data)).digest(\"hex\"));\n}\n\nexport function sha256(data: BytesLike): string {\n return \"0x\" + (hash.sha256().update(arrayify(data)).digest(\"hex\"));\n}\n\nexport function sha512(data: BytesLike): string {\n return \"0x\" + (hash.sha512().update(arrayify(data)).digest(\"hex\"));\n}\n\nexport function computeHmac(algorithm: SupportedAlgorithm, key: BytesLike, data: BytesLike): string {\n if (!SupportedAlgorithm[algorithm]) {\n logger.throwError(\"unsupported algorithm \" + algorithm, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"hmac\",\n algorithm: algorithm\n });\n }\n\n return \"0x\" + hash.hmac((hash)[algorithm], arrayify(key)).update(arrayify(data)).digest(\"hex\");\n}\n\n","export enum SupportedAlgorithm { sha256 = \"sha256\", sha512 = \"sha512\" };\n\n","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n","'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n","'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n naf.fill(0);\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (var i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n","'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n","'use strict';\n\nvar hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature) {\n return this.ec.verify(msg, signature, this);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n","'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(Object.prototype.hasOwnProperty.call(curves, options),\n 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly) {\n var delta = msg.byteLength() * 8 - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(new BN(msg, 16));\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc) {\n msg = this._truncateToN(new BN(msg, 16));\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n","import _ec from \"elliptic\";\nvar EC = _ec.ec;\nexport { EC };\n//# sourceMappingURL=elliptic.js.map","'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n","export const version = \"signing-key/5.7.0\";\n","\"use strict\";\n\nimport { EC } from \"./elliptic\";\n\nimport { arrayify, BytesLike, hexDataLength, hexlify, hexZeroPad, Signature, SignatureLike, splitSignature } from \"@ethersproject/bytes\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nlet _curve: EC = null\nfunction getCurve() {\n if (!_curve) {\n _curve = new EC(\"secp256k1\");\n }\n return _curve;\n}\n\nexport class SigningKey {\n\n readonly curve: string;\n\n readonly privateKey: string;\n readonly publicKey: string;\n readonly compressedPublicKey: string;\n\n //readonly address: string;\n\n readonly _isSigningKey: boolean;\n\n constructor(privateKey: BytesLike) {\n defineReadOnly(this, \"curve\", \"secp256k1\");\n\n defineReadOnly(this, \"privateKey\", hexlify(privateKey));\n if (hexDataLength(this.privateKey) !== 32) {\n logger.throwArgumentError(\"invalid private key\", \"privateKey\", \"[[ REDACTED ]]\");\n }\n\n const keyPair = getCurve().keyFromPrivate(arrayify(this.privateKey));\n\n defineReadOnly(this, \"publicKey\", \"0x\" + keyPair.getPublic(false, \"hex\"));\n defineReadOnly(this, \"compressedPublicKey\", \"0x\" + keyPair.getPublic(true, \"hex\"));\n\n defineReadOnly(this, \"_isSigningKey\", true);\n }\n\n _addPoint(other: BytesLike): string {\n const p0 = getCurve().keyFromPublic(arrayify(this.publicKey));\n const p1 = getCurve().keyFromPublic(arrayify(other));\n return \"0x\" + p0.pub.add(p1.pub).encodeCompressed(\"hex\");\n }\n\n signDigest(digest: BytesLike): Signature {\n const keyPair = getCurve().keyFromPrivate(arrayify(this.privateKey));\n const digestBytes = arrayify(digest);\n if (digestBytes.length !== 32) {\n logger.throwArgumentError(\"bad digest length\", \"digest\", digest);\n }\n const signature = keyPair.sign(digestBytes, { canonical: true });\n return splitSignature({\n recoveryParam: signature.recoveryParam,\n r: hexZeroPad(\"0x\" + signature.r.toString(16), 32),\n s: hexZeroPad(\"0x\" + signature.s.toString(16), 32),\n })\n }\n\n computeSharedSecret(otherKey: BytesLike): string {\n const keyPair = getCurve().keyFromPrivate(arrayify(this.privateKey));\n const otherKeyPair = getCurve().keyFromPublic(arrayify(computePublicKey(otherKey)));\n return hexZeroPad(\"0x\" + keyPair.derive(otherKeyPair.getPublic()).toString(16), 32);\n }\n\n static isSigningKey(value: any): value is SigningKey {\n return !!(value && value._isSigningKey);\n }\n}\n\nexport function recoverPublicKey(digest: BytesLike, signature: SignatureLike): string {\n const sig = splitSignature(signature);\n const rs = { r: arrayify(sig.r), s: arrayify(sig.s) };\n return \"0x\" + getCurve().recoverPubKey(arrayify(digest), rs, sig.recoveryParam).encode(\"hex\", false);\n}\n\nexport function computePublicKey(key: BytesLike, compressed?: boolean): string {\n const bytes = arrayify(key);\n\n if (bytes.length === 32) {\n const signingKey = new SigningKey(bytes);\n if (compressed) {\n return \"0x\" + getCurve().keyFromPrivate(bytes).getPublic(true, \"hex\");\n }\n return signingKey.publicKey;\n\n } else if (bytes.length === 33) {\n if (compressed) { return hexlify(bytes); }\n return \"0x\" + getCurve().keyFromPublic(bytes).getPublic(false, \"hex\");\n\n } else if (bytes.length === 65) {\n if (!compressed) { return hexlify(bytes); }\n return \"0x\" + getCurve().keyFromPublic(bytes).getPublic(true, \"hex\");\n }\n\n return logger.throwArgumentError(\"invalid public or private key\", \"key\", \"[REDACTED]\");\n}\n\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","export const version = \"solidity/5.7.0\";\n","\"use strict\";\n\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { arrayify, concat, hexlify, zeroPad } from \"@ethersproject/bytes\";\nimport { keccak256 as hashKeccak256 } from \"@ethersproject/keccak256\";\nimport { sha256 as hashSha256 } from \"@ethersproject/sha2\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\n\nconst regexBytes = new RegExp(\"^bytes([0-9]+)$\");\nconst regexNumber = new RegExp(\"^(u?int)([0-9]*)$\");\nconst regexArray = new RegExp(\"^(.*)\\\\[([0-9]*)\\\\]$\");\n\nconst Zeros = \"0000000000000000000000000000000000000000000000000000000000000000\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n\nfunction _pack(type: string, value: any, isArray?: boolean): Uint8Array {\n switch(type) {\n case \"address\":\n if (isArray) { return zeroPad(value, 32); }\n return arrayify(value);\n case \"string\":\n return toUtf8Bytes(value);\n case \"bytes\":\n return arrayify(value);\n case \"bool\":\n value = (value ? \"0x01\": \"0x00\");\n if (isArray) { return zeroPad(value, 32); }\n return arrayify(value);\n }\n\n let match = type.match(regexNumber);\n if (match) {\n //let signed = (match[1] === \"int\")\n let size = parseInt(match[2] || \"256\")\n\n if ((match[2] && String(size) !== match[2]) || (size % 8 !== 0) || size === 0 || size > 256) {\n logger.throwArgumentError(\"invalid number type\", \"type\", type)\n }\n\n if (isArray) { size = 256; }\n\n value = BigNumber.from(value).toTwos(size);\n\n return zeroPad(value, size / 8);\n }\n\n match = type.match(regexBytes);\n if (match) {\n const size = parseInt(match[1]);\n\n if (String(size) !== match[1] || size === 0 || size > 32) {\n logger.throwArgumentError(\"invalid bytes type\", \"type\", type)\n }\n if (arrayify(value).byteLength !== size) {\n logger.throwArgumentError(`invalid value for ${ type }`, \"value\", value)\n }\n if (isArray) { return arrayify((value + Zeros).substring(0, 66)); }\n return value;\n }\n\n match = type.match(regexArray);\n if (match && Array.isArray(value)) {\n const baseType = match[1];\n const count = parseInt(match[2] || String(value.length));\n if (count != value.length) {\n logger.throwArgumentError(`invalid array length for ${ type }`, \"value\", value)\n }\n const result: Array = [];\n value.forEach(function(value) {\n result.push(_pack(baseType, value, true));\n });\n return concat(result);\n }\n\n return logger.throwArgumentError(\"invalid type\", \"type\", type)\n}\n\n// @TODO: Array Enum\n\nexport function pack(types: ReadonlyArray, values: ReadonlyArray) {\n if (types.length != values.length) {\n logger.throwArgumentError(\"wrong number of values; expected ${ types.length }\", \"values\", values)\n }\n const tight: Array = [];\n types.forEach(function(type, index) {\n tight.push(_pack(type, values[index]));\n });\n return hexlify(concat(tight));\n}\n\nexport function keccak256(types: ReadonlyArray, values: ReadonlyArray) {\n return hashKeccak256(pack(types, values));\n}\n\nexport function sha256(types: ReadonlyArray, values: ReadonlyArray) {\n return hashSha256(pack(types, values));\n}\n","\"use strict\";\n\nimport { HashZero } from \"@ethersproject/constants\";\nimport { arrayify, BytesLike, concat, hexlify } from \"@ethersproject/bytes\";\n\nimport { toUtf8Bytes, toUtf8String } from \"./utf8\";\n\n\nexport function formatBytes32String(text: string): string {\n\n // Get the bytes\n const bytes = toUtf8Bytes(text);\n\n // Check we have room for null-termination\n if (bytes.length > 31) { throw new Error(\"bytes32 string must be less than 32 bytes\"); }\n\n // Zero-pad (implicitly null-terminates)\n return hexlify(concat([ bytes, HashZero ]).slice(0, 32));\n}\n\nexport function parseBytes32String(bytes: BytesLike): string {\n const data = arrayify(bytes);\n\n // Must be 32 bytes with a null-termination\n if (data.length !== 32) { throw new Error(\"invalid bytes32 - not 32 bytes long\"); }\n if (data[31] !== 0) { throw new Error(\"invalid bytes32 string - no null terminator\"); }\n\n // Find the null termination\n let length = 31;\n while (data[length - 1] === 0) { length--; }\n\n // Determine the string value\n return toUtf8String(data.slice(0, length));\n}\n\n","\"use strict\";\n\nimport { toUtf8CodePoints, _toUtf8String, UnicodeNormalizationForm } from \"./utf8\";\n\ntype Ranged = {\n l: number, // Lo value\n h: number, // High value (less the lo)\n d?: number, // Delta/stride (default: 1)\n s?: number, // Shift (default: 1)\n e?: Array // Exceptions to skip\n};\n\ntype Table = { [ src: number ]: Array };\n\nfunction bytes2(data: string): Array {\n if ((data.length % 4) !== 0) { throw new Error(\"bad data\"); }\n let result = [];\n for (let i = 0; i < data.length; i += 4) {\n result.push(parseInt(data.substring(i, i + 4), 16));\n }\n return result;\n}\n\nfunction createTable(data: string, func?: (value: string) => Array): Table {\n if (!func) {\n func = function(value: string) { return [ parseInt(value, 16) ]; }\n }\n\n let lo = 0;\n\n let result: Table = { };\n data.split(\",\").forEach((pair) => {\n let comps = pair.split(\":\");\n lo += parseInt(comps[0], 16);\n result[lo] = func(comps[1]);\n });\n\n return result;\n}\n\nfunction createRangeTable(data: string): Array {\n let hi = 0;\n return data.split(\",\").map((v) => {\n let comps = v.split(\"-\");\n if (comps.length === 1) {\n comps[1] = \"0\";\n } else if (comps[1] === \"\") {\n comps[1] = \"1\";\n }\n\n let lo = hi + parseInt(comps[0], 16);\n hi = parseInt(comps[1], 16);\n return { l: lo, h: hi };\n });\n}\n\nfunction matchMap(value: number, ranges: Array): Ranged {\n let lo = 0;\n for (let i = 0; i < ranges.length; i++) {\n let range = ranges[i];\n lo += range.l;\n if (value >= lo && value <= lo + range.h && ((value - lo) % (range.d || 1)) === 0) {\n if (range.e && range.e.indexOf(value - lo) !== -1) { continue; }\n return range;\n }\n }\n return null;\n}\n\nconst Table_A_1_ranges = createRangeTable(\"221,13-1b,5f-,40-10,51-f,11-3,3-3,2-2,2-4,8,2,15,2d,28-8,88,48,27-,3-5,11-20,27-,8,28,3-5,12,18,b-a,1c-4,6-16,2-d,2-2,2,1b-4,17-9,8f-,10,f,1f-2,1c-34,33-14e,4,36-,13-,6-2,1a-f,4,9-,3-,17,8,2-2,5-,2,8-,3-,4-8,2-3,3,6-,16-6,2-,7-3,3-,17,8,3,3,3-,2,6-3,3-,4-a,5,2-6,10-b,4,8,2,4,17,8,3,6-,b,4,4-,2-e,2-4,b-10,4,9-,3-,17,8,3-,5-,9-2,3-,4-7,3-3,3,4-3,c-10,3,7-2,4,5-2,3,2,3-2,3-2,4-2,9,4-3,6-2,4,5-8,2-e,d-d,4,9,4,18,b,6-3,8,4,5-6,3-8,3-3,b-11,3,9,4,18,b,6-3,8,4,5-6,3-6,2,3-3,b-11,3,9,4,18,11-3,7-,4,5-8,2-7,3-3,b-11,3,13-2,19,a,2-,8-2,2-3,7,2,9-11,4-b,3b-3,1e-24,3,2-,3,2-,2-5,5,8,4,2,2-,3,e,4-,6,2,7-,b-,3-21,49,23-5,1c-3,9,25,10-,2-2f,23,6,3,8-2,5-5,1b-45,27-9,2a-,2-3,5b-4,45-4,53-5,8,40,2,5-,8,2,5-,28,2,5-,20,2,5-,8,2,5-,8,8,18,20,2,5-,8,28,14-5,1d-22,56-b,277-8,1e-2,52-e,e,8-a,18-8,15-b,e,4,3-b,5e-2,b-15,10,b-5,59-7,2b-555,9d-3,5b-5,17-,7-,27-,7-,9,2,2,2,20-,36,10,f-,7,14-,4,a,54-3,2-6,6-5,9-,1c-10,13-1d,1c-14,3c-,10-6,32-b,240-30,28-18,c-14,a0,115-,3,66-,b-76,5,5-,1d,24,2,5-2,2,8-,35-2,19,f-10,1d-3,311-37f,1b,5a-b,d7-19,d-3,41,57-,68-4,29-3,5f,29-37,2e-2,25-c,2c-2,4e-3,30,78-3,64-,20,19b7-49,51a7-59,48e-2,38-738,2ba5-5b,222f-,3c-94,8-b,6-4,1b,6,2,3,3,6d-20,16e-f,41-,37-7,2e-2,11-f,5-b,18-,b,14,5-3,6,88-,2,bf-2,7-,7-,7-,4-2,8,8-9,8-2ff,20,5-b,1c-b4,27-,27-cbb1,f7-9,28-2,b5-221,56,48,3-,2-,3-,5,d,2,5,3,42,5-,9,8,1d,5,6,2-2,8,153-3,123-3,33-27fd,a6da-5128,21f-5df,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3,2-1d,61-ff7d\");\n\n// @TODO: Make this relative...\nconst Table_B_1_flags = \"ad,34f,1806,180b,180c,180d,200b,200c,200d,2060,feff\".split(\",\").map((v) => parseInt(v, 16));\n\nconst Table_B_2_ranges: Array = [\n { h: 25, s: 32, l: 65 },\n { h: 30, s: 32, e: [ 23 ], l: 127 },\n { h: 54, s: 1, e: [ 48 ], l: 64, d: 2 },\n { h: 14, s: 1, l: 57, d: 2 },\n { h: 44, s: 1, l: 17, d: 2 },\n { h: 10, s: 1, e: [ 2, 6, 8 ], l: 61, d: 2 },\n { h: 16, s: 1, l: 68, d: 2 },\n { h: 84, s: 1, e: [ 18, 24, 66 ], l: 19, d: 2 },\n { h: 26, s: 32, e: [ 17 ], l: 435 },\n { h: 22, s: 1, l: 71, d: 2 },\n { h: 15, s: 80, l: 40 },\n { h: 31, s: 32, l: 16 },\n { h: 32, s: 1, l: 80, d: 2 },\n { h: 52, s: 1, l: 42, d: 2 },\n { h: 12, s: 1, l: 55, d: 2 },\n { h: 40, s: 1, e: [ 38 ], l: 15, d: 2 },\n { h: 14, s: 1, l: 48, d: 2 },\n { h: 37, s: 48, l: 49 },\n { h: 148, s: 1, l: 6351, d: 2 },\n { h: 88, s: 1, l: 160, d: 2 },\n { h: 15, s: 16, l: 704 },\n { h: 25, s: 26, l: 854 },\n { h: 25, s: 32, l: 55915 },\n { h: 37, s: 40, l: 1247 },\n { h: 25, s: -119711, l: 53248 },\n { h: 25, s: -119763, l: 52 },\n { h: 25, s: -119815, l: 52 },\n { h: 25, s: -119867, e: [ 1, 4, 5, 7, 8, 11, 12, 17 ], l: 52 },\n { h: 25, s: -119919, l: 52 },\n { h: 24, s: -119971, e: [ 2, 7, 8, 17 ], l: 52 },\n { h: 24, s: -120023, e: [ 2, 7, 13, 15, 16, 17 ], l: 52 },\n { h: 25, s: -120075, l: 52 },\n { h: 25, s: -120127, l: 52 },\n { h: 25, s: -120179, l: 52 },\n { h: 25, s: -120231, l: 52 },\n { h: 25, s: -120283, l: 52 },\n { h: 25, s: -120335, l: 52 },\n { h: 24, s: -119543, e: [ 17 ], l: 56 },\n { h: 24, s: -119601, e: [ 17 ], l: 58 },\n { h: 24, s: -119659, e: [ 17 ], l: 58 },\n { h: 24, s: -119717, e: [ 17 ], l: 58 },\n { h: 24, s: -119775, e: [ 17 ], l: 58 }\n];\nconst Table_B_2_lut_abs = createTable(\"b5:3bc,c3:ff,7:73,2:253,5:254,3:256,1:257,5:259,1:25b,3:260,1:263,2:269,1:268,5:26f,1:272,2:275,7:280,3:283,5:288,3:28a,1:28b,5:292,3f:195,1:1bf,29:19e,125:3b9,8b:3b2,1:3b8,1:3c5,3:3c6,1:3c0,1a:3ba,1:3c1,1:3c3,2:3b8,1:3b5,1bc9:3b9,1c:1f76,1:1f77,f:1f7a,1:1f7b,d:1f78,1:1f79,1:1f7c,1:1f7d,107:63,5:25b,4:68,1:68,1:68,3:69,1:69,1:6c,3:6e,4:70,1:71,1:72,1:72,1:72,7:7a,2:3c9,2:7a,2:6b,1:e5,1:62,1:63,3:65,1:66,2:6d,b:3b3,1:3c0,6:64,1b574:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3\");\nconst Table_B_2_lut_rel = createTable(\"179:1,2:1,2:1,5:1,2:1,a:4f,a:1,8:1,2:1,2:1,3:1,5:1,3:1,4:1,2:1,3:1,4:1,8:2,1:1,2:2,1:1,2:2,27:2,195:26,2:25,1:25,1:25,2:40,2:3f,1:3f,33:1,11:-6,1:-9,1ac7:-3a,6d:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,b:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,c:-8,2:-8,2:-8,2:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,49:-8,1:-8,1:-4a,1:-4a,d:-56,1:-56,1:-56,1:-56,d:-8,1:-8,f:-8,1:-8,3:-7\");\nconst Table_B_2_complex = createTable(\"df:00730073,51:00690307,19:02BC006E,a7:006A030C,18a:002003B9,16:03B903080301,20:03C503080301,1d7:05650582,190f:00680331,1:00740308,1:0077030A,1:0079030A,1:006102BE,b6:03C50313,2:03C503130300,2:03C503130301,2:03C503130342,2a:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,3:1F7003B9,1:03B103B9,1:03AC03B9,2:03B10342,1:03B1034203B9,5:03B103B9,6:1F7403B9,1:03B703B9,1:03AE03B9,2:03B70342,1:03B7034203B9,5:03B703B9,6:03B903080300,1:03B903080301,3:03B90342,1:03B903080342,b:03C503080300,1:03C503080301,1:03C10313,2:03C50342,1:03C503080342,b:1F7C03B9,1:03C903B9,1:03CE03B9,2:03C90342,1:03C9034203B9,5:03C903B9,ac:00720073,5b:00B00063,6:00B00066,d:006E006F,a:0073006D,1:00740065006C,1:0074006D,124f:006800700061,2:00610075,2:006F0076,b:00700061,1:006E0061,1:03BC0061,1:006D0061,1:006B0061,1:006B0062,1:006D0062,1:00670062,3:00700066,1:006E0066,1:03BC0066,4:0068007A,1:006B0068007A,1:006D0068007A,1:00670068007A,1:00740068007A,15:00700061,1:006B00700061,1:006D00700061,1:006700700061,8:00700076,1:006E0076,1:03BC0076,1:006D0076,1:006B0076,1:006D0076,1:00700077,1:006E0077,1:03BC0077,1:006D0077,1:006B0077,1:006D0077,1:006B03C9,1:006D03C9,2:00620071,3:00632215006B0067,1:0063006F002E,1:00640062,1:00670079,2:00680070,2:006B006B,1:006B006D,9:00700068,2:00700070006D,1:00700072,2:00730076,1:00770062,c723:00660066,1:00660069,1:0066006C,1:006600660069,1:00660066006C,1:00730074,1:00730074,d:05740576,1:05740565,1:0574056B,1:057E0576,1:0574056D\", bytes2);\n\nconst Table_C_ranges = createRangeTable(\"80-20,2a0-,39c,32,f71,18e,7f2-f,19-7,30-4,7-5,f81-b,5,a800-20ff,4d1-1f,110,fa-6,d174-7,2e84-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,2,1f-5f,ff7f-20001\");\n\n\nfunction flatten(values: Array>): Array {\n return values.reduce((accum, value) => {\n value.forEach((value) => { accum.push(value); });\n return accum;\n }, [ ]);\n}\n\nexport function _nameprepTableA1(codepoint: number): boolean {\n return !!matchMap(codepoint, Table_A_1_ranges);\n}\n\nexport function _nameprepTableB2(codepoint: number): Array {\n let range = matchMap(codepoint, Table_B_2_ranges);\n if (range) { return [ codepoint + range.s ]; }\n\n let codes = Table_B_2_lut_abs[codepoint];\n if (codes) { return codes; }\n\n let shift = Table_B_2_lut_rel[codepoint];\n if (shift) { return [ codepoint + shift[0] ]; }\n\n let complex = Table_B_2_complex[codepoint];\n if (complex) { return complex; }\n\n return null;\n}\n\nexport function _nameprepTableC(codepoint: number): boolean {\n return !!matchMap(codepoint, Table_C_ranges);\n}\n\nexport function nameprep(value: string): string {\n\n // This allows platforms with incomplete normalize to bypass\n // it for very basic names which the built-in toLowerCase\n // will certainly handle correctly\n if (value.match(/^[a-z0-9-]*$/i) && value.length <= 59) { return value.toLowerCase(); }\n\n // Get the code points (keeping the current normalization)\n let codes = toUtf8CodePoints(value);\n\n codes = flatten(codes.map((code) => {\n // Substitute Table B.1 (Maps to Nothing)\n if (Table_B_1_flags.indexOf(code) >= 0) { return [ ]; }\n if (code >= 0xfe00 && code <= 0xfe0f) { return [ ]; }\n\n // Substitute Table B.2 (Case Folding)\n let codesTableB2 = _nameprepTableB2(code);\n if (codesTableB2) { return codesTableB2; }\n\n // No Substitution\n return [ code ];\n }));\n\n // Normalize using form KC\n codes = toUtf8CodePoints(_toUtf8String(codes), UnicodeNormalizationForm.NFKC);\n\n // Prohibit Tables C.1.2, C.2.2, C.3, C.4, C.5, C.6, C.7, C.8, C.9\n codes.forEach((code) => {\n if (_nameprepTableC(code)) {\n throw new Error(\"STRINGPREP_CONTAINS_PROHIBITED\");\n }\n });\n\n // Prohibit Unassigned Code Points (Table A.1)\n codes.forEach((code) => {\n if (_nameprepTableA1(code)) {\n throw new Error(\"STRINGPREP_CONTAINS_UNASSIGNED\");\n }\n });\n\n // IDNA extras\n let name = _toUtf8String(codes);\n\n // IDNA: 4.2.3.1\n if (name.substring(0, 1) === \"-\" || name.substring(2, 4) === \"--\" || name.substring(name.length - 1) === \"-\") {\n throw new Error(\"invalid hyphen\");\n }\n\n return name;\n}\n\n","export const version = \"strings/5.7.0\";\n","\"use strict\";\n\nimport { arrayify, BytesLike } from \"@ethersproject/bytes\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n///////////////////////////////\n\nexport enum UnicodeNormalizationForm {\n current = \"\",\n NFC = \"NFC\",\n NFD = \"NFD\",\n NFKC = \"NFKC\",\n NFKD = \"NFKD\"\n};\n\nexport enum Utf8ErrorReason {\n // A continuation byte was present where there was nothing to continue\n // - offset = the index the codepoint began in\n UNEXPECTED_CONTINUE = \"unexpected continuation byte\",\n\n // An invalid (non-continuation) byte to start a UTF-8 codepoint was found\n // - offset = the index the codepoint began in\n BAD_PREFIX = \"bad codepoint prefix\",\n\n // The string is too short to process the expected codepoint\n // - offset = the index the codepoint began in\n OVERRUN = \"string overrun\",\n\n // A missing continuation byte was expected but not found\n // - offset = the index the continuation byte was expected at\n MISSING_CONTINUE = \"missing continuation byte\",\n\n // The computed code point is outside the range for UTF-8\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; outside the UTF-8 range\n OUT_OF_RANGE = \"out of UTF-8 range\",\n\n // UTF-8 strings may not contain UTF-16 surrogate pairs\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; inside the UTF-16 surrogate range\n UTF16_SURROGATE = \"UTF-16 surrogate\",\n\n // The string is an overlong representation\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; already bounds checked\n OVERLONG = \"overlong representation\",\n};\n\n\nexport type Utf8ErrorFunc = (reason: Utf8ErrorReason, offset: number, bytes: ArrayLike, output: Array, badCodepoint?: number) => number;\n\nfunction errorFunc(reason: Utf8ErrorReason, offset: number, bytes: ArrayLike, output: Array, badCodepoint?: number): number {\n return logger.throwArgumentError(`invalid codepoint at offset ${ offset }; ${ reason }`, \"bytes\", bytes);\n}\n\nfunction ignoreFunc(reason: Utf8ErrorReason, offset: number, bytes: ArrayLike, output: Array, badCodepoint?: number): number {\n\n // If there is an invalid prefix (including stray continuation), skip any additional continuation bytes\n if (reason === Utf8ErrorReason.BAD_PREFIX || reason === Utf8ErrorReason.UNEXPECTED_CONTINUE) {\n let i = 0;\n for (let o = offset + 1; o < bytes.length; o++) {\n if (bytes[o] >> 6 !== 0x02) { break; }\n i++;\n }\n return i;\n }\n\n // This byte runs us past the end of the string, so just jump to the end\n // (but the first byte was read already read and therefore skipped)\n if (reason === Utf8ErrorReason.OVERRUN) {\n return bytes.length - offset - 1;\n }\n\n // Nothing to skip\n return 0;\n}\n\nfunction replaceFunc(reason: Utf8ErrorReason, offset: number, bytes: ArrayLike, output: Array, badCodepoint?: number): number {\n\n // Overlong representations are otherwise \"valid\" code points; just non-deistingtished\n if (reason === Utf8ErrorReason.OVERLONG) {\n output.push(badCodepoint);\n return 0;\n }\n\n // Put the replacement character into the output\n output.push(0xfffd);\n\n // Otherwise, process as if ignoring errors\n return ignoreFunc(reason, offset, bytes, output, badCodepoint);\n}\n\n// Common error handing strategies\nexport const Utf8ErrorFuncs: { [ name: string ]: Utf8ErrorFunc } = Object.freeze({\n error: errorFunc,\n ignore: ignoreFunc,\n replace: replaceFunc\n});\n\n// http://stackoverflow.com/questions/13356493/decode-utf-8-with-javascript#13691499\nfunction getUtf8CodePoints(bytes: BytesLike, onError?: Utf8ErrorFunc): Array {\n if (onError == null) { onError = Utf8ErrorFuncs.error; }\n\n bytes = arrayify(bytes);\n\n const result: Array = [];\n let i = 0;\n\n // Invalid bytes are ignored\n while(i < bytes.length) {\n\n const c = bytes[i++];\n\n // 0xxx xxxx\n if (c >> 7 === 0) {\n result.push(c);\n continue;\n }\n\n // Multibyte; how many bytes left for this character?\n let extraLength = null;\n let overlongMask = null;\n\n // 110x xxxx 10xx xxxx\n if ((c & 0xe0) === 0xc0) {\n extraLength = 1;\n overlongMask = 0x7f;\n\n // 1110 xxxx 10xx xxxx 10xx xxxx\n } else if ((c & 0xf0) === 0xe0) {\n extraLength = 2;\n overlongMask = 0x7ff;\n\n // 1111 0xxx 10xx xxxx 10xx xxxx 10xx xxxx\n } else if ((c & 0xf8) === 0xf0) {\n extraLength = 3;\n overlongMask = 0xffff;\n\n } else {\n if ((c & 0xc0) === 0x80) {\n i += onError(Utf8ErrorReason.UNEXPECTED_CONTINUE, i - 1, bytes, result);\n } else {\n i += onError(Utf8ErrorReason.BAD_PREFIX, i - 1, bytes, result);\n }\n continue;\n }\n\n // Do we have enough bytes in our data?\n if (i - 1 + extraLength >= bytes.length) {\n i += onError(Utf8ErrorReason.OVERRUN, i - 1, bytes, result);\n continue;\n }\n\n // Remove the length prefix from the char\n let res = c & ((1 << (8 - extraLength - 1)) - 1);\n\n for (let j = 0; j < extraLength; j++) {\n let nextChar = bytes[i];\n\n // Invalid continuation byte\n if ((nextChar & 0xc0) != 0x80) {\n i += onError(Utf8ErrorReason.MISSING_CONTINUE, i, bytes, result);\n res = null;\n break;\n };\n\n res = (res << 6) | (nextChar & 0x3f);\n i++;\n }\n\n // See above loop for invalid continuation byte\n if (res === null) { continue; }\n\n // Maximum code point\n if (res > 0x10ffff) {\n i += onError(Utf8ErrorReason.OUT_OF_RANGE, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n\n // Reserved for UTF-16 surrogate halves\n if (res >= 0xd800 && res <= 0xdfff) {\n i += onError(Utf8ErrorReason.UTF16_SURROGATE, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n\n // Check for overlong sequences (more bytes than needed)\n if (res <= overlongMask) {\n i += onError(Utf8ErrorReason.OVERLONG, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n\n result.push(res);\n }\n\n return result;\n}\n\n// http://stackoverflow.com/questions/18729405/how-to-convert-utf8-string-to-byte-array\nexport function toUtf8Bytes(str: string, form: UnicodeNormalizationForm = UnicodeNormalizationForm.current): Uint8Array {\n\n if (form != UnicodeNormalizationForm.current) {\n logger.checkNormalize();\n str = str.normalize(form);\n }\n\n let result = [];\n for (let i = 0; i < str.length; i++) {\n const c = str.charCodeAt(i);\n\n if (c < 0x80) {\n result.push(c);\n\n } else if (c < 0x800) {\n result.push((c >> 6) | 0xc0);\n result.push((c & 0x3f) | 0x80);\n\n } else if ((c & 0xfc00) == 0xd800) {\n i++;\n const c2 = str.charCodeAt(i);\n\n if (i >= str.length || (c2 & 0xfc00) !== 0xdc00) {\n throw new Error(\"invalid utf-8 string\");\n }\n\n // Surrogate Pair\n const pair = 0x10000 + ((c & 0x03ff) << 10) + (c2 & 0x03ff);\n result.push((pair >> 18) | 0xf0);\n result.push(((pair >> 12) & 0x3f) | 0x80);\n result.push(((pair >> 6) & 0x3f) | 0x80);\n result.push((pair & 0x3f) | 0x80);\n\n } else {\n result.push((c >> 12) | 0xe0);\n result.push(((c >> 6) & 0x3f) | 0x80);\n result.push((c & 0x3f) | 0x80);\n }\n }\n\n return arrayify(result);\n};\n\nfunction escapeChar(value: number) {\n const hex = (\"0000\" + value.toString(16));\n return \"\\\\u\" + hex.substring(hex.length - 4);\n}\n\nexport function _toEscapedUtf8String(bytes: BytesLike, onError?: Utf8ErrorFunc): string {\n return '\"' + getUtf8CodePoints(bytes, onError).map((codePoint) => {\n if (codePoint < 256) {\n switch (codePoint) {\n case 8: return \"\\\\b\";\n case 9: return \"\\\\t\";\n case 10: return \"\\\\n\"\n case 13: return \"\\\\r\";\n case 34: return \"\\\\\\\"\";\n case 92: return \"\\\\\\\\\";\n }\n\n if (codePoint >= 32 && codePoint < 127) {\n return String.fromCharCode(codePoint);\n }\n }\n\n if (codePoint <= 0xffff) {\n return escapeChar(codePoint);\n }\n\n codePoint -= 0x10000;\n return escapeChar(((codePoint >> 10) & 0x3ff) + 0xd800) + escapeChar((codePoint & 0x3ff) + 0xdc00);\n }).join(\"\") + '\"';\n}\n\nexport function _toUtf8String(codePoints: Array): string {\n return codePoints.map((codePoint) => {\n if (codePoint <= 0xffff) {\n return String.fromCharCode(codePoint);\n }\n codePoint -= 0x10000;\n return String.fromCharCode(\n (((codePoint >> 10) & 0x3ff) + 0xd800),\n ((codePoint & 0x3ff) + 0xdc00)\n );\n }).join(\"\");\n}\n\nexport function toUtf8String(bytes: BytesLike, onError?: Utf8ErrorFunc): string {\n return _toUtf8String(getUtf8CodePoints(bytes, onError));\n}\n\nexport function toUtf8CodePoints(str: string, form: UnicodeNormalizationForm = UnicodeNormalizationForm.current): Array {\n return getUtf8CodePoints(toUtf8Bytes(str, form));\n}\n","export const version = \"transactions/5.7.0\";\n","\"use strict\";\n\nimport { getAddress } from \"@ethersproject/address\";\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { arrayify, BytesLike, DataOptions, hexConcat, hexDataLength, hexDataSlice, hexlify, hexZeroPad, isBytesLike, SignatureLike, splitSignature, stripZeros, } from \"@ethersproject/bytes\";\nimport { Zero } from \"@ethersproject/constants\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { checkProperties } from \"@ethersproject/properties\";\nimport * as RLP from \"@ethersproject/rlp\";\nimport { computePublicKey, recoverPublicKey } from \"@ethersproject/signing-key\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n///////////////////////////////\n// Exported Types\n\nexport type AccessList = Array<{ address: string, storageKeys: Array }>;\n\n// Input allows flexibility in describing an access list\nexport type AccessListish = AccessList |\n Array<[ string, Array ]> |\n Record>;\n\nexport enum TransactionTypes {\n legacy = 0,\n eip2930 = 1,\n eip1559 = 2,\n};\n\nexport type UnsignedTransaction = {\n to?: string;\n nonce?: number;\n\n gasLimit?: BigNumberish;\n gasPrice?: BigNumberish;\n\n data?: BytesLike;\n value?: BigNumberish;\n chainId?: number;\n\n // Typed-Transaction features\n type?: number | null;\n\n // EIP-2930; Type 1 & EIP-1559; Type 2\n accessList?: AccessListish;\n\n // EIP-1559; Type 2\n maxPriorityFeePerGas?: BigNumberish;\n maxFeePerGas?: BigNumberish;\n}\n\nexport interface Transaction {\n hash?: string;\n\n to?: string;\n from?: string;\n nonce: number;\n\n gasLimit: BigNumber;\n gasPrice?: BigNumber;\n\n data: string;\n value: BigNumber;\n chainId: number;\n\n r?: string;\n s?: string;\n v?: number;\n\n // Typed-Transaction features\n type?: number | null;\n\n // EIP-2930; Type 1 & EIP-1559; Type 2\n accessList?: AccessList;\n\n // EIP-1559; Type 2\n maxPriorityFeePerGas?: BigNumber;\n maxFeePerGas?: BigNumber;\n}\n\n///////////////////////////////\n\nfunction handleAddress(value: string): string {\n if (value === \"0x\") { return null; }\n return getAddress(value);\n}\n\nfunction handleNumber(value: string): BigNumber {\n if (value === \"0x\") { return Zero; }\n return BigNumber.from(value);\n}\n\n// Legacy Transaction Fields\nconst transactionFields = [\n { name: \"nonce\", maxLength: 32, numeric: true },\n { name: \"gasPrice\", maxLength: 32, numeric: true },\n { name: \"gasLimit\", maxLength: 32, numeric: true },\n { name: \"to\", length: 20 },\n { name: \"value\", maxLength: 32, numeric: true },\n { name: \"data\" },\n];\n\nconst allowedTransactionKeys: { [ key: string ]: boolean } = {\n chainId: true, data: true, gasLimit: true, gasPrice:true, nonce: true, to: true, type: true, value: true\n}\n\nexport function computeAddress(key: BytesLike | string): string {\n const publicKey = computePublicKey(key);\n return getAddress(hexDataSlice(keccak256(hexDataSlice(publicKey, 1)), 12));\n}\n\nexport function recoverAddress(digest: BytesLike, signature: SignatureLike): string {\n return computeAddress(recoverPublicKey(arrayify(digest), signature));\n}\n\nfunction formatNumber(value: BigNumberish, name: string): Uint8Array {\n const result = stripZeros(BigNumber.from(value).toHexString());\n if (result.length > 32) {\n logger.throwArgumentError(\"invalid length for \" + name, (\"transaction:\" + name), value);\n }\n return result;\n}\n\nfunction accessSetify(addr: string, storageKeys: Array): { address: string,storageKeys: Array } {\n return {\n address: getAddress(addr),\n storageKeys: (storageKeys || []).map((storageKey, index) => {\n if (hexDataLength(storageKey) !== 32) {\n logger.throwArgumentError(\"invalid access list storageKey\", `accessList[${ addr }:${ index }]`, storageKey)\n }\n return storageKey.toLowerCase();\n })\n };\n}\n\nexport function accessListify(value: AccessListish): AccessList {\n if (Array.isArray(value)) {\n return (] | { address: string, storageKeys: Array}>>value).map((set, index) => {\n if (Array.isArray(set)) {\n if (set.length > 2) {\n logger.throwArgumentError(\"access list expected to be [ address, storageKeys[] ]\", `value[${ index }]`, set);\n }\n return accessSetify(set[0], set[1])\n }\n return accessSetify(set.address, set.storageKeys);\n });\n }\n\n const result: Array<{ address: string, storageKeys: Array }> = Object.keys(value).map((addr) => {\n const storageKeys: Record = value[addr].reduce((accum, storageKey) => {\n accum[storageKey] = true;\n return accum;\n }, >{ });\n return accessSetify(addr, Object.keys(storageKeys).sort())\n });\n result.sort((a, b) => (a.address.localeCompare(b.address)));\n return result;\n}\n\nfunction formatAccessList(value: AccessListish): Array<[ string, Array ]> {\n return accessListify(value).map((set) => [ set.address, set.storageKeys ]);\n}\n\nfunction _serializeEip1559(transaction: UnsignedTransaction, signature?: SignatureLike): string {\n // If there is an explicit gasPrice, make sure it matches the\n // EIP-1559 fees; otherwise they may not understand what they\n // think they are setting in terms of fee.\n if (transaction.gasPrice != null) {\n const gasPrice = BigNumber.from(transaction.gasPrice);\n const maxFeePerGas = BigNumber.from(transaction.maxFeePerGas || 0);\n if (!gasPrice.eq(maxFeePerGas)) {\n logger.throwArgumentError(\"mismatch EIP-1559 gasPrice != maxFeePerGas\", \"tx\", {\n gasPrice, maxFeePerGas\n });\n }\n }\n\n const fields: any = [\n formatNumber(transaction.chainId || 0, \"chainId\"),\n formatNumber(transaction.nonce || 0, \"nonce\"),\n formatNumber(transaction.maxPriorityFeePerGas || 0, \"maxPriorityFeePerGas\"),\n formatNumber(transaction.maxFeePerGas || 0, \"maxFeePerGas\"),\n formatNumber(transaction.gasLimit || 0, \"gasLimit\"),\n ((transaction.to != null) ? getAddress(transaction.to): \"0x\"),\n formatNumber(transaction.value || 0, \"value\"),\n (transaction.data || \"0x\"),\n (formatAccessList(transaction.accessList || []))\n ];\n\n if (signature) {\n const sig = splitSignature(signature);\n fields.push(formatNumber(sig.recoveryParam, \"recoveryParam\"));\n fields.push(stripZeros(sig.r));\n fields.push(stripZeros(sig.s));\n }\n\n return hexConcat([ \"0x02\", RLP.encode(fields)]);\n}\n\nfunction _serializeEip2930(transaction: UnsignedTransaction, signature?: SignatureLike): string {\n const fields: any = [\n formatNumber(transaction.chainId || 0, \"chainId\"),\n formatNumber(transaction.nonce || 0, \"nonce\"),\n formatNumber(transaction.gasPrice || 0, \"gasPrice\"),\n formatNumber(transaction.gasLimit || 0, \"gasLimit\"),\n ((transaction.to != null) ? getAddress(transaction.to): \"0x\"),\n formatNumber(transaction.value || 0, \"value\"),\n (transaction.data || \"0x\"),\n (formatAccessList(transaction.accessList || []))\n ];\n\n if (signature) {\n const sig = splitSignature(signature);\n fields.push(formatNumber(sig.recoveryParam, \"recoveryParam\"));\n fields.push(stripZeros(sig.r));\n fields.push(stripZeros(sig.s));\n }\n\n return hexConcat([ \"0x01\", RLP.encode(fields)]);\n}\n\n// Legacy Transactions and EIP-155\nfunction _serialize(transaction: UnsignedTransaction, signature?: SignatureLike): string {\n checkProperties(transaction, allowedTransactionKeys);\n\n const raw: Array = [];\n\n transactionFields.forEach(function(fieldInfo) {\n let value = (transaction)[fieldInfo.name] || ([]);\n const options: DataOptions = { };\n if (fieldInfo.numeric) { options.hexPad = \"left\"; }\n value = arrayify(hexlify(value, options));\n\n // Fixed-width field\n if (fieldInfo.length && value.length !== fieldInfo.length && value.length > 0) {\n logger.throwArgumentError(\"invalid length for \" + fieldInfo.name, (\"transaction:\" + fieldInfo.name), value);\n }\n\n // Variable-width (with a maximum)\n if (fieldInfo.maxLength) {\n value = stripZeros(value);\n if (value.length > fieldInfo.maxLength) {\n logger.throwArgumentError(\"invalid length for \" + fieldInfo.name, (\"transaction:\" + fieldInfo.name), value );\n }\n }\n\n raw.push(hexlify(value));\n });\n\n let chainId = 0;\n if (transaction.chainId != null) {\n // A chainId was provided; if non-zero we'll use EIP-155\n chainId = transaction.chainId;\n\n if (typeof(chainId) !== \"number\") {\n logger.throwArgumentError(\"invalid transaction.chainId\", \"transaction\", transaction);\n }\n\n } else if (signature && !isBytesLike(signature) && signature.v > 28) {\n // No chainId provided, but the signature is signing with EIP-155; derive chainId\n chainId = Math.floor((signature.v - 35) / 2);\n }\n\n // We have an EIP-155 transaction (chainId was specified and non-zero)\n if (chainId !== 0) {\n raw.push(hexlify(chainId)); // @TODO: hexValue?\n raw.push(\"0x\");\n raw.push(\"0x\");\n }\n\n // Requesting an unsigned transaction\n if (!signature) {\n return RLP.encode(raw);\n }\n\n // The splitSignature will ensure the transaction has a recoveryParam in the\n // case that the signTransaction function only adds a v.\n const sig = splitSignature(signature);\n\n // We pushed a chainId and null r, s on for hashing only; remove those\n let v = 27 + sig.recoveryParam\n if (chainId !== 0) {\n raw.pop();\n raw.pop();\n raw.pop();\n v += chainId * 2 + 8;\n\n // If an EIP-155 v (directly or indirectly; maybe _vs) was provided, check it!\n if (sig.v > 28 && sig.v !== v) {\n logger.throwArgumentError(\"transaction.chainId/signature.v mismatch\", \"signature\", signature);\n }\n } else if (sig.v !== v) {\n logger.throwArgumentError(\"transaction.chainId/signature.v mismatch\", \"signature\", signature);\n }\n\n raw.push(hexlify(v));\n raw.push(stripZeros(arrayify(sig.r)));\n raw.push(stripZeros(arrayify(sig.s)));\n\n return RLP.encode(raw);\n}\n\nexport function serialize(transaction: UnsignedTransaction, signature?: SignatureLike): string {\n // Legacy and EIP-155 Transactions\n if (transaction.type == null || transaction.type === 0) {\n if (transaction.accessList != null) {\n logger.throwArgumentError(\"untyped transactions do not support accessList; include type: 1\", \"transaction\", transaction);\n }\n return _serialize(transaction, signature);\n }\n\n // Typed Transactions (EIP-2718)\n switch (transaction.type) {\n case 1:\n return _serializeEip2930(transaction, signature);\n case 2:\n return _serializeEip1559(transaction, signature);\n default:\n break;\n }\n\n return logger.throwError(`unsupported transaction type: ${ transaction.type }`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"serializeTransaction\",\n transactionType: transaction.type\n });\n}\n\nfunction _parseEipSignature(tx: Transaction, fields: Array, serialize: (tx: UnsignedTransaction) => string): void {\n try {\n const recid = handleNumber(fields[0]).toNumber();\n if (recid !== 0 && recid !== 1) { throw new Error(\"bad recid\"); }\n tx.v = recid;\n } catch (error) {\n logger.throwArgumentError(\"invalid v for transaction type: 1\", \"v\", fields[0]);\n }\n\n tx.r = hexZeroPad(fields[1], 32);\n tx.s = hexZeroPad(fields[2], 32);\n\n try {\n const digest = keccak256(serialize(tx));\n tx.from = recoverAddress(digest, { r: tx.r, s: tx.s, recoveryParam: tx.v });\n } catch (error) { }\n}\n\nfunction _parseEip1559(payload: Uint8Array): Transaction {\n const transaction = RLP.decode(payload.slice(1));\n\n if (transaction.length !== 9 && transaction.length !== 12) {\n logger.throwArgumentError(\"invalid component count for transaction type: 2\", \"payload\", hexlify(payload));\n }\n\n const maxPriorityFeePerGas = handleNumber(transaction[2]);\n const maxFeePerGas = handleNumber(transaction[3]);\n const tx: Transaction = {\n type: 2,\n chainId: handleNumber(transaction[0]).toNumber(),\n nonce: handleNumber(transaction[1]).toNumber(),\n maxPriorityFeePerGas: maxPriorityFeePerGas,\n maxFeePerGas: maxFeePerGas,\n gasPrice: null,\n gasLimit: handleNumber(transaction[4]),\n to: handleAddress(transaction[5]),\n value: handleNumber(transaction[6]),\n data: transaction[7],\n accessList: accessListify(transaction[8]),\n };\n\n // Unsigned EIP-1559 Transaction\n if (transaction.length === 9) { return tx; }\n\n tx.hash = keccak256(payload);\n\n _parseEipSignature(tx, transaction.slice(9), _serializeEip1559);\n\n return tx;\n}\n\nfunction _parseEip2930(payload: Uint8Array): Transaction {\n const transaction = RLP.decode(payload.slice(1));\n\n if (transaction.length !== 8 && transaction.length !== 11) {\n logger.throwArgumentError(\"invalid component count for transaction type: 1\", \"payload\", hexlify(payload));\n }\n\n const tx: Transaction = {\n type: 1,\n chainId: handleNumber(transaction[0]).toNumber(),\n nonce: handleNumber(transaction[1]).toNumber(),\n gasPrice: handleNumber(transaction[2]),\n gasLimit: handleNumber(transaction[3]),\n to: handleAddress(transaction[4]),\n value: handleNumber(transaction[5]),\n data: transaction[6],\n accessList: accessListify(transaction[7])\n };\n\n // Unsigned EIP-2930 Transaction\n if (transaction.length === 8) { return tx; }\n\n tx.hash = keccak256(payload);\n\n _parseEipSignature(tx, transaction.slice(8), _serializeEip2930);\n\n return tx;\n}\n\n// Legacy Transactions and EIP-155\nfunction _parse(rawTransaction: Uint8Array): Transaction {\n const transaction = RLP.decode(rawTransaction);\n\n if (transaction.length !== 9 && transaction.length !== 6) {\n logger.throwArgumentError(\"invalid raw transaction\", \"rawTransaction\", rawTransaction);\n }\n\n const tx: Transaction = {\n nonce: handleNumber(transaction[0]).toNumber(),\n gasPrice: handleNumber(transaction[1]),\n gasLimit: handleNumber(transaction[2]),\n to: handleAddress(transaction[3]),\n value: handleNumber(transaction[4]),\n data: transaction[5],\n chainId: 0\n };\n\n // Legacy unsigned transaction\n if (transaction.length === 6) { return tx; }\n\n try {\n tx.v = BigNumber.from(transaction[6]).toNumber();\n\n } catch (error) {\n // @TODO: What makes snese to do? The v is too big\n return tx;\n }\n\n tx.r = hexZeroPad(transaction[7], 32);\n tx.s = hexZeroPad(transaction[8], 32);\n\n if (BigNumber.from(tx.r).isZero() && BigNumber.from(tx.s).isZero()) {\n // EIP-155 unsigned transaction\n tx.chainId = tx.v;\n tx.v = 0;\n\n } else {\n // Signed Transaction\n\n tx.chainId = Math.floor((tx.v - 35) / 2);\n if (tx.chainId < 0) { tx.chainId = 0; }\n\n let recoveryParam = tx.v - 27;\n\n const raw = transaction.slice(0, 6);\n\n if (tx.chainId !== 0) {\n raw.push(hexlify(tx.chainId));\n raw.push(\"0x\");\n raw.push(\"0x\");\n recoveryParam -= tx.chainId * 2 + 8;\n }\n\n const digest = keccak256(RLP.encode(raw));\n try {\n tx.from = recoverAddress(digest, { r: hexlify(tx.r), s: hexlify(tx.s), recoveryParam: recoveryParam });\n } catch (error) { }\n\n tx.hash = keccak256(rawTransaction);\n }\n\n tx.type = null;\n\n return tx;\n}\n\n\nexport function parse(rawTransaction: BytesLike): Transaction {\n const payload = arrayify(rawTransaction);\n\n // Legacy and EIP-155 Transactions\n if (payload[0] > 0x7f) { return _parse(payload); }\n\n // Typed Transaction (EIP-2718)\n switch (payload[0]) {\n case 1:\n return _parseEip2930(payload);\n case 2:\n return _parseEip1559(payload);\n default:\n break;\n }\n\n return logger.throwError(`unsupported transaction type: ${ payload[0] }`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"parseTransaction\",\n transactionType: payload[0]\n });\n}\n\n","export const version = \"units/5.7.0\";\n","\"use strict\";\n\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { formatFixed, parseFixed } from \"@ethersproject/bignumber\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nconst names = [\n \"wei\",\n \"kwei\",\n \"mwei\",\n \"gwei\",\n \"szabo\",\n \"finney\",\n \"ether\",\n];\n\n\n// Some environments have issues with RegEx that contain back-tracking, so we cannot\n// use them.\nexport function commify(value: string | number): string {\n const comps = String(value).split(\".\");\n\n if (comps.length > 2 || !comps[0].match(/^-?[0-9]*$/) || (comps[1] && !comps[1].match(/^[0-9]*$/)) || value === \".\" || value === \"-.\") {\n logger.throwArgumentError(\"invalid value\", \"value\", value);\n }\n\n // Make sure we have at least one whole digit (0 if none)\n let whole = comps[0];\n\n let negative = \"\";\n if (whole.substring(0, 1) === \"-\") {\n negative = \"-\";\n whole = whole.substring(1);\n }\n\n // Make sure we have at least 1 whole digit with no leading zeros\n while (whole.substring(0, 1) === \"0\") { whole = whole.substring(1); }\n if (whole === \"\") { whole = \"0\"; }\n\n let suffix = \"\";\n if (comps.length === 2) { suffix = \".\" + (comps[1] || \"0\"); }\n while (suffix.length > 2 && suffix[suffix.length - 1] === \"0\") {\n suffix = suffix.substring(0, suffix.length - 1);\n }\n\n const formatted = [];\n while (whole.length) {\n if (whole.length <= 3) {\n formatted.unshift(whole);\n break;\n } else {\n const index = whole.length - 3;\n formatted.unshift(whole.substring(index));\n whole = whole.substring(0, index);\n }\n }\n\n return negative + formatted.join(\",\") + suffix;\n}\n\nexport function formatUnits(value: BigNumberish, unitName?: string | BigNumberish): string {\n if (typeof(unitName) === \"string\") {\n const index = names.indexOf(unitName);\n if (index !== -1) { unitName = 3 * index; }\n }\n return formatFixed(value, (unitName != null) ? unitName: 18);\n}\n\nexport function parseUnits(value: string, unitName?: BigNumberish): BigNumber {\n if (typeof(value) !== \"string\") {\n logger.throwArgumentError(\"value must be a string\", \"value\", value);\n }\n if (typeof(unitName) === \"string\") {\n const index = names.indexOf(unitName);\n if (index !== -1) { unitName = 3 * index; }\n }\n return parseFixed(value, (unitName != null) ? unitName: 18);\n}\n\nexport function formatEther(wei: BigNumberish): string {\n return formatUnits(wei, 18);\n}\n\nexport function parseEther(ether: string): BigNumber {\n return parseUnits(ether, 18);\n}\n\n","\"use strict\";\n\nimport { getAddress } from \"@ethersproject/address\";\nimport { Provider, TransactionRequest } from \"@ethersproject/abstract-provider\";\nimport { ExternallyOwnedAccount, Signer, TypedDataDomain, TypedDataField, TypedDataSigner } from \"@ethersproject/abstract-signer\";\nimport { arrayify, Bytes, BytesLike, concat, hexDataSlice, isHexString, joinSignature, SignatureLike } from \"@ethersproject/bytes\";\nimport { hashMessage, _TypedDataEncoder } from \"@ethersproject/hash\";\nimport { defaultPath, HDNode, entropyToMnemonic, Mnemonic } from \"@ethersproject/hdnode\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { defineReadOnly, resolveProperties } from \"@ethersproject/properties\";\nimport { randomBytes } from \"@ethersproject/random\";\nimport { SigningKey } from \"@ethersproject/signing-key\";\nimport { decryptJsonWallet, decryptJsonWalletSync, encryptKeystore, ProgressCallback } from \"@ethersproject/json-wallets\";\nimport { computeAddress, recoverAddress, serialize, UnsignedTransaction } from \"@ethersproject/transactions\";\nimport { Wordlist } from \"@ethersproject/wordlists\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nfunction isAccount(value: any): value is ExternallyOwnedAccount {\n return (value != null && isHexString(value.privateKey, 32) && value.address != null);\n}\n\nfunction hasMnemonic(value: any): value is { mnemonic: Mnemonic } {\n const mnemonic = value.mnemonic;\n return (mnemonic && mnemonic.phrase);\n}\n\nexport class Wallet extends Signer implements ExternallyOwnedAccount, TypedDataSigner {\n\n readonly address: string;\n readonly provider: Provider;\n\n // Wrapping the _signingKey and _mnemonic in a getter function prevents\n // leaking the private key in console.log; still, be careful! :)\n readonly _signingKey: () => SigningKey;\n readonly _mnemonic: () => Mnemonic;\n\n constructor(privateKey: BytesLike | ExternallyOwnedAccount | SigningKey, provider?: Provider) {\n super();\n\n if (isAccount(privateKey)) {\n const signingKey = new SigningKey(privateKey.privateKey);\n defineReadOnly(this, \"_signingKey\", () => signingKey);\n defineReadOnly(this, \"address\", computeAddress(this.publicKey));\n\n if (this.address !== getAddress(privateKey.address)) {\n logger.throwArgumentError(\"privateKey/address mismatch\", \"privateKey\", \"[REDACTED]\");\n }\n\n if (hasMnemonic(privateKey)) {\n const srcMnemonic = privateKey.mnemonic;\n defineReadOnly(this, \"_mnemonic\", () => (\n {\n phrase: srcMnemonic.phrase,\n path: srcMnemonic.path || defaultPath,\n locale: srcMnemonic.locale || \"en\"\n }\n ));\n const mnemonic = this.mnemonic;\n const node = HDNode.fromMnemonic(mnemonic.phrase, null, mnemonic.locale).derivePath(mnemonic.path);\n if (computeAddress(node.privateKey) !== this.address) {\n logger.throwArgumentError(\"mnemonic/address mismatch\", \"privateKey\", \"[REDACTED]\");\n }\n } else {\n defineReadOnly(this, \"_mnemonic\", (): Mnemonic => null);\n }\n\n\n } else {\n if (SigningKey.isSigningKey(privateKey)) {\n /* istanbul ignore if */\n if (privateKey.curve !== \"secp256k1\") {\n logger.throwArgumentError(\"unsupported curve; must be secp256k1\", \"privateKey\", \"[REDACTED]\");\n }\n defineReadOnly(this, \"_signingKey\", () => (privateKey));\n\n } else {\n // A lot of common tools do not prefix private keys with a 0x (see: #1166)\n if (typeof(privateKey) === \"string\") {\n if (privateKey.match(/^[0-9a-f]*$/i) && privateKey.length === 64) {\n privateKey = \"0x\" + privateKey;\n }\n }\n\n const signingKey = new SigningKey(privateKey);\n defineReadOnly(this, \"_signingKey\", () => signingKey);\n }\n\n defineReadOnly(this, \"_mnemonic\", (): Mnemonic => null);\n defineReadOnly(this, \"address\", computeAddress(this.publicKey));\n }\n\n /* istanbul ignore if */\n if (provider && !Provider.isProvider(provider)) {\n logger.throwArgumentError(\"invalid provider\", \"provider\", provider);\n }\n\n defineReadOnly(this, \"provider\", provider || null);\n }\n\n get mnemonic(): Mnemonic { return this._mnemonic(); }\n get privateKey(): string { return this._signingKey().privateKey; }\n get publicKey(): string { return this._signingKey().publicKey; }\n\n getAddress(): Promise {\n return Promise.resolve(this.address);\n }\n\n connect(provider: Provider): Wallet {\n return new Wallet(this, provider);\n }\n\n signTransaction(transaction: TransactionRequest): Promise {\n return resolveProperties(transaction).then((tx) => {\n if (tx.from != null) {\n if (getAddress(tx.from) !== this.address) {\n logger.throwArgumentError(\"transaction from address mismatch\", \"transaction.from\", transaction.from);\n }\n delete tx.from;\n }\n\n const signature = this._signingKey().signDigest(keccak256(serialize(tx)));\n return serialize(tx, signature);\n });\n }\n\n async signMessage(message: Bytes | string): Promise {\n return joinSignature(this._signingKey().signDigest(hashMessage(message)));\n }\n\n async _signTypedData(domain: TypedDataDomain, types: Record>, value: Record): Promise {\n // Populate any ENS names\n const populated = await _TypedDataEncoder.resolveNames(domain, types, value, (name: string) => {\n if (this.provider == null) {\n logger.throwError(\"cannot resolve ENS names without a provider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"resolveName\",\n value: name\n });\n }\n return this.provider.resolveName(name);\n });\n\n return joinSignature(this._signingKey().signDigest(_TypedDataEncoder.hash(populated.domain, types, populated.value)));\n }\n\n encrypt(password: Bytes | string, options?: any, progressCallback?: ProgressCallback): Promise {\n if (typeof(options) === \"function\" && !progressCallback) {\n progressCallback = options;\n options = {};\n }\n\n if (progressCallback && typeof(progressCallback) !== \"function\") {\n throw new Error(\"invalid callback\");\n }\n\n if (!options) { options = {}; }\n\n return encryptKeystore(this, password, options, progressCallback);\n }\n\n\n /**\n * Static methods to create Wallet instances.\n */\n static createRandom(options?: any): Wallet {\n let entropy: Uint8Array = randomBytes(16);\n\n if (!options) { options = { }; }\n\n if (options.extraEntropy) {\n entropy = arrayify(hexDataSlice(keccak256(concat([ entropy, options.extraEntropy ])), 0, 16));\n }\n\n const mnemonic = entropyToMnemonic(entropy, options.locale);\n return Wallet.fromMnemonic(mnemonic, options.path, options.locale);\n }\n\n static fromEncryptedJson(json: string, password: Bytes | string, progressCallback?: ProgressCallback): Promise {\n return decryptJsonWallet(json, password, progressCallback).then((account) => {\n return new Wallet(account);\n });\n }\n\n static fromEncryptedJsonSync(json: string, password: Bytes | string): Wallet {\n return new Wallet(decryptJsonWalletSync(json, password));\n }\n\n static fromMnemonic(mnemonic: string, path?: string, wordlist?: Wordlist): Wallet {\n if (!path) { path = defaultPath; }\n return new Wallet(HDNode.fromMnemonic(mnemonic, null, wordlist).derivePath(path));\n }\n}\n\nexport function verifyMessage(message: Bytes | string, signature: SignatureLike): string {\n return recoverAddress(hashMessage(message), signature);\n}\n\nexport function verifyTypedData(domain: TypedDataDomain, types: Record>, value: Record, signature: SignatureLike): string {\n return recoverAddress(_TypedDataEncoder.hash(domain, types, value), signature);\n}\n","export const version = \"wallet/5.7.0\";\n","\"use strict\";\n\nimport { arrayify } from \"@ethersproject/bytes\";\n\nimport type { GetUrlResponse, Options } from \"./types\";\n\nexport { GetUrlResponse, Options };\n\nexport async function getUrl(href: string, options?: Options): Promise {\n if (options == null) { options = { }; }\n\n const request: RequestInit = {\n method: (options.method || \"GET\"),\n headers: (options.headers || { }),\n body: (options.body || undefined),\n };\n\n if (options.skipFetchSetup !== true) {\n request.mode = \"cors\"; // no-cors, cors, *same-origin\n request.cache = \"no-cache\"; // *default, no-cache, reload, force-cache, only-if-cached\n request.credentials = \"same-origin\"; // include, *same-origin, omit\n request.redirect = \"follow\"; // manual, *follow, error\n request.referrer = \"client\"; // no-referrer, *client\n };\n\n if (options.fetchOptions != null) {\n const opts = options.fetchOptions;\n if (opts.mode) { request.mode = (opts.mode); }\n if (opts.cache) { request.cache = (opts.cache); }\n if (opts.credentials) { request.credentials = (opts.credentials); }\n if (opts.redirect) { request.redirect = (opts.redirect); }\n if (opts.referrer) { request.referrer = opts.referrer; }\n }\n\n const response = await fetch(href, request);\n const body = await response.arrayBuffer();\n\n const headers: { [ name: string ]: string } = { };\n if (response.headers.forEach) {\n response.headers.forEach((value, key) => {\n headers[key.toLowerCase()] = value;\n });\n } else {\n (<() => Array>(((response.headers)).keys))().forEach((key) => {\n headers[key.toLowerCase()] = response.headers.get(key);\n });\n }\n\n return {\n headers: headers,\n statusCode: response.status,\n statusMessage: response.statusText,\n body: arrayify(new Uint8Array(body)),\n }\n}\n","\"use strict\";\n\nimport { decode as base64Decode, encode as base64Encode } from \"@ethersproject/base64\";\nimport { hexlify, isBytesLike } from \"@ethersproject/bytes\";\nimport { shallowCopy } from \"@ethersproject/properties\";\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { getUrl, GetUrlResponse, Options } from \"./geturl\";\n\nfunction staller(duration: number): Promise {\n return new Promise((resolve) => {\n setTimeout(resolve, duration);\n });\n}\n\nfunction bodyify(value: any, type: string): string {\n if (value == null) { return null; }\n\n if (typeof(value) === \"string\") { return value; }\n\n if (isBytesLike(value)) {\n if (type && (type.split(\"/\")[0] === \"text\" || type.split(\";\")[0].trim() === \"application/json\")) {\n try {\n return toUtf8String(value);\n } catch (error) { };\n }\n return hexlify(value);\n }\n\n return value;\n}\n\n// Exported Types\nexport type ConnectionInfo = {\n url: string,\n headers?: { [key: string]: string | number }\n\n user?: string,\n password?: string,\n\n allowInsecureAuthentication?: boolean,\n allowGzip?: boolean,\n\n throttleLimit?: number,\n throttleSlotInterval?: number;\n throttleCallback?: (attempt: number, url: string) => Promise,\n\n skipFetchSetup?: boolean;\n fetchOptions?: Record;\n errorPassThrough?: boolean;\n\n timeout?: number,\n};\n\nexport interface OnceBlockable {\n once(eventName: \"block\", handler: () => void): void;\n}\n\nexport interface OncePollable {\n once(eventName: \"poll\", handler: () => void): void;\n}\n\nexport type PollOptions = {\n timeout?: number,\n floor?: number,\n ceiling?: number,\n interval?: number,\n retryLimit?: number,\n onceBlock?: OnceBlockable\n oncePoll?: OncePollable\n};\n\nexport type FetchJsonResponse = {\n statusCode: number;\n headers: { [ header: string ]: string };\n};\n\n\ntype Header = { key: string, value: string };\n\nfunction unpercent(value: string): Uint8Array {\n return toUtf8Bytes(value.replace(/%([0-9a-f][0-9a-f])/gi, (all, code) => {\n return String.fromCharCode(parseInt(code, 16));\n }));\n}\n\n// This API is still a work in progress; the future changes will likely be:\n// - ConnectionInfo => FetchDataRequest\n// - FetchDataRequest.body? = string | Uint8Array | { contentType: string, data: string | Uint8Array }\n// - If string => text/plain, Uint8Array => application/octet-stream (if content-type unspecified)\n// - FetchDataRequest.processFunc = (body: Uint8Array, response: FetchDataResponse) => T\n// For this reason, it should be considered internal until the API is finalized\nexport function _fetchData(connection: string | ConnectionInfo, body?: Uint8Array, processFunc?: (value: Uint8Array, response: FetchJsonResponse) => T): Promise {\n\n // How many times to retry in the event of a throttle\n const attemptLimit = (typeof(connection) === \"object\" && connection.throttleLimit != null) ? connection.throttleLimit: 12;\n logger.assertArgument((attemptLimit > 0 && (attemptLimit % 1) === 0),\n \"invalid connection throttle limit\", \"connection.throttleLimit\", attemptLimit);\n\n const throttleCallback = ((typeof(connection) === \"object\") ? connection.throttleCallback: null);\n const throttleSlotInterval = ((typeof(connection) === \"object\" && typeof(connection.throttleSlotInterval) === \"number\") ? connection.throttleSlotInterval: 100);\n logger.assertArgument((throttleSlotInterval > 0 && (throttleSlotInterval % 1) === 0),\n \"invalid connection throttle slot interval\", \"connection.throttleSlotInterval\", throttleSlotInterval);\n\n const errorPassThrough = ((typeof(connection) === \"object\") ? !!(connection.errorPassThrough): false);\n\n const headers: { [key: string]: Header } = { };\n\n let url: string = null;\n\n // @TODO: Allow ConnectionInfo to override some of these values\n const options: Options = {\n method: \"GET\",\n };\n\n let allow304 = false;\n\n let timeout = 2 * 60 * 1000;\n\n if (typeof(connection) === \"string\") {\n url = connection;\n\n } else if (typeof(connection) === \"object\") {\n if (connection == null || connection.url == null) {\n logger.throwArgumentError(\"missing URL\", \"connection.url\", connection);\n }\n\n url = connection.url;\n\n if (typeof(connection.timeout) === \"number\" && connection.timeout > 0) {\n timeout = connection.timeout;\n }\n\n if (connection.headers) {\n for (const key in connection.headers) {\n headers[key.toLowerCase()] = { key: key, value: String(connection.headers[key]) };\n if ([\"if-none-match\", \"if-modified-since\"].indexOf(key.toLowerCase()) >= 0) {\n allow304 = true;\n }\n }\n }\n\n options.allowGzip = !!connection.allowGzip;\n\n if (connection.user != null && connection.password != null) {\n if (url.substring(0, 6) !== \"https:\" && connection.allowInsecureAuthentication !== true) {\n logger.throwError(\n \"basic authentication requires a secure https url\",\n Logger.errors.INVALID_ARGUMENT,\n { argument: \"url\", url: url, user: connection.user, password: \"[REDACTED]\" }\n );\n }\n\n const authorization = connection.user + \":\" + connection.password;\n headers[\"authorization\"] = {\n key: \"Authorization\",\n value: \"Basic \" + base64Encode(toUtf8Bytes(authorization))\n };\n }\n\n if (connection.skipFetchSetup != null) {\n options.skipFetchSetup = !!connection.skipFetchSetup;\n }\n\n if (connection.fetchOptions != null) {\n options.fetchOptions = shallowCopy(connection.fetchOptions);\n }\n }\n\n const reData = new RegExp(\"^data:([^;:]*)?(;base64)?,(.*)$\", \"i\");\n const dataMatch = ((url) ? url.match(reData): null);\n if (dataMatch) {\n try {\n const response = {\n statusCode: 200,\n statusMessage: \"OK\",\n headers: { \"content-type\": (dataMatch[1] || \"text/plain\")},\n body: (dataMatch[2] ? base64Decode(dataMatch[3]): unpercent(dataMatch[3]))\n };\n\n let result: T = response.body;\n if (processFunc) {\n result = processFunc(response.body, response);\n }\n return Promise.resolve(result);\n\n } catch (error) {\n logger.throwError(\"processing response error\", Logger.errors.SERVER_ERROR, {\n body: bodyify(dataMatch[1], dataMatch[2]),\n error: error,\n requestBody: null,\n requestMethod: \"GET\",\n url: url\n });\n }\n }\n\n if (body) {\n options.method = \"POST\";\n options.body = body;\n if (headers[\"content-type\"] == null) {\n headers[\"content-type\"] = { key: \"Content-Type\", value: \"application/octet-stream\" };\n }\n if (headers[\"content-length\"] == null) {\n headers[\"content-length\"] = { key: \"Content-Length\", value: String(body.length) };\n }\n }\n\n const flatHeaders: { [ key: string ]: string } = { };\n Object.keys(headers).forEach((key) => {\n const header = headers[key];\n flatHeaders[header.key] = header.value;\n });\n options.headers = flatHeaders;\n\n const runningTimeout = (function() {\n let timer: NodeJS.Timer = null;\n const promise: Promise = new Promise(function(resolve, reject) {\n if (timeout) {\n timer = setTimeout(() => {\n if (timer == null) { return; }\n timer = null;\n\n reject(logger.makeError(\"timeout\", Logger.errors.TIMEOUT, {\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n timeout: timeout,\n url: url\n }));\n }, timeout);\n }\n });\n\n const cancel = function() {\n if (timer == null) { return; }\n clearTimeout(timer);\n timer = null;\n }\n\n return { promise, cancel };\n })();\n\n const runningFetch = (async function() {\n\n for (let attempt = 0; attempt < attemptLimit; attempt++) {\n let response: GetUrlResponse = null;\n\n try {\n response = await getUrl(url, options);\n\n if (attempt < attemptLimit) {\n if (response.statusCode === 301 || response.statusCode === 302) {\n // Redirection; for now we only support absolute locataions\n const location = response.headers.location || \"\";\n if (options.method === \"GET\" && location.match(/^https:/)) {\n url = response.headers.location;\n continue;\n }\n\n } else if (response.statusCode === 429) {\n // Exponential back-off throttling\n let tryAgain = true;\n if (throttleCallback) {\n tryAgain = await throttleCallback(attempt, url);\n }\n\n if (tryAgain) {\n let stall = 0;\n\n const retryAfter = response.headers[\"retry-after\"];\n if (typeof(retryAfter) === \"string\" && retryAfter.match(/^[1-9][0-9]*$/)) {\n stall = parseInt(retryAfter) * 1000;\n } else {\n stall = throttleSlotInterval * parseInt(String(Math.random() * Math.pow(2, attempt)));\n }\n\n //console.log(\"Stalling 429\");\n await staller(stall);\n continue;\n }\n }\n }\n\n } catch (error) {\n response = (error).response;\n if (response == null) {\n runningTimeout.cancel();\n logger.throwError(\"missing response\", Logger.errors.SERVER_ERROR, {\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n serverError: error,\n url: url\n });\n }\n }\n\n\n let body = response.body;\n\n if (allow304 && response.statusCode === 304) {\n body = null;\n } else if (!errorPassThrough && (response.statusCode < 200 || response.statusCode >= 300)) {\n runningTimeout.cancel();\n logger.throwError(\"bad response\", Logger.errors.SERVER_ERROR, {\n status: response.statusCode,\n headers: response.headers,\n body: bodyify(body, ((response.headers) ? response.headers[\"content-type\"]: null)),\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n url: url\n });\n }\n\n if (processFunc) {\n try {\n const result = await processFunc(body, response);\n runningTimeout.cancel();\n return result;\n\n } catch (error) {\n // Allow the processFunc to trigger a throttle\n if (error.throttleRetry && attempt < attemptLimit) {\n let tryAgain = true;\n if (throttleCallback) {\n tryAgain = await throttleCallback(attempt, url);\n }\n\n if (tryAgain) {\n const timeout = throttleSlotInterval * parseInt(String(Math.random() * Math.pow(2, attempt)));\n //console.log(\"Stalling callback\");\n await staller(timeout);\n continue;\n }\n }\n\n runningTimeout.cancel();\n logger.throwError(\"processing response error\", Logger.errors.SERVER_ERROR, {\n body: bodyify(body, ((response.headers) ? response.headers[\"content-type\"]: null)),\n error: error,\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n url: url\n });\n }\n }\n\n runningTimeout.cancel();\n\n // If we had a processFunc, it either returned a T or threw above.\n // The \"body\" is now a Uint8Array.\n return (body);\n }\n\n return logger.throwError(\"failed response\", Logger.errors.SERVER_ERROR, {\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n url: url\n });\n })();\n\n return Promise.race([ runningTimeout.promise, runningFetch ]);\n}\n\nexport function fetchJson(connection: string | ConnectionInfo, json?: string, processFunc?: (value: any, response: FetchJsonResponse) => any): Promise {\n let processJsonFunc = (value: Uint8Array, response: FetchJsonResponse) => {\n let result: any = null;\n if (value != null) {\n try {\n result = JSON.parse(toUtf8String(value));\n } catch (error) {\n logger.throwError(\"invalid JSON\", Logger.errors.SERVER_ERROR, {\n body: value,\n error: error\n });\n }\n }\n\n if (processFunc) {\n result = processFunc(result, response);\n }\n\n return result;\n }\n\n // If we have json to send, we must\n // - add content-type of application/json (unless already overridden)\n // - convert the json to bytes\n let body: Uint8Array = null;\n if (json != null) {\n body = toUtf8Bytes(json);\n\n // Create a connection with the content-type set for JSON\n const updated: ConnectionInfo = (typeof(connection) === \"string\") ? ({ url: connection }): shallowCopy(connection);\n if (updated.headers) {\n const hasContentType = (Object.keys(updated.headers).filter((k) => (k.toLowerCase() === \"content-type\")).length) !== 0;\n if (!hasContentType) {\n updated.headers = shallowCopy(updated.headers);\n updated.headers[\"content-type\"] = \"application/json\";\n }\n } else {\n updated.headers = { \"content-type\": \"application/json\" };\n }\n connection = updated;\n }\n\n return _fetchData(connection, body, processJsonFunc);\n}\n\nexport function poll(func: () => Promise, options?: PollOptions): Promise {\n if (!options) { options = {}; }\n options = shallowCopy(options);\n if (options.floor == null) { options.floor = 0; }\n if (options.ceiling == null) { options.ceiling = 10000; }\n if (options.interval == null) { options.interval = 250; }\n\n return new Promise(function(resolve, reject) {\n\n let timer: NodeJS.Timer = null;\n let done: boolean = false;\n\n // Returns true if cancel was successful. Unsuccessful cancel means we're already done.\n const cancel = (): boolean => {\n if (done) { return false; }\n done = true;\n if (timer) { clearTimeout(timer); }\n return true;\n };\n\n if (options.timeout) {\n timer = setTimeout(() => {\n if (cancel()) { reject(new Error(\"timeout\")); }\n }, options.timeout)\n }\n\n const retryLimit = options.retryLimit;\n\n let attempt = 0;\n function check() {\n return func().then(function(result) {\n\n // If we have a result, or are allowed null then we're done\n if (result !== undefined) {\n if (cancel()) { resolve(result); }\n\n } else if (options.oncePoll) {\n options.oncePoll.once(\"poll\", check);\n\n } else if (options.onceBlock) {\n options.onceBlock.once(\"block\", check);\n\n // Otherwise, exponential back-off (up to 10s) our next request\n } else if (!done) {\n attempt++;\n if (attempt > retryLimit) {\n if (cancel()) { reject(new Error(\"retry limit reached\")); }\n return;\n }\n\n let timeout = options.interval * parseInt(String(Math.random() * Math.pow(2, attempt)));\n if (timeout < options.floor) { timeout = options.floor; }\n if (timeout > options.ceiling) { timeout = options.ceiling; }\n\n setTimeout(check, timeout);\n }\n\n return null;\n }, function(error) {\n if (cancel()) { reject(error); }\n });\n }\n check();\n });\n}\n\n","export const version = \"web/5.7.1\";\n","export const version = \"wordlists/5.7.0\";\n","\"use strict\";\n\n// This gets overridden by rollup\nconst exportWordlist = false;\n\nimport { id } from \"@ethersproject/hash\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nexport const logger = new Logger(version);\n\nexport abstract class Wordlist {\n readonly locale: string;\n\n constructor(locale: string) {\n logger.checkAbstract(new.target, Wordlist);\n defineReadOnly(this, \"locale\", locale);\n }\n\n abstract getWord(index: number): string;\n abstract getWordIndex(word: string): number;\n\n // Subclasses may override this\n split(mnemonic: string): Array {\n return mnemonic.toLowerCase().split(/ +/g)\n }\n\n // Subclasses may override this\n join(words: Array): string {\n return words.join(\" \");\n }\n\n static check(wordlist: Wordlist): string {\n const words = [];\n for (let i = 0; i < 2048; i++) {\n const word = wordlist.getWord(i);\n /* istanbul ignore if */\n if (i !== wordlist.getWordIndex(word)) { return \"0x\"; }\n words.push(word);\n }\n return id(words.join(\"\\n\") + \"\\n\");\n }\n\n static register(lang: Wordlist, name?: string): void {\n if (!name) { name = lang.locale; }\n\n /* istanbul ignore if */\n if (exportWordlist) {\n try {\n const anyGlobal = (window as any)\n if (anyGlobal._ethers && anyGlobal._ethers.wordlists) {\n if (!anyGlobal._ethers.wordlists[name]) {\n defineReadOnly(anyGlobal._ethers.wordlists, name, lang);\n }\n }\n } catch (error) { }\n }\n }\n\n}\n\n","\"use strict\";\n\nimport { Wordlist } from \"./wordlist\";\n\n\nconst words = \"AbandonAbilityAbleAboutAboveAbsentAbsorbAbstractAbsurdAbuseAccessAccidentAccountAccuseAchieveAcidAcousticAcquireAcrossActActionActorActressActualAdaptAddAddictAddressAdjustAdmitAdultAdvanceAdviceAerobicAffairAffordAfraidAgainAgeAgentAgreeAheadAimAirAirportAisleAlarmAlbumAlcoholAlertAlienAllAlleyAllowAlmostAloneAlphaAlreadyAlsoAlterAlwaysAmateurAmazingAmongAmountAmusedAnalystAnchorAncientAngerAngleAngryAnimalAnkleAnnounceAnnualAnotherAnswerAntennaAntiqueAnxietyAnyApartApologyAppearAppleApproveAprilArchArcticAreaArenaArgueArmArmedArmorArmyAroundArrangeArrestArriveArrowArtArtefactArtistArtworkAskAspectAssaultAssetAssistAssumeAsthmaAthleteAtomAttackAttendAttitudeAttractAuctionAuditAugustAuntAuthorAutoAutumnAverageAvocadoAvoidAwakeAwareAwayAwesomeAwfulAwkwardAxisBabyBachelorBaconBadgeBagBalanceBalconyBallBambooBananaBannerBarBarelyBargainBarrelBaseBasicBasketBattleBeachBeanBeautyBecauseBecomeBeefBeforeBeginBehaveBehindBelieveBelowBeltBenchBenefitBestBetrayBetterBetweenBeyondBicycleBidBikeBindBiologyBirdBirthBitterBlackBladeBlameBlanketBlastBleakBlessBlindBloodBlossomBlouseBlueBlurBlushBoardBoatBodyBoilBombBoneBonusBookBoostBorderBoringBorrowBossBottomBounceBoxBoyBracketBrainBrandBrassBraveBreadBreezeBrickBridgeBriefBrightBringBriskBroccoliBrokenBronzeBroomBrotherBrownBrushBubbleBuddyBudgetBuffaloBuildBulbBulkBulletBundleBunkerBurdenBurgerBurstBusBusinessBusyButterBuyerBuzzCabbageCabinCableCactusCageCakeCallCalmCameraCampCanCanalCancelCandyCannonCanoeCanvasCanyonCapableCapitalCaptainCarCarbonCardCargoCarpetCarryCartCaseCashCasinoCastleCasualCatCatalogCatchCategoryCattleCaughtCauseCautionCaveCeilingCeleryCementCensusCenturyCerealCertainChairChalkChampionChangeChaosChapterChargeChaseChatCheapCheckCheeseChefCherryChestChickenChiefChildChimneyChoiceChooseChronicChuckleChunkChurnCigarCinnamonCircleCitizenCityCivilClaimClapClarifyClawClayCleanClerkCleverClickClientCliffClimbClinicClipClockClogCloseClothCloudClownClubClumpClusterClutchCoachCoastCoconutCodeCoffeeCoilCoinCollectColorColumnCombineComeComfortComicCommonCompanyConcertConductConfirmCongressConnectConsiderControlConvinceCookCoolCopperCopyCoralCoreCornCorrectCostCottonCouchCountryCoupleCourseCousinCoverCoyoteCrackCradleCraftCramCraneCrashCraterCrawlCrazyCreamCreditCreekCrewCricketCrimeCrispCriticCropCrossCrouchCrowdCrucialCruelCruiseCrumbleCrunchCrushCryCrystalCubeCultureCupCupboardCuriousCurrentCurtainCurveCushionCustomCuteCycleDadDamageDampDanceDangerDaringDashDaughterDawnDayDealDebateDebrisDecadeDecemberDecideDeclineDecorateDecreaseDeerDefenseDefineDefyDegreeDelayDeliverDemandDemiseDenialDentistDenyDepartDependDepositDepthDeputyDeriveDescribeDesertDesignDeskDespairDestroyDetailDetectDevelopDeviceDevoteDiagramDialDiamondDiaryDiceDieselDietDifferDigitalDignityDilemmaDinnerDinosaurDirectDirtDisagreeDiscoverDiseaseDishDismissDisorderDisplayDistanceDivertDivideDivorceDizzyDoctorDocumentDogDollDolphinDomainDonateDonkeyDonorDoorDoseDoubleDoveDraftDragonDramaDrasticDrawDreamDressDriftDrillDrinkDripDriveDropDrumDryDuckDumbDuneDuringDustDutchDutyDwarfDynamicEagerEagleEarlyEarnEarthEasilyEastEasyEchoEcologyEconomyEdgeEditEducateEffortEggEightEitherElbowElderElectricElegantElementElephantElevatorEliteElseEmbarkEmbodyEmbraceEmergeEmotionEmployEmpowerEmptyEnableEnactEndEndlessEndorseEnemyEnergyEnforceEngageEngineEnhanceEnjoyEnlistEnoughEnrichEnrollEnsureEnterEntireEntryEnvelopeEpisodeEqualEquipEraEraseErodeErosionErrorEruptEscapeEssayEssenceEstateEternalEthicsEvidenceEvilEvokeEvolveExactExampleExcessExchangeExciteExcludeExcuseExecuteExerciseExhaustExhibitExileExistExitExoticExpandExpectExpireExplainExposeExpressExtendExtraEyeEyebrowFabricFaceFacultyFadeFaintFaithFallFalseFameFamilyFamousFanFancyFantasyFarmFashionFatFatalFatherFatigueFaultFavoriteFeatureFebruaryFederalFeeFeedFeelFemaleFenceFestivalFetchFeverFewFiberFictionFieldFigureFileFilmFilterFinalFindFineFingerFinishFireFirmFirstFiscalFishFitFitnessFixFlagFlameFlashFlatFlavorFleeFlightFlipFloatFlockFloorFlowerFluidFlushFlyFoamFocusFogFoilFoldFollowFoodFootForceForestForgetForkFortuneForumForwardFossilFosterFoundFoxFragileFrameFrequentFreshFriendFringeFrogFrontFrostFrownFrozenFruitFuelFunFunnyFurnaceFuryFutureGadgetGainGalaxyGalleryGameGapGarageGarbageGardenGarlicGarmentGasGaspGateGatherGaugeGazeGeneralGeniusGenreGentleGenuineGestureGhostGiantGiftGiggleGingerGiraffeGirlGiveGladGlanceGlareGlassGlideGlimpseGlobeGloomGloryGloveGlowGlueGoatGoddessGoldGoodGooseGorillaGospelGossipGovernGownGrabGraceGrainGrantGrapeGrassGravityGreatGreenGridGriefGritGroceryGroupGrowGruntGuardGuessGuideGuiltGuitarGunGymHabitHairHalfHammerHamsterHandHappyHarborHardHarshHarvestHatHaveHawkHazardHeadHealthHeartHeavyHedgehogHeightHelloHelmetHelpHenHeroHiddenHighHillHintHipHireHistoryHobbyHockeyHoldHoleHolidayHollowHomeHoneyHoodHopeHornHorrorHorseHospitalHostHotelHourHoverHubHugeHumanHumbleHumorHundredHungryHuntHurdleHurryHurtHusbandHybridIceIconIdeaIdentifyIdleIgnoreIllIllegalIllnessImageImitateImmenseImmuneImpactImposeImproveImpulseInchIncludeIncomeIncreaseIndexIndicateIndoorIndustryInfantInflictInformInhaleInheritInitialInjectInjuryInmateInnerInnocentInputInquiryInsaneInsectInsideInspireInstallIntactInterestIntoInvestInviteInvolveIronIslandIsolateIssueItemIvoryJacketJaguarJarJazzJealousJeansJellyJewelJobJoinJokeJourneyJoyJudgeJuiceJumpJungleJuniorJunkJustKangarooKeenKeepKetchupKeyKickKidKidneyKindKingdomKissKitKitchenKiteKittenKiwiKneeKnifeKnockKnowLabLabelLaborLadderLadyLakeLampLanguageLaptopLargeLaterLatinLaughLaundryLavaLawLawnLawsuitLayerLazyLeaderLeafLearnLeaveLectureLeftLegLegalLegendLeisureLemonLendLengthLensLeopardLessonLetterLevelLiarLibertyLibraryLicenseLifeLiftLightLikeLimbLimitLinkLionLiquidListLittleLiveLizardLoadLoanLobsterLocalLockLogicLonelyLongLoopLotteryLoudLoungeLoveLoyalLuckyLuggageLumberLunarLunchLuxuryLyricsMachineMadMagicMagnetMaidMailMainMajorMakeMammalManManageMandateMangoMansionManualMapleMarbleMarchMarginMarineMarketMarriageMaskMassMasterMatchMaterialMathMatrixMatterMaximumMazeMeadowMeanMeasureMeatMechanicMedalMediaMelodyMeltMemberMemoryMentionMenuMercyMergeMeritMerryMeshMessageMetalMethodMiddleMidnightMilkMillionMimicMindMinimumMinorMinuteMiracleMirrorMiseryMissMistakeMixMixedMixtureMobileModelModifyMomMomentMonitorMonkeyMonsterMonthMoonMoralMoreMorningMosquitoMotherMotionMotorMountainMouseMoveMovieMuchMuffinMuleMultiplyMuscleMuseumMushroomMusicMustMutualMyselfMysteryMythNaiveNameNapkinNarrowNastyNationNatureNearNeckNeedNegativeNeglectNeitherNephewNerveNestNetNetworkNeutralNeverNewsNextNiceNightNobleNoiseNomineeNoodleNormalNorthNoseNotableNoteNothingNoticeNovelNowNuclearNumberNurseNutOakObeyObjectObligeObscureObserveObtainObviousOccurOceanOctoberOdorOffOfferOfficeOftenOilOkayOldOliveOlympicOmitOnceOneOnionOnlineOnlyOpenOperaOpinionOpposeOptionOrangeOrbitOrchardOrderOrdinaryOrganOrientOriginalOrphanOstrichOtherOutdoorOuterOutputOutsideOvalOvenOverOwnOwnerOxygenOysterOzonePactPaddlePagePairPalacePalmPandaPanelPanicPantherPaperParadeParentParkParrotPartyPassPatchPathPatientPatrolPatternPausePavePaymentPeacePeanutPearPeasantPelicanPenPenaltyPencilPeoplePepperPerfectPermitPersonPetPhonePhotoPhrasePhysicalPianoPicnicPicturePiecePigPigeonPillPilotPinkPioneerPipePistolPitchPizzaPlacePlanetPlasticPlatePlayPleasePledgePluckPlugPlungePoemPoetPointPolarPolePolicePondPonyPoolPopularPortionPositionPossiblePostPotatoPotteryPovertyPowderPowerPracticePraisePredictPreferPreparePresentPrettyPreventPricePridePrimaryPrintPriorityPrisonPrivatePrizeProblemProcessProduceProfitProgramProjectPromoteProofPropertyProsperProtectProudProvidePublicPuddingPullPulpPulsePumpkinPunchPupilPuppyPurchasePurityPurposePursePushPutPuzzlePyramidQualityQuantumQuarterQuestionQuickQuitQuizQuoteRabbitRaccoonRaceRackRadarRadioRailRainRaiseRallyRampRanchRandomRangeRapidRareRateRatherRavenRawRazorReadyRealReasonRebelRebuildRecallReceiveRecipeRecordRecycleReduceReflectReformRefuseRegionRegretRegularRejectRelaxReleaseReliefRelyRemainRememberRemindRemoveRenderRenewRentReopenRepairRepeatReplaceReportRequireRescueResembleResistResourceResponseResultRetireRetreatReturnReunionRevealReviewRewardRhythmRibRibbonRiceRichRideRidgeRifleRightRigidRingRiotRippleRiskRitualRivalRiverRoadRoastRobotRobustRocketRomanceRoofRookieRoomRoseRotateRoughRoundRouteRoyalRubberRudeRugRuleRunRunwayRuralSadSaddleSadnessSafeSailSaladSalmonSalonSaltSaluteSameSampleSandSatisfySatoshiSauceSausageSaveSayScaleScanScareScatterSceneSchemeSchoolScienceScissorsScorpionScoutScrapScreenScriptScrubSeaSearchSeasonSeatSecondSecretSectionSecuritySeedSeekSegmentSelectSellSeminarSeniorSenseSentenceSeriesServiceSessionSettleSetupSevenShadowShaftShallowShareShedShellSheriffShieldShiftShineShipShiverShockShoeShootShopShortShoulderShoveShrimpShrugShuffleShySiblingSickSideSiegeSightSignSilentSilkSillySilverSimilarSimpleSinceSingSirenSisterSituateSixSizeSkateSketchSkiSkillSkinSkirtSkullSlabSlamSleepSlenderSliceSlideSlightSlimSloganSlotSlowSlushSmallSmartSmileSmokeSmoothSnackSnakeSnapSniffSnowSoapSoccerSocialSockSodaSoftSolarSoldierSolidSolutionSolveSomeoneSongSoonSorrySortSoulSoundSoupSourceSouthSpaceSpareSpatialSpawnSpeakSpecialSpeedSpellSpendSphereSpiceSpiderSpikeSpinSpiritSplitSpoilSponsorSpoonSportSpotSpraySpreadSpringSpySquareSqueezeSquirrelStableStadiumStaffStageStairsStampStandStartStateStaySteakSteelStemStepStereoStickStillStingStockStomachStoneStoolStoryStoveStrategyStreetStrikeStrongStruggleStudentStuffStumbleStyleSubjectSubmitSubwaySuccessSuchSuddenSufferSugarSuggestSuitSummerSunSunnySunsetSuperSupplySupremeSureSurfaceSurgeSurpriseSurroundSurveySuspectSustainSwallowSwampSwapSwarmSwearSweetSwiftSwimSwingSwitchSwordSymbolSymptomSyrupSystemTableTackleTagTailTalentTalkTankTapeTargetTaskTasteTattooTaxiTeachTeamTellTenTenantTennisTentTermTestTextThankThatThemeThenTheoryThereTheyThingThisThoughtThreeThriveThrowThumbThunderTicketTideTigerTiltTimberTimeTinyTipTiredTissueTitleToastTobaccoTodayToddlerToeTogetherToiletTokenTomatoTomorrowToneTongueTonightToolToothTopTopicToppleTorchTornadoTortoiseTossTotalTouristTowardTowerTownToyTrackTradeTrafficTragicTrainTransferTrapTrashTravelTrayTreatTreeTrendTrialTribeTrickTriggerTrimTripTrophyTroubleTruckTrueTrulyTrumpetTrustTruthTryTubeTuitionTumbleTunaTunnelTurkeyTurnTurtleTwelveTwentyTwiceTwinTwistTwoTypeTypicalUglyUmbrellaUnableUnawareUncleUncoverUnderUndoUnfairUnfoldUnhappyUniformUniqueUnitUniverseUnknownUnlockUntilUnusualUnveilUpdateUpgradeUpholdUponUpperUpsetUrbanUrgeUsageUseUsedUsefulUselessUsualUtilityVacantVacuumVagueValidValleyValveVanVanishVaporVariousVastVaultVehicleVelvetVendorVentureVenueVerbVerifyVersionVeryVesselVeteranViableVibrantViciousVictoryVideoViewVillageVintageViolinVirtualVirusVisaVisitVisualVitalVividVocalVoiceVoidVolcanoVolumeVoteVoyageWageWagonWaitWalkWallWalnutWantWarfareWarmWarriorWashWaspWasteWaterWaveWayWealthWeaponWearWeaselWeatherWebWeddingWeekendWeirdWelcomeWestWetWhaleWhatWheatWheelWhenWhereWhipWhisperWideWidthWifeWildWillWinWindowWineWingWinkWinnerWinterWireWisdomWiseWishWitnessWolfWomanWonderWoodWoolWordWorkWorldWorryWorthWrapWreckWrestleWristWriteWrongYardYearYellowYouYoungYouthZebraZeroZoneZoo\";\n\nlet wordlist: Array = null;\n\n\nfunction loadWords(lang: Wordlist): void {\n if (wordlist != null) { return; }\n wordlist = words.replace(/([A-Z])/g, \" $1\").toLowerCase().substring(1).split(\" \");\n\n // Verify the computed list matches the official list\n /* istanbul ignore if */\n if (Wordlist.check(lang) !== \"0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60\") {\n wordlist = null;\n throw new Error(\"BIP39 Wordlist for en (English) FAILED\");\n }\n}\n\nclass LangEn extends Wordlist {\n constructor() {\n super(\"en\");\n }\n\n getWord(index: number): string {\n loadWords(this);\n return wordlist[index];\n }\n\n getWordIndex(word: string): number {\n loadWords(this);\n return wordlist.indexOf(word);\n }\n}\n\nconst langEn = new LangEn();\nWordlist.register(langEn);\n\nexport { langEn };\n","\"use strict\";\n\n// Wordlists\n// See: https://github.com/bitcoin/bips/blob/master/bip-0039/bip-0039-wordlists.md\n\n// Browser; only include English by default\n\nimport { Wordlist } from \"./wordlist\";\n\nimport { langEn as en } from \"./lang-en\";\n\nexport const wordlists: { [ locale: string ]: Wordlist } = {\n en: en\n}\n","'use strict'\n// base-x encoding / decoding\n// Copyright (c) 2018 base-x contributors\n// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\nfunction base (ALPHABET) {\n if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') }\n var BASE_MAP = new Uint8Array(256)\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i)\n var xc = x.charCodeAt(0)\n if (BASE_MAP[xc] !== 255) { throw new TypeError(x + ' is ambiguous') }\n BASE_MAP[xc] = i\n }\n var BASE = ALPHABET.length\n var LEADER = ALPHABET.charAt(0)\n var FACTOR = Math.log(BASE) / Math.log(256) // log(BASE) / log(256), rounded up\n var iFACTOR = Math.log(256) / Math.log(BASE) // log(256) / log(BASE), rounded up\n function encode (source) {\n if (source instanceof Uint8Array) {\n } else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength)\n } else if (Array.isArray(source)) {\n source = Uint8Array.from(source)\n }\n if (!(source instanceof Uint8Array)) { throw new TypeError('Expected Uint8Array') }\n if (source.length === 0) { return '' }\n // Skip & count leading zeroes.\n var zeroes = 0\n var length = 0\n var pbegin = 0\n var pend = source.length\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++\n zeroes++\n }\n // Allocate enough space in big-endian base58 representation.\n var size = ((pend - pbegin) * iFACTOR + 1) >>> 0\n var b58 = new Uint8Array(size)\n // Process the bytes.\n while (pbegin !== pend) {\n var carry = source[pbegin]\n // Apply \"b58 = b58 * 256 + ch\".\n var i = 0\n for (var it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) {\n carry += (256 * b58[it1]) >>> 0\n b58[it1] = (carry % BASE) >>> 0\n carry = (carry / BASE) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n pbegin++\n }\n // Skip leading zeroes in base58 result.\n var it2 = size - length\n while (it2 !== size && b58[it2] === 0) {\n it2++\n }\n // Translate the result into a string.\n var str = LEADER.repeat(zeroes)\n for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]) }\n return str\n }\n function decodeUnsafe (source) {\n if (typeof source !== 'string') { throw new TypeError('Expected String') }\n if (source.length === 0) { return new Uint8Array() }\n var psz = 0\n // Skip leading spaces.\n if (source[psz] === ' ') { return }\n // Skip and count leading '1's.\n var zeroes = 0\n var length = 0\n while (source[psz] === LEADER) {\n zeroes++\n psz++\n }\n // Allocate enough space in big-endian base256 representation.\n var size = (((source.length - psz) * FACTOR) + 1) >>> 0 // log(58) / log(256), rounded up.\n var b256 = new Uint8Array(size)\n // Process the characters.\n while (source[psz]) {\n // Decode character\n var carry = BASE_MAP[source.charCodeAt(psz)]\n // Invalid character\n if (carry === 255) { return }\n var i = 0\n for (var it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) {\n carry += (BASE * b256[it3]) >>> 0\n b256[it3] = (carry % 256) >>> 0\n carry = (carry / 256) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n psz++\n }\n // Skip trailing spaces.\n if (source[psz] === ' ') { return }\n // Skip leading zeroes in b256.\n var it4 = size - length\n while (it4 !== size && b256[it4] === 0) {\n it4++\n }\n var vch = new Uint8Array(zeroes + (size - it4))\n var j = zeroes\n while (it4 !== size) {\n vch[j++] = b256[it4++]\n }\n return vch\n }\n function decode (string) {\n var buffer = decodeUnsafe(string)\n if (buffer) { return buffer }\n throw new Error('Non-base' + BASE + ' character')\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n }\n}\nmodule.exports = base\n","import * as React from 'react';\nimport { IconProps } from './types';\n\nexport const CheckIcon = React.forwardRef(\n ({ color = 'currentColor', ...props }, forwardedRef) => {\n return (\n \n \n \n );\n }\n);\n\nexport default CheckIcon;\n","import * as React from 'react';\nimport { IconProps } from './types';\n\nexport const CheckCircledIcon = React.forwardRef(\n ({ color = 'currentColor', ...props }, forwardedRef) => {\n return (\n \n \n \n );\n }\n);\n\nexport default CheckCircledIcon;\n","import * as React from 'react';\nimport { IconProps } from './types';\n\nexport const ChevronDownIcon = React.forwardRef(\n ({ color = 'currentColor', ...props }, forwardedRef) => {\n return (\n \n \n \n );\n }\n);\n\nexport default ChevronDownIcon;\n","import * as React from 'react';\nimport { IconProps } from './types';\n\nexport const ChevronLeftIcon = React.forwardRef(\n ({ color = 'currentColor', ...props }, forwardedRef) => {\n return (\n \n \n \n );\n }\n);\n\nexport default ChevronLeftIcon;\n","import * as React from 'react';\nimport { IconProps } from './types';\n\nexport const ChevronRightIcon = React.forwardRef(\n ({ color = 'currentColor', ...props }, forwardedRef) => {\n return (\n \n \n \n );\n }\n);\n\nexport default ChevronRightIcon;\n","import * as React from 'react';\nimport { IconProps } from './types';\n\nexport const CopyIcon = React.forwardRef(\n ({ color = 'currentColor', ...props }, forwardedRef) => {\n return (\n \n \n \n );\n }\n);\n\nexport default CopyIcon;\n","import * as React from 'react';\nimport { IconProps } from './types';\n\nexport const Cross2Icon = React.forwardRef(\n ({ color = 'currentColor', ...props }, forwardedRef) => {\n return (\n \n \n \n );\n }\n);\n\nexport default Cross2Icon;\n","import * as React from 'react';\nimport { IconProps } from './types';\n\nexport const CrossCircledIcon = React.forwardRef(\n ({ color = 'currentColor', ...props }, forwardedRef) => {\n return (\n \n \n \n );\n }\n);\n\nexport default CrossCircledIcon;\n","import * as React from 'react';\nimport { IconProps } from './types';\n\nexport const EnterIcon = React.forwardRef(\n ({ color = 'currentColor', ...props }, forwardedRef) => {\n return (\n \n \n \n );\n }\n);\n\nexport default EnterIcon;\n","import * as React from 'react';\nimport { IconProps } from './types';\n\nexport const ExclamationTriangleIcon = React.forwardRef(\n ({ color = 'currentColor', ...props }, forwardedRef) => {\n return (\n \n \n \n );\n }\n);\n\nexport default ExclamationTriangleIcon;\n","import * as React from 'react';\nimport { IconProps } from './types';\n\nexport const ExternalLinkIcon = React.forwardRef(\n ({ color = 'currentColor', ...props }, forwardedRef) => {\n return (\n \n \n \n );\n }\n);\n\nexport default ExternalLinkIcon;\n","import * as React from 'react';\nimport { IconProps } from './types';\n\nexport const EyeClosedIcon = React.forwardRef(\n ({ color = 'currentColor', ...props }, forwardedRef) => {\n return (\n \n \n \n );\n }\n);\n\nexport default EyeClosedIcon;\n","import * as React from 'react';\nimport { IconProps } from './types';\n\nexport const EyeOpenIcon = React.forwardRef(\n ({ color = 'currentColor', ...props }, forwardedRef) => {\n return (\n \n \n \n );\n }\n);\n\nexport default EyeOpenIcon;\n","import * as React from 'react';\nimport { IconProps } from './types';\n\nexport const MagnifyingGlassIcon = React.forwardRef(\n ({ color = 'currentColor', ...props }, forwardedRef) => {\n return (\n \n \n \n );\n }\n);\n\nexport default MagnifyingGlassIcon;\n","import * as React from 'react';\nimport { IconProps } from './types';\n\nexport const PaperPlaneIcon = React.forwardRef(\n ({ color = 'currentColor', ...props }, forwardedRef) => {\n return (\n \n \n \n );\n }\n);\n\nexport default PaperPlaneIcon;\n","import * as React from 'react';\nimport { IconProps } from './types';\n\nexport const PinBottomIcon = React.forwardRef(\n ({ color = 'currentColor', ...props }, forwardedRef) => {\n return (\n \n \n \n );\n }\n);\n\nexport default PinBottomIcon;\n","import * as React from 'react';\nimport { IconProps } from './types';\n\nexport const ReloadIcon = React.forwardRef(\n ({ color = 'currentColor', ...props }, forwardedRef) => {\n return (\n \n \n \n );\n }\n);\n\nexport default ReloadIcon;\n","import * as React from 'react';\nimport { IconProps } from './types';\n\nexport const ShuffleIcon = React.forwardRef(\n ({ color = 'currentColor', ...props }, forwardedRef) => {\n return (\n \n \n \n );\n }\n);\n\nexport default ShuffleIcon;\n","import * as React from 'react';\nimport { IconProps } from './types';\n\nexport const TextAlignLeftIcon = React.forwardRef(\n ({ color = 'currentColor', ...props }, forwardedRef) => {\n return (\n \n \n \n );\n }\n);\n\nexport default TextAlignLeftIcon;\n","// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\n\n/**\n * Package binary provides functions for encoding and decoding numbers in byte arrays.\n */\n\nimport { isSafeInteger } from \"@stablelib/int\";\n\n// TODO(dchest): add asserts for correct value ranges and array offsets.\n\n/**\n * Reads 2 bytes from array starting at offset as big-endian\n * signed 16-bit integer and returns it.\n */\nexport function readInt16BE(array: Uint8Array, offset = 0): number {\n return (((array[offset + 0] << 8) | array[offset + 1]) << 16) >> 16;\n}\n\n/**\n * Reads 2 bytes from array starting at offset as big-endian\n * unsigned 16-bit integer and returns it.\n */\nexport function readUint16BE(array: Uint8Array, offset = 0): number {\n return ((array[offset + 0] << 8) | array[offset + 1]) >>> 0;\n}\n\n/**\n * Reads 2 bytes from array starting at offset as little-endian\n * signed 16-bit integer and returns it.\n */\nexport function readInt16LE(array: Uint8Array, offset = 0): number {\n return (((array[offset + 1] << 8) | array[offset]) << 16) >> 16;\n}\n\n/**\n * Reads 2 bytes from array starting at offset as little-endian\n * unsigned 16-bit integer and returns it.\n */\nexport function readUint16LE(array: Uint8Array, offset = 0): number {\n return ((array[offset + 1] << 8) | array[offset]) >>> 0;\n}\n\n/**\n * Writes 2-byte big-endian representation of 16-bit unsigned\n * value to byte array starting at offset.\n *\n * If byte array is not given, creates a new 2-byte one.\n *\n * Returns the output byte array.\n */\nexport function writeUint16BE(value: number, out = new Uint8Array(2), offset = 0): Uint8Array {\n out[offset + 0] = value >>> 8;\n out[offset + 1] = value >>> 0;\n return out;\n}\n\nexport const writeInt16BE = writeUint16BE;\n\n/**\n * Writes 2-byte little-endian representation of 16-bit unsigned\n * value to array starting at offset.\n *\n * If byte array is not given, creates a new 2-byte one.\n *\n * Returns the output byte array.\n */\nexport function writeUint16LE(value: number, out = new Uint8Array(2), offset = 0): Uint8Array {\n out[offset + 0] = value >>> 0;\n out[offset + 1] = value >>> 8;\n return out;\n}\n\nexport const writeInt16LE = writeUint16LE;\n\n/**\n * Reads 4 bytes from array starting at offset as big-endian\n * signed 32-bit integer and returns it.\n */\nexport function readInt32BE(array: Uint8Array, offset = 0): number {\n return (array[offset] << 24) |\n (array[offset + 1] << 16) |\n (array[offset + 2] << 8) |\n array[offset + 3];\n}\n\n/**\n * Reads 4 bytes from array starting at offset as big-endian\n * unsigned 32-bit integer and returns it.\n */\nexport function readUint32BE(array: Uint8Array, offset = 0): number {\n return ((array[offset] << 24) |\n (array[offset + 1] << 16) |\n (array[offset + 2] << 8) |\n array[offset + 3]) >>> 0;\n}\n\n/**\n * Reads 4 bytes from array starting at offset as little-endian\n * signed 32-bit integer and returns it.\n */\nexport function readInt32LE(array: Uint8Array, offset = 0): number {\n return (array[offset + 3] << 24) |\n (array[offset + 2] << 16) |\n (array[offset + 1] << 8) |\n array[offset];\n}\n\n/**\n * Reads 4 bytes from array starting at offset as little-endian\n * unsigned 32-bit integer and returns it.\n */\nexport function readUint32LE(array: Uint8Array, offset = 0): number {\n return ((array[offset + 3] << 24) |\n (array[offset + 2] << 16) |\n (array[offset + 1] << 8) |\n array[offset]) >>> 0;\n}\n\n/**\n * Writes 4-byte big-endian representation of 32-bit unsigned\n * value to byte array starting at offset.\n *\n * If byte array is not given, creates a new 4-byte one.\n *\n * Returns the output byte array.\n */\nexport function writeUint32BE(value: number, out = new Uint8Array(4), offset = 0): Uint8Array {\n out[offset + 0] = value >>> 24;\n out[offset + 1] = value >>> 16;\n out[offset + 2] = value >>> 8;\n out[offset + 3] = value >>> 0;\n return out;\n}\n\nexport const writeInt32BE = writeUint32BE;\n\n/**\n * Writes 4-byte little-endian representation of 32-bit unsigned\n * value to array starting at offset.\n *\n * If byte array is not given, creates a new 4-byte one.\n *\n * Returns the output byte array.\n */\nexport function writeUint32LE(value: number, out = new Uint8Array(4), offset = 0): Uint8Array {\n out[offset + 0] = value >>> 0;\n out[offset + 1] = value >>> 8;\n out[offset + 2] = value >>> 16;\n out[offset + 3] = value >>> 24;\n return out;\n}\n\n\nexport const writeInt32LE = writeUint32LE;\n\n/**\n * Reads 8 bytes from array starting at offset as big-endian\n * signed 64-bit integer and returns it.\n *\n * IMPORTANT: due to JavaScript limitation, supports exact\n * numbers in range -9007199254740991 to 9007199254740991.\n * If the number stored in the byte array is outside this range,\n * the result is not exact.\n */\nexport function readInt64BE(array: Uint8Array, offset = 0): number {\n const hi = readInt32BE(array, offset);\n const lo = readInt32BE(array, offset + 4);\n return hi * 0x100000000 + lo - ((lo>>31) * 0x100000000);\n}\n\n/**\n * Reads 8 bytes from array starting at offset as big-endian\n * unsigned 64-bit integer and returns it.\n *\n * IMPORTANT: due to JavaScript limitation, supports values up to 2^53-1.\n */\nexport function readUint64BE(array: Uint8Array, offset = 0): number {\n const hi = readUint32BE(array, offset);\n const lo = readUint32BE(array, offset + 4);\n return hi * 0x100000000 + lo;\n}\n\n/**\n * Reads 8 bytes from array starting at offset as little-endian\n * signed 64-bit integer and returns it.\n *\n * IMPORTANT: due to JavaScript limitation, supports exact\n * numbers in range -9007199254740991 to 9007199254740991.\n * If the number stored in the byte array is outside this range,\n * the result is not exact.\n */\nexport function readInt64LE(array: Uint8Array, offset = 0): number {\n const lo = readInt32LE(array, offset);\n const hi = readInt32LE(array, offset + 4);\n return hi * 0x100000000 + lo - ((lo>>31) * 0x100000000);\n}\n\n\n/**\n * Reads 8 bytes from array starting at offset as little-endian\n * unsigned 64-bit integer and returns it.\n *\n * IMPORTANT: due to JavaScript limitation, supports values up to 2^53-1.\n */\nexport function readUint64LE(array: Uint8Array, offset = 0): number {\n const lo = readUint32LE(array, offset);\n const hi = readUint32LE(array, offset + 4);\n return hi * 0x100000000 + lo;\n}\n\n/**\n * Writes 8-byte big-endian representation of 64-bit unsigned\n * value to byte array starting at offset.\n *\n * Due to JavaScript limitation, supports values up to 2^53-1.\n *\n * If byte array is not given, creates a new 8-byte one.\n *\n * Returns the output byte array.\n */\nexport function writeUint64BE(value: number, out = new Uint8Array(8), offset = 0): Uint8Array {\n writeUint32BE(value / 0x100000000 >>> 0, out, offset);\n writeUint32BE(value >>> 0, out, offset + 4);\n return out;\n}\n\nexport const writeInt64BE = writeUint64BE;\n\n/**\n * Writes 8-byte little-endian representation of 64-bit unsigned\n * value to byte array starting at offset.\n *\n * Due to JavaScript limitation, supports values up to 2^53-1.\n *\n * If byte array is not given, creates a new 8-byte one.\n *\n * Returns the output byte array.\n */\nexport function writeUint64LE(value: number, out = new Uint8Array(8), offset = 0): Uint8Array {\n writeUint32LE(value >>> 0, out, offset);\n writeUint32LE(value / 0x100000000 >>> 0, out, offset + 4);\n return out;\n}\n\nexport const writeInt64LE = writeUint64LE;\n\n/**\n * Reads bytes from array starting at offset as big-endian\n * unsigned bitLen-bit integer and returns it.\n *\n * Supports bit lengths divisible by 8, up to 48.\n */\nexport function readUintBE(bitLength: number, array: Uint8Array, offset = 0): number {\n // TODO(dchest): implement support for bitLengths non-divisible by 8\n if (bitLength % 8 !== 0) {\n throw new Error(\"readUintBE supports only bitLengths divisible by 8\");\n }\n if (bitLength / 8 > array.length - offset) {\n throw new Error(\"readUintBE: array is too short for the given bitLength\");\n }\n let result = 0;\n let mul = 1;\n for (let i = bitLength / 8 + offset - 1; i >= offset; i--) {\n result += array[i] * mul;\n mul *= 256;\n }\n return result;\n}\n\n/**\n * Reads bytes from array starting at offset as little-endian\n * unsigned bitLen-bit integer and returns it.\n *\n * Supports bit lengths divisible by 8, up to 48.\n */\nexport function readUintLE(bitLength: number, array: Uint8Array, offset = 0): number {\n // TODO(dchest): implement support for bitLengths non-divisible by 8\n if (bitLength % 8 !== 0) {\n throw new Error(\"readUintLE supports only bitLengths divisible by 8\");\n }\n if (bitLength / 8 > array.length - offset) {\n throw new Error(\"readUintLE: array is too short for the given bitLength\");\n }\n let result = 0;\n let mul = 1;\n for (let i = offset; i < offset + bitLength / 8; i++) {\n result += array[i] * mul;\n mul *= 256;\n }\n return result;\n}\n\n/**\n * Writes a big-endian representation of bitLen-bit unsigned\n * value to array starting at offset.\n *\n * Supports bit lengths divisible by 8, up to 48.\n *\n * If byte array is not given, creates a new one.\n *\n * Returns the output byte array.\n */\nexport function writeUintBE(bitLength: number, value: number,\n out = new Uint8Array(bitLength / 8), offset = 0): Uint8Array {\n // TODO(dchest): implement support for bitLengths non-divisible by 8\n if (bitLength % 8 !== 0) {\n throw new Error(\"writeUintBE supports only bitLengths divisible by 8\");\n }\n if (!isSafeInteger(value)) {\n throw new Error(\"writeUintBE value must be an integer\");\n }\n let div = 1;\n for (let i = bitLength / 8 + offset - 1; i >= offset; i--) {\n out[i] = (value / div) & 0xff;\n div *= 256;\n }\n return out;\n}\n\n/**\n * Writes a little-endian representation of bitLen-bit unsigned\n * value to array starting at offset.\n *\n * Supports bit lengths divisible by 8, up to 48.\n *\n * If byte array is not given, creates a new one.\n *\n * Returns the output byte array.\n */\nexport function writeUintLE(bitLength: number, value: number,\n out = new Uint8Array(bitLength / 8), offset = 0): Uint8Array {\n // TODO(dchest): implement support for bitLengths non-divisible by 8\n if (bitLength % 8 !== 0) {\n throw new Error(\"writeUintLE supports only bitLengths divisible by 8\");\n }\n if (!isSafeInteger(value)) {\n throw new Error(\"writeUintLE value must be an integer\");\n }\n let div = 1;\n for (let i = offset; i < offset + bitLength / 8; i++) {\n out[i] = (value / div) & 0xff;\n div *= 256;\n }\n return out;\n}\n\n/**\n * Reads 4 bytes from array starting at offset as big-endian\n * 32-bit floating-point number and returns it.\n */\nexport function readFloat32BE(array: Uint8Array, offset = 0): number {\n const view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n return view.getFloat32(offset);\n}\n\n/**\n * Reads 4 bytes from array starting at offset as little-endian\n * 32-bit floating-point number and returns it.\n */\nexport function readFloat32LE(array: Uint8Array, offset = 0): number {\n const view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n return view.getFloat32(offset, true);\n}\n\n/**\n * Reads 8 bytes from array starting at offset as big-endian\n * 64-bit floating-point number (\"double\") and returns it.\n */\nexport function readFloat64BE(array: Uint8Array, offset = 0): number {\n const view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n return view.getFloat64(offset);\n}\n\n/**\n * Reads 8 bytes from array starting at offset as little-endian\n * 64-bit floating-point number (\"double\") and returns it.\n */\nexport function readFloat64LE(array: Uint8Array, offset = 0): number {\n const view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n return view.getFloat64(offset, true);\n}\n\n/**\n * Writes 4-byte big-endian floating-point representation of value\n * to byte array starting at offset.\n *\n * If byte array is not given, creates a new 4-byte one.\n *\n * Returns the output byte array.\n */\nexport function writeFloat32BE(value: number, out = new Uint8Array(4), offset = 0): Uint8Array {\n const view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n view.setFloat32(offset, value);\n return out;\n}\n\n/**\n * Writes 4-byte little-endian floating-point representation of value\n * to byte array starting at offset.\n *\n * If byte array is not given, creates a new 4-byte one.\n *\n * Returns the output byte array.\n */\nexport function writeFloat32LE(value: number, out = new Uint8Array(4), offset = 0): Uint8Array {\n const view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n view.setFloat32(offset, value, true);\n return out;\n}\n\n/**\n * Writes 8-byte big-endian floating-point representation of value\n * to byte array starting at offset.\n *\n * If byte array is not given, creates a new 8-byte one.\n *\n * Returns the output byte array.\n */\nexport function writeFloat64BE(value: number, out = new Uint8Array(8), offset = 0): Uint8Array {\n const view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n view.setFloat64(offset, value);\n return out;\n}\n\n/**\n * Writes 8-byte little-endian floating-point representation of value\n * to byte array starting at offset.\n *\n * If byte array is not given, creates a new 8-byte one.\n *\n * Returns the output byte array.\n */\nexport function writeFloat64LE(value: number, out = new Uint8Array(8), offset = 0): Uint8Array {\n const view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n view.setFloat64(offset, value, true);\n return out;\n}\n","// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\n\n/**\n * Package chacha20poly1305 implements ChaCha20-Poly1305 AEAD.\n */\n\nimport { AEAD } from \"@stablelib/aead\";\nimport { streamXOR, stream } from \"@stablelib/chacha\";\nimport { Poly1305 } from \"@stablelib/poly1305\";\nimport { wipe } from \"@stablelib/wipe\";\nimport { writeUint64LE } from \"@stablelib/binary\";\nimport { equal } from \"@stablelib/constant-time\";\n\nexport const KEY_LENGTH = 32;\nexport const NONCE_LENGTH = 12;\nexport const TAG_LENGTH = 16;\n\nconst ZEROS = new Uint8Array(16);\n\n/**\n * ChaCha20-Poly1305 Authenticated Encryption with Associated Data.\n *\n * Defined in RFC7539.\n */\nexport class ChaCha20Poly1305 implements AEAD {\n readonly nonceLength = NONCE_LENGTH;\n readonly tagLength = TAG_LENGTH;\n\n private _key: Uint8Array;\n\n /**\n * Creates a new instance with the given 32-byte key.\n */\n constructor(key: Uint8Array) {\n if (key.length !== KEY_LENGTH) {\n throw new Error(\"ChaCha20Poly1305 needs 32-byte key\");\n }\n // Copy key.\n this._key = new Uint8Array(key);\n }\n\n /**\n * Encrypts and authenticates plaintext, authenticates associated data,\n * and returns sealed ciphertext, which includes authentication tag.\n *\n * RFC7539 specifies 12 bytes for nonce. It may be this 12-byte nonce\n * (\"IV\"), or full 16-byte counter (called \"32-bit fixed-common part\")\n * and nonce.\n *\n * If dst is given (it must be the size of plaintext + the size of tag\n * length) the result will be put into it. Dst and plaintext must not\n * overlap.\n */\n seal(nonce: Uint8Array, plaintext: Uint8Array, associatedData?: Uint8Array,\n dst?: Uint8Array): Uint8Array {\n if (nonce.length > 16) {\n throw new Error(\"ChaCha20Poly1305: incorrect nonce length\");\n }\n\n // Allocate space for counter, and set nonce as last bytes of it.\n const counter = new Uint8Array(16);\n counter.set(nonce, counter.length - nonce.length);\n\n // Generate authentication key by taking first 32-bytes of stream.\n // We pass full counter, which has 12-byte nonce and 4-byte block counter,\n // and it will get incremented after generating the block, which is\n // exactly what we need: we only use the first 32 bytes of 64-byte\n // ChaCha block and discard the next 32 bytes.\n const authKey = new Uint8Array(32);\n stream(this._key, counter, authKey, 4);\n\n // Allocate space for sealed ciphertext.\n const resultLength = plaintext.length + this.tagLength;\n let result;\n if (dst) {\n if (dst.length !== resultLength) {\n throw new Error(\"ChaCha20Poly1305: incorrect destination length\");\n }\n result = dst;\n } else {\n result = new Uint8Array(resultLength);\n }\n\n // Encrypt plaintext.\n streamXOR(this._key, counter, plaintext, result, 4);\n\n // Authenticate.\n // XXX: can \"simplify\" here: pass full result (which is already padded\n // due to zeroes prepared for tag), and ciphertext length instead of\n // subarray of result.\n this._authenticate(result.subarray(result.length - this.tagLength, result.length),\n authKey, result.subarray(0, result.length - this.tagLength), associatedData);\n\n // Cleanup.\n wipe(counter);\n\n return result;\n }\n\n /**\n * Authenticates sealed ciphertext (which includes authentication tag) and\n * associated data, decrypts ciphertext and returns decrypted plaintext.\n *\n * RFC7539 specifies 12 bytes for nonce. It may be this 12-byte nonce\n * (\"IV\"), or full 16-byte counter (called \"32-bit fixed-common part\")\n * and nonce.\n *\n * If authentication fails, it returns null.\n *\n * If dst is given (it must be of ciphertext length minus tag length),\n * the result will be put into it. Dst and plaintext must not overlap.\n */\n open(nonce: Uint8Array, sealed: Uint8Array, associatedData?: Uint8Array,\n dst?: Uint8Array): Uint8Array | null {\n if (nonce.length > 16) {\n throw new Error(\"ChaCha20Poly1305: incorrect nonce length\");\n }\n\n // Sealed ciphertext should at least contain tag.\n if (sealed.length < this.tagLength) {\n // TODO(dchest): should we throw here instead?\n return null;\n }\n\n // Allocate space for counter, and set nonce as last bytes of it.\n const counter = new Uint8Array(16);\n counter.set(nonce, counter.length - nonce.length);\n\n // Generate authentication key by taking first 32-bytes of stream.\n const authKey = new Uint8Array(32);\n stream(this._key, counter, authKey, 4);\n\n // Authenticate.\n // XXX: can simplify and avoid allocation: since authenticate()\n // already allocates tag (from Poly1305.digest(), it can return)\n // it instead of copying to calculatedTag. But then in seal()\n // we'll need to copy it.\n const calculatedTag = new Uint8Array(this.tagLength);\n this._authenticate(calculatedTag, authKey,\n sealed.subarray(0, sealed.length - this.tagLength), associatedData);\n\n // Constant-time compare tags and return null if they differ.\n if (!equal(calculatedTag,\n sealed.subarray(sealed.length - this.tagLength, sealed.length))) {\n return null;\n }\n\n // Allocate space for decrypted plaintext.\n const resultLength = sealed.length - this.tagLength;\n let result;\n if (dst) {\n if (dst.length !== resultLength) {\n throw new Error(\"ChaCha20Poly1305: incorrect destination length\");\n }\n result = dst;\n } else {\n result = new Uint8Array(resultLength);\n }\n\n // Decrypt.\n streamXOR(this._key, counter,\n sealed.subarray(0, sealed.length - this.tagLength), result, 4);\n\n // Cleanup.\n wipe(counter);\n\n return result;\n }\n\n clean(): this {\n wipe(this._key);\n return this;\n }\n\n private _authenticate(tagOut: Uint8Array, authKey: Uint8Array,\n ciphertext: Uint8Array, associatedData?: Uint8Array) {\n\n // Initialize Poly1305 with authKey.\n const h = new Poly1305(authKey);\n\n // Authenticate padded associated data.\n if (associatedData) {\n h.update(associatedData);\n if (associatedData.length % 16 > 0) {\n h.update(ZEROS.subarray(associatedData.length % 16));\n }\n }\n\n // Authenticate padded ciphertext.\n h.update(ciphertext);\n if (ciphertext.length % 16 > 0) {\n h.update(ZEROS.subarray(ciphertext.length % 16));\n }\n\n // Authenticate length of associated data.\n // XXX: can avoid allocation here?\n const length = new Uint8Array(8);\n if (associatedData) {\n writeUint64LE(associatedData.length, length);\n }\n h.update(length);\n\n // Authenticate length of ciphertext.\n writeUint64LE(ciphertext.length, length);\n h.update(length);\n\n // Get tag and copy it into tagOut.\n const tag = h.digest();\n for (let i = 0; i < tag.length; i++) {\n tagOut[i] = tag[i];\n }\n\n // Cleanup.\n h.clean();\n wipe(tag);\n wipe(length);\n }\n}\n","// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\n\n/**\n * Package chacha implements ChaCha stream cipher.\n */\n\nimport { writeUint32LE } from \"@stablelib/binary\";\nimport { wipe } from \"@stablelib/wipe\";\n\n// Number of ChaCha rounds (ChaCha20).\nconst ROUNDS = 20;\n\n// Applies the ChaCha core function to 16-byte input,\n// 32-byte key key, and puts the result into 64-byte array out.\nfunction core(out: Uint8Array, input: Uint8Array, key: Uint8Array): void {\n let j0 = 0x61707865; // \"expa\" -- ChaCha's \"sigma\" constant\n let j1 = 0x3320646E; // \"nd 3\" for 32-byte keys\n let j2 = 0x79622D32; // \"2-by\"\n let j3 = 0x6B206574; // \"te k\"\n let j4 = (key[3] << 24) | (key[2] << 16) | (key[1] << 8) | key[0];\n let j5 = (key[7] << 24) | (key[6] << 16) | (key[5] << 8) | key[4];\n let j6 = (key[11] << 24) | (key[10] << 16) | (key[9] << 8) | key[8];\n let j7 = (key[15] << 24) | (key[14] << 16) | (key[13] << 8) | key[12];\n let j8 = (key[19] << 24) | (key[18] << 16) | (key[17] << 8) | key[16];\n let j9 = (key[23] << 24) | (key[22] << 16) | (key[21] << 8) | key[20];\n let j10 = (key[27] << 24) | (key[26] << 16) | (key[25] << 8) | key[24];\n let j11 = (key[31] << 24) | (key[30] << 16) | (key[29] << 8) | key[28];\n let j12 = (input[3] << 24) | (input[2] << 16) | (input[1] << 8) | input[0];\n let j13 = (input[7] << 24) | (input[6] << 16) | (input[5] << 8) | input[4];\n let j14 = (input[11] << 24) | (input[10] << 16) | (input[9] << 8) | input[8];\n let j15 = (input[15] << 24) | (input[14] << 16) | (input[13] << 8) | input[12];\n\n let x0 = j0;\n let x1 = j1;\n let x2 = j2;\n let x3 = j3;\n let x4 = j4;\n let x5 = j5;\n let x6 = j6;\n let x7 = j7;\n let x8 = j8;\n let x9 = j9;\n let x10 = j10;\n let x11 = j11;\n let x12 = j12;\n let x13 = j13;\n let x14 = j14;\n let x15 = j15;\n\n for (let i = 0; i < ROUNDS; i += 2) {\n x0 = x0 + x4 | 0; x12 ^= x0; x12 = x12 >>> (32 - 16) | x12 << 16;\n x8 = x8 + x12 | 0; x4 ^= x8; x4 = x4 >>> (32 - 12) | x4 << 12;\n x1 = x1 + x5 | 0; x13 ^= x1; x13 = x13 >>> (32 - 16) | x13 << 16;\n x9 = x9 + x13 | 0; x5 ^= x9; x5 = x5 >>> (32 - 12) | x5 << 12;\n\n x2 = x2 + x6 | 0; x14 ^= x2; x14 = x14 >>> (32 - 16) | x14 << 16;\n x10 = x10 + x14 | 0; x6 ^= x10; x6 = x6 >>> (32 - 12) | x6 << 12;\n x3 = x3 + x7 | 0; x15 ^= x3; x15 = x15 >>> (32 - 16) | x15 << 16;\n x11 = x11 + x15 | 0; x7 ^= x11; x7 = x7 >>> (32 - 12) | x7 << 12;\n\n x2 = x2 + x6 | 0; x14 ^= x2; x14 = x14 >>> (32 - 8) | x14 << 8;\n x10 = x10 + x14 | 0; x6 ^= x10; x6 = x6 >>> (32 - 7) | x6 << 7;\n x3 = x3 + x7 | 0; x15 ^= x3; x15 = x15 >>> (32 - 8) | x15 << 8;\n x11 = x11 + x15 | 0; x7 ^= x11; x7 = x7 >>> (32 - 7) | x7 << 7;\n\n x1 = x1 + x5 | 0; x13 ^= x1; x13 = x13 >>> (32 - 8) | x13 << 8;\n x9 = x9 + x13 | 0; x5 ^= x9; x5 = x5 >>> (32 - 7) | x5 << 7;\n x0 = x0 + x4 | 0; x12 ^= x0; x12 = x12 >>> (32 - 8) | x12 << 8;\n x8 = x8 + x12 | 0; x4 ^= x8; x4 = x4 >>> (32 - 7) | x4 << 7;\n\n x0 = x0 + x5 | 0; x15 ^= x0; x15 = x15 >>> (32 - 16) | x15 << 16;\n x10 = x10 + x15 | 0; x5 ^= x10; x5 = x5 >>> (32 - 12) | x5 << 12;\n x1 = x1 + x6 | 0; x12 ^= x1; x12 = x12 >>> (32 - 16) | x12 << 16;\n x11 = x11 + x12 | 0; x6 ^= x11; x6 = x6 >>> (32 - 12) | x6 << 12;\n\n x2 = x2 + x7 | 0; x13 ^= x2; x13 = x13 >>> (32 - 16) | x13 << 16;\n x8 = x8 + x13 | 0; x7 ^= x8; x7 = x7 >>> (32 - 12) | x7 << 12;\n x3 = x3 + x4 | 0; x14 ^= x3; x14 = x14 >>> (32 - 16) | x14 << 16;\n x9 = x9 + x14 | 0; x4 ^= x9; x4 = x4 >>> (32 - 12) | x4 << 12;\n\n x2 = x2 + x7 | 0; x13 ^= x2; x13 = x13 >>> (32 - 8) | x13 << 8;\n x8 = x8 + x13 | 0; x7 ^= x8; x7 = x7 >>> (32 - 7) | x7 << 7;\n x3 = x3 + x4 | 0; x14 ^= x3; x14 = x14 >>> (32 - 8) | x14 << 8;\n x9 = x9 + x14 | 0; x4 ^= x9; x4 = x4 >>> (32 - 7) | x4 << 7;\n\n x1 = x1 + x6 | 0; x12 ^= x1; x12 = x12 >>> (32 - 8) | x12 << 8;\n x11 = x11 + x12 | 0; x6 ^= x11; x6 = x6 >>> (32 - 7) | x6 << 7;\n x0 = x0 + x5 | 0; x15 ^= x0; x15 = x15 >>> (32 - 8) | x15 << 8;\n x10 = x10 + x15 | 0; x5 ^= x10; x5 = x5 >>> (32 - 7) | x5 << 7;\n }\n writeUint32LE(x0 + j0 | 0, out, 0);\n writeUint32LE(x1 + j1 | 0, out, 4);\n writeUint32LE(x2 + j2 | 0, out, 8);\n writeUint32LE(x3 + j3 | 0, out, 12);\n writeUint32LE(x4 + j4 | 0, out, 16);\n writeUint32LE(x5 + j5 | 0, out, 20);\n writeUint32LE(x6 + j6 | 0, out, 24);\n writeUint32LE(x7 + j7 | 0, out, 28);\n writeUint32LE(x8 + j8 | 0, out, 32);\n writeUint32LE(x9 + j9 | 0, out, 36);\n writeUint32LE(x10 + j10 | 0, out, 40);\n writeUint32LE(x11 + j11 | 0, out, 44);\n writeUint32LE(x12 + j12 | 0, out, 48);\n writeUint32LE(x13 + j13 | 0, out, 52);\n writeUint32LE(x14 + j14 | 0, out, 56);\n writeUint32LE(x15 + j15 | 0, out, 60);\n}\n\n/**\n * Encrypt src with ChaCha20 stream generated for the given 32-byte key and\n * 8-byte (as in original implementation) or 12-byte (as in RFC7539) nonce and\n * write the result into dst and return it.\n *\n * dst and src may be the same, but otherwise must not overlap.\n *\n * If nonce is 12 bytes, users should not encrypt more than 256 GiB with the\n * same key and nonce, otherwise the stream will repeat. The function will\n * throw error if counter overflows to prevent this.\n *\n * If nonce is 8 bytes, the output is practically unlimited (2^70 bytes, which\n * is more than a million petabytes). However, it is not recommended to\n * generate 8-byte nonces randomly, as the chance of collision is high.\n *\n * Never use the same key and nonce to encrypt more than one message.\n *\n * If nonceInplaceCounterLength is not 0, the nonce is assumed to be a 16-byte\n * array with stream counter in first nonceInplaceCounterLength bytes and nonce\n * in the last remaining bytes. The counter will be incremented inplace for\n * each ChaCha block. This is useful if you need to encrypt one stream of data\n * in chunks.\n */\nexport function streamXOR(key: Uint8Array, nonce: Uint8Array,\n src: Uint8Array, dst: Uint8Array, nonceInplaceCounterLength = 0): Uint8Array {\n // We only support 256-bit keys.\n if (key.length !== 32) {\n throw new Error(\"ChaCha: key size must be 32 bytes\");\n }\n\n if (dst.length < src.length) {\n throw new Error(\"ChaCha: destination is shorter than source\");\n }\n\n let nc: Uint8Array;\n let counterLength: number;\n\n if (nonceInplaceCounterLength === 0) {\n if (nonce.length !== 8 && nonce.length !== 12) {\n throw new Error(\"ChaCha nonce must be 8 or 12 bytes\");\n }\n nc = new Uint8Array(16);\n // First counterLength bytes of nc are counter, starting with zero.\n counterLength = nc.length - nonce.length;\n // Last bytes of nc after counterLength are nonce, set them.\n nc.set(nonce, counterLength);\n } else {\n if (nonce.length !== 16) {\n throw new Error(\"ChaCha nonce with counter must be 16 bytes\");\n }\n // This will update passed nonce with counter inplace.\n nc = nonce;\n counterLength = nonceInplaceCounterLength;\n }\n\n // Allocate temporary space for ChaCha block.\n const block = new Uint8Array(64);\n\n for (let i = 0; i < src.length; i += 64) {\n // Generate a block.\n core(block, nc, key);\n\n // XOR block bytes with src into dst.\n for (let j = i; j < i + 64 && j < src.length; j++) {\n dst[j] = src[j] ^ block[j - i];\n }\n\n // Increment counter.\n incrementCounter(nc, 0, counterLength);\n }\n\n // Cleanup temporary space.\n wipe(block);\n\n if (nonceInplaceCounterLength === 0) {\n // Cleanup counter.\n wipe(nc);\n }\n\n return dst;\n}\n\n/**\n * Generate ChaCha20 stream for the given 32-byte key and 8-byte or 12-byte\n * nonce and write it into dst and return it.\n *\n * Never use the same key and nonce to generate more than one stream.\n *\n * If nonceInplaceCounterLength is not 0, it behaves the same with respect to\n * the nonce as described in the streamXOR documentation.\n *\n * stream is like streamXOR with all-zero src.\n */\nexport function stream(key: Uint8Array, nonce: Uint8Array,\n dst: Uint8Array, nonceInplaceCounterLength = 0): Uint8Array {\n wipe(dst);\n return streamXOR(key, nonce, dst, dst, nonceInplaceCounterLength);\n}\n\nfunction incrementCounter(counter: Uint8Array, pos: number, len: number) {\n let carry = 1;\n while (len--) {\n carry = carry + (counter[pos] & 0xff) | 0;\n counter[pos] = carry & 0xff;\n carry >>>= 8;\n pos++;\n }\n if (carry > 0) {\n throw new Error(\"ChaCha: counter overflow\");\n }\n}\n","// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\n\n/**\n * Package constant-time provides functions for performing algorithmically constant-time operations.\n */\n\n/**\n * NOTE! Due to the inability to guarantee real constant time evaluation of\n * anything in JavaScript VM, this is module is the best effort.\n */\n\n/**\n * Returns resultIfOne if subject is 1, or resultIfZero if subject is 0.\n *\n * Supports only 32-bit integers, so resultIfOne or resultIfZero are not\n * integers, they'll be converted to them with bitwise operations.\n */\nexport function select(subject: number, resultIfOne: number, resultIfZero: number): number {\n return (~(subject - 1) & resultIfOne) | ((subject - 1) & resultIfZero);\n}\n\n/**\n * Returns 1 if a <= b, or 0 if not.\n * Arguments must be positive 32-bit integers less than or equal to 2^31 - 1.\n */\nexport function lessOrEqual(a: number, b: number): number {\n return (((a | 0) - (b | 0) - 1) >>> 31) & 1;\n}\n\n/**\n * Returns 1 if a and b are of equal length and their contents\n * are equal, or 0 otherwise.\n *\n * Note that unlike in equal(), zero-length inputs are considered\n * the same, so this function will return 1.\n */\nexport function compare(a: Uint8Array, b: Uint8Array): number {\n if (a.length !== b.length) {\n return 0;\n }\n let result = 0;\n for (let i = 0; i < a.length; i++) {\n result |= a[i] ^ b[i];\n }\n return (1 & ((result - 1) >>> 8));\n}\n\n/**\n * Returns true if a and b are of equal non-zero length,\n * and their contents are equal, or false otherwise.\n *\n * Note that unlike in compare() zero-length inputs are considered\n * _not_ equal, so this function will return false.\n */\nexport function equal(a: Uint8Array, b: Uint8Array): boolean {\n if (a.length === 0 || b.length === 0) {\n return false;\n }\n return compare(a, b) !== 0;\n}\n","// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\n\n/**\n * Package ed25519 implements Ed25519 public-key signature algorithm.\n */\n\nimport { randomBytes, RandomSource } from \"@stablelib/random\";\nimport { hash, SHA512 } from \"@stablelib/sha512\";\nimport { wipe } from \"@stablelib/wipe\";\n\nexport const SIGNATURE_LENGTH = 64;\nexport const PUBLIC_KEY_LENGTH = 32;\nexport const SECRET_KEY_LENGTH = 64;\nexport const SEED_LENGTH = 32;\n\n// TODO(dchest): some functions are copies of ../kex/x25519.\n// Find a way to combine them without opening up to public.\n\n// Ported from TweetNaCl.js, which was ported from TweetNaCl\n// by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n// https://tweetnacl.js.org\n\n// TweetNaCl contributors:\n// Daniel J. Bernstein, Bernard van Gastel, Wesley Janssen,\n// Tanja Lange, Peter Schwabe, Sjaak Smetsers.\n// Public domain.\n// https://tweetnacl.cr.yp.to/\n\ntype GF = Float64Array;\n\n// Returns new zero-filled 16-element GF (Float64Array).\n// If passed an array of numbers, prefills the returned\n// array with them.\n//\n// We use Float64Array, because we need 48-bit numbers\n// for this implementation.\nfunction gf(init?: number[]): GF {\n const r = new Float64Array(16);\n if (init) {\n for (let i = 0; i < init.length; i++) {\n r[i] = init[i];\n }\n }\n return r;\n}\n\n// Base point.\nconst _9 = new Uint8Array(32); _9[0] = 9;\n\nconst gf0 = gf();\n\nconst gf1 = gf([1]);\n\nconst D = gf([\n 0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070,\n 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203\n]);\n\nconst D2 = gf([\n 0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0,\n 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406\n]);\n\nconst X = gf([\n 0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c,\n 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169\n]);\n\nconst Y = gf([\n 0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666,\n 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666\n]);\n\nconst I = gf([\n 0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43,\n 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83\n]);\n\nfunction set25519(r: GF, a: GF) {\n for (let i = 0; i < 16; i++) {\n r[i] = a[i] | 0;\n }\n}\n\nfunction car25519(o: GF) {\n let c = 1;\n for (let i = 0; i < 16; i++) {\n let v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c - 1 + 37 * (c - 1);\n}\n\nfunction sel25519(p: GF, q: GF, b: number) {\n const c = ~(b - 1);\n for (let i = 0; i < 16; i++) {\n const t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\n\nfunction pack25519(o: Uint8Array, n: GF) {\n const m = gf();\n const t = gf();\n for (let i = 0; i < 16; i++) {\n t[i] = n[i];\n }\n car25519(t);\n car25519(t);\n car25519(t);\n for (let j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (let i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i - 1] >> 16) & 1);\n m[i - 1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14] >> 16) & 1);\n const b = (m[15] >> 16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1 - b);\n }\n for (let i = 0; i < 16; i++) {\n o[2 * i] = t[i] & 0xff;\n o[2 * i + 1] = t[i] >> 8;\n }\n}\n\nfunction verify32(x: Uint8Array, y: Uint8Array) {\n let d = 0;\n for (let i = 0; i < 32; i++) {\n d |= x[i] ^ y[i];\n }\n return (1 & ((d - 1) >>> 8)) - 1;\n}\n\n\nfunction neq25519(a: GF, b: GF) {\n const c = new Uint8Array(32);\n const d = new Uint8Array(32);\n pack25519(c, a);\n pack25519(d, b);\n return verify32(c, d);\n}\n\nfunction par25519(a: GF) {\n const d = new Uint8Array(32);\n pack25519(d, a);\n return d[0] & 1;\n}\n\nfunction unpack25519(o: GF, n: Uint8Array) {\n for (let i = 0; i < 16; i++) {\n o[i] = n[2 * i] + (n[2 * i + 1] << 8);\n }\n o[15] &= 0x7fff;\n}\n\nfunction add(o: GF, a: GF, b: GF) {\n for (let i = 0; i < 16; i++) {\n o[i] = a[i] + b[i];\n }\n}\n\nfunction sub(o: GF, a: GF, b: GF) {\n for (let i = 0; i < 16; i++) {\n o[i] = a[i] - b[i];\n }\n}\n\nfunction mul(o: GF, a: GF, b: GF) {\n let v: number, c: number,\n t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0,\n t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0,\n t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0,\n t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0,\n b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11],\n b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n\n // first car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c - 1 + 37 * (c - 1);\n\n // second car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c - 1 + 37 * (c - 1);\n\n o[0] = t0;\n o[1] = t1;\n o[2] = t2;\n o[3] = t3;\n o[4] = t4;\n o[5] = t5;\n o[6] = t6;\n o[7] = t7;\n o[8] = t8;\n o[9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\n\nfunction square(o: GF, a: GF) {\n mul(o, a, a);\n}\n\nfunction inv25519(o: GF, i: GF) {\n const c = gf();\n let a: number;\n for (a = 0; a < 16; a++) {\n c[a] = i[a];\n }\n for (a = 253; a >= 0; a--) {\n square(c, c);\n if (a !== 2 && a !== 4) {\n mul(c, c, i);\n }\n }\n for (a = 0; a < 16; a++) {\n o[a] = c[a];\n }\n}\n\nfunction pow2523(o: GF, i: GF) {\n const c = gf();\n let a: number;\n for (a = 0; a < 16; a++) {\n c[a] = i[a];\n }\n for (a = 250; a >= 0; a--) {\n square(c, c);\n if (a !== 1) {\n mul(c, c, i);\n }\n }\n for (a = 0; a < 16; a++) {\n o[a] = c[a];\n }\n}\n\n\nfunction edadd(p: GF[], q: GF[]) {\n const a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf(),\n g = gf(), h = gf(), t = gf();\n\n sub(a, p[1], p[0]);\n sub(t, q[1], q[0]);\n mul(a, a, t);\n add(b, p[0], p[1]);\n add(t, q[0], q[1]);\n mul(b, b, t);\n mul(c, p[3], q[3]);\n mul(c, c, D2);\n mul(d, p[2], q[2]);\n add(d, d, d);\n sub(e, b, a);\n sub(f, d, c);\n add(g, d, c);\n add(h, b, a);\n\n mul(p[0], e, f);\n mul(p[1], h, g);\n mul(p[2], g, f);\n mul(p[3], e, h);\n}\n\nfunction cswap(p: GF[], q: GF[], b: number) {\n for (let i = 0; i < 4; i++) {\n sel25519(p[i], q[i], b);\n }\n}\n\nfunction pack(r: Uint8Array, p: GF[]) {\n const tx = gf(), ty = gf(), zi = gf();\n inv25519(zi, p[2]);\n mul(tx, p[0], zi);\n mul(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\n\nfunction scalarmult(p: GF[], q: GF[], s: Uint8Array) {\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for (let i = 255; i >= 0; --i) {\n const b = (s[(i / 8) | 0] >> (i & 7)) & 1;\n cswap(p, q, b);\n edadd(q, p);\n edadd(p, p);\n cswap(p, q, b);\n }\n}\n\nfunction scalarbase(p: GF[], s: Uint8Array) {\n const q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n mul(q[3], X, Y);\n scalarmult(p, q, s);\n}\n\nexport interface KeyPair {\n publicKey: Uint8Array;\n secretKey: Uint8Array;\n}\n\n// Generates key pair from secret 32-byte seed.\nexport function generateKeyPairFromSeed(seed: Uint8Array): KeyPair {\n if (seed.length !== SEED_LENGTH) {\n throw new Error(`ed25519: seed must be ${SEED_LENGTH} bytes`);\n }\n\n const d = hash(seed);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n const publicKey = new Uint8Array(32);\n const p = [gf(), gf(), gf(), gf()];\n scalarbase(p, d);\n pack(publicKey, p);\n\n const secretKey = new Uint8Array(64);\n secretKey.set(seed);\n secretKey.set(publicKey, 32);\n\n return {\n publicKey,\n secretKey\n };\n}\n\nexport function generateKeyPair(prng?: RandomSource): KeyPair {\n const seed = randomBytes(32, prng);\n const result = generateKeyPairFromSeed(seed);\n wipe(seed);\n return result;\n}\n\nexport function extractPublicKeyFromSecretKey(secretKey: Uint8Array): Uint8Array {\n if (secretKey.length !== SECRET_KEY_LENGTH) {\n throw new Error(`ed25519: secret key must be ${SECRET_KEY_LENGTH} bytes`);\n }\n return new Uint8Array(secretKey.subarray(32));\n}\n\nconst L = new Float64Array([\n 0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2,\n 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10\n]);\n\nfunction modL(r: Uint8Array, x: Float64Array) {\n let carry: number;\n let i: number;\n let j: number;\n let k: number;\n for (i = 63; i >= 32; --i) {\n carry = 0;\n for (j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = Math.floor((x[j] + 128) / 256);\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for (j = 0; j < 32; j++) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for (j = 0; j < 32; j++) {\n x[j] -= carry * L[j];\n }\n for (i = 0; i < 32; i++) {\n x[i + 1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n}\n\nfunction reduce(r: Uint8Array) {\n const x = new Float64Array(64);\n for (let i = 0; i < 64; i++) {\n x[i] = r[i];\n }\n for (let i = 0; i < 64; i++) {\n r[i] = 0;\n }\n modL(r, x);\n}\n\n// Returns 64-byte signature of the message under the 64-byte secret key.\nexport function sign(secretKey: Uint8Array, message: Uint8Array): Uint8Array {\n const x = new Float64Array(64);\n const p = [gf(), gf(), gf(), gf()];\n\n const d = hash(secretKey.subarray(0, 32));\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n const signature = new Uint8Array(64);\n signature.set(d.subarray(32), 32);\n\n const hs = new SHA512();\n hs.update(signature.subarray(32));\n hs.update(message);\n const r = hs.digest();\n hs.clean();\n reduce(r);\n scalarbase(p, r);\n pack(signature, p);\n\n hs.reset();\n hs.update(signature.subarray(0, 32));\n hs.update(secretKey.subarray(32));\n hs.update(message);\n const h = hs.digest();\n reduce(h);\n\n for (let i = 0; i < 32; i++) {\n x[i] = r[i];\n }\n for (let i = 0; i < 32; i++) {\n for (let j = 0; j < 32; j++) {\n x[i + j] += h[i] * d[j];\n }\n }\n modL(signature.subarray(32), x);\n\n return signature;\n}\n\nfunction unpackneg(r: GF[], p: Uint8Array) {\n const t = gf(), chk = gf(), num = gf(),\n den = gf(), den2 = gf(), den4 = gf(),\n den6 = gf();\n\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n square(num, r[1]);\n mul(den, num, D);\n sub(num, num, r[2]);\n add(den, r[2], den);\n\n square(den2, den);\n square(den4, den2);\n mul(den6, den4, den2);\n mul(t, den6, num);\n mul(t, t, den);\n\n pow2523(t, t);\n mul(t, t, num);\n mul(t, t, den);\n mul(t, t, den);\n mul(r[0], t, den);\n\n square(chk, r[0]);\n mul(chk, chk, den);\n if (neq25519(chk, num)) {\n mul(r[0], r[0], I);\n }\n\n square(chk, r[0]);\n mul(chk, chk, den);\n if (neq25519(chk, num)) {\n return -1;\n }\n\n if (par25519(r[0]) === (p[31] >> 7)) {\n sub(r[0], gf0, r[0]);\n }\n\n mul(r[3], r[0], r[1]);\n return 0;\n}\n\nexport function verify(publicKey: Uint8Array, message: Uint8Array, signature: Uint8Array): boolean {\n const t = new Uint8Array(32);\n const p = [gf(), gf(), gf(), gf()];\n const q = [gf(), gf(), gf(), gf()];\n\n if (signature.length !== SIGNATURE_LENGTH) {\n throw new Error(`ed25519: signature must be ${SIGNATURE_LENGTH} bytes`);\n }\n\n if (unpackneg(q, publicKey)) {\n return false;\n }\n\n const hs = new SHA512();\n hs.update(signature.subarray(0, 32));\n hs.update(publicKey);\n hs.update(message);\n const h = hs.digest();\n reduce(h);\n scalarmult(p, q, h);\n\n scalarbase(q, signature.subarray(32));\n edadd(p, q);\n pack(t, p);\n\n if (verify32(signature, t)) {\n return false;\n }\n return true;\n}\n\n/**\n * Convert Ed25519 public key to X25519 public key.\n *\n * Throws if given an invalid public key.\n */\nexport function convertPublicKeyToX25519(publicKey: Uint8Array): Uint8Array {\n let q = [gf(), gf(), gf(), gf()];\n\n if (unpackneg(q, publicKey)) {\n throw new Error(\"Ed25519: invalid public key\");\n }\n\n // Formula: montgomeryX = (edwardsY + 1)*inverse(1 - edwardsY) mod p\n let a = gf();\n let b = gf();\n let y = q[1];\n add(a, gf1, y);\n sub(b, gf1, y);\n inv25519(b, b);\n mul(a, a, b);\n\n let z = new Uint8Array(32);\n pack25519(z, a);\n return z;\n}\n\n/**\n * Convert Ed25519 secret (private) key to X25519 secret key.\n */\nexport function convertSecretKeyToX25519(secretKey: Uint8Array): Uint8Array {\n const d = hash(secretKey.subarray(0, 32));\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n const o = new Uint8Array(d.subarray(0, 32));\n wipe(d);\n return o;\n}\n","// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\n\n/**\n * Package hash provides interface for hash functions.\n */\n\n/**\n * Hash interface describes properties of\n * cryptographic hash functions.\n */\nexport interface Hash {\n readonly digestLength: number;\n readonly blockSize: number;\n update(data: Uint8Array): this;\n reset(): this;\n finish(out: Uint8Array): this;\n digest(): Uint8Array;\n clean(): void;\n}\n\nexport interface SerializableHash extends Hash {\n saveState(): any;\n restoreState(savedState: any): this;\n cleanSavedState(savedState: any): void;\n}\n\nexport function isSerializableHash(h: Hash): h is SerializableHash {\n return (\n typeof (h as SerializableHash).saveState !== \"undefined\" &&\n typeof (h as SerializableHash).restoreState !== \"undefined\" &&\n typeof (h as SerializableHash).cleanSavedState !== \"undefined\"\n );\n}\n\n// TODO(dchest): figure out the standardized interface for XOF such as\n// SHAKE and BLAKE2X.\n","// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\n\n/**\n * Package hkdf implements HKDF key derivation function.\n */\n\nimport { Hash } from \"@stablelib/hash\";\nimport { HMAC, hmac } from \"@stablelib/hmac\";\nimport { wipe } from \"@stablelib/wipe\";\n\n/**\n * HMAC-based Extract-and-Expand Key Derivation Function.\n *\n * Implements HKDF from RFC5869.\n *\n * Expands the given master key with salt and info into\n * a limited stream of key material.\n */\nexport class HKDF {\n private _hmac: HMAC;\n private _buffer: Uint8Array;\n private _bufpos: number;\n private _counter = new Uint8Array(1); // starts with zero\n private _hash: new () => Hash;\n private _info?: Uint8Array;\n\n /**\n * Create a new HKDF instance for the given hash function\n * with the master key, optional salt, and info.\n *\n * - Master key is a high-entropy secret key (not a password).\n * - Salt is a non-secret random value.\n * - Info is application- and/or context-specific information.\n */\n constructor(hash: new () => Hash,\n key: Uint8Array,\n salt = new Uint8Array(0),\n info?: Uint8Array) {\n\n this._hash = hash;\n this._info = info;\n\n // HKDF-Extract uses salt as HMAC key, and key as data.\n const okm = hmac(this._hash, salt, key);\n\n // Initialize HMAC for expanding with extracted key.\n this._hmac = new HMAC(hash, okm);\n\n // Allocate buffer.\n this._buffer = new Uint8Array(this._hmac.digestLength);\n this._bufpos = this._buffer.length;\n }\n\n // Fill buffer with new block of HKDF-Extract output.\n private _fillBuffer(): void {\n // Increment counter.\n this._counter[0]++;\n\n const ctr = this._counter[0];\n\n // Check if counter overflowed.\n if (ctr === 0) {\n throw new Error(\"hkdf: cannot expand more\");\n }\n\n // Prepare HMAC instance for new data with old key.\n this._hmac.reset();\n\n // Hash in previous output if it was generated\n // (i.e. counter is greater than 1).\n if (ctr > 1) {\n this._hmac.update(this._buffer);\n }\n\n // Hash in info if it exists.\n if (this._info) {\n this._hmac.update(this._info);\n }\n\n // Hash in the counter.\n this._hmac.update(this._counter);\n\n // Output result to buffer and clean HMAC instance.\n this._hmac.finish(this._buffer);\n\n // Reset buffer position.\n this._bufpos = 0;\n }\n\n /**\n * Expand returns next key material of the given length.\n *\n * It throws if expansion limit is reached (which is\n * 254 digests of the underlying HMAC function).\n */\n expand(length: number): Uint8Array {\n const out = new Uint8Array(length);\n for (let i = 0; i < out.length; i++) {\n if (this._bufpos === this._buffer.length) {\n this._fillBuffer();\n }\n out[i] = this._buffer[this._bufpos++];\n }\n return out;\n }\n\n clean(): void {\n this._hmac.clean();\n wipe(this._buffer);\n wipe(this._counter);\n this._bufpos = 0;\n }\n}\n\n// TODO(dchest): maybe implement deriveKey?\n","// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\n\n/**\n * Package hmac implements HMAC algorithm.\n */\n\nimport { Hash, SerializableHash, isSerializableHash } from \"@stablelib/hash\";\nimport { equal as constantTimeEqual } from \"@stablelib/constant-time\";\nimport { wipe } from \"@stablelib/wipe\";\n\n/**\n * HMAC implements hash-based message authentication algorithm.\n */\nexport class HMAC implements SerializableHash {\n readonly blockSize: number;\n readonly digestLength: number;\n\n private _inner: Hash; // inner hash\n private _outer: Hash; // outer hash\n\n private _finished = false; // true if HMAC was finalized\n\n // Copies of hash states after keying.\n // Need for quick reset without hashing the key again.\n private _innerKeyedState: any | undefined;\n private _outerKeyedState: any | undefined;\n\n /**\n * Constructs a new HMAC with the given Hash and secret key.\n */\n constructor(hash: new () => Hash | SerializableHash, key: Uint8Array) {\n // Initialize inner and outer hashes.\n this._inner = new hash();\n this._outer = new hash();\n\n // Set block and digest sizes for this HMAC\n // instance to values from the hash.\n this.blockSize = this._outer.blockSize;\n this.digestLength = this._outer.digestLength;\n\n // Pad temporary stores a key (or its hash) padded with zeroes.\n const pad = new Uint8Array(this.blockSize);\n\n if (key.length > this.blockSize) {\n // If key is bigger than hash block size, it must be\n // hashed and this hash is used as a key instead.\n this._inner.update(key).finish(pad).clean();\n } else {\n // Otherwise, copy the key into pad.\n pad.set(key);\n }\n\n // Now two different keys are derived from padded key\n // by xoring a different byte value to each.\n\n // To make inner hash key, xor byte 0x36 into pad.\n for (let i = 0; i < pad.length; i++) {\n pad[i] ^= 0x36;\n }\n // Update inner hash with the result.\n this._inner.update(pad);\n\n // To make outer hash key, xor byte 0x5c into pad.\n // But since we already xored 0x36 there, we must\n // first undo this by xoring it again.\n for (let i = 0; i < pad.length; i++) {\n pad[i] ^= 0x36 ^ 0x5c;\n }\n // Update outer hash with the result.\n this._outer.update(pad);\n\n // Save states of both hashes, so that we can quickly restore\n // them later in reset() without the need to remember the actual\n // key and perform this initialization again.\n if (isSerializableHash(this._inner) && isSerializableHash(this._outer)) {\n this._innerKeyedState = this._inner.saveState();\n this._outerKeyedState = this._outer.saveState();\n }\n\n // Clean pad.\n wipe(pad);\n }\n\n /**\n * Returns HMAC state to the state initialized with key\n * to make it possible to run HMAC over the other data with the same\n * key without creating a new instance.\n */\n reset(): this {\n if (!isSerializableHash(this._inner) || !isSerializableHash(this._outer)) {\n throw new Error(\"hmac: can't reset() because hash doesn't implement restoreState()\");\n }\n // Restore keyed states of inner and outer hashes.\n this._inner.restoreState(this._innerKeyedState);\n this._outer.restoreState(this._outerKeyedState);\n this._finished = false;\n return this;\n }\n\n /**\n * Cleans HMAC state.\n */\n clean() {\n if (isSerializableHash(this._inner)) {\n this._inner.cleanSavedState(this._innerKeyedState);\n }\n if (isSerializableHash(this._outer)) {\n this._outer.cleanSavedState(this._outerKeyedState);\n }\n this._inner.clean();\n this._outer.clean();\n }\n\n /**\n * Updates state with provided data.\n */\n update(data: Uint8Array): this {\n this._inner.update(data);\n return this;\n }\n\n /**\n * Finalizes HMAC and puts the result in out.\n */\n finish(out: Uint8Array): this {\n if (this._finished) {\n // If HMAC was finalized, outer hash is also finalized,\n // so it produces the same digest it produced when it\n // was finalized.\n this._outer.finish(out);\n return this;\n }\n\n // Finalize inner hash and store the result temporarily.\n this._inner.finish(out);\n\n // Update outer hash with digest of inner hash and and finalize it.\n this._outer.update(out.subarray(0, this.digestLength)).finish(out);\n this._finished = true;\n\n return this;\n }\n\n /**\n * Returns the computed message authentication code.\n */\n digest(): Uint8Array {\n const out = new Uint8Array(this.digestLength);\n this.finish(out);\n return out;\n }\n\n /**\n * Saves HMAC state.\n * This function is needed for PBKDF2 optimization.\n */\n saveState(): any {\n if (!isSerializableHash(this._inner)) {\n throw new Error(\"hmac: can't saveState() because hash doesn't implement it\");\n }\n return this._inner.saveState();\n }\n\n restoreState(savedState: any): this {\n if (!isSerializableHash(this._inner) || !isSerializableHash(this._outer)) {\n throw new Error(\"hmac: can't restoreState() because hash doesn't implement it\");\n }\n this._inner.restoreState(savedState);\n this._outer.restoreState(this._outerKeyedState);\n this._finished = false;\n return this;\n }\n\n cleanSavedState(savedState: any) {\n if (!isSerializableHash(this._inner)) {\n throw new Error(\"hmac: can't cleanSavedState() because hash doesn't implement it\");\n }\n this._inner.cleanSavedState(savedState);\n }\n}\n\n/**\n * Returns HMAC using the given hash constructor for the key over data.\n */\nexport function hmac(hash: new () => Hash, key: Uint8Array, data: Uint8Array): Uint8Array {\n const h = new HMAC(hash, key);\n h.update(data);\n const digest = h.digest();\n h.clean();\n return digest;\n}\n\n/**\n * Returns true if two HMAC digests are equal.\n * Uses constant-time comparison to avoid leaking timing information.\n *\n * Example:\n *\n * const receivedDigest = ...\n * const realDigest = hmac(SHA256, key, data);\n * if (!equal(receivedDigest, realDigest)) {\n * throw new Error(\"Authentication error\");\n * }\n */\nexport const equal = constantTimeEqual;\n","// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\n\n/**\n * Package int provides helper functions for integerss.\n */\n\n// Shim using 16-bit pieces.\nfunction imulShim(a: number, b: number): number {\n const ah = (a >>> 16) & 0xffff, al = a & 0xffff;\n const bh = (b >>> 16) & 0xffff, bl = b & 0xffff;\n return ((al * bl) + (((ah * bl + al * bh) << 16) >>> 0) | 0);\n}\n\n/** 32-bit integer multiplication. */\n// Use system Math.imul if available, otherwise use our shim.\nexport const mul = (Math as { imul?(a: number, b: number): number }).imul || imulShim;\n\n/** 32-bit integer addition. */\nexport function add(a: number, b: number): number {\n return (a + b) | 0;\n}\n\n/** 32-bit integer subtraction. */\nexport function sub(a: number, b: number): number {\n return (a - b) | 0;\n}\n\n/** 32-bit integer left rotation */\nexport function rotl(x: number, n: number): number {\n return x << n | x >>> (32 - n);\n}\n\n/** 32-bit integer left rotation */\nexport function rotr(x: number, n: number): number {\n return x << (32 - n) | x >>> n;\n}\n\nfunction isIntegerShim(n: number): boolean {\n return typeof n === \"number\" && isFinite(n) && Math.floor(n) === n;\n}\n\n/**\n * Returns true if the argument is an integer number.\n *\n * In ES2015, Number.isInteger.\n */\nexport const isInteger = (Number as { isInteger?(n: number): boolean }).isInteger || isIntegerShim;\n\n/**\n * Math.pow(2, 53) - 1\n *\n * In ES2015 Number.MAX_SAFE_INTEGER.\n */\nexport const MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Returns true if the argument is a safe integer number\n * (-MIN_SAFE_INTEGER < number <= MAX_SAFE_INTEGER)\n *\n * In ES2015, Number.isSafeInteger.\n */\nexport const isSafeInteger = (n: number): boolean =>\n isInteger(n) && (n >= -MAX_SAFE_INTEGER && n <= MAX_SAFE_INTEGER);\n","// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\n\n/**\n * Package poly1305 implements Poly1305 one-time message authentication algorithm.\n */\n\nimport { equal as constantTimeEqual } from \"@stablelib/constant-time\";\nimport { wipe } from \"@stablelib/wipe\";\n\nexport const DIGEST_LENGTH = 16;\n\n// Port of Andrew Moon's Poly1305-donna-16. Public domain.\n// https://github.com/floodyberry/poly1305-donna\n\n/**\n * Poly1305 computes 16-byte authenticator of message using\n * a one-time 32-byte key.\n *\n * Important: key should be used for only one message,\n * it should never repeat.\n */\nexport class Poly1305 {\n readonly digestLength = DIGEST_LENGTH;\n\n private _buffer = new Uint8Array(16);\n private _r = new Uint16Array(10);\n private _h = new Uint16Array(10);\n private _pad = new Uint16Array(8);\n private _leftover = 0;\n private _fin = 0;\n private _finished = false;\n\n constructor(key: Uint8Array) {\n let t0 = key[0] | key[1] << 8; this._r[0] = (t0) & 0x1fff;\n let t1 = key[2] | key[3] << 8; this._r[1] = ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n let t2 = key[4] | key[5] << 8; this._r[2] = ((t1 >>> 10) | (t2 << 6)) & 0x1f03;\n let t3 = key[6] | key[7] << 8; this._r[3] = ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n let t4 = key[8] | key[9] << 8; this._r[4] = ((t3 >>> 4) | (t4 << 12)) & 0x00ff;\n this._r[5] = ((t4 >>> 1)) & 0x1ffe;\n let t5 = key[10] | key[11] << 8; this._r[6] = ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n let t6 = key[12] | key[13] << 8; this._r[7] = ((t5 >>> 11) | (t6 << 5)) & 0x1f81;\n let t7 = key[14] | key[15] << 8; this._r[8] = ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n this._r[9] = ((t7 >>> 5)) & 0x007f;\n\n this._pad[0] = key[16] | key[17] << 8;\n this._pad[1] = key[18] | key[19] << 8;\n this._pad[2] = key[20] | key[21] << 8;\n this._pad[3] = key[22] | key[23] << 8;\n this._pad[4] = key[24] | key[25] << 8;\n this._pad[5] = key[26] | key[27] << 8;\n this._pad[6] = key[28] | key[29] << 8;\n this._pad[7] = key[30] | key[31] << 8;\n }\n\n private _blocks(m: Uint8Array, mpos: number, bytes: number) {\n let hibit = this._fin ? 0 : 1 << 11;\n\n let h0 = this._h[0],\n h1 = this._h[1],\n h2 = this._h[2],\n h3 = this._h[3],\n h4 = this._h[4],\n h5 = this._h[5],\n h6 = this._h[6],\n h7 = this._h[7],\n h8 = this._h[8],\n h9 = this._h[9];\n\n let r0 = this._r[0],\n r1 = this._r[1],\n r2 = this._r[2],\n r3 = this._r[3],\n r4 = this._r[4],\n r5 = this._r[5],\n r6 = this._r[6],\n r7 = this._r[7],\n r8 = this._r[8],\n r9 = this._r[9];\n\n while (bytes >= 16) {\n let t0 = m[mpos + 0] | m[mpos + 1] << 8; h0 += (t0) & 0x1fff;\n let t1 = m[mpos + 2] | m[mpos + 3] << 8; h1 += ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n let t2 = m[mpos + 4] | m[mpos + 5] << 8; h2 += ((t1 >>> 10) | (t2 << 6)) & 0x1fff;\n let t3 = m[mpos + 6] | m[mpos + 7] << 8; h3 += ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n let t4 = m[mpos + 8] | m[mpos + 9] << 8; h4 += ((t3 >>> 4) | (t4 << 12)) & 0x1fff;\n h5 += ((t4 >>> 1)) & 0x1fff;\n let t5 = m[mpos + 10] | m[mpos + 11] << 8; h6 += ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n let t6 = m[mpos + 12] | m[mpos + 13] << 8; h7 += ((t5 >>> 11) | (t6 << 5)) & 0x1fff;\n let t7 = m[mpos + 14] | m[mpos + 15] << 8; h8 += ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n h9 += ((t7 >>> 5)) | hibit;\n\n let c = 0;\n\n let d0 = c;\n d0 += h0 * r0;\n d0 += h1 * (5 * r9);\n d0 += h2 * (5 * r8);\n d0 += h3 * (5 * r7);\n d0 += h4 * (5 * r6);\n c = (d0 >>> 13); d0 &= 0x1fff;\n d0 += h5 * (5 * r5);\n d0 += h6 * (5 * r4);\n d0 += h7 * (5 * r3);\n d0 += h8 * (5 * r2);\n d0 += h9 * (5 * r1);\n c += (d0 >>> 13); d0 &= 0x1fff;\n\n let d1 = c;\n d1 += h0 * r1;\n d1 += h1 * r0;\n d1 += h2 * (5 * r9);\n d1 += h3 * (5 * r8);\n d1 += h4 * (5 * r7);\n c = (d1 >>> 13); d1 &= 0x1fff;\n d1 += h5 * (5 * r6);\n d1 += h6 * (5 * r5);\n d1 += h7 * (5 * r4);\n d1 += h8 * (5 * r3);\n d1 += h9 * (5 * r2);\n c += (d1 >>> 13); d1 &= 0x1fff;\n\n let d2 = c;\n d2 += h0 * r2;\n d2 += h1 * r1;\n d2 += h2 * r0;\n d2 += h3 * (5 * r9);\n d2 += h4 * (5 * r8);\n c = (d2 >>> 13); d2 &= 0x1fff;\n d2 += h5 * (5 * r7);\n d2 += h6 * (5 * r6);\n d2 += h7 * (5 * r5);\n d2 += h8 * (5 * r4);\n d2 += h9 * (5 * r3);\n c += (d2 >>> 13); d2 &= 0x1fff;\n\n let d3 = c;\n d3 += h0 * r3;\n d3 += h1 * r2;\n d3 += h2 * r1;\n d3 += h3 * r0;\n d3 += h4 * (5 * r9);\n c = (d3 >>> 13); d3 &= 0x1fff;\n d3 += h5 * (5 * r8);\n d3 += h6 * (5 * r7);\n d3 += h7 * (5 * r6);\n d3 += h8 * (5 * r5);\n d3 += h9 * (5 * r4);\n c += (d3 >>> 13); d3 &= 0x1fff;\n\n let d4 = c;\n d4 += h0 * r4;\n d4 += h1 * r3;\n d4 += h2 * r2;\n d4 += h3 * r1;\n d4 += h4 * r0;\n c = (d4 >>> 13); d4 &= 0x1fff;\n d4 += h5 * (5 * r9);\n d4 += h6 * (5 * r8);\n d4 += h7 * (5 * r7);\n d4 += h8 * (5 * r6);\n d4 += h9 * (5 * r5);\n c += (d4 >>> 13); d4 &= 0x1fff;\n\n let d5 = c;\n d5 += h0 * r5;\n d5 += h1 * r4;\n d5 += h2 * r3;\n d5 += h3 * r2;\n d5 += h4 * r1;\n c = (d5 >>> 13); d5 &= 0x1fff;\n d5 += h5 * r0;\n d5 += h6 * (5 * r9);\n d5 += h7 * (5 * r8);\n d5 += h8 * (5 * r7);\n d5 += h9 * (5 * r6);\n c += (d5 >>> 13); d5 &= 0x1fff;\n\n let d6 = c;\n d6 += h0 * r6;\n d6 += h1 * r5;\n d6 += h2 * r4;\n d6 += h3 * r3;\n d6 += h4 * r2;\n c = (d6 >>> 13); d6 &= 0x1fff;\n d6 += h5 * r1;\n d6 += h6 * r0;\n d6 += h7 * (5 * r9);\n d6 += h8 * (5 * r8);\n d6 += h9 * (5 * r7);\n c += (d6 >>> 13); d6 &= 0x1fff;\n\n let d7 = c;\n d7 += h0 * r7;\n d7 += h1 * r6;\n d7 += h2 * r5;\n d7 += h3 * r4;\n d7 += h4 * r3;\n c = (d7 >>> 13); d7 &= 0x1fff;\n d7 += h5 * r2;\n d7 += h6 * r1;\n d7 += h7 * r0;\n d7 += h8 * (5 * r9);\n d7 += h9 * (5 * r8);\n c += (d7 >>> 13); d7 &= 0x1fff;\n\n let d8 = c;\n d8 += h0 * r8;\n d8 += h1 * r7;\n d8 += h2 * r6;\n d8 += h3 * r5;\n d8 += h4 * r4;\n c = (d8 >>> 13); d8 &= 0x1fff;\n d8 += h5 * r3;\n d8 += h6 * r2;\n d8 += h7 * r1;\n d8 += h8 * r0;\n d8 += h9 * (5 * r9);\n c += (d8 >>> 13); d8 &= 0x1fff;\n\n let d9 = c;\n d9 += h0 * r9;\n d9 += h1 * r8;\n d9 += h2 * r7;\n d9 += h3 * r6;\n d9 += h4 * r5;\n c = (d9 >>> 13); d9 &= 0x1fff;\n d9 += h5 * r4;\n d9 += h6 * r3;\n d9 += h7 * r2;\n d9 += h8 * r1;\n d9 += h9 * r0;\n c += (d9 >>> 13); d9 &= 0x1fff;\n\n c = (((c << 2) + c)) | 0;\n c = (c + d0) | 0;\n d0 = c & 0x1fff;\n c = (c >>> 13);\n d1 += c;\n\n h0 = d0;\n h1 = d1;\n h2 = d2;\n h3 = d3;\n h4 = d4;\n h5 = d5;\n h6 = d6;\n h7 = d7;\n h8 = d8;\n h9 = d9;\n\n mpos += 16;\n bytes -= 16;\n }\n this._h[0] = h0;\n this._h[1] = h1;\n this._h[2] = h2;\n this._h[3] = h3;\n this._h[4] = h4;\n this._h[5] = h5;\n this._h[6] = h6;\n this._h[7] = h7;\n this._h[8] = h8;\n this._h[9] = h9;\n }\n\n finish(mac: Uint8Array, macpos = 0): this {\n const g = new Uint16Array(10);\n let c: number;\n let mask: number;\n let f: number;\n let i: number;\n\n if (this._leftover) {\n i = this._leftover;\n this._buffer[i++] = 1;\n for (; i < 16; i++) {\n this._buffer[i] = 0;\n }\n this._fin = 1;\n this._blocks(this._buffer, 0, 16);\n }\n\n c = this._h[1] >>> 13;\n this._h[1] &= 0x1fff;\n for (i = 2; i < 10; i++) {\n this._h[i] += c;\n c = this._h[i] >>> 13;\n this._h[i] &= 0x1fff;\n }\n this._h[0] += (c * 5);\n c = this._h[0] >>> 13;\n this._h[0] &= 0x1fff;\n this._h[1] += c;\n c = this._h[1] >>> 13;\n this._h[1] &= 0x1fff;\n this._h[2] += c;\n\n g[0] = this._h[0] + 5;\n c = g[0] >>> 13;\n g[0] &= 0x1fff;\n for (i = 1; i < 10; i++) {\n g[i] = this._h[i] + c;\n c = g[i] >>> 13;\n g[i] &= 0x1fff;\n }\n g[9] -= (1 << 13);\n\n mask = (c ^ 1) - 1;\n for (i = 0; i < 10; i++) {\n g[i] &= mask;\n }\n mask = ~mask;\n for (i = 0; i < 10; i++) {\n this._h[i] = (this._h[i] & mask) | g[i];\n }\n\n this._h[0] = ((this._h[0]) | (this._h[1] << 13)) & 0xffff;\n this._h[1] = ((this._h[1] >>> 3) | (this._h[2] << 10)) & 0xffff;\n this._h[2] = ((this._h[2] >>> 6) | (this._h[3] << 7)) & 0xffff;\n this._h[3] = ((this._h[3] >>> 9) | (this._h[4] << 4)) & 0xffff;\n this._h[4] = ((this._h[4] >>> 12) | (this._h[5] << 1) | (this._h[6] << 14)) & 0xffff;\n this._h[5] = ((this._h[6] >>> 2) | (this._h[7] << 11)) & 0xffff;\n this._h[6] = ((this._h[7] >>> 5) | (this._h[8] << 8)) & 0xffff;\n this._h[7] = ((this._h[8] >>> 8) | (this._h[9] << 5)) & 0xffff;\n\n f = this._h[0] + this._pad[0];\n this._h[0] = f & 0xffff;\n for (i = 1; i < 8; i++) {\n f = (((this._h[i] + this._pad[i]) | 0) + (f >>> 16)) | 0;\n this._h[i] = f & 0xffff;\n }\n\n mac[macpos + 0] = this._h[0] >>> 0;\n mac[macpos + 1] = this._h[0] >>> 8;\n mac[macpos + 2] = this._h[1] >>> 0;\n mac[macpos + 3] = this._h[1] >>> 8;\n mac[macpos + 4] = this._h[2] >>> 0;\n mac[macpos + 5] = this._h[2] >>> 8;\n mac[macpos + 6] = this._h[3] >>> 0;\n mac[macpos + 7] = this._h[3] >>> 8;\n mac[macpos + 8] = this._h[4] >>> 0;\n mac[macpos + 9] = this._h[4] >>> 8;\n mac[macpos + 10] = this._h[5] >>> 0;\n mac[macpos + 11] = this._h[5] >>> 8;\n mac[macpos + 12] = this._h[6] >>> 0;\n mac[macpos + 13] = this._h[6] >>> 8;\n mac[macpos + 14] = this._h[7] >>> 0;\n mac[macpos + 15] = this._h[7] >>> 8;\n\n this._finished = true;\n return this;\n }\n\n update(m: Uint8Array): this {\n let mpos = 0;\n let bytes = m.length;\n let want: number;\n\n if (this._leftover) {\n want = (16 - this._leftover);\n if (want > bytes) {\n want = bytes;\n }\n for (let i = 0; i < want; i++) {\n this._buffer[this._leftover + i] = m[mpos + i];\n }\n bytes -= want;\n mpos += want;\n this._leftover += want;\n if (this._leftover < 16) {\n return this;\n }\n this._blocks(this._buffer, 0, 16);\n this._leftover = 0;\n }\n\n if (bytes >= 16) {\n want = bytes - (bytes % 16);\n this._blocks(m, mpos, want);\n mpos += want;\n bytes -= want;\n }\n\n if (bytes) {\n for (let i = 0; i < bytes; i++) {\n this._buffer[this._leftover + i] = m[mpos + i];\n }\n this._leftover += bytes;\n }\n\n return this;\n }\n\n digest(): Uint8Array {\n // TODO(dchest): it behaves differently than other hashes/HMAC,\n // because it throws when finished — others just return saved result.\n if (this._finished) {\n throw new Error(\"Poly1305 was finished\");\n }\n let mac = new Uint8Array(16);\n this.finish(mac);\n return mac;\n }\n\n clean(): this {\n wipe(this._buffer);\n wipe(this._r);\n wipe(this._h);\n wipe(this._pad);\n this._leftover = 0;\n this._fin = 0;\n this._finished = true; // mark as finished even if not\n return this;\n }\n}\n\n/**\n * Returns 16-byte authenticator of data using a one-time 32-byte key.\n *\n * Important: key should be used for only one message, it should never repeat.\n */\nexport function oneTimeAuth(key: Uint8Array, data: Uint8Array): Uint8Array {\n const h = new Poly1305(key);\n h.update(data);\n const digest = h.digest();\n h.clean();\n return digest;\n}\n\n/**\n * Returns true if two authenticators are 16-byte long and equal.\n * Uses contant-time comparison to avoid leaking timing information.\n */\nexport function equal(a: Uint8Array, b: Uint8Array): boolean {\n if (a.length !== DIGEST_LENGTH || b.length !== DIGEST_LENGTH) {\n return false;\n }\n return constantTimeEqual(a, b);\n}\n","// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\n\n/**\n * Package random provides functions to access system's\n * cryptographically secure random byte generator.\n */\n\nimport { RandomSource } from \"./source\";\nimport { SystemRandomSource } from \"./source/system\";\nimport { readUint32LE } from \"@stablelib/binary\";\nimport { wipe } from \"@stablelib/wipe\";\n\nexport { RandomSource } from \"./source\";\n\nexport const defaultRandomSource = new SystemRandomSource();\n\nexport function randomBytes(length: number, prng: RandomSource = defaultRandomSource): Uint8Array {\n return prng.randomBytes(length);\n}\n\n/**\n * Returns a uniformly random unsigned 32-bit integer.\n */\nexport function randomUint32(prng: RandomSource = defaultRandomSource): number {\n // Generate 4-byte random buffer.\n const buf = randomBytes(4, prng);\n\n // Convert bytes from buffer into a 32-bit integer.\n // It's not important which byte order to use, since\n // the result is random.\n const result = readUint32LE(buf);\n\n // Clean the buffer.\n wipe(buf);\n\n return result;\n}\n\n/** 62 alphanumeric characters for default charset of randomString() */\nconst ALPHANUMERIC = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";\n\n/**\n * Returns a uniform random string of the given length\n * with characters from the given charset.\n *\n * Charset must not have more than 256 characters.\n *\n * Default charset generates case-sensitive alphanumeric\n * strings (0-9, A-Z, a-z).\n */\nexport function randomString(\n length: number,\n charset = ALPHANUMERIC,\n prng: RandomSource = defaultRandomSource\n): string {\n if (charset.length < 2) {\n throw new Error(\"randomString charset is too short\");\n }\n if (charset.length > 256) {\n throw new Error(\"randomString charset is too long\");\n }\n let out = '';\n const charsLen = charset.length;\n const maxByte = 256 - (256 % charsLen);\n while (length > 0) {\n const buf = randomBytes(Math.ceil(length * 256 / maxByte), prng);\n for (let i = 0; i < buf.length && length > 0; i++) {\n const randomByte = buf[i];\n if (randomByte < maxByte) {\n out += charset.charAt(randomByte % charsLen);\n length--;\n }\n }\n wipe(buf);\n }\n return out;\n}\n\n/**\n * Returns uniform random string containing at least the given\n * number of bits of entropy.\n *\n * For example, randomStringForEntropy(128) will return a 22-character\n * alphanumeric string, while randomStringForEntropy(128, \"0123456789\")\n * will return a 39-character numeric string, both will contain at\n * least 128 bits of entropy.\n *\n * Default charset generates case-sensitive alphanumeric\n * strings (0-9, A-Z, a-z).\n */\nexport function randomStringForEntropy(\n bits: number,\n charset = ALPHANUMERIC,\n prng: RandomSource = defaultRandomSource\n): string {\n const length = Math.ceil(bits / (Math.log(charset.length) / Math.LN2));\n return randomString(length, charset, prng);\n}\n","// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\n\nimport { RandomSource } from \"./\";\n\nconst QUOTA = 65536;\n\nexport class BrowserRandomSource implements RandomSource {\n isAvailable = false;\n isInstantiated = false;\n\n private _crypto?: { getRandomValues: typeof window.crypto.getRandomValues };\n\n constructor() {\n const browserCrypto = typeof self !== 'undefined'\n ? (self.crypto || (self as { msCrypto?: any }).msCrypto) // IE11 has msCrypto\n : null;\n\n if (browserCrypto && browserCrypto.getRandomValues !== undefined) {\n this._crypto = browserCrypto;\n this.isAvailable = true;\n this.isInstantiated = true;\n }\n }\n\n randomBytes(length: number): Uint8Array {\n if (!this.isAvailable || !this._crypto) {\n throw new Error(\"Browser random byte generator is not available.\");\n }\n const out = new Uint8Array(length);\n for (let i = 0; i < out.length; i += QUOTA) {\n this._crypto.getRandomValues(out.subarray(i, i + Math.min(out.length - i, QUOTA)));\n }\n return out;\n }\n}\n","// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\n\nimport { RandomSource } from \"./\";\nimport { wipe } from \"@stablelib/wipe\";\n\ndeclare function require(name: string): any;\n\nexport class NodeRandomSource implements RandomSource {\n isAvailable = false;\n isInstantiated = false;\n\n private _crypto: { randomBytes(n: number): Uint8Array } | undefined;\n\n constructor() {\n if (typeof require !== \"undefined\") {\n const nodeCrypto = require(\"crypto\");\n if (nodeCrypto && nodeCrypto.randomBytes) {\n this._crypto = nodeCrypto;\n this.isAvailable = true;\n this.isInstantiated = true;\n }\n }\n }\n\n randomBytes(length: number): Uint8Array {\n if (!this.isAvailable || !this._crypto) {\n throw new Error(\"Node.js random byte generator is not available.\");\n }\n\n // Get random bytes (result is Buffer).\n let buffer = this._crypto.randomBytes(length);\n\n // Make sure we got the length that we requested.\n if (buffer.length !== length) {\n throw new Error(\"NodeRandomSource: got fewer bytes than requested\");\n }\n\n // Allocate output array.\n const out = new Uint8Array(length);\n\n // Copy bytes from buffer to output.\n for (let i = 0; i < out.length; i++) {\n out[i] = buffer[i];\n }\n\n // Cleanup.\n wipe(buffer);\n\n return out;\n }\n}\n","// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\n\nimport { RandomSource } from \"./\";\nimport { BrowserRandomSource } from \"./browser\";\nimport { NodeRandomSource } from \"./node\";\n\nexport class SystemRandomSource implements RandomSource {\n isAvailable = false;\n name = \"\";\n private _source: RandomSource;\n\n constructor() {\n // Try browser.\n this._source = new BrowserRandomSource();\n if (this._source.isAvailable) {\n this.isAvailable = true;\n this.name = \"Browser\";\n return;\n }\n\n // If no browser source, try Node.\n this._source = new NodeRandomSource();\n if (this._source.isAvailable) {\n this.isAvailable = true;\n this.name = \"Node\";\n return;\n }\n\n // No sources, we're out of options.\n }\n\n randomBytes(length: number): Uint8Array {\n if (!this.isAvailable) {\n throw new Error(\"System random byte generator is not available.\");\n }\n return this._source.randomBytes(length);\n }\n}\n","// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\n\n/**\n * Package sha256 implements SHA-2-256 cryptographic hash function.\n */\n\nimport { SerializableHash } from \"@stablelib/hash\";\nimport { readUint32BE, writeUint32BE } from \"@stablelib/binary\";\nimport { wipe } from \"@stablelib/wipe\";\n\nexport const DIGEST_LENGTH = 32;\nexport const BLOCK_SIZE = 64;\n\n/**\n * SHA2-256 cryptographic hash algorithm.\n */\nexport class SHA256 implements SerializableHash {\n /** Length of hash output */\n readonly digestLength: number = DIGEST_LENGTH;\n\n /** Block size */\n readonly blockSize: number = BLOCK_SIZE;\n\n // Note: Int32Array is used instead of Uint32Array for performance reasons.\n protected _state = new Int32Array(8); // hash state\n private _temp = new Int32Array(64); // temporary state\n private _buffer = new Uint8Array(128); // buffer for data to hash\n private _bufferLength = 0; // number of bytes in buffer\n private _bytesHashed = 0; // number of total bytes hashed\n private _finished = false; // indicates whether the hash was finalized\n\n constructor() {\n this.reset();\n }\n\n protected _initState() {\n this._state[0] = 0x6a09e667;\n this._state[1] = 0xbb67ae85;\n this._state[2] = 0x3c6ef372;\n this._state[3] = 0xa54ff53a;\n this._state[4] = 0x510e527f;\n this._state[5] = 0x9b05688c;\n this._state[6] = 0x1f83d9ab;\n this._state[7] = 0x5be0cd19;\n }\n\n /**\n * Resets hash state making it possible\n * to re-use this instance to hash other data.\n */\n reset(): this {\n this._initState();\n this._bufferLength = 0;\n this._bytesHashed = 0;\n this._finished = false;\n return this;\n }\n\n /**\n * Cleans internal buffers and resets hash state.\n */\n clean() {\n wipe(this._buffer);\n wipe(this._temp);\n this.reset();\n }\n\n /**\n * Updates hash state with the given data.\n *\n * Throws error when trying to update already finalized hash:\n * instance must be reset to update it again.\n */\n update(data: Uint8Array, dataLength: number = data.length): this {\n if (this._finished) {\n throw new Error(\"SHA256: can't update because hash was finished.\");\n }\n let dataPos = 0;\n this._bytesHashed += dataLength;\n if (this._bufferLength > 0) {\n while (this._bufferLength < this.blockSize && dataLength > 0) {\n this._buffer[this._bufferLength++] = data[dataPos++];\n dataLength--;\n }\n if (this._bufferLength === this.blockSize) {\n hashBlocks(this._temp, this._state, this._buffer, 0, this.blockSize);\n this._bufferLength = 0;\n }\n }\n if (dataLength >= this.blockSize) {\n dataPos = hashBlocks(this._temp, this._state, data, dataPos, dataLength);\n dataLength %= this.blockSize;\n }\n while (dataLength > 0) {\n this._buffer[this._bufferLength++] = data[dataPos++];\n dataLength--;\n }\n return this;\n }\n\n /**\n * Finalizes hash state and puts hash into out.\n * If hash was already finalized, puts the same value.\n */\n finish(out: Uint8Array): this {\n if (!this._finished) {\n const bytesHashed = this._bytesHashed;\n const left = this._bufferLength;\n const bitLenHi = (bytesHashed / 0x20000000) | 0;\n const bitLenLo = bytesHashed << 3;\n const padLength = (bytesHashed % 64 < 56) ? 64 : 128;\n\n this._buffer[left] = 0x80;\n for (let i = left + 1; i < padLength - 8; i++) {\n this._buffer[i] = 0;\n }\n writeUint32BE(bitLenHi, this._buffer, padLength - 8);\n writeUint32BE(bitLenLo, this._buffer, padLength - 4);\n\n hashBlocks(this._temp, this._state, this._buffer, 0, padLength);\n\n this._finished = true;\n }\n\n for (let i = 0; i < this.digestLength / 4; i++) {\n writeUint32BE(this._state[i], out, i * 4);\n }\n\n return this;\n }\n\n /**\n * Returns the final hash digest.\n */\n digest(): Uint8Array {\n const out = new Uint8Array(this.digestLength);\n this.finish(out);\n return out;\n }\n\n /**\n * Function useful for HMAC/PBKDF2 optimization.\n * Returns hash state to be used with restoreState().\n * Only chain value is saved, not buffers or other\n * state variables.\n */\n saveState(): SavedState {\n if (this._finished) {\n throw new Error(\"SHA256: cannot save finished state\");\n }\n return {\n state: new Int32Array(this._state),\n buffer: this._bufferLength > 0 ? new Uint8Array(this._buffer) : undefined,\n bufferLength: this._bufferLength,\n bytesHashed: this._bytesHashed\n };\n }\n\n /**\n * Function useful for HMAC/PBKDF2 optimization.\n * Restores state saved by saveState() and sets bytesHashed\n * to the given value.\n */\n restoreState(savedState: SavedState): this {\n this._state.set(savedState.state);\n this._bufferLength = savedState.bufferLength;\n if (savedState.buffer) {\n this._buffer.set(savedState.buffer);\n }\n this._bytesHashed = savedState.bytesHashed;\n this._finished = false;\n return this;\n }\n\n /**\n * Cleans state returned by saveState().\n */\n cleanSavedState(savedState: SavedState) {\n wipe(savedState.state);\n if (savedState.buffer) {\n wipe(savedState.buffer);\n }\n savedState.bufferLength = 0;\n savedState.bytesHashed = 0;\n }\n}\n\nexport type SavedState = {\n state: Int32Array;\n buffer: Uint8Array | undefined;\n bufferLength: number;\n bytesHashed: number;\n};\n\n// Constants\nconst K = new Int32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b,\n 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01,\n 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7,\n 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152,\n 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,\n 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc,\n 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819,\n 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08,\n 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f,\n 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n\nfunction hashBlocks(w: Int32Array, v: Int32Array, p: Uint8Array, pos: number, len: number): number {\n while (len >= 64) {\n let a = v[0];\n let b = v[1];\n let c = v[2];\n let d = v[3];\n let e = v[4];\n let f = v[5];\n let g = v[6];\n let h = v[7];\n\n for (let i = 0; i < 16; i++) {\n let j = pos + i * 4;\n w[i] = readUint32BE(p, j);\n }\n\n for (let i = 16; i < 64; i++) {\n let u = w[i - 2];\n let t1 = (u >>> 17 | u << (32 - 17)) ^ (u >>> 19 | u << (32 - 19)) ^ (u >>> 10);\n\n u = w[i - 15];\n let t2 = (u >>> 7 | u << (32 - 7)) ^ (u >>> 18 | u << (32 - 18)) ^ (u >>> 3);\n\n w[i] = (t1 + w[i - 7] | 0) + (t2 + w[i - 16] | 0);\n }\n\n for (let i = 0; i < 64; i++) {\n let t1 = (((((e >>> 6 | e << (32 - 6)) ^ (e >>> 11 | e << (32 - 11)) ^\n (e >>> 25 | e << (32 - 25))) + ((e & f) ^ (~e & g))) | 0) +\n ((h + ((K[i] + w[i]) | 0)) | 0)) | 0;\n\n let t2 = (((a >>> 2 | a << (32 - 2)) ^ (a >>> 13 | a << (32 - 13)) ^\n (a >>> 22 | a << (32 - 22))) + ((a & b) ^ (a & c) ^ (b & c))) | 0;\n\n h = g;\n g = f;\n f = e;\n e = (d + t1) | 0;\n d = c;\n c = b;\n b = a;\n a = (t1 + t2) | 0;\n }\n\n v[0] += a;\n v[1] += b;\n v[2] += c;\n v[3] += d;\n v[4] += e;\n v[5] += f;\n v[6] += g;\n v[7] += h;\n\n pos += 64;\n len -= 64;\n }\n return pos;\n}\n\nexport function hash(data: Uint8Array): Uint8Array {\n const h = new SHA256();\n h.update(data);\n const digest = h.digest();\n h.clean();\n return digest;\n}\n","// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\n\n/**\n * Package sha512 implements SHA-2-512 cryptographic hash function.\n */\n\nimport { SerializableHash } from \"@stablelib/hash\";\nimport { readUint32BE, writeUint32BE } from \"@stablelib/binary\";\nimport { wipe } from \"@stablelib/wipe\";\n\nexport const DIGEST_LENGTH = 64;\nexport const BLOCK_SIZE = 128;\n\n/**\n * SHA-2-512 cryptographic hash algorithm.\n */\nexport class SHA512 implements SerializableHash {\n /** Length of hash output */\n readonly digestLength: number = DIGEST_LENGTH;\n\n /** Block size */\n readonly blockSize: number = BLOCK_SIZE;\n\n // Note: Int32Array is used instead of Uint32Array for performance reasons.\n protected _stateHi = new Int32Array(8); // hash state, high bytes\n protected _stateLo = new Int32Array(8); // hash state, low bytes\n private _tempHi = new Int32Array(16); // temporary state, high bytes\n private _tempLo = new Int32Array(16); // temporary state, low bytes\n private _buffer = new Uint8Array(256); // buffer for data to hash\n private _bufferLength = 0; // number of bytes in buffer\n private _bytesHashed = 0; // number of total bytes hashed\n private _finished = false; // indicates whether the hash was finalized\n\n constructor() {\n this.reset();\n }\n\n protected _initState() {\n this._stateHi[0] = 0x6a09e667;\n this._stateHi[1] = 0xbb67ae85;\n this._stateHi[2] = 0x3c6ef372;\n this._stateHi[3] = 0xa54ff53a;\n this._stateHi[4] = 0x510e527f;\n this._stateHi[5] = 0x9b05688c;\n this._stateHi[6] = 0x1f83d9ab;\n this._stateHi[7] = 0x5be0cd19;\n\n this._stateLo[0] = 0xf3bcc908;\n this._stateLo[1] = 0x84caa73b;\n this._stateLo[2] = 0xfe94f82b;\n this._stateLo[3] = 0x5f1d36f1;\n this._stateLo[4] = 0xade682d1;\n this._stateLo[5] = 0x2b3e6c1f;\n this._stateLo[6] = 0xfb41bd6b;\n this._stateLo[7] = 0x137e2179;\n }\n\n /**\n * Resets hash state making it possible\n * to re-use this instance to hash other data.\n */\n reset(): this {\n this._initState();\n this._bufferLength = 0;\n this._bytesHashed = 0;\n this._finished = false;\n return this;\n }\n\n /**\n * Cleans internal buffers and resets hash state.\n */\n clean() {\n wipe(this._buffer);\n wipe(this._tempHi);\n wipe(this._tempLo);\n this.reset();\n }\n\n /**\n * Updates hash state with the given data.\n *\n * Throws error when trying to update already finalized hash:\n * instance must be reset to update it again.\n */\n update(data: Uint8Array, dataLength: number = data.length): this {\n if (this._finished) {\n throw new Error(\"SHA512: can't update because hash was finished.\");\n }\n let dataPos = 0;\n this._bytesHashed += dataLength;\n if (this._bufferLength > 0) {\n while (this._bufferLength < BLOCK_SIZE && dataLength > 0) {\n this._buffer[this._bufferLength++] = data[dataPos++];\n dataLength--;\n }\n if (this._bufferLength === this.blockSize) {\n hashBlocks(this._tempHi, this._tempLo, this._stateHi, this._stateLo,\n this._buffer, 0, this.blockSize);\n this._bufferLength = 0;\n }\n }\n if (dataLength >= this.blockSize) {\n dataPos = hashBlocks(this._tempHi, this._tempLo, this._stateHi, this._stateLo,\n data, dataPos, dataLength);\n dataLength %= this.blockSize;\n }\n while (dataLength > 0) {\n this._buffer[this._bufferLength++] = data[dataPos++];\n dataLength--;\n }\n return this;\n }\n\n /**\n * Finalizes hash state and puts hash into out.\n * If hash was already finalized, puts the same value.\n */\n finish(out: Uint8Array): this {\n if (!this._finished) {\n const bytesHashed = this._bytesHashed;\n const left = this._bufferLength;\n const bitLenHi = (bytesHashed / 0x20000000) | 0;\n const bitLenLo = bytesHashed << 3;\n const padLength = (bytesHashed % 128 < 112) ? 128 : 256;\n\n this._buffer[left] = 0x80;\n for (let i = left + 1; i < padLength - 8; i++) {\n this._buffer[i] = 0;\n }\n writeUint32BE(bitLenHi, this._buffer, padLength - 8);\n writeUint32BE(bitLenLo, this._buffer, padLength - 4);\n\n hashBlocks(this._tempHi, this._tempLo, this._stateHi, this._stateLo, this._buffer, 0, padLength);\n\n this._finished = true;\n }\n\n for (let i = 0; i < this.digestLength / 8; i++) {\n writeUint32BE(this._stateHi[i], out, i * 8);\n writeUint32BE(this._stateLo[i], out, i * 8 + 4);\n }\n\n return this;\n }\n\n /**\n * Returns the final hash digest.\n */\n digest(): Uint8Array {\n const out = new Uint8Array(this.digestLength);\n this.finish(out);\n return out;\n }\n\n /**\n * Function useful for HMAC/PBKDF2 optimization. Returns hash state to be\n * used with restoreState(). Only chain value is saved, not buffers or\n * other state variables.\n */\n saveState(): SavedState {\n if (this._finished) {\n throw new Error(\"SHA256: cannot save finished state\");\n }\n return {\n stateHi: new Int32Array(this._stateHi),\n stateLo: new Int32Array(this._stateLo),\n buffer: this._bufferLength > 0 ? new Uint8Array(this._buffer) : undefined,\n bufferLength: this._bufferLength,\n bytesHashed: this._bytesHashed\n };\n }\n\n /**\n * Function useful for HMAC/PBKDF2 optimization. Restores state saved by\n * saveState() and sets bytesHashed to the given value.\n */\n restoreState(savedState: SavedState): this {\n this._stateHi.set(savedState.stateHi);\n this._stateLo.set(savedState.stateLo);\n this._bufferLength = savedState.bufferLength;\n if (savedState.buffer) {\n this._buffer.set(savedState.buffer);\n }\n this._bytesHashed = savedState.bytesHashed;\n this._finished = false;\n return this;\n }\n\n /**\n * Cleans state returned by saveState().\n */\n cleanSavedState(savedState: SavedState) {\n wipe(savedState.stateHi);\n wipe(savedState.stateLo);\n if (savedState.buffer) {\n wipe(savedState.buffer);\n }\n savedState.bufferLength = 0;\n savedState.bytesHashed = 0;\n }\n}\n\nexport type SavedState = {\n stateHi: Int32Array;\n stateLo: Int32Array;\n buffer: Uint8Array | undefined;\n bufferLength: number;\n bytesHashed: number;\n};\n\n// Constants\nconst K = new Int32Array([\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n]);\n\n\nfunction hashBlocks(wh: Int32Array, wl: Int32Array, hh: Int32Array, hl: Int32Array,\n m: Uint8Array, pos: number, len: number): number {\n\n let ah0 = hh[0],\n ah1 = hh[1],\n ah2 = hh[2],\n ah3 = hh[3],\n ah4 = hh[4],\n ah5 = hh[5],\n ah6 = hh[6],\n ah7 = hh[7],\n\n al0 = hl[0],\n al1 = hl[1],\n al2 = hl[2],\n al3 = hl[3],\n al4 = hl[4],\n al5 = hl[5],\n al6 = hl[6],\n al7 = hl[7];\n\n let h: number, l: number;\n let th: number, tl: number;\n let a: number, b: number, c: number, d: number;\n\n while (len >= 128) {\n for (let i = 0; i < 16; i++) {\n const j = 8 * i + pos;\n wh[i] = readUint32BE(m, j);\n wl[i] = readUint32BE(m, j + 4);\n }\n for (let i = 0; i < 80; i++) {\n let bh0 = ah0;\n let bh1 = ah1;\n let bh2 = ah2;\n let bh3 = ah3;\n let bh4 = ah4;\n let bh5 = ah5;\n let bh6 = ah6;\n let bh7 = ah7;\n\n let bl0 = al0;\n let bl1 = al1;\n let bl2 = al2;\n let bl3 = al3;\n let bl4 = al4;\n let bl5 = al5;\n let bl6 = al6;\n let bl7 = al7;\n\n // add\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma1\n h = ((ah4 >>> 14) | (al4 << (32 - 14))) ^ ((ah4 >>> 18) |\n (al4 << (32 - 18))) ^ ((al4 >>> (41 - 32)) | (ah4 << (32 - (41 - 32))));\n l = ((al4 >>> 14) | (ah4 << (32 - 14))) ^ ((al4 >>> 18) |\n (ah4 << (32 - 18))) ^ ((ah4 >>> (41 - 32)) | (al4 << (32 - (41 - 32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Ch\n h = (ah4 & ah5) ^ (~ah4 & ah6);\n l = (al4 & al5) ^ (~al4 & al6);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // K\n h = K[i * 2];\n l = K[i * 2 + 1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // w\n h = wh[i % 16];\n l = wl[i % 16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n th = c & 0xffff | d << 16;\n tl = a & 0xffff | b << 16;\n\n // add\n h = th;\n l = tl;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma0\n h = ((ah0 >>> 28) | (al0 << (32 - 28))) ^ ((al0 >>> (34 - 32)) |\n (ah0 << (32 - (34 - 32)))) ^ ((al0 >>> (39 - 32)) | (ah0 << (32 - (39 - 32))));\n l = ((al0 >>> 28) | (ah0 << (32 - 28))) ^ ((ah0 >>> (34 - 32)) |\n (al0 << (32 - (34 - 32)))) ^ ((ah0 >>> (39 - 32)) | (al0 << (32 - (39 - 32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Maj\n h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh7 = (c & 0xffff) | (d << 16);\n bl7 = (a & 0xffff) | (b << 16);\n\n // add\n h = bh3;\n l = bl3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = th;\n l = tl;\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh3 = (c & 0xffff) | (d << 16);\n bl3 = (a & 0xffff) | (b << 16);\n\n ah1 = bh0;\n ah2 = bh1;\n ah3 = bh2;\n ah4 = bh3;\n ah5 = bh4;\n ah6 = bh5;\n ah7 = bh6;\n ah0 = bh7;\n\n al1 = bl0;\n al2 = bl1;\n al3 = bl2;\n al4 = bl3;\n al5 = bl4;\n al6 = bl5;\n al7 = bl6;\n al0 = bl7;\n\n if (i % 16 === 15) {\n for (let j = 0; j < 16; j++) {\n // add\n h = wh[j];\n l = wl[j];\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = wh[(j + 9) % 16];\n l = wl[(j + 9) % 16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma0\n th = wh[(j + 1) % 16];\n tl = wl[(j + 1) % 16];\n h = ((th >>> 1) | (tl << (32 - 1))) ^ ((th >>> 8) |\n (tl << (32 - 8))) ^ (th >>> 7);\n l = ((tl >>> 1) | (th << (32 - 1))) ^ ((tl >>> 8) |\n (th << (32 - 8))) ^ ((tl >>> 7) | (th << (32 - 7)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma1\n th = wh[(j + 14) % 16];\n tl = wl[(j + 14) % 16];\n h = ((th >>> 19) | (tl << (32 - 19))) ^ ((tl >>> (61 - 32)) |\n (th << (32 - (61 - 32)))) ^ (th >>> 6);\n l = ((tl >>> 19) | (th << (32 - 19))) ^ ((th >>> (61 - 32)) |\n (tl << (32 - (61 - 32)))) ^ ((tl >>> 6) | (th << (32 - 6)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n wh[j] = (c & 0xffff) | (d << 16);\n wl[j] = (a & 0xffff) | (b << 16);\n }\n }\n }\n\n // add\n h = ah0;\n l = al0;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[0];\n l = hl[0];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[0] = ah0 = (c & 0xffff) | (d << 16);\n hl[0] = al0 = (a & 0xffff) | (b << 16);\n\n h = ah1;\n l = al1;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[1];\n l = hl[1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[1] = ah1 = (c & 0xffff) | (d << 16);\n hl[1] = al1 = (a & 0xffff) | (b << 16);\n\n h = ah2;\n l = al2;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[2];\n l = hl[2];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[2] = ah2 = (c & 0xffff) | (d << 16);\n hl[2] = al2 = (a & 0xffff) | (b << 16);\n\n h = ah3;\n l = al3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[3];\n l = hl[3];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[3] = ah3 = (c & 0xffff) | (d << 16);\n hl[3] = al3 = (a & 0xffff) | (b << 16);\n\n h = ah4;\n l = al4;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[4];\n l = hl[4];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[4] = ah4 = (c & 0xffff) | (d << 16);\n hl[4] = al4 = (a & 0xffff) | (b << 16);\n\n h = ah5;\n l = al5;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[5];\n l = hl[5];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[5] = ah5 = (c & 0xffff) | (d << 16);\n hl[5] = al5 = (a & 0xffff) | (b << 16);\n\n h = ah6;\n l = al6;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[6];\n l = hl[6];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[6] = ah6 = (c & 0xffff) | (d << 16);\n hl[6] = al6 = (a & 0xffff) | (b << 16);\n\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[7];\n l = hl[7];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[7] = ah7 = (c & 0xffff) | (d << 16);\n hl[7] = al7 = (a & 0xffff) | (b << 16);\n\n pos += 128;\n len -= 128;\n }\n\n return pos;\n}\n\nexport function hash(data: Uint8Array): Uint8Array {\n const h = new SHA512();\n h.update(data);\n const digest = h.digest();\n h.clean();\n return digest;\n}\n","// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\n\n/**\n * Package wipe implements functions for zeroing arrays.\n */\n\nexport type NumericArray = number[] | Uint8Array | Int8Array | Uint16Array\n | Int16Array | Uint32Array | Int32Array | Float32Array | Float64Array;\n\n/**\n * Sets all values in the given array to zero and returns it.\n *\n * The fact that it sets bytes to zero can be relied on.\n *\n * There is no guarantee that this function makes data disappear from memory,\n * as runtime implementation can, for example, have copying garbage collector\n * that will make copies of sensitive data before we wipe it. Or that an\n * operating system will write our data to swap or sleep image. Another thing\n * is that an optimizing compiler can remove calls to this function or make it\n * no-op. There's nothing we can do with it, so we just do our best and hope\n * that everything will be okay and good will triumph over evil.\n */\nexport function wipe(array: NumericArray): NumericArray {\n // Right now it's similar to array.fill(0). If it turns\n // out that runtimes optimize this call away, maybe\n // we can try something else.\n for (let i = 0; i < array.length; i++) {\n array[i] = 0;\n }\n return array;\n}\n","// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\n\n/**\n * Package x25519 implements X25519 key agreement.\n */\n\nimport { randomBytes, RandomSource } from \"@stablelib/random\";\nimport { wipe } from \"@stablelib/wipe\";\n\nexport const PUBLIC_KEY_LENGTH = 32;\nexport const SECRET_KEY_LENGTH = 32;\nexport const SHARED_KEY_LENGTH = 32;\n\n// TODO(dchest): some functions are copies of ../sign/ed25519.\n// Find a way to combine them without opening up to public.\n\n// Ported from TweetNaCl.js, which is ported from TweetNaCl\n// by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n// https://tweetnacl.js.org\n\n// TweetNaCl contributors:\n// Daniel J. Bernstein, Bernard van Gastel, Wesley Janssen,\n// Tanja Lange, Peter Schwabe, Sjaak Smetsers.\n// Public domain.\n// https://tweetnacl.cr.yp.to/\n\ntype GF = Float64Array;\n\n// Returns new zero-filled 16-element GF (Float64Array).\n// If passed an array of numbers, prefills the returned\n// array with them.\n//\n// We use Float64Array, because we need 48-bit numbers\n// for this implementation.\nfunction gf(init?: number[]): GF {\n const r = new Float64Array(16);\n if (init) {\n for (let i = 0; i < init.length; i++) {\n r[i] = init[i];\n }\n }\n return r;\n}\n\n// Base point.\nconst _9 = new Uint8Array(32); _9[0] = 9;\n\nconst _121665 = gf([0xdb41, 1]);\n\nfunction car25519(o: GF) {\n let c = 1;\n for (let i = 0; i < 16; i++) {\n let v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c - 1 + 37 * (c - 1);\n}\n\nfunction sel25519(p: GF, q: GF, b: number) {\n const c = ~(b - 1);\n for (let i = 0; i < 16; i++) {\n const t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\n\nfunction pack25519(o: Uint8Array, n: GF) {\n const m = gf();\n const t = gf();\n for (let i = 0; i < 16; i++) {\n t[i] = n[i];\n }\n car25519(t);\n car25519(t);\n car25519(t);\n for (let j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (let i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i - 1] >> 16) & 1);\n m[i - 1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14] >> 16) & 1);\n const b = (m[15] >> 16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1 - b);\n }\n for (let i = 0; i < 16; i++) {\n o[2 * i] = t[i] & 0xff;\n o[2 * i + 1] = t[i] >> 8;\n }\n}\n\nfunction unpack25519(o: GF, n: Uint8Array) {\n for (let i = 0; i < 16; i++) {\n o[i] = n[2 * i] + (n[2 * i + 1] << 8);\n }\n o[15] &= 0x7fff;\n}\n\nfunction add(o: GF, a: GF, b: GF) {\n for (let i = 0; i < 16; i++) {\n o[i] = a[i] + b[i];\n }\n}\n\nfunction sub(o: GF, a: GF, b: GF) {\n for (let i = 0; i < 16; i++) {\n o[i] = a[i] - b[i];\n }\n}\n\nfunction mul(o: GF, a: GF, b: GF) {\n let v: number, c: number,\n t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0,\n t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0,\n t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0,\n t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0,\n b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11],\n b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n\n // first car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c - 1 + 37 * (c - 1);\n\n // second car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c - 1 + 37 * (c - 1);\n\n o[0] = t0;\n o[1] = t1;\n o[2] = t2;\n o[3] = t3;\n o[4] = t4;\n o[5] = t5;\n o[6] = t6;\n o[7] = t7;\n o[8] = t8;\n o[9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\n\nfunction square(o: GF, a: GF) {\n mul(o, a, a);\n}\n\nfunction inv25519(o: GF, inp: GF) {\n const c = gf();\n for (let i = 0; i < 16; i++) {\n c[i] = inp[i];\n }\n for (let i = 253; i >= 0; i--) {\n square(c, c);\n if (i !== 2 && i !== 4) {\n mul(c, c, inp);\n }\n }\n for (let i = 0; i < 16; i++) {\n o[i] = c[i];\n }\n}\n\nexport function scalarMult(n: Uint8Array, p: Uint8Array): Uint8Array {\n const z = new Uint8Array(32);\n const x = new Float64Array(80);\n const a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf();\n\n for (let i = 0; i < 31; i++) {\n z[i] = n[i];\n }\n z[31] = (n[31] & 127) | 64;\n z[0] &= 248;\n\n unpack25519(x, p);\n\n for (let i = 0; i < 16; i++) {\n b[i] = x[i];\n }\n\n a[0] = d[0] = 1;\n\n for (let i = 254; i >= 0; --i) {\n const r = (z[i >>> 3] >>> (i & 7)) & 1;\n sel25519(a, b, r);\n sel25519(c, d, r);\n add(e, a, c);\n sub(a, a, c);\n add(c, b, d);\n sub(b, b, d);\n square(d, e);\n square(f, a);\n mul(a, c, a);\n mul(c, b, e);\n add(e, a, c);\n sub(a, a, c);\n square(b, a);\n sub(c, d, f);\n mul(a, c, _121665);\n add(a, a, d);\n mul(c, c, a);\n mul(a, d, f);\n mul(d, b, x);\n square(b, e);\n sel25519(a, b, r);\n sel25519(c, d, r);\n }\n for (let i = 0; i < 16; i++) {\n x[i + 16] = a[i];\n x[i + 32] = c[i];\n x[i + 48] = b[i];\n x[i + 64] = d[i];\n }\n const x32 = x.subarray(32);\n const x16 = x.subarray(16);\n inv25519(x32, x32);\n mul(x16, x16, x32);\n const q = new Uint8Array(32);\n pack25519(q, x16);\n return q;\n}\n\nexport function scalarMultBase(n: Uint8Array): Uint8Array {\n return scalarMult(n, _9);\n}\n\nexport interface KeyPair {\n publicKey: Uint8Array;\n secretKey: Uint8Array;\n}\n\nexport function generateKeyPairFromSeed(seed: Uint8Array): KeyPair {\n if (seed.length !== SECRET_KEY_LENGTH) {\n throw new Error(`x25519: seed must be ${SECRET_KEY_LENGTH} bytes`);\n }\n const secretKey = new Uint8Array(seed);\n const publicKey = scalarMultBase(secretKey);\n return {\n publicKey,\n secretKey\n };\n}\n\nexport function generateKeyPair(prng?: RandomSource): KeyPair {\n const seed = randomBytes(32, prng);\n const result = generateKeyPairFromSeed(seed);\n wipe(seed);\n return result;\n}\n\n/**\n * Returns a shared key between our secret key and a peer's public key.\n *\n * Throws an error if the given keys are of wrong length.\n *\n * If rejectZero is true throws if the calculated shared key is all-zero.\n * From RFC 7748:\n *\n * > Protocol designers using Diffie-Hellman over the curves defined in\n * > this document must not assume \"contributory behavior\". Specially,\n * > contributory behavior means that both parties' private keys\n * > contribute to the resulting shared key. Since curve25519 and\n * > curve448 have cofactors of 8 and 4 (respectively), an input point of\n * > small order will eliminate any contribution from the other party's\n * > private key. This situation can be detected by checking for the all-\n * > zero output, which implementations MAY do, as specified in Section 6.\n * > However, a large number of existing implementations do not do this.\n *\n * IMPORTANT: the returned key is a raw result of scalar multiplication.\n * To use it as a key material, hash it with a cryptographic hash function.\n */\nexport function sharedKey(mySecretKey: Uint8Array, theirPublicKey: Uint8Array, rejectZero = false): Uint8Array {\n if (mySecretKey.length !== PUBLIC_KEY_LENGTH) {\n throw new Error(\"X25519: incorrect secret key length\");\n }\n if (theirPublicKey.length !== PUBLIC_KEY_LENGTH) {\n throw new Error(\"X25519: incorrect public key length\");\n }\n\n const result = scalarMult(mySecretKey, theirPublicKey);\n\n if (rejectZero) {\n let zeros = 0;\n for (let i = 0; i < result.length; i++) {\n zeros |= result[i];\n }\n if (zeros === 0) {\n throw new Error(\"X25519: invalid shared key\");\n }\n }\n\n return result;\n}\n","var c1 = {\n \"chain\": \"ETH\",\n \"chainId\": 1,\n \"ens\": {\n \"registry\": \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\"\n },\n \"explorers\": [{\n \"name\": \"etherscan\",\n \"url\": \"https://etherscan.io\",\n \"standard\": \"EIP3091\"\n }, {\n \"name\": \"blockscout\",\n \"url\": \"https://eth.blockscout.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }, {\n \"name\": \"dexguru\",\n \"url\": \"https://ethereum.dex.guru\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmRaASKRSjQ5btoUQ2rNTJNxKtx2a2RoewgA7DMQkLVEne\",\n \"width\": 83,\n \"height\": 82,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmcxZHpyJa8T4i63xqjPYrZ6tKrt55tZJpbXcjSDKuKaf9/ethereum/512.png\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://ethereum.org\",\n \"name\": \"Ethereum Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 1,\n \"redFlags\": [],\n \"rpc\": [\"https://ethereum.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.infura.io/v3/${INFURA_API_KEY}\", \"wss://mainnet.infura.io/ws/v3/${INFURA_API_KEY}\", \"https://eth-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}\", \"https://api.mycryptoapi.com/eth\", \"https://cloudflare-eth.com\", \"https://ethereum.publicnode.com\", \"wss://ethereum.publicnode.com\", \"https://mainnet.gateway.tenderly.co\", \"wss://mainnet.gateway.tenderly.co\", \"https://rpc.blocknative.com/boost\", \"https://rpc.flashbots.net/fast\", \"https://rpc.mevblocker.io/fullprivacy\"],\n \"shortName\": \"eth\",\n \"slip44\": 60,\n \"slug\": \"ethereum\",\n \"testnet\": false\n};\n\nvar c2 = {\n \"chain\": \"EXP\",\n \"chainId\": 2,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://expanse.tech\",\n \"name\": \"Expanse Network\",\n \"nativeCurrency\": {\n \"name\": \"Expanse Network Ether\",\n \"symbol\": \"EXP\",\n \"decimals\": 18\n },\n \"networkId\": 1,\n \"rpc\": [\"https://expanse-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://node.expanse.tech\"],\n \"shortName\": \"exp\",\n \"slip44\": 40,\n \"slug\": \"expanse-network\",\n \"testnet\": false\n};\n\nvar c3 = {\n \"chain\": \"ETH\",\n \"chainId\": 3,\n \"ens\": {\n \"registry\": \"0x112234455c3a32fd11230c42e7bccd4a84e02010\"\n },\n \"explorers\": [{\n \"name\": \"etherscan\",\n \"url\": \"https://ropsten.etherscan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"http://fauceth.komputing.org?chain=3&address=${ADDRESS}\", \"https://faucet.ropsten.be?${ADDRESS}\"],\n \"infoURL\": \"https://github.com/ethereum/ropsten\",\n \"name\": \"Ropsten\",\n \"nativeCurrency\": {\n \"name\": \"Ropsten Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 3,\n \"rpc\": [\"https://ropsten.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://3.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://ropsten.infura.io/v3/${INFURA_API_KEY}\", \"wss://ropsten.infura.io/ws/v3/${INFURA_API_KEY}\"],\n \"shortName\": \"rop\",\n \"slip44\": 1,\n \"slug\": \"ropsten\",\n \"testnet\": true,\n \"title\": \"Ethereum Testnet Ropsten\"\n};\n\nvar c4 = {\n \"chain\": \"ETH\",\n \"chainId\": 4,\n \"ens\": {\n \"registry\": \"0xe7410170f87102df0055eb195163a03b7f2bff4a\"\n },\n \"explorers\": [{\n \"name\": \"etherscan-rinkeby\",\n \"url\": \"https://rinkeby.etherscan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"http://fauceth.komputing.org?chain=4&address=${ADDRESS}\", \"https://faucet.rinkeby.io\"],\n \"infoURL\": \"https://www.rinkeby.io\",\n \"name\": \"Rinkeby\",\n \"nativeCurrency\": {\n \"name\": \"Rinkeby Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 4,\n \"rpc\": [\"https://rinkeby.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://4.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rinkeby.infura.io/v3/${INFURA_API_KEY}\", \"wss://rinkeby.infura.io/ws/v3/${INFURA_API_KEY}\"],\n \"shortName\": \"rin\",\n \"slip44\": 1,\n \"slug\": \"rinkeby\",\n \"testnet\": true,\n \"title\": \"Ethereum Testnet Rinkeby\"\n};\n\nvar c5 = {\n \"chain\": \"ETH\",\n \"chainId\": 5,\n \"ens\": {\n \"registry\": \"0x112234455c3a32fd11230c42e7bccd4a84e02010\"\n },\n \"explorers\": [{\n \"name\": \"etherscan-goerli\",\n \"url\": \"https://goerli.etherscan.io\",\n \"standard\": \"EIP3091\"\n }, {\n \"name\": \"blockscout-goerli\",\n \"url\": \"https://eth-goerli.blockscout.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"http://fauceth.komputing.org?chain=5&address=${ADDRESS}\", \"https://goerli-faucet.slock.it?address=${ADDRESS}\", \"https://faucet.goerli.mudit.blog\"],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmcxZHpyJa8T4i63xqjPYrZ6tKrt55tZJpbXcjSDKuKaf9/ethereum/512.png\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://goerli.net/#about\",\n \"name\": \"Goerli\",\n \"nativeCurrency\": {\n \"name\": \"Goerli Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 5,\n \"redFlags\": [],\n \"rpc\": [\"https://goerli.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://5.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://goerli.infura.io/v3/${INFURA_API_KEY}\", \"wss://goerli.infura.io/v3/${INFURA_API_KEY}\", \"https://rpc.goerli.mudit.blog/\", \"https://ethereum-goerli.publicnode.com\", \"wss://ethereum-goerli.publicnode.com\", \"https://goerli.gateway.tenderly.co\", \"wss://goerli.gateway.tenderly.co\"],\n \"shortName\": \"gor\",\n \"slip44\": 1,\n \"slug\": \"goerli\",\n \"testnet\": true,\n \"title\": \"Ethereum Testnet Goerli\"\n};\n\nvar c6 = {\n \"chain\": \"ETC\",\n \"chainId\": 6,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmawMDPsaj3kBTZErCYQ3tshv5RrMAN3smWNs72m943Fyj\",\n \"width\": 200,\n \"height\": 200,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://ethereumclassic.org/development/testnets\",\n \"name\": \"Kotti Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Kotti Ether\",\n \"symbol\": \"KOT\",\n \"decimals\": 18\n },\n \"networkId\": 6,\n \"rpc\": [],\n \"shortName\": \"kot\",\n \"slip44\": 1,\n \"slug\": \"kotti-testnet\",\n \"status\": \"deprecated\",\n \"testnet\": true,\n \"title\": \"Ethereum Classic Kotti Testnet\"\n};\n\nvar c7 = {\n \"chain\": \"TCH\",\n \"chainId\": 7,\n \"explorers\": [{\n \"name\": \"Thaichain Explorer\",\n \"url\": \"https://exp.thaichain.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"infoURL\": \"https://thaichain.io\",\n \"name\": \"ThaiChain\",\n \"nativeCurrency\": {\n \"name\": \"ThaiChain Ether\",\n \"symbol\": \"TCH\",\n \"decimals\": 18\n },\n \"networkId\": 7,\n \"rpc\": [\"https://thaichain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://7.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.dome.cloud\", \"https://rpc.thaichain.org\"],\n \"shortName\": \"tch\",\n \"slug\": \"thaichain\",\n \"testnet\": false\n};\n\nvar c8 = {\n \"chain\": \"UBQ\",\n \"chainId\": 8,\n \"explorers\": [{\n \"name\": \"ubiqscan\",\n \"url\": \"https://ubiqscan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://ubiqsmart.com\",\n \"name\": \"Ubiq\",\n \"nativeCurrency\": {\n \"name\": \"Ubiq Ether\",\n \"symbol\": \"UBQ\",\n \"decimals\": 18\n },\n \"networkId\": 8,\n \"rpc\": [\"https://ubiq.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.octano.dev\", \"https://pyrus2.ubiqscan.io\"],\n \"shortName\": \"ubq\",\n \"slip44\": 108,\n \"slug\": \"ubiq\",\n \"testnet\": false\n};\n\nvar c9 = {\n \"chain\": \"UBQ\",\n \"chainId\": 9,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://ethersocial.org\",\n \"name\": \"Ubiq Network Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Ubiq Testnet Ether\",\n \"symbol\": \"TUBQ\",\n \"decimals\": 18\n },\n \"networkId\": 2,\n \"rpc\": [],\n \"shortName\": \"tubq\",\n \"slip44\": 1,\n \"slug\": \"ubiq-network-testnet\",\n \"testnet\": true\n};\n\nvar c10 = {\n \"chain\": \"ETH\",\n \"chainId\": 10,\n \"explorers\": [{\n \"name\": \"etherscan\",\n \"url\": \"https://optimistic.etherscan.io\",\n \"standard\": \"EIP3091\"\n }, {\n \"name\": \"blockscout\",\n \"url\": \"https://optimism.blockscout.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }, {\n \"name\": \"dexguru\",\n \"url\": \"https://optimism.dex.guru\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmRaASKRSjQ5btoUQ2rNTJNxKtx2a2RoewgA7DMQkLVEne\",\n \"width\": 83,\n \"height\": 82,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmcxZHpyJa8T4i63xqjPYrZ6tKrt55tZJpbXcjSDKuKaf9/optimism/512.png\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://optimism.io\",\n \"name\": \"OP Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 10,\n \"redFlags\": [],\n \"rpc\": [\"https://optimism.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://10.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://optimism-mainnet.infura.io/v3/${INFURA_API_KEY}\", \"https://opt-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}\", \"https://mainnet.optimism.io\", \"https://optimism.publicnode.com\", \"wss://optimism.publicnode.com\", \"https://optimism.gateway.tenderly.co\", \"wss://optimism.gateway.tenderly.co\"],\n \"shortName\": \"oeth\",\n \"slug\": \"optimism\",\n \"testnet\": false\n};\n\nvar c11 = {\n \"chain\": \"META\",\n \"chainId\": 11,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://metadium.com\",\n \"name\": \"Metadium Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Metadium Mainnet Ether\",\n \"symbol\": \"META\",\n \"decimals\": 18\n },\n \"networkId\": 11,\n \"rpc\": [\"https://metadium.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://11.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.metadium.com/prod\"],\n \"shortName\": \"meta\",\n \"slip44\": 916,\n \"slug\": \"metadium\",\n \"testnet\": false\n};\n\nvar c12 = {\n \"chain\": \"META\",\n \"chainId\": 12,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://metadium.com\",\n \"name\": \"Metadium Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Metadium Testnet Ether\",\n \"symbol\": \"KAL\",\n \"decimals\": 18\n },\n \"networkId\": 12,\n \"rpc\": [\"https://metadium-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://12.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.metadium.com/dev\"],\n \"shortName\": \"kal\",\n \"slip44\": 1,\n \"slug\": \"metadium-testnet\",\n \"testnet\": true\n};\n\nvar c13 = {\n \"chain\": \"DIODE\",\n \"chainId\": 13,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://diode.io/staging\",\n \"name\": \"Diode Testnet Staging\",\n \"nativeCurrency\": {\n \"name\": \"Staging Diodes\",\n \"symbol\": \"sDIODE\",\n \"decimals\": 18\n },\n \"networkId\": 13,\n \"rpc\": [\"https://diode-testnet-staging.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://13.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://staging.diode.io:8443/\", \"wss://staging.diode.io:8443/ws\"],\n \"shortName\": \"dstg\",\n \"slip44\": 1,\n \"slug\": \"diode-testnet-staging\",\n \"testnet\": true\n};\n\nvar c14 = {\n \"chain\": \"FLR\",\n \"chainId\": 14,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://flare-explorer.flare.network\",\n \"standard\": \"EIP3091\"\n }, {\n \"name\": \"flarescan\",\n \"url\": \"https://flarescan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmevAevHxRkK2zVct2Eu6Y7s38YC4SmiAiw9X7473pVtmL\",\n \"width\": 382,\n \"height\": 382,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://flare.network\",\n \"name\": \"Flare Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Flare\",\n \"symbol\": \"FLR\",\n \"decimals\": 18\n },\n \"networkId\": 14,\n \"rpc\": [\"https://flare.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://14.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://flare-api.flare.network/ext/C/rpc\", \"https://flare.public-rpc.com\", \"https://rpc.ftso.au/flare\"],\n \"shortName\": \"flr\",\n \"slug\": \"flare\",\n \"testnet\": false\n};\n\nvar c15 = {\n \"chain\": \"DIODE\",\n \"chainId\": 15,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://diode.io/prenet\",\n \"name\": \"Diode Prenet\",\n \"nativeCurrency\": {\n \"name\": \"Diodes\",\n \"symbol\": \"DIODE\",\n \"decimals\": 18\n },\n \"networkId\": 15,\n \"rpc\": [\"https://diode-prenet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://15.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://prenet.diode.io:8443/\", \"wss://prenet.diode.io:8443/ws\"],\n \"shortName\": \"diode\",\n \"slug\": \"diode-prenet\",\n \"testnet\": false\n};\n\nvar c16 = {\n \"chain\": \"FLR\",\n \"chainId\": 16,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://coston-explorer.flare.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.towolabs.com\", \"https://fauceth.komputing.org?chain=16&address=${ADDRESS}\"],\n \"icon\": {\n \"url\": \"ipfs://QmW7Ljv2eLQ1poRrhJBaVWJBF1TyfZ8QYxDeELRo6sssrj\",\n \"width\": 382,\n \"height\": 382,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://flare.xyz\",\n \"name\": \"Flare Testnet Coston\",\n \"nativeCurrency\": {\n \"name\": \"Coston Flare\",\n \"symbol\": \"CFLR\",\n \"decimals\": 18\n },\n \"networkId\": 16,\n \"rpc\": [\"https://flare-testnet-coston.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://16.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://coston-api.flare.network/ext/bc/C/rpc\"],\n \"shortName\": \"cflr\",\n \"slug\": \"flare-testnet-coston\",\n \"testnet\": true\n};\n\nvar c17 = {\n \"chain\": \"TCH\",\n \"chainId\": 17,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://exp.thaifi.com\",\n \"name\": \"ThaiChain 2.0 ThaiFi\",\n \"nativeCurrency\": {\n \"name\": \"Thaifi Ether\",\n \"symbol\": \"TFI\",\n \"decimals\": 18\n },\n \"networkId\": 17,\n \"rpc\": [\"https://thaichain-2-0-thaifi.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://17.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.thaifi.com\"],\n \"shortName\": \"tfi\",\n \"slug\": \"thaichain-2-0-thaifi\",\n \"testnet\": false\n};\n\nvar c18 = {\n \"chain\": \"TST\",\n \"chainId\": 18,\n \"explorers\": [{\n \"name\": \"thundercore-blockscout-testnet\",\n \"url\": \"https://explorer-testnet.thundercore.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet-testnet.thundercore.com\"],\n \"infoURL\": \"https://thundercore.com\",\n \"name\": \"ThunderCore Testnet\",\n \"nativeCurrency\": {\n \"name\": \"ThunderCore Testnet Token\",\n \"symbol\": \"TST\",\n \"decimals\": 18\n },\n \"networkId\": 18,\n \"rpc\": [\"https://thundercore-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://18.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-rpc.thundercore.com\"],\n \"shortName\": \"TST\",\n \"slip44\": 1,\n \"slug\": \"thundercore-testnet\",\n \"testnet\": true\n};\n\nvar c19 = {\n \"chain\": \"SGB\",\n \"chainId\": 19,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://songbird-explorer.flare.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmXyvnrZY8FUxSULfnKKA99sAEkjAHtvhRx5WeHixgaEdu\",\n \"width\": 382,\n \"height\": 382,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://flare.xyz\",\n \"name\": \"Songbird Canary-Network\",\n \"nativeCurrency\": {\n \"name\": \"Songbird\",\n \"symbol\": \"SGB\",\n \"decimals\": 18\n },\n \"networkId\": 19,\n \"rpc\": [\"https://songbird-canary-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://19.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://songbird-api.flare.network/ext/C/rpc\", \"https://sgb.ftso.com.au/ext/bc/C/rpc\", \"https://sgb.lightft.so/rpc\", \"https://sgb-rpc.ftso.eu\", \"https://rpc.ftso.au/songbird\"],\n \"shortName\": \"sgb\",\n \"slug\": \"songbird-canary-network\",\n \"testnet\": false\n};\n\nvar c20 = {\n \"chain\": \"ETH\",\n \"chainId\": 20,\n \"explorers\": [{\n \"name\": \"elastos esc explorer\",\n \"url\": \"https://esc.elastos.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.elastos.org/\",\n \"name\": \"Elastos Smart Chain\",\n \"nativeCurrency\": {\n \"name\": \"Elastos\",\n \"symbol\": \"ELA\",\n \"decimals\": 18\n },\n \"networkId\": 20,\n \"rpc\": [\"https://elastos-smart-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://20.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.elastos.io/eth\"],\n \"shortName\": \"esc\",\n \"slug\": \"elastos-smart-chain\",\n \"testnet\": false\n};\n\nvar c21 = {\n \"chain\": \"ETH\",\n \"chainId\": 21,\n \"explorers\": [{\n \"name\": \"elastos esc explorer\",\n \"url\": \"https://esc-testnet.elastos.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://esc-faucet.elastos.io/\"],\n \"infoURL\": \"https://www.elastos.org/\",\n \"name\": \"Elastos Smart Chain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Elastos\",\n \"symbol\": \"tELA\",\n \"decimals\": 18\n },\n \"networkId\": 21,\n \"rpc\": [\"https://elastos-smart-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://21.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api-testnet.elastos.io/eth\"],\n \"shortName\": \"esct\",\n \"slug\": \"elastos-smart-chain-testnet\",\n \"testnet\": true\n};\n\nvar c22 = {\n \"chain\": \"ETH\",\n \"chainId\": 22,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://www.elastos.org/\",\n \"name\": \"ELA-DID-Sidechain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Elastos\",\n \"symbol\": \"ELA\",\n \"decimals\": 18\n },\n \"networkId\": 22,\n \"rpc\": [],\n \"shortName\": \"eladid\",\n \"slug\": \"ela-did-sidechain\",\n \"testnet\": false\n};\n\nvar c23 = {\n \"chain\": \"ETH\",\n \"chainId\": 23,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://elaeth.io/\",\n \"name\": \"ELA-DID-Sidechain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Elastos\",\n \"symbol\": \"tELA\",\n \"decimals\": 18\n },\n \"networkId\": 23,\n \"rpc\": [],\n \"shortName\": \"eladidt\",\n \"slip44\": 1,\n \"slug\": \"ela-did-sidechain-testnet\",\n \"testnet\": true\n};\n\nvar c24 = {\n \"chain\": \"KAI\",\n \"chainId\": 24,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmXoHaZXJevc59GuzEgBhwRSH6kio1agMRvL8bD93pARRV\",\n \"width\": 297,\n \"height\": 297,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://kardiachain.io\",\n \"name\": \"KardiaChain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"KardiaChain\",\n \"symbol\": \"KAI\",\n \"decimals\": 18\n },\n \"networkId\": 0,\n \"redFlags\": [\"reusedChainId\"],\n \"rpc\": [\"https://kardiachain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://24.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.kardiachain.io\"],\n \"shortName\": \"kardiachain\",\n \"slug\": \"kardiachain\",\n \"testnet\": false\n};\n\nvar c25 = {\n \"chain\": \"CRO\",\n \"chainId\": 25,\n \"explorers\": [{\n \"name\": \"Cronos Explorer\",\n \"url\": \"https://explorer.cronos.org\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP1559\"\n }],\n \"infoURL\": \"https://cronos.org/\",\n \"name\": \"Cronos Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Cronos\",\n \"symbol\": \"CRO\",\n \"decimals\": 18\n },\n \"networkId\": 25,\n \"rpc\": [\"https://cronos.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://25.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://evm.cronos.org\", \"https://cronos-evm.publicnode.com\", \"wss://cronos-evm.publicnode.com\"],\n \"shortName\": \"cro\",\n \"slug\": \"cronos\",\n \"testnet\": false\n};\n\nvar c26 = {\n \"chain\": \"genesis\",\n \"chainId\": 26,\n \"explorers\": [{\n \"name\": \"Genesis L1 testnet explorer\",\n \"url\": \"https://testnet.genesisl1.org\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.genesisl1.com\",\n \"name\": \"Genesis L1 testnet\",\n \"nativeCurrency\": {\n \"name\": \"L1 testcoin\",\n \"symbol\": \"L1test\",\n \"decimals\": 18\n },\n \"networkId\": 26,\n \"rpc\": [\"https://genesis-l1-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://26.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testrpc.genesisl1.org\"],\n \"shortName\": \"L1test\",\n \"slip44\": 1,\n \"slug\": \"genesis-l1-testnet\",\n \"testnet\": true\n};\n\nvar c27 = {\n \"chain\": \"SHIB\",\n \"chainId\": 27,\n \"explorers\": [{\n \"name\": \"Shiba Explorer\",\n \"url\": \"https://exp.shibchain.org\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://shibchain.org\",\n \"name\": \"ShibaChain\",\n \"nativeCurrency\": {\n \"name\": \"SHIBA INU COIN\",\n \"symbol\": \"SHIB\",\n \"decimals\": 18\n },\n \"networkId\": 27,\n \"rpc\": [\"https://shibachain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://27.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.shibchain.org\"],\n \"shortName\": \"shib\",\n \"slug\": \"shibachain\",\n \"testnet\": false\n};\n\nvar c28 = {\n \"chain\": \"ETH\",\n \"chainId\": 28,\n \"explorers\": [{\n \"name\": \"Blockscout\",\n \"url\": \"https://blockexplorer.rinkeby.boba.network\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://boba.network\",\n \"name\": \"Boba Network Rinkeby Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 28,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-4\",\n \"bridges\": [{\n \"url\": \"https://gateway.rinkeby.boba.network\"\n }]\n },\n \"rpc\": [\"https://boba-network-rinkeby-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://28.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rinkeby.boba.network/\"],\n \"shortName\": \"BobaRinkeby\",\n \"slip44\": 1,\n \"slug\": \"boba-network-rinkeby-testnet\",\n \"testnet\": true\n};\n\nvar c29 = {\n \"chain\": \"genesis\",\n \"chainId\": 29,\n \"explorers\": [{\n \"name\": \"Genesis L1 blockchain explorer\",\n \"url\": \"https://explorer.genesisl1.org\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.genesisl1.com\",\n \"name\": \"Genesis L1\",\n \"nativeCurrency\": {\n \"name\": \"L1 coin\",\n \"symbol\": \"L1\",\n \"decimals\": 18\n },\n \"networkId\": 29,\n \"rpc\": [\"https://genesis-l1.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://29.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.genesisl1.org\"],\n \"shortName\": \"L1\",\n \"slug\": \"genesis-l1\",\n \"testnet\": false\n};\n\nvar c30 = {\n \"chain\": \"Rootstock\",\n \"chainId\": 30,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://rootstock.blockscout.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }, {\n \"name\": \"Rootstock Explorer\",\n \"url\": \"https://explorer.rsk.co\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreigidzbf22dnpmmlfxv6u7oifq6ln33j4n57ox4ipiproalufrheym\",\n \"width\": 3000,\n \"height\": 3325,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://rootstock.io\",\n \"name\": \"Rootstock Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Smart Bitcoin\",\n \"symbol\": \"RBTC\",\n \"decimals\": 18\n },\n \"networkId\": 30,\n \"rpc\": [\"https://rootstock.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://30.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://public-node.rsk.co\", \"https://mycrypto.rsk.co\"],\n \"shortName\": \"rsk\",\n \"slip44\": 137,\n \"slug\": \"rootstock\",\n \"testnet\": false\n};\n\nvar c31 = {\n \"chain\": \"Rootstock\",\n \"chainId\": 31,\n \"explorers\": [{\n \"name\": \"RSK Testnet Explorer\",\n \"url\": \"https://explorer.testnet.rsk.co\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.rsk.co/\"],\n \"icon\": {\n \"url\": \"ipfs://bafkreigidzbf22dnpmmlfxv6u7oifq6ln33j4n57ox4ipiproalufrheym\",\n \"width\": 3000,\n \"height\": 3325,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://rootstock.io\",\n \"name\": \"Rootstock Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Testnet Smart Bitcoin\",\n \"symbol\": \"tRBTC\",\n \"decimals\": 18\n },\n \"networkId\": 31,\n \"rpc\": [\"https://rootstock-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://31.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://public-node.testnet.rsk.co\", \"https://mycrypto.testnet.rsk.co\"],\n \"shortName\": \"trsk\",\n \"slip44\": 1,\n \"slug\": \"rootstock-testnet\",\n \"testnet\": true\n};\n\nvar c32 = {\n \"chain\": \"GooD\",\n \"chainId\": 32,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://www.goodata.org\",\n \"name\": \"GoodData Testnet\",\n \"nativeCurrency\": {\n \"name\": \"GoodData Testnet Ether\",\n \"symbol\": \"GooD\",\n \"decimals\": 18\n },\n \"networkId\": 32,\n \"rpc\": [\"https://gooddata-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://32.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://test2.goodata.io\"],\n \"shortName\": \"GooDT\",\n \"slip44\": 1,\n \"slug\": \"gooddata-testnet\",\n \"testnet\": true\n};\n\nvar c33 = {\n \"chain\": \"GooD\",\n \"chainId\": 33,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://www.goodata.org\",\n \"name\": \"GoodData Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"GoodData Mainnet Ether\",\n \"symbol\": \"GooD\",\n \"decimals\": 18\n },\n \"networkId\": 33,\n \"rpc\": [\"https://gooddata.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://33.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.goodata.io\"],\n \"shortName\": \"GooD\",\n \"slug\": \"gooddata\",\n \"testnet\": false\n};\n\nvar c34 = {\n \"chain\": \"SCAI\",\n \"chainId\": 34,\n \"explorers\": [{\n \"name\": \"SecureChain Mainnet\",\n \"url\": \"https://explorer.securechain.ai\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.securechain.ai\"],\n \"icon\": {\n \"url\": \"ipfs://Qme2Z8VFYjhHGfLQPBnfseNpEdRfmTDy7VXqrdH4AHETJf\",\n \"width\": 150,\n \"height\": 150,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://securechain.ai\",\n \"name\": \"SecureChain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"SecureChain\",\n \"symbol\": \"SCAI\",\n \"decimals\": 18\n },\n \"networkId\": 34,\n \"redFlags\": [\"reusedChainId\"],\n \"rpc\": [\"https://securechain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://34.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-rpc.scai.network\"],\n \"shortName\": \"scai\",\n \"slug\": \"securechain\",\n \"testnet\": false\n};\n\nvar c35 = {\n \"chain\": \"TBWG\",\n \"chainId\": 35,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://tbwg.io\",\n \"name\": \"TBWG Chain\",\n \"nativeCurrency\": {\n \"name\": \"TBWG Ether\",\n \"symbol\": \"TBG\",\n \"decimals\": 18\n },\n \"networkId\": 35,\n \"rpc\": [\"https://tbwg-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://35.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.tbwg.io\"],\n \"shortName\": \"tbwg\",\n \"slug\": \"tbwg-chain\",\n \"testnet\": false\n};\n\nvar c36 = {\n \"chain\": \"Dxchain\",\n \"chainId\": 36,\n \"explorers\": [{\n \"name\": \"dxscan\",\n \"url\": \"https://dxscan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmYBup5bWoBfkaHntbcgW8Ji7ncad7f53deJ4Q55z4PNQs\",\n \"width\": 128,\n \"height\": 128,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.dxchain.com/\",\n \"name\": \"Dxchain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Dxchain\",\n \"symbol\": \"DX\",\n \"decimals\": 18\n },\n \"networkId\": 36,\n \"rpc\": [\"https://dxchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://36.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.dxchain.com\"],\n \"shortName\": \"dx\",\n \"slug\": \"dxchain\",\n \"testnet\": false\n};\n\nvar c37 = {\n \"chain\": \"XPLA\",\n \"chainId\": 37,\n \"explorers\": [{\n \"name\": \"XPLA Explorer\",\n \"url\": \"https://explorer.xpla.io/mainnet\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://Qmf4GoxfpeA5VGqu7KP5eyv1WKaCpNDbvMxq1MjQBwFWxq\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://xpla.io\",\n \"name\": \"Xpla Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"XPLA\",\n \"symbol\": \"XPLA\",\n \"decimals\": 18\n },\n \"networkId\": 37,\n \"redFlags\": [\"reusedChainId\"],\n \"rpc\": [\"https://xpla.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://37.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://dimension-evm-rpc.xpla.dev\"],\n \"shortName\": \"xpla\",\n \"slug\": \"xpla\",\n \"testnet\": false\n};\n\nvar c38 = {\n \"chain\": \"VAL\",\n \"chainId\": 38,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://valorbit.com\",\n \"name\": \"Valorbit\",\n \"nativeCurrency\": {\n \"name\": \"Valorbit\",\n \"symbol\": \"VAL\",\n \"decimals\": 18\n },\n \"networkId\": 38,\n \"rpc\": [\"https://valorbit.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://38.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.valorbit.com/v2\"],\n \"shortName\": \"val\",\n \"slip44\": 538,\n \"slug\": \"valorbit\",\n \"testnet\": false\n};\n\nvar c39 = {\n \"chain\": \"u2u\",\n \"chainId\": 39,\n \"explorers\": [{\n \"name\": \"U2U Explorer\",\n \"url\": \"https://u2uscan.xyz\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmcW64RgqQVHnNbVFyfaMNKt7dJvFqEbfEHZmeyeK8dpEa\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmcW64RgqQVHnNbVFyfaMNKt7dJvFqEbfEHZmeyeK8dpEa\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://uniultra.xyz\",\n \"name\": \"U2U Solaris Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Unicorn Ultra\",\n \"symbol\": \"U2U\",\n \"decimals\": 18\n },\n \"networkId\": 39,\n \"rpc\": [\"https://u2u-solaris.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://39.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-mainnet.uniultra.xyz\"],\n \"shortName\": \"u2u\",\n \"slug\": \"u2u-solaris\",\n \"testnet\": false\n};\n\nvar c40 = {\n \"chain\": \"TLOS\",\n \"chainId\": 40,\n \"explorers\": [{\n \"name\": \"teloscan\",\n \"url\": \"https://teloscan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmdkgQDtDedsNNth3ZVgWfwRZPCePLA13MtLvV4CEYSuTR/TLOS.png\",\n \"width\": 228,\n \"height\": 228,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://telos.net\",\n \"name\": \"Telos EVM Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Telos\",\n \"symbol\": \"TLOS\",\n \"decimals\": 18\n },\n \"networkId\": 40,\n \"redFlags\": [],\n \"rpc\": [\"https://telos-evm.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://40.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.telos.net/evm\"],\n \"shortName\": \"TelosEVM\",\n \"slug\": \"telos-evm\",\n \"testnet\": false\n};\n\nvar c41 = {\n \"chain\": \"TLOS\",\n \"chainId\": 41,\n \"explorers\": [{\n \"name\": \"teloscan\",\n \"url\": \"https://testnet.teloscan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://app.telos.net/testnet/developers\"],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmdkgQDtDedsNNth3ZVgWfwRZPCePLA13MtLvV4CEYSuTR/TLOS.png\",\n \"width\": 228,\n \"height\": 228,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://telos.net\",\n \"name\": \"Telos EVM Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Telos\",\n \"symbol\": \"TLOS\",\n \"decimals\": 18\n },\n \"networkId\": 41,\n \"redFlags\": [],\n \"rpc\": [\"https://telos-evm-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://41.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.telos.net/evm\"],\n \"shortName\": \"TelosEVMTestnet\",\n \"slip44\": 1,\n \"slug\": \"telos-evm-testnet\",\n \"testnet\": true\n};\n\nvar c42 = {\n \"chain\": \"LUKSO\",\n \"chainId\": 42,\n \"explorers\": [{\n \"name\": \"Blockscout\",\n \"url\": \"https://explorer.execution.mainnet.lukso.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://Qmeg9sFF5tAGi6MCx7YjtVHW6a23zqvHRK1xwzSdp9iE7z\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://lukso.network\",\n \"name\": \"LUKSO Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"LUKSO\",\n \"symbol\": \"LYX\",\n \"decimals\": 18\n },\n \"networkId\": 42,\n \"redFlags\": [\"reusedChainId\"],\n \"rpc\": [\"https://lukso.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://42.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.mainnet.lukso.network\", \"wss://ws-rpc.mainnet.lukso.network\"],\n \"shortName\": \"lukso\",\n \"slug\": \"lukso\",\n \"testnet\": false\n};\n\nvar c43 = {\n \"chain\": \"pangolin\",\n \"chainId\": 43,\n \"explorers\": [{\n \"name\": \"subscan\",\n \"url\": \"https://pangolin.subscan.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://docs.darwinia.network/pangolin-testnet-1e9ac8b09e874e8abd6a7f18c096ca6a\"],\n \"infoURL\": \"https://darwinia.network/\",\n \"name\": \"Darwinia Pangolin Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Pangolin Network Native Token\",\n \"symbol\": \"PRING\",\n \"decimals\": 18\n },\n \"networkId\": 43,\n \"rpc\": [\"https://darwinia-pangolin-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://43.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://pangolin-rpc.darwinia.network\"],\n \"shortName\": \"pangolin\",\n \"slip44\": 1,\n \"slug\": \"darwinia-pangolin-testnet\",\n \"testnet\": true\n};\n\nvar c44 = {\n \"chain\": \"crab\",\n \"chainId\": 44,\n \"explorers\": [{\n \"name\": \"subscan\",\n \"url\": \"https://crab.subscan.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://crab.network/\",\n \"name\": \"Crab Network\",\n \"nativeCurrency\": {\n \"name\": \"Crab Network Native Token\",\n \"symbol\": \"CRAB\",\n \"decimals\": 18\n },\n \"networkId\": 44,\n \"rpc\": [\"https://crab-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://44.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://crab-rpc.darwinia.network\", \"https://crab-rpc.darwiniacommunitydao.xyz\", \"https://darwiniacrab-rpc.dwellir.com\"],\n \"shortName\": \"crab\",\n \"slug\": \"crab-network\",\n \"testnet\": false\n};\n\nvar c45 = {\n \"chain\": \"pangoro\",\n \"chainId\": 45,\n \"explorers\": [{\n \"name\": \"subscan\",\n \"url\": \"https://pangoro.subscan.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://docs.darwinia.network/pangoro-testnet-70cfec5dc9ca42759959ba3803edaec2\"],\n \"infoURL\": \"https://darwinia.network/\",\n \"name\": \"Darwinia Pangoro Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Pangoro Network Native Token\",\n \"symbol\": \"ORING\",\n \"decimals\": 18\n },\n \"networkId\": 45,\n \"rpc\": [\"https://darwinia-pangoro-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://45.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://pangoro-rpc.darwinia.network\"],\n \"shortName\": \"pangoro\",\n \"slip44\": 1,\n \"slug\": \"darwinia-pangoro-testnet\",\n \"testnet\": true\n};\n\nvar c46 = {\n \"chain\": \"darwinia\",\n \"chainId\": 46,\n \"explorers\": [{\n \"name\": \"subscan\",\n \"url\": \"https://darwinia.subscan.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://darwinia.network/\",\n \"name\": \"Darwinia Network\",\n \"nativeCurrency\": {\n \"name\": \"Darwinia Network Native Token\",\n \"symbol\": \"RING\",\n \"decimals\": 18\n },\n \"networkId\": 46,\n \"rpc\": [\"https://darwinia-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://46.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.darwinia.network\", \"https://darwinia-rpc.darwiniacommunitydao.xyz\", \"https://darwinia-rpc.dwellir.com\"],\n \"shortName\": \"darwinia\",\n \"slug\": \"darwinia-network\",\n \"testnet\": false\n};\n\nvar c47 = {\n \"chain\": \"XPLA\",\n \"chainId\": 47,\n \"explorers\": [{\n \"name\": \"XPLA Explorer\",\n \"url\": \"https://explorer.xpla.io/testnet\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://faucet.xpla.io/\"],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmbvEAKZfgJckEziU3mpCwz6jqMeWRcLgd8TNsWA7g8sD9/xpla.png\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://xpla.io/\",\n \"name\": \"Xpla Testnet\",\n \"nativeCurrency\": {\n \"name\": \"XPLA\",\n \"symbol\": \"XPLA\",\n \"decimals\": 18\n },\n \"networkId\": 47,\n \"redFlags\": [\"reusedChainId\"],\n \"rpc\": [\"https://xpla-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://47.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://cube-evm-rpc.xpla.dev\"],\n \"shortName\": \"xpla-test\",\n \"slug\": \"xpla-testnet\",\n \"testnet\": true\n};\n\nvar c48 = {\n \"chain\": \"ETMP\",\n \"chainId\": 48,\n \"explorers\": [{\n \"name\": \"etmpscan\",\n \"url\": \"https://etmscan.network\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmT7DTqT1V2y42pRpt3sj9ifijfmbtkHN7D2vTfAUAS622\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmT7DTqT1V2y42pRpt3sj9ifijfmbtkHN7D2vTfAUAS622\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://etm.network\",\n \"name\": \"Ennothem Mainnet Proterozoic\",\n \"nativeCurrency\": {\n \"name\": \"Ennothem\",\n \"symbol\": \"ETMP\",\n \"decimals\": 18\n },\n \"networkId\": 48,\n \"rpc\": [\"https://ennothem-proterozoic.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://48.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.etm.network\"],\n \"shortName\": \"etmp\",\n \"slug\": \"ennothem-proterozoic\",\n \"testnet\": false\n};\n\nvar c49 = {\n \"chain\": \"ETMP\",\n \"chainId\": 49,\n \"explorers\": [{\n \"name\": \"etmp\",\n \"url\": \"https://pioneer.etmscan.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmT7DTqT1V2y42pRpt3sj9ifijfmbtkHN7D2vTfAUAS622\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://etm.network\",\n \"name\": \"Ennothem Testnet Pioneer\",\n \"nativeCurrency\": {\n \"name\": \"Ennothem\",\n \"symbol\": \"ETMP\",\n \"decimals\": 18\n },\n \"networkId\": 49,\n \"rpc\": [\"https://ennothem-testnet-pioneer.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://49.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.pioneer.etm.network\"],\n \"shortName\": \"etmpTest\",\n \"slip44\": 1,\n \"slug\": \"ennothem-testnet-pioneer\",\n \"testnet\": true\n};\n\nvar c50 = {\n \"chain\": \"XDC\",\n \"chainId\": 50,\n \"explorers\": [{\n \"name\": \"xdcscan\",\n \"url\": \"https://xdcscan.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmPzVFs16GwaD8LAcGFLCNXzEK8BHFKNXeM3nmBpnq9xy3\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n }\n }, {\n \"name\": \"blocksscan\",\n \"url\": \"https://xdc.blocksscan.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmPzVFs16GwaD8LAcGFLCNXzEK8BHFKNXeM3nmBpnq9xy3\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmeRq7pabiJE2n1xU3Y5Mb4TZSX9kQ74x7a3P2Z4PqcMRX\",\n \"width\": 1450,\n \"height\": 1450,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://xinfin.org\",\n \"name\": \"XDC Network\",\n \"nativeCurrency\": {\n \"name\": \"XinFin\",\n \"symbol\": \"XDC\",\n \"decimals\": 18\n },\n \"networkId\": 50,\n \"rpc\": [\"https://xdc-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://50.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://erpc.xinfin.network\", \"https://rpc.xinfin.network\", \"https://rpc1.xinfin.network\", \"https://rpc-xdc.icecreamswap.com\"],\n \"shortName\": \"xdc\",\n \"slug\": \"xdc-network\",\n \"testnet\": false\n};\n\nvar c51 = {\n \"chain\": \"XDC\",\n \"chainId\": 51,\n \"explorers\": [{\n \"name\": \"xdcscan\",\n \"url\": \"https://apothem.xinfinscan.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmPzVFs16GwaD8LAcGFLCNXzEK8BHFKNXeM3nmBpnq9xy3\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n }\n }, {\n \"name\": \"blocksscan\",\n \"url\": \"https://apothem.blocksscan.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmPzVFs16GwaD8LAcGFLCNXzEK8BHFKNXeM3nmBpnq9xy3\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucet.apothem.network\"],\n \"icon\": {\n \"url\": \"ipfs://QmeRq7pabiJE2n1xU3Y5Mb4TZSX9kQ74x7a3P2Z4PqcMRX\",\n \"width\": 1450,\n \"height\": 1450,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://xinfin.org\",\n \"name\": \"XDC Apothem Network\",\n \"nativeCurrency\": {\n \"name\": \"XinFin\",\n \"symbol\": \"TXDC\",\n \"decimals\": 18\n },\n \"networkId\": 51,\n \"rpc\": [\"https://xdc-apothem-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://51.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.apothem.network\", \"https://erpc.apothem.network\"],\n \"shortName\": \"txdc\",\n \"slug\": \"xdc-apothem-network\",\n \"testnet\": false\n};\n\nvar c52 = {\n \"chain\": \"CSC\",\n \"chainId\": 52,\n \"explorers\": [{\n \"name\": \"coinexscan\",\n \"url\": \"https://www.coinex.net\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.coinex.org/\",\n \"name\": \"CoinEx Smart Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"CoinEx Chain Native Token\",\n \"symbol\": \"cet\",\n \"decimals\": 18\n },\n \"networkId\": 52,\n \"rpc\": [\"https://coinex-smart-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://52.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.coinex.net\"],\n \"shortName\": \"cet\",\n \"slug\": \"coinex-smart-chain\",\n \"testnet\": false\n};\n\nvar c53 = {\n \"chain\": \"CSC\",\n \"chainId\": 53,\n \"explorers\": [{\n \"name\": \"coinexscan\",\n \"url\": \"https://testnet.coinex.net\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.coinex.org/\",\n \"name\": \"CoinEx Smart Chain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"CoinEx Chain Test Native Token\",\n \"symbol\": \"cett\",\n \"decimals\": 18\n },\n \"networkId\": 53,\n \"rpc\": [\"https://coinex-smart-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://53.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-rpc.coinex.net/\"],\n \"shortName\": \"tcet\",\n \"slip44\": 1,\n \"slug\": \"coinex-smart-chain-testnet\",\n \"testnet\": true\n};\n\nvar c54 = {\n \"chain\": \"OPENPIECE\",\n \"chainId\": 54,\n \"explorers\": [{\n \"name\": \"Belly Scan\",\n \"url\": \"https://bellyscan.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmVTahJkdSH3HPYsJMK2GmqfWZjLyxE7cXy1aHEnHU3vp2\",\n \"width\": 250,\n \"height\": 250,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://cryptopiece.online\",\n \"name\": \"Openpiece Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Belly\",\n \"symbol\": \"BELLY\",\n \"decimals\": 18\n },\n \"networkId\": 54,\n \"rpc\": [\"https://openpiece.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://54.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.openpiece.io\"],\n \"shortName\": \"OP\",\n \"slug\": \"openpiece\",\n \"testnet\": false\n};\n\nvar c55 = {\n \"chain\": \"ZYX\",\n \"chainId\": 55,\n \"explorers\": [{\n \"name\": \"zyxscan\",\n \"url\": \"https://zyxscan.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://zyx.network/\",\n \"name\": \"Zyx Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Zyx\",\n \"symbol\": \"ZYX\",\n \"decimals\": 18\n },\n \"networkId\": 55,\n \"rpc\": [\"https://zyx.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://55.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-1.zyx.network/\", \"https://rpc-2.zyx.network/\", \"https://rpc-3.zyx.network/\", \"https://rpc-4.zyx.network/\", \"https://rpc-5.zyx.network/\", \"https://rpc-6.zyx.network/\"],\n \"shortName\": \"ZYX\",\n \"slug\": \"zyx\",\n \"testnet\": false\n};\n\nvar c56 = {\n \"chain\": \"BSC\",\n \"chainId\": 56,\n \"explorers\": [{\n \"name\": \"bscscan\",\n \"url\": \"https://bscscan.com\",\n \"standard\": \"EIP3091\"\n }, {\n \"name\": \"dexguru\",\n \"url\": \"https://bnb.dex.guru\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmRaASKRSjQ5btoUQ2rNTJNxKtx2a2RoewgA7DMQkLVEne\",\n \"width\": 83,\n \"height\": 82,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmcxZHpyJa8T4i63xqjPYrZ6tKrt55tZJpbXcjSDKuKaf9/binance-coin/512.png\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.bnbchain.org/en\",\n \"name\": \"BNB Smart Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"BNB Chain Native Token\",\n \"symbol\": \"BNB\",\n \"decimals\": 18\n },\n \"networkId\": 56,\n \"redFlags\": [],\n \"rpc\": [\"https://binance.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://56.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://bsc-dataseed1.bnbchain.org\", \"https://bsc-dataseed2.bnbchain.org\", \"https://bsc-dataseed3.bnbchain.org\", \"https://bsc-dataseed4.bnbchain.org\", \"https://bsc-dataseed1.defibit.io\", \"https://bsc-dataseed2.defibit.io\", \"https://bsc-dataseed3.defibit.io\", \"https://bsc-dataseed4.defibit.io\", \"https://bsc-dataseed1.ninicoin.io\", \"https://bsc-dataseed2.ninicoin.io\", \"https://bsc-dataseed3.ninicoin.io\", \"https://bsc-dataseed4.ninicoin.io\", \"https://bsc.publicnode.com\", \"wss://bsc.publicnode.com\", \"wss://bsc-ws-node.nariox.org\"],\n \"shortName\": \"bnb\",\n \"slip44\": 714,\n \"slug\": \"binance\",\n \"testnet\": false\n};\n\nvar c57 = {\n \"chain\": \"SYS\",\n \"chainId\": 57,\n \"explorers\": [{\n \"name\": \"Syscoin Block Explorer\",\n \"url\": \"https://explorer.syscoin.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.syscoin.org\"],\n \"infoURL\": \"https://www.syscoin.org\",\n \"name\": \"Syscoin Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Syscoin\",\n \"symbol\": \"SYS\",\n \"decimals\": 18\n },\n \"networkId\": 57,\n \"rpc\": [\"https://syscoin.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://57.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.syscoin.org\", \"https://rpc.ankr.com/syscoin/${ANKR_API_KEY}\", \"https://syscoin.public-rpc.com\", \"wss://rpc.syscoin.org/wss\", \"https://syscoin-evm.publicnode.com\", \"wss://syscoin-evm.publicnode.com\"],\n \"shortName\": \"sys\",\n \"slug\": \"syscoin\",\n \"testnet\": false\n};\n\nvar c58 = {\n \"chain\": \"Ontology\",\n \"chainId\": 58,\n \"explorers\": [{\n \"name\": \"explorer\",\n \"url\": \"https://explorer.ont.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreigmvn6spvbiirtutowpq6jmetevbxoof5plzixjoerbeswy4htfb4\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://ont.io/\",\n \"name\": \"Ontology Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"ONG\",\n \"symbol\": \"ONG\",\n \"decimals\": 18\n },\n \"networkId\": 58,\n \"rpc\": [\"https://ontology.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://58.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"http://dappnode1.ont.io:20339\", \"http://dappnode2.ont.io:20339\", \"http://dappnode3.ont.io:20339\", \"http://dappnode4.ont.io:20339\", \"https://dappnode1.ont.io:10339\", \"https://dappnode2.ont.io:10339\", \"https://dappnode3.ont.io:10339\", \"https://dappnode4.ont.io:10339\"],\n \"shortName\": \"OntologyMainnet\",\n \"slug\": \"ontology\",\n \"testnet\": false\n};\n\nvar c59 = {\n \"chain\": \"EOS\",\n \"chainId\": 59,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://eosargentina.io\",\n \"name\": \"EOS EVM Legacy\",\n \"nativeCurrency\": {\n \"name\": \"EOS\",\n \"symbol\": \"EOS\",\n \"decimals\": 18\n },\n \"networkId\": 59,\n \"rpc\": [\"https://eos-evm-legacy.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://59.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.eosargentina.io\"],\n \"shortName\": \"eos-legacy\",\n \"slug\": \"eos-evm-legacy\",\n \"status\": \"deprecated\",\n \"testnet\": false\n};\n\nvar c60 = {\n \"chain\": \"GO\",\n \"chainId\": 60,\n \"explorers\": [{\n \"name\": \"GoChain Explorer\",\n \"url\": \"https://explorer.gochain.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://gochain.io\",\n \"name\": \"GoChain\",\n \"nativeCurrency\": {\n \"name\": \"GoChain Ether\",\n \"symbol\": \"GO\",\n \"decimals\": 18\n },\n \"networkId\": 60,\n \"rpc\": [\"https://gochain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://60.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.gochain.io\"],\n \"shortName\": \"go\",\n \"slip44\": 6060,\n \"slug\": \"gochain\",\n \"testnet\": false\n};\n\nvar c61 = {\n \"chain\": \"ETC\",\n \"chainId\": 61,\n \"explorers\": [{\n \"name\": \"etcnetworkinfo-blockscout-ethereum-classic\",\n \"url\": \"https://explorer-blockscout.etc-network.info\",\n \"standard\": \"none\"\n }, {\n \"name\": \"etcnetworkinfo-alethio-ethereum-classic\",\n \"url\": \"https://explorer-alethio.etc-network.info\",\n \"standard\": \"none\"\n }, {\n \"name\": \"etcnetworkinfo-expedition-ethereum-classic\",\n \"url\": \"https://explorer-expedition.etc-network.info\",\n \"standard\": \"none\"\n }, {\n \"name\": \"hebeblock-ethereum-classic\",\n \"url\": \"https://etcerscan.com\",\n \"standard\": \"EIP3091\"\n }, {\n \"name\": \"oklink-ethereum-classic\",\n \"url\": \"https://www.oklink.com/etc\",\n \"standard\": \"EIP3091\"\n }, {\n \"name\": \"tokenview-ethereum-classic\",\n \"url\": \"https://etc.tokenview.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }],\n \"icon\": {\n \"url\": \"ipfs://Qme7PT7gidTzRuf3T2JdxQ64JeZPgFH7yNBB8mYoMPbpTe\",\n \"width\": 200,\n \"height\": 200,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://ethereumclassic.org\",\n \"name\": \"Ethereum Classic\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETC\",\n \"decimals\": 18\n },\n \"networkId\": 1,\n \"rpc\": [\"https://ethereum-classic.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://61.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://etc.rivet.link\", \"https://besu-at.etc-network.info\", \"https://besu-de.etc-network.info\", \"https://geth-at.etc-network.info\", \"https://geth-de.etc-network.info\", \"https://etc.etcdesktop.com\", \"https://rpc.etcinscribe.com\", \"https://etc.mytokenpocket.vip\"],\n \"shortName\": \"etc\",\n \"slip44\": 61,\n \"slug\": \"ethereum-classic\",\n \"status\": \"active\",\n \"testnet\": false,\n \"title\": \"Ethereum Classic Mainnet\"\n};\n\nvar c62 = {\n \"chain\": \"ETC\",\n \"chainId\": 62,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmawMDPsaj3kBTZErCYQ3tshv5RrMAN3smWNs72m943Fyj\",\n \"width\": 200,\n \"height\": 200,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://ethereumclassic.org/development/testnets\",\n \"name\": \"Morden Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Morden Ether\",\n \"symbol\": \"TETC\",\n \"decimals\": 18\n },\n \"networkId\": 2,\n \"rpc\": [],\n \"shortName\": \"tetc\",\n \"slip44\": 1,\n \"slug\": \"morden-testnet\",\n \"status\": \"deprecated\",\n \"testnet\": true,\n \"title\": \"Ethereum Classic Morden Testnet\"\n};\n\nvar c63 = {\n \"chain\": \"ETC\",\n \"chainId\": 63,\n \"explorers\": [{\n \"name\": \"blockscout-mordor\",\n \"url\": \"https://etc-mordor.blockscout.com\",\n \"standard\": \"EIP3091\"\n }, {\n \"name\": \"etcnetworkinfo-expedition-mordor\",\n \"url\": \"https://explorer-expedition.etc-network.info/?network=Ethereum+Classic+at+etc-network.info+GETH+Mordor\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://easy.hebeswap.com/#/faucet\", \"https://faucet.mordortest.net\"],\n \"features\": [{\n \"name\": \"EIP155\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmawMDPsaj3kBTZErCYQ3tshv5RrMAN3smWNs72m943Fyj\",\n \"width\": 200,\n \"height\": 200,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://ethereumclassic.org/development/testnets\",\n \"name\": \"Mordor Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Mordor Ether\",\n \"symbol\": \"METC\",\n \"decimals\": 18\n },\n \"networkId\": 7,\n \"rpc\": [\"https://mordor-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://63.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.mordor.etccooperative.org\", \"https://geth-mordor.etc-network.info\"],\n \"shortName\": \"metc\",\n \"slip44\": 1,\n \"slug\": \"mordor-testnet\",\n \"status\": \"active\",\n \"testnet\": true,\n \"title\": \"Ethereum Classic Mordor Testnet\"\n};\n\nvar c64 = {\n \"chain\": \"ELLA\",\n \"chainId\": 64,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://ellaism.org\",\n \"name\": \"Ellaism\",\n \"nativeCurrency\": {\n \"name\": \"Ellaism Ether\",\n \"symbol\": \"ELLA\",\n \"decimals\": 18\n },\n \"networkId\": 64,\n \"rpc\": [\"https://ellaism.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://64.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://jsonrpc.ellaism.org\"],\n \"shortName\": \"ellaism\",\n \"slip44\": 163,\n \"slug\": \"ellaism\",\n \"testnet\": false\n};\n\nvar c65 = {\n \"chain\": \"okexchain\",\n \"chainId\": 65,\n \"explorers\": [{\n \"name\": \"OKLink\",\n \"url\": \"https://www.oklink.com/okexchain-test\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://www.okex.com/drawdex\"],\n \"infoURL\": \"https://www.okex.com/okexchain\",\n \"name\": \"OKExChain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"OKExChain Global Utility Token in testnet\",\n \"symbol\": \"OKT\",\n \"decimals\": 18\n },\n \"networkId\": 65,\n \"rpc\": [\"https://okexchain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://65.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://exchaintestrpc.okex.org\"],\n \"shortName\": \"tokt\",\n \"slip44\": 1,\n \"slug\": \"okexchain-testnet\",\n \"testnet\": true\n};\n\nvar c66 = {\n \"chain\": \"okxchain\",\n \"chainId\": 66,\n \"explorers\": [{\n \"name\": \"OKLink\",\n \"url\": \"https://www.oklink.com/en/okc\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.okex.com/okc\",\n \"name\": \"OKXChain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"OKXChain Global Utility Token\",\n \"symbol\": \"OKT\",\n \"decimals\": 18\n },\n \"networkId\": 66,\n \"rpc\": [\"https://okxchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://66.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://exchainrpc.okex.org\", \"https://okc-mainnet.gateway.pokt.network/v1/lb/6275309bea1b320039c893ff\"],\n \"shortName\": \"okt\",\n \"slug\": \"okxchain\",\n \"testnet\": false\n};\n\nvar c67 = {\n \"chain\": \"DBM\",\n \"chainId\": 67,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"http://test.dbmbp.com\",\n \"name\": \"DBChain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"DBChain Testnet\",\n \"symbol\": \"DBM\",\n \"decimals\": 18\n },\n \"networkId\": 67,\n \"rpc\": [\"https://dbchain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://67.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"http://test-rpc.dbmbp.com\"],\n \"shortName\": \"dbm\",\n \"slip44\": 1,\n \"slug\": \"dbchain-testnet\",\n \"testnet\": true\n};\n\nvar c68 = {\n \"chain\": \"SOTER\",\n \"chainId\": 68,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://www.soterone.com\",\n \"name\": \"SoterOne Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"SoterOne Mainnet Ether\",\n \"symbol\": \"SOTER\",\n \"decimals\": 18\n },\n \"networkId\": 68,\n \"rpc\": [\"https://soterone.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://68.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.soter.one\"],\n \"shortName\": \"SO1\",\n \"slug\": \"soterone\",\n \"testnet\": false\n};\n\nvar c69 = {\n \"chain\": \"ETH\",\n \"chainId\": 69,\n \"explorers\": [{\n \"name\": \"etherscan\",\n \"url\": \"https://kovan-optimistic.etherscan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"http://fauceth.komputing.org?chain=69&address=${ADDRESS}\"],\n \"infoURL\": \"https://optimism.io\",\n \"name\": \"Optimism Kovan\",\n \"nativeCurrency\": {\n \"name\": \"Kovan Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 69,\n \"rpc\": [\"https://optimism-kovan.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://69.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://kovan.optimism.io/\"],\n \"shortName\": \"okov\",\n \"slip44\": 1,\n \"slug\": \"optimism-kovan\",\n \"testnet\": true,\n \"title\": \"Optimism Testnet Kovan\"\n};\n\nvar c70 = {\n \"chain\": \"HSC\",\n \"chainId\": 70,\n \"explorers\": [{\n \"name\": \"hooscan\",\n \"url\": \"https://www.hooscan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.hoosmartchain.com\",\n \"name\": \"Hoo Smart Chain\",\n \"nativeCurrency\": {\n \"name\": \"Hoo Smart Chain Native Token\",\n \"symbol\": \"HOO\",\n \"decimals\": 18\n },\n \"networkId\": 70,\n \"rpc\": [\"https://hoo-smart-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://70.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://http-mainnet.hoosmartchain.com\", \"https://http-mainnet2.hoosmartchain.com\", \"wss://ws-mainnet.hoosmartchain.com\", \"wss://ws-mainnet2.hoosmartchain.com\"],\n \"shortName\": \"hsc\",\n \"slip44\": 1170,\n \"slug\": \"hoo-smart-chain\",\n \"testnet\": false\n};\n\nvar c71 = {\n \"chain\": \"Conflux\",\n \"chainId\": 71,\n \"explorers\": [{\n \"name\": \"Conflux Scan\",\n \"url\": \"https://evmtestnet.confluxscan.net\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://faucet.confluxnetwork.org\"],\n \"icon\": {\n \"url\": \"ipfs://bafkreifj7n24u2dslfijfihwqvpdeigt5aj3k3sxv6s35lv75sxsfr3ojy\",\n \"width\": 460,\n \"height\": 576,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://confluxnetwork.org\",\n \"name\": \"Conflux eSpace (Testnet)\",\n \"nativeCurrency\": {\n \"name\": \"CFX\",\n \"symbol\": \"CFX\",\n \"decimals\": 18\n },\n \"networkId\": 71,\n \"rpc\": [\"https://conflux-espace-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://71.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://evmtestnet.confluxrpc.com\"],\n \"shortName\": \"cfxtest\",\n \"slug\": \"conflux-espace-testnet\",\n \"testnet\": true\n};\n\nvar c72 = {\n \"chain\": \"DxChain\",\n \"chainId\": 72,\n \"explorers\": [],\n \"faucets\": [\"https://faucet.dxscan.io\"],\n \"infoURL\": \"https://testnet.dxscan.io/\",\n \"name\": \"DxChain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"DxChain Testnet\",\n \"symbol\": \"DX\",\n \"decimals\": 18\n },\n \"networkId\": 72,\n \"rpc\": [\"https://dxchain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://72.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-http.dxchain.com\"],\n \"shortName\": \"dxc\",\n \"slip44\": 1,\n \"slug\": \"dxchain-testnet\",\n \"testnet\": true\n};\n\nvar c73 = {\n \"chain\": \"FNCY\",\n \"chainId\": 73,\n \"explorers\": [{\n \"name\": \"fncy scan\",\n \"url\": \"https://fncyscan.fncy.world\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmfXCh6UnaEHn3Evz7RFJ3p2ggJBRm9hunDHegeoquGuhD\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucet-testnet.fncy.world\"],\n \"icon\": {\n \"url\": \"ipfs://QmfXCh6UnaEHn3Evz7RFJ3p2ggJBRm9hunDHegeoquGuhD\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://fncyscan.fncy.world\",\n \"name\": \"FNCY\",\n \"nativeCurrency\": {\n \"name\": \"FNCY\",\n \"symbol\": \"FNCY\",\n \"decimals\": 18\n },\n \"networkId\": 73,\n \"rpc\": [\"https://fncy.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://73.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://fncy-seed1.fncy.world\"],\n \"shortName\": \"FNCY\",\n \"slug\": \"fncy\",\n \"testnet\": true\n};\n\nvar c74 = {\n \"chain\": \"IDChain\",\n \"chainId\": 74,\n \"explorers\": [{\n \"name\": \"explorer\",\n \"url\": \"https://explorer.idchain.one\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmZVwsY6HPXScKqZCA9SWNrr4jrQAHkPhVhMWi6Fj1DsrJ\",\n \"width\": 162,\n \"height\": 129,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://idchain.one/begin/\",\n \"name\": \"IDChain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"EIDI\",\n \"symbol\": \"EIDI\",\n \"decimals\": 18\n },\n \"networkId\": 74,\n \"rpc\": [\"https://idchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://74.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://idchain.one/rpc/\", \"wss://idchain.one/ws/\"],\n \"shortName\": \"idchain\",\n \"slug\": \"idchain\",\n \"testnet\": false\n};\n\nvar c75 = {\n \"chain\": \"DSC\",\n \"chainId\": 75,\n \"explorers\": [{\n \"name\": \"DSC Explorer Mainnet\",\n \"url\": \"https://explorer.decimalchain.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmSgzwKnJJjys3Uq2aVVdwJ3NffLj3CXMVCph9uByTBegc\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmSgzwKnJJjys3Uq2aVVdwJ3NffLj3CXMVCph9uByTBegc\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://decimalchain.com\",\n \"name\": \"Decimal Smart Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Decimal\",\n \"symbol\": \"DEL\",\n \"decimals\": 18\n },\n \"networkId\": 75,\n \"rpc\": [\"https://decimal-smart-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://75.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://node.decimalchain.com/web3/\", \"https://node1-mainnet.decimalchain.com/web3/\", \"https://node2-mainnet.decimalchain.com/web3/\", \"https://node3-mainnet.decimalchain.com/web3/\", \"https://node4-mainnet.decimalchain.com/web3/\"],\n \"shortName\": \"DSC\",\n \"slug\": \"decimal-smart-chain\",\n \"testnet\": false\n};\n\nvar c76 = {\n \"chain\": \"MIX\",\n \"chainId\": 76,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://mix-blockchain.org\",\n \"name\": \"Mix\",\n \"nativeCurrency\": {\n \"name\": \"Mix Ether\",\n \"symbol\": \"MIX\",\n \"decimals\": 18\n },\n \"networkId\": 76,\n \"rpc\": [\"https://mix.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://76.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc2.mix-blockchain.org:8647\"],\n \"shortName\": \"mix\",\n \"slip44\": 76,\n \"slug\": \"mix\",\n \"testnet\": false\n};\n\nvar c77 = {\n \"chain\": \"POA\",\n \"chainId\": 77,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://blockscout.com/poa/sokol\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"infoURL\": \"https://poa.network\",\n \"name\": \"POA Network Sokol\",\n \"nativeCurrency\": {\n \"name\": \"POA Sokol Ether\",\n \"symbol\": \"SPOA\",\n \"decimals\": 18\n },\n \"networkId\": 77,\n \"rpc\": [\"https://poa-network-sokol.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://77.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://sokol.poa.network\", \"wss://sokol.poa.network/wss\", \"ws://sokol.poa.network:8546\"],\n \"shortName\": \"spoa\",\n \"slug\": \"poa-network-sokol\",\n \"testnet\": false\n};\n\nvar c78 = {\n \"chain\": \"PC\",\n \"chainId\": 78,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://primusmoney.com\",\n \"name\": \"PrimusChain mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Primus Ether\",\n \"symbol\": \"PETH\",\n \"decimals\": 18\n },\n \"networkId\": 78,\n \"rpc\": [\"https://primuschain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://78.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://ethnode.primusmoney.com/mainnet\"],\n \"shortName\": \"primuschain\",\n \"slug\": \"primuschain\",\n \"testnet\": false\n};\n\nvar c79 = {\n \"chain\": \"Zenith\",\n \"chainId\": 79,\n \"explorers\": [{\n \"name\": \"zenith scan\",\n \"url\": \"https://scan.zenithchain.co\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.zenithchain.co/\",\n \"name\": \"Zenith Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"ZENITH\",\n \"symbol\": \"ZENITH\",\n \"decimals\": 18\n },\n \"networkId\": 79,\n \"rpc\": [\"https://zenith.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://79.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://dataserver-us-1.zenithchain.co/\", \"https://dataserver-asia-3.zenithchain.co/\", \"https://dataserver-asia-4.zenithchain.co/\", \"https://dataserver-asia-2.zenithchain.co/\", \"https://dataserver-asia-5.zenithchain.co/\", \"https://dataserver-asia-6.zenithchain.co/\", \"https://dataserver-asia-7.zenithchain.co/\"],\n \"shortName\": \"zenith\",\n \"slug\": \"zenith\",\n \"testnet\": false\n};\n\nvar c80 = {\n \"chain\": \"GeneChain\",\n \"chainId\": 80,\n \"explorers\": [{\n \"name\": \"GeneChain Scan\",\n \"url\": \"https://scan.genechain.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://scan.genechain.io/\",\n \"name\": \"GeneChain\",\n \"nativeCurrency\": {\n \"name\": \"RNA\",\n \"symbol\": \"RNA\",\n \"decimals\": 18\n },\n \"networkId\": 80,\n \"rpc\": [\"https://genechain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://80.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.genechain.io\"],\n \"shortName\": \"GeneChain\",\n \"slug\": \"genechain\",\n \"testnet\": false\n};\n\nvar c81 = {\n \"chain\": \"JOC\",\n \"chainId\": 81,\n \"explorers\": [{\n \"name\": \"Block Explorer\",\n \"url\": \"https://explorer.japanopenchain.org\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://bafkreidhsiuqrct42bel76zhi3rx35k4lnk6aqgde27nvvxcz563ttfefy\",\n \"width\": 2000,\n \"height\": 2000,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreidhsiuqrct42bel76zhi3rx35k4lnk6aqgde27nvvxcz563ttfefy\",\n \"width\": 2000,\n \"height\": 2000,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.japanopenchain.org/\",\n \"name\": \"Japan Open Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Japan Open Chain Token\",\n \"symbol\": \"JOC\",\n \"decimals\": 18\n },\n \"networkId\": 81,\n \"redFlags\": [\"reusedChainId\"],\n \"rpc\": [\"https://japan-open-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://81.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-1.japanopenchain.org:8545\", \"https://rpc-2.japanopenchain.org:8545\"],\n \"shortName\": \"joc\",\n \"slug\": \"japan-open-chain\",\n \"testnet\": false\n};\n\nvar c82 = {\n \"chain\": \"METER\",\n \"chainId\": 82,\n \"explorers\": [{\n \"name\": \"Meter Mainnet Scan\",\n \"url\": \"https://scan.meter.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.meter.io\"],\n \"infoURL\": \"https://www.meter.io\",\n \"name\": \"Meter Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Meter\",\n \"symbol\": \"MTR\",\n \"decimals\": 18\n },\n \"networkId\": 82,\n \"rpc\": [\"https://meter.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://82.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.meter.io\"],\n \"shortName\": \"Meter\",\n \"slug\": \"meter\",\n \"testnet\": false\n};\n\nvar c83 = {\n \"chain\": \"METER Testnet\",\n \"chainId\": 83,\n \"explorers\": [{\n \"name\": \"Meter Testnet Scan\",\n \"url\": \"https://scan-warringstakes.meter.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet-warringstakes.meter.io\"],\n \"infoURL\": \"https://www.meter.io\",\n \"name\": \"Meter Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Meter\",\n \"symbol\": \"MTR\",\n \"decimals\": 18\n },\n \"networkId\": 83,\n \"rpc\": [\"https://meter-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://83.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpctest.meter.io\"],\n \"shortName\": \"MeterTest\",\n \"slip44\": 1,\n \"slug\": \"meter-testnet\",\n \"testnet\": true\n};\n\nvar c84 = {\n \"chain\": \"LNQ\",\n \"chainId\": 84,\n \"explorers\": [{\n \"name\": \"Linqto Devnet Explorer\",\n \"url\": \"https://explorer.linqto-dev.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://linqto.com\",\n \"name\": \"Linqto Devnet\",\n \"nativeCurrency\": {\n \"name\": \"XRP\",\n \"symbol\": \"XRP\",\n \"decimals\": 18\n },\n \"networkId\": 84,\n \"rpc\": [\"https://linqto-devnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://84.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://linqto-dev.com\"],\n \"shortName\": \"linqto-devnet\",\n \"slug\": \"linqto-devnet\",\n \"testnet\": false\n};\n\nvar c85 = {\n \"chain\": \"GTTEST\",\n \"chainId\": 85,\n \"explorers\": [{\n \"name\": \"GateScan\",\n \"url\": \"https://www.gatescan.org/testnet\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://www.gatescan.org/testnet/faucet\"],\n \"infoURL\": \"https://www.gatechain.io\",\n \"name\": \"GateChain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"GateToken\",\n \"symbol\": \"GT\",\n \"decimals\": 18\n },\n \"networkId\": 85,\n \"rpc\": [\"https://gatechain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://85.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.gatenode.cc\"],\n \"shortName\": \"gttest\",\n \"slip44\": 1,\n \"slug\": \"gatechain-testnet\",\n \"testnet\": true\n};\n\nvar c86 = {\n \"chain\": \"GT\",\n \"chainId\": 86,\n \"explorers\": [{\n \"name\": \"GateScan\",\n \"url\": \"https://www.gatescan.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://www.gatescan.org/faucet\"],\n \"infoURL\": \"https://www.gatechain.io\",\n \"name\": \"GateChain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"GateToken\",\n \"symbol\": \"GT\",\n \"decimals\": 18\n },\n \"networkId\": 86,\n \"rpc\": [\"https://gatechain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://86.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://evm.gatenode.cc\"],\n \"shortName\": \"gt\",\n \"slug\": \"gatechain\",\n \"testnet\": false\n};\n\nvar c87 = {\n \"chain\": \"NNW\",\n \"chainId\": 87,\n \"explorers\": [{\n \"name\": \"novanetwork\",\n \"url\": \"https://explorer.novanetwork.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmTTamJ55YGQwMboq4aqf3JjTEy5WDtjo4GBRQ5VdsWA6U\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://novanetwork.io\",\n \"name\": \"Nova Network\",\n \"nativeCurrency\": {\n \"name\": \"Supernova\",\n \"symbol\": \"SNT\",\n \"decimals\": 18\n },\n \"networkId\": 87,\n \"rpc\": [\"https://nova-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://87.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://connect.novanetwork.io\", \"https://0x57.redjackstudio.com\", \"https://rpc.novanetwork.io:9070\"],\n \"shortName\": \"nnw\",\n \"slug\": \"nova-network\",\n \"testnet\": false\n};\n\nvar c88 = {\n \"chain\": \"TOMO\",\n \"chainId\": 88,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://tomochain.com\",\n \"name\": \"TomoChain\",\n \"nativeCurrency\": {\n \"name\": \"TomoChain\",\n \"symbol\": \"TOMO\",\n \"decimals\": 18\n },\n \"networkId\": 88,\n \"rpc\": [\"https://tomochain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://88.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.tomochain.com\"],\n \"shortName\": \"tomo\",\n \"slip44\": 889,\n \"slug\": \"tomochain\",\n \"testnet\": false\n};\n\nvar c89 = {\n \"chain\": \"TOMO\",\n \"chainId\": 89,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://tomochain.com\",\n \"name\": \"TomoChain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"TomoChain\",\n \"symbol\": \"TOMO\",\n \"decimals\": 18\n },\n \"networkId\": 89,\n \"rpc\": [\"https://tomochain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://89.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.testnet.tomochain.com\"],\n \"shortName\": \"tomot\",\n \"slip44\": 1,\n \"slug\": \"tomochain-testnet\",\n \"testnet\": true\n};\n\nvar c90 = {\n \"chain\": \"GAR\",\n \"chainId\": 90,\n \"explorers\": [{\n \"name\": \"explorer\",\n \"url\": \"https://explorer.garizon.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmW3WRyuLZ95K8hvV2QN6rP5yWY98sSzWyVUxD2eUjXGrc\",\n \"width\": 1024,\n \"height\": 613,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmW3WRyuLZ95K8hvV2QN6rP5yWY98sSzWyVUxD2eUjXGrc\",\n \"width\": 1024,\n \"height\": 613,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://garizon.com\",\n \"name\": \"Garizon Stage0\",\n \"nativeCurrency\": {\n \"name\": \"Garizon\",\n \"symbol\": \"GAR\",\n \"decimals\": 18\n },\n \"networkId\": 90,\n \"rpc\": [\"https://garizon-stage0.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://90.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://s0.garizon.net/rpc\"],\n \"shortName\": \"gar-s0\",\n \"slug\": \"garizon-stage0\",\n \"testnet\": false\n};\n\nvar c91 = {\n \"chain\": \"GAR\",\n \"chainId\": 91,\n \"explorers\": [{\n \"name\": \"explorer\",\n \"url\": \"https://explorer.garizon.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmW3WRyuLZ95K8hvV2QN6rP5yWY98sSzWyVUxD2eUjXGrc\",\n \"width\": 1024,\n \"height\": 613,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmW3WRyuLZ95K8hvV2QN6rP5yWY98sSzWyVUxD2eUjXGrc\",\n \"width\": 1024,\n \"height\": 613,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://garizon.com\",\n \"name\": \"Garizon Stage1\",\n \"nativeCurrency\": {\n \"name\": \"Garizon\",\n \"symbol\": \"GAR\",\n \"decimals\": 18\n },\n \"networkId\": 91,\n \"parent\": {\n \"type\": \"shard\",\n \"chain\": \"eip155-90\"\n },\n \"rpc\": [\"https://garizon-stage1.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://91.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://s1.garizon.net/rpc\"],\n \"shortName\": \"gar-s1\",\n \"slug\": \"garizon-stage1\",\n \"testnet\": false\n};\n\nvar c92 = {\n \"chain\": \"GAR\",\n \"chainId\": 92,\n \"explorers\": [{\n \"name\": \"explorer\",\n \"url\": \"https://explorer.garizon.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmW3WRyuLZ95K8hvV2QN6rP5yWY98sSzWyVUxD2eUjXGrc\",\n \"width\": 1024,\n \"height\": 613,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmW3WRyuLZ95K8hvV2QN6rP5yWY98sSzWyVUxD2eUjXGrc\",\n \"width\": 1024,\n \"height\": 613,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://garizon.com\",\n \"name\": \"Garizon Stage2\",\n \"nativeCurrency\": {\n \"name\": \"Garizon\",\n \"symbol\": \"GAR\",\n \"decimals\": 18\n },\n \"networkId\": 92,\n \"parent\": {\n \"type\": \"shard\",\n \"chain\": \"eip155-90\"\n },\n \"rpc\": [\"https://garizon-stage2.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://92.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://s2.garizon.net/rpc\"],\n \"shortName\": \"gar-s2\",\n \"slug\": \"garizon-stage2\",\n \"testnet\": false\n};\n\nvar c93 = {\n \"chain\": \"GAR\",\n \"chainId\": 93,\n \"explorers\": [{\n \"name\": \"explorer\",\n \"url\": \"https://explorer.garizon.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmW3WRyuLZ95K8hvV2QN6rP5yWY98sSzWyVUxD2eUjXGrc\",\n \"width\": 1024,\n \"height\": 613,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmW3WRyuLZ95K8hvV2QN6rP5yWY98sSzWyVUxD2eUjXGrc\",\n \"width\": 1024,\n \"height\": 613,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://garizon.com\",\n \"name\": \"Garizon Stage3\",\n \"nativeCurrency\": {\n \"name\": \"Garizon\",\n \"symbol\": \"GAR\",\n \"decimals\": 18\n },\n \"networkId\": 93,\n \"parent\": {\n \"type\": \"shard\",\n \"chain\": \"eip155-90\"\n },\n \"rpc\": [\"https://garizon-stage3.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://93.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://s3.garizon.net/rpc\"],\n \"shortName\": \"gar-s3\",\n \"slug\": \"garizon-stage3\",\n \"testnet\": false\n};\n\nvar c94 = {\n \"chain\": \"SDLT\",\n \"chainId\": 94,\n \"explorers\": [{\n \"name\": \"SwissDLT Explorer\",\n \"url\": \"https://explorer.swissdlt.ch\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://bafkreig7x5z4j6vh2r3pugmjnob3tmlksaekhqcgsorqzvs55o6v7ehqd4\",\n \"width\": 682,\n \"height\": 512,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://bafkreig7x5z4j6vh2r3pugmjnob3tmlksaekhqcgsorqzvs55o6v7ehqd4\",\n \"width\": 682,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://bcts.ch\",\n \"name\": \"SwissDLT\",\n \"nativeCurrency\": {\n \"name\": \"BCTS\",\n \"symbol\": \"BCTS\",\n \"decimals\": 18\n },\n \"networkId\": 94,\n \"rpc\": [\"https://swissdlt.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://94.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.swissdlt.ch\"],\n \"shortName\": \"sdlt\",\n \"slug\": \"swissdlt\",\n \"testnet\": false\n};\n\nvar c95 = {\n \"chain\": \"CADL\",\n \"chainId\": 95,\n \"explorers\": [{\n \"name\": \"CamDL Block Explorer\",\n \"url\": \"https://explorer.camdl.gov.kh\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.camdl.gov.kh/\"],\n \"features\": [{\n \"name\": \"EIP155\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmW5Fpb2Ywnfqcj4ibvpbKvPv5Mo5eseWdYZnnUvLkj2Hp\",\n \"width\": 1453,\n \"height\": 1453,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://camdl.gov.kh/\",\n \"name\": \"CamDL Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"CADL\",\n \"symbol\": \"CADL\",\n \"decimals\": 18\n },\n \"networkId\": 95,\n \"redFlags\": [\"reusedChainId\"],\n \"rpc\": [\"https://camdl.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://95.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc1.camdl.gov.kh/\"],\n \"shortName\": \"camdl\",\n \"slug\": \"camdl\",\n \"status\": \"active\",\n \"testnet\": false\n};\n\nvar c96 = {\n \"chain\": \"BKC\",\n \"chainId\": 96,\n \"explorers\": [{\n \"name\": \"Bitkub Chain Explorer\",\n \"url\": \"https://bkcscan.com\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmYFYwyquipwc9gURQGcEd4iAq7pq15chQrJ3zJJe9HuFT\",\n \"width\": 1000,\n \"height\": 1000,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmYFYwyquipwc9gURQGcEd4iAq7pq15chQrJ3zJJe9HuFT\",\n \"width\": 1000,\n \"height\": 1000,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.bitkubchain.com/\",\n \"name\": \"Bitkub Chain\",\n \"nativeCurrency\": {\n \"name\": \"Bitkub Coin\",\n \"symbol\": \"KUB\",\n \"decimals\": 18\n },\n \"networkId\": 96,\n \"redFlags\": [\"reusedChainId\"],\n \"rpc\": [\"https://bitkub-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://96.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.bitkubchain.io\", \"wss://wss.bitkubchain.io\"],\n \"shortName\": \"bkc\",\n \"slug\": \"bitkub-chain\",\n \"testnet\": false\n};\n\nvar c97 = {\n \"chain\": \"BSC\",\n \"chainId\": 97,\n \"explorers\": [{\n \"name\": \"bscscan-testnet\",\n \"url\": \"https://testnet.bscscan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://testnet.bnbchain.org/faucet-smart\"],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmcxZHpyJa8T4i63xqjPYrZ6tKrt55tZJpbXcjSDKuKaf9/binance-coin/512.png\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.bnbchain.org/en\",\n \"name\": \"BNB Smart Chain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"BNB Chain Native Token\",\n \"symbol\": \"tBNB\",\n \"decimals\": 18\n },\n \"networkId\": 97,\n \"redFlags\": [],\n \"rpc\": [\"https://binance-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://97.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://data-seed-prebsc-1-s1.bnbchain.org:8545\", \"https://data-seed-prebsc-2-s1.bnbchain.org:8545\", \"https://data-seed-prebsc-1-s2.bnbchain.org:8545\", \"https://data-seed-prebsc-2-s2.bnbchain.org:8545\", \"https://data-seed-prebsc-1-s3.bnbchain.org:8545\", \"https://data-seed-prebsc-2-s3.bnbchain.org:8545\", \"https://bsc-testnet.publicnode.com\", \"wss://bsc-testnet.publicnode.com\"],\n \"shortName\": \"bnbt\",\n \"slip44\": 1,\n \"slug\": \"binance-testnet\",\n \"testnet\": true\n};\n\nvar c98 = {\n \"chain\": \"SIXNET\",\n \"chainId\": 98,\n \"explorers\": [{\n \"name\": \"SIX Scan\",\n \"url\": \"https://sixscan.io/sixnet\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmP93z696v8Hetu13peY2oEHDXq8Bj5CqaDRwpVkpnM15A\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmP93z696v8Hetu13peY2oEHDXq8Bj5CqaDRwpVkpnM15A\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://six.network/\",\n \"name\": \"Six Protocol\",\n \"nativeCurrency\": {\n \"name\": \"SIX evm token\",\n \"symbol\": \"SIX\",\n \"decimals\": 18\n },\n \"networkId\": 98,\n \"rpc\": [\"https://six-protocol.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://98.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://sixnet-rpc-evm.sixprotocol.net\"],\n \"shortName\": \"six\",\n \"slug\": \"six-protocol\",\n \"testnet\": false\n};\n\nvar c99 = {\n \"chain\": \"POA\",\n \"chainId\": 99,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://blockscout.com/poa/core\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"infoURL\": \"https://poa.network\",\n \"name\": \"POA Network Core\",\n \"nativeCurrency\": {\n \"name\": \"POA Network Core Ether\",\n \"symbol\": \"POA\",\n \"decimals\": 18\n },\n \"networkId\": 99,\n \"rpc\": [\"https://poa-network-core.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://99.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://core.poa.network\"],\n \"shortName\": \"poa\",\n \"slip44\": 178,\n \"slug\": \"poa-network-core\",\n \"testnet\": false\n};\n\nvar c100 = {\n \"chain\": \"GNO\",\n \"chainId\": 100,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://gnosis.blockscout.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }, {\n \"name\": \"gnosisscan\",\n \"url\": \"https://gnosisscan.io\",\n \"standard\": \"EIP3091\"\n }, {\n \"name\": \"dexguru\",\n \"url\": \"https://gnosis.dex.guru\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmRaASKRSjQ5btoUQ2rNTJNxKtx2a2RoewgA7DMQkLVEne\",\n \"width\": 83,\n \"height\": 82,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [\"https://gnosisfaucet.com\", \"https://stakely.io/faucet/gnosis-chain-xdai\", \"https://faucet.prussia.dev/xdai\"],\n \"icon\": {\n \"url\": \"ipfs://bafybeidk4swpgdyqmpz6shd5onvpaujvwiwthrhypufnwr6xh3dausz2dm\",\n \"width\": 1800,\n \"height\": 1800,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://docs.gnosischain.com\",\n \"name\": \"Gnosis\",\n \"nativeCurrency\": {\n \"name\": \"xDAI\",\n \"symbol\": \"XDAI\",\n \"decimals\": 18\n },\n \"networkId\": 100,\n \"rpc\": [\"https://gnosis.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://100.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.gnosischain.com\", \"https://rpc.gnosis.gateway.fm\", \"https://rpc.ankr.com/gnosis\", \"https://gnosischain-rpc.gateway.pokt.network\", \"https://gnosis-mainnet.public.blastapi.io\", \"https://gnosis.api.onfinality.io/public\", \"https://gnosis.blockpi.network/v1/rpc/public\", \"https://web3endpoints.com/gnosischain-mainnet\", \"https://gnosis.oat.farm\", \"wss://rpc.gnosischain.com/wss\", \"https://gnosis.publicnode.com\", \"wss://gnosis.publicnode.com\"],\n \"shortName\": \"gno\",\n \"slip44\": 700,\n \"slug\": \"gnosis\",\n \"testnet\": false\n};\n\nvar c101 = {\n \"chain\": \"ETI\",\n \"chainId\": 101,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://einc.io\",\n \"name\": \"EtherInc\",\n \"nativeCurrency\": {\n \"name\": \"EtherInc Ether\",\n \"symbol\": \"ETI\",\n \"decimals\": 18\n },\n \"networkId\": 1,\n \"rpc\": [\"https://etherinc.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://101.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.einc.io/jsonrpc/mainnet\"],\n \"shortName\": \"eti\",\n \"slip44\": 464,\n \"slug\": \"etherinc\",\n \"testnet\": false\n};\n\nvar c102 = {\n \"chain\": \"Web3Games\",\n \"chainId\": 102,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmUc57w3UTHiWapNW9oQb1dP57ymtdemTTbpvGkjVHBRCo\",\n \"width\": 192,\n \"height\": 192,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://web3games.org/\",\n \"name\": \"Web3Games Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Web3Games\",\n \"symbol\": \"W3G\",\n \"decimals\": 18\n },\n \"networkId\": 102,\n \"rpc\": [\"https://web3games-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://102.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-rpc-0.web3games.org/evm\", \"https://testnet-rpc-1.web3games.org/evm\", \"https://testnet-rpc-2.web3games.org/evm\"],\n \"shortName\": \"tw3g\",\n \"slip44\": 1,\n \"slug\": \"web3games-testnet\",\n \"testnet\": true\n};\n\nvar c103 = {\n \"chain\": \"Worldland\",\n \"chainId\": 103,\n \"explorers\": [{\n \"name\": \"Worldland Explorer\",\n \"url\": \"https://scan.worldland.foundation\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmYZNTfK3byhgLsTjXP8vPubVHRz2CWsBrTJxZrQmKq6JZ\",\n \"width\": 3509,\n \"height\": 2482,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://worldland.foundation\",\n \"name\": \"Worldland Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Worldland\",\n \"symbol\": \"WLC\",\n \"decimals\": 18\n },\n \"networkId\": 103,\n \"rpc\": [\"https://worldland.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://103.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://seoul.worldland.foundation\"],\n \"shortName\": \"WLC\",\n \"slug\": \"worldland\",\n \"testnet\": false\n};\n\nvar c104 = {\n \"chain\": \"tKLC\",\n \"chainId\": 104,\n \"explorers\": [{\n \"name\": \"kaibascan\",\n \"url\": \"https://kaibascan.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://bafybeihbsw3ky7yf6llpww6fabo4dicotcgwjpefscoxrppstjx25dvtea\",\n \"width\": 932,\n \"height\": 932,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafybeihbsw3ky7yf6llpww6fabo4dicotcgwjpefscoxrppstjx25dvtea\",\n \"width\": 932,\n \"height\": 932,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://kaibadefi.com\",\n \"name\": \"Kaiba Lightning Chain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Kaiba Testnet Token\",\n \"symbol\": \"tKAIBA\",\n \"decimals\": 18\n },\n \"networkId\": 104,\n \"rpc\": [\"https://kaiba-lightning-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://104.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://klc.live/\"],\n \"shortName\": \"tklc\",\n \"slip44\": 1,\n \"slug\": \"kaiba-lightning-chain-testnet\",\n \"testnet\": true\n};\n\nvar c105 = {\n \"chain\": \"Web3Games\",\n \"chainId\": 105,\n \"explorers\": [{\n \"name\": \"Web3Games Explorer\",\n \"url\": \"https://explorer-devnet.web3games.org\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmUc57w3UTHiWapNW9oQb1dP57ymtdemTTbpvGkjVHBRCo\",\n \"width\": 192,\n \"height\": 192,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://web3games.org/\",\n \"name\": \"Web3Games Devnet\",\n \"nativeCurrency\": {\n \"name\": \"Web3Games\",\n \"symbol\": \"W3G\",\n \"decimals\": 18\n },\n \"networkId\": 105,\n \"rpc\": [\"https://web3games-devnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://105.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://devnet.web3games.org/evm\"],\n \"shortName\": \"dw3g\",\n \"slug\": \"web3games-devnet\",\n \"testnet\": false\n};\n\nvar c106 = {\n \"chain\": \"Velas\",\n \"chainId\": 106,\n \"explorers\": [{\n \"name\": \"Velas Explorer\",\n \"url\": \"https://evmexplorer.velas.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmNXiCXJxEeBd7ZYGYjPSMTSdbDd2nfodLC677gUfk9ku5\",\n \"width\": 924,\n \"height\": 800,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://velas.com\",\n \"name\": \"Velas EVM Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Velas\",\n \"symbol\": \"VLX\",\n \"decimals\": 18\n },\n \"networkId\": 106,\n \"rpc\": [\"https://velas-evm.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://106.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://evmexplorer.velas.com/rpc\", \"https://explorer.velas.com/rpc\"],\n \"shortName\": \"vlx\",\n \"slug\": \"velas-evm\",\n \"testnet\": false\n};\n\nvar c107 = {\n \"chain\": \"NTN\",\n \"chainId\": 107,\n \"explorers\": [{\n \"name\": \"nebulatestnet\",\n \"url\": \"https://explorer.novanetwork.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.novanetwork.io\"],\n \"icon\": {\n \"url\": \"ipfs://QmeFaJtQqTKKuXQR7ysS53bLFPasFBcZw445cvYJ2HGeTo\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://novanetwork.io\",\n \"name\": \"Nebula Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Nebula X\",\n \"symbol\": \"NBX\",\n \"decimals\": 18\n },\n \"networkId\": 107,\n \"rpc\": [\"https://nebula-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://107.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.rpc.novanetwork.io\"],\n \"shortName\": \"ntn\",\n \"slip44\": 1,\n \"slug\": \"nebula-testnet\",\n \"testnet\": true\n};\n\nvar c108 = {\n \"chain\": \"TT\",\n \"chainId\": 108,\n \"explorers\": [{\n \"name\": \"thundercore-viewblock\",\n \"url\": \"https://viewblock.io/thundercore\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://thundercore.com\",\n \"name\": \"ThunderCore Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"ThunderCore Token\",\n \"symbol\": \"TT\",\n \"decimals\": 18\n },\n \"networkId\": 108,\n \"rpc\": [\"https://thundercore.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://108.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-rpc.thundercore.com\", \"https://mainnet-rpc.thundertoken.net\", \"https://mainnet-rpc.thundercore.io\"],\n \"shortName\": \"TT\",\n \"slip44\": 1001,\n \"slug\": \"thundercore\",\n \"testnet\": false\n};\n\nvar c109 = {\n \"chain\": \"Shibarium\",\n \"chainId\": 109,\n \"explorers\": [{\n \"name\": \"shibariumscan\",\n \"url\": \"https://www.shibariumscan.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmYNVkoZgRjDBQzJz6kog9mA2yPzQFW2oSKvhnkwuBhLQE\",\n \"width\": 2000,\n \"height\": 2000,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://shibariumecosystem.com\",\n \"name\": \"Shibarium\",\n \"nativeCurrency\": {\n \"name\": \"BONE Shibarium\",\n \"symbol\": \"BONE\",\n \"decimals\": 18\n },\n \"networkId\": 109,\n \"rpc\": [\"https://shibarium.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://109.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://www.shibrpc.com\"],\n \"shortName\": \"shibariumecosystem\",\n \"slug\": \"shibarium\",\n \"testnet\": false\n};\n\nvar c110 = {\n \"chain\": \"XPR\",\n \"chainId\": 110,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://protonchain.com\",\n \"name\": \"Proton Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Proton\",\n \"symbol\": \"XPR\",\n \"decimals\": 4\n },\n \"networkId\": 110,\n \"rpc\": [\"https://proton-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://110.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://protontestnet.greymass.com/\"],\n \"shortName\": \"xpr\",\n \"slip44\": 1,\n \"slug\": \"proton-testnet\",\n \"testnet\": true\n};\n\nvar c111 = {\n \"chain\": \"ETL\",\n \"chainId\": 111,\n \"explorers\": [],\n \"faucets\": [\"https://etherlite.org/faucets\"],\n \"icon\": {\n \"url\": \"ipfs://QmbNAai1KnBnw4SPQKgrf6vBddifPCQTg2PePry1bmmZYy\",\n \"width\": 88,\n \"height\": 88,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://etherlite.org\",\n \"name\": \"EtherLite Chain\",\n \"nativeCurrency\": {\n \"name\": \"EtherLite\",\n \"symbol\": \"ETL\",\n \"decimals\": 18\n },\n \"networkId\": 111,\n \"rpc\": [\"https://etherlite-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://111.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.etherlite.org\"],\n \"shortName\": \"ETL\",\n \"slug\": \"etherlite-chain\",\n \"testnet\": false\n};\n\nvar c112 = {\n \"chain\": \"Coinbit\",\n \"chainId\": 112,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://coinbit-explorer.chain.sbcrypto.app\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmdaQRUbAXJGfHeJ8jaB8WVh8CCmHExq8VjvAfXpLWWQEo\",\n \"width\": 760,\n \"height\": 760,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://crypto.stockbit.com/\",\n \"name\": \"Coinbit Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Gas IDR\",\n \"symbol\": \"GIDR\",\n \"decimals\": 18\n },\n \"networkId\": 112,\n \"rpc\": [\"https://coinbit.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://112.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://coinbit-rpc-mainnet.chain.sbcrypto.app\"],\n \"shortName\": \"coinbit\",\n \"slug\": \"coinbit\",\n \"testnet\": false\n};\n\nvar c113 = {\n \"chain\": \"Dehvo\",\n \"chainId\": 113,\n \"explorers\": [{\n \"name\": \"Dehvo Explorer\",\n \"url\": \"https://explorer.dehvo.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://buy.dehvo.com\"],\n \"infoURL\": \"https://dehvo.com\",\n \"name\": \"Dehvo\",\n \"nativeCurrency\": {\n \"name\": \"Dehvo\",\n \"symbol\": \"Deh\",\n \"decimals\": 18\n },\n \"networkId\": 113,\n \"rpc\": [\"https://dehvo.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://113.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://connect.dehvo.com\", \"https://rpc.dehvo.com\", \"https://rpc1.dehvo.com\", \"https://rpc2.dehvo.com\"],\n \"shortName\": \"deh\",\n \"slip44\": 714,\n \"slug\": \"dehvo\",\n \"testnet\": false\n};\n\nvar c114 = {\n \"chain\": \"FLR\",\n \"chainId\": 114,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://coston2-explorer.flare.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://coston2-faucet.towolabs.com\"],\n \"icon\": {\n \"url\": \"ipfs://QmZhAYyazEBZSHWNQb9uCkNPq2MNTLoW3mjwiD3955hUjw\",\n \"width\": 382,\n \"height\": 382,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://flare.xyz\",\n \"name\": \"Flare Testnet Coston2\",\n \"nativeCurrency\": {\n \"name\": \"Coston2 Flare\",\n \"symbol\": \"C2FLR\",\n \"decimals\": 18\n },\n \"networkId\": 114,\n \"rpc\": [\"https://flare-testnet-coston2.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://114.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://coston2-api.flare.network/ext/bc/C/rpc\"],\n \"shortName\": \"c2flr\",\n \"slip44\": 1,\n \"slug\": \"flare-testnet-coston2\",\n \"testnet\": true\n};\n\nvar c115 = {\n \"chain\": \"DeBank\",\n \"chainId\": 115,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmW9pBps8WHRRWmyXhjLZrjZJUe8F48hUu7z98bu2RVsjN\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://debank.com\",\n \"name\": \"DeBank Testnet(Deprecated)\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 115,\n \"rpc\": [],\n \"shortName\": \"debank-testnet\",\n \"slip44\": 1,\n \"slug\": \"debank-testnet-deprecated\",\n \"status\": \"deprecated\",\n \"testnet\": true\n};\n\nvar c116 = {\n \"chain\": \"DeBank\",\n \"chainId\": 116,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmW9pBps8WHRRWmyXhjLZrjZJUe8F48hUu7z98bu2RVsjN\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://debank.com\",\n \"name\": \"DeBank Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 116,\n \"rpc\": [],\n \"shortName\": \"debank-mainnet\",\n \"slug\": \"debank\",\n \"status\": \"deprecated\",\n \"testnet\": false\n};\n\nvar c117 = {\n \"chain\": \"Uptick\",\n \"chainId\": 117,\n \"explorers\": [{\n \"name\": \"Uptick Explorer\",\n \"url\": \"https://evm-explorer.uptick.network\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmRGJ6PqYHDTWuUQ6xfnK8S82NzRXiMjTnSGat9qtLuaLP\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmRGJ6PqYHDTWuUQ6xfnK8S82NzRXiMjTnSGat9qtLuaLP\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.uptick.network\",\n \"name\": \"Uptick Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Uptick\",\n \"symbol\": \"UPTICK\",\n \"decimals\": 18\n },\n \"networkId\": 117,\n \"rpc\": [\"https://uptick.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://117.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://json-rpc.uptick.network\"],\n \"shortName\": \"auptick\",\n \"slug\": \"uptick\",\n \"testnet\": false\n};\n\nvar c118 = {\n \"chain\": \"Arcology\",\n \"chainId\": 118,\n \"explorers\": [{\n \"name\": \"arcology\",\n \"url\": \"https://testnet.arcology.network/explorer\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmRD7itMvaZutfBjyA7V9xkMGDtsZiJSagPwd3ijqka8kE\",\n \"width\": 288,\n \"height\": 288,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://arcology.network/\",\n \"name\": \"Arcology Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Arcology Coin\",\n \"symbol\": \"Acol\",\n \"decimals\": 18\n },\n \"networkId\": 118,\n \"rpc\": [\"https://arcology-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://118.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.arcology.network/rpc\"],\n \"shortName\": \"arcology\",\n \"slip44\": 1,\n \"slug\": \"arcology-testnet\",\n \"testnet\": true\n};\n\nvar c119 = {\n \"chain\": \"ENULS\",\n \"chainId\": 119,\n \"explorers\": [{\n \"name\": \"enulsscan\",\n \"url\": \"https://evmscan.nuls.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYz8LK5WkUN8UwqKfWUjnyLuYqQZWihT7J766YXft4TSy\",\n \"width\": 26,\n \"height\": 41,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmYz8LK5WkUN8UwqKfWUjnyLuYqQZWihT7J766YXft4TSy\",\n \"width\": 26,\n \"height\": 41,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://nuls.io\",\n \"name\": \"ENULS Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"NULS\",\n \"symbol\": \"NULS\",\n \"decimals\": 18\n },\n \"networkId\": 119,\n \"rpc\": [\"https://enuls.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://119.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://evmapi.nuls.io\", \"https://evmapi2.nuls.io\"],\n \"shortName\": \"enuls\",\n \"slug\": \"enuls\",\n \"testnet\": false\n};\n\nvar c120 = {\n \"chain\": \"ENULS\",\n \"chainId\": 120,\n \"explorers\": [{\n \"name\": \"enulsscan\",\n \"url\": \"https://beta.evmscan.nuls.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYz8LK5WkUN8UwqKfWUjnyLuYqQZWihT7J766YXft4TSy\",\n \"width\": 26,\n \"height\": 41,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [\"http://faucet.nuls.io\"],\n \"icon\": {\n \"url\": \"ipfs://QmYz8LK5WkUN8UwqKfWUjnyLuYqQZWihT7J766YXft4TSy\",\n \"width\": 26,\n \"height\": 41,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://nuls.io\",\n \"name\": \"ENULS Testnet\",\n \"nativeCurrency\": {\n \"name\": \"NULS\",\n \"symbol\": \"NULS\",\n \"decimals\": 18\n },\n \"networkId\": 120,\n \"rpc\": [\"https://enuls-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://120.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://beta.evmapi.nuls.io\", \"https://beta.evmapi2.nuls.io\"],\n \"shortName\": \"enulst\",\n \"slip44\": 1,\n \"slug\": \"enuls-testnet\",\n \"testnet\": true\n};\n\nvar c121 = {\n \"chain\": \"REAL\",\n \"chainId\": 121,\n \"explorers\": [{\n \"name\": \"realscan\",\n \"url\": \"https://rclscan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.rclsidechain.com/\",\n \"name\": \"Realchain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Realchain\",\n \"symbol\": \"REAL\",\n \"decimals\": 18\n },\n \"networkId\": 121,\n \"rpc\": [\"https://realchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://121.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rcl-dataseed1.rclsidechain.com\", \"https://rcl-dataseed2.rclsidechain.com\", \"https://rcl-dataseed3.rclsidechain.com\", \"https://rcl-dataseed4.rclsidechain.com\", \"wss://rcl-dataseed1.rclsidechain.com/v1/\", \"wss://rcl-dataseed2.rclsidechain.com/v1/\", \"wss://rcl-dataseed3.rclsidechain.com/v1/\", \"wss://rcl-dataseed4.rclsidechain.com/v1/\"],\n \"shortName\": \"REAL\",\n \"slip44\": 714,\n \"slug\": \"realchain\",\n \"testnet\": false\n};\n\nvar c122 = {\n \"chain\": \"FUSE\",\n \"chainId\": 122,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://explorer.fuse.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmQg8aqyeaMfHvjzFDtZkb8dUNRYhFezPp8UYVc1HnLpRW/green.png\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://fuse.io/\",\n \"name\": \"Fuse Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Fuse\",\n \"symbol\": \"FUSE\",\n \"decimals\": 18\n },\n \"networkId\": 122,\n \"redFlags\": [],\n \"rpc\": [\"https://fuse.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://122.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.fuse.io\"],\n \"shortName\": \"fuse\",\n \"slug\": \"fuse\",\n \"testnet\": false\n};\n\nvar c123 = {\n \"chain\": \"fuse\",\n \"chainId\": 123,\n \"explorers\": [],\n \"faucets\": [\"https://get.fusespark.io\"],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmQg8aqyeaMfHvjzFDtZkb8dUNRYhFezPp8UYVc1HnLpRW/green.png\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://docs.fuse.io/general/fuse-network-blockchain/fuse-testnet\",\n \"name\": \"Fuse Sparknet\",\n \"nativeCurrency\": {\n \"name\": \"Spark\",\n \"symbol\": \"SPARK\",\n \"decimals\": 18\n },\n \"networkId\": 123,\n \"redFlags\": [],\n \"rpc\": [\"https://fuse-sparknet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://123.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.fusespark.io\"],\n \"shortName\": \"spark\",\n \"slug\": \"fuse-sparknet\",\n \"testnet\": true\n};\n\nvar c124 = {\n \"chain\": \"DWU\",\n \"chainId\": 124,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://decentralized-web.tech/dw_chain.php\",\n \"name\": \"Decentralized Web Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Decentralized Web Utility\",\n \"symbol\": \"DWU\",\n \"decimals\": 18\n },\n \"networkId\": 124,\n \"rpc\": [\"https://decentralized-web.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://124.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://decentralized-web.tech/dw_rpc.php\"],\n \"shortName\": \"dwu\",\n \"slug\": \"decentralized-web\",\n \"testnet\": false\n};\n\nvar c125 = {\n \"chain\": \"OYchain\",\n \"chainId\": 125,\n \"explorers\": [{\n \"name\": \"OYchain Testnet Explorer\",\n \"url\": \"https://explorer.testnet.oychain.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://faucet.oychain.io\"],\n \"infoURL\": \"https://www.oychain.io\",\n \"name\": \"OYchain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"OYchain Token\",\n \"symbol\": \"OY\",\n \"decimals\": 18\n },\n \"networkId\": 125,\n \"rpc\": [\"https://oychain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://125.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.testnet.oychain.io\"],\n \"shortName\": \"OYchainTestnet\",\n \"slip44\": 1,\n \"slug\": \"oychain-testnet\",\n \"testnet\": true\n};\n\nvar c126 = {\n \"chain\": \"OYchain\",\n \"chainId\": 126,\n \"explorers\": [{\n \"name\": \"OYchain Mainnet Explorer\",\n \"url\": \"https://explorer.oychain.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmXW5T2MaGHznXUmQEXoyJjcdmX7dhLbj5fnqvZZKqeKzA\",\n \"width\": 677,\n \"height\": 237,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.oychain.io\",\n \"name\": \"OYchain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"OYchain Token\",\n \"symbol\": \"OY\",\n \"decimals\": 18\n },\n \"networkId\": 126,\n \"rpc\": [\"https://oychain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://126.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.mainnet.oychain.io\"],\n \"shortName\": \"OYchainMainnet\",\n \"slip44\": 126,\n \"slug\": \"oychain\",\n \"testnet\": false\n};\n\nvar c127 = {\n \"chain\": \"FETH\",\n \"chainId\": 127,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://www.factory127.com\",\n \"name\": \"Factory 127 Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Factory 127 Token\",\n \"symbol\": \"FETH\",\n \"decimals\": 18\n },\n \"networkId\": 127,\n \"rpc\": [],\n \"shortName\": \"feth\",\n \"slip44\": 127,\n \"slug\": \"factory-127\",\n \"testnet\": false\n};\n\nvar c128 = {\n \"chain\": \"Heco\",\n \"chainId\": 128,\n \"explorers\": [{\n \"name\": \"hecoinfo\",\n \"url\": \"https://hecoinfo.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.hecochain.com\",\n \"name\": \"Huobi ECO Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Huobi ECO Chain Native Token\",\n \"symbol\": \"HT\",\n \"decimals\": 18\n },\n \"networkId\": 128,\n \"rpc\": [\"https://huobi-eco-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://128.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://http-mainnet.hecochain.com\", \"wss://ws-mainnet.hecochain.com\"],\n \"shortName\": \"heco\",\n \"slip44\": 1010,\n \"slug\": \"huobi-eco-chain\",\n \"testnet\": false\n};\n\nvar c131 = {\n \"chain\": \"tGRAM\",\n \"chainId\": 131,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://tokioscan-v2.engram.tech\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://bafkreidn7dolavrzgqxthydb6rt5iwuzm6cvkxqirzh2szarjspsdp4kyu\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://bafkreidn7dolavrzgqxthydb6rt5iwuzm6cvkxqirzh2szarjspsdp4kyu\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://engramnet.io\",\n \"name\": \"Engram Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Engram Tokio Testnet\",\n \"symbol\": \"tGRAM\",\n \"decimals\": 18\n },\n \"networkId\": 131,\n \"rpc\": [\"https://engram-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://131.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://tokioswift.engram.tech\", \"https://tokio-archive.engram.tech\"],\n \"shortName\": \"tgram\",\n \"slug\": \"engram-testnet\",\n \"testnet\": true\n};\n\nvar c134 = {\n \"chain\": \"Bellecour\",\n \"chainId\": 134,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://blockscout.bellecour.iex.ec\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmUYKpVmZL4aS3TEZLG5wbrRJ6exxLiwm1rejfGYYNicfb\",\n \"width\": 155,\n \"height\": 155,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://iex.ec\",\n \"name\": \"iExec Sidechain\",\n \"nativeCurrency\": {\n \"name\": \"xRLC\",\n \"symbol\": \"xRLC\",\n \"decimals\": 18\n },\n \"networkId\": 134,\n \"rpc\": [\"https://iexec-sidechain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://134.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://bellecour.iex.ec\"],\n \"shortName\": \"rlc\",\n \"slug\": \"iexec-sidechain\",\n \"testnet\": false\n};\n\nvar c135 = {\n \"chain\": \"Alyx Chain Testnet\",\n \"chainId\": 135,\n \"explorers\": [{\n \"name\": \"alyx testnet scan\",\n \"url\": \"https://testnet.alyxscan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.alyxchain.com\"],\n \"icon\": {\n \"url\": \"ipfs://bafkreifd43fcvh77mdcwjrpzpnlhthounc6b4u645kukqpqhduaveatf6i\",\n \"width\": 2481,\n \"height\": 2481,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.alyxchain.com\",\n \"name\": \"Alyx Chain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Alyx Testnet Native Token\",\n \"symbol\": \"ALYX\",\n \"decimals\": 18\n },\n \"networkId\": 135,\n \"rpc\": [\"https://alyx-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://135.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-rpc.alyxchain.com\"],\n \"shortName\": \"AlyxTestnet\",\n \"slip44\": 1,\n \"slug\": \"alyx-chain-testnet\",\n \"testnet\": true\n};\n\nvar c136 = {\n \"chain\": \"Deamchain\",\n \"chainId\": 136,\n \"explorers\": [{\n \"name\": \"Deamchain Block Explorer\",\n \"url\": \"https://scan.deamchain.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmXvHWmjfXKdZMSz7x82NR4SjEqigKdJELVHbnzUPkj17F\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmXvHWmjfXKdZMSz7x82NR4SjEqigKdJELVHbnzUPkj17F\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://deamchain.com\",\n \"name\": \"Deamchain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Deamchain Native Token\",\n \"symbol\": \"DEAM\",\n \"decimals\": 18\n },\n \"networkId\": 136,\n \"rpc\": [\"https://deamchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://136.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.deamchain.com\"],\n \"shortName\": \"deam\",\n \"slug\": \"deamchain\",\n \"testnet\": false\n};\n\nvar c137 = {\n \"chain\": \"Polygon\",\n \"chainId\": 137,\n \"explorers\": [{\n \"name\": \"polygonscan\",\n \"url\": \"https://polygonscan.com\",\n \"standard\": \"EIP3091\"\n }, {\n \"name\": \"dexguru\",\n \"url\": \"https://polygon.dex.guru\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmRaASKRSjQ5btoUQ2rNTJNxKtx2a2RoewgA7DMQkLVEne\",\n \"width\": 83,\n \"height\": 82,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmcxZHpyJa8T4i63xqjPYrZ6tKrt55tZJpbXcjSDKuKaf9/polygon/512.png\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://polygon.technology/\",\n \"name\": \"Polygon Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"MATIC\",\n \"symbol\": \"MATIC\",\n \"decimals\": 18\n },\n \"networkId\": 137,\n \"redFlags\": [],\n \"rpc\": [\"https://polygon.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://137.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://polygon-mainnet.infura.io/v3/${INFURA_API_KEY}\", \"https://polygon-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}\", \"https://polygon-rpc.com/\", \"https://rpc-mainnet.matic.network\", \"https://matic-mainnet.chainstacklabs.com\", \"https://rpc-mainnet.maticvigil.com\", \"https://rpc-mainnet.matic.quiknode.pro\", \"https://matic-mainnet-full-rpc.bwarelabs.com\", \"https://polygon-bor.publicnode.com\", \"wss://polygon-bor.publicnode.com\", \"https://polygon.gateway.tenderly.co\", \"wss://polygon.gateway.tenderly.co\"],\n \"shortName\": \"matic\",\n \"slip44\": 966,\n \"slug\": \"polygon\",\n \"testnet\": false\n};\n\nvar c138 = {\n \"chain\": \"dfiometa\",\n \"chainId\": 138,\n \"ens\": {\n \"registry\": \"0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85\"\n },\n \"explorers\": [{\n \"name\": \"Quorum Explorer\",\n \"url\": \"https://public-0138.defi-oracle.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmYrMRnjQJcNkYq9AvZ2FQ9kzYj9szzP4YDmyNA1ybd8xE\",\n \"width\": 1000,\n \"height\": 1043,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://defi-oracle.io/\",\n \"name\": \"Defi Oracle Meta Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 1,\n \"rpc\": [\"https://defi-oracle-meta.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://138.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.public-0138.defi-oracle.io\", \"wss://rpc.public-0138.defi-oracle.io\"],\n \"shortName\": \"dfio-meta-main\",\n \"slip44\": 60,\n \"slug\": \"defi-oracle-meta\",\n \"testnet\": false\n};\n\nvar c139 = {\n \"chain\": \"WOOP\",\n \"chainId\": 139,\n \"explorers\": [{\n \"name\": \"wikiwoop\",\n \"url\": \"https://explorer.wikiwoop.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://Qma7LpnkGjAN1dwL6VTXUYqzySNxjLg4br7J8UE4yZWYec\",\n \"width\": 310,\n \"height\": 310,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://wikiwoop.com\",\n \"name\": \"WoopChain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"WoopCoin\",\n \"symbol\": \"WOOC\",\n \"decimals\": 18\n },\n \"networkId\": 139,\n \"rpc\": [\"https://woopchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://139.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.woop.ai/rpc\"],\n \"shortName\": \"woop\",\n \"slug\": \"woopchain\",\n \"testnet\": false\n};\n\nvar c141 = {\n \"chain\": \"OPENPIECE\",\n \"chainId\": 141,\n \"explorers\": [{\n \"name\": \"Belly Scan\",\n \"url\": \"https://testnet.bellyscan.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmVTahJkdSH3HPYsJMK2GmqfWZjLyxE7cXy1aHEnHU3vp2\",\n \"width\": 250,\n \"height\": 250,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://cryptopiece.online\",\n \"name\": \"Openpiece Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Belly\",\n \"symbol\": \"BELLY\",\n \"decimals\": 18\n },\n \"networkId\": 141,\n \"rpc\": [\"https://openpiece-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://141.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.openpiece.io\"],\n \"shortName\": \"OPtest\",\n \"slip44\": 1,\n \"slug\": \"openpiece-testnet\",\n \"testnet\": true\n};\n\nvar c142 = {\n \"chain\": \"DAX\",\n \"chainId\": 142,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://prodax.io/\",\n \"name\": \"DAX CHAIN\",\n \"nativeCurrency\": {\n \"name\": \"Prodax\",\n \"symbol\": \"DAX\",\n \"decimals\": 18\n },\n \"networkId\": 142,\n \"rpc\": [\"https://dax-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://142.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.prodax.io\"],\n \"shortName\": \"dax\",\n \"slug\": \"dax-chain\",\n \"testnet\": false\n};\n\nvar c144 = {\n \"chain\": \"PHI\",\n \"chainId\": 144,\n \"explorers\": [{\n \"name\": \"Phiscan\",\n \"url\": \"https://phiscan.com\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://bafkreid6pm3mic7izp3a6zlfwhhe7etd276bjfsq2xash6a4s2vmcdf65a\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreid6pm3mic7izp3a6zlfwhhe7etd276bjfsq2xash6a4s2vmcdf65a\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://phi.network\",\n \"name\": \"PHI Network v2\",\n \"nativeCurrency\": {\n \"name\": \"PHI\",\n \"symbol\": \"Φ\",\n \"decimals\": 18\n },\n \"networkId\": 144,\n \"rpc\": [\"https://phi-network-v2.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://144.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://connect.phi.network\"],\n \"shortName\": \"PHI\",\n \"slug\": \"phi-network-v2\",\n \"testnet\": false\n};\n\nvar c148 = {\n \"chain\": \"ShimmerEVM\",\n \"chainId\": 148,\n \"explorers\": [{\n \"name\": \"explorer\",\n \"url\": \"https://explorer.evm.shimmer.network\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://bafkreibky2sy6qhi6arktayvologkrgu5kudpgdxfkx4uosbvmstz7v4di\",\n \"width\": 720,\n \"height\": 720,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreibky2sy6qhi6arktayvologkrgu5kudpgdxfkx4uosbvmstz7v4di\",\n \"width\": 720,\n \"height\": 720,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://shimmer.network\",\n \"name\": \"ShimmerEVM\",\n \"nativeCurrency\": {\n \"name\": \"SMR\",\n \"symbol\": \"SMR\",\n \"decimals\": 18\n },\n \"networkId\": 148,\n \"rpc\": [\"https://shimmerevm.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://148.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://json-rpc.evm.shimmer.network\"],\n \"shortName\": \"shimmerevm\",\n \"slug\": \"shimmerevm\",\n \"testnet\": false,\n \"title\": \"ShimmerEVM\"\n};\n\nvar c150 = {\n \"chain\": \"FIVENET\",\n \"chainId\": 150,\n \"explorers\": [{\n \"name\": \"SIX Scan fivenet\",\n \"url\": \"https://sixscan.io/fivenet\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmP93z696v8Hetu13peY2oEHDXq8Bj5CqaDRwpVkpnM15A\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucet.sixprotocol.net\"],\n \"icon\": {\n \"url\": \"ipfs://QmP93z696v8Hetu13peY2oEHDXq8Bj5CqaDRwpVkpnM15A\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://six.network/\",\n \"name\": \"Six Protocol Testnet\",\n \"nativeCurrency\": {\n \"name\": \"SIX testnet evm token\",\n \"symbol\": \"tSIX\",\n \"decimals\": 18\n },\n \"networkId\": 150,\n \"rpc\": [\"https://six-protocol-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://150.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-evm.fivenet.sixprotocol.net\"],\n \"shortName\": \"sixt\",\n \"slug\": \"six-protocol-testnet\",\n \"testnet\": true\n};\n\nvar c151 = {\n \"chain\": \"RBN\",\n \"chainId\": 151,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://redbelly.network\",\n \"name\": \"Redbelly Network Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Redbelly Network Coin\",\n \"symbol\": \"RBNT\",\n \"decimals\": 18\n },\n \"networkId\": 151,\n \"rpc\": [],\n \"shortName\": \"rbn\",\n \"slug\": \"redbelly-network\",\n \"status\": \"incubating\",\n \"testnet\": false\n};\n\nvar c152 = {\n \"chain\": \"RBN\",\n \"chainId\": 152,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://redbelly.network\",\n \"name\": \"Redbelly Network Devnet\",\n \"nativeCurrency\": {\n \"name\": \"Redbelly Network Coin\",\n \"symbol\": \"RBNT\",\n \"decimals\": 18\n },\n \"networkId\": 152,\n \"rpc\": [],\n \"shortName\": \"rbn-devnet\",\n \"slug\": \"redbelly-network-devnet\",\n \"status\": \"incubating\",\n \"testnet\": false\n};\n\nvar c153 = {\n \"chain\": \"RBN\",\n \"chainId\": 153,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://redbelly.network\",\n \"name\": \"Redbelly Network Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Redbelly Network Coin\",\n \"symbol\": \"RBNT\",\n \"decimals\": 18\n },\n \"networkId\": 153,\n \"rpc\": [],\n \"shortName\": \"rbn-testnet\",\n \"slip44\": 1,\n \"slug\": \"redbelly-network-testnet\",\n \"status\": \"incubating\",\n \"testnet\": true\n};\n\nvar c154 = {\n \"chain\": \"RBN\",\n \"chainId\": 154,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://redbelly.network\",\n \"name\": \"Redbelly Network TGE\",\n \"nativeCurrency\": {\n \"name\": \"Redbelly Network Coin\",\n \"symbol\": \"RBNT\",\n \"decimals\": 18\n },\n \"networkId\": 154,\n \"rpc\": [],\n \"shortName\": \"rbn-tge\",\n \"slug\": \"redbelly-network-tge\",\n \"testnet\": false\n};\n\nvar c155 = {\n \"chain\": \"TENET\",\n \"chainId\": 155,\n \"explorers\": [{\n \"name\": \"TenetScan Testnet\",\n \"url\": \"https://testnet.tenetscan.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://Qmc1gqjWTzNo4pyFSGtQuCu7kRSZZBUVybtTjHn2nNEEPA\",\n \"width\": 640,\n \"height\": 640,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [\"https://faucet.testnet.tenet.org\"],\n \"icon\": {\n \"url\": \"ipfs://Qmc1gqjWTzNo4pyFSGtQuCu7kRSZZBUVybtTjHn2nNEEPA\",\n \"width\": 640,\n \"height\": 640,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://tenet.org/\",\n \"name\": \"Tenet Testnet\",\n \"nativeCurrency\": {\n \"name\": \"TENET\",\n \"symbol\": \"TENET\",\n \"decimals\": 18\n },\n \"networkId\": 155,\n \"rpc\": [\"https://tenet-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://155.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.testnet.tenet.org\"],\n \"shortName\": \"tenet-testnet\",\n \"slip44\": 1,\n \"slug\": \"tenet-testnet\",\n \"testnet\": true,\n \"title\": \"Tenet Testnet\"\n};\n\nvar c156 = {\n \"chain\": \"OEBt\",\n \"chainId\": 156,\n \"explorers\": [{\n \"name\": \"OEScan explorer\",\n \"url\": \"https://testnet.oescan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmdoQUfYqtkWMfjtoPv2KWDY4MxDDSsyWgwXtCx6jfkezz\",\n \"width\": 155,\n \"height\": 177,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.oeblock.com/\",\n \"name\": \"OEBlock Testnet\",\n \"nativeCurrency\": {\n \"name\": \"OEBlock\",\n \"symbol\": \"OEB\",\n \"decimals\": 18\n },\n \"networkId\": 156,\n \"rpc\": [\"https://oeblock-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://156.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-rpc.oeblock.com\"],\n \"shortName\": \"obe\",\n \"slip44\": 1,\n \"slug\": \"oeblock-testnet\",\n \"testnet\": true\n};\n\nvar c160 = {\n \"chain\": \"Eva\",\n \"chainId\": 160,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://amax.network\",\n \"name\": \"Armonia Eva Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Armonia Multichain Native Token\",\n \"symbol\": \"AMAX\",\n \"decimals\": 18\n },\n \"networkId\": 160,\n \"rpc\": [\"https://armonia-eva-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://160.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://evascan.io/api/eth-rpc/\"],\n \"shortName\": \"eva\",\n \"slug\": \"armonia-eva-chain\",\n \"status\": \"incubating\",\n \"testnet\": false\n};\n\nvar c161 = {\n \"chain\": \"Wall-e\",\n \"chainId\": 161,\n \"explorers\": [{\n \"name\": \"blockscout - evascan\",\n \"url\": \"https://testnet.evascan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://amax.network\",\n \"name\": \"Armonia Eva Chain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Armonia Multichain Native Token\",\n \"symbol\": \"AMAX\",\n \"decimals\": 18\n },\n \"networkId\": 161,\n \"rpc\": [\"https://armonia-eva-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://161.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.evascan.io/api/eth-rpc/\"],\n \"shortName\": \"wall-e\",\n \"slip44\": 1,\n \"slug\": \"armonia-eva-chain-testnet\",\n \"testnet\": true\n};\n\nvar c162 = {\n \"chain\": \"PHT\",\n \"chainId\": 162,\n \"explorers\": [],\n \"faucets\": [\"https://discuss.lightstreams.network/t/request-test-tokens\"],\n \"infoURL\": \"https://explorer.sirius.lightstreams.io\",\n \"name\": \"Lightstreams Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Lightstreams PHT\",\n \"symbol\": \"PHT\",\n \"decimals\": 18\n },\n \"networkId\": 162,\n \"rpc\": [\"https://lightstreams-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://162.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://node.sirius.lightstreams.io\"],\n \"shortName\": \"tpht\",\n \"slip44\": 1,\n \"slug\": \"lightstreams-testnet\",\n \"testnet\": true\n};\n\nvar c163 = {\n \"chain\": \"PHT\",\n \"chainId\": 163,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://explorer.lightstreams.io\",\n \"name\": \"Lightstreams Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Lightstreams PHT\",\n \"symbol\": \"PHT\",\n \"decimals\": 18\n },\n \"networkId\": 163,\n \"rpc\": [\"https://lightstreams.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://163.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://node.mainnet.lightstreams.io\"],\n \"shortName\": \"pht\",\n \"slug\": \"lightstreams\",\n \"testnet\": false\n};\n\nvar c165 = {\n \"chain\": \"Omni\",\n \"chainId\": 165,\n \"explorers\": [{\n \"name\": \"Omni Explorer\",\n \"url\": \"https://testnet.explorer.omni.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }],\n \"infoURL\": \"https://docs.omni.network/\",\n \"name\": \"Omni Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Omni\",\n \"symbol\": \"OMNI\",\n \"decimals\": 18\n },\n \"networkId\": 165,\n \"rpc\": [\"https://omni-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://165.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.omni.network\"],\n \"shortName\": \"omni_testnet\",\n \"slip44\": 1,\n \"slug\": \"omni-testnet\",\n \"testnet\": true\n};\n\nvar c167 = {\n \"chain\": \"ATOSHI\",\n \"chainId\": 167,\n \"explorers\": [{\n \"name\": \"atoshiscan\",\n \"url\": \"https://scan.atoverse.info\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmfFK6B4MFLrpSS46aLf7hjpt28poHFeTGEKEuH248Tbyj\",\n \"width\": 200,\n \"height\": 200,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://atoshi.org\",\n \"name\": \"Atoshi Testnet\",\n \"nativeCurrency\": {\n \"name\": \"ATOSHI\",\n \"symbol\": \"ATOS\",\n \"decimals\": 18\n },\n \"networkId\": 167,\n \"rpc\": [\"https://atoshi-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://167.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://node.atoshi.io/\"],\n \"shortName\": \"atoshi\",\n \"slip44\": 1,\n \"slug\": \"atoshi-testnet\",\n \"testnet\": true\n};\n\nvar c168 = {\n \"chain\": \"AIOZ\",\n \"chainId\": 168,\n \"explorers\": [{\n \"name\": \"AIOZ Network Explorer\",\n \"url\": \"https://explorer.aioz.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmRAGPFhvQiXgoJkui7WHajpKctGFrJNhHqzYdwcWt5V3Z\",\n \"width\": 1024,\n \"height\": 1024,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://aioz.network\",\n \"name\": \"AIOZ Network\",\n \"nativeCurrency\": {\n \"name\": \"AIOZ\",\n \"symbol\": \"AIOZ\",\n \"decimals\": 18\n },\n \"networkId\": 168,\n \"rpc\": [\"https://aioz-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://168.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://eth-dataseed.aioz.network\"],\n \"shortName\": \"aioz\",\n \"slip44\": 60,\n \"slug\": \"aioz-network\",\n \"testnet\": false\n};\n\nvar c169 = {\n \"chain\": \"Manta Pacific\",\n \"chainId\": 169,\n \"explorers\": [{\n \"name\": \"manta-pacific Explorer\",\n \"url\": \"https://pacific-explorer.manta.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmTckcVTViRZ3NqT36MTt8AvgBSmudrbgU3pi8AaNtthoV\",\n \"width\": 834,\n \"height\": 834,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://pacific-info.manta.network\",\n \"name\": \"Manta Pacific Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 169,\n \"rpc\": [\"https://manta-pacific.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://169.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://pacific-rpc.manta.network/http\"],\n \"shortName\": \"manta\",\n \"slug\": \"manta-pacific\",\n \"testnet\": false\n};\n\nvar c170 = {\n \"chain\": \"ETH\",\n \"chainId\": 170,\n \"explorers\": [],\n \"faucets\": [\"https://faucet-testnet.hscscan.com/\"],\n \"infoURL\": \"https://www.hoosmartchain.com\",\n \"name\": \"HOO Smart Chain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"HOO\",\n \"symbol\": \"HOO\",\n \"decimals\": 18\n },\n \"networkId\": 170,\n \"rpc\": [\"https://hoo-smart-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://170.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://http-testnet.hoosmartchain.com\"],\n \"shortName\": \"hoosmartchain\",\n \"slip44\": 1,\n \"slug\": \"hoo-smart-chain-testnet\",\n \"testnet\": true\n};\n\nvar c172 = {\n \"chain\": \"Resil\",\n \"chainId\": 172,\n \"explorers\": [],\n \"faucets\": [\"https://faucet.latam-blockchain.com\"],\n \"infoURL\": \"https://latam-blockchain.com\",\n \"name\": \"Latam-Blockchain Resil Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Latam-Blockchain Resil Test Native Token\",\n \"symbol\": \"usd\",\n \"decimals\": 18\n },\n \"networkId\": 172,\n \"rpc\": [\"https://latam-blockchain-resil-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://172.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.latam-blockchain.com\", \"wss://ws.latam-blockchain.com\"],\n \"shortName\": \"resil\",\n \"slip44\": 1,\n \"slug\": \"latam-blockchain-resil-testnet\",\n \"testnet\": true\n};\n\nvar c180 = {\n \"chain\": \"AME\",\n \"chainId\": 180,\n \"explorers\": [{\n \"name\": \"AME Scan\",\n \"url\": \"https://amescan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://amechain.io/\",\n \"name\": \"AME Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"AME\",\n \"symbol\": \"AME\",\n \"decimals\": 18\n },\n \"networkId\": 180,\n \"rpc\": [\"https://ame-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://180.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://node1.amechain.io/\"],\n \"shortName\": \"ame\",\n \"slug\": \"ame-chain\",\n \"testnet\": false\n};\n\nvar c186 = {\n \"chain\": \"Seele\",\n \"chainId\": 186,\n \"explorers\": [{\n \"name\": \"seeleview\",\n \"url\": \"https://seeleview.net\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://seelen.pro/\",\n \"name\": \"Seele Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Seele\",\n \"symbol\": \"Seele\",\n \"decimals\": 18\n },\n \"networkId\": 186,\n \"rpc\": [\"https://seele.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://186.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.seelen.pro/\"],\n \"shortName\": \"Seele\",\n \"slug\": \"seele\",\n \"testnet\": false\n};\n\nvar c188 = {\n \"chain\": \"BMC\",\n \"chainId\": 188,\n \"explorers\": [{\n \"name\": \"Blockmeta\",\n \"url\": \"https://bmc.blockmeta.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://bmc.bytom.io/\",\n \"name\": \"BMC Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"BTM\",\n \"symbol\": \"BTM\",\n \"decimals\": 18\n },\n \"networkId\": 188,\n \"rpc\": [\"https://bmc.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://188.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.bmcchain.com/\"],\n \"shortName\": \"BMC\",\n \"slug\": \"bmc\",\n \"testnet\": false\n};\n\nvar c189 = {\n \"chain\": \"BMC\",\n \"chainId\": 189,\n \"explorers\": [{\n \"name\": \"Blockmeta\",\n \"url\": \"https://bmctestnet.blockmeta.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://bmc.bytom.io/\",\n \"name\": \"BMC Testnet\",\n \"nativeCurrency\": {\n \"name\": \"BTM\",\n \"symbol\": \"BTM\",\n \"decimals\": 18\n },\n \"networkId\": 189,\n \"rpc\": [\"https://bmc-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://189.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.bmcchain.com\"],\n \"shortName\": \"BMCT\",\n \"slip44\": 1,\n \"slug\": \"bmc-testnet\",\n \"testnet\": true\n};\n\nvar c193 = {\n \"chain\": \"CEM\",\n \"chainId\": 193,\n \"explorers\": [{\n \"name\": \"cemscan\",\n \"url\": \"https://cemscan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://cemblockchain.com/\",\n \"name\": \"Crypto Emergency\",\n \"nativeCurrency\": {\n \"name\": \"Crypto Emergency\",\n \"symbol\": \"CEM\",\n \"decimals\": 18\n },\n \"networkId\": 193,\n \"rpc\": [\"https://crypto-emergency.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://193.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://cemchain.com\"],\n \"shortName\": \"cem\",\n \"slug\": \"crypto-emergency\",\n \"testnet\": false\n};\n\nvar c195 = {\n \"chain\": \"X1\",\n \"chainId\": 195,\n \"explorers\": [{\n \"name\": \"OKLink\",\n \"url\": \"https://www.oklink.com/x1-test\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://www.okx.com/x1/faucet\"],\n \"features\": [],\n \"infoURL\": \"https://www.okx.com/x1\",\n \"name\": \"X1 Testnet\",\n \"nativeCurrency\": {\n \"name\": \"X1 Global Utility Token in testnet\",\n \"symbol\": \"OKB\",\n \"decimals\": 18\n },\n \"networkId\": 195,\n \"rpc\": [\"https://x1-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://195.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testrpc.x1.tech\", \"https://x1testrpc.okx.com\"],\n \"shortName\": \"tokb\",\n \"slip44\": 1,\n \"slug\": \"x1-testnet\",\n \"status\": \"active\",\n \"testnet\": true\n};\n\nvar c196 = {\n \"chain\": \"X1\",\n \"chainId\": 196,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"infoURL\": \"https://www.okx.com/x1\",\n \"name\": \"X1 Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"X1 Global Utility Token\",\n \"symbol\": \"OKB\",\n \"decimals\": 18\n },\n \"networkId\": 196,\n \"rpc\": [],\n \"shortName\": \"okb\",\n \"slug\": \"x1\",\n \"status\": \"incubating\",\n \"testnet\": false\n};\n\nvar c197 = {\n \"chain\": \"NEUTR\",\n \"chainId\": 197,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://testnet.neutrinoschain.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://neutrinoschain.com/faucet\"],\n \"infoURL\": \"https://docs.neutrinoschain.com\",\n \"name\": \"Neutrinos TestNet\",\n \"nativeCurrency\": {\n \"name\": \"Neutrinos\",\n \"symbol\": \"NEUTR\",\n \"decimals\": 18\n },\n \"networkId\": 197,\n \"rpc\": [\"https://neutrinos-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://197.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-rpc.neutrinoschain.com\"],\n \"shortName\": \"NEUTR\",\n \"slip44\": 1,\n \"slug\": \"neutrinos-testnet\",\n \"testnet\": true\n};\n\nvar c198 = {\n \"chain\": \"Bit\",\n \"chainId\": 198,\n \"explorers\": [{\n \"name\": \"Bitchain Scan\",\n \"url\": \"https://explorer.bitchain.biz\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.bitchain.biz/\",\n \"name\": \"Bitchain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Bitcoin\",\n \"symbol\": \"BTC\",\n \"decimals\": 18\n },\n \"networkId\": 198,\n \"rpc\": [\"https://bitchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://198.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.bitchain.biz/\"],\n \"shortName\": \"bit\",\n \"slug\": \"bitchain\",\n \"testnet\": false\n};\n\nvar c199 = {\n \"chain\": \"BTTC\",\n \"chainId\": 199,\n \"explorers\": [{\n \"name\": \"BitTorrent Chain Explorer\",\n \"url\": \"https://bttcscan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https:/bt.io\",\n \"name\": \"BitTorrent Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"BitTorrent\",\n \"symbol\": \"BTT\",\n \"decimals\": 18\n },\n \"networkId\": 199,\n \"rpc\": [\"https://bittorrent-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://199.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.bittorrentchain.io/\"],\n \"shortName\": \"BTT\",\n \"slug\": \"bittorrent-chain\",\n \"testnet\": false\n};\n\nvar c200 = {\n \"chain\": \"AOX\",\n \"chainId\": 200,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://blockscout.com/xdai/arbitrum\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://xdaichain.com\",\n \"name\": \"Arbitrum on xDai\",\n \"nativeCurrency\": {\n \"name\": \"xDAI\",\n \"symbol\": \"xDAI\",\n \"decimals\": 18\n },\n \"networkId\": 200,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-100\"\n },\n \"rpc\": [\"https://arbitrum-on-xdai.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://200.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://arbitrum.xdaichain.com/\"],\n \"shortName\": \"aox\",\n \"slug\": \"arbitrum-on-xdai\",\n \"testnet\": false\n};\n\nvar c201 = {\n \"chain\": \"MOAC\",\n \"chainId\": 201,\n \"explorers\": [{\n \"name\": \"moac testnet explorer\",\n \"url\": \"https://testnet.moac.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://moac.io\",\n \"name\": \"MOAC testnet\",\n \"nativeCurrency\": {\n \"name\": \"MOAC\",\n \"symbol\": \"mc\",\n \"decimals\": 18\n },\n \"networkId\": 201,\n \"rpc\": [\"https://moac-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://201.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://gateway.moac.io/testnet\"],\n \"shortName\": \"moactest\",\n \"slip44\": 1,\n \"slug\": \"moac-testnet\",\n \"testnet\": true\n};\n\nvar c204 = {\n \"chain\": \"opBNB\",\n \"chainId\": 204,\n \"explorers\": [{\n \"name\": \"opbnbscan\",\n \"url\": \"https://mainnet.opbnbscan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafybeib75gwytvblyvjpfminitr3i6mpat3a624udfsqsl5nysf5vuuvie\",\n \"width\": 96,\n \"height\": 96,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://opbnb.bnbchain.org/en\",\n \"name\": \"opBNB Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"BNB Chain Native Token\",\n \"symbol\": \"BNB\",\n \"decimals\": 18\n },\n \"networkId\": 204,\n \"rpc\": [\"https://opbnb.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://204.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://opbnb-mainnet-rpc.bnbchain.org\", \"https://opbnb-mainnet.nodereal.io/v1/64a9df0874fb4a93b9d0a3849de012d3\", \"wss://opbnb-mainnet.nodereal.io/ws/v1/64a9df0874fb4a93b9d0a3849de012d3\", \"https://opbnb-mainnet.nodereal.io/v1/e9a36765eb8a40b9bd12e680a1fd2bc5\", \"wss://opbnb-mainnet.nodereal.io/ws/v1/e9a36765eb8a40b9bd12e680a1fd2bc5\", \"https://opbnb.publicnode.com\", \"wss://opbnb.publicnode.com\"],\n \"shortName\": \"obnb\",\n \"slip44\": 714,\n \"slug\": \"opbnb\",\n \"testnet\": false\n};\n\nvar c206 = {\n \"chain\": \"VinuChain Testnet\",\n \"chainId\": 206,\n \"explorers\": [{\n \"name\": \"VinuScan Testnet\",\n \"url\": \"https://testnet.vinuscan.com\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://bafkreiayq7a5qncxzlilfnvpgzt4pwfxbof2qrqr2nyd2suztfummpty4i\",\n \"width\": 2000,\n \"height\": 2000,\n \"format\": \"jpg\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreidtie4srt52ry67wd3dpxhklmug2ozrawvf3jdlljveinp3frutra\",\n \"width\": 2000,\n \"height\": 392,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://vitainu.org\",\n \"name\": \"VinuChain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"VinuChain\",\n \"symbol\": \"VС\",\n \"decimals\": 18\n },\n \"networkId\": 206,\n \"rpc\": [\"https://vinuchain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://206.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://vinufoundation-rpc.com\"],\n \"shortName\": \"VCTEST\",\n \"slip44\": 1,\n \"slug\": \"vinuchain-testnet\",\n \"testnet\": true\n};\n\nvar c207 = {\n \"chain\": \"VinuChain\",\n \"chainId\": 207,\n \"explorers\": [{\n \"name\": \"VinuScan\",\n \"url\": \"https://vinuscan.com\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://bafkreiayq7a5qncxzlilfnvpgzt4pwfxbof2qrqr2nyd2suztfummpty4i\",\n \"width\": 2000,\n \"height\": 2000,\n \"format\": \"jpg\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafybeiderli6uaaxk7eboyf7g4abnybgrkbglmqbkmf25z57ode7zdzmvy\",\n \"width\": 613,\n \"height\": 613,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://vitainu.org\",\n \"name\": \"VinuChain Network\",\n \"nativeCurrency\": {\n \"name\": \"VinuChain\",\n \"symbol\": \"VС\",\n \"decimals\": 18\n },\n \"networkId\": 207,\n \"rpc\": [\"https://vinuchain-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://207.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://vinuchain-rpc.com\"],\n \"shortName\": \"VC\",\n \"slug\": \"vinuchain-network\",\n \"testnet\": false\n};\n\nvar c208 = {\n \"chain\": \"utx\",\n \"chainId\": 208,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://structx.io\",\n \"name\": \"Structx Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Notes\",\n \"symbol\": \"utx\",\n \"decimals\": 18\n },\n \"networkId\": 208,\n \"rpc\": [\"https://structx.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://208.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.structx.io\"],\n \"shortName\": \"utx\",\n \"slug\": \"structx\",\n \"testnet\": false\n};\n\nvar c210 = {\n \"chain\": \"BTN\",\n \"chainId\": 210,\n \"explorers\": [{\n \"name\": \"Bitnet Explorer\",\n \"url\": \"https://btnscan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmS9h3nFiCzaBLnBNw8Wot4U7vvEVK45EQfi8nxH4nvrmz\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://bitnet.money\",\n \"name\": \"Bitnet\",\n \"nativeCurrency\": {\n \"name\": \"Bitnet\",\n \"symbol\": \"BTN\",\n \"decimals\": 18\n },\n \"networkId\": 210,\n \"rpc\": [\"https://bitnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://210.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.bitnet.money\", \"https://rpc.btnscan.com\"],\n \"shortName\": \"BTN\",\n \"slug\": \"bitnet\",\n \"testnet\": false\n};\n\nvar c211 = {\n \"chain\": \"EDI\",\n \"chainId\": 211,\n \"explorers\": [],\n \"faucets\": [\"http://faucet.freight.sh\"],\n \"infoURL\": \"https://freighttrust.com\",\n \"name\": \"Freight Trust Network\",\n \"nativeCurrency\": {\n \"name\": \"Freight Trust Native\",\n \"symbol\": \"0xF\",\n \"decimals\": 18\n },\n \"networkId\": 0,\n \"rpc\": [\"https://freight-trust-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://211.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"http://13.57.207.168:3435\", \"https://app.freighttrust.net/ftn/${API_KEY}\"],\n \"shortName\": \"EDI\",\n \"slug\": \"freight-trust-network\",\n \"testnet\": false\n};\n\nvar c212 = {\n \"chain\": \"MAP\",\n \"chainId\": 212,\n \"explorers\": [{\n \"name\": \"mapscan\",\n \"url\": \"https://testnet.mapscan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.maplabs.io\"],\n \"infoURL\": \"https://maplabs.io\",\n \"name\": \"MAP Makalu\",\n \"nativeCurrency\": {\n \"name\": \"Makalu MAP\",\n \"symbol\": \"MAP\",\n \"decimals\": 18\n },\n \"networkId\": 212,\n \"rpc\": [\"https://map-makalu.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://212.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-rpc.maplabs.io\"],\n \"shortName\": \"makalu\",\n \"slug\": \"map-makalu\",\n \"testnet\": true,\n \"title\": \"MAP Testnet Makalu\"\n};\n\nvar c214 = {\n \"chain\": \"Shinarium\",\n \"chainId\": 214,\n \"explorers\": [{\n \"name\": \"shinascan\",\n \"url\": \"https://shinascan.shinarium.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafybeiadbavrwcial76vs5ovhyykyaobteltuhliqcthdairbja4klwzhu\",\n \"width\": 1000,\n \"height\": 1000,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://shinarium.org\",\n \"name\": \"Shinarium Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Shina Inu\",\n \"symbol\": \"SHI\",\n \"decimals\": 18\n },\n \"networkId\": 214,\n \"rpc\": [\"https://shinarium.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://214.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.shinarium.org\"],\n \"shortName\": \"shinarium\",\n \"slug\": \"shinarium\",\n \"testnet\": false\n};\n\nvar c217 = {\n \"chain\": \"SIN2\",\n \"chainId\": 217,\n \"explorers\": [{\n \"name\": \"siriusnet explorer\",\n \"url\": \"https://scan.siriusnet.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafybeicxuxdzrzpwsil4owqmn7wpwka2rqsohpfqmukg57pifzyxr5om2q\",\n \"width\": 100,\n \"height\": 100,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://siriusnet.io\",\n \"name\": \"SiriusNet V2\",\n \"nativeCurrency\": {\n \"name\": \"MCD\",\n \"symbol\": \"MCD\",\n \"decimals\": 18\n },\n \"networkId\": 217,\n \"rpc\": [\"https://siriusnet-v2.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://217.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc2.siriusnet.io\"],\n \"shortName\": \"SIN2\",\n \"slug\": \"siriusnet-v2\",\n \"testnet\": false\n};\n\nvar c218 = {\n \"chain\": \"SOTER\",\n \"chainId\": 218,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://www.soterone.com\",\n \"name\": \"SoterOne Mainnet old\",\n \"nativeCurrency\": {\n \"name\": \"SoterOne Mainnet Ether\",\n \"symbol\": \"SOTER\",\n \"decimals\": 18\n },\n \"networkId\": 218,\n \"rpc\": [\"https://soterone-old.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://218.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.soter.one\"],\n \"shortName\": \"SO1-old\",\n \"slug\": \"soterone-old\",\n \"status\": \"deprecated\",\n \"testnet\": false\n};\n\nvar c220 = {\n \"chain\": \"ETH\",\n \"chainId\": 220,\n \"explorers\": [{\n \"name\": \"scalind\",\n \"url\": \"https://explorer-sepolia.scalind.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.scalind.com\"],\n \"icon\": {\n \"url\": \"ipfs://QmayuauUTSkYxbT1xi2AkkG5VLEMDhcMeZ18WZHiApPa9M\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://scalind.com\",\n \"name\": \"Scalind Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Sepolia Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 220,\n \"rpc\": [\"https://scalind-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://220.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-sepolia.scalind.com\"],\n \"shortName\": \"sepscal\",\n \"slug\": \"scalind-testnet\",\n \"testnet\": true\n};\n\nvar c222 = {\n \"chain\": \"ASK\",\n \"chainId\": 222,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://permission.io/\",\n \"name\": \"Permission\",\n \"nativeCurrency\": {\n \"name\": \"ASK\",\n \"symbol\": \"ASK\",\n \"decimals\": 18\n },\n \"networkId\": 2221,\n \"rpc\": [\"https://permission.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://222.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://blockchain-api-mainnet.permission.io/rpc\"],\n \"shortName\": \"ASK\",\n \"slip44\": 2221,\n \"slug\": \"permission\",\n \"status\": \"deprecated\",\n \"testnet\": false\n};\n\nvar c225 = {\n \"chain\": \"LA\",\n \"chainId\": 225,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://scan.lachain.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmQxGA6rhuCQDXUueVcNvFRhMEWisyTmnF57TqL7h6k6cZ\",\n \"width\": 1280,\n \"height\": 1280,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://lachain.io\",\n \"name\": \"LACHAIN Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"LA\",\n \"symbol\": \"LA\",\n \"decimals\": 18\n },\n \"networkId\": 225,\n \"rpc\": [\"https://lachain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://225.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-mainnet.lachain.io\"],\n \"shortName\": \"LA\",\n \"slug\": \"lachain\",\n \"testnet\": false\n};\n\nvar c226 = {\n \"chain\": \"TLA\",\n \"chainId\": 226,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://scan-test.lachain.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmQxGA6rhuCQDXUueVcNvFRhMEWisyTmnF57TqL7h6k6cZ\",\n \"width\": 1280,\n \"height\": 1280,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://lachain.io\",\n \"name\": \"LACHAIN Testnet\",\n \"nativeCurrency\": {\n \"name\": \"TLA\",\n \"symbol\": \"TLA\",\n \"decimals\": 18\n },\n \"networkId\": 226,\n \"rpc\": [\"https://lachain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://226.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-testnet.lachain.io\"],\n \"shortName\": \"TLA\",\n \"slip44\": 1,\n \"slug\": \"lachain-testnet\",\n \"testnet\": true\n};\n\nvar c230 = {\n \"chain\": \"SDX\",\n \"chainId\": 230,\n \"explorers\": [{\n \"name\": \"SwapDEX\",\n \"url\": \"https://evm.swapdex.network\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://swapdex.network/\",\n \"name\": \"SwapDEX\",\n \"nativeCurrency\": {\n \"name\": \"SwapDEX\",\n \"symbol\": \"SDX\",\n \"decimals\": 18\n },\n \"networkId\": 230,\n \"rpc\": [\"https://swapdex.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://230.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.swapdex.network\", \"wss://ss.swapdex.network\"],\n \"shortName\": \"SDX\",\n \"slug\": \"swapdex\",\n \"testnet\": false\n};\n\nvar c236 = {\n \"chain\": \"Deamchain\",\n \"chainId\": 236,\n \"explorers\": [{\n \"name\": \"Deamchain Testnet Explorer\",\n \"url\": \"https://testnet-scan.deamchain.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmXvHWmjfXKdZMSz7x82NR4SjEqigKdJELVHbnzUPkj17F\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [\"https://faucet.deamchain.com\"],\n \"icon\": {\n \"url\": \"ipfs://QmXvHWmjfXKdZMSz7x82NR4SjEqigKdJELVHbnzUPkj17F\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://deamchain.com\",\n \"name\": \"Deamchain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Deamchain Native Token\",\n \"symbol\": \"DEAM\",\n \"decimals\": 18\n },\n \"networkId\": 236,\n \"rpc\": [\"https://deamchain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://236.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.deamchain.com\"],\n \"shortName\": \"deamtest\",\n \"slip44\": 1,\n \"slug\": \"deamchain-testnet\",\n \"testnet\": true\n};\n\nvar c238 = {\n \"chain\": \"ETH\",\n \"chainId\": 238,\n \"explorers\": [{\n \"name\": \"Blast Mainnet\",\n \"url\": \"https://scan.blastblockchain.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmdHpjiepU2Q4bt4kR48tKHPgaQW57Sb6UVFgLh4MCyg6U\",\n \"width\": 595,\n \"height\": 582,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://docs.blastblockchain.com\",\n \"name\": \"Blast Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 238,\n \"rpc\": [\"https://blast.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://238.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.blastblockchain.com\"],\n \"shortName\": \"blast\",\n \"slug\": \"blast\",\n \"testnet\": false\n};\n\nvar c242 = {\n \"chain\": \"Plinga\",\n \"chainId\": 242,\n \"explorers\": [{\n \"name\": \"plgscan\",\n \"url\": \"https://www.plgscan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafybeibpvlod5nyev6wyuvp6pbestmgvru3ovbadsul32odpno26xwld6y\",\n \"width\": 1039,\n \"height\": 1022,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://www.plinga.technology/\",\n \"name\": \"Plinga Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Plinga\",\n \"symbol\": \"PLINGA\",\n \"decimals\": 18\n },\n \"networkId\": 242,\n \"rpc\": [\"https://plinga.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://242.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpcurl.mainnet.plgchain.com\", \"https://rpcurl.plgchain.blockchain.evmnode.online\", \"https://rpcurl.mainnet.plgchain.plinga.technology\"],\n \"shortName\": \"plgchain\",\n \"slug\": \"plinga\",\n \"testnet\": false\n};\n\nvar c246 = {\n \"chain\": \"Energy Web Chain\",\n \"chainId\": 246,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://explorer.energyweb.org\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://energyweb.org\",\n \"name\": \"Energy Web Chain\",\n \"nativeCurrency\": {\n \"name\": \"Energy Web Token\",\n \"symbol\": \"EWT\",\n \"decimals\": 18\n },\n \"networkId\": 246,\n \"rpc\": [\"https://energy-web-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://246.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.energyweb.org\", \"wss://rpc.energyweb.org/ws\"],\n \"shortName\": \"ewt\",\n \"slip44\": 246,\n \"slug\": \"energy-web-chain\",\n \"testnet\": false\n};\n\nvar c248 = {\n \"chain\": \"Oasys\",\n \"chainId\": 248,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://explorer.oasys.games\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmYcGHTPheBwLv9zoJfQAJ7NB6MCtXe2zV7XqPyiTJg3WP/Oasys_Large%20Logo%20Black.png\",\n \"width\": 1250,\n \"height\": 1250,\n \"format\": \".png\"\n },\n \"infoURL\": \"https://oasys.games\",\n \"name\": \"Oasys Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"OAS\",\n \"symbol\": \"OAS\",\n \"decimals\": 18\n },\n \"networkId\": 248,\n \"redFlags\": [],\n \"rpc\": [\"https://oasys.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://248.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.mainnet.oasys.games\"],\n \"shortName\": \"OAS\",\n \"slug\": \"oasys\",\n \"testnet\": false\n};\n\nvar c250 = {\n \"chain\": \"FTM\",\n \"chainId\": 250,\n \"explorers\": [{\n \"name\": \"ftmscan\",\n \"url\": \"https://ftmscan.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmRqbK449Fo9sJ3xMpkPbg6uV1weQj4yVV1xNMP9cdPmjf\",\n \"width\": 73,\n \"height\": 73,\n \"format\": \"png\"\n }\n }, {\n \"name\": \"dexguru\",\n \"url\": \"https://fantom.dex.guru\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmRaASKRSjQ5btoUQ2rNTJNxKtx2a2RoewgA7DMQkLVEne\",\n \"width\": 83,\n \"height\": 82,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmcxZHpyJa8T4i63xqjPYrZ6tKrt55tZJpbXcjSDKuKaf9/fantom/512.png\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://fantom.foundation\",\n \"name\": \"Fantom Opera\",\n \"nativeCurrency\": {\n \"name\": \"Fantom\",\n \"symbol\": \"FTM\",\n \"decimals\": 18\n },\n \"networkId\": 250,\n \"redFlags\": [],\n \"rpc\": [\"https://fantom.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://250.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.ftm.tools\", \"https://fantom.publicnode.com\", \"wss://fantom.publicnode.com\"],\n \"shortName\": \"ftm\",\n \"slug\": \"fantom\",\n \"testnet\": false\n};\n\nvar c252 = {\n \"chain\": \"FRAX\",\n \"chainId\": 252,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmQLJk5G7zF8ZDxSxkRcpHqEqcifrJEhGmEKC6zwyPXWAw/fraxchain.png\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"PNG\"\n },\n \"infoURL\": \"https://mainnet.frax.com\",\n \"name\": \"Fraxtal Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Frax Ether\",\n \"symbol\": \"frxETH\",\n \"decimals\": 18\n },\n \"networkId\": 252,\n \"redFlags\": [],\n \"rpc\": [],\n \"shortName\": \"fraxtal\",\n \"slug\": \"fraxtal\",\n \"status\": \"incubating\",\n \"testnet\": false\n};\n\nvar c255 = {\n \"chain\": \"ETH\",\n \"chainId\": 255,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://blockscout.kroma.network\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }, {\n \"name\": \"etherscan\",\n \"url\": \"https://kromascan.com/\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmVpV2WET6ZrqnvvPfE9hCwoE2y5ygbPuniuugpaRoxrho\",\n \"width\": 320,\n \"height\": 320,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://kroma.network\",\n \"name\": \"Kroma\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 255,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-1\",\n \"bridges\": [{\n \"url\": \"https://kroma.network/bridge\"\n }]\n },\n \"redFlags\": [],\n \"rpc\": [\"https://kroma.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://255.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.kroma.network\"],\n \"shortName\": \"kroma\",\n \"slug\": \"kroma\",\n \"testnet\": false\n};\n\nvar c256 = {\n \"chain\": \"Heco\",\n \"chainId\": 256,\n \"explorers\": [],\n \"faucets\": [\"https://scan-testnet.hecochain.com/faucet\"],\n \"infoURL\": \"https://testnet.hecoinfo.com\",\n \"name\": \"Huobi ECO Chain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Huobi ECO Chain Test Native Token\",\n \"symbol\": \"htt\",\n \"decimals\": 18\n },\n \"networkId\": 256,\n \"rpc\": [\"https://huobi-eco-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://256.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://http-testnet.hecochain.com\", \"wss://ws-testnet.hecochain.com\"],\n \"shortName\": \"hecot\",\n \"slug\": \"huobi-eco-chain-testnet\",\n \"testnet\": true\n};\n\nvar c258 = {\n \"chain\": \"Setheum\",\n \"chainId\": 258,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://setheum.xyz\",\n \"name\": \"Setheum\",\n \"nativeCurrency\": {\n \"name\": \"Setheum\",\n \"symbol\": \"SETM\",\n \"decimals\": 18\n },\n \"networkId\": 258,\n \"rpc\": [],\n \"shortName\": \"setm\",\n \"slug\": \"setheum\",\n \"testnet\": false\n};\n\nvar c259 = {\n \"chain\": \"Neonlink\",\n \"chainId\": 259,\n \"explorers\": [{\n \"name\": \"Neon Blockchain Explorer\",\n \"url\": \"https://scan.neonlink.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmX3hBv8WyvVfYjh1gmgDfJCpJBvKk4TYG9wFX9sC8WAjz\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmX3hBv8WyvVfYjh1gmgDfJCpJBvKk4TYG9wFX9sC8WAjz\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://neonlink.io\",\n \"name\": \"Neonlink Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Neonlink Native Token\",\n \"symbol\": \"NEON\",\n \"decimals\": 18\n },\n \"networkId\": 259,\n \"rpc\": [\"https://neonlink.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://259.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.neonlink.io\"],\n \"shortName\": \"neon\",\n \"slug\": \"neonlink\",\n \"testnet\": false\n};\n\nvar c262 = {\n \"chain\": \"SUR\",\n \"chainId\": 262,\n \"explorers\": [{\n \"name\": \"Surnet Explorer\",\n \"url\": \"https://explorer.surnet.org\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmbUcDQHCvheYQrWk9WFJRMW5fTJQmtZqkoGUed4bhCM7T\",\n \"width\": 3000,\n \"height\": 3000,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmbUcDQHCvheYQrWk9WFJRMW5fTJQmtZqkoGUed4bhCM7T\",\n \"width\": 3000,\n \"height\": 3000,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://surnet.org\",\n \"name\": \"SUR Blockchain Network\",\n \"nativeCurrency\": {\n \"name\": \"Suren\",\n \"symbol\": \"SRN\",\n \"decimals\": 18\n },\n \"networkId\": 1,\n \"rpc\": [\"https://sur-blockchain-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://262.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://sur.nilin.org\"],\n \"shortName\": \"SUR\",\n \"slug\": \"sur-blockchain-network\",\n \"testnet\": false\n};\n\nvar c269 = {\n \"chain\": \"HPB\",\n \"chainId\": 269,\n \"explorers\": [{\n \"name\": \"hscan\",\n \"url\": \"https://hscan.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://myhpbwallet.com/\"],\n \"infoURL\": \"https://hpb.io\",\n \"name\": \"High Performance Blockchain\",\n \"nativeCurrency\": {\n \"name\": \"High Performance Blockchain Ether\",\n \"symbol\": \"HPB\",\n \"decimals\": 18\n },\n \"networkId\": 269,\n \"rpc\": [\"https://high-performance-blockchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://269.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://hpbnode.com\", \"wss://ws.hpbnode.com\"],\n \"shortName\": \"hpb\",\n \"slip44\": 269,\n \"slug\": \"high-performance-blockchain\",\n \"testnet\": false\n};\n\nvar c271 = {\n \"chain\": \"EGON\",\n \"chainId\": 271,\n \"explorers\": [{\n \"name\": \"EgonCoin Mainnet\",\n \"url\": \"https://egonscan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.egonscan.com\"],\n \"icon\": {\n \"url\": \"ipfs://QmNZiMmzMQYjyGtNSghtzLg4UooYhDgMQsa677DAP5KsBg\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://egonscan.com\",\n \"name\": \"EgonCoin Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"EgonCoin\",\n \"symbol\": \"EGON\",\n \"decimals\": 18\n },\n \"networkId\": 271,\n \"rpc\": [\"https://egoncoin.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://271.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.egonscan.com\"],\n \"shortName\": \"EGONm\",\n \"slug\": \"egoncoin\",\n \"testnet\": false\n};\n\nvar c274 = {\n \"chain\": \"LaChain\",\n \"chainId\": 274,\n \"explorers\": [{\n \"name\": \"LaChain Explorer\",\n \"url\": \"https://explorer.lachain.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmQxGA6rhuCQDXUueVcNvFRhMEWisyTmnF57TqL7h6k6cZ\",\n \"width\": 1280,\n \"height\": 1280,\n \"format\": \"png\"\n },\n \"name\": \"LaChain\",\n \"nativeCurrency\": {\n \"name\": \"LaCoin\",\n \"symbol\": \"LAC\",\n \"decimals\": 18\n },\n \"networkId\": 274,\n \"rpc\": [\"https://lachain-lachain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://274.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc1.mainnet.lachain.network\", \"https://rpc2.mainnet.lachain.network\", \"https://lachain.rpc-nodes.cedalio.dev\"],\n \"shortName\": \"lachain\",\n \"slug\": \"lachain-lachain\",\n \"testnet\": false\n};\n\nvar c280 = {\n \"chain\": \"ETH\",\n \"chainId\": 280,\n \"explorers\": [{\n \"name\": \"zkSync Era Block Explorer\",\n \"url\": \"https://goerli.explorer.zksync.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmRkhUD6J3B9WhT4hEWLrcFVTrBhx3CQgNC783aJsrwxSN\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmRkhUD6J3B9WhT4hEWLrcFVTrBhx3CQgNC783aJsrwxSN\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://zksync.io/\",\n \"name\": \"zkSync Era Goerli Testnet (deprecated)\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 280,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-1\",\n \"bridges\": [{\n \"url\": \"https://bridge.zksync.io/\"\n }]\n },\n \"rpc\": [\"https://zksync-era-goerli-testnet-deprecated.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://280.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.era.zksync.dev\"],\n \"shortName\": \"zksync-goerli\",\n \"slip44\": 1,\n \"slug\": \"zksync-era-goerli-testnet-deprecated\",\n \"status\": \"deprecated\",\n \"testnet\": true\n};\n\nvar c288 = {\n \"chain\": \"ETH\",\n \"chainId\": 288,\n \"explorers\": [{\n \"name\": \"Bobascan\",\n \"url\": \"https://bobascan.com\",\n \"standard\": \"none\"\n }, {\n \"name\": \"Blockscout\",\n \"url\": \"https://blockexplorer.boba.network\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://boba.network\",\n \"name\": \"Boba Network\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 288,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-1\",\n \"bridges\": [{\n \"url\": \"https://gateway.boba.network\"\n }]\n },\n \"rpc\": [\"https://boba-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://288.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.boba.network\", \"https://replica.boba.network\", \"https://boba-ethereum.gateway.tenderly.co\", \"https://gateway.tenderly.co/public/boba-ethereum\", \"wss://boba-ethereum.gateway.tenderly.co/\", \"wss://gateway.tenderly.co/public/boba-ethereum\"],\n \"shortName\": \"Boba\",\n \"slug\": \"boba-network\",\n \"testnet\": false\n};\n\nvar c291 = {\n \"chain\": \"ETH\",\n \"chainId\": 291,\n \"explorers\": [{\n \"name\": \"orderlyscout\",\n \"url\": \"https://explorer.orderly.network\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmSpwp3RAVhZsErAQrCQxEmjnGqJQMigarzZbfqr9Ktakb\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"name\": \"Orderly Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 291,\n \"rpc\": [\"https://orderly.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://291.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.orderly.network\", \"https://l2-orderly-mainnet-0.t.conduit.xyz\"],\n \"shortName\": \"orderly\",\n \"slug\": \"orderly\",\n \"testnet\": false\n};\n\nvar c295 = {\n \"chain\": \"Hedera\",\n \"chainId\": 295,\n \"explorers\": [{\n \"name\": \"HashScan\",\n \"url\": \"https://hashscan.io/mainnet\",\n \"standard\": \"EIP3091\"\n }, {\n \"name\": \"Arkhia Explorer\",\n \"url\": \"https://explorer.arkhia.io\",\n \"standard\": \"none\"\n }, {\n \"name\": \"DragonGlass\",\n \"url\": \"https://app.dragonglass.me\",\n \"standard\": \"none\"\n }, {\n \"name\": \"Hedera Explorer\",\n \"url\": \"https://hederaexplorer.io\",\n \"standard\": \"none\"\n }, {\n \"name\": \"Ledger Works Explore\",\n \"url\": \"https://explore.lworks.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmQikzhvZKyMmbZJd7BVLZb2YTBDMgNDnaMCAErsVjsfuz\",\n \"width\": 1500,\n \"height\": 1500,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://hedera.com\",\n \"name\": \"Hedera Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"hbar\",\n \"symbol\": \"HBAR\",\n \"decimals\": 18\n },\n \"networkId\": 295,\n \"rpc\": [\"https://hedera.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://295.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.hashio.io/api\"],\n \"shortName\": \"hedera-mainnet\",\n \"slip44\": 3030,\n \"slug\": \"hedera\",\n \"testnet\": false\n};\n\nvar c296 = {\n \"chain\": \"Hedera\",\n \"chainId\": 296,\n \"explorers\": [{\n \"name\": \"HashScan\",\n \"url\": \"https://hashscan.io/testnet\",\n \"standard\": \"EIP3091\"\n }, {\n \"name\": \"Arkhia Explorer\",\n \"url\": \"https://explorer.arkhia.io\",\n \"standard\": \"none\"\n }, {\n \"name\": \"DragonGlass\",\n \"url\": \"https://app.dragonglass.me\",\n \"standard\": \"none\"\n }, {\n \"name\": \"Hedera Explorer\",\n \"url\": \"https://hederaexplorer.io\",\n \"standard\": \"none\"\n }, {\n \"name\": \"Ledger Works Explore\",\n \"url\": \"https://explore.lworks.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://portal.hedera.com\"],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmQikzhvZKyMmbZJd7BVLZb2YTBDMgNDnaMCAErsVjsfuz\",\n \"width\": 1500,\n \"height\": 1500,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://hedera.com\",\n \"name\": \"Hedera Testnet\",\n \"nativeCurrency\": {\n \"name\": \"hbar\",\n \"symbol\": \"HBAR\",\n \"decimals\": 18\n },\n \"networkId\": 296,\n \"rpc\": [\"https://hedera-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://296.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.hashio.io/api\"],\n \"shortName\": \"hedera-testnet\",\n \"slip44\": 1,\n \"slug\": \"hedera-testnet\",\n \"testnet\": true\n};\n\nvar c297 = {\n \"chain\": \"Hedera\",\n \"chainId\": 297,\n \"explorers\": [{\n \"name\": \"HashScan\",\n \"url\": \"https://hashscan.io/previewnet\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://portal.hedera.com\"],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmQikzhvZKyMmbZJd7BVLZb2YTBDMgNDnaMCAErsVjsfuz\",\n \"width\": 1500,\n \"height\": 1500,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://hedera.com\",\n \"name\": \"Hedera Previewnet\",\n \"nativeCurrency\": {\n \"name\": \"hbar\",\n \"symbol\": \"HBAR\",\n \"decimals\": 18\n },\n \"networkId\": 297,\n \"rpc\": [\"https://hedera-previewnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://297.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://previewnet.hashio.io/api\"],\n \"shortName\": \"hedera-previewnet\",\n \"slip44\": 3030,\n \"slug\": \"hedera-previewnet\",\n \"testnet\": false\n};\n\nvar c298 = {\n \"chain\": \"Hedera\",\n \"chainId\": 298,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmQikzhvZKyMmbZJd7BVLZb2YTBDMgNDnaMCAErsVjsfuz\",\n \"width\": 1500,\n \"height\": 1500,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://hedera.com\",\n \"name\": \"Hedera Localnet\",\n \"nativeCurrency\": {\n \"name\": \"hbar\",\n \"symbol\": \"HBAR\",\n \"decimals\": 18\n },\n \"networkId\": 298,\n \"rpc\": [],\n \"shortName\": \"hedera-localnet\",\n \"slip44\": 3030,\n \"slug\": \"hedera-localnet\",\n \"testnet\": false\n};\n\nvar c300 = {\n \"chain\": \"ETH\",\n \"chainId\": 300,\n \"explorers\": [{\n \"name\": \"zkSync Block Explorer\",\n \"url\": \"https://sepolia.explorer.zksync.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmRkhUD6J3B9WhT4hEWLrcFVTrBhx3CQgNC783aJsrwxSN\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmRkhUD6J3B9WhT4hEWLrcFVTrBhx3CQgNC783aJsrwxSN\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://zksync.io/\",\n \"name\": \"zkSync Sepolia Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 300,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-1\",\n \"bridges\": [{\n \"url\": \"https://bridge.zksync.io/\"\n }]\n },\n \"redFlags\": [\"reusedChainId\"],\n \"rpc\": [\"https://zksync-sepolia-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://300.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://sepolia.era.zksync.dev\"],\n \"shortName\": \"zksync-sepolia\",\n \"slip44\": 1,\n \"slug\": \"zksync-sepolia-testnet\",\n \"testnet\": true\n};\n\nvar c301 = {\n \"chain\": \"Bobaopera\",\n \"chainId\": 301,\n \"explorers\": [{\n \"name\": \"Bobaopera block explorer\",\n \"url\": \"https://blockexplorer.bobaopera.boba.network\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://boba.network\",\n \"name\": \"Bobaopera\",\n \"nativeCurrency\": {\n \"name\": \"Boba Token\",\n \"symbol\": \"BOBA\",\n \"decimals\": 18\n },\n \"networkId\": 301,\n \"rpc\": [\"https://bobaopera.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://301.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://bobaopera.boba.network\", \"wss://wss.bobaopera.boba.network\", \"https://replica.bobaopera.boba.network\", \"wss://replica-wss.bobaopera.boba.network\"],\n \"shortName\": \"Bobaopera\",\n \"slug\": \"bobaopera\",\n \"testnet\": false\n};\n\nvar c303 = {\n \"chain\": \"NCN\",\n \"chainId\": 303,\n \"explorers\": [{\n \"name\": \"neuroscan\",\n \"url\": \"https://testnet.ncnscan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"infoURL\": \"https://www.neurochain.ai\",\n \"name\": \"Neurochain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Neurochain\",\n \"symbol\": \"tNCN\",\n \"decimals\": 18\n },\n \"networkId\": 303,\n \"rpc\": [\"https://neurochain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://303.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://nc-rpc-test1.neurochain.io\"],\n \"shortName\": \"ncnt\",\n \"slip44\": 1,\n \"slug\": \"neurochain-testnet\",\n \"testnet\": true\n};\n\nvar c309 = {\n \"chain\": \"WYZ\",\n \"chainId\": 309,\n \"explorers\": [{\n \"name\": \"wyzth\",\n \"url\": \"http://24.199.108.65:4000\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmT5UMzAftM4mHCtk4pWX4sqyJCki88APbqECywrhJp91Q\",\n \"width\": 324,\n \"height\": 82,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmeDfLgA5heAAXsU8kf5J23Y8up4uHN27uRBEAJFPMJEu7\",\n \"width\": 48,\n \"height\": 48,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://wyzth.org/\",\n \"name\": \"Wyzth Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Wyzth\",\n \"symbol\": \"WYZ\",\n \"decimals\": 18\n },\n \"networkId\": 309,\n \"rpc\": [\"https://wyzth-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://309.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-testnet3.wyzthchain.org/\"],\n \"shortName\": \"wyz\",\n \"slip44\": 1,\n \"slug\": \"wyzth-testnet\",\n \"testnet\": true\n};\n\nvar c311 = {\n \"chain\": \"OMAX Chain\",\n \"chainId\": 311,\n \"explorers\": [{\n \"name\": \"Omax Chain Explorer\",\n \"url\": \"https://omaxray.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://Qmd7omPxrehSuxHHPMYd5Nr7nfrtjKdRJQEhDLfTb87w8G\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucet.omaxray.com/\"],\n \"icon\": {\n \"url\": \"ipfs://Qmd7omPxrehSuxHHPMYd5Nr7nfrtjKdRJQEhDLfTb87w8G\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.omaxcoin.com/\",\n \"name\": \"Omax Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"OMAX COIN\",\n \"symbol\": \"OMAX\",\n \"decimals\": 18\n },\n \"networkId\": 311,\n \"rpc\": [\"https://omax.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://311.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainapi.omaxray.com\"],\n \"shortName\": \"omax\",\n \"slug\": \"omax\",\n \"testnet\": false\n};\n\nvar c313 = {\n \"chain\": \"NCN\",\n \"chainId\": 313,\n \"explorers\": [{\n \"name\": \"neuroscan\",\n \"url\": \"https://ncnscan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"infoURL\": \"https://www.neurochain.ai\",\n \"name\": \"Neurochain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Neurochain\",\n \"symbol\": \"NCN\",\n \"decimals\": 18\n },\n \"networkId\": 313,\n \"rpc\": [\"https://neurochain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://313.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://nc-rpc-prd1.neurochain.io\", \"https://nc-rpc-prd2.neurochain.io\"],\n \"shortName\": \"ncn\",\n \"slug\": \"neurochain\",\n \"testnet\": false\n};\n\nvar c314 = {\n \"chain\": \"FIL\",\n \"chainId\": 314,\n \"explorers\": [{\n \"name\": \"Filfox\",\n \"url\": \"https://filfox.info/en\",\n \"standard\": \"none\"\n }, {\n \"name\": \"Beryx\",\n \"url\": \"https://beryx.zondax.ch\",\n \"standard\": \"none\"\n }, {\n \"name\": \"Glif Explorer\",\n \"url\": \"https://explorer.glif.io\",\n \"standard\": \"EIP3091\"\n }, {\n \"name\": \"Dev.storage\",\n \"url\": \"https://dev.storage\",\n \"standard\": \"none\"\n }, {\n \"name\": \"Filscan\",\n \"url\": \"https://filscan.io\",\n \"standard\": \"none\"\n }, {\n \"name\": \"Filscout\",\n \"url\": \"https://filscout.io/en\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmS9r9XQkMHVomWcSBNDkKkz9n87h9bH9ssabeiKZtANoU\",\n \"width\": 1000,\n \"height\": 1000,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://filecoin.io\",\n \"name\": \"Filecoin - Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"filecoin\",\n \"symbol\": \"FIL\",\n \"decimals\": 18\n },\n \"networkId\": 314,\n \"rpc\": [\"https://filecoin.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://314.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.node.glif.io/\", \"https://rpc.ankr.com/filecoin\", \"https://filecoin-mainnet.chainstacklabs.com/rpc/v1\", \"https://filfox.info/rpc/v1\"],\n \"shortName\": \"filecoin\",\n \"slip44\": 461,\n \"slug\": \"filecoin\",\n \"testnet\": false\n};\n\nvar c321 = {\n \"chain\": \"KCC\",\n \"chainId\": 321,\n \"explorers\": [{\n \"name\": \"KCC Explorer\",\n \"url\": \"https://explorer.kcc.io/en\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://kcc.io\",\n \"name\": \"KCC Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"KuCoin Token\",\n \"symbol\": \"KCS\",\n \"decimals\": 18\n },\n \"networkId\": 321,\n \"rpc\": [\"https://kcc.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://321.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-mainnet.kcc.network\", \"https://kcc.mytokenpocket.vip\", \"https://public-rpc.blockpi.io/http/kcc\"],\n \"shortName\": \"kcs\",\n \"slip44\": 641,\n \"slug\": \"kcc\",\n \"testnet\": false\n};\n\nvar c322 = {\n \"chain\": \"KCC\",\n \"chainId\": 322,\n \"explorers\": [{\n \"name\": \"kcc-scan-testnet\",\n \"url\": \"https://scan-testnet.kcc.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet-testnet.kcc.network\"],\n \"infoURL\": \"https://scan-testnet.kcc.network\",\n \"name\": \"KCC Testnet\",\n \"nativeCurrency\": {\n \"name\": \"KuCoin Testnet Token\",\n \"symbol\": \"tKCS\",\n \"decimals\": 18\n },\n \"networkId\": 322,\n \"rpc\": [\"https://kcc-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://322.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-testnet.kcc.network\"],\n \"shortName\": \"kcst\",\n \"slip44\": 1,\n \"slug\": \"kcc-testnet\",\n \"testnet\": true\n};\n\nvar c324 = {\n \"chain\": \"ETH\",\n \"chainId\": 324,\n \"explorers\": [{\n \"name\": \"zkSync Era Block Explorer\",\n \"url\": \"https://explorer.zksync.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmRkhUD6J3B9WhT4hEWLrcFVTrBhx3CQgNC783aJsrwxSN\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmRkhUD6J3B9WhT4hEWLrcFVTrBhx3CQgNC783aJsrwxSN\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://zksync.io/\",\n \"name\": \"zkSync Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 324,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-1\",\n \"bridges\": [{\n \"url\": \"https://bridge.zksync.io/\"\n }]\n },\n \"rpc\": [\"https://zksync.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://324.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.era.zksync.io\"],\n \"shortName\": \"zksync\",\n \"slug\": \"zksync\",\n \"testnet\": false\n};\n\nvar c333 = {\n \"chain\": \"Web3Q\",\n \"chainId\": 333,\n \"explorers\": [{\n \"name\": \"w3q-mainnet\",\n \"url\": \"https://explorer.mainnet.web3q.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://web3q.io/home.w3q/\",\n \"name\": \"Web3Q Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Web3Q\",\n \"symbol\": \"W3Q\",\n \"decimals\": 18\n },\n \"networkId\": 333,\n \"rpc\": [\"https://web3q.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://333.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.web3q.io:8545\"],\n \"shortName\": \"w3q\",\n \"slug\": \"web3q\",\n \"testnet\": false\n};\n\nvar c335 = {\n \"chain\": \"DFK\",\n \"chainId\": 335,\n \"explorers\": [{\n \"name\": \"ethernal\",\n \"url\": \"https://explorer-test.dfkchain.com\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmdwQDr6vmBtXmK2TmknkEuZNoaDqTasFdZdu3DRw8b2wt\",\n \"width\": 1000,\n \"height\": 1628,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmQB48m15TzhUFrmu56QCRQjkrkgUaKfgCmKE8o3RzmuPJ\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://defikingdoms.com\",\n \"name\": \"DFK Chain Test\",\n \"nativeCurrency\": {\n \"name\": \"Jewel\",\n \"symbol\": \"JEWEL\",\n \"decimals\": 18\n },\n \"networkId\": 335,\n \"rpc\": [\"https://dfk-chain-test.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://335.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/defi-kingdoms/dfk-chain-testnet/rpc\"],\n \"shortName\": \"DFKTEST\",\n \"slip44\": 1,\n \"slug\": \"dfk-chain-test\",\n \"testnet\": true\n};\n\nvar c336 = {\n \"chain\": \"SDN\",\n \"chainId\": 336,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://blockscout.com/shiden\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }, {\n \"name\": \"subscan\",\n \"url\": \"https://shiden.subscan.io\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://Qma2GfW5nQHuA7nGqdEfwaXPL63G9oTwRTQKaGTfjNtM2W\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmQySjAoWHgk3ou1yvBi2TrTcgH6KhfGiU7GcrLzrAeRkE\",\n \"width\": 250,\n \"height\": 250,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://shiden.astar.network/\",\n \"name\": \"Shiden\",\n \"nativeCurrency\": {\n \"name\": \"Shiden\",\n \"symbol\": \"SDN\",\n \"decimals\": 18\n },\n \"networkId\": 336,\n \"rpc\": [\"https://shiden.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://336.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://shiden.api.onfinality.io/public\", \"https://shiden-rpc.dwellir.com\", \"https://shiden.public.blastapi.io\", \"wss://shiden.api.onfinality.io/public-ws\", \"wss://shiden.public.blastapi.io\", \"wss://shiden-rpc.dwellir.com\"],\n \"shortName\": \"sdn\",\n \"slug\": \"shiden\",\n \"testnet\": false\n};\n\nvar c338 = {\n \"chain\": \"CRO\",\n \"chainId\": 338,\n \"explorers\": [{\n \"name\": \"Cronos Testnet Explorer\",\n \"url\": \"https://explorer.cronos.org/testnet\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://cronos.org/faucet\"],\n \"infoURL\": \"https://cronos.org\",\n \"name\": \"Cronos Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Cronos Test Coin\",\n \"symbol\": \"TCRO\",\n \"decimals\": 18\n },\n \"networkId\": 338,\n \"rpc\": [\"https://cronos-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://338.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://evm-t3.cronos.org\"],\n \"shortName\": \"tcro\",\n \"slip44\": 1,\n \"slug\": \"cronos-testnet\",\n \"testnet\": true\n};\n\nvar c361 = {\n \"chain\": \"Theta\",\n \"chainId\": 361,\n \"explorers\": [{\n \"name\": \"Theta Mainnet Explorer\",\n \"url\": \"https://explorer.thetatoken.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.thetatoken.org/\",\n \"name\": \"Theta Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Theta Fuel\",\n \"symbol\": \"TFUEL\",\n \"decimals\": 18\n },\n \"networkId\": 361,\n \"rpc\": [\"https://theta.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://361.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://eth-rpc-api.thetatoken.org/rpc\"],\n \"shortName\": \"theta-mainnet\",\n \"slug\": \"theta\",\n \"testnet\": false\n};\n\nvar c363 = {\n \"chain\": \"Theta\",\n \"chainId\": 363,\n \"explorers\": [{\n \"name\": \"Theta Sapphire Testnet Explorer\",\n \"url\": \"https://guardian-testnet-sapphire-explorer.thetatoken.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.thetatoken.org/\",\n \"name\": \"Theta Sapphire Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Theta Fuel\",\n \"symbol\": \"TFUEL\",\n \"decimals\": 18\n },\n \"networkId\": 363,\n \"rpc\": [\"https://theta-sapphire-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://363.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://eth-rpc-api-sapphire.thetatoken.org/rpc\"],\n \"shortName\": \"theta-sapphire\",\n \"slip44\": 1,\n \"slug\": \"theta-sapphire-testnet\",\n \"testnet\": true\n};\n\nvar c364 = {\n \"chain\": \"Theta\",\n \"chainId\": 364,\n \"explorers\": [{\n \"name\": \"Theta Amber Testnet Explorer\",\n \"url\": \"https://guardian-testnet-amber-explorer.thetatoken.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.thetatoken.org/\",\n \"name\": \"Theta Amber Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Theta Fuel\",\n \"symbol\": \"TFUEL\",\n \"decimals\": 18\n },\n \"networkId\": 364,\n \"rpc\": [\"https://theta-amber-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://364.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://eth-rpc-api-amber.thetatoken.org/rpc\"],\n \"shortName\": \"theta-amber\",\n \"slip44\": 1,\n \"slug\": \"theta-amber-testnet\",\n \"testnet\": true\n};\n\nvar c365 = {\n \"chain\": \"Theta\",\n \"chainId\": 365,\n \"explorers\": [{\n \"name\": \"Theta Testnet Explorer\",\n \"url\": \"https://testnet-explorer.thetatoken.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.thetatoken.org/\",\n \"name\": \"Theta Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Theta Fuel\",\n \"symbol\": \"TFUEL\",\n \"decimals\": 18\n },\n \"networkId\": 365,\n \"rpc\": [\"https://theta-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://365.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://eth-rpc-api-testnet.thetatoken.org/rpc\"],\n \"shortName\": \"theta-testnet\",\n \"slip44\": 1,\n \"slug\": \"theta-testnet\",\n \"testnet\": true\n};\n\nvar c369 = {\n \"chain\": \"PLS\",\n \"chainId\": 369,\n \"ens\": {\n \"registry\": \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\"\n },\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://scan.pulsechain.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }, {\n \"name\": \"otterscan\",\n \"url\": \"https://otter.pulsechain.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"infoURL\": \"https://pulsechain.com/\",\n \"name\": \"PulseChain\",\n \"nativeCurrency\": {\n \"name\": \"Pulse\",\n \"symbol\": \"PLS\",\n \"decimals\": 18\n },\n \"networkId\": 369,\n \"redFlags\": [],\n \"rpc\": [\"https://pulsechain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://369.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://pulsechain.publicnode.com\", \"https://rpc.pulsechain.com\", \"wss://rpc.pulsechain.com\", \"wss://pulsechain.publicnode.com\", \"https://rpc-pulsechain.g4mm4.io\", \"wss://rpc-pulsechain.g4mm4.io\"],\n \"shortName\": \"pls\",\n \"slip44\": 60,\n \"slug\": \"pulsechain\",\n \"status\": \"active\",\n \"testnet\": false\n};\n\nvar c371 = {\n \"chain\": \"tCNT\",\n \"chainId\": 371,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://explorer-testnet.theconsta.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmfQ1yae6uvXgBSwnwJM4Mtp8ctH66tM6mB1Hsgu4XvsC9\",\n \"width\": 2000,\n \"height\": 2000,\n \"format\": \"png\"\n },\n \"infoURL\": \"http://theconsta.com\",\n \"name\": \"Consta Testnet\",\n \"nativeCurrency\": {\n \"name\": \"tCNT\",\n \"symbol\": \"tCNT\",\n \"decimals\": 18\n },\n \"networkId\": 371,\n \"rpc\": [\"https://consta-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://371.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-testnet.theconsta.com\"],\n \"shortName\": \"tCNT\",\n \"slip44\": 1,\n \"slug\": \"consta-testnet\",\n \"testnet\": true\n};\n\nvar c385 = {\n \"chain\": \"CRO\",\n \"chainId\": 385,\n \"explorers\": [],\n \"faucets\": [\"https://pipa.lisinski.online\"],\n \"infoURL\": \"https://lisinski.online\",\n \"name\": \"Lisinski\",\n \"nativeCurrency\": {\n \"name\": \"Lisinski Ether\",\n \"symbol\": \"LISINS\",\n \"decimals\": 18\n },\n \"networkId\": 385,\n \"rpc\": [\"https://lisinski.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://385.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-bitfalls1.lisinski.online\"],\n \"shortName\": \"lisinski\",\n \"slug\": \"lisinski\",\n \"testnet\": false\n};\n\nvar c399 = {\n \"chain\": \"Nativ3\",\n \"chainId\": 399,\n \"explorers\": [{\n \"name\": \"N3scan\",\n \"url\": \"https://scan.nativ3.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmVzJDndPui6qBSeJWe5kMLA56C3KpVhqqqk9xvVKE1DGb\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://nativ3.network\",\n \"name\": \"Nativ3 Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"USNT\",\n \"symbol\": \"USNT\",\n \"decimals\": 18\n },\n \"networkId\": 399,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-42161\",\n \"bridges\": [{\n \"url\": \"https://bridge.nativ3.network\"\n }]\n },\n \"rpc\": [\"https://nativ3.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://399.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.nativ3.network\", \"wss://ws.nativ3.network\"],\n \"shortName\": \"N3\",\n \"slug\": \"nativ3\",\n \"testnet\": false\n};\n\nvar c400 = {\n \"chain\": \"HPN\",\n \"chainId\": 400,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://testnet.hyperonchain.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmWxhyxXTEsWH98v7M3ck4ZL1qQoUaHG4HgtgxzD2KJQ5m\",\n \"width\": 540,\n \"height\": 541,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucet.hyperonchain.com\"],\n \"icon\": {\n \"url\": \"ipfs://QmWxhyxXTEsWH98v7M3ck4ZL1qQoUaHG4HgtgxzD2KJQ5m\",\n \"width\": 540,\n \"height\": 541,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://docs.hyperonchain.com\",\n \"name\": \"HyperonChain TestNet\",\n \"nativeCurrency\": {\n \"name\": \"HyperonChain\",\n \"symbol\": \"HPN\",\n \"decimals\": 18\n },\n \"networkId\": 400,\n \"rpc\": [\"https://hyperonchain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://400.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-rpc.hyperonchain.com\"],\n \"shortName\": \"hpn\",\n \"slip44\": 1,\n \"slug\": \"hyperonchain-testnet\",\n \"testnet\": true\n};\n\nvar c401 = {\n \"chain\": \"OZONE\",\n \"chainId\": 401,\n \"explorers\": [{\n \"name\": \"OZONE Scan\",\n \"url\": \"https://testnet.ozonescan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmbM4weV8Bk6c9yNhosYntkVw39SNZtCHYGgWyXTxkevZ8\",\n \"width\": 1600,\n \"height\": 1600,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://ozonechain.io\",\n \"name\": \"Ozone Chain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"OZONE\",\n \"symbol\": \"OZO\",\n \"decimals\": 18\n },\n \"networkId\": 401,\n \"rpc\": [\"https://ozone-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://401.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://node1.testnet.ozonechain.io\"],\n \"shortName\": \"ozo_tst\",\n \"slip44\": 1,\n \"slug\": \"ozone-chain-testnet\",\n \"testnet\": true\n};\n\nvar c408 = {\n \"chain\": \"OmegaNetwork\",\n \"chainId\": 408,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreig676zxfhwhcx5bvvvjxedx6ftr2wq4iiznrwm3c6ozrprbc4oxwm\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"name\": \"Omega Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Omega Network Coin\",\n \"symbol\": \"OMN\",\n \"decimals\": 18\n },\n \"networkId\": 408,\n \"redFlags\": [],\n \"rpc\": [\"https://omega.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://408.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-rpc.omtch.com\"],\n \"shortName\": \"OmegaNetwork\",\n \"slug\": \"omega\",\n \"testnet\": false\n};\n\nvar c411 = {\n \"chain\": \"PC\",\n \"chainId\": 411,\n \"explorers\": [{\n \"name\": \"pepechain explorer\",\n \"url\": \"https://explorer.pepe-chain.vip\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreibjsc3gww3moti27za2hpyq552aevux3yv5y2ntdklksyr4v4uavy\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://pepe-chain.vip\",\n \"name\": \"Pepe Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Pepe\",\n \"symbol\": \"PEPE\",\n \"decimals\": 18\n },\n \"networkId\": 411,\n \"rpc\": [\"https://pepe-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://411.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.pepe-chain.vip\"],\n \"shortName\": \"pepe\",\n \"slug\": \"pepe-chain\",\n \"status\": \"active\",\n \"testnet\": false\n};\n\nvar c416 = {\n \"chain\": \"SX\",\n \"chainId\": 416,\n \"explorers\": [{\n \"name\": \"SX Network Explorer\",\n \"url\": \"https://explorer.sx.technology\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmSXLXqyr2H6Ja5XrmznXbWTEvF2gFaL8RXNXgyLmDHjAF\",\n \"width\": 896,\n \"height\": 690,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.sx.technology\",\n \"name\": \"SX Network Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"SX Network\",\n \"symbol\": \"SX\",\n \"decimals\": 18\n },\n \"networkId\": 416,\n \"rpc\": [\"https://sx-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://416.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.sx.technology\"],\n \"shortName\": \"SX\",\n \"slug\": \"sx-network\",\n \"testnet\": false\n};\n\nvar c418 = {\n \"chain\": \"LaTestnet\",\n \"chainId\": 418,\n \"explorers\": [{\n \"name\": \"LaTestnet Explorer\",\n \"url\": \"https://testexplorer.lachain.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.lachain.network\"],\n \"features\": [{\n \"name\": \"EIP155\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmQxGA6rhuCQDXUueVcNvFRhMEWisyTmnF57TqL7h6k6cZ\",\n \"width\": 1280,\n \"height\": 1280,\n \"format\": \"png\"\n },\n \"name\": \"LaTestnet\",\n \"nativeCurrency\": {\n \"name\": \"Test LaCoin\",\n \"symbol\": \"TLA\",\n \"decimals\": 18\n },\n \"networkId\": 418,\n \"rpc\": [\"https://latestnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://418.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.testnet.lachain.network\", \"https://lachain-testnet.rpc-nodes.cedalio.dev\"],\n \"shortName\": \"latestnet\",\n \"slug\": \"latestnet\",\n \"testnet\": true\n};\n\nvar c420 = {\n \"chain\": \"ETH\",\n \"chainId\": 420,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://optimism-goerli.blockscout.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmcxZHpyJa8T4i63xqjPYrZ6tKrt55tZJpbXcjSDKuKaf9/optimism/512.png\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://optimism.io\",\n \"name\": \"Optimism Goerli Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Goerli Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 420,\n \"redFlags\": [],\n \"rpc\": [\"https://optimism-goerli.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://420.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://goerli.optimism.io\", \"https://optimism-goerli.publicnode.com\", \"wss://optimism-goerli.publicnode.com\", \"https://optimism-goerli.gateway.tenderly.co\", \"wss://optimism-goerli.gateway.tenderly.co\"],\n \"shortName\": \"ogor\",\n \"slip44\": 1,\n \"slug\": \"optimism-goerli\",\n \"testnet\": true\n};\n\nvar c424 = {\n \"chain\": \"ETH\",\n \"chainId\": 424,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://explorer.publicgoods.network\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmUVJ7MLCEAfq3pHVPFLscqRMiyAY5biVgTkeDQCmAhHNS\",\n \"width\": 574,\n \"height\": 574,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://publicgoods.network/\",\n \"name\": \"PGN (Public Goods Network)\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 424,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-1\",\n \"bridges\": [{\n \"url\": \"https://bridge.publicgoods.network\"\n }]\n },\n \"rpc\": [\"https://pgn-public-goods-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://424.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.publicgoods.network\"],\n \"shortName\": \"PGN\",\n \"slug\": \"pgn-public-goods-network\",\n \"testnet\": false\n};\n\nvar c427 = {\n \"chain\": \"ZeethChain\",\n \"chainId\": 427,\n \"explorers\": [{\n \"name\": \"Zeeth Explorer\",\n \"url\": \"https://explorer.zeeth.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"name\": \"Zeeth Chain\",\n \"nativeCurrency\": {\n \"name\": \"Zeeth Token\",\n \"symbol\": \"ZTH\",\n \"decimals\": 18\n },\n \"networkId\": 427,\n \"rpc\": [\"https://zeeth-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://427.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.zeeth.io\"],\n \"shortName\": \"zeeth\",\n \"slug\": \"zeeth-chain\",\n \"testnet\": false\n};\n\nvar c428 = {\n \"chain\": \"Geso Verse\",\n \"chainId\": 428,\n \"explorers\": [{\n \"name\": \"Geso Verse Explorer\",\n \"url\": \"https://explorer.verse.gesoten.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://Qmb7oJY9zd9sTzxNNQNTVZQz2hkd1aA94mWm4cvXfJ9QxV\",\n \"width\": 1280,\n \"height\": 1280,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://gesoten.com/\",\n \"name\": \"Geso Verse\",\n \"nativeCurrency\": {\n \"name\": \"OAS\",\n \"symbol\": \"OAS\",\n \"decimals\": 18\n },\n \"networkId\": 428,\n \"rpc\": [\"https://geso-verse.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://428.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.verse.gesoten.com/\"],\n \"shortName\": \"GSV\",\n \"slug\": \"geso-verse\",\n \"testnet\": false\n};\n\nvar c443 = {\n \"chain\": \"ETH\",\n \"chainId\": 443,\n \"explorers\": [{\n \"name\": \"Ten Sepolia Rollup Explorer\",\n \"url\": \"https://tenscan.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://ten.xyz\",\n \"name\": \"Ten Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Sepolia Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 443,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-5\",\n \"bridges\": [{\n \"url\": \"https://bridge.ten.xyz\"\n }]\n },\n \"rpc\": [\"https://ten-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://443.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.ten.xyz\"],\n \"shortName\": \"ten-testnet\",\n \"slip44\": 1,\n \"slug\": \"ten-testnet\",\n \"testnet\": true,\n \"title\": \"Ten Sepolia Rollup Testnet\"\n};\n\nvar c444 = {\n \"chain\": \"ETH\",\n \"chainId\": 444,\n \"explorers\": [{\n \"name\": \"Synapse Chain Sepolia\",\n \"url\": \"https://sepolia.synapsescan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmX2Z71QszaZvpMppdNWeCLqmeWk8NA6KMDLMqAt5VRyVi/synapse.webp\",\n \"width\": 720,\n \"height\": 720,\n \"format\": \"webp\"\n },\n \"infoURL\": \"https://synapseprotocol.com\",\n \"name\": \"Synapse Chain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Sepolia ETH\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 444,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-11155111\",\n \"bridges\": [{\n \"url\": \"https://docs.synapseprotocol.com/synapse-chain/using-synapse-chain/bridging-to-synapse-chain\"\n }]\n },\n \"redFlags\": [\"reusedChainId\"],\n \"rpc\": [\"https://synapse-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://444.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://sepolia.synapseprotocol.com\"],\n \"shortName\": \"synapse-sepolia\",\n \"slip44\": 1,\n \"slug\": \"synapse-chain-testnet\",\n \"status\": \"active\",\n \"testnet\": true\n};\n\nvar c456 = {\n \"chain\": \"ARZIO\",\n \"chainId\": 456,\n \"explorers\": [{\n \"name\": \"ARZIO Scan\",\n \"url\": \"https://scan.arzio.co\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmUwqGWGjjQweTprn5LBirAwRjYnteTiFLCVpSNHrfMmSL\",\n \"width\": 150,\n \"height\": 150,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://chain.arzio.co\",\n \"name\": \"ARZIO Chain\",\n \"nativeCurrency\": {\n \"name\": \"ARZIO\",\n \"symbol\": \"AZO\",\n \"decimals\": 18\n },\n \"networkId\": 456,\n \"rpc\": [\"https://arzio-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://456.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://chain-rpc.arzio.co\"],\n \"shortName\": \"arzio\",\n \"slug\": \"arzio-chain\",\n \"testnet\": false\n};\n\nvar c462 = {\n \"chain\": \"Areon\",\n \"chainId\": 462,\n \"explorers\": [{\n \"name\": \"AreonScan\",\n \"url\": \"https://areonscan.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreihs2nrnizpcuzjmuu2yi7wrtwd7qlqje46qnil5bnntfbfkb2roea\",\n \"width\": 1000,\n \"height\": 1000,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://areon.network\",\n \"name\": \"Areon Network Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Areon\",\n \"symbol\": \"TAREA\",\n \"decimals\": 18\n },\n \"networkId\": 462,\n \"rpc\": [\"https://areon-network-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://462.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-rpc.areon.network\", \"https://testnet-rpc2.areon.network\", \"https://testnet-rpc3.areon.network\", \"https://testnet-rpc4.areon.network\", \"https://testnet-rpc5.areon.network\"],\n \"shortName\": \"tarea\",\n \"slip44\": 1,\n \"slug\": \"areon-network-testnet\",\n \"testnet\": true\n};\n\nvar c463 = {\n \"chain\": \"Areon\",\n \"chainId\": 463,\n \"explorers\": [{\n \"name\": \"AreonScan\",\n \"url\": \"https://areonscan.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreihs2nrnizpcuzjmuu2yi7wrtwd7qlqje46qnil5bnntfbfkb2roea\",\n \"width\": 1000,\n \"height\": 1000,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://areon.network\",\n \"name\": \"Areon Network Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Areon\",\n \"symbol\": \"AREA\",\n \"decimals\": 18\n },\n \"networkId\": 463,\n \"rpc\": [\"https://areon-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://463.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-rpc.areon.network\"],\n \"shortName\": \"area\",\n \"slug\": \"areon-network\",\n \"testnet\": false\n};\n\nvar c499 = {\n \"chain\": \"RUPX\",\n \"chainId\": 499,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://www.rupx.io\",\n \"name\": \"Rupaya\",\n \"nativeCurrency\": {\n \"name\": \"Rupaya\",\n \"symbol\": \"RUPX\",\n \"decimals\": 18\n },\n \"networkId\": 499,\n \"rpc\": [],\n \"shortName\": \"rupx\",\n \"slip44\": 499,\n \"slug\": \"rupaya\",\n \"testnet\": false\n};\n\nvar c500 = {\n \"chain\": \"CAM\",\n \"chainId\": 500,\n \"explorers\": [{\n \"name\": \"blockexplorer\",\n \"url\": \"https://suite.camino.network/explorer\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmSEoUonisawfCvT3osysuZzbqUEHugtgNraePKWL8PKYa\",\n \"width\": 768,\n \"height\": 768,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://camino.network/\",\n \"name\": \"Camino C-Chain\",\n \"nativeCurrency\": {\n \"name\": \"Camino\",\n \"symbol\": \"CAM\",\n \"decimals\": 18\n },\n \"networkId\": 1000,\n \"rpc\": [\"https://camino-c-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://500.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.camino.network/ext/bc/C/rpc\"],\n \"shortName\": \"Camino\",\n \"slug\": \"camino-c-chain\",\n \"testnet\": false\n};\n\nvar c501 = {\n \"chain\": \"CAM\",\n \"chainId\": 501,\n \"explorers\": [{\n \"name\": \"blockexplorer\",\n \"url\": \"https://suite.camino.network/explorer\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmSEoUonisawfCvT3osysuZzbqUEHugtgNraePKWL8PKYa\",\n \"width\": 768,\n \"height\": 768,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://camino.network/\",\n \"name\": \"Columbus Test Network\",\n \"nativeCurrency\": {\n \"name\": \"Camino\",\n \"symbol\": \"CAM\",\n \"decimals\": 18\n },\n \"networkId\": 1001,\n \"rpc\": [\"https://columbus-test-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://501.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://columbus.camino.network/ext/bc/C/rpc\"],\n \"shortName\": \"Columbus\",\n \"slip44\": 1,\n \"slug\": \"columbus-test-network\",\n \"testnet\": true\n};\n\nvar c512 = {\n \"chain\": \"AAC\",\n \"chainId\": 512,\n \"explorers\": [{\n \"name\": \"aacscan\",\n \"url\": \"https://scan.acuteangle.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmRUrz4dULaoaMpnqd8qXT7ehwz3aaqnYKY4ePsy7isGaF\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.acuteangle.com/\",\n \"name\": \"Double-A Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Acuteangle Native Token\",\n \"symbol\": \"AAC\",\n \"decimals\": 18\n },\n \"networkId\": 512,\n \"rpc\": [\"https://double-a-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://512.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.acuteangle.com\"],\n \"shortName\": \"aac\",\n \"slip44\": 1512,\n \"slug\": \"double-a-chain\",\n \"testnet\": false\n};\n\nvar c513 = {\n \"chain\": \"AAC\",\n \"chainId\": 513,\n \"explorers\": [{\n \"name\": \"aacscan-testnet\",\n \"url\": \"https://scan-testnet.acuteangle.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://scan-testnet.acuteangle.com/faucet\"],\n \"icon\": {\n \"url\": \"ipfs://QmRUrz4dULaoaMpnqd8qXT7ehwz3aaqnYKY4ePsy7isGaF\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.acuteangle.com/\",\n \"name\": \"Double-A Chain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Acuteangle Native Token\",\n \"symbol\": \"AAC\",\n \"decimals\": 18\n },\n \"networkId\": 513,\n \"rpc\": [\"https://double-a-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://513.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-testnet.acuteangle.com\"],\n \"shortName\": \"aact\",\n \"slip44\": 1,\n \"slug\": \"double-a-chain-testnet\",\n \"testnet\": true\n};\n\nvar c516 = {\n \"chain\": \"GearZero\",\n \"chainId\": 516,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://token.gearzero.ca/mainnet\",\n \"name\": \"Gear Zero Network Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Gear Zero Network Native Token\",\n \"symbol\": \"GZN\",\n \"decimals\": 18\n },\n \"networkId\": 516,\n \"rpc\": [\"https://gear-zero-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://516.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://gzn.linksme.info\"],\n \"shortName\": \"gz-mainnet\",\n \"slip44\": 516,\n \"slug\": \"gear-zero-network\",\n \"testnet\": false\n};\n\nvar c520 = {\n \"chain\": \"XSC\",\n \"chainId\": 520,\n \"explorers\": [{\n \"name\": \"xscscan\",\n \"url\": \"https://xscscan.pub\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://xsc.pub/faucet\"],\n \"icon\": {\n \"url\": \"ipfs://QmNmAFgQKkjofaBR5mhB5ygE1Gna36YBVsGkgZQxrwW85s\",\n \"width\": 98,\n \"height\": 96,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://xsc.pub/\",\n \"name\": \"XT Smart Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"XT Smart Chain Native Token\",\n \"symbol\": \"XT\",\n \"decimals\": 18\n },\n \"networkId\": 1024,\n \"rpc\": [\"https://xt-smart-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://520.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://datarpc1.xsc.pub\", \"https://datarpc2.xsc.pub\", \"https://datarpc3.xsc.pub\"],\n \"shortName\": \"xt\",\n \"slug\": \"xt-smart-chain\",\n \"testnet\": false\n};\n\nvar c529 = {\n \"chain\": \"FIRE\",\n \"chainId\": 529,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmYjuztyURb3Fc6ZTLgCbwQa64CcVoigF5j9cafzuSbqgf\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://thefirechain.com\",\n \"name\": \"Firechain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Firechain\",\n \"symbol\": \"FIRE\",\n \"decimals\": 18\n },\n \"networkId\": 529,\n \"rpc\": [\"https://firechain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://529.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.rpc1.thefirechain.com\"],\n \"shortName\": \"fire\",\n \"slug\": \"firechain\",\n \"status\": \"incubating\",\n \"testnet\": false\n};\n\nvar c530 = {\n \"chain\": \"Fxcore\",\n \"chainId\": 530,\n \"explorers\": [{\n \"name\": \"FunctionX Explorer\",\n \"url\": \"https://fx-evm.functionx.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreifrf2iq3k3dqfbvp3pacwuxu33up3usmrhojt5ielyfty7xkixu3i\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://functionx.io/\",\n \"name\": \"F(x)Core Mainnet Network\",\n \"nativeCurrency\": {\n \"name\": \"Function X\",\n \"symbol\": \"FX\",\n \"decimals\": 18\n },\n \"networkId\": 530,\n \"rpc\": [\"https://f-x-core-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://530.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://fx-json-web3.functionx.io:8545\"],\n \"shortName\": \"FxCore\",\n \"slug\": \"f-x-core-network\",\n \"testnet\": false\n};\n\nvar c534 = {\n \"chain\": \"Candle\",\n \"chainId\": 534,\n \"explorers\": [{\n \"name\": \"candleexplorer\",\n \"url\": \"https://candleexplorer.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://candlelabs.org/\",\n \"name\": \"Candle\",\n \"nativeCurrency\": {\n \"name\": \"CANDLE\",\n \"symbol\": \"CNDL\",\n \"decimals\": 18\n },\n \"networkId\": 534,\n \"rpc\": [\"https://candle.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://534.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://candle-rpc.com/\", \"https://rpc.cndlchain.com\"],\n \"shortName\": \"CNDL\",\n \"slip44\": 674,\n \"slug\": \"candle\",\n \"testnet\": false\n};\n\nvar c542 = {\n \"chain\": \"PAW\",\n \"chainId\": 542,\n \"explorers\": [{\n \"name\": \"PAWCHAIN Testnet\",\n \"url\": \"https://pawscan.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://pawchainx.com/\",\n \"name\": \"PAWCHAIN Testnet\",\n \"nativeCurrency\": {\n \"name\": \"PAW\",\n \"symbol\": \"PAW\",\n \"decimals\": 18\n },\n \"networkId\": 542,\n \"rpc\": [\"https://pawchain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://542.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://pawchainx.com/\"],\n \"shortName\": \"PAW\",\n \"slip44\": 1,\n \"slug\": \"pawchain-testnet\",\n \"testnet\": true\n};\n\nvar c555 = {\n \"chain\": \"VELA1\",\n \"chainId\": 555,\n \"explorers\": [{\n \"name\": \"Vela1 Chain Mainnet Explorer\",\n \"url\": \"https://exp.velaverse.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://velaverse.io\",\n \"name\": \"Vela1 Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"CLASS COIN\",\n \"symbol\": \"CLASS\",\n \"decimals\": 18\n },\n \"networkId\": 555,\n \"rpc\": [\"https://vela1-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://555.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.velaverse.io\"],\n \"shortName\": \"CLASS\",\n \"slug\": \"vela1-chain\",\n \"testnet\": false\n};\n\nvar c558 = {\n \"chain\": \"TAO\",\n \"chainId\": 558,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://tao.network\",\n \"name\": \"Tao Network\",\n \"nativeCurrency\": {\n \"name\": \"Tao\",\n \"symbol\": \"TAO\",\n \"decimals\": 18\n },\n \"networkId\": 558,\n \"rpc\": [\"https://tao-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://558.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.testnet.tao.network\", \"http://rpc.testnet.tao.network:8545\", \"https://rpc.tao.network\", \"wss://rpc.tao.network\"],\n \"shortName\": \"tao\",\n \"slug\": \"tao-network\",\n \"testnet\": true\n};\n\nvar c568 = {\n \"chain\": \"DC\",\n \"chainId\": 568,\n \"explorers\": [{\n \"name\": \"dogechain testnet explorer\",\n \"url\": \"https://explorer-testnet.dogechain.dog\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.dogechain.dog\"],\n \"icon\": {\n \"url\": \"ipfs://QmNS6B6L8FfgGSMTEi2SxD3bK5cdmKPNtQKcYaJeRWrkHs\",\n \"width\": 732,\n \"height\": 732,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://dogechain.dog\",\n \"name\": \"Dogechain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Dogecoin\",\n \"symbol\": \"DOGE\",\n \"decimals\": 18\n },\n \"networkId\": 568,\n \"rpc\": [\"https://dogechain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://568.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-testnet.dogechain.dog\"],\n \"shortName\": \"dct\",\n \"slip44\": 1,\n \"slug\": \"dogechain-testnet\",\n \"testnet\": true\n};\n\nvar c570 = {\n \"chain\": \"SYS\",\n \"chainId\": 570,\n \"explorers\": [{\n \"name\": \"Rollux Explorer\",\n \"url\": \"https://explorer.rollux.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://rollux.id/faucetapp\"],\n \"infoURL\": \"https://rollux.com\",\n \"name\": \"Rollux Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Syscoin\",\n \"symbol\": \"SYS\",\n \"decimals\": 18\n },\n \"networkId\": 570,\n \"rpc\": [\"https://rollux.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://570.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.rollux.com\", \"wss://rpc.rollux.com/wss\"],\n \"shortName\": \"sys-rollux\",\n \"slug\": \"rollux\",\n \"testnet\": false\n};\n\nvar c571 = {\n \"chain\": \"MTC\",\n \"chainId\": 571,\n \"explorers\": [{\n \"name\": \"MetaExplorer\",\n \"url\": \"https://explorer.metatime.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmUH2Ph2hW4upvevEAGCaSo7nd8nthqMx5RrHcrnNZ9Y3g\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://metatime.com/en\",\n \"name\": \"MetaChain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Metatime Coin\",\n \"symbol\": \"MTC\",\n \"decimals\": 18\n },\n \"networkId\": 571,\n \"rpc\": [\"https://metachain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://571.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.metatime.com\"],\n \"shortName\": \"metatime\",\n \"slip44\": 571,\n \"slug\": \"metachain\",\n \"testnet\": false\n};\n\nvar c588 = {\n \"chain\": \"ETH\",\n \"chainId\": 588,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://stardust-explorer.metis.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.metis.io\",\n \"name\": \"Metis Stardust Testnet\",\n \"nativeCurrency\": {\n \"name\": \"tMetis\",\n \"symbol\": \"METIS\",\n \"decimals\": 18\n },\n \"networkId\": 588,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-4\",\n \"bridges\": [{\n \"url\": \"https://bridge.metis.io\"\n }]\n },\n \"rpc\": [\"https://metis-stardust-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://588.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://stardust.metis.io/?owner=588\"],\n \"shortName\": \"metis-stardust\",\n \"slip44\": 1,\n \"slug\": \"metis-stardust-testnet\",\n \"status\": \"deprecated\",\n \"testnet\": true\n};\n\nvar c592 = {\n \"chain\": \"ASTR\",\n \"chainId\": 592,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://blockscout.com/astar\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }, {\n \"name\": \"subscan\",\n \"url\": \"https://astar.subscan.io\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://Qma2GfW5nQHuA7nGqdEfwaXPL63G9oTwRTQKaGTfjNtM2W\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://Qmdvmx3p6gXBCLUMU1qivscaTNkT6h3URdhUTZCHLwKudg\",\n \"width\": 1000,\n \"height\": 1000,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://astar.network/\",\n \"name\": \"Astar\",\n \"nativeCurrency\": {\n \"name\": \"Astar\",\n \"symbol\": \"ASTR\",\n \"decimals\": 18\n },\n \"networkId\": 592,\n \"redFlags\": [],\n \"rpc\": [\"https://astar.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://592.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://evm.astar.network\", \"https://rpc.astar.network:8545\"],\n \"shortName\": \"astr\",\n \"slug\": \"astar\",\n \"testnet\": false\n};\n\nvar c595 = {\n \"chain\": \"mACA\",\n \"chainId\": 595,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://blockscout.mandala.aca-staging.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"infoURL\": \"https://acala.network\",\n \"name\": \"Acala Mandala Testnet TC9\",\n \"nativeCurrency\": {\n \"name\": \"Acala Mandala Token\",\n \"symbol\": \"mACA\",\n \"decimals\": 18\n },\n \"networkId\": 595,\n \"rpc\": [\"https://acala-mandala-testnet-tc9.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://595.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://eth-rpc-tc9.aca-staging.network\", \"wss://eth-rpc-tc9.aca-staging.network\"],\n \"shortName\": \"maca\",\n \"slip44\": 1,\n \"slug\": \"acala-mandala-testnet-tc9\",\n \"testnet\": true\n};\n\nvar c596 = {\n \"chain\": \"KAR\",\n \"chainId\": 596,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://blockscout.karura-testnet.aca-staging.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://karura.network\",\n \"name\": \"Karura Network Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Karura Token\",\n \"symbol\": \"KAR\",\n \"decimals\": 18\n },\n \"networkId\": 596,\n \"rpc\": [\"https://karura-network-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://596.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://eth-rpc-karura-testnet.aca-staging.network\", \"wss://eth-rpc-karura-testnet.aca-staging.network\"],\n \"shortName\": \"tkar\",\n \"slip44\": 1,\n \"slug\": \"karura-network-testnet\",\n \"testnet\": true\n};\n\nvar c597 = {\n \"chain\": \"ACA\",\n \"chainId\": 597,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://blockscout.acala-dev.aca-dev.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://acala.network\",\n \"name\": \"Acala Network Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Acala Token\",\n \"symbol\": \"ACA\",\n \"decimals\": 18\n },\n \"networkId\": 597,\n \"rpc\": [\"https://acala-network-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://597.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://eth-rpc-acala-testnet.aca-staging.network\", \"wss://eth-rpc-acala-testnet.aca-staging.network\"],\n \"shortName\": \"taca\",\n \"slip44\": 1,\n \"slug\": \"acala-network-testnet\",\n \"testnet\": true\n};\n\nvar c599 = {\n \"chain\": \"ETH\",\n \"chainId\": 599,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://goerli.explorer.metisdevops.link\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://goerli.faucet.metisdevops.link\"],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmbWKNucbMtrMPPkHG5ZmVmvNUo8CzqHHcrpk1C2BVQsEG/2022_H-Brand_Stacked_WhiteGreen.svg\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://www.metis.io\",\n \"name\": \"Metis Goerli Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Goerli Metis\",\n \"symbol\": \"METIS\",\n \"decimals\": 18\n },\n \"networkId\": 599,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-4\",\n \"bridges\": [{\n \"url\": \"https://testnet-bridge.metis.io\"\n }]\n },\n \"redFlags\": [],\n \"rpc\": [\"https://metis-goerli-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://599.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://goerli.gateway.metisdevops.link\"],\n \"shortName\": \"metis-goerli\",\n \"slip44\": 1,\n \"slug\": \"metis-goerli-testnet\",\n \"testnet\": true\n};\n\nvar c600 = {\n \"chain\": \"MeshTestChain\",\n \"chainId\": 600,\n \"explorers\": [],\n \"faucets\": [],\n \"name\": \"Meshnyan testnet\",\n \"nativeCurrency\": {\n \"name\": \"Meshnyan Testnet Native Token\",\n \"symbol\": \"MESHT\",\n \"decimals\": 18\n },\n \"networkId\": 600,\n \"rpc\": [],\n \"shortName\": \"mesh-chain-testnet\",\n \"slip44\": 1,\n \"slug\": \"meshnyan-testnet\",\n \"testnet\": true\n};\n\nvar c601 = {\n \"chain\": \"VINE\",\n \"chainId\": 601,\n \"explorers\": [{\n \"name\": \"Vine Explorer\",\n \"url\": \"https://vne.network/rose\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmTPbbhH4CkQiQWm4JUh3J9o5w79vXjFZaMBW4DKNuSVU3\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://vne.network/rose\"],\n \"icon\": {\n \"url\": \"ipfs://QmTPbbhH4CkQiQWm4JUh3J9o5w79vXjFZaMBW4DKNuSVU3\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.peer.inc\",\n \"name\": \"Vine Testnet\",\n \"nativeCurrency\": {\n \"name\": \"VINE\",\n \"symbol\": \"VNE\",\n \"decimals\": 18\n },\n \"networkId\": 601,\n \"rpc\": [\"https://vine-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://601.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-testnet.vne.network\"],\n \"shortName\": \"VINE\",\n \"slug\": \"vine-testnet\",\n \"testnet\": true\n};\n\nvar c614 = {\n \"chain\": \"GLQ Blockchain\",\n \"chainId\": 614,\n \"explorers\": [{\n \"name\": \"GLQ Explorer\",\n \"url\": \"https://explorer.graphlinq.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://graphlinq.io\",\n \"name\": \"Graphlinq Blockchain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"GLQ\",\n \"symbol\": \"GLQ\",\n \"decimals\": 18\n },\n \"networkId\": 614,\n \"rpc\": [\"https://graphlinq-blockchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://614.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://glq-dataseed.graphlinq.io\"],\n \"shortName\": \"glq\",\n \"slug\": \"graphlinq-blockchain\",\n \"testnet\": false\n};\n\nvar c634 = {\n \"chain\": \"Avocado\",\n \"chainId\": 634,\n \"explorers\": [{\n \"name\": \"avoscan\",\n \"url\": \"https://avoscan.co\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://Qma9rJSgy32UL1iXtXKFZQJA6FjkcUcDU4HR6y13Wu1vjn\",\n \"width\": 600,\n \"height\": 600,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://Qma9rJSgy32UL1iXtXKFZQJA6FjkcUcDU4HR6y13Wu1vjn\",\n \"width\": 600,\n \"height\": 600,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://avocado.instadapp.io\",\n \"name\": \"Avocado\",\n \"nativeCurrency\": {\n \"name\": \"USDC\",\n \"symbol\": \"USDC\",\n \"decimals\": 18\n },\n \"networkId\": 634,\n \"rpc\": [\"https://avocado.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://634.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.avocado.instadapp.io\"],\n \"shortName\": \"avocado\",\n \"slug\": \"avocado\",\n \"testnet\": false\n};\n\nvar c647 = {\n \"chain\": \"SX\",\n \"chainId\": 647,\n \"explorers\": [{\n \"name\": \"SX Network Toronto Explorer\",\n \"url\": \"https://explorer.toronto.sx.technology\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.toronto.sx.technology\"],\n \"icon\": {\n \"url\": \"ipfs://QmSXLXqyr2H6Ja5XrmznXbWTEvF2gFaL8RXNXgyLmDHjAF\",\n \"width\": 896,\n \"height\": 690,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.sx.technology\",\n \"name\": \"SX Network Testnet\",\n \"nativeCurrency\": {\n \"name\": \"SX Network\",\n \"symbol\": \"SX\",\n \"decimals\": 18\n },\n \"networkId\": 647,\n \"rpc\": [\"https://sx-network-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://647.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.toronto.sx.technology\"],\n \"shortName\": \"SX-Testnet\",\n \"slip44\": 1,\n \"slug\": \"sx-network-testnet\",\n \"testnet\": true\n};\n\nvar c648 = {\n \"chain\": \"ACE\",\n \"chainId\": 648,\n \"explorers\": [{\n \"name\": \"Endurance Scan\",\n \"url\": \"https://explorer.endurance.fusionist.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://ace.fusionist.io/\",\n \"name\": \"Endurance Smart Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Endurance Chain Native Token\",\n \"symbol\": \"ACE\",\n \"decimals\": 18\n },\n \"networkId\": 648,\n \"rpc\": [\"https://endurance-smart-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://648.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-endurance.fusionist.io/\"],\n \"shortName\": \"ace\",\n \"slug\": \"endurance-smart-chain\",\n \"testnet\": false\n};\n\nvar c653 = {\n \"chain\": \"Kalichain\",\n \"chainId\": 653,\n \"explorers\": [{\n \"name\": \"kalichain explorer\",\n \"url\": \"https://explorer.kalichain.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://kalichain.com\",\n \"name\": \"Kalichain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"kalis\",\n \"symbol\": \"KALIS\",\n \"decimals\": 18\n },\n \"networkId\": 653,\n \"rpc\": [\"https://kalichain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://653.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.kalichain.com\"],\n \"shortName\": \"kalichain\",\n \"slug\": \"kalichain\",\n \"testnet\": false\n};\n\nvar c654 = {\n \"chain\": \"Kalichain\",\n \"chainId\": 654,\n \"explorers\": [{\n \"name\": \"kalichain explorer\",\n \"url\": \"https://explorer.kalichain.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreieox7v337p3jfhd37dz74mq6mn3uk5i5475rmzpirmyp6ydcfzzqi\",\n \"width\": 350,\n \"height\": 350,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://kalichain.com\",\n \"name\": \"Kalichain\",\n \"nativeCurrency\": {\n \"name\": \"kalis\",\n \"symbol\": \"KALIS\",\n \"decimals\": 18\n },\n \"networkId\": 654,\n \"rpc\": [\"https://kalichain-kalichainmainnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://654.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.kalichain.com\"],\n \"shortName\": \"kalichainMainnet\",\n \"slug\": \"kalichain-kalichainmainnet\",\n \"testnet\": false\n};\n\nvar c666 = {\n \"chain\": \"PixieChain\",\n \"chainId\": 666,\n \"explorers\": [],\n \"faucets\": [\"https://chain.pixie.xyz/faucet\"],\n \"infoURL\": \"https://scan-testnet.chain.pixie.xyz\",\n \"name\": \"Pixie Chain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Pixie Chain Testnet Native Token\",\n \"symbol\": \"PCTT\",\n \"decimals\": 18\n },\n \"networkId\": 666,\n \"rpc\": [\"https://pixie-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://666.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://http-testnet.chain.pixie.xyz\", \"wss://ws-testnet.chain.pixie.xyz\"],\n \"shortName\": \"pixie-chain-testnet\",\n \"slip44\": 1,\n \"slug\": \"pixie-chain-testnet\",\n \"testnet\": true\n};\n\nvar c667 = {\n \"chain\": \"LAOS\",\n \"chainId\": 667,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://arrakis.gorengine.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmZ4YYcvhcaeotMPaGXC5Vab7JFaVkka37V8TiTJpT7Mak\",\n \"width\": 586,\n \"height\": 558,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmZ4YYcvhcaeotMPaGXC5Vab7JFaVkka37V8TiTJpT7Mak\",\n \"width\": 586,\n \"height\": 558,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.laosfoundation.io/\",\n \"name\": \"LAOS Arrakis\",\n \"nativeCurrency\": {\n \"name\": \"LAOS\",\n \"symbol\": \"LAOS\",\n \"decimals\": 18\n },\n \"networkId\": 667,\n \"rpc\": [\"https://laos-arrakis.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://667.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://arrakis.gorengine.com/own\", \"wss://arrakis.gorengine.com/own\"],\n \"shortName\": \"laos\",\n \"slug\": \"laos-arrakis\",\n \"testnet\": true,\n \"title\": \"LAOS Testnet Arrakis\"\n};\n\nvar c668 = {\n \"chain\": \"JuncaChain\",\n \"chainId\": 668,\n \"explorers\": [{\n \"name\": \"JuncaScan\",\n \"url\": \"https://scan.juncachain.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://junca-cash.world\",\n \"name\": \"JuncaChain\",\n \"nativeCurrency\": {\n \"name\": \"JuncaChain Native Token\",\n \"symbol\": \"JGC\",\n \"decimals\": 18\n },\n \"networkId\": 668,\n \"rpc\": [\"https://juncachain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://668.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.juncachain.com\"],\n \"shortName\": \"junca\",\n \"slug\": \"juncachain\",\n \"testnet\": false\n};\n\nvar c669 = {\n \"chain\": \"JuncaChain testnet\",\n \"chainId\": 669,\n \"explorers\": [{\n \"name\": \"JuncaScan\",\n \"url\": \"https://scan-testnet.juncachain.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet-testnet.juncachain.com\"],\n \"infoURL\": \"https://junca-cash.world\",\n \"name\": \"JuncaChain testnet\",\n \"nativeCurrency\": {\n \"name\": \"JuncaChain Testnet Native Token\",\n \"symbol\": \"JGCT\",\n \"decimals\": 18\n },\n \"networkId\": 669,\n \"rpc\": [\"https://juncachain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://669.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-testnet.juncachain.com\", \"wss://ws-testnet.juncachain.com\"],\n \"shortName\": \"juncat\",\n \"slip44\": 1,\n \"slug\": \"juncachain-testnet\",\n \"testnet\": true\n};\n\nvar c686 = {\n \"chain\": \"KAR\",\n \"chainId\": 686,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://blockscout.karura.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"infoURL\": \"https://acala.network/karura\",\n \"name\": \"Karura Network\",\n \"nativeCurrency\": {\n \"name\": \"Karura Token\",\n \"symbol\": \"KAR\",\n \"decimals\": 18\n },\n \"networkId\": 686,\n \"rpc\": [\"https://karura-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://686.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://eth-rpc-karura.aca-api.network\", \"wss://eth-rpc-karura.aca-api.network\"],\n \"shortName\": \"kar\",\n \"slip44\": 686,\n \"slug\": \"karura-network\",\n \"testnet\": false\n};\n\nvar c700 = {\n \"chain\": \"SNS\",\n \"chainId\": 700,\n \"explorers\": [{\n \"name\": \"starscan\",\n \"url\": \"https://avastar.info\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://info.avastar.cc\",\n \"name\": \"Star Social Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Social\",\n \"symbol\": \"SNS\",\n \"decimals\": 18\n },\n \"networkId\": 700,\n \"rpc\": [\"https://star-social-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://700.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://avastar.cc/ext/bc/C/rpc\"],\n \"shortName\": \"SNS\",\n \"slip44\": 1,\n \"slug\": \"star-social-testnet\",\n \"testnet\": true\n};\n\nvar c707 = {\n \"chain\": \"BCS\",\n \"chainId\": 707,\n \"explorers\": [{\n \"name\": \"BlockChain Station Explorer\",\n \"url\": \"https://explorer.bcsdev.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://blockchainstation.io\",\n \"name\": \"BlockChain Station Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"BCS Token\",\n \"symbol\": \"BCS\",\n \"decimals\": 18\n },\n \"networkId\": 707,\n \"rpc\": [\"https://blockchain-station.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://707.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-mainnet.bcsdev.io\", \"wss://rpc-ws-mainnet.bcsdev.io\"],\n \"shortName\": \"bcs\",\n \"slug\": \"blockchain-station\",\n \"testnet\": false\n};\n\nvar c708 = {\n \"chain\": \"BCS\",\n \"chainId\": 708,\n \"explorers\": [{\n \"name\": \"BlockChain Station Explorer\",\n \"url\": \"https://testnet.bcsdev.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.bcsdev.io\"],\n \"infoURL\": \"https://blockchainstation.io\",\n \"name\": \"BlockChain Station Testnet\",\n \"nativeCurrency\": {\n \"name\": \"BCS Testnet Token\",\n \"symbol\": \"tBCS\",\n \"decimals\": 18\n },\n \"networkId\": 708,\n \"rpc\": [\"https://blockchain-station-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://708.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-testnet.bcsdev.io\", \"wss://rpc-ws-testnet.bcsdev.io\"],\n \"shortName\": \"tbcs\",\n \"slip44\": 1,\n \"slug\": \"blockchain-station-testnet\",\n \"testnet\": true\n};\n\nvar c710 = {\n \"chain\": \"HIGHBURY\",\n \"chainId\": 710,\n \"explorers\": [{\n \"name\": \"Furya EVM Explorer\",\n \"url\": \"https://explorer.furya.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://bafkreiby27m6esbsjthmknckq5ktsaaj2z6hylzljbsmvx4fgezdra3q4m\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreiby27m6esbsjthmknckq5ktsaaj2z6hylzljbsmvx4fgezdra3q4m\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.fury.black\",\n \"name\": \"Highbury\",\n \"nativeCurrency\": {\n \"name\": \"Fury\",\n \"symbol\": \"FURY\",\n \"decimals\": 18\n },\n \"networkId\": 710,\n \"rpc\": [\"https://highbury.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://710.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://highbury.furya.io\", \"https://rest.furya.io\"],\n \"shortName\": \"fury\",\n \"slug\": \"highbury\",\n \"testnet\": false\n};\n\nvar c719 = {\n \"chain\": \"Shibarium\",\n \"chainId\": 719,\n \"explorers\": [{\n \"name\": \"shibscan\",\n \"url\": \"https://puppyscan.shib.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmYNVkoZgRjDBQzJz6kog9mA2yPzQFW2oSKvhnkwuBhLQE\",\n \"width\": 2000,\n \"height\": 2000,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://beta.shibariumtech.com\",\n \"name\": \"Shibarium Beta\",\n \"nativeCurrency\": {\n \"name\": \"BONE\",\n \"symbol\": \"BONE\",\n \"decimals\": 18\n },\n \"networkId\": 719,\n \"rpc\": [\"https://shibarium-beta.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://719.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://puppynet.shibrpc.com\"],\n \"shortName\": \"shibarium\",\n \"slug\": \"shibarium-beta\",\n \"testnet\": false\n};\n\nvar c721 = {\n \"chain\": \"LYC\",\n \"chainId\": 721,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://explorer.lycanchain.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://Qmc8hsCbUUjnJDnXrDhFh4V1xk1gJwZbUyNJ39p72javji\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://lycanchain.com\",\n \"name\": \"Lycan Chain\",\n \"nativeCurrency\": {\n \"name\": \"Lycan\",\n \"symbol\": \"LYC\",\n \"decimals\": 18\n },\n \"networkId\": 721,\n \"rpc\": [\"https://lycan-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://721.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.lycanchain.com/\"],\n \"shortName\": \"LYC\",\n \"slug\": \"lycan-chain\",\n \"testnet\": false\n};\n\nvar c727 = {\n \"chain\": \"BLU\",\n \"chainId\": 727,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://www.blucrates.com\",\n \"name\": \"Blucrates\",\n \"nativeCurrency\": {\n \"name\": \"Blucrates\",\n \"symbol\": \"BLU\",\n \"decimals\": 18\n },\n \"networkId\": 727,\n \"rpc\": [\"https://blucrates.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://727.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://data.bluchain.pro\"],\n \"shortName\": \"blu\",\n \"slip44\": 727,\n \"slug\": \"blucrates\",\n \"testnet\": false\n};\n\nvar c740 = {\n \"chain\": \"Canto Tesnet\",\n \"chainId\": 740,\n \"explorers\": [{\n \"name\": \"Canto Tesnet Explorer (Neobase)\",\n \"url\": \"https://testnet-explorer.canto.neobase.one\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://canto.io\",\n \"name\": \"Canto Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Canto\",\n \"symbol\": \"CANTO\",\n \"decimals\": 18\n },\n \"networkId\": 740,\n \"rpc\": [\"https://canto-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://740.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://eth.plexnode.wtf/\"],\n \"shortName\": \"tcanto\",\n \"slip44\": 1,\n \"slug\": \"canto-testnet\",\n \"status\": \"deprecated\",\n \"testnet\": true\n};\n\nvar c741 = {\n \"chain\": \"VSCT\",\n \"chainId\": 741,\n \"explorers\": [{\n \"name\": \"ventionscan\",\n \"url\": \"https://testnet.ventionscan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.vention.network\"],\n \"icon\": {\n \"url\": \"ipfs://QmcNepHmbmHW1BZYM3MFqJW4awwhmDqhUPRXXmRnXwg1U4\",\n \"width\": 250,\n \"height\": 250,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://testnet.ventionscan.io\",\n \"name\": \"Vention Smart Chain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"VNT\",\n \"symbol\": \"VNT\",\n \"decimals\": 18\n },\n \"networkId\": 741,\n \"rpc\": [\"https://vention-smart-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://741.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://node-testnet.vention.network\"],\n \"shortName\": \"vsct\",\n \"slip44\": 1,\n \"slug\": \"vention-smart-chain-testnet\",\n \"testnet\": true\n};\n\nvar c742 = {\n \"chain\": \"SPAY\",\n \"chainId\": 742,\n \"explorers\": [{\n \"name\": \"Script Explorer\",\n \"url\": \"https://explorer.script.tv\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://token.script.tv\",\n \"name\": \"Script Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Script\",\n \"symbol\": \"SPAY\",\n \"decimals\": 18\n },\n \"networkId\": 742,\n \"rpc\": [\"https://script-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://742.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testeth-rpc-api.script.tv/rpc\"],\n \"shortName\": \"SPAY\",\n \"slip44\": 1,\n \"slug\": \"script-testnet\",\n \"testnet\": true\n};\n\nvar c766 = {\n \"chain\": \"QOM\",\n \"chainId\": 766,\n \"explorers\": [{\n \"name\": \"QL1 Mainnet Explorer\",\n \"url\": \"https://mainnet.qom.one\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmRc1kJ7AgcDL1BSoMYudatWHTrz27K6WNTwGifQb5V17D\",\n \"width\": 518,\n \"height\": 518,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmRc1kJ7AgcDL1BSoMYudatWHTrz27K6WNTwGifQb5V17D\",\n \"width\": 518,\n \"height\": 518,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://qom.one\",\n \"name\": \"QL1\",\n \"nativeCurrency\": {\n \"name\": \"Shiba Predator\",\n \"symbol\": \"QOM\",\n \"decimals\": 18\n },\n \"networkId\": 766,\n \"rpc\": [\"https://ql1.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://766.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.qom.one\"],\n \"shortName\": \"qom\",\n \"slug\": \"ql1\",\n \"status\": \"incubating\",\n \"testnet\": false\n};\n\nvar c776 = {\n \"chain\": \"OpenChain Testnet\",\n \"chainId\": 776,\n \"explorers\": [{\n \"name\": \"OPEN CHAIN TESTNET\",\n \"url\": \"https://testnet.openchain.info\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://faucet.openchain.info/\"],\n \"infoURL\": \"https://testnet.openchain.info/\",\n \"name\": \"OpenChain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Openchain Testnet\",\n \"symbol\": \"TOPC\",\n \"decimals\": 18\n },\n \"networkId\": 776,\n \"rpc\": [],\n \"shortName\": \"opc\",\n \"slip44\": 1,\n \"slug\": \"openchain-testnet\",\n \"testnet\": true\n};\n\nvar c777 = {\n \"chain\": \"cheapETH\",\n \"chainId\": 777,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://cheapeth.org/\",\n \"name\": \"cheapETH\",\n \"nativeCurrency\": {\n \"name\": \"cTH\",\n \"symbol\": \"cTH\",\n \"decimals\": 18\n },\n \"networkId\": 777,\n \"rpc\": [\"https://cheapeth.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://777.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://node.cheapeth.org/rpc\"],\n \"shortName\": \"cth\",\n \"slug\": \"cheapeth\",\n \"testnet\": false\n};\n\nvar c786 = {\n \"chain\": \"MAAL\",\n \"chainId\": 786,\n \"explorers\": [{\n \"name\": \"maalscan\",\n \"url\": \"https://maalscan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreiexfqfe2x4impvwhra3xxa5eb25gv25zi3kkaoatdnld7wbxdzf2a\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.maalchain.com/\",\n \"name\": \"MAAL Chain\",\n \"nativeCurrency\": {\n \"name\": \"MAAL\",\n \"symbol\": \"MAAL\",\n \"decimals\": 18\n },\n \"networkId\": 786,\n \"rpc\": [\"https://maal-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://786.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://node1-mainnet.maalscan.io/\", \"https://node2-mainnet.maalscan.io/\", \"https://node3-mainnet.maalscan.io/\"],\n \"shortName\": \"maal\",\n \"slug\": \"maal-chain\",\n \"testnet\": false\n};\n\nvar c787 = {\n \"chain\": \"ACA\",\n \"chainId\": 787,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://blockscout.acala.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"infoURL\": \"https://acala.network\",\n \"name\": \"Acala Network\",\n \"nativeCurrency\": {\n \"name\": \"Acala Token\",\n \"symbol\": \"ACA\",\n \"decimals\": 18\n },\n \"networkId\": 787,\n \"rpc\": [\"https://acala-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://787.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://eth-rpc-acala.aca-api.network\", \"wss://eth-rpc-acala.aca-api.network\"],\n \"shortName\": \"aca\",\n \"slip44\": 787,\n \"slug\": \"acala-network\",\n \"testnet\": false\n};\n\nvar c788 = {\n \"chain\": \"Aerochain\",\n \"chainId\": 788,\n \"explorers\": [{\n \"name\": \"aeroscan\",\n \"url\": \"https://testnet.aeroscan.id\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.aerochain.id/\"],\n \"infoURL\": \"https://aerochaincoin.org/\",\n \"name\": \"Aerochain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Aerochain Testnet\",\n \"symbol\": \"TAero\",\n \"decimals\": 18\n },\n \"networkId\": 788,\n \"rpc\": [\"https://aerochain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://788.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-rpc.aerochain.id/\"],\n \"shortName\": \"taero\",\n \"slip44\": 1,\n \"slug\": \"aerochain-testnet\",\n \"testnet\": true\n};\n\nvar c789 = {\n \"chain\": \"ETH\",\n \"chainId\": 789,\n \"explorers\": [{\n \"name\": \"patexscan\",\n \"url\": \"https://patexscan.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmTNTSNn3t5WpSEzQmUYbkxYkBKaH6QahyVdVrRKyPHChr\",\n \"width\": 800,\n \"height\": 800,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmTNTSNn3t5WpSEzQmUYbkxYkBKaH6QahyVdVrRKyPHChr\",\n \"width\": 800,\n \"height\": 800,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://patex.io/\",\n \"name\": \"Patex\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 789,\n \"rpc\": [\"https://patex.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://789.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.patex.io/\"],\n \"shortName\": \"peth\",\n \"slug\": \"patex\",\n \"testnet\": false\n};\n\nvar c800 = {\n \"chain\": \"Lucid\",\n \"chainId\": 800,\n \"explorers\": [{\n \"name\": \"Lucid Explorer\",\n \"url\": \"https://explorer.lucidcoin.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://faucet.lucidcoin.io\"],\n \"icon\": {\n \"url\": \"ipfs://bafybeigxiyyxll4vst5cjjh732mr6zhsnligxubaldyiul2xdvvi6ibktu\",\n \"width\": 800,\n \"height\": 800,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://lucidcoin.io\",\n \"name\": \"Lucid Blockchain\",\n \"nativeCurrency\": {\n \"name\": \"LUCID\",\n \"symbol\": \"LUCID\",\n \"decimals\": 18\n },\n \"networkId\": 800,\n \"rpc\": [\"https://lucid-blockchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://800.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.lucidcoin.io\"],\n \"shortName\": \"LUCID\",\n \"slug\": \"lucid-blockchain\",\n \"testnet\": false\n};\n\nvar c803 = {\n \"chain\": \"Haic\",\n \"chainId\": 803,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://www.haichain.io/\",\n \"name\": \"Haic\",\n \"nativeCurrency\": {\n \"name\": \"Haicoin\",\n \"symbol\": \"HAIC\",\n \"decimals\": 18\n },\n \"networkId\": 803,\n \"rpc\": [\"https://haic.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://803.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://orig.haichain.io/\"],\n \"shortName\": \"haic\",\n \"slug\": \"haic\",\n \"testnet\": false\n};\n\nvar c808 = {\n \"chain\": \"PF\",\n \"chainId\": 808,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmeMa6aw3ebUKJdGgbzDgcVtggzp7cQdfSrmzMYmnt5ywc\",\n \"width\": 200,\n \"height\": 200,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://portalfantasy.io\",\n \"name\": \"Portal Fantasy Chain Test\",\n \"nativeCurrency\": {\n \"name\": \"Portal Fantasy Token\",\n \"symbol\": \"PFT\",\n \"decimals\": 18\n },\n \"networkId\": 808,\n \"rpc\": [\"https://portal-fantasy-chain-test.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://808.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/portal-fantasy/testnet/rpc\"],\n \"shortName\": \"PFTEST\",\n \"slip44\": 1,\n \"slug\": \"portal-fantasy-chain-test\",\n \"testnet\": true\n};\n\nvar c813 = {\n \"chain\": \"MEER\",\n \"chainId\": 813,\n \"explorers\": [{\n \"name\": \"meerscan\",\n \"url\": \"https://qng.meerscan.io\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmWSbMuCwQzhBB6GRLYqZ87n5cnpzpYCehCAMMQmUXj4mm\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmWSbMuCwQzhBB6GRLYqZ87n5cnpzpYCehCAMMQmUXj4mm\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://github.com/Qitmeer\",\n \"name\": \"Qitmeer\",\n \"nativeCurrency\": {\n \"name\": \"Qitmeer\",\n \"symbol\": \"MEER\",\n \"decimals\": 18\n },\n \"networkId\": 813,\n \"rpc\": [\"https://qitmeer.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://813.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://evm-dataseed1.meerscan.io\", \"https://evm-dataseed2.meerscan.io\", \"https://evm-dataseed3.meerscan.io\", \"https://evm-dataseed.meerscan.com\", \"https://evm-dataseed1.meerscan.com\", \"https://evm-dataseed2.meerscan.com\", \"https://qng.rpc.qitmeer.io\", \"https://mainnet.meerlabs.com\", \"https://rpc.dimai.ai\", \"https://rpc.woowow.io\"],\n \"shortName\": \"meer\",\n \"slip44\": 813,\n \"slug\": \"qitmeer\",\n \"testnet\": false\n};\n\nvar c814 = {\n \"chain\": \"Firechain\",\n \"chainId\": 814,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmYjuztyURb3Fc6ZTLgCbwQa64CcVoigF5j9cafzuSbqgf\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://docs.thefirechain.com/\",\n \"name\": \"Firechain zkEVM\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 814,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-1\",\n \"bridges\": [{\n \"url\": \"https://zkevm.bridge.rpc.thefirechain.com\"\n }]\n },\n \"rpc\": [\"https://firechain-zkevm.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://814.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.zkevm.thefirechain.com\"],\n \"shortName\": \"firechan-zkEVM\",\n \"slug\": \"firechain-zkevm\",\n \"testnet\": false,\n \"title\": \"Firechain zkEVM\"\n};\n\nvar c818 = {\n \"chain\": \"BOC\",\n \"chainId\": 818,\n \"explorers\": [{\n \"name\": \"BeOne Chain Mainnet\",\n \"url\": \"https://beonescan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmbVLQnaMDu86bPyKgCvTGhFBeYwjr15hQnrCcsp1EkAGL\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://beonechain.com\",\n \"name\": \"BeOne Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"BeOne Chain Mainnet\",\n \"symbol\": \"BOC\",\n \"decimals\": 18\n },\n \"networkId\": 818,\n \"rpc\": [\"https://beone-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://818.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://dataseed1.beonechain.com\", \"https://dataseed2.beonechain.com\", \"https://dataseed-us1.beonechain.com\", \"https://dataseed-us2.beonechain.com\", \"https://dataseed-uk1.beonechain.com\", \"https://dataseed-uk2.beonechain.com\"],\n \"shortName\": \"BOC\",\n \"slip44\": 8181,\n \"slug\": \"beone-chain\",\n \"testnet\": false\n};\n\nvar c820 = {\n \"chain\": \"CLO\",\n \"chainId\": 820,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://callisto.network\",\n \"name\": \"Callisto Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Callisto\",\n \"symbol\": \"CLO\",\n \"decimals\": 18\n },\n \"networkId\": 1,\n \"rpc\": [\"https://callisto.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://820.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.callisto.network/\"],\n \"shortName\": \"clo\",\n \"slip44\": 820,\n \"slug\": \"callisto\",\n \"testnet\": false\n};\n\nvar c821 = {\n \"chain\": \"CLO\",\n \"chainId\": 821,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://callisto.network\",\n \"name\": \"Callisto Testnet Deprecated\",\n \"nativeCurrency\": {\n \"name\": \"Callisto Testnet Ether\",\n \"symbol\": \"TCLO\",\n \"decimals\": 18\n },\n \"networkId\": 2,\n \"rpc\": [],\n \"shortName\": \"tclo\",\n \"slip44\": 1,\n \"slug\": \"callisto-testnet-deprecated\",\n \"status\": \"deprecated\",\n \"testnet\": true\n};\n\nvar c841 = {\n \"chain\": \"Tara\",\n \"chainId\": 841,\n \"explorers\": [{\n \"name\": \"Taraxa Explorer\",\n \"url\": \"https://explorer.mainnet.taraxa.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmQhdktNyBeXmCaVuQpi1B4yXheSUKrJA17L4wpECKzG5D\",\n \"width\": 310,\n \"height\": 310,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://taraxa.io\",\n \"name\": \"Taraxa Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Tara\",\n \"symbol\": \"TARA\",\n \"decimals\": 18\n },\n \"networkId\": 841,\n \"rpc\": [\"https://taraxa.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://841.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.mainnet.taraxa.io/\"],\n \"shortName\": \"tara\",\n \"slug\": \"taraxa\",\n \"testnet\": false\n};\n\nvar c842 = {\n \"chain\": \"Tara\",\n \"chainId\": 842,\n \"explorers\": [{\n \"name\": \"Taraxa Explorer\",\n \"url\": \"https://explorer.testnet.taraxa.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmQhdktNyBeXmCaVuQpi1B4yXheSUKrJA17L4wpECKzG5D\",\n \"width\": 310,\n \"height\": 310,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://taraxa.io\",\n \"name\": \"Taraxa Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Tara\",\n \"symbol\": \"TARA\",\n \"decimals\": 18\n },\n \"networkId\": 842,\n \"rpc\": [\"https://taraxa-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://842.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.testnet.taraxa.io/\"],\n \"shortName\": \"taratest\",\n \"slip44\": 1,\n \"slug\": \"taraxa-testnet\",\n \"testnet\": true\n};\n\nvar c859 = {\n \"chain\": \"ZeethChainDev\",\n \"chainId\": 859,\n \"explorers\": [{\n \"name\": \"Zeeth Explorer Dev\",\n \"url\": \"https://explorer.dev.zeeth.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"name\": \"Zeeth Chain Dev\",\n \"nativeCurrency\": {\n \"name\": \"Zeeth Token\",\n \"symbol\": \"ZTH\",\n \"decimals\": 18\n },\n \"networkId\": 859,\n \"rpc\": [\"https://zeeth-chain-dev.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://859.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.dev.zeeth.io\"],\n \"shortName\": \"zeethdev\",\n \"slug\": \"zeeth-chain-dev\",\n \"testnet\": false\n};\n\nvar c868 = {\n \"chain\": \"FSC\",\n \"chainId\": 868,\n \"explorers\": [{\n \"name\": \"FSCScan\",\n \"url\": \"https://explorer.fantasiachain.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://fantasiachain.com/\",\n \"name\": \"Fantasia Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"FST\",\n \"symbol\": \"FST\",\n \"decimals\": 18\n },\n \"networkId\": 868,\n \"rpc\": [\"https://fantasia-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://868.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-data1.fantasiachain.com/\", \"https://mainnet-data2.fantasiachain.com/\", \"https://mainnet-data3.fantasiachain.com/\"],\n \"shortName\": \"FSCMainnet\",\n \"slug\": \"fantasia-chain\",\n \"testnet\": false\n};\n\nvar c876 = {\n \"chain\": \"Bandai Namco Research Verse\",\n \"chainId\": 876,\n \"explorers\": [{\n \"name\": \"Bandai Namco Research Verse Explorer\",\n \"url\": \"https://explorer.main.oasvrs.bnken.net\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreifhetalm3vpvjrg5u5d2momkcgvkz6rhltur5co3rslltbxzpr6yq\",\n \"width\": 2048,\n \"height\": 2048,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.bandainamco-mirai.com/en/\",\n \"name\": \"Bandai Namco Research Verse Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"OAS\",\n \"symbol\": \"OAS\",\n \"decimals\": 18\n },\n \"networkId\": 876,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-248\"\n },\n \"rpc\": [\"https://bandai-namco-research-verse.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://876.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.main.oasvrs.bnken.net\"],\n \"shortName\": \"BNKEN\",\n \"slug\": \"bandai-namco-research-verse\",\n \"testnet\": false\n};\n\nvar c877 = {\n \"chain\": \"DXT\",\n \"chainId\": 877,\n \"explorers\": [{\n \"name\": \"dxtscan\",\n \"url\": \"https://dxtscan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.dexit.network\"],\n \"infoURL\": \"https://dexit.network\",\n \"name\": \"Dexit Network\",\n \"nativeCurrency\": {\n \"name\": \"Dexit network\",\n \"symbol\": \"DXT\",\n \"decimals\": 18\n },\n \"networkId\": 877,\n \"rpc\": [\"https://dexit-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://877.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://dxt.dexit.network\"],\n \"shortName\": \"DXT\",\n \"slug\": \"dexit-network\",\n \"testnet\": false\n};\n\nvar c880 = {\n \"chain\": \"ambroschain\",\n \"chainId\": 880,\n \"explorers\": [{\n \"name\": \"Ambros Chain Explorer\",\n \"url\": \"https://ambrosscan.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://ambros.network\",\n \"name\": \"Ambros Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"AMBROS\",\n \"symbol\": \"AMBROS\",\n \"decimals\": 18\n },\n \"networkId\": 880,\n \"rpc\": [\"https://ambros-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://880.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.ambros.network\"],\n \"shortName\": \"ambros\",\n \"slug\": \"ambros-chain\",\n \"testnet\": false\n};\n\nvar c882 = {\n \"chain\": \"Hypr\",\n \"chainId\": 882,\n \"explorers\": [{\n \"name\": \"Explorer\",\n \"url\": \"https://explorer-testnet.hypr.network\",\n \"standard\": \"OP Stack EVM\"\n }],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://bafybeie6wdqkhub4p346rixkvft3l2bxa3kzo4q6dh5c5vgq6oejwlhu4a/\",\n \"width\": 3600,\n \"height\": 3600,\n \"format\": \"ONG\"\n },\n \"name\": \"Hypr Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 882,\n \"redFlags\": [],\n \"rpc\": [\"https://hypr-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://882.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-testnet.hypr.network\"],\n \"shortName\": \"eth\",\n \"slug\": \"hypr-testnet\",\n \"testnet\": true,\n \"title\": \"https://explorer-testnet.hypr.network\"\n};\n\nvar c888 = {\n \"chain\": \"WAN\",\n \"chainId\": 888,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://www.wanscan.org\",\n \"name\": \"Wanchain\",\n \"nativeCurrency\": {\n \"name\": \"Wancoin\",\n \"symbol\": \"WAN\",\n \"decimals\": 18\n },\n \"networkId\": 888,\n \"rpc\": [\"https://wanchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://888.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://gwan-ssl.wandevs.org:56891/\"],\n \"shortName\": \"wan\",\n \"slip44\": 5718350,\n \"slug\": \"wanchain\",\n \"testnet\": false\n};\n\nvar c900 = {\n \"chain\": \"GAR\",\n \"chainId\": 900,\n \"explorers\": [{\n \"name\": \"explorer\",\n \"url\": \"https://explorer-testnet.garizon.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmW3WRyuLZ95K8hvV2QN6rP5yWY98sSzWyVUxD2eUjXGrc\",\n \"width\": 1024,\n \"height\": 613,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucet-testnet.garizon.com\"],\n \"icon\": {\n \"url\": \"ipfs://QmW3WRyuLZ95K8hvV2QN6rP5yWY98sSzWyVUxD2eUjXGrc\",\n \"width\": 1024,\n \"height\": 613,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://garizon.com\",\n \"name\": \"Garizon Testnet Stage0\",\n \"nativeCurrency\": {\n \"name\": \"Garizon\",\n \"symbol\": \"GAR\",\n \"decimals\": 18\n },\n \"networkId\": 900,\n \"rpc\": [\"https://garizon-testnet-stage0.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://900.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://s0-testnet.garizon.net/rpc\"],\n \"shortName\": \"gar-test-s0\",\n \"slug\": \"garizon-testnet-stage0\",\n \"testnet\": true\n};\n\nvar c901 = {\n \"chain\": \"GAR\",\n \"chainId\": 901,\n \"explorers\": [{\n \"name\": \"explorer\",\n \"url\": \"https://explorer-testnet.garizon.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmW3WRyuLZ95K8hvV2QN6rP5yWY98sSzWyVUxD2eUjXGrc\",\n \"width\": 1024,\n \"height\": 613,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucet-testnet.garizon.com\"],\n \"icon\": {\n \"url\": \"ipfs://QmW3WRyuLZ95K8hvV2QN6rP5yWY98sSzWyVUxD2eUjXGrc\",\n \"width\": 1024,\n \"height\": 613,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://garizon.com\",\n \"name\": \"Garizon Testnet Stage1\",\n \"nativeCurrency\": {\n \"name\": \"Garizon\",\n \"symbol\": \"GAR\",\n \"decimals\": 18\n },\n \"networkId\": 901,\n \"parent\": {\n \"type\": \"shard\",\n \"chain\": \"eip155-900\"\n },\n \"rpc\": [\"https://garizon-testnet-stage1.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://901.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://s1-testnet.garizon.net/rpc\"],\n \"shortName\": \"gar-test-s1\",\n \"slip44\": 1,\n \"slug\": \"garizon-testnet-stage1\",\n \"testnet\": true\n};\n\nvar c902 = {\n \"chain\": \"GAR\",\n \"chainId\": 902,\n \"explorers\": [{\n \"name\": \"explorer\",\n \"url\": \"https://explorer-testnet.garizon.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmW3WRyuLZ95K8hvV2QN6rP5yWY98sSzWyVUxD2eUjXGrc\",\n \"width\": 1024,\n \"height\": 613,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucet-testnet.garizon.com\"],\n \"icon\": {\n \"url\": \"ipfs://QmW3WRyuLZ95K8hvV2QN6rP5yWY98sSzWyVUxD2eUjXGrc\",\n \"width\": 1024,\n \"height\": 613,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://garizon.com\",\n \"name\": \"Garizon Testnet Stage2\",\n \"nativeCurrency\": {\n \"name\": \"Garizon\",\n \"symbol\": \"GAR\",\n \"decimals\": 18\n },\n \"networkId\": 902,\n \"parent\": {\n \"type\": \"shard\",\n \"chain\": \"eip155-900\"\n },\n \"rpc\": [\"https://garizon-testnet-stage2.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://902.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://s2-testnet.garizon.net/rpc\"],\n \"shortName\": \"gar-test-s2\",\n \"slip44\": 1,\n \"slug\": \"garizon-testnet-stage2\",\n \"testnet\": true\n};\n\nvar c903 = {\n \"chain\": \"GAR\",\n \"chainId\": 903,\n \"explorers\": [{\n \"name\": \"explorer\",\n \"url\": \"https://explorer-testnet.garizon.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmW3WRyuLZ95K8hvV2QN6rP5yWY98sSzWyVUxD2eUjXGrc\",\n \"width\": 1024,\n \"height\": 613,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucet-testnet.garizon.com\"],\n \"icon\": {\n \"url\": \"ipfs://QmW3WRyuLZ95K8hvV2QN6rP5yWY98sSzWyVUxD2eUjXGrc\",\n \"width\": 1024,\n \"height\": 613,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://garizon.com\",\n \"name\": \"Garizon Testnet Stage3\",\n \"nativeCurrency\": {\n \"name\": \"Garizon\",\n \"symbol\": \"GAR\",\n \"decimals\": 18\n },\n \"networkId\": 903,\n \"parent\": {\n \"type\": \"shard\",\n \"chain\": \"eip155-900\"\n },\n \"rpc\": [\"https://garizon-testnet-stage3.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://903.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://s3-testnet.garizon.net/rpc\"],\n \"shortName\": \"gar-test-s3\",\n \"slip44\": 1,\n \"slug\": \"garizon-testnet-stage3\",\n \"testnet\": true\n};\n\nvar c909 = {\n \"chain\": \"PF\",\n \"chainId\": 909,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmeMa6aw3ebUKJdGgbzDgcVtggzp7cQdfSrmzMYmnt5ywc\",\n \"width\": 200,\n \"height\": 200,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://portalfantasy.io\",\n \"name\": \"Portal Fantasy Chain\",\n \"nativeCurrency\": {\n \"name\": \"Portal Fantasy Token\",\n \"symbol\": \"PFT\",\n \"decimals\": 18\n },\n \"networkId\": 909,\n \"rpc\": [],\n \"shortName\": \"PF\",\n \"slug\": \"portal-fantasy-chain\",\n \"status\": \"incubating\",\n \"testnet\": false\n};\n\nvar c910 = {\n \"chain\": \"DBONE\",\n \"chainId\": 910,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://decentrabone.com\",\n \"name\": \"DecentraBone Layer1 Testnet\",\n \"nativeCurrency\": {\n \"name\": \"DecentraBone\",\n \"symbol\": \"DBONE\",\n \"decimals\": 18\n },\n \"networkId\": 910,\n \"rpc\": [\"https://decentrabone-layer1-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://910.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://layer1test.decentrabone.com\"],\n \"shortName\": \"DBONE\",\n \"slip44\": 1,\n \"slug\": \"decentrabone-layer1-testnet\",\n \"testnet\": true\n};\n\nvar c917 = {\n \"chain\": \"FIRE\",\n \"chainId\": 917,\n \"explorers\": [],\n \"faucets\": [\"https://faucet.thefirechain.com\"],\n \"icon\": {\n \"url\": \"ipfs://QmRnnw2gtbU9TWJMLJ6tks7SN6HQV5rRugeoyN6csTYHt1\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://thefirechain.com\",\n \"name\": \"Rinia Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Firechain\",\n \"symbol\": \"FIRE\",\n \"decimals\": 18\n },\n \"networkId\": 917,\n \"rpc\": [\"https://rinia-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://917.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rinia.rpc1.thefirechain.com\"],\n \"shortName\": \"tfire\",\n \"slip44\": 1,\n \"slug\": \"rinia-testnet\",\n \"status\": \"incubating\",\n \"testnet\": true\n};\n\nvar c919 = {\n \"chain\": \"ETH\",\n \"chainId\": 919,\n \"explorers\": [{\n \"name\": \"modescout\",\n \"url\": \"https://sepolia.explorer.mode.network\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://sepoliafaucet.com/\"],\n \"icon\": {\n \"url\": \"ipfs://bafkreidi5y7afj5z4xrz7uz5rkg2mcsv2p2n4ui4g7q4k4ecdz65i2agou\",\n \"width\": 2160,\n \"height\": 2160,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://docs.mode.network/\",\n \"name\": \"Mode Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Sepolia Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 919,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-11155111\",\n \"bridges\": [{\n \"url\": \"https://bridge.mode.network/\"\n }]\n },\n \"rpc\": [\"https://mode-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://919.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://sepolia.mode.network\"],\n \"shortName\": \"modesep\",\n \"slip44\": 1,\n \"slug\": \"mode-testnet\",\n \"testnet\": true\n};\n\nvar c927 = {\n \"chain\": \"Yidark\",\n \"chainId\": 927,\n \"explorers\": [{\n \"name\": \"Yidarkscan\",\n \"url\": \"https://yidarkscan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmdbFGqrpiLQGtAeUAyeS2NBvACfgrchEF466ni5q36fuZ\",\n \"width\": 401,\n \"height\": 401,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://yidarkscan.com\",\n \"name\": \"Yidark Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Yidark\",\n \"symbol\": \"YDK\",\n \"decimals\": 18\n },\n \"networkId\": 927,\n \"rpc\": [\"https://yidark-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://927.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.yidark.io\"],\n \"shortName\": \"ydk\",\n \"slug\": \"yidark-chain\",\n \"testnet\": false\n};\n\nvar c940 = {\n \"chain\": \"tPLS\",\n \"chainId\": 940,\n \"explorers\": [],\n \"faucets\": [\"https://faucet.v2.testnet.pulsechain.com/\"],\n \"infoURL\": \"https://pulsechain.com/\",\n \"name\": \"PulseChain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Test Pulse\",\n \"symbol\": \"tPLS\",\n \"decimals\": 18\n },\n \"networkId\": 940,\n \"rpc\": [\"https://pulsechain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://940.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.v2.testnet.pulsechain.com/\", \"wss://rpc.v2.testnet.pulsechain.com/\"],\n \"shortName\": \"tpls\",\n \"slip44\": 1,\n \"slug\": \"pulsechain-testnet\",\n \"status\": \"deprecated\",\n \"testnet\": true\n};\n\nvar c941 = {\n \"chain\": \"t2bPLS\",\n \"chainId\": 941,\n \"explorers\": [],\n \"faucets\": [\"https://faucet.v2b.testnet.pulsechain.com/\"],\n \"infoURL\": \"https://pulsechain.com/\",\n \"name\": \"PulseChain Testnet v2b\",\n \"nativeCurrency\": {\n \"name\": \"Test Pulse\",\n \"symbol\": \"tPLS\",\n \"decimals\": 18\n },\n \"networkId\": 941,\n \"rpc\": [\"https://pulsechain-testnet-v2b.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://941.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.v2b.testnet.pulsechain.com/\", \"wss://rpc.v2b.testnet.pulsechain.com/\"],\n \"shortName\": \"t2bpls\",\n \"slip44\": 1,\n \"slug\": \"pulsechain-testnet-v2b\",\n \"status\": \"deprecated\",\n \"testnet\": true\n};\n\nvar c942 = {\n \"chain\": \"t3PLS\",\n \"chainId\": 942,\n \"explorers\": [],\n \"faucets\": [\"https://faucet.v3.testnet.pulsechain.com/\"],\n \"infoURL\": \"https://pulsechain.com/\",\n \"name\": \"PulseChain Testnet v3\",\n \"nativeCurrency\": {\n \"name\": \"Test Pulse\",\n \"symbol\": \"tPLS\",\n \"decimals\": 18\n },\n \"networkId\": 942,\n \"rpc\": [\"https://pulsechain-testnet-v3.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://942.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.v3.testnet.pulsechain.com/\", \"wss://rpc.v3.testnet.pulsechain.com/\"],\n \"shortName\": \"t3pls\",\n \"slip44\": 1,\n \"slug\": \"pulsechain-testnet-v3\",\n \"status\": \"deprecated\",\n \"testnet\": true\n};\n\nvar c943 = {\n \"chain\": \"t4PLS\",\n \"chainId\": 943,\n \"ens\": {\n \"registry\": \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\"\n },\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://otter-testnet-pulsechain.g4mm4.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.v4.testnet.pulsechain.com/\"],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://Qmckj9B9F3jWDk9bv9HwoPmfjrx2Ju8J2BQSNoPFdYGduj\",\n \"width\": 433,\n \"height\": 402,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://pulsechain.com\",\n \"name\": \"PulseChain Testnet v4\",\n \"nativeCurrency\": {\n \"name\": \"Test Pulse\",\n \"symbol\": \"tPLS\",\n \"decimals\": 18\n },\n \"networkId\": 943,\n \"rpc\": [\"https://pulsechain-testnet-v4.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://943.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.v4.testnet.pulsechain.com\", \"wss://rpc.v4.testnet.pulsechain.com\", \"https://pulsechain-testnet.publicnode.com\", \"wss://pulsechain-testnet.publicnode.com\", \"https://rpc-testnet-pulsechain.g4mm4.io\", \"wss://rpc-testnet-pulsechain.g4mm4.io\"],\n \"shortName\": \"t4pls\",\n \"slip44\": 1,\n \"slug\": \"pulsechain-testnet-v4\",\n \"status\": \"active\",\n \"testnet\": true\n};\n\nvar c956 = {\n \"chain\": \"munode\",\n \"chainId\": 956,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://munode.dev/\",\n \"name\": \"muNode Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 956,\n \"rpc\": [],\n \"shortName\": \"munode\",\n \"slip44\": 1,\n \"slug\": \"munode-testnet\",\n \"testnet\": true\n};\n\nvar c957 = {\n \"chain\": \"Lyra\",\n \"chainId\": 957,\n \"explorers\": [{\n \"name\": \"Lyra Explorer\",\n \"url\": \"https://explorer.lyra.finance\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://bafkreifrvwcwcgs2luampufdbdgohuxue5rep3u4p4owmwskob7hzpcfdq\",\n \"width\": 2640,\n \"height\": 2640,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://bafkreifrvwcwcgs2luampufdbdgohuxue5rep3u4p4owmwskob7hzpcfdq\",\n \"width\": 2640,\n \"height\": 2640,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://lyra.finance\",\n \"name\": \"Lyra Chain\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 957,\n \"rpc\": [\"https://lyra-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://957.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.lyra.finance\"],\n \"shortName\": \"lyra\",\n \"slug\": \"lyra-chain\",\n \"testnet\": false\n};\n\nvar c963 = {\n \"chain\": \"BTC20\",\n \"chainId\": 963,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://scan.bitcoincode.technology\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmRUzDpn3xqPYnjLuZvFs2Attio9VxGRUprXEjcNQDcpe5\",\n \"width\": 375,\n \"height\": 456,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://bitcoincode.technology\",\n \"name\": \"BTC20 Smart Chain\",\n \"nativeCurrency\": {\n \"name\": \"BTCC\",\n \"symbol\": \"BTCC\",\n \"decimals\": 18\n },\n \"networkId\": 963,\n \"rpc\": [\"https://btc20-smart-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://963.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.bitcoincode.technology/\"],\n \"shortName\": \"btc20\",\n \"slug\": \"btc20-smart-chain\",\n \"testnet\": false\n};\n\nvar c970 = {\n \"chain\": \"Oort Mainnet\",\n \"chainId\": 970,\n \"explorers\": [{\n \"name\": \"Oort Mainnet Explorer\",\n \"url\": \"https://mainnet-scan.oortech.com\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://bafkreidrbvklkb52sgmg7cmy42fhf7vqpig7qj7bnrq24ijdwywkzr2tfy\",\n \"width\": 1440,\n \"height\": 1440,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreidrbvklkb52sgmg7cmy42fhf7vqpig7qj7bnrq24ijdwywkzr2tfy\",\n \"width\": 1440,\n \"height\": 1440,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://oortech.com\",\n \"name\": \"Oort Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Oort\",\n \"symbol\": \"OORT\",\n \"decimals\": 18\n },\n \"networkId\": 970,\n \"rpc\": [\"https://oort.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://970.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-rpc.oortech.com\"],\n \"shortName\": \"ccn\",\n \"slug\": \"oort\",\n \"testnet\": false\n};\n\nvar c971 = {\n \"chain\": \"Huygens\",\n \"chainId\": 971,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmZ1jbxFZcuotj3eZ6iKFrg9ZXnaV8AK6sGRa7ELrceWyD\",\n \"width\": 1043,\n \"height\": 1079,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://oortech.com\",\n \"name\": \"Oort Huygens\",\n \"nativeCurrency\": {\n \"name\": \"Oort\",\n \"symbol\": \"CCN\",\n \"decimals\": 18\n },\n \"networkId\": 971,\n \"rpc\": [],\n \"shortName\": \"Huygens\",\n \"slug\": \"oort-huygens\",\n \"testnet\": false\n};\n\nvar c972 = {\n \"chain\": \"Ascraeus\",\n \"chainId\": 972,\n \"explorers\": [{\n \"name\": \"Oort Ascraeus Explorer\",\n \"url\": \"https://ascraeus-scan.oortech.com\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://bafkreidrbvklkb52sgmg7cmy42fhf7vqpig7qj7bnrq24ijdwywkzr2tfy\",\n \"width\": 1440,\n \"height\": 1440,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreidrbvklkb52sgmg7cmy42fhf7vqpig7qj7bnrq24ijdwywkzr2tfy\",\n \"width\": 1440,\n \"height\": 1440,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://oortech.com\",\n \"name\": \"Oort Ascraeus\",\n \"nativeCurrency\": {\n \"name\": \"Oort\",\n \"symbol\": \"CCNA\",\n \"decimals\": 18\n },\n \"networkId\": 972,\n \"rpc\": [\"https://oort-ascraeus.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://972.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://ascraeus-rpc.oortech.com\"],\n \"shortName\": \"Ascraeus\",\n \"slug\": \"oort-ascraeus\",\n \"testnet\": false,\n \"title\": \"Oort Ascraeus\"\n};\n\nvar c977 = {\n \"chain\": \"YETI\",\n \"chainId\": 977,\n \"explorers\": [],\n \"faucets\": [\"https://faucet.nepalblockchain.network\"],\n \"infoURL\": \"https://nepalblockchain.network\",\n \"name\": \"Nepal Blockchain Network\",\n \"nativeCurrency\": {\n \"name\": \"Nepal Blockchain Network Ether\",\n \"symbol\": \"YETI\",\n \"decimals\": 18\n },\n \"networkId\": 977,\n \"rpc\": [\"https://nepal-blockchain-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://977.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.nepalblockchain.dev\", \"https://api.nepalblockchain.network\"],\n \"shortName\": \"yeti\",\n \"slug\": \"nepal-blockchain-network\",\n \"testnet\": false\n};\n\nvar c980 = {\n \"chain\": \"TOP\",\n \"chainId\": 980,\n \"explorers\": [{\n \"name\": \"topscan.dev\",\n \"url\": \"https://www.topscan.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmYikaM849eZrL8pGNeVhEHVTKWpxdGMvCY5oFBfZ2ndhd\",\n \"width\": 800,\n \"height\": 800,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.topnetwork.org/\",\n \"name\": \"TOP Mainnet EVM\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 0,\n \"rpc\": [\"https://top-evm.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://980.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://ethapi.topnetwork.org\"],\n \"shortName\": \"top_evm\",\n \"slug\": \"top-evm\",\n \"testnet\": false\n};\n\nvar c985 = {\n \"chain\": \"MEMO\",\n \"chainId\": 985,\n \"explorers\": [{\n \"name\": \"Memo Mainnet Explorer\",\n \"url\": \"https://scan.metamemo.one:8080\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://bafkreig52paynhccs4o5ew6f7mk3xoqu2bqtitmfvlgnwarh2pm33gbdrq\",\n \"width\": 128,\n \"height\": 128,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucet.metamemo.one/\"],\n \"icon\": {\n \"url\": \"ipfs://bafkreig52paynhccs4o5ew6f7mk3xoqu2bqtitmfvlgnwarh2pm33gbdrq\",\n \"width\": 128,\n \"height\": 128,\n \"format\": \"png\"\n },\n \"name\": \"Memo Smart Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Memo\",\n \"symbol\": \"CMEMO\",\n \"decimals\": 18\n },\n \"networkId\": 985,\n \"rpc\": [\"https://memo-smart-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://985.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://chain.metamemo.one:8501\", \"wss://chain.metamemo.one:16801\"],\n \"shortName\": \"memochain\",\n \"slug\": \"memo-smart-chain\",\n \"testnet\": false\n};\n\nvar c989 = {\n \"chain\": \"TOP\",\n \"chainId\": 989,\n \"explorers\": [{\n \"name\": \"topscan.dev\",\n \"url\": \"https://www.topscan.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmYikaM849eZrL8pGNeVhEHVTKWpxdGMvCY5oFBfZ2ndhd\",\n \"width\": 800,\n \"height\": 800,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.topnetwork.org/\",\n \"name\": \"TOP Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"TOP\",\n \"symbol\": \"TOP\",\n \"decimals\": 6\n },\n \"networkId\": 0,\n \"rpc\": [],\n \"shortName\": \"top\",\n \"slug\": \"top\",\n \"testnet\": false\n};\n\nvar c990 = {\n \"chain\": \"$EL\",\n \"chainId\": 990,\n \"explorers\": [{\n \"name\": \"eLiberty Mainnet\",\n \"url\": \"https://explorer.eliberty.ngo\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.eliberty.ngo\"],\n \"icon\": {\n \"url\": \"ipfs://Qmcr8US1DZcK3ooiMtE8tEQPgep12abXzxPw1jCkgZhji9\",\n \"width\": 150,\n \"height\": 150,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://eliberty.ngo\",\n \"name\": \"eLiberty Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"eLiberty\",\n \"symbol\": \"$EL\",\n \"decimals\": 18\n },\n \"networkId\": 990,\n \"rpc\": [\"https://eliberty.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://990.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.eliberty.ngo\"],\n \"shortName\": \"ELm\",\n \"slug\": \"eliberty\",\n \"testnet\": false\n};\n\nvar c997 = {\n \"chain\": \"5ireChain\",\n \"chainId\": 997,\n \"explorers\": [{\n \"name\": \"5ireChain Explorer\",\n \"url\": \"https://explorer.5ire.network\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmaZDNDFLWESH4i3XqwEWfWBb1HPnQSNbDAr74nr2x8QAk\",\n \"width\": 800,\n \"height\": 800,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [\"https://explorer.5ire.network/faucet\"],\n \"icon\": {\n \"url\": \"ipfs://QmaZDNDFLWESH4i3XqwEWfWBb1HPnQSNbDAr74nr2x8QAk\",\n \"width\": 800,\n \"height\": 800,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://5ire.org\",\n \"name\": \"5ireChain Thunder\",\n \"nativeCurrency\": {\n \"name\": \"5ire Token\",\n \"symbol\": \"5ire\",\n \"decimals\": 18\n },\n \"networkId\": 997,\n \"rpc\": [\"https://5irechain-thunder.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://997.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-testnet.5ire.network\"],\n \"shortName\": \"5ire\",\n \"slug\": \"5irechain-thunder\",\n \"testnet\": true\n};\n\nvar c998 = {\n \"chain\": \"LN\",\n \"chainId\": 998,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://explorer.luckynetwork.org\",\n \"standard\": \"none\"\n }, {\n \"name\": \"expedition\",\n \"url\": \"https://lnscan.org\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreidmvcd5i7touug55hj45mf2pgabxamy5fziva7mtx5n664s3yap6m\",\n \"width\": 205,\n \"height\": 28,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://luckynetwork.org\",\n \"name\": \"Lucky Network\",\n \"nativeCurrency\": {\n \"name\": \"Lucky\",\n \"symbol\": \"L99\",\n \"decimals\": 18\n },\n \"networkId\": 998,\n \"rpc\": [\"https://lucky-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://998.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.luckynetwork.org\", \"wss://ws.lnscan.org\", \"https://rpc.lnscan.org\"],\n \"shortName\": \"ln\",\n \"slug\": \"lucky-network\",\n \"testnet\": false\n};\n\nvar c999 = {\n \"chain\": \"ETH\",\n \"chainId\": 999,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmZ6qaRwTPFEZUspwMUjaxC6KhmzcELdRQcQzS3P72Dzts/Vector.svg\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"svg\"\n },\n \"name\": \"Zora Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"GETH\",\n \"decimals\": 18\n },\n \"networkId\": 999,\n \"redFlags\": [\"reusedChainId\"],\n \"rpc\": [\"https://zora-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://999.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.rpc.zora.co/\"],\n \"shortName\": \"zora-testnet\",\n \"slug\": \"zora-testnet\",\n \"testnet\": true\n};\n\nvar c1000 = {\n \"chain\": \"GTON\",\n \"chainId\": 1000,\n \"explorers\": [{\n \"name\": \"GTON Network Explorer\",\n \"url\": \"https://explorer.gton.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://gton.capital\",\n \"name\": \"GTON Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"GCD\",\n \"symbol\": \"GCD\",\n \"decimals\": 18\n },\n \"networkId\": 1000,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-1\"\n },\n \"rpc\": [\"https://gton.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1000.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.gton.network/\"],\n \"shortName\": \"gton\",\n \"slug\": \"gton\",\n \"testnet\": false\n};\n\nvar c1001 = {\n \"chain\": \"KLAY\",\n \"chainId\": 1001,\n \"explorers\": [{\n \"name\": \"klaytnscope\",\n \"url\": \"https://scope.klaytn.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://baobab.wallet.klaytn.com/access?next=faucet\"],\n \"features\": [],\n \"infoURL\": \"https://www.klaytn.com/\",\n \"name\": \"Klaytn Testnet Baobab\",\n \"nativeCurrency\": {\n \"name\": \"KLAY\",\n \"symbol\": \"KLAY\",\n \"decimals\": 18\n },\n \"networkId\": 1001,\n \"redFlags\": [],\n \"rpc\": [\"https://klaytn-testnet-baobab.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1001.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://klaytn-baobab.blockpi.network/v1/rpc/public\", \"https://api.baobab.klaytn.net:8651\"],\n \"shortName\": \"Baobab\",\n \"slip44\": 1,\n \"slug\": \"klaytn-testnet-baobab\",\n \"testnet\": false\n};\n\nvar c1003 = {\n \"chain\": \"TET\",\n \"chainId\": 1003,\n \"explorers\": [{\n \"name\": \"Tectum explorer\",\n \"url\": \"https://explorer.tectum.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYvFVprVdAGJH4iHUCXGEmy7pq8MMfxEjM64SuXutz9qx\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"infoURL\": \"https://softnote.com\",\n \"name\": \"Tectum Emission Token\",\n \"nativeCurrency\": {\n \"name\": \"Tectum\",\n \"symbol\": \"TET\",\n \"decimals\": 8\n },\n \"networkId\": 1003,\n \"rpc\": [\"https://tectum-emission-token.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1003.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.softnote.com/\"],\n \"shortName\": \"tet\",\n \"slug\": \"tectum-emission-token\",\n \"testnet\": false\n};\n\nvar c1004 = {\n \"chain\": \"T-EKTA\",\n \"chainId\": 1004,\n \"explorers\": [{\n \"name\": \"test-ektascan\",\n \"url\": \"https://test.ektascan.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmfMd564KUPK8eKZDwGCT71ZC2jMnUZqP6LCtLpup3rHH1\",\n \"width\": 2100,\n \"height\": 2100,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmfMd564KUPK8eKZDwGCT71ZC2jMnUZqP6LCtLpup3rHH1\",\n \"width\": 2100,\n \"height\": 2100,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.ekta.io\",\n \"name\": \"T-EKTA\",\n \"nativeCurrency\": {\n \"name\": \"T-EKTA\",\n \"symbol\": \"T-EKTA\",\n \"decimals\": 18\n },\n \"networkId\": 1004,\n \"rpc\": [\"https://t-ekta.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1004.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://test.ekta.io:8545\"],\n \"shortName\": \"t-ekta\",\n \"slug\": \"t-ekta\",\n \"testnet\": true,\n \"title\": \"EKTA Testnet T-EKTA\"\n};\n\nvar c1007 = {\n \"chain\": \"NEW\",\n \"chainId\": 1007,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://www.newtonproject.org/\",\n \"name\": \"Newton Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Newton\",\n \"symbol\": \"NEW\",\n \"decimals\": 18\n },\n \"networkId\": 1007,\n \"rpc\": [\"https://newton-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1007.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc1.newchain.newtonproject.org\"],\n \"shortName\": \"tnew\",\n \"slip44\": 1,\n \"slug\": \"newton-testnet\",\n \"testnet\": true\n};\n\nvar c1008 = {\n \"chain\": \"EUN\",\n \"chainId\": 1008,\n \"explorers\": [{\n \"name\": \"eurusexplorer\",\n \"url\": \"https://explorer.eurus.network\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmaGd5L9jGPbfyGXBFhu9gjinWJ66YtNrXq8x6Q98Eep9e\",\n \"width\": 471,\n \"height\": 471,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmaGd5L9jGPbfyGXBFhu9gjinWJ66YtNrXq8x6Q98Eep9e\",\n \"width\": 471,\n \"height\": 471,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://eurus.network\",\n \"name\": \"Eurus Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Eurus\",\n \"symbol\": \"EUN\",\n \"decimals\": 18\n },\n \"networkId\": 1008,\n \"rpc\": [\"https://eurus.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1008.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.eurus.network/\"],\n \"shortName\": \"eun\",\n \"slug\": \"eurus\",\n \"testnet\": false\n};\n\nvar c1010 = {\n \"chain\": \"EVC\",\n \"chainId\": 1010,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://evrice.com\",\n \"name\": \"Evrice Network\",\n \"nativeCurrency\": {\n \"name\": \"Evrice\",\n \"symbol\": \"EVC\",\n \"decimals\": 18\n },\n \"networkId\": 1010,\n \"rpc\": [\"https://evrice-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1010.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://meta.evrice.com\"],\n \"shortName\": \"EVC\",\n \"slip44\": 1020,\n \"slug\": \"evrice-network\",\n \"testnet\": false\n};\n\nvar c1012 = {\n \"chain\": \"NEW\",\n \"chainId\": 1012,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://www.newtonproject.org/\",\n \"name\": \"Newton\",\n \"nativeCurrency\": {\n \"name\": \"Newton\",\n \"symbol\": \"NEW\",\n \"decimals\": 18\n },\n \"networkId\": 1012,\n \"rpc\": [\"https://newton.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1012.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://global.rpc.mainnet.newtonproject.org\"],\n \"shortName\": \"new\",\n \"slug\": \"newton\",\n \"testnet\": false\n};\n\nvar c1022 = {\n \"chain\": \"Sakura\",\n \"chainId\": 1022,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://clover.finance/sakura\",\n \"name\": \"Sakura\",\n \"nativeCurrency\": {\n \"name\": \"Sakura\",\n \"symbol\": \"SKU\",\n \"decimals\": 18\n },\n \"networkId\": 1022,\n \"rpc\": [],\n \"shortName\": \"sku\",\n \"slug\": \"sakura\",\n \"testnet\": false\n};\n\nvar c1023 = {\n \"chain\": \"Clover\",\n \"chainId\": 1023,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://clover.finance\",\n \"name\": \"Clover Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Clover\",\n \"symbol\": \"CLV\",\n \"decimals\": 18\n },\n \"networkId\": 1023,\n \"rpc\": [],\n \"shortName\": \"tclv\",\n \"slip44\": 1,\n \"slug\": \"clover-testnet\",\n \"testnet\": true\n};\n\nvar c1024 = {\n \"chain\": \"CLV\",\n \"chainId\": 1024,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://clv.org\",\n \"name\": \"CLV Parachain\",\n \"nativeCurrency\": {\n \"name\": \"CLV\",\n \"symbol\": \"CLV\",\n \"decimals\": 18\n },\n \"networkId\": 1024,\n \"rpc\": [\"https://clv-parachain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1024.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api-para.clover.finance\"],\n \"shortName\": \"clv\",\n \"slug\": \"clv-parachain\",\n \"testnet\": false\n};\n\nvar c1028 = {\n \"chain\": \"BTTC\",\n \"chainId\": 1028,\n \"explorers\": [{\n \"name\": \"testbttcscan\",\n \"url\": \"https://testscan.bittorrentchain.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://bittorrentchain.io/\",\n \"name\": \"BitTorrent Chain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"BitTorrent\",\n \"symbol\": \"BTT\",\n \"decimals\": 18\n },\n \"networkId\": 1028,\n \"rpc\": [\"https://bittorrent-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1028.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testrpc.bittorrentchain.io/\"],\n \"shortName\": \"tbtt\",\n \"slip44\": 1,\n \"slug\": \"bittorrent-chain-testnet\",\n \"testnet\": true\n};\n\nvar c1030 = {\n \"chain\": \"Conflux\",\n \"chainId\": 1030,\n \"explorers\": [{\n \"name\": \"Conflux Scan\",\n \"url\": \"https://evm.confluxscan.net\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreifj7n24u2dslfijfihwqvpdeigt5aj3k3sxv6s35lv75sxsfr3ojy\",\n \"width\": 460,\n \"height\": 576,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://confluxnetwork.org\",\n \"name\": \"Conflux eSpace\",\n \"nativeCurrency\": {\n \"name\": \"CFX\",\n \"symbol\": \"CFX\",\n \"decimals\": 18\n },\n \"networkId\": 1030,\n \"rpc\": [\"https://conflux-espace.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1030.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://evm.confluxrpc.com\"],\n \"shortName\": \"cfx\",\n \"slug\": \"conflux-espace\",\n \"testnet\": false\n};\n\nvar c1031 = {\n \"chain\": \"Proxy Network\",\n \"chainId\": 1031,\n \"explorers\": [{\n \"name\": \"proxy network testnet\",\n \"url\": \"http://testnet-explorer.theproxy.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://theproxy.network\",\n \"name\": \"Proxy Network Testnet\",\n \"nativeCurrency\": {\n \"name\": \"PRX\",\n \"symbol\": \"PRX\",\n \"decimals\": 18\n },\n \"networkId\": 1031,\n \"rpc\": [\"https://proxy-network-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1031.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"http://128.199.94.183:8041\"],\n \"shortName\": \"prx\",\n \"slip44\": 1,\n \"slug\": \"proxy-network-testnet\",\n \"testnet\": true\n};\n\nvar c1038 = {\n \"chain\": \"Bronos\",\n \"chainId\": 1038,\n \"explorers\": [{\n \"name\": \"Bronos Testnet Explorer\",\n \"url\": \"https://tbroscan.bronos.org\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://bafybeifkgtmhnq4sxu6jn22i7ass7aih6ubodr77k6ygtu4tjbvpmkw2ga\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucet.bronos.org\"],\n \"icon\": {\n \"url\": \"ipfs://bafybeifkgtmhnq4sxu6jn22i7ass7aih6ubodr77k6ygtu4tjbvpmkw2ga\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://bronos.org\",\n \"name\": \"Bronos Testnet\",\n \"nativeCurrency\": {\n \"name\": \"tBRO\",\n \"symbol\": \"tBRO\",\n \"decimals\": 18\n },\n \"networkId\": 1038,\n \"rpc\": [\"https://bronos-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1038.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://evm-testnet.bronos.org\"],\n \"shortName\": \"bronos-testnet\",\n \"slip44\": 1,\n \"slug\": \"bronos-testnet\",\n \"testnet\": true\n};\n\nvar c1039 = {\n \"chain\": \"Bronos\",\n \"chainId\": 1039,\n \"explorers\": [{\n \"name\": \"Bronos Explorer\",\n \"url\": \"https://broscan.bronos.org\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://bafybeifkgtmhnq4sxu6jn22i7ass7aih6ubodr77k6ygtu4tjbvpmkw2ga\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafybeifkgtmhnq4sxu6jn22i7ass7aih6ubodr77k6ygtu4tjbvpmkw2ga\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://bronos.org\",\n \"name\": \"Bronos Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"BRO\",\n \"symbol\": \"BRO\",\n \"decimals\": 18\n },\n \"networkId\": 1039,\n \"rpc\": [],\n \"shortName\": \"bronos-mainnet\",\n \"slug\": \"bronos\",\n \"testnet\": false\n};\n\nvar c1071 = {\n \"chain\": \"ShimmerEVM\",\n \"chainId\": 1071,\n \"explorers\": [{\n \"name\": \"explorer\",\n \"url\": \"https://explorer.evm.testnet.shimmer.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://evm-toolkit.evm.testnet.shimmer.network\", \"https://evm-faucet.testnet.shimmer.network\"],\n \"icon\": {\n \"url\": \"ipfs://bafkreibky2sy6qhi6arktayvologkrgu5kudpgdxfkx4uosbvmstz7v4di\",\n \"width\": 720,\n \"height\": 720,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://shimmer.network\",\n \"name\": \"ShimmerEVM Testnet Deprecated\",\n \"nativeCurrency\": {\n \"name\": \"SMR\",\n \"symbol\": \"SMR\",\n \"decimals\": 18\n },\n \"networkId\": 1071,\n \"rpc\": [],\n \"shortName\": \"shimmerevm-testnet-deprecated\",\n \"slip44\": 1,\n \"slug\": \"shimmerevm-testnet-deprecated\",\n \"status\": \"deprecated\",\n \"testnet\": true,\n \"title\": \"ShimmerEVM Testnet Deprecated\"\n};\n\nvar c1072 = {\n \"chain\": \"ShimmerEVM\",\n \"chainId\": 1072,\n \"explorers\": [{\n \"name\": \"explorer\",\n \"url\": \"https://explorer.evm.testnet.shimmer.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://evm-toolkit.evm.testnet.shimmer.network\", \"https://evm-faucet.testnet.shimmer.network\"],\n \"icon\": {\n \"url\": \"ipfs://bafkreibky2sy6qhi6arktayvologkrgu5kudpgdxfkx4uosbvmstz7v4di\",\n \"width\": 720,\n \"height\": 720,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://shimmer.network\",\n \"name\": \"ShimmerEVM Testnet Deprecated 1072\",\n \"nativeCurrency\": {\n \"name\": \"SMR\",\n \"symbol\": \"SMR\",\n \"decimals\": 6\n },\n \"networkId\": 1072,\n \"rpc\": [],\n \"shortName\": \"shimmerevm-testnet-deprecated-1072\",\n \"slip44\": 1,\n \"slug\": \"shimmerevm-testnet-deprecated-1072\",\n \"status\": \"deprecated\",\n \"testnet\": true,\n \"title\": \"ShimmerEVM Testnet Deprecated 1072\"\n};\n\nvar c1073 = {\n \"chain\": \"ShimmerEVM\",\n \"chainId\": 1073,\n \"explorers\": [{\n \"name\": \"explorer\",\n \"url\": \"https://explorer.evm.testnet.shimmer.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://evm-toolkit.evm.testnet.shimmer.network\", \"https://evm-faucet.testnet.shimmer.network\"],\n \"icon\": {\n \"url\": \"ipfs://bafkreibky2sy6qhi6arktayvologkrgu5kudpgdxfkx4uosbvmstz7v4di\",\n \"width\": 720,\n \"height\": 720,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://shimmer.network\",\n \"name\": \"ShimmerEVM Testnet\",\n \"nativeCurrency\": {\n \"name\": \"SMR\",\n \"symbol\": \"SMR\",\n \"decimals\": 6\n },\n \"networkId\": 1073,\n \"rpc\": [\"https://shimmerevm-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1073.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://json-rpc.evm.testnet.shimmer.network\"],\n \"shortName\": \"shimmerevm-testnet\",\n \"slip44\": 1,\n \"slug\": \"shimmerevm-testnet\",\n \"testnet\": true,\n \"title\": \"ShimmerEVM Testnet\"\n};\n\nvar c1079 = {\n \"chain\": \"Mintara\",\n \"chainId\": 1079,\n \"explorers\": [{\n \"name\": \"explorer\",\n \"url\": \"https://subnets-test.avax.network/mintara\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafybeie7jzlzlpz7c3a3oh4x5joej23dj2qf3cexmchjyc72hv3fblcaja\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://playthink.co.jp\",\n \"name\": \"Mintara Testnet\",\n \"nativeCurrency\": {\n \"name\": \"MINTARA\",\n \"symbol\": \"MNTR\",\n \"decimals\": 18\n },\n \"networkId\": 1079,\n \"rpc\": [\"https://mintara-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1079.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/mintara/testnet/rpc\"],\n \"shortName\": \"mintara-testnet\",\n \"slip44\": 1,\n \"slug\": \"mintara-testnet\",\n \"testnet\": true,\n \"title\": \"Mintara Testnet\"\n};\n\nvar c1080 = {\n \"chain\": \"Mintara\",\n \"chainId\": 1080,\n \"explorers\": [{\n \"name\": \"explorer\",\n \"url\": \"https://subnets.avax.network/mintara\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafybeie7jzlzlpz7c3a3oh4x5joej23dj2qf3cexmchjyc72hv3fblcaja\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://playthink.co.jp\",\n \"name\": \"Mintara Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"MINTARA\",\n \"symbol\": \"MNTR\",\n \"decimals\": 18\n },\n \"networkId\": 1080,\n \"rpc\": [\"https://mintara.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1080.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/mintara/mainnet/rpc\"],\n \"shortName\": \"mintara\",\n \"slug\": \"mintara\",\n \"testnet\": false,\n \"title\": \"Mintara Mainnet\"\n};\n\nvar c1088 = {\n \"chain\": \"ETH\",\n \"chainId\": 1088,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://andromeda-explorer.metis.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmbWKNucbMtrMPPkHG5ZmVmvNUo8CzqHHcrpk1C2BVQsEG/2022_H-Brand_Stacked_WhiteGreen.svg\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://www.metis.io\",\n \"name\": \"Metis Andromeda Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Metis\",\n \"symbol\": \"METIS\",\n \"decimals\": 18\n },\n \"networkId\": 1088,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-1\",\n \"bridges\": [{\n \"url\": \"https://bridge.metis.io\"\n }]\n },\n \"redFlags\": [],\n \"rpc\": [\"https://metis-andromeda.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1088.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://andromeda.metis.io/?owner=1088\"],\n \"shortName\": \"metis-andromeda\",\n \"slug\": \"metis-andromeda\",\n \"testnet\": false\n};\n\nvar c1089 = {\n \"chain\": \"Humans\",\n \"chainId\": 1089,\n \"explorers\": [{\n \"name\": \"explorer.guru\",\n \"url\": \"https://humans.explorers.guru\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmU83haX3TNifDDjBx6RP6ByqES1Kg9VqeJC87X9ipKyCS\",\n \"width\": 386,\n \"height\": 397,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmX6XuoQDTTjYqAmdNJiieLDZSwHHyUx44yQb4E3tmHmEA\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://humans.ai\",\n \"name\": \"Humans.ai Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"HEART\",\n \"symbol\": \"HEART\",\n \"decimals\": 18\n },\n \"networkId\": 1089,\n \"rpc\": [\"https://humans-ai.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1089.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://jsonrpc.humans.nodestake.top\", \"https://humans-mainnet-evm.itrocket.net:443\", \"https://humans-evm-rpc.staketab.org:443\", \"https://evm.humans.stakepool.dev.br\", \"https://mainnet-humans-evm.konsortech.xyz\", \"https://evm-rpc.mainnet.humans.zone\"],\n \"shortName\": \"humans\",\n \"slug\": \"humans-ai\",\n \"testnet\": false\n};\n\nvar c1099 = {\n \"chain\": \"MOAC\",\n \"chainId\": 1099,\n \"explorers\": [{\n \"name\": \"moac explorer\",\n \"url\": \"https://explorer.moac.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://moac.io\",\n \"name\": \"MOAC mainnet\",\n \"nativeCurrency\": {\n \"name\": \"MOAC\",\n \"symbol\": \"mc\",\n \"decimals\": 18\n },\n \"networkId\": 1099,\n \"rpc\": [],\n \"shortName\": \"moac\",\n \"slip44\": 314,\n \"slug\": \"moac\",\n \"testnet\": false\n};\n\nvar c1101 = {\n \"chain\": \"Polygon\",\n \"chainId\": 1101,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://zkevm.polygonscan.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmNmJZkQgx9RcFLS3rvxQTVYcPfyAFPr667keHTUxB9PDv\",\n \"width\": 122,\n \"height\": 135,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmNmJZkQgx9RcFLS3rvxQTVYcPfyAFPr667keHTUxB9PDv\",\n \"width\": 122,\n \"height\": 135,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://polygon.technology/polygon-zkevm\",\n \"name\": \"Polygon zkEVM\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 1101,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-1\",\n \"bridges\": [{\n \"url\": \"https://bridge.zkevm-rpc.com\"\n }]\n },\n \"rpc\": [\"https://polygon-zkevm.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1101.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://zkevm-rpc.com\"],\n \"shortName\": \"zkevm\",\n \"slug\": \"polygon-zkevm\",\n \"testnet\": false,\n \"title\": \"Polygon zkEVM\"\n};\n\nvar c1107 = {\n \"chain\": \"BLXQ\",\n \"chainId\": 1107,\n \"explorers\": [{\n \"name\": \"BLXq Explorer\",\n \"url\": \"https://explorer.blx.org\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmS9kDKr1rgcz5W55yCQVfFs1vRTCneaLHt1t9cBizpqpH\",\n \"width\": 1000,\n \"height\": 1000,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmS9kDKr1rgcz5W55yCQVfFs1vRTCneaLHt1t9cBizpqpH\",\n \"width\": 1000,\n \"height\": 1000,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://blx.org\",\n \"name\": \"BLXq Testnet\",\n \"nativeCurrency\": {\n \"name\": \"BLXQ\",\n \"symbol\": \"BLXQ\",\n \"decimals\": 18\n },\n \"networkId\": 1107,\n \"rpc\": [\"https://blxq-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1107.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnetq1.blx.org\"],\n \"shortName\": \"tblxq\",\n \"slip44\": 1,\n \"slug\": \"blxq-testnet\",\n \"testnet\": true\n};\n\nvar c1108 = {\n \"chain\": \"BLXQ\",\n \"chainId\": 1108,\n \"explorers\": [{\n \"name\": \"BLXq Explorer\",\n \"url\": \"https://explorer.blxq.org\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmS9kDKr1rgcz5W55yCQVfFs1vRTCneaLHt1t9cBizpqpH\",\n \"width\": 1000,\n \"height\": 1000,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmS9kDKr1rgcz5W55yCQVfFs1vRTCneaLHt1t9cBizpqpH\",\n \"width\": 1000,\n \"height\": 1000,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://blx.org\",\n \"name\": \"BLXq Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"BLXQ\",\n \"symbol\": \"BLXQ\",\n \"decimals\": 18\n },\n \"networkId\": 1108,\n \"rpc\": [\"https://blxq.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1108.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.blxq.org\"],\n \"shortName\": \"blxq\",\n \"slug\": \"blxq\",\n \"testnet\": false\n};\n\nvar c1111 = {\n \"chain\": \"WEMIX\",\n \"chainId\": 1111,\n \"explorers\": [{\n \"name\": \"WEMIX Block Explorer\",\n \"url\": \"https://explorer.wemix.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://wemix.com\",\n \"name\": \"WEMIX3.0 Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"WEMIX\",\n \"symbol\": \"WEMIX\",\n \"decimals\": 18\n },\n \"networkId\": 1111,\n \"rpc\": [\"https://wemix3-0.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1111.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.wemix.com\", \"wss://ws.wemix.com\"],\n \"shortName\": \"wemix\",\n \"slug\": \"wemix3-0\",\n \"testnet\": false\n};\n\nvar c1112 = {\n \"chain\": \"TWEMIX\",\n \"chainId\": 1112,\n \"explorers\": [{\n \"name\": \"WEMIX Testnet Microscope\",\n \"url\": \"https://microscope.test.wemix.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://wallet.test.wemix.com/faucet\"],\n \"infoURL\": \"https://wemix.com\",\n \"name\": \"WEMIX3.0 Testnet\",\n \"nativeCurrency\": {\n \"name\": \"TestnetWEMIX\",\n \"symbol\": \"tWEMIX\",\n \"decimals\": 18\n },\n \"networkId\": 1112,\n \"rpc\": [\"https://wemix3-0-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1112.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.test.wemix.com\", \"wss://ws.test.wemix.com\"],\n \"shortName\": \"twemix\",\n \"slip44\": 1,\n \"slug\": \"wemix3-0-testnet\",\n \"testnet\": true\n};\n\nvar c1115 = {\n \"chain\": \"Core\",\n \"chainId\": 1115,\n \"explorers\": [{\n \"name\": \"Core Scan Testnet\",\n \"url\": \"https://scan.test.btcs.network\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmeTQaBCkpbsxNNWTpoNrMsnwnAEf1wYTcn7CiiZGfUXD2\",\n \"width\": 200,\n \"height\": 217,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://scan.test.btcs.network/faucet\"],\n \"icon\": {\n \"url\": \"ipfs://QmeTQaBCkpbsxNNWTpoNrMsnwnAEf1wYTcn7CiiZGfUXD2\",\n \"width\": 200,\n \"height\": 217,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.coredao.org\",\n \"name\": \"Core Blockchain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Core Blockchain Testnet Native Token\",\n \"symbol\": \"tCORE\",\n \"decimals\": 18\n },\n \"networkId\": 1115,\n \"rpc\": [\"https://core-blockchain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1115.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.test.btcs.network/\"],\n \"shortName\": \"tcore\",\n \"slip44\": 1,\n \"slug\": \"core-blockchain-testnet\",\n \"testnet\": true\n};\n\nvar c1116 = {\n \"chain\": \"Core\",\n \"chainId\": 1116,\n \"explorers\": [{\n \"name\": \"Core Scan\",\n \"url\": \"https://scan.coredao.org\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmeTQaBCkpbsxNNWTpoNrMsnwnAEf1wYTcn7CiiZGfUXD2\",\n \"width\": 200,\n \"height\": 217,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmeTQaBCkpbsxNNWTpoNrMsnwnAEf1wYTcn7CiiZGfUXD2\",\n \"width\": 200,\n \"height\": 217,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.coredao.org\",\n \"name\": \"Core Blockchain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Core Blockchain Native Token\",\n \"symbol\": \"CORE\",\n \"decimals\": 18\n },\n \"networkId\": 1116,\n \"rpc\": [\"https://core-blockchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1116.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.coredao.org/\", \"https://rpc-core.icecreamswap.com\"],\n \"shortName\": \"core\",\n \"slug\": \"core-blockchain\",\n \"testnet\": false\n};\n\nvar c1117 = {\n \"chain\": \"DOGS\",\n \"chainId\": 1117,\n \"explorers\": [{\n \"name\": \"Dogcoin\",\n \"url\": \"https://explorer.dogcoin.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.dogcoin.network\"],\n \"icon\": {\n \"url\": \"ipfs://QmZCadkExKThak3msvszZjo6UnAbUJKE61dAcg4TixuMC3\",\n \"width\": 160,\n \"height\": 171,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://dogcoin.network\",\n \"name\": \"Dogcoin Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Dogcoin\",\n \"symbol\": \"DOGS\",\n \"decimals\": 18\n },\n \"networkId\": 1117,\n \"rpc\": [\"https://dogcoin.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1117.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-rpc.dogcoin.me\"],\n \"shortName\": \"DOGSm\",\n \"slug\": \"dogcoin\",\n \"testnet\": false\n};\n\nvar c1130 = {\n \"chain\": \"defichain-evm\",\n \"chainId\": 1130,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmdR3YL9F95ajwVwfxAGoEzYwm9w7JNsPSfUPjSaQogVjK\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://meta.defichain.com/\",\n \"name\": \"DeFiChain EVM Network Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"DeFiChain\",\n \"symbol\": \"DFI\",\n \"decimals\": 18\n },\n \"networkId\": 1130,\n \"rpc\": [],\n \"shortName\": \"DFI\",\n \"slip44\": 1130,\n \"slug\": \"defichain-evm-network\",\n \"status\": \"incubating\",\n \"testnet\": false\n};\n\nvar c1131 = {\n \"chain\": \"defichain-evm-testnet\",\n \"chainId\": 1131,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmdR3YL9F95ajwVwfxAGoEzYwm9w7JNsPSfUPjSaQogVjK\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://meta.defichain.com/\",\n \"name\": \"DeFiChain EVM Network Testnet\",\n \"nativeCurrency\": {\n \"name\": \"DeFiChain\",\n \"symbol\": \"DFI\",\n \"decimals\": 18\n },\n \"networkId\": 1131,\n \"rpc\": [],\n \"shortName\": \"DFI-T\",\n \"slip44\": 1,\n \"slug\": \"defichain-evm-network-testnet\",\n \"status\": \"incubating\",\n \"testnet\": true\n};\n\nvar c1133 = {\n \"chain\": \"DFI\",\n \"chainId\": 1133,\n \"explorers\": [{\n \"name\": \"MetaScan\",\n \"url\": \"https://meta.defiscan.live\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"http://tc04.mydefichain.com/faucet\"],\n \"icon\": {\n \"url\": \"ipfs://QmdR3YL9F95ajwVwfxAGoEzYwm9w7JNsPSfUPjSaQogVjK\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://meta.defichain.com\",\n \"name\": \"DeFiMetaChain Changi Testnet\",\n \"nativeCurrency\": {\n \"name\": \"DeFiChain Token\",\n \"symbol\": \"DFI\",\n \"decimals\": 18\n },\n \"networkId\": 1133,\n \"rpc\": [\"https://defimetachain-changi-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1133.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://dmc.mydefichain.com/changi\", \"https://testnet-dmc.mydefichain.com:20551\"],\n \"shortName\": \"changi\",\n \"slug\": \"defimetachain-changi-testnet\",\n \"testnet\": true\n};\n\nvar c1138 = {\n \"chain\": \"AmStar\",\n \"chainId\": 1138,\n \"explorers\": [{\n \"name\": \"amstarscan-testnet\",\n \"url\": \"https://testnet.amstarscan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://Qmd4TMQdnYxaUZqnVddh5S37NGH72g2kkK38ccCEgdZz1C\",\n \"width\": 599,\n \"height\": 563,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://sinso.io\",\n \"name\": \"AmStar Testnet\",\n \"nativeCurrency\": {\n \"name\": \"SINSO\",\n \"symbol\": \"SINSO\",\n \"decimals\": 18\n },\n \"networkId\": 1138,\n \"rpc\": [\"https://amstar-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1138.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-rpc.amstarscan.com\"],\n \"shortName\": \"ASARt\",\n \"slip44\": 1,\n \"slug\": \"amstar-testnet\",\n \"testnet\": true\n};\n\nvar c1139 = {\n \"chain\": \"MATH\",\n \"chainId\": 1139,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://mathchain.org\",\n \"name\": \"MathChain\",\n \"nativeCurrency\": {\n \"name\": \"MathChain\",\n \"symbol\": \"MATH\",\n \"decimals\": 18\n },\n \"networkId\": 1139,\n \"rpc\": [\"https://mathchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1139.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mathchain-asia.maiziqianbao.net/rpc\", \"https://mathchain-us.maiziqianbao.net/rpc\"],\n \"shortName\": \"MATH\",\n \"slug\": \"mathchain\",\n \"testnet\": false\n};\n\nvar c1140 = {\n \"chain\": \"MATH\",\n \"chainId\": 1140,\n \"explorers\": [],\n \"faucets\": [\"https://scan.boka.network/#/Galois/faucet\"],\n \"infoURL\": \"https://mathchain.org\",\n \"name\": \"MathChain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"MathChain\",\n \"symbol\": \"MATH\",\n \"decimals\": 18\n },\n \"networkId\": 1140,\n \"rpc\": [\"https://mathchain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1140.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://galois-hk.maiziqianbao.net/rpc\"],\n \"shortName\": \"tMATH\",\n \"slip44\": 1,\n \"slug\": \"mathchain-testnet\",\n \"testnet\": true\n};\n\nvar c1149 = {\n \"chain\": \"Plexchain\",\n \"chainId\": 1149,\n \"explorers\": [{\n \"name\": \"Plexchain Explorer\",\n \"url\": \"https://explorer.plexfinance.us\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmcXzfMNSQ7SZzKemNquVoXyG5ergdqCGeLWjRYETGBTUM\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmcXzfMNSQ7SZzKemNquVoXyG5ergdqCGeLWjRYETGBTUM\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://plexfinance.us/\",\n \"name\": \"Symplexia Smart Chain\",\n \"nativeCurrency\": {\n \"name\": \"Plex Native Token\",\n \"symbol\": \"PLEX\",\n \"decimals\": 18\n },\n \"networkId\": 1149,\n \"rpc\": [\"https://symplexia-smart-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1149.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://plex-rpc.plexfinance.us\"],\n \"shortName\": \"Plexchain\",\n \"slug\": \"symplexia-smart-chain\",\n \"testnet\": false\n};\n\nvar c1170 = {\n \"chain\": \"Origin\",\n \"chainId\": 1170,\n \"explorers\": [{\n \"name\": \"Origin Explorer\",\n \"url\": \"https://evm-explorer.origin.uptick.network\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmRGJ6PqYHDTWuUQ6xfnK8S82NzRXiMjTnSGat9qtLuaLP\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmRGJ6PqYHDTWuUQ6xfnK8S82NzRXiMjTnSGat9qtLuaLP\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.uptick.network\",\n \"name\": \"Origin Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Origin\",\n \"symbol\": \"UOC\",\n \"decimals\": 18\n },\n \"networkId\": 1170,\n \"rpc\": [\"https://origin-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1170.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://json-rpc.origin.uptick.network\"],\n \"shortName\": \"auoc\",\n \"slip44\": 1,\n \"slug\": \"origin-testnet\",\n \"testnet\": true\n};\n\nvar c1177 = {\n \"chain\": \"SHT\",\n \"chainId\": 1177,\n \"explorers\": [{\n \"name\": \"Smart Host Teknoloji TESTNET Explorer\",\n \"url\": \"https://s2.tl.web.tr:4000\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmTrLGHyQ1Le25Q7EgNSF5Qq8D2SocKvroDkLqurdBuSQQ\",\n \"width\": 1655,\n \"height\": 1029,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmTrLGHyQ1Le25Q7EgNSF5Qq8D2SocKvroDkLqurdBuSQQ\",\n \"width\": 1655,\n \"height\": 1029,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://smart-host.com.tr\",\n \"name\": \"Smart Host Teknoloji TESTNET\",\n \"nativeCurrency\": {\n \"name\": \"Smart Host Teknoloji TESTNET\",\n \"symbol\": \"tSHT\",\n \"decimals\": 18\n },\n \"networkId\": 1177,\n \"rpc\": [\"https://smart-host-teknoloji-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1177.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://s2.tl.web.tr:4041\"],\n \"shortName\": \"sht\",\n \"slip44\": 1,\n \"slug\": \"smart-host-teknoloji-testnet\",\n \"testnet\": true\n};\n\nvar c1197 = {\n \"chain\": \"IORA\",\n \"chainId\": 1197,\n \"explorers\": [{\n \"name\": \"ioraexplorer\",\n \"url\": \"https://explorer.iorachain.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafybeiehps5cqdhqottu2efo4jeehwpkz5rbux3cjxd75rm6rjm4sgs2wi\",\n \"width\": 250,\n \"height\": 250,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://iorachain.com\",\n \"name\": \"Iora Chain\",\n \"nativeCurrency\": {\n \"name\": \"Iora\",\n \"symbol\": \"IORA\",\n \"decimals\": 18\n },\n \"networkId\": 1197,\n \"rpc\": [\"https://iora-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1197.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://dataseed.iorachain.com\"],\n \"shortName\": \"iora\",\n \"slug\": \"iora-chain\",\n \"testnet\": false\n};\n\nvar c1201 = {\n \"chain\": \"Evanesco Testnet\",\n \"chainId\": 1201,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://evanesco.org/\",\n \"name\": \"Evanesco Testnet\",\n \"nativeCurrency\": {\n \"name\": \"AVIS\",\n \"symbol\": \"AVIS\",\n \"decimals\": 18\n },\n \"networkId\": 1201,\n \"rpc\": [\"https://evanesco-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1201.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://seed5.evanesco.org:8547\"],\n \"shortName\": \"avis\",\n \"slip44\": 1,\n \"slug\": \"evanesco-testnet\",\n \"testnet\": true\n};\n\nvar c1202 = {\n \"chain\": \"WTT\",\n \"chainId\": 1202,\n \"explorers\": [{\n \"name\": \"WTTScout\",\n \"url\": \"https://explorer.cadaut.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"http://www.cadaut.com\",\n \"name\": \"World Trade Technical Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"World Trade Token\",\n \"symbol\": \"WTT\",\n \"decimals\": 18\n },\n \"networkId\": 2048,\n \"rpc\": [\"https://world-trade-technical-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1202.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.cadaut.com\", \"wss://rpc.cadaut.com/ws\"],\n \"shortName\": \"wtt\",\n \"slug\": \"world-trade-technical-chain\",\n \"testnet\": false\n};\n\nvar c1213 = {\n \"chain\": \"POPCATEUM\",\n \"chainId\": 1213,\n \"explorers\": [{\n \"name\": \"popcateum explorer\",\n \"url\": \"https://explorer.popcateum.org\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://popcateum.org\",\n \"name\": \"Popcateum Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Popcat\",\n \"symbol\": \"POP\",\n \"decimals\": 18\n },\n \"networkId\": 1213,\n \"rpc\": [\"https://popcateum.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1213.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://dataseed.popcateum.org\"],\n \"shortName\": \"popcat\",\n \"slug\": \"popcateum\",\n \"testnet\": false\n};\n\nvar c1214 = {\n \"chain\": \"ENTER\",\n \"chainId\": 1214,\n \"explorers\": [{\n \"name\": \"Enter Explorer - Expenter\",\n \"url\": \"https://explorer.entercoin.net\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://Qmb2UYVc1MjLPi8vhszWRxqBJYoYkWQVxDJRSmtrgk6j2E\",\n \"width\": 64,\n \"height\": 64,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://Qmb2UYVc1MjLPi8vhszWRxqBJYoYkWQVxDJRSmtrgk6j2E\",\n \"width\": 64,\n \"height\": 64,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://entercoin.net\",\n \"name\": \"EnterChain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"EnterCoin\",\n \"symbol\": \"ENTER\",\n \"decimals\": 18\n },\n \"networkId\": 1214,\n \"rpc\": [\"https://enterchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1214.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://tapi.entercoin.net/\"],\n \"shortName\": \"enter\",\n \"slug\": \"enterchain\",\n \"testnet\": false\n};\n\nvar c1229 = {\n \"chain\": \"EXZO\",\n \"chainId\": 1229,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://exzoscan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmeYpc2JfEsHa2Bh11SKRx3sgDtMeg6T8KpXNLepBEKnbJ\",\n \"width\": 128,\n \"height\": 128,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://exzo.network\",\n \"name\": \"Exzo Network Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Exzo\",\n \"symbol\": \"XZO\",\n \"decimals\": 18\n },\n \"networkId\": 1229,\n \"rpc\": [\"https://exzo-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1229.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.exzo.technology\"],\n \"shortName\": \"xzo\",\n \"slug\": \"exzo-network\",\n \"testnet\": false\n};\n\nvar c1230 = {\n \"chain\": \"Ultron\",\n \"chainId\": 1230,\n \"explorers\": [{\n \"name\": \"Ultron Testnet Explorer\",\n \"url\": \"https://explorer.ultron-dev.io\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmPC6odFVyAQrXJQaZJVFpEQfRNbzZ5BjDZ7KBKmXPaYDw\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmPC6odFVyAQrXJQaZJVFpEQfRNbzZ5BjDZ7KBKmXPaYDw\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://ultron.foundation\",\n \"name\": \"Ultron Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Ultron\",\n \"symbol\": \"ULX\",\n \"decimals\": 18\n },\n \"networkId\": 1230,\n \"rpc\": [\"https://ultron-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1230.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://ultron-dev.io\"],\n \"shortName\": \"UltronTestnet\",\n \"slip44\": 1,\n \"slug\": \"ultron-testnet\",\n \"testnet\": true\n};\n\nvar c1231 = {\n \"chain\": \"Ultron\",\n \"chainId\": 1231,\n \"explorers\": [{\n \"name\": \"Ultron Explorer\",\n \"url\": \"https://ulxscan.com\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmPC6odFVyAQrXJQaZJVFpEQfRNbzZ5BjDZ7KBKmXPaYDw\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmPC6odFVyAQrXJQaZJVFpEQfRNbzZ5BjDZ7KBKmXPaYDw\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://ultron.foundation\",\n \"name\": \"Ultron Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Ultron\",\n \"symbol\": \"ULX\",\n \"decimals\": 18\n },\n \"networkId\": 1231,\n \"rpc\": [\"https://ultron.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1231.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://ultron-rpc.net\"],\n \"shortName\": \"UtronMainnet\",\n \"slug\": \"ultron\",\n \"testnet\": false\n};\n\nvar c1234 = {\n \"chain\": \"STEP\",\n \"chainId\": 1234,\n \"explorers\": [{\n \"name\": \"StepScan\",\n \"url\": \"https://stepscan.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmVp9jyb3UFW71867yVtymmiRw7dPY4BTnsp3hEjr9tn8L\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmVp9jyb3UFW71867yVtymmiRw7dPY4BTnsp3hEjr9tn8L\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://step.network\",\n \"name\": \"Step Network\",\n \"nativeCurrency\": {\n \"name\": \"FITFI\",\n \"symbol\": \"FITFI\",\n \"decimals\": 18\n },\n \"networkId\": 1234,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-43114\",\n \"bridges\": [{\n \"url\": \"https://bridge.step.network\"\n }]\n },\n \"rpc\": [\"https://step-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1234.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.step.network\"],\n \"shortName\": \"step\",\n \"slug\": \"step-network\",\n \"testnet\": false,\n \"title\": \"Step Main Network\"\n};\n\nvar c1243 = {\n \"chain\": \"ARC\",\n \"chainId\": 1243,\n \"explorers\": [{\n \"name\": \"archiescan\",\n \"url\": \"https://app.archiescan.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafybeiady63oqduls2pm4aaykzjhahblagokhnpsc5qeq5dmkxqelh7i2i\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://archiechain.io/\",\n \"name\": \"ARC Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"ARC\",\n \"symbol\": \"ARC\",\n \"decimals\": 18\n },\n \"networkId\": 1243,\n \"rpc\": [\"https://arc.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1243.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-main-1.archiechain.io\"],\n \"shortName\": \"ARC\",\n \"slug\": \"arc\",\n \"testnet\": false\n};\n\nvar c1244 = {\n \"chain\": \"ARC\",\n \"chainId\": 1244,\n \"explorers\": [{\n \"name\": \"archiescan\",\n \"url\": \"https://testnet.archiescan.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://faucet.archiechain.io\"],\n \"icon\": {\n \"url\": \"ipfs://bafybeiady63oqduls2pm4aaykzjhahblagokhnpsc5qeq5dmkxqelh7i2i\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://archiechain.io/\",\n \"name\": \"ARC Testnet\",\n \"nativeCurrency\": {\n \"name\": \"ARC\",\n \"symbol\": \"ARC\",\n \"decimals\": 18\n },\n \"networkId\": 1244,\n \"rpc\": [\"https://arc-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1244.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-test-1.archiechain.io\"],\n \"shortName\": \"TARC\",\n \"slip44\": 1,\n \"slug\": \"arc-testnet\",\n \"testnet\": true\n};\n\nvar c1246 = {\n \"chain\": \"omplatform\",\n \"chainId\": 1246,\n \"explorers\": [{\n \"name\": \"OMSCAN - Expenter\",\n \"url\": \"https://omscan.omplatform.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://omplatform.com/\",\n \"name\": \"OM Platform Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"OMCOIN\",\n \"symbol\": \"OM\",\n \"decimals\": 18\n },\n \"networkId\": 1246,\n \"rpc\": [\"https://om-platform.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1246.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-cnx.omplatform.com/\"],\n \"shortName\": \"om\",\n \"slug\": \"om-platform\",\n \"testnet\": false\n};\n\nvar c1248 = {\n \"chain\": \"Dogether\",\n \"chainId\": 1248,\n \"explorers\": [{\n \"name\": \"DogetherExplorer\",\n \"url\": \"https://explorer.dogether.dog\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.dogether.dog/\",\n \"name\": \"Dogether Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Dogether\",\n \"symbol\": \"dogeth\",\n \"decimals\": 18\n },\n \"networkId\": 1248,\n \"rpc\": [\"https://dogether.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1248.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.dogether.dog/\"],\n \"shortName\": \"Dogether\",\n \"slug\": \"dogether\",\n \"testnet\": false\n};\n\nvar c1252 = {\n \"chain\": \"CICT\",\n \"chainId\": 1252,\n \"explorers\": [{\n \"name\": \"CICscan\",\n \"url\": \"https://testnet.cicscan.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmNekc5gpyrQkeDQcmfJLBrP5fa6GMarB13iy6aHVdQJDU\",\n \"width\": 1024,\n \"height\": 768,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://cicfaucet.com\"],\n \"icon\": {\n \"url\": \"ipfs://QmNekc5gpyrQkeDQcmfJLBrP5fa6GMarB13iy6aHVdQJDU\",\n \"width\": 1024,\n \"height\": 768,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.cicchain.net\",\n \"name\": \"CIC Chain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Crazy Internet Coin\",\n \"symbol\": \"CICT\",\n \"decimals\": 18\n },\n \"networkId\": 1252,\n \"rpc\": [\"https://cic-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1252.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testapi.cicscan.com\"],\n \"shortName\": \"CICT\",\n \"slip44\": 1,\n \"slug\": \"cic-chain-testnet\",\n \"testnet\": true\n};\n\nvar c1280 = {\n \"chain\": \"HALO\",\n \"chainId\": 1280,\n \"explorers\": [{\n \"name\": \"HALOexplorer\",\n \"url\": \"https://browser.halo.land\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://halo.land/#/\",\n \"name\": \"HALO Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"HALO\",\n \"symbol\": \"HO\",\n \"decimals\": 18\n },\n \"networkId\": 1280,\n \"rpc\": [\"https://halo.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1280.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://nodes.halo.land\"],\n \"shortName\": \"HO\",\n \"slug\": \"halo\",\n \"testnet\": false\n};\n\nvar c1284 = {\n \"chain\": \"MOON\",\n \"chainId\": 1284,\n \"explorers\": [{\n \"name\": \"moonscan\",\n \"url\": \"https://moonbeam.moonscan.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://moonbeam.network/networks/moonbeam/\",\n \"name\": \"Moonbeam\",\n \"nativeCurrency\": {\n \"name\": \"Glimmer\",\n \"symbol\": \"GLMR\",\n \"decimals\": 18\n },\n \"networkId\": 1284,\n \"rpc\": [\"https://moonbeam.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1284.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.api.moonbeam.network\", \"wss://wss.api.moonbeam.network\", \"https://moonbeam.publicnode.com\", \"wss://moonbeam.publicnode.com\"],\n \"shortName\": \"mbeam\",\n \"slug\": \"moonbeam\",\n \"testnet\": false\n};\n\nvar c1285 = {\n \"chain\": \"MOON\",\n \"chainId\": 1285,\n \"explorers\": [{\n \"name\": \"moonscan\",\n \"url\": \"https://moonriver.moonscan.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://moonbeam.network/networks/moonriver/\",\n \"name\": \"Moonriver\",\n \"nativeCurrency\": {\n \"name\": \"Moonriver\",\n \"symbol\": \"MOVR\",\n \"decimals\": 18\n },\n \"networkId\": 1285,\n \"rpc\": [\"https://moonriver.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1285.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.api.moonriver.moonbeam.network\", \"wss://wss.api.moonriver.moonbeam.network\", \"https://moonriver.publicnode.com\", \"wss://moonriver.publicnode.com\"],\n \"shortName\": \"mriver\",\n \"slug\": \"moonriver\",\n \"testnet\": false\n};\n\nvar c1286 = {\n \"chain\": \"MOON\",\n \"chainId\": 1286,\n \"explorers\": [],\n \"faucets\": [],\n \"name\": \"Moonrock old\",\n \"nativeCurrency\": {\n \"name\": \"Rocs\",\n \"symbol\": \"ROC\",\n \"decimals\": 18\n },\n \"networkId\": 1286,\n \"rpc\": [],\n \"shortName\": \"mrock-old\",\n \"slug\": \"moonrock-old\",\n \"status\": \"deprecated\",\n \"testnet\": false\n};\n\nvar c1287 = {\n \"chain\": \"MOON\",\n \"chainId\": 1287,\n \"explorers\": [{\n \"name\": \"moonscan\",\n \"url\": \"https://moonbase.moonscan.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://docs.moonbeam.network/networks/testnet/\",\n \"name\": \"Moonbase Alpha\",\n \"nativeCurrency\": {\n \"name\": \"Dev\",\n \"symbol\": \"DEV\",\n \"decimals\": 18\n },\n \"networkId\": 1287,\n \"rpc\": [\"https://moonbase-alpha.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1287.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.api.moonbase.moonbeam.network\", \"wss://wss.api.moonbase.moonbeam.network\"],\n \"shortName\": \"mbase\",\n \"slip44\": 1,\n \"slug\": \"moonbase-alpha\",\n \"testnet\": true\n};\n\nvar c1288 = {\n \"chain\": \"MOON\",\n \"chainId\": 1288,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://docs.moonbeam.network/learn/platform/networks/overview/\",\n \"name\": \"Moonrock\",\n \"nativeCurrency\": {\n \"name\": \"Rocs\",\n \"symbol\": \"ROC\",\n \"decimals\": 18\n },\n \"networkId\": 1288,\n \"rpc\": [\"https://moonrock.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1288.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.api.moonrock.moonbeam.network\", \"wss://wss.api.moonrock.moonbeam.network\"],\n \"shortName\": \"mrock\",\n \"slug\": \"moonrock\",\n \"testnet\": false\n};\n\nvar c1291 = {\n \"chain\": \"SWTR\",\n \"chainId\": 1291,\n \"explorers\": [{\n \"name\": \"Swisstronik Scout\",\n \"url\": \"https://explorer-evm.testnet.swisstronik.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://faucet.testnet.swisstronik.com\"],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://bafybeihuintkoipxalwans23vhxajbwjnozpy34ww7ia7ds7nay3rpylzi\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://www.swisstronik.com\",\n \"name\": \"Swisstronik Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Swisstronik\",\n \"symbol\": \"SWTR\",\n \"decimals\": 18\n },\n \"networkId\": 1291,\n \"rpc\": [\"https://swisstronik-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1291.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://json-rpc.testnet.swisstronik.com\"],\n \"shortName\": \"swtr\",\n \"slip44\": 1,\n \"slug\": \"swisstronik-testnet\",\n \"testnet\": true\n};\n\nvar c1294 = {\n \"chain\": \"Bobabeam\",\n \"chainId\": 1294,\n \"explorers\": [{\n \"name\": \"Bobabeam block explorer\",\n \"url\": \"https://blockexplorer.bobabeam.boba.network\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://boba.network\",\n \"name\": \"Bobabeam\",\n \"nativeCurrency\": {\n \"name\": \"Boba Token\",\n \"symbol\": \"BOBA\",\n \"decimals\": 18\n },\n \"networkId\": 1294,\n \"rpc\": [\"https://bobabeam.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1294.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://bobabeam.boba.network\", \"wss://wss.bobabeam.boba.network\", \"https://replica.bobabeam.boba.network\", \"wss://replica-wss.bobabeam.boba.network\"],\n \"shortName\": \"Bobabeam\",\n \"slug\": \"bobabeam\",\n \"testnet\": false\n};\n\nvar c1297 = {\n \"chain\": \"Bobabase Testnet\",\n \"chainId\": 1297,\n \"explorers\": [{\n \"name\": \"Bobabase block explorer\",\n \"url\": \"https://blockexplorer.bobabase.boba.network\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://boba.network\",\n \"name\": \"Bobabase Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Boba Token\",\n \"symbol\": \"BOBA\",\n \"decimals\": 18\n },\n \"networkId\": 1297,\n \"rpc\": [\"https://bobabase-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1297.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://bobabase.boba.network\", \"wss://wss.bobabase.boba.network\", \"https://replica.bobabase.boba.network\", \"wss://replica-wss.bobabase.boba.network\"],\n \"shortName\": \"Bobabase\",\n \"slip44\": 1,\n \"slug\": \"bobabase-testnet\",\n \"testnet\": true\n};\n\nvar c1311 = {\n \"chain\": \"DOS\",\n \"chainId\": 1311,\n \"explorers\": [{\n \"name\": \"dos-testnet\",\n \"url\": \"https://test.doscan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"http://doschain.io/\",\n \"name\": \"Dos Fuji Subnet\",\n \"nativeCurrency\": {\n \"name\": \"Dos Native Token\",\n \"symbol\": \"DOS\",\n \"decimals\": 18\n },\n \"networkId\": 1311,\n \"rpc\": [\"https://dos-fuji-subnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1311.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://test.doschain.com/jsonrpc\"],\n \"shortName\": \"TDOS\",\n \"slug\": \"dos-fuji-subnet\",\n \"testnet\": true\n};\n\nvar c1314 = {\n \"chain\": \"ALYX\",\n \"chainId\": 1314,\n \"explorers\": [{\n \"name\": \"alyxscan\",\n \"url\": \"https://www.alyxscan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreifd43fcvh77mdcwjrpzpnlhthounc6b4u645kukqpqhduaveatf6i\",\n \"width\": 2481,\n \"height\": 2481,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.alyxchain.com\",\n \"name\": \"Alyx Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Alyx Chain Native Token\",\n \"symbol\": \"ALYX\",\n \"decimals\": 18\n },\n \"networkId\": 1314,\n \"rpc\": [\"https://alyx.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1314.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.alyxchain.com\"],\n \"shortName\": \"alyx\",\n \"slug\": \"alyx\",\n \"testnet\": false\n};\n\nvar c1319 = {\n \"chain\": \"AIA\",\n \"chainId\": 1319,\n \"explorers\": [{\n \"name\": \"AIA Chain Explorer Mainnet\",\n \"url\": \"https://aiascan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmXbBMMhjTTGAGjmqMpJm3ufFrtdkfEXCFyXYgz7nnZzsy\",\n \"width\": 160,\n \"height\": 160,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://aiachain.org/\",\n \"name\": \"AIA Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"AIA Mainnet\",\n \"symbol\": \"AIA\",\n \"decimals\": 18\n },\n \"networkId\": 1319,\n \"rpc\": [\"https://aia.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1319.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://aia-dataseed1.aiachain.org\", \"https://aia-dataseed2.aiachain.org\", \"https://aia-dataseed3.aiachain.org\", \"https://aia-dataseed4.aiachain.org\"],\n \"shortName\": \"aia\",\n \"slug\": \"aia\",\n \"testnet\": false\n};\n\nvar c1320 = {\n \"chain\": \"AIA\",\n \"chainId\": 1320,\n \"explorers\": [{\n \"name\": \"AIA Chain Explorer Testnet\",\n \"url\": \"https://testnet.aiascan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://aia-faucet-testnet.aiachain.org\"],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmXbBMMhjTTGAGjmqMpJm3ufFrtdkfEXCFyXYgz7nnZzsy\",\n \"width\": 160,\n \"height\": 160,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://aiachain.org\",\n \"name\": \"AIA Testnet\",\n \"nativeCurrency\": {\n \"name\": \"AIA Testnet\",\n \"symbol\": \"AIA\",\n \"decimals\": 18\n },\n \"networkId\": 1320,\n \"rpc\": [\"https://aia-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1320.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://aia-dataseed1-testnet.aiachain.org\"],\n \"shortName\": \"aiatestnet\",\n \"slip44\": 1,\n \"slug\": \"aia-testnet\",\n \"testnet\": true\n};\n\nvar c1337 = {\n \"chain\": \"ETH\",\n \"chainId\": 1337,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmcxZHpyJa8T4i63xqjPYrZ6tKrt55tZJpbXcjSDKuKaf9/ethereum/512.png\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"name\": \"Localhost\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 1337,\n \"redFlags\": [],\n \"rpc\": [\"http://localhost:8545\"],\n \"shortName\": \"local\",\n \"slug\": \"localhost\",\n \"testnet\": true\n};\n\nvar c1338 = {\n \"chain\": \"Elysium\",\n \"chainId\": 1338,\n \"explorers\": [{\n \"name\": \"Elysium testnet explorer\",\n \"url\": \"https://elysium-explorer.vulcanforged.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://elysiumscan.vulcanforged.com\",\n \"name\": \"Elysium Testnet\",\n \"nativeCurrency\": {\n \"name\": \"LAVA\",\n \"symbol\": \"LAVA\",\n \"decimals\": 18\n },\n \"networkId\": 1338,\n \"rpc\": [\"https://elysium-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1338.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://elysium-test-rpc.vulcanforged.com\"],\n \"shortName\": \"ELST\",\n \"slip44\": 1,\n \"slug\": \"elysium-testnet\",\n \"testnet\": true,\n \"title\": \"An L1, carbon-neutral, tree-planting, metaverse dedicated blockchain created by VulcanForged\"\n};\n\nvar c1339 = {\n \"chain\": \"Elysium\",\n \"chainId\": 1339,\n \"explorers\": [{\n \"name\": \"Elysium mainnet explorer\",\n \"url\": \"https://explorer.elysiumchain.tech\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://elysiumscan.vulcanforged.com\",\n \"name\": \"Elysium Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"LAVA\",\n \"symbol\": \"LAVA\",\n \"decimals\": 18\n },\n \"networkId\": 1339,\n \"rpc\": [\"https://elysium.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1339.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.elysiumchain.tech/\"],\n \"shortName\": \"ELSM\",\n \"slug\": \"elysium\",\n \"testnet\": false,\n \"title\": \"An L1, carbon-neutral, tree-planting, metaverse dedicated blockchain created by VulcanForged\"\n};\n\nvar c1343 = {\n \"chain\": \"BLITZ\",\n \"chainId\": 1343,\n \"explorers\": [{\n \"name\": \"BLITZ Explorer\",\n \"url\": \"https://subnets-test.avax.network/blitz\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP1559\"\n }],\n \"infoURL\": \"https://blitz.gg\",\n \"name\": \"Blitz Subnet\",\n \"nativeCurrency\": {\n \"name\": \"BLITZ GAS\",\n \"symbol\": \"BGAS\",\n \"decimals\": 18\n },\n \"networkId\": 1343,\n \"rpc\": [\"https://blitz-subnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1343.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/blitz/testnet/rpc\"],\n \"shortName\": \"blitz\",\n \"slug\": \"blitz-subnet\",\n \"testnet\": true\n};\n\nvar c1353 = {\n \"chain\": \"CIC\",\n \"chainId\": 1353,\n \"explorers\": [{\n \"name\": \"CICscan\",\n \"url\": \"https://cicscan.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmNekc5gpyrQkeDQcmfJLBrP5fa6GMarB13iy6aHVdQJDU\",\n \"width\": 1024,\n \"height\": 768,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmNekc5gpyrQkeDQcmfJLBrP5fa6GMarB13iy6aHVdQJDU\",\n \"width\": 1024,\n \"height\": 768,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.cicchain.net\",\n \"name\": \"CIC Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Crazy Internet Coin\",\n \"symbol\": \"CIC\",\n \"decimals\": 18\n },\n \"networkId\": 1353,\n \"rpc\": [\"https://cic-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1353.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://xapi.cicscan.com\"],\n \"shortName\": \"CIC\",\n \"slug\": \"cic-chain\",\n \"testnet\": false\n};\n\nvar c1369 = {\n \"chain\": \"ZAFIC\",\n \"chainId\": 1369,\n \"explorers\": [{\n \"name\": \"zafirium-explorer\",\n \"url\": \"https://explorer.zakumi.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmZT1Wq3P4YbgKBSUmCtgbs5ijPF5d91BzaMPh7Aub8d8t\",\n \"width\": 192,\n \"height\": 192,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.zakumi.io\",\n \"name\": \"Zafirium Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Zakumi Chain Native Token\",\n \"symbol\": \"ZAFIC\",\n \"decimals\": 18\n },\n \"networkId\": 1369,\n \"rpc\": [\"https://zafirium.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1369.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.zakumi.io\"],\n \"shortName\": \"zafic\",\n \"slug\": \"zafirium\",\n \"testnet\": false\n};\n\nvar c1379 = {\n \"chain\": \"KLC\",\n \"chainId\": 1379,\n \"explorers\": [{\n \"name\": \"kalarscan\",\n \"url\": \"https://explorer.kalarchain.tech\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://bafkreidbzzv3lrwlzquhlpl4jcmr54sifhi5ufoek6olb5kjh3h3kvktdq\",\n \"width\": 411,\n \"height\": 159,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreihfoy2kgf2rebaoicso7z5h7ju46z6gtr64mskkths3qbfkrtnkjm\",\n \"width\": 190,\n \"height\": 170,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://kalarchain.tech\",\n \"name\": \"Kalar Chain\",\n \"nativeCurrency\": {\n \"name\": \"Kalar\",\n \"symbol\": \"KLC\",\n \"decimals\": 18\n },\n \"networkId\": 1379,\n \"rpc\": [\"https://kalar-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1379.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-api.kalarchain.tech\"],\n \"shortName\": \"KLC\",\n \"slug\": \"kalar-chain\",\n \"testnet\": false\n};\n\nvar c1388 = {\n \"chain\": \"AmStar\",\n \"chainId\": 1388,\n \"explorers\": [{\n \"name\": \"amstarscan\",\n \"url\": \"https://mainnet.amstarscan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://Qmd4TMQdnYxaUZqnVddh5S37NGH72g2kkK38ccCEgdZz1C\",\n \"width\": 599,\n \"height\": 563,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://sinso.io\",\n \"name\": \"AmStar Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"SINSO\",\n \"symbol\": \"SINSO\",\n \"decimals\": 18\n },\n \"networkId\": 1388,\n \"rpc\": [\"https://amstar.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1388.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-rpc.amstarscan.com\"],\n \"shortName\": \"ASAR\",\n \"slug\": \"amstar\",\n \"testnet\": false\n};\n\nvar c1392 = {\n \"chain\": \"Joseon\",\n \"chainId\": 1392,\n \"explorers\": [{\n \"name\": \"BlockExplorer\",\n \"url\": \"https://www.blockexplorer.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmQjwcNRCLXU8JBtSkPLUnbWVrpoqbnZVffpJ9Bu8rG34e\",\n \"width\": 148,\n \"height\": 148,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://www.joseon.com/\",\n \"name\": \"Joseon Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Joseon Mun\",\n \"symbol\": \"JSM\",\n \"decimals\": 18\n },\n \"networkId\": 1392,\n \"rpc\": [\"https://joseon.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1392.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.modchain.net/blockchain.joseon.com/rpc\"],\n \"shortName\": \"mun\",\n \"slug\": \"joseon\",\n \"testnet\": false\n};\n\nvar c1402 = {\n \"chain\": \"Polygon\",\n \"chainId\": 1402,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://explorer.public.zkevm-test.net\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://polygon.technology/solutions/polygon-zkevm/\",\n \"name\": \"Polygon zkEVM Testnet old\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 1402,\n \"rpc\": [],\n \"shortName\": \"zkevmtest\",\n \"slip44\": 1,\n \"slug\": \"polygon-zkevm-testnet-old\",\n \"status\": \"deprecated\",\n \"testnet\": true,\n \"title\": \"Polygon zkEVM Testnet\"\n};\n\nvar c1422 = {\n \"chain\": \"Polygon\",\n \"chainId\": 1422,\n \"explorers\": [{\n \"name\": \"Polygon zkEVM explorer\",\n \"url\": \"https://explorer.public.zkevm-test.net\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://polygon.technology/solutions/polygon-zkevm/\",\n \"name\": \"Polygon zkEVM Testnet Pre Audit-Upgraded\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 1422,\n \"rpc\": [],\n \"shortName\": \"testnet-zkEVM-mango-pre-audit-upgraded\",\n \"slip44\": 1,\n \"slug\": \"polygon-zkevm-testnet-pre-audit-upgraded\",\n \"status\": \"deprecated\",\n \"testnet\": true,\n \"title\": \"Polygon zkEVM Testnet Pre Audit-Upgraded\"\n};\n\nvar c1433 = {\n \"chain\": \"Rikeza\",\n \"chainId\": 1433,\n \"explorers\": [{\n \"name\": \"Rikeza Blockchain explorer\",\n \"url\": \"https://rikscan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmfJ1Qxpzi6CSLeFeWY1Bwe435CpT5za5WfrLUE7vNzZfy\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://rikeza.io\",\n \"name\": \"Rikeza Network Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Rikeza\",\n \"symbol\": \"RIK\",\n \"decimals\": 18\n },\n \"networkId\": 1433,\n \"rpc\": [\"https://rikeza-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1433.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.rikscan.com\"],\n \"shortName\": \"RIK\",\n \"slug\": \"rikeza-network\",\n \"testnet\": false,\n \"title\": \"Rikeza Network Mainnet\"\n};\n\nvar c1440 = {\n \"chain\": \"LAS\",\n \"chainId\": 1440,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmRidubY7BVwC737BQwGEttenP1npAXN7ZNryktE416uUW\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"jpg\"\n },\n \"infoURL\": \"https://dev.livingassets.io/\",\n \"name\": \"Living Assets Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"LAS\",\n \"symbol\": \"LAS\",\n \"decimals\": 18\n },\n \"networkId\": 1440,\n \"rpc\": [\"https://living-assets.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1440.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://beta.mainnet.livingassets.io/rpc\", \"https://gamma.mainnet.livingassets.io/rpc\"],\n \"shortName\": \"LAS\",\n \"slug\": \"living-assets\",\n \"testnet\": false\n};\n\nvar c1442 = {\n \"chain\": \"Polygon\",\n \"chainId\": 1442,\n \"explorers\": [{\n \"name\": \"Polygon zkEVM explorer\",\n \"url\": \"https://explorer.public.zkevm-test.net\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmNmJZkQgx9RcFLS3rvxQTVYcPfyAFPr667keHTUxB9PDv\",\n \"width\": 122,\n \"height\": 135,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://polygon.technology/solutions/polygon-zkevm/\",\n \"name\": \"Polygon zkEVM Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 1442,\n \"redFlags\": [],\n \"rpc\": [\"https://polygon-zkevm-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1442.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.public.zkevm-test.net\"],\n \"shortName\": \"testnet-zkEVM-mango\",\n \"slip44\": 1,\n \"slug\": \"polygon-zkevm-testnet\",\n \"testnet\": true,\n \"title\": \"Polygon zkEVM Testnet\"\n};\n\nvar c1452 = {\n \"chain\": \"GIL\",\n \"chainId\": 1452,\n \"explorers\": [{\n \"name\": \"GIL Explorer\",\n \"url\": \"https://explorer.giltestnet.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmeDXUAYgQxwaSJLsqWgTqnrJVwicgEyNf9199xAMyRkqA\",\n \"width\": 243,\n \"height\": 243,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://gaussgang.com/\",\n \"name\": \"GIL Testnet\",\n \"nativeCurrency\": {\n \"name\": \"GANG\",\n \"symbol\": \"GANG\",\n \"decimals\": 18\n },\n \"networkId\": 1452,\n \"rpc\": [\"https://gil-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1452.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.giltestnet.com\"],\n \"shortName\": \"gil\",\n \"slip44\": 1,\n \"slug\": \"gil-testnet\",\n \"testnet\": true\n};\n\nvar c1455 = {\n \"chain\": \"Ctex Scan Blockchain\",\n \"chainId\": 1455,\n \"explorers\": [{\n \"name\": \"Ctex Scan Explorer\",\n \"url\": \"https://ctexscan.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://faucet.ctexscan.com\"],\n \"icon\": {\n \"url\": \"ipfs://bafkreid5evn4qovxo6msuekizv5zn7va62tea7w2zpdx5sskconebuhqle\",\n \"width\": 800,\n \"height\": 800,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://ctextoken.io\",\n \"name\": \"Ctex Scan Blockchain\",\n \"nativeCurrency\": {\n \"name\": \"CTEX\",\n \"symbol\": \"CTEX\",\n \"decimals\": 18\n },\n \"networkId\": 1455,\n \"rpc\": [\"https://ctex-scan-blockchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1455.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-rpc.ctexscan.com/\"],\n \"shortName\": \"CTEX\",\n \"slug\": \"ctex-scan-blockchain\",\n \"testnet\": false\n};\n\nvar c1501 = {\n \"chain\": \"ChainX\",\n \"chainId\": 1501,\n \"explorers\": [{\n \"name\": \"bevm scan\",\n \"url\": \"https://scan.bevm.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://cloudflare-ipfs.com/ipfs/bafkreibvwfrow3w6q5qj2mk6n7yx5oahxzgn3pnghdr76zsyxvc3l5hh7y\",\n \"width\": 3600,\n \"height\": 3600,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://chainx.org\",\n \"name\": \"BEVM\",\n \"nativeCurrency\": {\n \"name\": \"BTC\",\n \"symbol\": \"BTC\",\n \"decimals\": 18\n },\n \"networkId\": 1501,\n \"redFlags\": [],\n \"rpc\": [\"https://bevm.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1501.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-1.bevm.io/\", \"https://rpc-2.bevm.io/\"],\n \"shortName\": \"chainx\",\n \"slug\": \"bevm\",\n \"testnet\": false\n};\n\nvar c1506 = {\n \"chain\": \"Sherpax Mainnet\",\n \"chainId\": 1506,\n \"explorers\": [{\n \"name\": \"Sherpax Mainnet Explorer\",\n \"url\": \"https://evm.sherpax.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://sherpax.io/\",\n \"name\": \"Sherpax Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"KSX\",\n \"symbol\": \"KSX\",\n \"decimals\": 18\n },\n \"networkId\": 1506,\n \"rpc\": [\"https://sherpax.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1506.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.sherpax.io/rpc\"],\n \"shortName\": \"Sherpax\",\n \"slug\": \"sherpax\",\n \"testnet\": false\n};\n\nvar c1507 = {\n \"chain\": \"Sherpax Testnet\",\n \"chainId\": 1507,\n \"explorers\": [{\n \"name\": \"Sherpax Testnet Explorer\",\n \"url\": \"https://evm-pre.sherpax.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://sherpax.io/\",\n \"name\": \"Sherpax Testnet\",\n \"nativeCurrency\": {\n \"name\": \"KSX\",\n \"symbol\": \"KSX\",\n \"decimals\": 18\n },\n \"networkId\": 1507,\n \"rpc\": [\"https://sherpax-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1507.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://sherpax-testnet.chainx.org/rpc\"],\n \"shortName\": \"SherpaxTestnet\",\n \"slip44\": 1,\n \"slug\": \"sherpax-testnet\",\n \"testnet\": true\n};\n\nvar c1515 = {\n \"chain\": \"BMC\",\n \"chainId\": 1515,\n \"explorers\": [{\n \"name\": \"Beagle Messaging Chain Explorer\",\n \"url\": \"https://eth.beagle.chat\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.beagle.chat/\"],\n \"infoURL\": \"https://beagle.chat/\",\n \"name\": \"Beagle Messaging Chain\",\n \"nativeCurrency\": {\n \"name\": \"Beagle\",\n \"symbol\": \"BG\",\n \"decimals\": 18\n },\n \"networkId\": 1515,\n \"rpc\": [\"https://beagle-messaging-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1515.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://beagle.chat/eth\"],\n \"shortName\": \"beagle\",\n \"slug\": \"beagle-messaging-chain\",\n \"testnet\": false\n};\n\nvar c1559 = {\n \"chain\": \"TENET\",\n \"chainId\": 1559,\n \"explorers\": [{\n \"name\": \"TenetScan Mainnet\",\n \"url\": \"https://tenetscan.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://Qmc1gqjWTzNo4pyFSGtQuCu7kRSZZBUVybtTjHn2nNEEPA\",\n \"width\": 640,\n \"height\": 640,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://Qmc1gqjWTzNo4pyFSGtQuCu7kRSZZBUVybtTjHn2nNEEPA\",\n \"width\": 640,\n \"height\": 640,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://tenet.org/\",\n \"name\": \"Tenet\",\n \"nativeCurrency\": {\n \"name\": \"TENET\",\n \"symbol\": \"TENET\",\n \"decimals\": 18\n },\n \"networkId\": 1559,\n \"rpc\": [\"https://tenet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1559.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.tenet.org\", \"https://tenet-evm.publicnode.com\", \"wss://tenet-evm.publicnode.com\"],\n \"shortName\": \"tenet\",\n \"slug\": \"tenet\",\n \"testnet\": false,\n \"title\": \"Tenet Mainnet\"\n};\n\nvar c1582 = {\n \"chain\": \"gETH\",\n \"chainId\": 1582,\n \"explorers\": [{\n \"name\": \"Bubs Testnet Explorer\",\n \"url\": \"https://explorer.bubstestnet.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://bubstestnet.com\"],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://bafybeibfpls2ealp4e5fdeoxessfjjkldgjnrcx2erph7524pg7alskk6a/1f9cb.svg\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://bubstestnet.com\",\n \"name\": \"Bubs Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"gETH\",\n \"decimals\": 18\n },\n \"networkId\": 1582,\n \"redFlags\": [],\n \"rpc\": [\"https://bubs-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1582.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://bubs.calderachain.xyz/http\"],\n \"shortName\": \"Bubs\",\n \"slug\": \"bubs-testnet\",\n \"testnet\": true\n};\n\nvar c1618 = {\n \"chain\": \"Catechain\",\n \"chainId\": 1618,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://catechain.com\",\n \"name\": \"Catecoin Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Catecoin\",\n \"symbol\": \"CATE\",\n \"decimals\": 18\n },\n \"networkId\": 1618,\n \"rpc\": [\"https://catecoin-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1618.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://send.catechain.com\"],\n \"shortName\": \"cate\",\n \"slug\": \"catecoin-chain\",\n \"testnet\": false\n};\n\nvar c1620 = {\n \"chain\": \"ATH\",\n \"chainId\": 1620,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://atheios.org\",\n \"name\": \"Atheios\",\n \"nativeCurrency\": {\n \"name\": \"Atheios Ether\",\n \"symbol\": \"ATH\",\n \"decimals\": 18\n },\n \"networkId\": 11235813,\n \"rpc\": [\"https://atheios.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1620.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.atheios.org/\"],\n \"shortName\": \"ath\",\n \"slip44\": 1620,\n \"slug\": \"atheios\",\n \"testnet\": false\n};\n\nvar c1657 = {\n \"chain\": \"btachain\",\n \"chainId\": 1657,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://bitcoinasset.io/\",\n \"name\": \"Btachain\",\n \"nativeCurrency\": {\n \"name\": \"Bitcoin Asset\",\n \"symbol\": \"BTA\",\n \"decimals\": 18\n },\n \"networkId\": 1657,\n \"rpc\": [\"https://btachain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1657.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://dataseed1.btachain.com/\"],\n \"shortName\": \"bta\",\n \"slug\": \"btachain\",\n \"testnet\": false\n};\n\nvar c1662 = {\n \"chain\": \"LQC\",\n \"chainId\": 1662,\n \"explorers\": [{\n \"name\": \"Liquichain Mainnet\",\n \"url\": \"https://mainnet.liquichain.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://liquichain.io/\",\n \"name\": \"Liquichain\",\n \"nativeCurrency\": {\n \"name\": \"Licoin\",\n \"symbol\": \"LCN\",\n \"decimals\": 18\n },\n \"networkId\": 1662,\n \"redFlags\": [\"reusedChainId\"],\n \"rpc\": [],\n \"shortName\": \"Liquichain\",\n \"slug\": \"liquichain\",\n \"testnet\": false\n};\n\nvar c1663 = {\n \"chain\": \"Gobi\",\n \"chainId\": 1663,\n \"explorers\": [{\n \"name\": \"Gobi Testnet Block Explorer\",\n \"url\": \"https://gobi-explorer.horizen.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmSFMBk3rMyu45Sy9KQHjgArFj4HdywANNYrSosLMUdcti\",\n \"width\": 1213,\n \"height\": 1213,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucet.horizen.io\"],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmSFMBk3rMyu45Sy9KQHjgArFj4HdywANNYrSosLMUdcti\",\n \"width\": 1213,\n \"height\": 1213,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://horizen.io/\",\n \"name\": \"Horizen Gobi Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Testnet Zen\",\n \"symbol\": \"tZEN\",\n \"decimals\": 18\n },\n \"networkId\": 1663,\n \"rpc\": [\"https://horizen-gobi-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1663.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://gobi-rpc.horizenlabs.io/ethv1\", \"https://rpc.ankr.com/horizen_gobi_testnet\"],\n \"shortName\": \"Gobi\",\n \"slip44\": 1,\n \"slug\": \"horizen-gobi-testnet\",\n \"testnet\": true\n};\n\nvar c1688 = {\n \"chain\": \"LUDAN\",\n \"chainId\": 1688,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreigzeanzqgxrzzep45t776ovbwi242poqxbryuu2go5eedeuwwcsay\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.ludan.org/\",\n \"name\": \"LUDAN Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"LUDAN\",\n \"symbol\": \"LUDAN\",\n \"decimals\": 18\n },\n \"networkId\": 1688,\n \"rpc\": [\"https://ludan.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1688.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.ludan.org/\"],\n \"shortName\": \"LUDAN\",\n \"slug\": \"ludan\",\n \"testnet\": false\n};\n\nvar c1701 = {\n \"chain\": \"ETH\",\n \"chainId\": 1701,\n \"explorers\": [{\n \"name\": \"Anytype Explorer\",\n \"url\": \"https://explorer.anytype.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmaARJiAQUn4Z6wG8GLEry3kTeBB3k6RfHzSZU9SPhBgcG\",\n \"width\": 200,\n \"height\": 200,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://evm.anytype.io/faucet\"],\n \"icon\": {\n \"url\": \"ipfs://QmaARJiAQUn4Z6wG8GLEry3kTeBB3k6RfHzSZU9SPhBgcG\",\n \"width\": 200,\n \"height\": 200,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://evm.anytype.io\",\n \"name\": \"Anytype EVM Chain\",\n \"nativeCurrency\": {\n \"name\": \"ANY\",\n \"symbol\": \"ANY\",\n \"decimals\": 18\n },\n \"networkId\": 1701,\n \"rpc\": [\"https://anytype-evm-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1701.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://geth.anytype.io\"],\n \"shortName\": \"AnytypeChain\",\n \"slug\": \"anytype-evm-chain\",\n \"testnet\": false\n};\n\nvar c1707 = {\n \"chain\": \"TBSI\",\n \"chainId\": 1707,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://exp.blockchain.or.th\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://blockchain.or.th\",\n \"name\": \"TBSI Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Jinda\",\n \"symbol\": \"JINDA\",\n \"decimals\": 18\n },\n \"networkId\": 1707,\n \"rpc\": [\"https://tbsi.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1707.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.blockchain.or.th\"],\n \"shortName\": \"TBSI\",\n \"slug\": \"tbsi\",\n \"testnet\": false,\n \"title\": \"Thai Blockchain Service Infrastructure Mainnet\"\n};\n\nvar c1708 = {\n \"chain\": \"TBSI\",\n \"chainId\": 1708,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://exp.testnet.blockchain.or.th\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.blockchain.or.th\"],\n \"infoURL\": \"https://blockchain.or.th\",\n \"name\": \"TBSI Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Jinda\",\n \"symbol\": \"JINDA\",\n \"decimals\": 18\n },\n \"networkId\": 1708,\n \"rpc\": [\"https://tbsi-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1708.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.testnet.blockchain.or.th\"],\n \"shortName\": \"tTBSI\",\n \"slip44\": 1,\n \"slug\": \"tbsi-testnet\",\n \"testnet\": true,\n \"title\": \"Thai Blockchain Service Infrastructure Testnet\"\n};\n\nvar c1718 = {\n \"chain\": \"PLT\",\n \"chainId\": 1718,\n \"explorers\": [{\n \"name\": \"Palettescan\",\n \"url\": \"https://palettescan.com\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmPCEGZD1p1keTT2YfPp725azx1r9Ci41hejeUuGL2whFA\",\n \"width\": 800,\n \"height\": 800,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmPCEGZD1p1keTT2YfPp725azx1r9Ci41hejeUuGL2whFA\",\n \"width\": 800,\n \"height\": 800,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://hashpalette.com/\",\n \"name\": \"Palette Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Palette Token\",\n \"symbol\": \"PLT\",\n \"decimals\": 18\n },\n \"networkId\": 1718,\n \"rpc\": [\"https://palette-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1718.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://palette-rpc.com:22000\"],\n \"shortName\": \"PCM\",\n \"slug\": \"palette-chain\",\n \"testnet\": false\n};\n\nvar c1773 = {\n \"chain\": \"mainnet\",\n \"chainId\": 1773,\n \"explorers\": [{\n \"name\": \"PartyExplorer\",\n \"url\": \"https://partyexplorer.co\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmerDBFoXvgev2xx9U71gAaAK4CtxaaQVaAPf9Qi6UF9MS\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"jpg\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmerDBFoXvgev2xx9U71gAaAK4CtxaaQVaAPf9Qi6UF9MS\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"jpg\"\n },\n \"name\": \"PartyChain\",\n \"nativeCurrency\": {\n \"name\": \"Grams\",\n \"symbol\": \"GRAMS\",\n \"decimals\": 18\n },\n \"networkId\": 1773,\n \"rpc\": [\"https://partychain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1773.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://tea.mining4people.com/rpc\", \"http://172.104.194.36:8545\"],\n \"shortName\": \"TeaParty\",\n \"slug\": \"partychain\",\n \"status\": \"incubating\",\n \"testnet\": false\n};\n\nvar c1777 = {\n \"chain\": \"Gauss\",\n \"chainId\": 1777,\n \"explorers\": [{\n \"name\": \"Gauss Explorer\",\n \"url\": \"https://explorer.gaussgang.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmeDXUAYgQxwaSJLsqWgTqnrJVwicgEyNf9199xAMyRkqA\",\n \"width\": 243,\n \"height\": 243,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://gaussgang.com/\",\n \"name\": \"Gauss Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"GANG\",\n \"symbol\": \"GANG\",\n \"decimals\": 18\n },\n \"networkId\": 1777,\n \"rpc\": [\"https://gauss.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1777.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.gaussgang.com\"],\n \"shortName\": \"gauss\",\n \"slug\": \"gauss\",\n \"testnet\": false\n};\n\nvar c1804 = {\n \"chain\": \"CRC\",\n \"chainId\": 1804,\n \"explorers\": [{\n \"name\": \"Lite Explorer\",\n \"url\": \"https://ethereum-pocr.github.io/explorer/kerleano\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmRLwpq47tyEd3rfK4tKRhbTvyb3fc7PCutExnL1XAb37A\",\n \"width\": 334,\n \"height\": 360,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://github.com/ethereum-pocr/kerleano/blob/main/docs/faucet.md\"],\n \"icon\": {\n \"url\": \"ipfs://QmRLwpq47tyEd3rfK4tKRhbTvyb3fc7PCutExnL1XAb37A\",\n \"width\": 334,\n \"height\": 360,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://github.com/ethereum-pocr/kerleano\",\n \"name\": \"Kerleano\",\n \"nativeCurrency\": {\n \"name\": \"Climate awaReness Coin\",\n \"symbol\": \"CRC\",\n \"decimals\": 18\n },\n \"networkId\": 1804,\n \"rpc\": [\"https://kerleano.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1804.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://cacib-saturn-test.francecentral.cloudapp.azure.com\", \"wss://cacib-saturn-test.francecentral.cloudapp.azure.com:9443\"],\n \"shortName\": \"kerleano\",\n \"slip44\": 1,\n \"slug\": \"kerleano\",\n \"status\": \"active\",\n \"testnet\": true,\n \"title\": \"Proof of Climate awaReness testnet\"\n};\n\nvar c1807 = {\n \"chain\": \"rAna\",\n \"chainId\": 1807,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://rabbit.analogscan.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://analogfaucet.com\"],\n \"icon\": {\n \"url\": \"ipfs://QmdfbjjF3ZzN2jTkH9REgrA8jDS6A6c21n7rbWSVbSnvQc\",\n \"width\": 310,\n \"height\": 251,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://rabbit.analogscan.com\",\n \"name\": \"Rabbit Analog Testnet Chain\",\n \"nativeCurrency\": {\n \"name\": \"Rabbit Analog Test Chain Native Token \",\n \"symbol\": \"rAna\",\n \"decimals\": 18\n },\n \"networkId\": 1807,\n \"rpc\": [\"https://rabbit-analog-testnet-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1807.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rabbit.analog-rpc.com\"],\n \"shortName\": \"rAna\",\n \"slip44\": 1,\n \"slug\": \"rabbit-analog-testnet-chain\",\n \"testnet\": true\n};\n\nvar c1818 = {\n \"chain\": \"Cube\",\n \"chainId\": 1818,\n \"explorers\": [{\n \"name\": \"cube-scan\",\n \"url\": \"https://cubescan.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmbENgHTymTUUArX5MZ2XXH69WGenirU3oamkRD448hYdz\",\n \"width\": 282,\n \"height\": 250,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.cube.network\",\n \"name\": \"Cube Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Cube Chain Native Token\",\n \"symbol\": \"CUBE\",\n \"decimals\": 18\n },\n \"networkId\": 1818,\n \"rpc\": [\"https://cube-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1818.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://http-mainnet.cube.network\", \"wss://ws-mainnet.cube.network\", \"https://http-mainnet-sg.cube.network\", \"wss://ws-mainnet-sg.cube.network\", \"https://http-mainnet-us.cube.network\", \"wss://ws-mainnet-us.cube.network\"],\n \"shortName\": \"cube\",\n \"slip44\": 1818,\n \"slug\": \"cube-chain\",\n \"testnet\": false\n};\n\nvar c1819 = {\n \"chain\": \"Cube\",\n \"chainId\": 1819,\n \"explorers\": [{\n \"name\": \"cubetest-scan\",\n \"url\": \"https://testnet.cubescan.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.cube.network\"],\n \"icon\": {\n \"url\": \"ipfs://QmbENgHTymTUUArX5MZ2XXH69WGenirU3oamkRD448hYdz\",\n \"width\": 282,\n \"height\": 250,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.cube.network\",\n \"name\": \"Cube Chain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Cube Chain Test Native Token\",\n \"symbol\": \"CUBET\",\n \"decimals\": 18\n },\n \"networkId\": 1819,\n \"rpc\": [\"https://cube-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1819.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://http-testnet.cube.network\", \"wss://ws-testnet.cube.network\", \"https://http-testnet-sg.cube.network\", \"wss://ws-testnet-sg.cube.network\", \"https://http-testnet-jp.cube.network\", \"wss://ws-testnet-jp.cube.network\", \"https://http-testnet-us.cube.network\", \"wss://ws-testnet-us.cube.network\"],\n \"shortName\": \"cubet\",\n \"slip44\": 1,\n \"slug\": \"cube-chain-testnet\",\n \"testnet\": true\n};\n\nvar c1821 = {\n \"chain\": \"RUBY\",\n \"chainId\": 1821,\n \"explorers\": [{\n \"name\": \"RUBY Smart Chain MAINNET Explorer\",\n \"url\": \"https://rubyscan.net\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmXGJevyPHHKT28hDfsJ9Cq2DQ2bAavdie37MEwFQUVCQz\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmXGJevyPHHKT28hDfsJ9Cq2DQ2bAavdie37MEwFQUVCQz\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://rubychain.io\",\n \"name\": \"Ruby Smart Chain MAINNET\",\n \"nativeCurrency\": {\n \"name\": \"RUBY Smart Chain Native Token\",\n \"symbol\": \"RUBY\",\n \"decimals\": 18\n },\n \"networkId\": 1821,\n \"rpc\": [\"https://ruby-smart-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1821.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-data.rubychain.io/\", \"https://mainnet.rubychain.io/\"],\n \"shortName\": \"RUBY\",\n \"slip44\": 1,\n \"slug\": \"ruby-smart-chain\",\n \"testnet\": false\n};\n\nvar c1856 = {\n \"chain\": \"TSF\",\n \"chainId\": 1856,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://teslafunds.io\",\n \"name\": \"Teslafunds\",\n \"nativeCurrency\": {\n \"name\": \"Teslafunds Ether\",\n \"symbol\": \"TSF\",\n \"decimals\": 18\n },\n \"networkId\": 1,\n \"rpc\": [\"https://teslafunds.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1856.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://tsfapi.europool.me\"],\n \"shortName\": \"tsf\",\n \"slug\": \"teslafunds\",\n \"testnet\": false\n};\n\nvar c1875 = {\n \"chain\": \"WBT\",\n \"chainId\": 1875,\n \"explorers\": [{\n \"name\": \"wb-explorer\",\n \"url\": \"https://explorer.whitebit.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://Qmbi6cqsQyDjkQSoxbNTTUy8WGyVEFqCtATX2aF4KLmCcZ\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://whitebit.network\",\n \"name\": \"WhiteBIT Network\",\n \"nativeCurrency\": {\n \"name\": \"WhiteBIT Coin\",\n \"symbol\": \"WBT\",\n \"decimals\": 18\n },\n \"networkId\": 1875,\n \"rpc\": [\"https://whitebit-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1875.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.whitebit.network\"],\n \"shortName\": \"wbt\",\n \"slug\": \"whitebit-network\",\n \"testnet\": false\n};\n\nvar c1881 = {\n \"chain\": \"Gitshock Cartenz\",\n \"chainId\": 1881,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://scan.cartenz.works\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://bafkreifqpj5jkjazvh24muc7wv4r22tihzzl75cevgecxhvojm4ls6mzpq\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://gitshock.com\",\n \"name\": \"Gitshock Cartenz Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Gitshock Cartenz\",\n \"symbol\": \"tGTFX\",\n \"decimals\": 18\n },\n \"networkId\": 1881,\n \"rpc\": [\"https://gitshock-cartenz-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1881.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.cartenz.works\"],\n \"shortName\": \"gitshockchain\",\n \"slip44\": 1,\n \"slug\": \"gitshock-cartenz-testnet\",\n \"testnet\": true\n};\n\nvar c1890 = {\n \"chain\": \"Lightlink Phoenix Mainnet\",\n \"chainId\": 1890,\n \"explorers\": [{\n \"name\": \"phoenix\",\n \"url\": \"https://phoenix.lightlink.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmXMDj6iAFn2ducQcUU1M87PMMdT2jfyL3Tp3Lz5uUD5Lv\",\n \"width\": 200,\n \"height\": 200,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmXMDj6iAFn2ducQcUU1M87PMMdT2jfyL3Tp3Lz5uUD5Lv\",\n \"width\": 200,\n \"height\": 200,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://lightlink.io\",\n \"name\": \"Lightlink Phoenix Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Ethereum\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 1890,\n \"rpc\": [\"https://lightlink-phoenix.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1890.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://replicator.phoenix.lightlink.io/rpc/v1\"],\n \"shortName\": \"lightlink_phoenix\",\n \"slug\": \"lightlink-phoenix\",\n \"testnet\": false\n};\n\nvar c1891 = {\n \"chain\": \"Lightlink Pegasus Testnet\",\n \"chainId\": 1891,\n \"explorers\": [{\n \"name\": \"pegasus\",\n \"url\": \"https://pegasus.lightlink.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmXMDj6iAFn2ducQcUU1M87PMMdT2jfyL3Tp3Lz5uUD5Lv\",\n \"width\": 200,\n \"height\": 200,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucet.pegasus.lightlink.io/\"],\n \"features\": [{\n \"name\": \"EIP155\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmXMDj6iAFn2ducQcUU1M87PMMdT2jfyL3Tp3Lz5uUD5Lv\",\n \"width\": 200,\n \"height\": 200,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://lightlink.io\",\n \"name\": \"Lightlink Pegasus Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Ethereum\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 1891,\n \"rpc\": [\"https://lightlink-pegasus-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1891.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://replicator.pegasus.lightlink.io/rpc/v1\"],\n \"shortName\": \"lightlink_pegasus\",\n \"slip44\": 1,\n \"slug\": \"lightlink-pegasus-testnet\",\n \"testnet\": true\n};\n\nvar c1898 = {\n \"chain\": \"BON\",\n \"chainId\": 1898,\n \"explorers\": [{\n \"name\": \"explorer\",\n \"url\": \"https://explorer.boyanet.org:4001\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://boyanet.org\",\n \"name\": \"BON Network\",\n \"nativeCurrency\": {\n \"name\": \"BOYACoin\",\n \"symbol\": \"BOY\",\n \"decimals\": 18\n },\n \"networkId\": 1,\n \"rpc\": [\"https://bon-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1898.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"http://rpc.boyanet.org:8545\", \"ws://rpc.boyanet.org:8546\"],\n \"shortName\": \"boya\",\n \"slug\": \"bon-network\",\n \"testnet\": false\n};\n\nvar c1904 = {\n \"chain\": \"SCN\",\n \"chainId\": 1904,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://explorer.sportschainnetwork.xyz\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmdW7XfRgeyoaHXEvXp8MaVteonankR32CxhL3K5Yc2uQM\",\n \"width\": 345,\n \"height\": 321,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://sportschainnetwork.xyz\",\n \"name\": \"Sports Chain Network\",\n \"nativeCurrency\": {\n \"name\": \"SCN\",\n \"symbol\": \"SCN\",\n \"decimals\": 18\n },\n \"networkId\": 1904,\n \"rpc\": [\"https://sports-chain-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1904.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.sportschainnetwork.xyz/\"],\n \"shortName\": \"SCN\",\n \"slug\": \"sports-chain-network\",\n \"testnet\": false\n};\n\nvar c1907 = {\n \"chain\": \"BITCI\",\n \"chainId\": 1907,\n \"explorers\": [{\n \"name\": \"Bitci Explorer\",\n \"url\": \"https://bitciexplorer.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmbxmfWw5sVMASz5EbR1DCgLfk8PnqpSJGQKpYuEUpoxqn\",\n \"width\": 64,\n \"height\": 64,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://www.bitcichain.com\",\n \"name\": \"Bitcichain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Bitci\",\n \"symbol\": \"BITCI\",\n \"decimals\": 18\n },\n \"networkId\": 1907,\n \"rpc\": [\"https://bitcichain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1907.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.bitci.com\"],\n \"shortName\": \"bitci\",\n \"slug\": \"bitcichain\",\n \"testnet\": false\n};\n\nvar c1908 = {\n \"chain\": \"TBITCI\",\n \"chainId\": 1908,\n \"explorers\": [{\n \"name\": \"Bitci Explorer Testnet\",\n \"url\": \"https://testnet.bitciexplorer.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.bitcichain.com\"],\n \"icon\": {\n \"url\": \"ipfs://QmbxmfWw5sVMASz5EbR1DCgLfk8PnqpSJGQKpYuEUpoxqn\",\n \"width\": 64,\n \"height\": 64,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://www.bitcichain.com\",\n \"name\": \"Bitcichain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Test Bitci\",\n \"symbol\": \"TBITCI\",\n \"decimals\": 18\n },\n \"networkId\": 1908,\n \"rpc\": [\"https://bitcichain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1908.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.bitcichain.com\"],\n \"shortName\": \"tbitci\",\n \"slip44\": 1,\n \"slug\": \"bitcichain-testnet\",\n \"testnet\": true\n};\n\nvar c1909 = {\n \"chain\": \"MRK\",\n \"chainId\": 1909,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://merklescan.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmZocJpCSLoQqoYFkF1kn7uKDuAiFRNTK8P5PoVeiigDBU\",\n \"width\": 114,\n \"height\": 132,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://merklescan.com\",\n \"name\": \"Merkle Scan\",\n \"nativeCurrency\": {\n \"name\": \"Merkle\",\n \"symbol\": \"MRK\",\n \"decimals\": 18\n },\n \"networkId\": 1909,\n \"rpc\": [\"https://merkle-scan.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1909.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://marklechain-rpc.merklescan.com\"],\n \"shortName\": \"MRK\",\n \"slug\": \"merkle-scan\",\n \"testnet\": false\n};\n\nvar c1911 = {\n \"chain\": \"ETH\",\n \"chainId\": 1911,\n \"explorers\": [{\n \"name\": \"scalind\",\n \"url\": \"https://explorer.scalind.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmayuauUTSkYxbT1xi2AkkG5VLEMDhcMeZ18WZHiApPa9M\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://scalind.com\",\n \"name\": \"Scalind\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 1911,\n \"rpc\": [\"https://scalind.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1911.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.scalind.com\"],\n \"shortName\": \"scal\",\n \"slug\": \"scalind\",\n \"testnet\": false\n};\n\nvar c1912 = {\n \"chain\": \"RUBY\",\n \"chainId\": 1912,\n \"explorers\": [{\n \"name\": \"RUBY Smart Chain Testnet Explorer\",\n \"url\": \"https://testnet.rubyscan.net\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmXGJevyPHHKT28hDfsJ9Cq2DQ2bAavdie37MEwFQUVCQz\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://claim-faucet.rubychain.io/\"],\n \"icon\": {\n \"url\": \"ipfs://QmXGJevyPHHKT28hDfsJ9Cq2DQ2bAavdie37MEwFQUVCQz\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://rubychain.io\",\n \"name\": \"Ruby Smart Chain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"RUBY Smart Chain Native Token\",\n \"symbol\": \"tRUBY\",\n \"decimals\": 18\n },\n \"networkId\": 1912,\n \"rpc\": [\"https://ruby-smart-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1912.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-rchain.rubychain.io/\"],\n \"shortName\": \"tRUBY\",\n \"slip44\": 1,\n \"slug\": \"ruby-smart-chain-testnet\",\n \"testnet\": true\n};\n\nvar c1945 = {\n \"chain\": \"onus\",\n \"chainId\": 1945,\n \"explorers\": [{\n \"name\": \"Onus explorer testnet\",\n \"url\": \"https://explorer-testnet.onuschain.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://bafkreiec34ik3glrm5jrzafdytvu4kxdsrxhqmagbe27fytdcuzkhoooay\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"infoURL\": \"https://onuschain.io\",\n \"name\": \"ONUS Chain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"ONUS\",\n \"symbol\": \"ONUS\",\n \"decimals\": 18\n },\n \"networkId\": 1945,\n \"rpc\": [\"https://onus-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1945.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-testnet.onuschain.io\"],\n \"shortName\": \"onus-testnet\",\n \"slip44\": 1,\n \"slug\": \"onus-chain-testnet\",\n \"testnet\": true,\n \"title\": \"ONUS Chain Testnet\"\n};\n\nvar c1951 = {\n \"chain\": \"D-Chain\",\n \"chainId\": 1951,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmV2vhTqS9UyrX9Q6BSCbK4JrKBnS8ErHvstMjfb2oVWaj\",\n \"width\": 700,\n \"height\": 495,\n \"format\": \"png\"\n },\n \"name\": \"D-Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"DOINX\",\n \"symbol\": \"DOINX\",\n \"decimals\": 18\n },\n \"networkId\": 1951,\n \"rpc\": [\"https://d-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1951.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.d-chain.network/ext/bc/2ZiR1Bro5E59siVuwdNuRFzqL95NkvkbzyLBdrsYR9BLSHV7H4/rpc\"],\n \"shortName\": \"dchain-mainnet\",\n \"slug\": \"d-chain\",\n \"testnet\": false\n};\n\nvar c1954 = {\n \"chain\": \"Dexilla\",\n \"chainId\": 1954,\n \"explorers\": [{\n \"name\": \"dos-mainnet\",\n \"url\": \"https://exp.dexilla.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmUBveetVibvSEWQrjyxySgUphLuoMGSVLGmYnobt5FgEZ\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://dexilla.com\",\n \"name\": \"Dexilla Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Dexilla Native Token\",\n \"symbol\": \"DXZ\",\n \"decimals\": 18\n },\n \"networkId\": 1954,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-11155111\",\n \"bridges\": [{\n \"url\": \"https://bridge.dexilla.com\"\n }]\n },\n \"rpc\": [\"https://dexilla-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1954.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.dexilla.com\"],\n \"shortName\": \"Dexilla\",\n \"slip44\": 1,\n \"slug\": \"dexilla-testnet\",\n \"testnet\": true\n};\n\nvar c1967 = {\n \"chain\": \"MTC\",\n \"chainId\": 1967,\n \"explorers\": [{\n \"name\": \"metaexplorer-eleanor\",\n \"url\": \"https://explorer.metatime.com/eleanor\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.metatime.com/eleanor\"],\n \"infoURL\": \"https://eleanor.metatime.com\",\n \"name\": \"Eleanor\",\n \"nativeCurrency\": {\n \"name\": \"Eleanor Metacoin\",\n \"symbol\": \"MTC\",\n \"decimals\": 18\n },\n \"networkId\": 1967,\n \"rpc\": [\"https://eleanor.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1967.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.metatime.com/eleanor\", \"wss://ws.metatime.com/eleanor\"],\n \"shortName\": \"mtc\",\n \"slip44\": 1,\n \"slug\": \"eleanor\",\n \"testnet\": true,\n \"title\": \"Metatime Testnet Eleanor\"\n};\n\nvar c1969 = {\n \"chain\": \"TSCS\",\n \"chainId\": 1969,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://testnetscan.scschain.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://testnet.scschain.com\"],\n \"icon\": {\n \"url\": \"ipfs://QmW4C4QHLMhLeH5MsdVbauMc2Skb4ehzLKU3egLKKoux4D\",\n \"width\": 130,\n \"height\": 130,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://testnet.scschain.com\",\n \"name\": \"Super Smart Chain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Super Chain Native Token\",\n \"symbol\": \"TSCS\",\n \"decimals\": 18\n },\n \"networkId\": 1969,\n \"rpc\": [\"https://super-smart-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1969.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnetrpc.scschain.com\"],\n \"shortName\": \"tscs\",\n \"slip44\": 1,\n \"slug\": \"super-smart-chain-testnet\",\n \"testnet\": true\n};\n\nvar c1970 = {\n \"chain\": \"SCS\",\n \"chainId\": 1970,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://scan.scschain.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmW4C4QHLMhLeH5MsdVbauMc2Skb4ehzLKU3egLKKoux4D\",\n \"width\": 130,\n \"height\": 130,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://scschain.com\",\n \"name\": \"Super Smart Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Super Chain Native Token\",\n \"symbol\": \"SCS\",\n \"decimals\": 18\n },\n \"networkId\": 1970,\n \"rpc\": [\"https://super-smart-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1970.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.scschain.com\"],\n \"shortName\": \"scs\",\n \"slug\": \"super-smart-chain\",\n \"testnet\": false\n};\n\nvar c1971 = {\n \"chain\": \"ALTR\",\n \"chainId\": 1971,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreigcquvoalec3ll2m26v4wsx5enlxwyn6nk2mgfqwncyqrgwivla5u\",\n \"width\": 200,\n \"height\": 200,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://1971.network/\",\n \"name\": \"Atelier\",\n \"nativeCurrency\": {\n \"name\": \"ATLR\",\n \"symbol\": \"ATLR\",\n \"decimals\": 18\n },\n \"networkId\": 1971,\n \"rpc\": [\"https://atelier.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1971.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1971.network/atlr\", \"wss://1971.network/atlr\"],\n \"shortName\": \"atlr\",\n \"slip44\": 1,\n \"slug\": \"atelier\",\n \"testnet\": true,\n \"title\": \"Atelier Test Network\"\n};\n\nvar c1972 = {\n \"chain\": \"REDEV2\",\n \"chainId\": 1972,\n \"explorers\": [{\n \"name\": \"RedeCoin Explorer\",\n \"url\": \"https://explorer3.redecoin.eu\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.redecoin.eu\",\n \"name\": \"RedeCoin\",\n \"nativeCurrency\": {\n \"name\": \"RedeCoin\",\n \"symbol\": \"REDEV2\",\n \"decimals\": 18\n },\n \"networkId\": 1972,\n \"rpc\": [\"https://redecoin.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1972.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc2.redecoin.eu\"],\n \"shortName\": \"rede\",\n \"slug\": \"redecoin\",\n \"testnet\": false\n};\n\nvar c1975 = {\n \"chain\": \"onus\",\n \"chainId\": 1975,\n \"explorers\": [{\n \"name\": \"Onus explorer mainnet\",\n \"url\": \"https://explorer.onuschain.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://bafkreiec34ik3glrm5jrzafdytvu4kxdsrxhqmagbe27fytdcuzkhoooay\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"infoURL\": \"https://onuschain.io\",\n \"name\": \"ONUS Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"ONUS\",\n \"symbol\": \"ONUS\",\n \"decimals\": 18\n },\n \"networkId\": 1975,\n \"rpc\": [\"https://onus-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1975.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.onuschain.io\", \"wss://ws.onuschain.io\"],\n \"shortName\": \"onus-mainnet\",\n \"slug\": \"onus-chain\",\n \"testnet\": false,\n \"title\": \"ONUS Chain Mainnet\"\n};\n\nvar c1984 = {\n \"chain\": \"EUN\",\n \"chainId\": 1984,\n \"explorers\": [{\n \"name\": \"testnetexplorer\",\n \"url\": \"https://testnetexplorer.eurus.network\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmaGd5L9jGPbfyGXBFhu9gjinWJ66YtNrXq8x6Q98Eep9e\",\n \"width\": 471,\n \"height\": 471,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmaGd5L9jGPbfyGXBFhu9gjinWJ66YtNrXq8x6Q98Eep9e\",\n \"width\": 471,\n \"height\": 471,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://eurus.network\",\n \"name\": \"Eurus Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Eurus\",\n \"symbol\": \"EUN\",\n \"decimals\": 18\n },\n \"networkId\": 1984,\n \"rpc\": [\"https://eurus-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1984.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.eurus.network\"],\n \"shortName\": \"euntest\",\n \"slip44\": 1,\n \"slug\": \"eurus-testnet\",\n \"testnet\": true\n};\n\nvar c1985 = {\n \"chain\": \"TUSHY\",\n \"chainId\": 1985,\n \"explorers\": [{\n \"name\": \"mainnetexplorer\",\n \"url\": \"http://explore.satosh.ie\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmRHT4o9ihiY6nVkkRdwZjdugbEAQiXrrov3GS9a3GTuL7\",\n \"width\": 1024,\n \"height\": 1024,\n \"format\": \"jpg\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmRHT4o9ihiY6nVkkRdwZjdugbEAQiXrrov3GS9a3GTuL7\",\n \"width\": 1024,\n \"height\": 1024,\n \"format\": \"jpg\"\n },\n \"infoURL\": \"https://satosh.ie\",\n \"name\": \"SatoshIE\",\n \"nativeCurrency\": {\n \"name\": \"Tushy Token\",\n \"symbol\": \"TUSHY\",\n \"decimals\": 18\n },\n \"networkId\": 1985,\n \"rpc\": [\"https://satoshie.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1985.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"http://rpc.satosh.ie\"],\n \"shortName\": \"satoshie\",\n \"slug\": \"satoshie\",\n \"testnet\": false\n};\n\nvar c1986 = {\n \"chain\": \"TUSHY\",\n \"chainId\": 1986,\n \"explorers\": [{\n \"name\": \"testnetexplorer\",\n \"url\": \"http://explore-testnet.satosh.ie\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmRHT4o9ihiY6nVkkRdwZjdugbEAQiXrrov3GS9a3GTuL7\",\n \"width\": 1024,\n \"height\": 1024,\n \"format\": \"jpg\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmRHT4o9ihiY6nVkkRdwZjdugbEAQiXrrov3GS9a3GTuL7\",\n \"width\": 1024,\n \"height\": 1024,\n \"format\": \"jpg\"\n },\n \"infoURL\": \"https://satosh.ie\",\n \"name\": \"SatoshIE Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Tushy Token\",\n \"symbol\": \"TUSHY\",\n \"decimals\": 18\n },\n \"networkId\": 1986,\n \"rpc\": [\"https://satoshie-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1986.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"http://testnet.satosh.ie\"],\n \"shortName\": \"satoshie_testnet\",\n \"slip44\": 1,\n \"slug\": \"satoshie-testnet\",\n \"testnet\": true\n};\n\nvar c1987 = {\n \"chain\": \"EGEM\",\n \"chainId\": 1987,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://egem.io\",\n \"name\": \"EtherGem\",\n \"nativeCurrency\": {\n \"name\": \"EtherGem Ether\",\n \"symbol\": \"EGEM\",\n \"decimals\": 18\n },\n \"networkId\": 1987,\n \"rpc\": [\"https://ethergem.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1987.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://jsonrpc.egem.io/custom\"],\n \"shortName\": \"egem\",\n \"slip44\": 1987,\n \"slug\": \"ethergem\",\n \"testnet\": false\n};\n\nvar c1994 = {\n \"chain\": \"EKTA\",\n \"chainId\": 1994,\n \"explorers\": [{\n \"name\": \"ektascan\",\n \"url\": \"https://ektascan.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmfMd564KUPK8eKZDwGCT71ZC2jMnUZqP6LCtLpup3rHH1\",\n \"width\": 2100,\n \"height\": 2100,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmfMd564KUPK8eKZDwGCT71ZC2jMnUZqP6LCtLpup3rHH1\",\n \"width\": 2100,\n \"height\": 2100,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.ekta.io\",\n \"name\": \"Ekta\",\n \"nativeCurrency\": {\n \"name\": \"EKTA\",\n \"symbol\": \"EKTA\",\n \"decimals\": 18\n },\n \"networkId\": 1994,\n \"rpc\": [\"https://ekta.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1994.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://main.ekta.io\"],\n \"shortName\": \"ekta\",\n \"slug\": \"ekta\",\n \"testnet\": false\n};\n\nvar c1995 = {\n \"chain\": \"edeXa TestNetwork\",\n \"chainId\": 1995,\n \"explorers\": [{\n \"name\": \"edexa-testnet\",\n \"url\": \"https://explorer.testnet.edexa.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.edexa.com/\"],\n \"icon\": {\n \"url\": \"ipfs://QmSgvmLpRsCiu2ySqyceA5xN4nwi7URJRNEZLffwEKXdoR\",\n \"width\": 1028,\n \"height\": 1042,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://edexa.com/\",\n \"name\": \"edeXa Testnet\",\n \"nativeCurrency\": {\n \"name\": \"EDEXA\",\n \"symbol\": \"EDX\",\n \"decimals\": 18\n },\n \"networkId\": 1995,\n \"rpc\": [\"https://edexa-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1995.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.edexa.com/rpc\", \"https://io-dataseed1.testnet.edexa.io-market.com/rpc\"],\n \"shortName\": \"edx\",\n \"slip44\": 1,\n \"slug\": \"edexa-testnet\",\n \"testnet\": true\n};\n\nvar c1998 = {\n \"chain\": \"KYOTO\",\n \"chainId\": 1998,\n \"explorers\": [{\n \"name\": \"Kyotoscan\",\n \"url\": \"https://testnet.kyotoscan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.kyotoprotocol.io\"],\n \"features\": [{\n \"name\": \"EIP155\"\n }],\n \"infoURL\": \"https://kyotoprotocol.io\",\n \"name\": \"Kyoto Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Kyoto\",\n \"symbol\": \"KYOTO\",\n \"decimals\": 18\n },\n \"networkId\": 1998,\n \"rpc\": [\"https://kyoto-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1998.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.testnet.kyotoprotocol.io:8545\"],\n \"shortName\": \"kyoto-testnet\",\n \"slip44\": 1,\n \"slug\": \"kyoto-testnet\",\n \"testnet\": true\n};\n\nvar c2000 = {\n \"chain\": \"DC\",\n \"chainId\": 2000,\n \"explorers\": [{\n \"name\": \"dogechain explorer\",\n \"url\": \"https://explorer.dogechain.dog\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmNS6B6L8FfgGSMTEi2SxD3bK5cdmKPNtQKcYaJeRWrkHs\",\n \"width\": 732,\n \"height\": 732,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://dogechain.dog\",\n \"name\": \"Dogechain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Dogecoin\",\n \"symbol\": \"DOGE\",\n \"decimals\": 18\n },\n \"networkId\": 2000,\n \"rpc\": [\"https://dogechain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2000.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.dogechain.dog\", \"https://rpc01-sg.dogechain.dog\", \"https://rpc.ankr.com/dogechain\"],\n \"shortName\": \"dc\",\n \"slug\": \"dogechain\",\n \"testnet\": false\n};\n\nvar c2001 = {\n \"chain\": \"milkAda\",\n \"chainId\": 2001,\n \"explorers\": [{\n \"name\": \"Blockscout\",\n \"url\": \"https://explorer-mainnet-cardano-evm.c1.milkomeda.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmdoUtvHDybu5ppYBZT8BMRp6AqByVSoQs8nFwKbaS55jd\",\n \"width\": 367,\n \"height\": 367,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://milkomeda.com\",\n \"name\": \"Milkomeda C1 Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"milkAda\",\n \"symbol\": \"mADA\",\n \"decimals\": 18\n },\n \"networkId\": 2001,\n \"rpc\": [\"https://milkomeda-c1.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2001.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-mainnet-cardano-evm.c1.milkomeda.com\", \"wss://rpc-mainnet-cardano-evm.c1.milkomeda.com\"],\n \"shortName\": \"milkAda\",\n \"slug\": \"milkomeda-c1\",\n \"testnet\": false\n};\n\nvar c2002 = {\n \"chain\": \"milkALGO\",\n \"chainId\": 2002,\n \"explorers\": [{\n \"name\": \"Blockscout\",\n \"url\": \"https://explorer-mainnet-algorand-rollup.a1.milkomeda.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmdoUtvHDybu5ppYBZT8BMRp6AqByVSoQs8nFwKbaS55jd\",\n \"width\": 367,\n \"height\": 367,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://milkomeda.com\",\n \"name\": \"Milkomeda A1 Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"milkALGO\",\n \"symbol\": \"mALGO\",\n \"decimals\": 18\n },\n \"networkId\": 2002,\n \"rpc\": [\"https://milkomeda-a1.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2002.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-mainnet-algorand-rollup.a1.milkomeda.com\", \"wss://rpc-mainnet-algorand-rollup.a1.milkomeda.com/ws\"],\n \"shortName\": \"milkALGO\",\n \"slug\": \"milkomeda-a1\",\n \"testnet\": false\n};\n\nvar c2008 = {\n \"chain\": \"CloudWalk Testnet\",\n \"chainId\": 2008,\n \"explorers\": [{\n \"name\": \"CloudWalk Testnet Explorer\",\n \"url\": \"https://explorer.testnet.cloudwalk.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://cloudwalk.io\",\n \"name\": \"CloudWalk Testnet\",\n \"nativeCurrency\": {\n \"name\": \"CloudWalk Native Token\",\n \"symbol\": \"CWN\",\n \"decimals\": 18\n },\n \"networkId\": 2008,\n \"rpc\": [],\n \"shortName\": \"cloudwalk_testnet\",\n \"slip44\": 1,\n \"slug\": \"cloudwalk-testnet\",\n \"testnet\": true\n};\n\nvar c2009 = {\n \"chain\": \"CloudWalk Mainnet\",\n \"chainId\": 2009,\n \"explorers\": [{\n \"name\": \"CloudWalk Mainnet Explorer\",\n \"url\": \"https://explorer.mainnet.cloudwalk.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://cloudwalk.io\",\n \"name\": \"CloudWalk Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"CloudWalk Native Token\",\n \"symbol\": \"CWN\",\n \"decimals\": 18\n },\n \"networkId\": 2009,\n \"rpc\": [],\n \"shortName\": \"cloudwalk_mainnet\",\n \"slug\": \"cloudwalk\",\n \"testnet\": false\n};\n\nvar c2016 = {\n \"chain\": \"NetZ\",\n \"chainId\": 2016,\n \"explorers\": [{\n \"name\": \"MainnetZ\",\n \"url\": \"https://explorer.mainnetz.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.mainnetz.io\"],\n \"icon\": {\n \"url\": \"ipfs://QmT5gJ5weBiLT3GoYuF5yRTRLdPLCVZ3tXznfqW7M8fxgG\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://mainnetz.io\",\n \"name\": \"MainnetZ Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"mainnetz\",\n \"symbol\": \"NetZ\",\n \"decimals\": 18\n },\n \"networkId\": 2016,\n \"rpc\": [\"https://z-mainnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2016.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-rpc.mainnetz.io\", \"https://eu-rpc.mainnetz.io\"],\n \"shortName\": \"NetZm\",\n \"slug\": \"z-mainnet\",\n \"testnet\": false\n};\n\nvar c2018 = {\n \"chain\": \"PublicMint\",\n \"chainId\": 2018,\n \"explorers\": [{\n \"name\": \"PublicMint Explorer\",\n \"url\": \"https://explorer.dev.publicmint.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://publicmint.com\",\n \"name\": \"PublicMint Devnet\",\n \"nativeCurrency\": {\n \"name\": \"USD\",\n \"symbol\": \"USD\",\n \"decimals\": 18\n },\n \"networkId\": 2018,\n \"rpc\": [\"https://publicmint-devnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2018.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.dev.publicmint.io:8545\"],\n \"shortName\": \"pmint_dev\",\n \"slip44\": 60,\n \"slug\": \"publicmint-devnet\",\n \"testnet\": false,\n \"title\": \"Public Mint Devnet\"\n};\n\nvar c2019 = {\n \"chain\": \"PublicMint\",\n \"chainId\": 2019,\n \"explorers\": [{\n \"name\": \"PublicMint Explorer\",\n \"url\": \"https://explorer.tst.publicmint.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://publicmint.com\",\n \"name\": \"PublicMint Testnet\",\n \"nativeCurrency\": {\n \"name\": \"USD\",\n \"symbol\": \"USD\",\n \"decimals\": 18\n },\n \"networkId\": 2019,\n \"rpc\": [\"https://publicmint-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2019.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.tst.publicmint.io:8545\"],\n \"shortName\": \"pmint_test\",\n \"slip44\": 1,\n \"slug\": \"publicmint-testnet\",\n \"testnet\": true,\n \"title\": \"Public Mint Testnet\"\n};\n\nvar c2020 = {\n \"chain\": \"PublicMint\",\n \"chainId\": 2020,\n \"explorers\": [{\n \"name\": \"PublicMint Explorer\",\n \"url\": \"https://explorer.publicmint.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://publicmint.com\",\n \"name\": \"PublicMint Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"USD\",\n \"symbol\": \"USD\",\n \"decimals\": 18\n },\n \"networkId\": 2020,\n \"rpc\": [\"https://publicmint.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2020.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.publicmint.io:8545\"],\n \"shortName\": \"pmint\",\n \"slip44\": 60,\n \"slug\": \"publicmint\",\n \"testnet\": false,\n \"title\": \"Public Mint Mainnet\"\n};\n\nvar c2021 = {\n \"chain\": \"EDG\",\n \"chainId\": 2021,\n \"explorers\": [{\n \"name\": \"Edgscan by Bharathcoorg\",\n \"url\": \"https://edgscan.live\",\n \"standard\": \"EIP3091\"\n }, {\n \"name\": \"Subscan\",\n \"url\": \"https://edgeware.subscan.io\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://Qma2GfW5nQHuA7nGqdEfwaXPL63G9oTwRTQKaGTfjNtM2W\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmS3ERgAKYTmV7bSWcUPSvrrCC9wHQYxtZqEQYx9Rw4RGA\",\n \"width\": 352,\n \"height\": 304,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://edgeware.io\",\n \"name\": \"Edgeware EdgeEVM Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Edgeware\",\n \"symbol\": \"EDG\",\n \"decimals\": 18\n },\n \"networkId\": 2021,\n \"rpc\": [\"https://edgeware-edgeevm.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2021.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://edgeware-evm.jelliedowl.net\", \"https://mainnet2.edgewa.re/evm\", \"https://mainnet3.edgewa.re/evm\", \"https://mainnet4.edgewa.re/evm\", \"https://mainnet5.edgewa.re/evm\", \"wss://edgeware.jelliedowl.net\", \"wss://mainnet2.edgewa.re\", \"wss://mainnet3.edgewa.re\", \"wss://mainnet4.edgewa.re\", \"wss://mainnet5.edgewa.re\"],\n \"shortName\": \"edg\",\n \"slip44\": 523,\n \"slug\": \"edgeware-edgeevm\",\n \"testnet\": false\n};\n\nvar c2022 = {\n \"chain\": \"EDG\",\n \"chainId\": 2022,\n \"explorers\": [{\n \"name\": \"Edgscan by Bharathcoorg\",\n \"url\": \"https://testnet.edgscan.live\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://edgeware.io/build\",\n \"name\": \"Beresheet BereEVM Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Testnet EDG\",\n \"symbol\": \"tEDG\",\n \"decimals\": 18\n },\n \"networkId\": 2022,\n \"rpc\": [\"https://beresheet-bereevm-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2022.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://beresheet-evm.jelliedowl.net\", \"wss://beresheet.jelliedowl.net\"],\n \"shortName\": \"edgt\",\n \"slip44\": 1,\n \"slug\": \"beresheet-bereevm-testnet\",\n \"testnet\": true\n};\n\nvar c2023 = {\n \"chain\": \"Taycan\",\n \"chainId\": 2023,\n \"explorers\": [{\n \"name\": \"Taycan Explorer(Blockscout)\",\n \"url\": \"https://evmscan-test.hupayx.io\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://bafkreidvjcc73v747lqlyrhgbnkvkdepdvepo6baj6hmjsmjtvdyhmzzmq\",\n \"width\": 1000,\n \"height\": 1206,\n \"format\": \"png\"\n }\n }, {\n \"name\": \"Taycan Cosmos Explorer\",\n \"url\": \"https://cosmoscan-test.hupayx.io\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://bafkreidvjcc73v747lqlyrhgbnkvkdepdvepo6baj6hmjsmjtvdyhmzzmq\",\n \"width\": 1000,\n \"height\": 1206,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://ttaycan-faucet.hupayx.io/\"],\n \"icon\": {\n \"url\": \"ipfs://bafkreidvjcc73v747lqlyrhgbnkvkdepdvepo6baj6hmjsmjtvdyhmzzmq\",\n \"width\": 1000,\n \"height\": 1206,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://hupayx.io\",\n \"name\": \"Taycan Testnet\",\n \"nativeCurrency\": {\n \"name\": \"test-Shuffle\",\n \"symbol\": \"tSFL\",\n \"decimals\": 18\n },\n \"networkId\": 2023,\n \"rpc\": [\"https://taycan-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2023.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://test-taycan.hupayx.io\"],\n \"shortName\": \"taycan-testnet\",\n \"slip44\": 1,\n \"slug\": \"taycan-testnet\",\n \"testnet\": true\n};\n\nvar c2025 = {\n \"chain\": \"Rangers\",\n \"chainId\": 2025,\n \"explorers\": [{\n \"name\": \"rangersscan\",\n \"url\": \"https://scan.rangersprotocol.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmXR5e5SDABWfQn6XT9uMsVYAo5Bv7vUv4jVs8DFqatZWG\",\n \"width\": 2000,\n \"height\": 2000,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://rangersprotocol.com\",\n \"name\": \"Rangers Protocol Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Rangers Protocol Gas\",\n \"symbol\": \"RPG\",\n \"decimals\": 18\n },\n \"networkId\": 2025,\n \"rpc\": [\"https://rangers-protocol.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2025.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.rangersprotocol.com/api/jsonrpc\"],\n \"shortName\": \"rpg\",\n \"slip44\": 1008,\n \"slug\": \"rangers-protocol\",\n \"testnet\": false\n};\n\nvar c2031 = {\n \"chain\": \"CFG\",\n \"chainId\": 2031,\n \"explorers\": [{\n \"name\": \"subscan\",\n \"url\": \"https://centrifuge.subscan.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://Qma2GfW5nQHuA7nGqdEfwaXPL63G9oTwRTQKaGTfjNtM2W\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmedNc3WvTm66iNK2NYW6Fzu5tx5FgNa6HCBf3DTHpzQZ1\",\n \"width\": 209,\n \"height\": 208,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://centrifuge.io\",\n \"name\": \"Centrifuge\",\n \"nativeCurrency\": {\n \"name\": \"Centrifuge\",\n \"symbol\": \"CFG\",\n \"decimals\": 18\n },\n \"networkId\": 2031,\n \"rpc\": [\"wss://fullnode.parachain.centrifuge.io\", \"wss://centrifuge-parachain.api.onfinality.io/public-ws\", \"wss://centrifuge-rpc.dwellir.com\", \"wss://rpc-centrifuge.luckyfriday.io\"],\n \"shortName\": \"cfg\",\n \"slug\": \"centrifuge\",\n \"testnet\": false\n};\n\nvar c2032 = {\n \"chain\": \"CFG\",\n \"chainId\": 2032,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"infoURL\": \"https://centrifuge.io\",\n \"name\": \"Catalyst\",\n \"nativeCurrency\": {\n \"name\": \"Catalyst CFG\",\n \"symbol\": \"NCFG\",\n \"decimals\": 18\n },\n \"networkId\": 2032,\n \"rpc\": [\"wss://fullnode.catalyst.cntrfg.com\"],\n \"shortName\": \"ncfg\",\n \"slug\": \"catalyst\",\n \"testnet\": false\n};\n\nvar c2035 = {\n \"chain\": \"PHA\",\n \"chainId\": 2035,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://phala.network\",\n \"name\": \"Phala Network\",\n \"nativeCurrency\": {\n \"name\": \"Phala\",\n \"symbol\": \"PHA\",\n \"decimals\": 18\n },\n \"networkId\": 2035,\n \"rpc\": [],\n \"shortName\": \"pha\",\n \"slug\": \"phala-network\",\n \"testnet\": false\n};\n\nvar c2037 = {\n \"chain\": \"KIWI\",\n \"chainId\": 2037,\n \"explorers\": [{\n \"name\": \"KIWI Explorer\",\n \"url\": \"https://subnets-test.avax.network/kiwi\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP1559\"\n }],\n \"name\": \"Kiwi Subnet\",\n \"nativeCurrency\": {\n \"name\": \"Shrapgas\",\n \"symbol\": \"SHRAP\",\n \"decimals\": 18\n },\n \"networkId\": 2037,\n \"rpc\": [\"https://kiwi-subnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2037.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/kiwi/testnet/rpc\"],\n \"shortName\": \"kiwi\",\n \"slip44\": 1,\n \"slug\": \"kiwi-subnet\",\n \"testnet\": true\n};\n\nvar c2038 = {\n \"chain\": \"SHRAPNEL\",\n \"chainId\": 2038,\n \"explorers\": [{\n \"name\": \"SHRAPNEL Explorer\",\n \"url\": \"https://subnets-test.avax.network/shrapnel\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP1559\"\n }],\n \"infoURL\": \"https://www.shrapnel.com/\",\n \"name\": \"Shrapnel Testnet\",\n \"nativeCurrency\": {\n \"name\": \"SHRAPG\",\n \"symbol\": \"SHRAPG\",\n \"decimals\": 18\n },\n \"networkId\": 2038,\n \"rpc\": [\"https://shrapnel-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2038.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/shrapnel/testnet/rpc\"],\n \"shortName\": \"shraptest\",\n \"slip44\": 1,\n \"slug\": \"shrapnel-testnet\",\n \"testnet\": true\n};\n\nvar c2043 = {\n \"chain\": \"OTP\",\n \"chainId\": 2043,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://parachain.origintrail.io\",\n \"name\": \"OriginTrail Parachain\",\n \"nativeCurrency\": {\n \"name\": \"OriginTrail Parachain Token\",\n \"symbol\": \"OTP\",\n \"decimals\": 12\n },\n \"networkId\": 2043,\n \"rpc\": [\"https://origintrail-parachain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2043.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://astrosat.origintrail.network\", \"wss://parachain-rpc.origin-trail.network\"],\n \"shortName\": \"otp\",\n \"slug\": \"origintrail-parachain\",\n \"testnet\": false\n};\n\nvar c2044 = {\n \"chain\": \"shrapnel\",\n \"chainId\": 2044,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://www.shrapnel.com/\",\n \"name\": \"Shrapnel Subnet\",\n \"nativeCurrency\": {\n \"name\": \"Shrapnel Gas Token\",\n \"symbol\": \"SHRAPG\",\n \"decimals\": 18\n },\n \"networkId\": 2044,\n \"rpc\": [\"https://shrapnel-subnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2044.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/shrapnel/mainnet/rpc\"],\n \"shortName\": \"Shrapnel\",\n \"slug\": \"shrapnel-subnet\",\n \"testnet\": false\n};\n\nvar c2047 = {\n \"chain\": \"STOS\",\n \"chainId\": 2047,\n \"explorers\": [{\n \"name\": \"Stratos EVM Explorer (Blockscout)\",\n \"url\": \"https://web3-explorer-mesos.thestratos.org\",\n \"standard\": \"none\"\n }, {\n \"name\": \"Stratos Cosmos Explorer (BigDipper)\",\n \"url\": \"https://big-dipper-mesos.thestratos.org\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.thestratos.org\",\n \"name\": \"Stratos Testnet\",\n \"nativeCurrency\": {\n \"name\": \"STOS\",\n \"symbol\": \"STOS\",\n \"decimals\": 18\n },\n \"networkId\": 2047,\n \"rpc\": [\"https://stratos-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2047.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://web3-rpc-mesos.thestratos.org\"],\n \"shortName\": \"stos-testnet\",\n \"slip44\": 1,\n \"slug\": \"stratos-testnet\",\n \"testnet\": true\n};\n\nvar c2048 = {\n \"chain\": \"STOS\",\n \"chainId\": 2048,\n \"explorers\": [{\n \"name\": \"Stratos EVM Explorer (Blockscout)\",\n \"url\": \"https://web3-explorer.thestratos.org\",\n \"standard\": \"none\"\n }, {\n \"name\": \"Stratos Cosmos Explorer (BigDipper)\",\n \"url\": \"https://explorer.thestratos.org\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.thestratos.org\",\n \"name\": \"Stratos\",\n \"nativeCurrency\": {\n \"name\": \"STOS\",\n \"symbol\": \"STOS\",\n \"decimals\": 18\n },\n \"networkId\": 2048,\n \"rpc\": [\"https://stratos.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2048.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://web3-rpc.thestratos.org\"],\n \"shortName\": \"stos-mainnet\",\n \"slug\": \"stratos\",\n \"testnet\": false\n};\n\nvar c2049 = {\n \"chain\": \"MOVO\",\n \"chainId\": 2049,\n \"explorers\": [{\n \"name\": \"movoscan\",\n \"url\": \"https://movoscan.com\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmdFJMdnTvu4adiMERMP7B5ZZDwgiPmU3kU1qrUFdvHmUY\",\n \"width\": 800,\n \"height\": 800,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmSQGKhhBpMTM7vYpGdgMTDFyzaAN3PGG5AnmWy7KQPdSn\",\n \"width\": 1200,\n \"height\": 1200,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://movo.uk\",\n \"name\": \"Movo Smart Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Movo Smart Chain\",\n \"symbol\": \"MOVO\",\n \"decimals\": 18\n },\n \"networkId\": 2049,\n \"rpc\": [\"https://movo-smart-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2049.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://msc-rpc.movoscan.com\", \"https://msc-rpc.movochain.org\", \"https://msc-rpc.movoswap.com\"],\n \"shortName\": \"movo\",\n \"slip44\": 2050,\n \"slug\": \"movo-smart-chain\",\n \"testnet\": false\n};\n\nvar c2077 = {\n \"chain\": \"Qkacoin\",\n \"chainId\": 2077,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://explorer.qkacoin.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://qkacoin.org\",\n \"name\": \"Quokkacoin Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Qkacoin\",\n \"symbol\": \"QKA\",\n \"decimals\": 18\n },\n \"networkId\": 2077,\n \"rpc\": [\"https://quokkacoin.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2077.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.qkacoin.org\"],\n \"shortName\": \"QKA\",\n \"slug\": \"quokkacoin\",\n \"testnet\": false\n};\n\nvar c2088 = {\n \"chain\": \"AIR\",\n \"chainId\": 2088,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmSwqWxZ5HRdc25HMhEmVKxZkwSKapuuyGHb8kyrtuzxat\",\n \"width\": 210,\n \"height\": 210,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://centrifuge.io\",\n \"name\": \"Altair\",\n \"nativeCurrency\": {\n \"name\": \"Altair\",\n \"symbol\": \"AIR\",\n \"decimals\": 18\n },\n \"networkId\": 2088,\n \"rpc\": [\"wss://fullnode.altair.centrifuge.io\", \"wss://altair.api.onfinality.io/public-ws\"],\n \"shortName\": \"air\",\n \"slug\": \"altair\",\n \"testnet\": false\n};\n\nvar c2089 = {\n \"chain\": \"algol\",\n \"chainId\": 2089,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"infoURL\": \"https://centrifuge.io\",\n \"name\": \"Algol\",\n \"nativeCurrency\": {\n \"name\": \"Algol\",\n \"symbol\": \"ALGL\",\n \"decimals\": 18\n },\n \"networkId\": 2089,\n \"rpc\": [\"wss://fullnode.algol.cntrfg.com\"],\n \"shortName\": \"algl\",\n \"slug\": \"algol\",\n \"status\": \"deprecated\",\n \"testnet\": false\n};\n\nvar c2100 = {\n \"chain\": \"ECO\",\n \"chainId\": 2100,\n \"explorers\": [{\n \"name\": \"Ecoball Explorer\",\n \"url\": \"https://scan.ecoball.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://ecoball.org\",\n \"name\": \"Ecoball Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Ecoball Coin\",\n \"symbol\": \"ECO\",\n \"decimals\": 18\n },\n \"networkId\": 2100,\n \"rpc\": [\"https://ecoball.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2100.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.ecoball.org/ecoball/\"],\n \"shortName\": \"eco\",\n \"slug\": \"ecoball\",\n \"testnet\": false\n};\n\nvar c2101 = {\n \"chain\": \"ECO\",\n \"chainId\": 2101,\n \"explorers\": [{\n \"name\": \"Ecoball Testnet Explorer\",\n \"url\": \"https://espuma-scan.ecoball.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://ecoball.org\",\n \"name\": \"Ecoball Testnet Espuma\",\n \"nativeCurrency\": {\n \"name\": \"Espuma Coin\",\n \"symbol\": \"ECO\",\n \"decimals\": 18\n },\n \"networkId\": 2101,\n \"rpc\": [\"https://ecoball-testnet-espuma.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2101.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.ecoball.org/espuma/\"],\n \"shortName\": \"esp\",\n \"slip44\": 1,\n \"slug\": \"ecoball-testnet-espuma\",\n \"testnet\": true\n};\n\nvar c2109 = {\n \"chain\": \"EXN\",\n \"chainId\": 2109,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://explorer.exosama.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmaQxfwpXYTomUd24PMx5tKjosupXcm99z1jL1XLq9LWBS\",\n \"width\": 468,\n \"height\": 468,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://moonsama.com\",\n \"name\": \"Exosama Network\",\n \"nativeCurrency\": {\n \"name\": \"Sama Token\",\n \"symbol\": \"SAMA\",\n \"decimals\": 18\n },\n \"networkId\": 2109,\n \"rpc\": [\"https://exosama-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2109.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.exosama.com\", \"wss://rpc.exosama.com\"],\n \"shortName\": \"exn\",\n \"slip44\": 2109,\n \"slug\": \"exosama-network\",\n \"testnet\": false\n};\n\nvar c2121 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 2121,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \".svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"M TEST 1103-2\",\n \"nativeCurrency\": {\n \"name\": \"M TEST 1103-2 Token\",\n \"symbol\": \"RJI\",\n \"decimals\": 18\n },\n \"networkId\": 2121,\n \"redFlags\": [],\n \"rpc\": [\"https://m-test-1103-2.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2121.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avacloud-dev.io/cb82eb40-2d0d-4188-905b-d50c4b09b40b\"],\n \"shortName\": \"M TEST 1103-2\",\n \"slug\": \"m-test-1103-2\",\n \"testnet\": true\n};\n\nvar c2122 = {\n \"chain\": \"METAD\",\n \"chainId\": 2122,\n \"explorers\": [{\n \"name\": \"Metad Scan\",\n \"url\": \"https://scan.metaplayer.one\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmZyxS9BfRGYWWDtvrV6qtthCYV4TwdjLoH2sF6MkiTYFf\",\n \"width\": 1280,\n \"height\": 1280,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmZyxS9BfRGYWWDtvrV6qtthCYV4TwdjLoH2sF6MkiTYFf\",\n \"width\": 1280,\n \"height\": 1280,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://docs.metaplayer.one/\",\n \"name\": \"Metaplayerone Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"METAD\",\n \"symbol\": \"METAD\",\n \"decimals\": 18\n },\n \"networkId\": 2122,\n \"rpc\": [\"https://metaplayerone.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2122.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.metaplayer.one/\"],\n \"shortName\": \"Metad\",\n \"slug\": \"metaplayerone\",\n \"testnet\": false\n};\n\nvar c2124 = {\n \"chain\": \"MP1 Dubai-Testnet\",\n \"chainId\": 2124,\n \"explorers\": [{\n \"name\": \"MP1Scan\",\n \"url\": \"https://dubai.mp1scan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://docs.metaplayer.one/\",\n \"name\": \"Metaplayerone Dubai Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Metaunit\",\n \"symbol\": \"MEU\",\n \"decimals\": 18\n },\n \"networkId\": 2124,\n \"rpc\": [\"https://metaplayerone-dubai-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2124.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-dubai.mp1network.com/\"],\n \"shortName\": \"MEU\",\n \"slip44\": 1,\n \"slug\": \"metaplayerone-dubai-testnet\",\n \"testnet\": true\n};\n\nvar c2137 = {\n \"chain\": \"BIGSB\",\n \"chainId\": 2137,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://bigshortbets.com/\",\n \"name\": \"BigShortBets\",\n \"nativeCurrency\": {\n \"name\": \"USD Coin\",\n \"symbol\": \"USDC\",\n \"decimals\": 18\n },\n \"networkId\": 2137,\n \"rpc\": [\"https://bigshortbets.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2137.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://market.bigsb.io\", \"wss://market.bigsb.io\"],\n \"shortName\": \"bigsb\",\n \"slug\": \"bigshortbets\",\n \"testnet\": false\n};\n\nvar c2138 = {\n \"chain\": \"dfiometatest\",\n \"chainId\": 2138,\n \"ens\": {\n \"registry\": \"0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85\"\n },\n \"explorers\": [{\n \"name\": \"Quorum Explorer\",\n \"url\": \"https://public-2138.defi-oracle.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmYrMRnjQJcNkYq9AvZ2FQ9kzYj9szzP4YDmyNA1ybd8xE\",\n \"width\": 1000,\n \"height\": 1043,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://defi-oracle.io/\",\n \"name\": \"Defi Oracle Meta Testnet\",\n \"nativeCurrency\": {\n \"name\": \"testEther\",\n \"symbol\": \"tETH\",\n \"decimals\": 18\n },\n \"networkId\": 21,\n \"rpc\": [\"https://defi-oracle-meta-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2138.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.public-2138.defi-oracle.io\", \"wss://rpc.public-2138.defi-oracle.io\"],\n \"shortName\": \"dfio-meta-test\",\n \"slip44\": 1,\n \"slug\": \"defi-oracle-meta-testnet\",\n \"testnet\": true\n};\n\nvar c2151 = {\n \"chain\": \"ETH\",\n \"chainId\": 2151,\n \"explorers\": [{\n \"name\": \"BOASCAN\",\n \"url\": \"https://boascan.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmW3CT4SHmso5dRJdsjR8GL1qmt79HkdAebCn2uNaWXFYh\",\n \"width\": 256,\n \"height\": 257,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmW3CT4SHmso5dRJdsjR8GL1qmt79HkdAebCn2uNaWXFYh\",\n \"width\": 256,\n \"height\": 257,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://docs.bosagora.org\",\n \"name\": \"BOSagora Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"BOSAGORA\",\n \"symbol\": \"BOA\",\n \"decimals\": 18\n },\n \"networkId\": 2151,\n \"rpc\": [\"https://bosagora.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2151.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.bosagora.org\", \"https://rpc.bosagora.org\"],\n \"shortName\": \"boa\",\n \"slug\": \"bosagora\",\n \"testnet\": false\n};\n\nvar c2152 = {\n \"chain\": \"Findora\",\n \"chainId\": 2152,\n \"explorers\": [{\n \"name\": \"findorascan\",\n \"url\": \"https://evm.findorascan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://findora.org/\",\n \"name\": \"Findora Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"FRA\",\n \"symbol\": \"FRA\",\n \"decimals\": 18\n },\n \"networkId\": 2152,\n \"rpc\": [\"https://findora.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2152.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-mainnet.findora.org\"],\n \"shortName\": \"fra\",\n \"slug\": \"findora\",\n \"testnet\": false\n};\n\nvar c2153 = {\n \"chain\": \"Testnet-anvil\",\n \"chainId\": 2153,\n \"explorers\": [{\n \"name\": \"findorascan\",\n \"url\": \"https://testnet-anvil.evm.findorascan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://findora.org/\",\n \"name\": \"Findora Testnet\",\n \"nativeCurrency\": {\n \"name\": \"FRA\",\n \"symbol\": \"FRA\",\n \"decimals\": 18\n },\n \"networkId\": 2153,\n \"rpc\": [\"https://findora-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2153.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://prod-testnet.prod.findora.org:8545/\"],\n \"shortName\": \"findora-testnet\",\n \"slip44\": 1,\n \"slug\": \"findora-testnet\",\n \"testnet\": true\n};\n\nvar c2154 = {\n \"chain\": \"Testnet-forge\",\n \"chainId\": 2154,\n \"explorers\": [{\n \"name\": \"findorascan\",\n \"url\": \"https://testnet-forge.evm.findorascan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://findora.org/\",\n \"name\": \"Findora Forge\",\n \"nativeCurrency\": {\n \"name\": \"FRA\",\n \"symbol\": \"FRA\",\n \"decimals\": 18\n },\n \"networkId\": 2154,\n \"rpc\": [\"https://findora-forge.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2154.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://prod-forge.prod.findora.org:8545/\"],\n \"shortName\": \"findora-forge\",\n \"slip44\": 1,\n \"slug\": \"findora-forge\",\n \"testnet\": true\n};\n\nvar c2199 = {\n \"chain\": \"MSN\",\n \"chainId\": 2199,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://explorer.moonsama.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://multiverse.moonsama.com/faucet\"],\n \"icon\": {\n \"url\": \"ipfs://QmaQxfwpXYTomUd24PMx5tKjosupXcm99z1jL1XLq9LWBS\",\n \"width\": 468,\n \"height\": 468,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://moonsama.com\",\n \"name\": \"Moonsama Network\",\n \"nativeCurrency\": {\n \"name\": \"Sama Token\",\n \"symbol\": \"SAMA\",\n \"decimals\": 18\n },\n \"networkId\": 2199,\n \"rpc\": [\"https://moonsama-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2199.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.moonsama.com\", \"wss://rpc.moonsama.com/ws\"],\n \"shortName\": \"msn\",\n \"slip44\": 2199,\n \"slug\": \"moonsama-network\",\n \"testnet\": false\n};\n\nvar c2202 = {\n \"chain\": \"ABN\",\n \"chainId\": 2202,\n \"explorers\": [{\n \"name\": \"Antofy Mainnet\",\n \"url\": \"https://antofyscan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.antofy.io\"],\n \"icon\": {\n \"url\": \"ipfs://QmdTfku81ohnG9ECU1Xswmeumt678cBhwHWuFYZ7i1Qsto\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://antofy.io\",\n \"name\": \"Antofy Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Antofy\",\n \"symbol\": \"ABN\",\n \"decimals\": 18\n },\n \"networkId\": 2202,\n \"rpc\": [\"https://antofy.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2202.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.antofy.io\"],\n \"shortName\": \"ABNm\",\n \"slug\": \"antofy\",\n \"testnet\": false\n};\n\nvar c2203 = {\n \"chain\": \"Bitcoin EVM\",\n \"chainId\": 2203,\n \"explorers\": [{\n \"name\": \"Explorer\",\n \"url\": \"https://explorer.bitcoinevm.com\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://bafkreic4aq265oaf6yze7ba5okefqh6vnqudyrz6ovukvbnrlhet36itle\",\n \"width\": 200,\n \"height\": 200,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreic4aq265oaf6yze7ba5okefqh6vnqudyrz6ovukvbnrlhet36itle\",\n \"width\": 200,\n \"height\": 200,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://bitcoinevm.com\",\n \"name\": \"Bitcoin EVM\",\n \"nativeCurrency\": {\n \"name\": \"Bitcoin\",\n \"symbol\": \"BTC\",\n \"decimals\": 18\n },\n \"networkId\": 2203,\n \"rpc\": [\"https://bitcoin-evm.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2203.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://connect.bitcoinevm.com\"],\n \"shortName\": \"BTC\",\n \"slug\": \"bitcoin-evm\",\n \"testnet\": false\n};\n\nvar c2213 = {\n \"chain\": \"EVA\",\n \"chainId\": 2213,\n \"explorers\": [{\n \"name\": \"Evanesco Explorer\",\n \"url\": \"https://explorer.evanesco.org\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmZbmGYdfbMRrWJore3c7hyD6q7B5pXHJqTSNjbZZUK6V8\",\n \"width\": 200,\n \"height\": 200,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://evanesco.org/\",\n \"name\": \"Evanesco Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"EVA\",\n \"symbol\": \"EVA\",\n \"decimals\": 18\n },\n \"networkId\": 2213,\n \"rpc\": [\"https://evanesco.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2213.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://seed4.evanesco.org:8546\"],\n \"shortName\": \"evanesco\",\n \"slug\": \"evanesco\",\n \"testnet\": false\n};\n\nvar c2221 = {\n \"chain\": \"KAVA\",\n \"chainId\": 2221,\n \"explorers\": [{\n \"name\": \"Kava Testnet Explorer\",\n \"url\": \"http://testnet.kavascan.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmdpRTk6oL1HRW9xC6cAc4Rnf9gs6zgdAcr4Z3HcLztusm\",\n \"width\": 1186,\n \"height\": 360,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [\"https://faucet.kava.io\"],\n \"icon\": {\n \"url\": \"ipfs://QmdpRTk6oL1HRW9xC6cAc4Rnf9gs6zgdAcr4Z3HcLztusm\",\n \"width\": 1186,\n \"height\": 360,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://www.kava.io\",\n \"name\": \"Kava Testnet\",\n \"nativeCurrency\": {\n \"name\": \"TKava\",\n \"symbol\": \"TKAVA\",\n \"decimals\": 18\n },\n \"networkId\": 2221,\n \"rpc\": [\"https://kava-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2221.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://evm.testnet.kava.io\", \"wss://wevm.testnet.kava.io\"],\n \"shortName\": \"tkava\",\n \"slug\": \"kava-testnet\",\n \"testnet\": true\n};\n\nvar c2222 = {\n \"chain\": \"KAVA\",\n \"chainId\": 2222,\n \"explorers\": [{\n \"name\": \"Kava EVM Explorer\",\n \"url\": \"https://kavascan.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmdpRTk6oL1HRW9xC6cAc4Rnf9gs6zgdAcr4Z3HcLztusm\",\n \"width\": 1186,\n \"height\": 360,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmdpRTk6oL1HRW9xC6cAc4Rnf9gs6zgdAcr4Z3HcLztusm\",\n \"width\": 1186,\n \"height\": 360,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://www.kava.io\",\n \"name\": \"Kava\",\n \"nativeCurrency\": {\n \"name\": \"Kava\",\n \"symbol\": \"KAVA\",\n \"decimals\": 18\n },\n \"networkId\": 2222,\n \"rpc\": [\"https://kava.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2222.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://evm.kava.io\", \"https://kava-rpc.gateway.pokt.network\", \"wss://wevm.kava.io\", \"https://kava-evm.publicnode.com\", \"wss://kava-evm.publicnode.com\"],\n \"shortName\": \"kava\",\n \"slug\": \"kava\",\n \"testnet\": false\n};\n\nvar c2223 = {\n \"chain\": \"VChain\",\n \"chainId\": 2223,\n \"explorers\": [{\n \"name\": \"VChain Scan\",\n \"url\": \"https://scan.vcex.xyz\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://bo.vcex.xyz/\",\n \"name\": \"VChain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"VNDT\",\n \"symbol\": \"VNDT\",\n \"decimals\": 18\n },\n \"networkId\": 2223,\n \"rpc\": [\"https://vchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2223.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://bc.vcex.xyz\"],\n \"shortName\": \"VChain\",\n \"slug\": \"vchain\",\n \"testnet\": false\n};\n\nvar c2241 = {\n \"chain\": \"Krest\",\n \"chainId\": 2241,\n \"explorers\": [{\n \"name\": \"Polkadot.js\",\n \"url\": \"https://polkadot.js.org/apps/?rpc=wss://wss-krest.peaq.network#/explorer\",\n \"standard\": \"none\"\n }, {\n \"name\": \"Subscan\",\n \"url\": \"https://krest.subscan.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreid732273ib5at7krjdl2t7lteljlepwd3tvifqge7mu7g6naxavhe\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.peaq.network\",\n \"name\": \"Krest Network\",\n \"nativeCurrency\": {\n \"name\": \"Krest\",\n \"symbol\": \"KRST\",\n \"decimals\": 18\n },\n \"networkId\": 2241,\n \"rpc\": [\"https://krest-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2241.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://erpc-krest.peaq.network\", \"https://krest.unitedbloc.com\"],\n \"shortName\": \"KRST\",\n \"slug\": \"krest-network\",\n \"testnet\": false\n};\n\nvar c2300 = {\n \"chain\": \"BOMB\",\n \"chainId\": 2300,\n \"explorers\": [{\n \"name\": \"bombscan\",\n \"url\": \"https://bombscan.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://Qmc44uSjfdNHdcxPTgZAL8eZ8TLe4UmSHibcvKQFyGJxTB\",\n \"width\": 1024,\n \"height\": 1024,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://Qmc44uSjfdNHdcxPTgZAL8eZ8TLe4UmSHibcvKQFyGJxTB\",\n \"width\": 1024,\n \"height\": 1024,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.bombchain.com\",\n \"name\": \"BOMB Chain\",\n \"nativeCurrency\": {\n \"name\": \"BOMB Token\",\n \"symbol\": \"BOMB\",\n \"decimals\": 18\n },\n \"networkId\": 2300,\n \"rpc\": [\"https://bomb-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2300.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.bombchain.com\"],\n \"shortName\": \"bomb\",\n \"slug\": \"bomb-chain\",\n \"testnet\": false\n};\n\nvar c2306 = {\n \"chain\": \"ebro\",\n \"chainId\": 2306,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://www.ebrochain.com\",\n \"name\": \"Ebro Network\",\n \"nativeCurrency\": {\n \"name\": \"Ebro\",\n \"symbol\": \"ebro\",\n \"decimals\": 18\n },\n \"networkId\": 2306,\n \"rpc\": [\"https://ebro-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2306.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://greendinoswap.com\"],\n \"shortName\": \"ebro\",\n \"slug\": \"ebro-network\",\n \"testnet\": false\n};\n\nvar c2309 = {\n \"chain\": \"Arevia\",\n \"chainId\": 2309,\n \"explorers\": [],\n \"faucets\": [],\n \"name\": \"Arevia\",\n \"nativeCurrency\": {\n \"name\": \"Arev\",\n \"symbol\": \"ARÉV\",\n \"decimals\": 18\n },\n \"networkId\": 2309,\n \"rpc\": [],\n \"shortName\": \"arevia\",\n \"slug\": \"arevia\",\n \"status\": \"incubating\",\n \"testnet\": false\n};\n\nvar c2323 = {\n \"chain\": \"SOMA\",\n \"chainId\": 2323,\n \"explorers\": [{\n \"name\": \"SOMA Testnet Explorer\",\n \"url\": \"https://testnet.somascan.io\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmadSU2tcyvuzssDYGJ4rVLag43QLnKwcBerZR2zKLVU2N\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucet.somanetwork.io\"],\n \"icon\": {\n \"url\": \"ipfs://QmadSU2tcyvuzssDYGJ4rVLag43QLnKwcBerZR2zKLVU2N\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://somanetwork.io\",\n \"name\": \"SOMA Network Testnet\",\n \"nativeCurrency\": {\n \"name\": \"SMA\",\n \"symbol\": \"tSMA\",\n \"decimals\": 18\n },\n \"networkId\": 2323,\n \"rpc\": [\"https://soma-network-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2323.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://data-testnet-v1.somanetwork.io/\", \"https://testnet-au-server-2.somanetwork.io\", \"https://testnet-au-server-1.somanetwork.io\", \"https://testnet-sg-server-1.somanetwork.io\", \"https://testnet-sg-server-2.somanetwork.io\"],\n \"shortName\": \"sma\",\n \"slip44\": 1,\n \"slug\": \"soma-network-testnet\",\n \"testnet\": true\n};\n\nvar c2330 = {\n \"chain\": \"mainnet\",\n \"chainId\": 2330,\n \"explorers\": [{\n \"name\": \"expedition\",\n \"url\": \"http://expedition.altcoinchain.org\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmYwHmGC9CRVcKo1LSesqxU31SDj9vk2iQxcFjQArzhix4\",\n \"width\": 720,\n \"height\": 720,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmYwHmGC9CRVcKo1LSesqxU31SDj9vk2iQxcFjQArzhix4\",\n \"width\": 720,\n \"height\": 720,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://altcoinchain.org\",\n \"name\": \"Altcoinchain\",\n \"nativeCurrency\": {\n \"name\": \"Altcoin\",\n \"symbol\": \"ALT\",\n \"decimals\": 18\n },\n \"networkId\": 2330,\n \"rpc\": [\"https://altcoinchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2330.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc0.altcoinchain.org/rpc\"],\n \"shortName\": \"alt\",\n \"slug\": \"altcoinchain\",\n \"status\": \"active\",\n \"testnet\": false\n};\n\nvar c2332 = {\n \"chain\": \"SOMA\",\n \"chainId\": 2332,\n \"explorers\": [{\n \"name\": \"SOMA Explorer Mainnet\",\n \"url\": \"https://somascan.io\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmadSU2tcyvuzssDYGJ4rVLag43QLnKwcBerZR2zKLVU2N\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://airdrop.somanetwork.io\"],\n \"icon\": {\n \"url\": \"ipfs://QmadSU2tcyvuzssDYGJ4rVLag43QLnKwcBerZR2zKLVU2N\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://somanetwork.io\",\n \"name\": \"SOMA Network Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Soma Native Token\",\n \"symbol\": \"SMA\",\n \"decimals\": 18\n },\n \"networkId\": 2332,\n \"rpc\": [\"https://soma-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2332.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://data-mainnet-v1.somanetwork.io/\", \"https://id-mainnet.somanetwork.io\", \"https://hk-mainnet.somanetwork.io\", \"https://sg-mainnet.somanetwork.io\"],\n \"shortName\": \"smam\",\n \"slug\": \"soma-network\",\n \"status\": \"incubating\",\n \"testnet\": false\n};\n\nvar c2357 = {\n \"chain\": \"ETH\",\n \"chainId\": 2357,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://blockscout.sepolia-deprecated.kroma.network\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmVpV2WET6ZrqnvvPfE9hCwoE2y5ygbPuniuugpaRoxrho\",\n \"width\": 320,\n \"height\": 320,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmVpV2WET6ZrqnvvPfE9hCwoE2y5ygbPuniuugpaRoxrho\",\n \"width\": 320,\n \"height\": 320,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://kroma.network\",\n \"name\": \"(deprecated) Kroma Sepolia\",\n \"nativeCurrency\": {\n \"name\": \"Sepolia Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 2357,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-11155111\",\n \"bridges\": [{\n \"url\": \"https://kroma.network/bridge\"\n }]\n },\n \"rpc\": [\"https://deprecated-kroma-sepolia.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2357.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.sepolia-deprecated.kroma.network\"],\n \"shortName\": \"deprecated-kroma-sepolia\",\n \"slip44\": 1,\n \"slug\": \"deprecated-kroma-sepolia\",\n \"status\": \"deprecated\",\n \"testnet\": true,\n \"title\": \"(deprecated) Kroma Testnet Sepolia\"\n};\n\nvar c2358 = {\n \"chain\": \"ETH\",\n \"chainId\": 2358,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://blockscout.sepolia.kroma.network\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmVpV2WET6ZrqnvvPfE9hCwoE2y5ygbPuniuugpaRoxrho\",\n \"width\": 320,\n \"height\": 320,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmVpV2WET6ZrqnvvPfE9hCwoE2y5ygbPuniuugpaRoxrho\",\n \"width\": 320,\n \"height\": 320,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://kroma.network\",\n \"name\": \"Kroma Sepolia\",\n \"nativeCurrency\": {\n \"name\": \"Sepolia Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 2358,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-11155111\",\n \"bridges\": [{\n \"url\": \"https://kroma.network/bridge\"\n }]\n },\n \"rpc\": [\"https://kroma-sepolia.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2358.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.sepolia.kroma.network\"],\n \"shortName\": \"kroma-sepolia\",\n \"slip44\": 1,\n \"slug\": \"kroma-sepolia\",\n \"testnet\": true,\n \"title\": \"Kroma Testnet Sepolia\"\n};\n\nvar c2399 = {\n \"chain\": \"BOMB\",\n \"chainId\": 2399,\n \"explorers\": [{\n \"name\": \"bombscan-testnet\",\n \"url\": \"https://explorer.bombchain-testnet.ankr.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://Qmc44uSjfdNHdcxPTgZAL8eZ8TLe4UmSHibcvKQFyGJxTB\",\n \"width\": 1024,\n \"height\": 1024,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucet.bombchain-testnet.ankr.com/\"],\n \"icon\": {\n \"url\": \"ipfs://Qmc44uSjfdNHdcxPTgZAL8eZ8TLe4UmSHibcvKQFyGJxTB\",\n \"width\": 1024,\n \"height\": 1024,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.bombmoney.com\",\n \"name\": \"BOMB Chain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"BOMB Token\",\n \"symbol\": \"tBOMB\",\n \"decimals\": 18\n },\n \"networkId\": 2399,\n \"rpc\": [\"https://bomb-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2399.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://bombchain-testnet.ankr.com/bas_full_rpc_1\"],\n \"shortName\": \"bombt\",\n \"slip44\": 1,\n \"slug\": \"bomb-chain-testnet\",\n \"testnet\": true\n};\n\nvar c2400 = {\n \"chain\": \"TCG Verse\",\n \"chainId\": 2400,\n \"explorers\": [{\n \"name\": \"TCG Verse Explorer\",\n \"url\": \"https://explorer.tcgverse.xyz\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreidg4wpewve5mdxrofneqblydkrjl3oevtgpdf3fk3z3vjqam6ocoe\",\n \"width\": 350,\n \"height\": 350,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://tcgverse.xyz/\",\n \"name\": \"TCG Verse Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"OAS\",\n \"symbol\": \"OAS\",\n \"decimals\": 18\n },\n \"networkId\": 2400,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-248\"\n },\n \"rpc\": [\"https://tcg-verse.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2400.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.tcgverse.xyz\"],\n \"shortName\": \"TCGV\",\n \"slug\": \"tcg-verse\",\n \"testnet\": false\n};\n\nvar c2415 = {\n \"chain\": \"XODEX\",\n \"chainId\": 2415,\n \"explorers\": [{\n \"name\": \"XODEX Explorer\",\n \"url\": \"https://explorer.xo-dex.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmXt49jPfHUmDF4n8TF7ks6txiPztx6qUHanWmHnCoEAhW\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmXt49jPfHUmDF4n8TF7ks6txiPztx6qUHanWmHnCoEAhW\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://xo-dex.com\",\n \"name\": \"XODEX\",\n \"nativeCurrency\": {\n \"name\": \"XODEX Native Token\",\n \"symbol\": \"XODEX\",\n \"decimals\": 18\n },\n \"networkId\": 10,\n \"rpc\": [\"https://xodex.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2415.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.xo-dex.com/rpc\", \"https://xo-dex.io\"],\n \"shortName\": \"xodex\",\n \"slug\": \"xodex\",\n \"testnet\": false\n};\n\nvar c2458 = {\n \"chain\": \"HYBRID\",\n \"chainId\": 2458,\n \"explorers\": [{\n \"name\": \"Hybrid Chain Explorer Testnet\",\n \"url\": \"https://testnet.hybridscan.ai\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmQDNdhPvCrrijEKC3G9Px5if2CHgdxq7Q2Pg66cy9xwbF\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucet-testnet.hybridchain.ai\"],\n \"icon\": {\n \"url\": \"ipfs://QmQDNdhPvCrrijEKC3G9Px5if2CHgdxq7Q2Pg66cy9xwbF\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://hybridchain.ai\",\n \"name\": \"Hybrid Chain Network Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Hybrid Chain Native Token\",\n \"symbol\": \"tHRC\",\n \"decimals\": 18\n },\n \"networkId\": 2458,\n \"rpc\": [\"https://hybrid-chain-network-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2458.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-testnet.hybridchain.ai/\"],\n \"shortName\": \"thrc\",\n \"slip44\": 1,\n \"slug\": \"hybrid-chain-network-testnet\",\n \"testnet\": true\n};\n\nvar c2468 = {\n \"chain\": \"HYBRID\",\n \"chainId\": 2468,\n \"explorers\": [{\n \"name\": \"Hybrid Chain Explorer Mainnet\",\n \"url\": \"https://hybridscan.ai\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmQDNdhPvCrrijEKC3G9Px5if2CHgdxq7Q2Pg66cy9xwbF\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucet-testnet.hybridchain.ai\"],\n \"icon\": {\n \"url\": \"ipfs://QmQDNdhPvCrrijEKC3G9Px5if2CHgdxq7Q2Pg66cy9xwbF\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://hybridchain.ai\",\n \"name\": \"Hybrid Chain Network Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Hybrid Chain Native Token\",\n \"symbol\": \"HRC\",\n \"decimals\": 18\n },\n \"networkId\": 2468,\n \"rpc\": [\"https://hybrid-chain-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2468.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://coredata-mainnet.hybridchain.ai/\", \"https://rpc-mainnet.hybridchain.ai\"],\n \"shortName\": \"hrc\",\n \"slug\": \"hybrid-chain-network\",\n \"testnet\": true\n};\n\nvar c2484 = {\n \"chain\": \"u2u\",\n \"chainId\": 2484,\n \"explorers\": [{\n \"name\": \"U2U Explorer\",\n \"url\": \"https://testnet.u2uscan.xyz\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmcW64RgqQVHnNbVFyfaMNKt7dJvFqEbfEHZmeyeK8dpEa\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucet.uniultra.xyz\"],\n \"icon\": {\n \"url\": \"ipfs://QmcW64RgqQVHnNbVFyfaMNKt7dJvFqEbfEHZmeyeK8dpEa\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://uniultra.xyz\",\n \"name\": \"Unicorn Ultra Nebulas Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Unicorn Ultra Nebulas Testnet\",\n \"symbol\": \"U2U\",\n \"decimals\": 18\n },\n \"networkId\": 2484,\n \"rpc\": [\"https://unicorn-ultra-nebulas-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2484.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-nebulas-testnet.uniultra.xyz\"],\n \"shortName\": \"u2u_nebulas\",\n \"slip44\": 1,\n \"slug\": \"unicorn-ultra-nebulas-testnet\",\n \"testnet\": true\n};\n\nvar c2522 = {\n \"chain\": \"FRAX\",\n \"chainId\": 2522,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmQLJk5G7zF8ZDxSxkRcpHqEqcifrJEhGmEKC6zwyPXWAw/fraxchain.png\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"PNG\"\n },\n \"infoURL\": \"https://testnet.frax.com\",\n \"name\": \"Fraxtal Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Frax Ether\",\n \"symbol\": \"frxETH\",\n \"decimals\": 18\n },\n \"networkId\": 2522,\n \"redFlags\": [],\n \"rpc\": [\"https://fraxtal-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2522.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.testnet.frax.com\"],\n \"shortName\": \"fraxtal-testnet\",\n \"slip44\": 1,\n \"slug\": \"fraxtal-testnet\",\n \"status\": \"active\",\n \"testnet\": true\n};\n\nvar c2559 = {\n \"chain\": \"Kortho Chain\",\n \"chainId\": 2559,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://www.kortho.io/\",\n \"name\": \"Kortho Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"KorthoChain\",\n \"symbol\": \"KTO\",\n \"decimals\": 11\n },\n \"networkId\": 2559,\n \"rpc\": [\"https://kortho.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2559.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://www.kortho-chain.com\"],\n \"shortName\": \"ktoc\",\n \"slug\": \"kortho\",\n \"testnet\": false\n};\n\nvar c2569 = {\n \"chain\": \"TPC\",\n \"chainId\": 2569,\n \"explorers\": [{\n \"name\": \"tpcscan\",\n \"url\": \"https://tpcscan.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmQyTyJUnhD1dca35Vyj96pm3v3Xyw8xbG9m8HXHw3k2zR\",\n \"width\": 578,\n \"height\": 701,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmQyTyJUnhD1dca35Vyj96pm3v3Xyw8xbG9m8HXHw3k2zR\",\n \"width\": 578,\n \"height\": 701,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://techpay.io/\",\n \"name\": \"TechPay Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"TechPay\",\n \"symbol\": \"TPC\",\n \"decimals\": 18\n },\n \"networkId\": 2569,\n \"rpc\": [\"https://techpay.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2569.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.techpay.io/\"],\n \"shortName\": \"tpc\",\n \"slug\": \"techpay\",\n \"testnet\": false\n};\n\nvar c2606 = {\n \"chain\": \"CRC\",\n \"chainId\": 2606,\n \"explorers\": [{\n \"name\": \"Lite Explorer\",\n \"url\": \"https://ethereum-pocr.github.io/explorer/pocrnet\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmRLwpq47tyEd3rfK4tKRhbTvyb3fc7PCutExnL1XAb37A\",\n \"width\": 334,\n \"height\": 360,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmRLwpq47tyEd3rfK4tKRhbTvyb3fc7PCutExnL1XAb37A\",\n \"width\": 334,\n \"height\": 360,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://github.com/ethereum-pocr/pocrnet\",\n \"name\": \"PoCRNet\",\n \"nativeCurrency\": {\n \"name\": \"Climate awaReness Coin\",\n \"symbol\": \"CRC\",\n \"decimals\": 18\n },\n \"networkId\": 2606,\n \"rpc\": [\"https://pocrnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2606.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://pocrnet.westeurope.cloudapp.azure.com/http\", \"wss://pocrnet.westeurope.cloudapp.azure.com/ws\"],\n \"shortName\": \"pocrnet\",\n \"slug\": \"pocrnet\",\n \"status\": \"active\",\n \"testnet\": false,\n \"title\": \"Proof of Climate awaReness mainnet\"\n};\n\nvar c2611 = {\n \"chain\": \"REDLC\",\n \"chainId\": 2611,\n \"explorers\": [{\n \"name\": \"REDLC Explorer\",\n \"url\": \"https://redlightscan.finance\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://redlight.finance/\",\n \"name\": \"Redlight Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Redlight Coin\",\n \"symbol\": \"REDLC\",\n \"decimals\": 18\n },\n \"networkId\": 2611,\n \"rpc\": [\"https://redlight-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2611.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://dataseed2.redlightscan.finance\"],\n \"shortName\": \"REDLC\",\n \"slug\": \"redlight-chain\",\n \"testnet\": false\n};\n\nvar c2612 = {\n \"chain\": \"EZC\",\n \"chainId\": 2612,\n \"explorers\": [{\n \"name\": \"ezchain\",\n \"url\": \"https://cchain-explorer.ezchain.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmPKJbYCFjGmY9X2cA4b9YQjWYHQncmKnFtKyQh9rHkFTb\",\n \"width\": 146,\n \"height\": 48,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://ezchain.com\",\n \"name\": \"EZChain C-Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"EZChain\",\n \"symbol\": \"EZC\",\n \"decimals\": 18\n },\n \"networkId\": 2612,\n \"rpc\": [\"https://ezchain-c-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2612.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.ezchain.com/ext/bc/C/rpc\"],\n \"shortName\": \"EZChain\",\n \"slug\": \"ezchain-c-chain\",\n \"testnet\": false\n};\n\nvar c2613 = {\n \"chain\": \"EZC\",\n \"chainId\": 2613,\n \"explorers\": [{\n \"name\": \"ezchain\",\n \"url\": \"https://testnet-cchain-explorer.ezchain.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://testnet-faucet.ezchain.com\"],\n \"icon\": {\n \"url\": \"ipfs://QmPKJbYCFjGmY9X2cA4b9YQjWYHQncmKnFtKyQh9rHkFTb\",\n \"width\": 146,\n \"height\": 48,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://ezchain.com\",\n \"name\": \"EZChain C-Chain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"EZChain\",\n \"symbol\": \"EZC\",\n \"decimals\": 18\n },\n \"networkId\": 2613,\n \"rpc\": [\"https://ezchain-c-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2613.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-api.ezchain.com/ext/bc/C/rpc\"],\n \"shortName\": \"Fuji-EZChain\",\n \"slip44\": 1,\n \"slug\": \"ezchain-c-chain-testnet\",\n \"testnet\": true\n};\n\nvar c2625 = {\n \"chain\": \"WBT\",\n \"chainId\": 2625,\n \"explorers\": [{\n \"name\": \"wb-explorer-testnet\",\n \"url\": \"https://explorer.whitebit.network/testnet\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://explorer.whitebit.network/testnet/faucet\"],\n \"icon\": {\n \"url\": \"ipfs://QmQqAAn2F98TH5ouRyvReKxQdaGKjE7WJQPEPW6mFFVXUT\",\n \"width\": 32,\n \"height\": 32,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://whitebit.com/wbt\",\n \"name\": \"WhiteBIT Network Testnet\",\n \"nativeCurrency\": {\n \"name\": \"WhiteBIT Coin\",\n \"symbol\": \"WBT\",\n \"decimals\": 18\n },\n \"networkId\": 2625,\n \"rpc\": [\"https://whitebit-network-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2625.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-testnet.whitebit.network\"],\n \"shortName\": \"twbt\",\n \"slip44\": 1,\n \"slug\": \"whitebit-network-testnet\",\n \"testnet\": true\n};\n\nvar c2710 = {\n \"chain\": \"ETH\",\n \"chainId\": 2710,\n \"explorers\": [{\n \"name\": \"Morph Testnet Explorer\",\n \"url\": \"https://explorer-testnet.morphl2.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://morphl2.io\",\n \"name\": \"Morph Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 2710,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-1\",\n \"bridges\": [{\n \"url\": \"https://bridge-testnet.morphl2.io\"\n }]\n },\n \"rpc\": [\"https://morph-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2710.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-testnet.morphl2.io\"],\n \"shortName\": \"tmorph\",\n \"slip44\": 1,\n \"slug\": \"morph-testnet\",\n \"testnet\": true\n};\n\nvar c2718 = {\n \"chain\": \"K-LAOS\",\n \"chainId\": 2718,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://blockscout.klaos.laosfoundation.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmW26eoxJeyUfikZ4DUT1Gfk78sBkvydEo8QzHa1BXjUUL\",\n \"width\": 580,\n \"height\": 580,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmW26eoxJeyUfikZ4DUT1Gfk78sBkvydEo8QzHa1BXjUUL\",\n \"width\": 580,\n \"height\": 580,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.laosfoundation.io/\",\n \"name\": \"K-LAOS\",\n \"nativeCurrency\": {\n \"name\": \"KLAOS\",\n \"symbol\": \"KLAOS\",\n \"decimals\": 18\n },\n \"networkId\": 2718,\n \"rpc\": [\"https://k-laos.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2718.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.klaos.laosfoundation.io\", \"wss://rpc.klaos.laosfoundation.io\"],\n \"shortName\": \"k-laos\",\n \"slug\": \"k-laos\",\n \"testnet\": false,\n \"title\": \"K-LAOS: LAOS on Kusama\"\n};\n\nvar c2828 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 2828,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"Cohan's Testnet 1\",\n \"nativeCurrency\": {\n \"name\": \"Cohan's Testnet 1 Token\",\n \"symbol\": \"FQC\",\n \"decimals\": 18\n },\n \"networkId\": 2828,\n \"redFlags\": [],\n \"rpc\": [\"https://cohan-s-testnet-1.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2828.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avacloud-dev.io/a6eec829-2c08-4264-b0d7-6d393997e9a6\"],\n \"shortName\": \"Cohan's Testnet 1\",\n \"slug\": \"cohan-s-testnet-1\",\n \"testnet\": true\n};\n\nvar c2888 = {\n \"chain\": \"ETH\",\n \"chainId\": 2888,\n \"explorers\": [{\n \"name\": \"Blockscout\",\n \"url\": \"https://testnet.bobascan.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://boba.network\",\n \"name\": \"Boba Network Goerli Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Goerli Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 2888,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-5\",\n \"bridges\": [{\n \"url\": \"https://gateway.boba.network\"\n }]\n },\n \"rpc\": [\"https://boba-network-goerli-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2888.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://goerli.boba.network/\", \"wss://wss.goerli.boba.network/\"],\n \"shortName\": \"BobaGoerli\",\n \"slip44\": 1,\n \"slug\": \"boba-network-goerli-testnet\",\n \"testnet\": true\n};\n\nvar c2999 = {\n \"chain\": \"BTY\",\n \"chainId\": 2999,\n \"explorers\": [{\n \"name\": \"BitYuan Block Chain Explorer\",\n \"url\": \"https://mainnet.bityuan.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmUmJVof2m5e4HUXb3GmijWUFsLUNhrQiwwQG3CqcXEtHt\",\n \"width\": 91,\n \"height\": 24,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.bityuan.com\",\n \"name\": \"BitYuan Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"BTY\",\n \"symbol\": \"BTY\",\n \"decimals\": 18\n },\n \"networkId\": 2999,\n \"rpc\": [\"https://bityuan.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2999.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.bityuan.com/eth\"],\n \"shortName\": \"bty\",\n \"slug\": \"bityuan\",\n \"testnet\": false\n};\n\nvar c3000 = {\n \"chain\": \"CENNZnet\",\n \"chainId\": 3000,\n \"explorers\": [],\n \"faucets\": [\"https://app-faucet.centrality.me\"],\n \"icon\": {\n \"url\": \"ipfs://QmWhNm7tTi6SYbiumULDRk956hxgqaZSX77vcxBNn8fvnw\",\n \"width\": 112,\n \"height\": 112,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://cennz.net\",\n \"name\": \"CENNZnet Rata\",\n \"nativeCurrency\": {\n \"name\": \"CPAY\",\n \"symbol\": \"CPAY\",\n \"decimals\": 18\n },\n \"networkId\": 3000,\n \"rpc\": [],\n \"shortName\": \"cennz-r\",\n \"slug\": \"cennznet-rata\",\n \"testnet\": false\n};\n\nvar c3001 = {\n \"chain\": \"CENNZnet\",\n \"chainId\": 3001,\n \"explorers\": [{\n \"name\": \"UNcover\",\n \"url\": \"https://www.uncoverexplorer.com/?network=Nikau\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://app-faucet.centrality.me\"],\n \"icon\": {\n \"url\": \"ipfs://QmWhNm7tTi6SYbiumULDRk956hxgqaZSX77vcxBNn8fvnw\",\n \"width\": 112,\n \"height\": 112,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://cennz.net\",\n \"name\": \"CENNZnet Nikau\",\n \"nativeCurrency\": {\n \"name\": \"CPAY\",\n \"symbol\": \"CPAY\",\n \"decimals\": 18\n },\n \"networkId\": 3001,\n \"rpc\": [\"https://cennznet-nikau.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://3001.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://nikau.centrality.me/public\"],\n \"shortName\": \"cennz-n\",\n \"slug\": \"cennznet-nikau\",\n \"testnet\": false\n};\n\nvar c3003 = {\n \"chain\": \"CAU\",\n \"chainId\": 3003,\n \"explorers\": [{\n \"name\": \"canxium explorer\",\n \"url\": \"https://explorer.canxium.org\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmXHSbtVNCJVfe2CvRH7njdyf2SrX5u5bNTfvhqjLeFN2A\",\n \"width\": 938,\n \"height\": 938,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://canxium.org\",\n \"name\": \"Canxium Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Canxium\",\n \"symbol\": \"CAU\",\n \"decimals\": 18\n },\n \"networkId\": 3003,\n \"rpc\": [\"https://canxium.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://3003.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.canxium.org\"],\n \"shortName\": \"cau\",\n \"slug\": \"canxium\",\n \"testnet\": false\n};\n\nvar c3011 = {\n \"chain\": \"3ULL\",\n \"chainId\": 3011,\n \"explorers\": [{\n \"name\": \"PLAYA3ULL GAMES Explorer\",\n \"url\": \"https://3011.routescan.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://bafkreib62bv2d65d7nidojgpkgatrt7smee2l4ov6i6ozqhpfaqsonxku4\",\n \"width\": 512,\n \"height\": 443,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://bafkreib62bv2d65d7nidojgpkgatrt7smee2l4ov6i6ozqhpfaqsonxku4\",\n \"width\": 512,\n \"height\": 443,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://playa3ull.games\",\n \"name\": \"PLAYA3ULL GAMES\",\n \"nativeCurrency\": {\n \"name\": \"3ULL\",\n \"symbol\": \"3ULL\",\n \"decimals\": 18\n },\n \"networkId\": 3011,\n \"rpc\": [\"https://playa3ull-games.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://3011.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.mainnet.playa3ull.games\"],\n \"shortName\": \"3ULL\",\n \"slug\": \"playa3ull-games\",\n \"testnet\": false\n};\n\nvar c3031 = {\n \"chain\": \"ORL\",\n \"chainId\": 3031,\n \"explorers\": [{\n \"name\": \"Orlando (ORL) Explorer\",\n \"url\": \"https://orlscan.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmNsuuBBTHErnuFDcdyzaY8CKoVJtobsLJx2WQjaPjcp7g\",\n \"width\": 512,\n \"height\": 528,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmNsuuBBTHErnuFDcdyzaY8CKoVJtobsLJx2WQjaPjcp7g\",\n \"width\": 512,\n \"height\": 528,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://orlchain.com\",\n \"name\": \"Orlando Chain\",\n \"nativeCurrency\": {\n \"name\": \"Orlando\",\n \"symbol\": \"ORL\",\n \"decimals\": 18\n },\n \"networkId\": 3031,\n \"rpc\": [\"https://orlando-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://3031.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-testnet.orlchain.com\"],\n \"shortName\": \"ORL\",\n \"slug\": \"orlando-chain\",\n \"testnet\": true\n};\n\nvar c3068 = {\n \"chain\": \"BFC\",\n \"chainId\": 3068,\n \"explorers\": [{\n \"name\": \"explorer-thebifrost\",\n \"url\": \"https://explorer.mainnet.thebifrost.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmYxniqbiFD7nXBNjN8boUhoXYEAW23YquArD2Rnkq8WHS\",\n \"width\": 480,\n \"height\": 480,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://thebifrost.io\",\n \"name\": \"Bifrost Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Bifrost\",\n \"symbol\": \"BFC\",\n \"decimals\": 18\n },\n \"networkId\": 3068,\n \"rpc\": [\"https://bifrost.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://3068.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://public-01.mainnet.thebifrost.io/rpc\", \"https://public-02.mainnet.thebifrost.io/rpc\"],\n \"shortName\": \"bfc\",\n \"slug\": \"bifrost\",\n \"testnet\": false,\n \"title\": \"Bifrost Network Mainnet\"\n};\n\nvar c3100 = {\n \"chain\": \"EVMCC\",\n \"chainId\": 3100,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://immu3.io\",\n \"name\": \"Immu3 EVM\",\n \"nativeCurrency\": {\n \"name\": \"IMMU\",\n \"symbol\": \"IMMU\",\n \"decimals\": 18\n },\n \"networkId\": 3100,\n \"rpc\": [\"https://immu3-evm.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://3100.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://fraa-dancebox-3043-rpc.a.dancebox.tanssi.network\", \"wss://fraa-dancebox-3043-rpc.a.dancebox.tanssi.network\"],\n \"shortName\": \"Immu3\",\n \"slug\": \"immu3-evm\",\n \"testnet\": false\n};\n\nvar c3102 = {\n \"chain\": \"VFIEVMCC\",\n \"chainId\": 3102,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://vulture.finance\",\n \"name\": \"Vulture EVM Beta\",\n \"nativeCurrency\": {\n \"name\": \"VFI\",\n \"symbol\": \"VFI\",\n \"decimals\": 18\n },\n \"networkId\": 3102,\n \"rpc\": [\"https://vulture-evm-beta.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://3102.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://fraa-dancebox-3050-rpc.a.dancebox.tanssi.network\", \"wss://fraa-dancebox-3050-rpc.a.dancebox.tanssi.network\"],\n \"shortName\": \"VFI\",\n \"slug\": \"vulture-evm-beta\",\n \"testnet\": false\n};\n\nvar c3141 = {\n \"chain\": \"FIL\",\n \"chainId\": 3141,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmS9r9XQkMHVomWcSBNDkKkz9n87h9bH9ssabeiKZtANoU\",\n \"width\": 1000,\n \"height\": 1000,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://filecoin.io\",\n \"name\": \"Filecoin - Hyperspace testnet\",\n \"nativeCurrency\": {\n \"name\": \"testnet filecoin\",\n \"symbol\": \"tFIL\",\n \"decimals\": 18\n },\n \"networkId\": 3141,\n \"rpc\": [],\n \"shortName\": \"filecoin-hyperspace\",\n \"slip44\": 1,\n \"slug\": \"filecoin-hyperspace-testnet\",\n \"status\": \"deprecated\",\n \"testnet\": true\n};\n\nvar c3269 = {\n \"chain\": \"DUBX\",\n \"chainId\": 3269,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://arabianchain.org\",\n \"name\": \"Dubxcoin network\",\n \"nativeCurrency\": {\n \"name\": \"Dubxcoin mainnet\",\n \"symbol\": \"DUBX\",\n \"decimals\": 18\n },\n \"networkId\": 3269,\n \"rpc\": [\"https://dubxcoin-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://3269.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpcmain.arabianchain.org\"],\n \"shortName\": \"dubx\",\n \"slug\": \"dubxcoin-network\",\n \"testnet\": false\n};\n\nvar c3270 = {\n \"chain\": \"TESTDUBX\",\n \"chainId\": 3270,\n \"explorers\": [],\n \"faucets\": [\"https://faucet.arabianchain.org/\"],\n \"infoURL\": \"https://arabianchain.org\",\n \"name\": \"Dubxcoin testnet\",\n \"nativeCurrency\": {\n \"name\": \"Dubxcoin testnet\",\n \"symbol\": \"TDUBX\",\n \"decimals\": 18\n },\n \"networkId\": 3270,\n \"rpc\": [\"https://dubxcoin-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://3270.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpctestnet.arabianchain.org\"],\n \"shortName\": \"testdubx\",\n \"slip44\": 1,\n \"slug\": \"dubxcoin-testnet\",\n \"testnet\": true\n};\n\nvar c3306 = {\n \"chain\": \"Debounce Network\",\n \"chainId\": 3306,\n \"explorers\": [{\n \"name\": \"Debounce Devnet Explorer\",\n \"url\": \"https://explorer.debounce.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafybeib5q4hez37s7b2fx4hqt2q4ji2tuudxjhfdgnp6q3d5mqm6wsxdfq\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://debounce.network\",\n \"name\": \"Debounce Subnet Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Debounce Network\",\n \"symbol\": \"DB\",\n \"decimals\": 18\n },\n \"networkId\": 3306,\n \"rpc\": [\"https://debounce-subnet-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://3306.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://dev-rpc.debounce.network\"],\n \"shortName\": \"debounce-devnet\",\n \"slip44\": 1,\n \"slug\": \"debounce-subnet-testnet\",\n \"testnet\": true\n};\n\nvar c3331 = {\n \"chain\": \"Beach\",\n \"chainId\": 3331,\n \"explorers\": [],\n \"faucets\": [\"https://faucet.zcore.cash\"],\n \"icon\": {\n \"url\": \"ipfs://QmQnXu13ym8W1VA3QxocaNVXGAuEPmamSCkS7bBscVk1f4\",\n \"width\": 1050,\n \"height\": 1050,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://zcore.cash\",\n \"name\": \"ZCore Testnet\",\n \"nativeCurrency\": {\n \"name\": \"ZCore\",\n \"symbol\": \"ZCR\",\n \"decimals\": 18\n },\n \"networkId\": 3331,\n \"rpc\": [\"https://zcore-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://3331.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-testnet.zcore.cash\"],\n \"shortName\": \"zcrbeach\",\n \"slip44\": 1,\n \"slug\": \"zcore-testnet\",\n \"testnet\": true\n};\n\nvar c3333 = {\n \"chain\": \"Web3Q\",\n \"chainId\": 3333,\n \"explorers\": [{\n \"name\": \"w3q-testnet\",\n \"url\": \"https://explorer.testnet.web3q.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://testnet.web3q.io/home.w3q/\",\n \"name\": \"Web3Q Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Web3Q\",\n \"symbol\": \"W3Q\",\n \"decimals\": 18\n },\n \"networkId\": 3333,\n \"rpc\": [\"https://web3q-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://3333.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.web3q.io:8545\"],\n \"shortName\": \"w3q-t\",\n \"slip44\": 1,\n \"slug\": \"web3q-testnet\",\n \"testnet\": true\n};\n\nvar c3334 = {\n \"chain\": \"Web3Q\",\n \"chainId\": 3334,\n \"explorers\": [{\n \"name\": \"w3q-galileo\",\n \"url\": \"https://explorer.galileo.web3q.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://galileo.web3q.io/home.w3q/\",\n \"name\": \"Web3Q Galileo\",\n \"nativeCurrency\": {\n \"name\": \"Web3Q\",\n \"symbol\": \"W3Q\",\n \"decimals\": 18\n },\n \"networkId\": 3334,\n \"rpc\": [\"https://web3q-galileo.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://3334.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://galileo.web3q.io:8545\"],\n \"shortName\": \"w3q-g\",\n \"slug\": \"web3q-galileo\",\n \"testnet\": false\n};\n\nvar c3400 = {\n \"chain\": \"PRB\",\n \"chainId\": 3400,\n \"explorers\": [{\n \"name\": \"Paribu Net Explorer\",\n \"url\": \"https://explorer.paribu.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmVgc77jYo2zrxQjhYwT4KzvSrSZ1DBJraJVX57xAvP8MD\",\n \"width\": 2362,\n \"height\": 2362,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://net.paribu.com\",\n \"name\": \"Paribu Net Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"PRB\",\n \"symbol\": \"PRB\",\n \"decimals\": 18\n },\n \"networkId\": 3400,\n \"rpc\": [\"https://paribu-net.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://3400.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.paribu.network\"],\n \"shortName\": \"prb\",\n \"slug\": \"paribu-net\",\n \"testnet\": false\n};\n\nvar c3434 = {\n \"chain\": \"SCAI\",\n \"chainId\": 3434,\n \"explorers\": [{\n \"name\": \"SecureChain\",\n \"url\": \"https://testnet.securechain.ai\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.securechain.ai\"],\n \"icon\": {\n \"url\": \"ipfs://Qme2Z8VFYjhHGfLQPBnfseNpEdRfmTDy7VXqrdH4AHETJf\",\n \"width\": 150,\n \"height\": 150,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://securechain.ai\",\n \"name\": \"SecureChain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"SCAI\",\n \"symbol\": \"SCAI\",\n \"decimals\": 18\n },\n \"networkId\": 3434,\n \"rpc\": [\"https://securechain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://3434.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-rpc.securechain.ai\"],\n \"shortName\": \"SCAIt\",\n \"slip44\": 1,\n \"slug\": \"securechain-testnet\",\n \"testnet\": true\n};\n\nvar c3500 = {\n \"chain\": \"PRB\",\n \"chainId\": 3500,\n \"explorers\": [{\n \"name\": \"Paribu Net Testnet Explorer\",\n \"url\": \"https://testnet.paribuscan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.paribuscan.com\"],\n \"icon\": {\n \"url\": \"ipfs://QmVgc77jYo2zrxQjhYwT4KzvSrSZ1DBJraJVX57xAvP8MD\",\n \"width\": 2362,\n \"height\": 2362,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://net.paribu.com\",\n \"name\": \"Paribu Net Testnet\",\n \"nativeCurrency\": {\n \"name\": \"PRB\",\n \"symbol\": \"PRB\",\n \"decimals\": 18\n },\n \"networkId\": 3500,\n \"rpc\": [\"https://paribu-net-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://3500.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.testnet.paribuscan.com\"],\n \"shortName\": \"prbtestnet\",\n \"slip44\": 1,\n \"slug\": \"paribu-net-testnet\",\n \"testnet\": true\n};\n\nvar c3501 = {\n \"chain\": \"JFIN\",\n \"chainId\": 3501,\n \"explorers\": [{\n \"name\": \"JFIN Chain Explorer\",\n \"url\": \"https://exp.jfinchain.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://jfinchain.com\",\n \"name\": \"JFIN Chain\",\n \"nativeCurrency\": {\n \"name\": \"JFIN Coin\",\n \"symbol\": \"JFIN\",\n \"decimals\": 18\n },\n \"networkId\": 3501,\n \"rpc\": [\"https://jfin-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://3501.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.jfinchain.com\"],\n \"shortName\": \"JFIN\",\n \"slug\": \"jfin-chain\",\n \"testnet\": false\n};\n\nvar c3601 = {\n \"chain\": \"PandoProject\",\n \"chainId\": 3601,\n \"explorers\": [{\n \"name\": \"Pando Mainnet Explorer\",\n \"url\": \"https://explorer.pandoproject.org\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmNduBtT5BNGDw7DjRwDvaZBb6gjxf46WD7BYhn4gauGc9\",\n \"width\": 1000,\n \"height\": 1628,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.pandoproject.org/\",\n \"name\": \"PandoProject Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"pando-token\",\n \"symbol\": \"PTX\",\n \"decimals\": 18\n },\n \"networkId\": 3601,\n \"rpc\": [\"https://pandoproject.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://3601.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://eth-rpc-api.pandoproject.org/rpc\"],\n \"shortName\": \"pando-mainnet\",\n \"slug\": \"pandoproject\",\n \"testnet\": false\n};\n\nvar c3602 = {\n \"chain\": \"PandoProject\",\n \"chainId\": 3602,\n \"explorers\": [{\n \"name\": \"Pando Testnet Explorer\",\n \"url\": \"https://testnet.explorer.pandoproject.org\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmNduBtT5BNGDw7DjRwDvaZBb6gjxf46WD7BYhn4gauGc9\",\n \"width\": 1000,\n \"height\": 1628,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.pandoproject.org/\",\n \"name\": \"PandoProject Testnet\",\n \"nativeCurrency\": {\n \"name\": \"pando-token\",\n \"symbol\": \"PTX\",\n \"decimals\": 18\n },\n \"networkId\": 3602,\n \"rpc\": [\"https://pandoproject-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://3602.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.ethrpc.pandoproject.org/rpc\"],\n \"shortName\": \"pando-testnet\",\n \"slip44\": 1,\n \"slug\": \"pandoproject-testnet\",\n \"testnet\": true\n};\n\nvar c3636 = {\n \"chain\": \"BOTANIX\",\n \"chainId\": 3636,\n \"explorers\": [{\n \"name\": \"3xpl\",\n \"url\": \"https://3xpl.com/botanix\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.botanixlabs.dev\"],\n \"icon\": {\n \"url\": \"ipfs://QmVE5s2pXiqdMnAcxhAmWkZYhpFB5CysypeLyPKzT4rGYe\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://botanixlabs.xyz\",\n \"name\": \"Botanix Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Botanix\",\n \"symbol\": \"BTC\",\n \"decimals\": 18\n },\n \"networkId\": 3636,\n \"rpc\": [\"https://botanix-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://3636.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://node.botanixlabs.dev\"],\n \"shortName\": \"BTNX\",\n \"slip44\": 1,\n \"slug\": \"botanix-testnet\",\n \"testnet\": true\n};\n\nvar c3637 = {\n \"chain\": \"BTC\",\n \"chainId\": 3637,\n \"explorers\": [{\n \"name\": \"Botanix\",\n \"url\": \"https://btxtestchain.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.btxtestchain.com\"],\n \"icon\": {\n \"url\": \"ipfs://QmVE5s2pXiqdMnAcxhAmWkZYhpFB5CysypeLyPKzT4rGYe\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://btxtestchain.com\",\n \"name\": \"Botanix Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Botanix\",\n \"symbol\": \"BTC\",\n \"decimals\": 18\n },\n \"networkId\": 3637,\n \"rpc\": [\"https://botanix.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://3637.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.btxtestchain.com\"],\n \"shortName\": \"BTCm\",\n \"slug\": \"botanix\",\n \"testnet\": true\n};\n\nvar c3639 = {\n \"chain\": \"iChain\",\n \"chainId\": 3639,\n \"explorers\": [{\n \"name\": \"iChainscan\",\n \"url\": \"https://ichainscan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://islamicoin.finance\",\n \"name\": \"iChain Network\",\n \"nativeCurrency\": {\n \"name\": \"ISLAMICOIN\",\n \"symbol\": \"ISLAMI\",\n \"decimals\": 18\n },\n \"networkId\": 3639,\n \"rpc\": [\"https://ichain-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://3639.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.ichainscan.com\"],\n \"shortName\": \"ISLAMI\",\n \"slug\": \"ichain-network\",\n \"testnet\": false\n};\n\nvar c3666 = {\n \"chain\": \"Jouleverse\",\n \"chainId\": 3666,\n \"explorers\": [{\n \"name\": \"jscan\",\n \"url\": \"https://jscan.jnsdao.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://jnsdao.com\",\n \"name\": \"Jouleverse Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"J\",\n \"symbol\": \"J\",\n \"decimals\": 18\n },\n \"networkId\": 3666,\n \"rpc\": [\"https://jouleverse.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://3666.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.jnsdao.com:8503\"],\n \"shortName\": \"jouleverse\",\n \"slug\": \"jouleverse\",\n \"testnet\": false\n};\n\nvar c3690 = {\n \"chain\": \"BTX\",\n \"chainId\": 3690,\n \"explorers\": [{\n \"name\": \"bittexscan\",\n \"url\": \"https://bittexscan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://bittexscan.com\",\n \"name\": \"Bittex Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Bittex\",\n \"symbol\": \"BTX\",\n \"decimals\": 18\n },\n \"networkId\": 3690,\n \"rpc\": [\"https://bittex.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://3690.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc1.bittexscan.info\", \"https://rpc2.bittexscan.info\"],\n \"shortName\": \"btx\",\n \"slug\": \"bittex\",\n \"testnet\": false\n};\n\nvar c3693 = {\n \"chain\": \"EMPIRE\",\n \"chainId\": 3693,\n \"explorers\": [{\n \"name\": \"Empire Explorer\",\n \"url\": \"https://explorer.empirenetwork.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.empirenetwork.io/\",\n \"name\": \"Empire Network\",\n \"nativeCurrency\": {\n \"name\": \"Empire\",\n \"symbol\": \"EMPIRE\",\n \"decimals\": 18\n },\n \"networkId\": 3693,\n \"rpc\": [\"https://empire-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://3693.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.empirenetwork.io\"],\n \"shortName\": \"empire\",\n \"slug\": \"empire-network\",\n \"testnet\": false\n};\n\nvar c3698 = {\n \"chain\": \"SPC\",\n \"chainId\": 3698,\n \"explorers\": [{\n \"name\": \"SenjePowers\",\n \"url\": \"https://testnet.senjepowersscan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.senjepowersscan.com\"],\n \"icon\": {\n \"url\": \"ipfs://QmcpyTj4hUyHJZ2VmSdkXFpPpRcNKRP1VxMs7Cp1anymNy\",\n \"width\": 504,\n \"height\": 495,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://senjepowersscan.com\",\n \"name\": \"SenjePowers Testnet\",\n \"nativeCurrency\": {\n \"name\": \"SenjePowers\",\n \"symbol\": \"SPC\",\n \"decimals\": 18\n },\n \"networkId\": 3698,\n \"rpc\": [\"https://senjepowers-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://3698.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-rpc.senjepowersscan.com\"],\n \"shortName\": \"SPCt\",\n \"slip44\": 1,\n \"slug\": \"senjepowers-testnet\",\n \"testnet\": true\n};\n\nvar c3699 = {\n \"chain\": \"SPC\",\n \"chainId\": 3699,\n \"explorers\": [{\n \"name\": \"SenjePowers\",\n \"url\": \"https://senjepowersscan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.senjepowersscan.com\"],\n \"icon\": {\n \"url\": \"ipfs://QmcpyTj4hUyHJZ2VmSdkXFpPpRcNKRP1VxMs7Cp1anymNy\",\n \"width\": 504,\n \"height\": 495,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://senjepowersscan.com\",\n \"name\": \"SenjePowers Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"SenjePowers\",\n \"symbol\": \"SPC\",\n \"decimals\": 18\n },\n \"networkId\": 3699,\n \"rpc\": [\"https://senjepowers.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://3699.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.senjepowersscan.com\"],\n \"shortName\": \"SPCm\",\n \"slug\": \"senjepowers\",\n \"testnet\": false\n};\n\nvar c3701 = {\n \"chain\": \"XPLATest\",\n \"chainId\": 3701,\n \"explorers\": [{\n \"name\": \"XPLA Explorer\",\n \"url\": \"https://explorer.xpla.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://faucet.xpla.io\"],\n \"icon\": {\n \"url\": \"ipfs://Qmf4GoxfpeA5VGqu7KP5eyv1WKaCpNDbvMxq1MjQBwFWxq\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://xpla.io\",\n \"name\": \"Xpla Testnet\",\n \"nativeCurrency\": {\n \"name\": \"XPLA\",\n \"symbol\": \"XPLA\",\n \"decimals\": 18\n },\n \"networkId\": 3701,\n \"rpc\": [\"https://xpla-testnet-xplatest.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://3701.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://dimension-rpc.xpla.dev\"],\n \"shortName\": \"xplatest\",\n \"slip44\": 1,\n \"slug\": \"xpla-testnet-xplatest\",\n \"status\": \"deprecated\",\n \"testnet\": true\n};\n\nvar c3737 = {\n \"chain\": \"Crossbell\",\n \"chainId\": 3737,\n \"explorers\": [{\n \"name\": \"Crossbell Explorer\",\n \"url\": \"https://scan.crossbell.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.crossbell.io\"],\n \"icon\": {\n \"url\": \"ipfs://QmS8zEetTb6pwdNpVjv5bz55BXiSMGP9BjTJmNcjcUT91t\",\n \"width\": 408,\n \"height\": 408,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://crossbell.io\",\n \"name\": \"Crossbell\",\n \"nativeCurrency\": {\n \"name\": \"Crossbell Token\",\n \"symbol\": \"CSB\",\n \"decimals\": 18\n },\n \"networkId\": 3737,\n \"rpc\": [\"https://crossbell.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://3737.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.crossbell.io\"],\n \"shortName\": \"csb\",\n \"slug\": \"crossbell\",\n \"testnet\": false\n};\n\nvar c3797 = {\n \"chain\": \"ALV\",\n \"chainId\": 3797,\n \"explorers\": [{\n \"name\": \"AlveyScan\",\n \"url\": \"https://alveyscan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmSwczpPLBG6ob1a8WLoujthiCPzwEyJNp7WdKRi52qbWX\",\n \"width\": 310,\n \"height\": 310,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://alveyscan.com/rpc\",\n \"name\": \"AlveyChain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"AlveyCoin\",\n \"symbol\": \"ALV\",\n \"decimals\": 18\n },\n \"networkId\": 3797,\n \"rpc\": [\"https://alveychain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://3797.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.alveychain.com/rpc\", \"https://rpc2.alvey.io/rpc\"],\n \"shortName\": \"alv\",\n \"slug\": \"alveychain\",\n \"testnet\": false\n};\n\nvar c3885 = {\n \"chain\": \"Firechain\",\n \"chainId\": 3885,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://docs.thefirechain.com/\",\n \"name\": \"Firechain zkEVM Ghostrider\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 3885,\n \"rpc\": [\"https://firechain-zkevm-ghostrider.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://3885.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.zkevm.ghostrider.thefirechain.com\"],\n \"shortName\": \"firechain-zkEVM-ghostrider\",\n \"slug\": \"firechain-zkevm-ghostrider\",\n \"testnet\": false,\n \"title\": \"Firechain zkEVM Ghostrider\"\n};\n\nvar c3888 = {\n \"chain\": \"KLC\",\n \"chainId\": 3888,\n \"explorers\": [{\n \"name\": \"KalyScan\",\n \"url\": \"https://kalyscan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmUaXcPewLuQtY5a7xPTzJyVdjkH487VfV7gSR8UXrbxQ3\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://kalychain.io\",\n \"name\": \"KalyChain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"KalyCoin\",\n \"symbol\": \"KLC\",\n \"decimals\": 18\n },\n \"networkId\": 3888,\n \"rpc\": [\"https://kalychain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://3888.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.kalychain.io/rpc\"],\n \"shortName\": \"kalymainnet\",\n \"slug\": \"kalychain\",\n \"testnet\": false\n};\n\nvar c3889 = {\n \"chain\": \"KLC\",\n \"chainId\": 3889,\n \"explorers\": [{\n \"name\": \"KalyScan\",\n \"url\": \"https://testnet.kalyscan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmUaXcPewLuQtY5a7xPTzJyVdjkH487VfV7gSR8UXrbxQ3\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://kalychain.io\",\n \"name\": \"KalyChain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"KalyCoin\",\n \"symbol\": \"KLC\",\n \"decimals\": 18\n },\n \"networkId\": 3889,\n \"rpc\": [\"https://kalychain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://3889.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnetrpc.kalychain.io/rpc\"],\n \"shortName\": \"kalytestnet\",\n \"slip44\": 1,\n \"slug\": \"kalychain-testnet\",\n \"testnet\": true\n};\n\nvar c3912 = {\n \"chain\": \"DRAC\",\n \"chainId\": 3912,\n \"explorers\": [{\n \"name\": \"DRAC_Network Scan\",\n \"url\": \"https://www.dracscan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://www.dracscan.io/faucet\"],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmXbsQe7QsVFZJZdBmbZVvS6LgX9ZFoaTMBs9MiQXUzJTw\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://drac.io/\",\n \"name\": \"DRAC Network\",\n \"nativeCurrency\": {\n \"name\": \"DRAC\",\n \"symbol\": \"DRAC\",\n \"decimals\": 18\n },\n \"networkId\": 3912,\n \"rpc\": [\"https://drac-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://3912.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://www.dracscan.com/rpc\"],\n \"shortName\": \"drac\",\n \"slug\": \"drac-network\",\n \"testnet\": false\n};\n\nvar c3939 = {\n \"chain\": \"DOS\",\n \"chainId\": 3939,\n \"explorers\": [{\n \"name\": \"DOScan-Test\",\n \"url\": \"https://test.doscan.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmV2Nowzo81F6pi2qFcHePA4MwmmdMKBMUzBJUrxcymxx4\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmV2Nowzo81F6pi2qFcHePA4MwmmdMKBMUzBJUrxcymxx4\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"http://doschain.io/\",\n \"name\": \"DOS Tesnet\",\n \"nativeCurrency\": {\n \"name\": \"DOS\",\n \"symbol\": \"DOS\",\n \"decimals\": 18\n },\n \"networkId\": 3939,\n \"rpc\": [\"https://dos-tesnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://3939.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://test.doschain.com\"],\n \"shortName\": \"dost\",\n \"slip44\": 1,\n \"slug\": \"dos-tesnet\",\n \"testnet\": true\n};\n\nvar c3966 = {\n \"chain\": \"DYNO\",\n \"chainId\": 3966,\n \"explorers\": [{\n \"name\": \"DYNO Explorer\",\n \"url\": \"https://dynoscan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.dynoscan.io\"],\n \"infoURL\": \"https://dynoprotocol.com\",\n \"name\": \"DYNO Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"DYNO Token\",\n \"symbol\": \"DYNO\",\n \"decimals\": 18\n },\n \"networkId\": 3966,\n \"rpc\": [\"https://dyno.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://3966.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.dynoprotocol.com\"],\n \"shortName\": \"dyno\",\n \"slug\": \"dyno\",\n \"testnet\": false\n};\n\nvar c3967 = {\n \"chain\": \"DYNO\",\n \"chainId\": 3967,\n \"explorers\": [{\n \"name\": \"DYNO Explorer\",\n \"url\": \"https://testnet.dynoscan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.dynoscan.io\"],\n \"infoURL\": \"https://dynoprotocol.com\",\n \"name\": \"DYNO Testnet\",\n \"nativeCurrency\": {\n \"name\": \"DYNO Token\",\n \"symbol\": \"tDYNO\",\n \"decimals\": 18\n },\n \"networkId\": 3967,\n \"rpc\": [\"https://dyno-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://3967.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://tapi.dynoprotocol.com\"],\n \"shortName\": \"tdyno\",\n \"slip44\": 1,\n \"slug\": \"dyno-testnet\",\n \"testnet\": true\n};\n\nvar c3999 = {\n \"chain\": \"YCC\",\n \"chainId\": 3999,\n \"explorers\": [{\n \"name\": \"YuanChain Explorer\",\n \"url\": \"https://mainnet.yuan.org\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmdbPhiB5W2gbHZGkYsN7i2VTKKP9casmAN2hRnpDaL9W4\",\n \"width\": 96,\n \"height\": 96,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.yuan.org\",\n \"name\": \"YuanChain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"YCC\",\n \"symbol\": \"YCC\",\n \"decimals\": 18\n },\n \"networkId\": 3999,\n \"rpc\": [\"https://yuanchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://3999.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.yuan.org/eth\"],\n \"shortName\": \"ycc\",\n \"slug\": \"yuanchain\",\n \"testnet\": false\n};\n\nvar c4000 = {\n \"chain\": \"OZONE\",\n \"chainId\": 4000,\n \"explorers\": [{\n \"name\": \"OZONE Scan\",\n \"url\": \"https://ozonescan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmbM4weV8Bk6c9yNhosYntkVw39SNZtCHYGgWyXTxkevZ8\",\n \"width\": 1600,\n \"height\": 1600,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://ozonechain.io\",\n \"name\": \"Ozone Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"OZONE\",\n \"symbol\": \"OZO\",\n \"decimals\": 18\n },\n \"networkId\": 4000,\n \"rpc\": [\"https://ozone-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://4000.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://node1.ozonechain.io\"],\n \"shortName\": \"ozo\",\n \"slug\": \"ozone-chain\",\n \"testnet\": false\n};\n\nvar c4001 = {\n \"chain\": \"PERIUM\",\n \"chainId\": 4001,\n \"explorers\": [{\n \"name\": \"Peperium Chain Explorer\",\n \"url\": \"https://scan-testnet.peperium.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://Qmag2hr5DQghRzKPN3oUFBkjWzqd5CndQzZeb5LfoiMCXf\",\n \"width\": 160,\n \"height\": 160,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://Qmag2hr5DQghRzKPN3oUFBkjWzqd5CndQzZeb5LfoiMCXf\",\n \"width\": 160,\n \"height\": 160,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://peperium.io\",\n \"name\": \"Peperium Chain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Peperium Chain Testnet\",\n \"symbol\": \"PERIUM\",\n \"decimals\": 18\n },\n \"networkId\": 4001,\n \"rpc\": [\"https://peperium-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://4001.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-testnet.peperium.io\"],\n \"shortName\": \"PERIUM\",\n \"slip44\": 1,\n \"slug\": \"peperium-chain-testnet\",\n \"testnet\": true\n};\n\nvar c4002 = {\n \"chain\": \"FTM\",\n \"chainId\": 4002,\n \"explorers\": [{\n \"name\": \"ftmscan\",\n \"url\": \"https://testnet.ftmscan.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmRqbK449Fo9sJ3xMpkPbg6uV1weQj4yVV1xNMP9cdPmjf\",\n \"width\": 73,\n \"height\": 73,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucet.fantom.network\"],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmcxZHpyJa8T4i63xqjPYrZ6tKrt55tZJpbXcjSDKuKaf9/fantom/512.png\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://docs.fantom.foundation/quick-start/short-guide#fantom-testnet\",\n \"name\": \"Fantom Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Fantom\",\n \"symbol\": \"FTM\",\n \"decimals\": 18\n },\n \"networkId\": 4002,\n \"redFlags\": [],\n \"rpc\": [\"https://fantom-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://4002.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.testnet.fantom.network\", \"https://fantom-testnet.publicnode.com\", \"wss://fantom-testnet.publicnode.com\"],\n \"shortName\": \"tftm\",\n \"slip44\": 1,\n \"slug\": \"fantom-testnet\",\n \"testnet\": true\n};\n\nvar c4003 = {\n \"chain\": \"X1\",\n \"chainId\": 4003,\n \"explorers\": [{\n \"name\": \"Blockscout\",\n \"url\": \"https://explorer.x1-fastnet.xen.network\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"infoURL\": \"https://docs.xen.network/go-x1/\",\n \"name\": \"X1 Fastnet\",\n \"nativeCurrency\": {\n \"name\": \"XN\",\n \"symbol\": \"XN\",\n \"decimals\": 18\n },\n \"networkId\": 4003,\n \"rpc\": [\"https://x1-fastnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://4003.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://x1-fastnet.xen.network\"],\n \"shortName\": \"x1-fastnet\",\n \"slip44\": 1,\n \"slug\": \"x1-fastnet\",\n \"testnet\": false\n};\n\nvar c4051 = {\n \"chain\": \"Bobaopera Testnet\",\n \"chainId\": 4051,\n \"explorers\": [{\n \"name\": \"Bobaopera Testnet block explorer\",\n \"url\": \"https://blockexplorer.testnet.bobaopera.boba.network\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://boba.network\",\n \"name\": \"Bobaopera Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Boba Token\",\n \"symbol\": \"BOBA\",\n \"decimals\": 18\n },\n \"networkId\": 4051,\n \"rpc\": [\"https://bobaopera-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://4051.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.bobaopera.boba.network\", \"wss://wss.testnet.bobaopera.boba.network\", \"https://replica.testnet.bobaopera.boba.network\", \"wss://replica-wss.testnet.bobaopera.boba.network\"],\n \"shortName\": \"BobaoperaTestnet\",\n \"slip44\": 1,\n \"slug\": \"bobaopera-testnet\",\n \"testnet\": true\n};\n\nvar c4061 = {\n \"chain\": \"Nahmii\",\n \"chainId\": 4061,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmZhKXgoGpzvthr2eh8ZNgT75YvMtEBegdELAaMPPzf5QT\",\n \"width\": 384,\n \"height\": 384,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://nahmii.io\",\n \"name\": \"Nahmii 3 Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 4061,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-1\",\n \"bridges\": [{\n \"url\": \"https://bridge.nahmii.io\"\n }]\n },\n \"rpc\": [],\n \"shortName\": \"Nahmii3Mainnet\",\n \"slug\": \"nahmii-3\",\n \"status\": \"incubating\",\n \"testnet\": false\n};\n\nvar c4062 = {\n \"chain\": \"Nahmii\",\n \"chainId\": 4062,\n \"explorers\": [{\n \"name\": \"Nahmii 3 Testnet Explorer\",\n \"url\": \"https://explorer.testnet.n3.nahmii.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmZhKXgoGpzvthr2eh8ZNgT75YvMtEBegdELAaMPPzf5QT\",\n \"width\": 384,\n \"height\": 384,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmZhKXgoGpzvthr2eh8ZNgT75YvMtEBegdELAaMPPzf5QT\",\n \"width\": 384,\n \"height\": 384,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://nahmii.io\",\n \"name\": \"Nahmii 3 Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Goerli Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 4062,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-3\",\n \"bridges\": [{\n \"url\": \"https://bridge.testnet.n3.nahmii.io\"\n }]\n },\n \"rpc\": [\"https://nahmii-3-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://4062.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://ngeth.testnet.n3.nahmii.io\"],\n \"shortName\": \"Nahmii3Testnet\",\n \"slip44\": 1,\n \"slug\": \"nahmii-3-testnet\",\n \"testnet\": true\n};\n\nvar c4078 = {\n \"chain\": \"Muster\",\n \"chainId\": 4078,\n \"explorers\": [{\n \"name\": \"Musterscan\",\n \"url\": \"https://muster-explorer.alt.technology\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreiexm4aoscqo4d7dipicdgmfaemgzck2w7qhfp5mnoo7z2plcxleju\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"name\": \"Muster Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 4078,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-42161\",\n \"bridges\": []\n },\n \"rpc\": [\"https://muster.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://4078.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://muster.alt.technology\"],\n \"shortName\": \"muster\",\n \"slug\": \"muster\",\n \"testnet\": false\n};\n\nvar c4090 = {\n \"chain\": \"Fastex Chain (Bahamut)\",\n \"chainId\": 4090,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://oasis.ftnscan.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://faucet.oasis.fastexchain.com\"],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmSemioP83RXnDWwTZbet8VpwJxcFRboX4B3pcdhLZGodP\",\n \"width\": 200,\n \"height\": 200,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://fastexchain.com\",\n \"name\": \"Fastex Chain (Bahamut) Oasis Testnet\",\n \"nativeCurrency\": {\n \"name\": \"FTN\",\n \"symbol\": \"FTN\",\n \"decimals\": 18\n },\n \"networkId\": 4090,\n \"rpc\": [\"https://fastex-chain-bahamut-oasis-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://4090.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc1.oasis.bahamutchain.com\"],\n \"shortName\": \"Oasis\",\n \"slip44\": 1,\n \"slug\": \"fastex-chain-bahamut-oasis-testnet\",\n \"testnet\": true,\n \"title\": \"Bahamut testnet Oasis\"\n};\n\nvar c4096 = {\n \"chain\": \"BNI\",\n \"chainId\": 4096,\n \"explorers\": [{\n \"name\": \"Bitindi\",\n \"url\": \"https://testnet.bitindiscan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.bitindi.org\"],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmRAFFPiLiSgjGTs9QaZdnR9fsDgyUdTejwSxcnPXo292s\",\n \"width\": 60,\n \"height\": 72,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://bitindi.org\",\n \"name\": \"Bitindi Testnet\",\n \"nativeCurrency\": {\n \"name\": \"BNI\",\n \"symbol\": \"$BNI\",\n \"decimals\": 18\n },\n \"networkId\": 4096,\n \"redFlags\": [],\n \"rpc\": [\"https://bitindi-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://4096.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-testnet.bitindi.org\", \"https://testnet-rpc.bitindi.org\"],\n \"shortName\": \"BNIt\",\n \"slip44\": 1,\n \"slug\": \"bitindi-testnet\",\n \"testnet\": true\n};\n\nvar c4099 = {\n \"chain\": \"BNI\",\n \"chainId\": 4099,\n \"explorers\": [{\n \"name\": \"Bitindi\",\n \"url\": \"https://bitindiscan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.bitindi.org\"],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmRAFFPiLiSgjGTs9QaZdnR9fsDgyUdTejwSxcnPXo292s\",\n \"width\": 60,\n \"height\": 72,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://bitindi.org\",\n \"name\": \"Bitindi Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"BNI\",\n \"symbol\": \"$BNI\",\n \"decimals\": 18\n },\n \"networkId\": 4099,\n \"redFlags\": [],\n \"rpc\": [\"https://bitindi.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://4099.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \" https://rpc-mainnet.bitindi.org\", \"https://mainnet-rpc.bitindi.org\"],\n \"shortName\": \"BNIm\",\n \"slug\": \"bitindi\",\n \"testnet\": false\n};\n\nvar c4102 = {\n \"chain\": \"AIOZ\",\n \"chainId\": 4102,\n \"explorers\": [{\n \"name\": \"AIOZ Network Testnet Explorer\",\n \"url\": \"https://testnet.explorer.aioz.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmRAGPFhvQiXgoJkui7WHajpKctGFrJNhHqzYdwcWt5V3Z\",\n \"width\": 1024,\n \"height\": 1024,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://aioz.network\",\n \"name\": \"AIOZ Network Testnet\",\n \"nativeCurrency\": {\n \"name\": \"testAIOZ\",\n \"symbol\": \"AIOZ\",\n \"decimals\": 18\n },\n \"networkId\": 4102,\n \"rpc\": [\"https://aioz-network-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://4102.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://eth-ds.testnet.aioz.network\"],\n \"shortName\": \"aioz-testnet\",\n \"slip44\": 1,\n \"slug\": \"aioz-network-testnet\",\n \"testnet\": true\n};\n\nvar c4139 = {\n \"chain\": \"Humans Testnet\",\n \"chainId\": 4139,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmX6XuoQDTTjYqAmdNJiieLDZSwHHyUx44yQb4E3tmHmEA\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://humans.ai\",\n \"name\": \"Humans.ai Testnet\",\n \"nativeCurrency\": {\n \"name\": \"HEART\",\n \"symbol\": \"HEART\",\n \"decimals\": 18\n },\n \"networkId\": 4139,\n \"rpc\": [\"https://humans-ai-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://4139.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://evm-rpc.testnet.humans.zone\"],\n \"shortName\": \"humans_testnet\",\n \"slip44\": 1,\n \"slug\": \"humans-ai-testnet\",\n \"testnet\": true\n};\n\nvar c4141 = {\n \"chain\": \"TPBX\",\n \"chainId\": 4141,\n \"explorers\": [{\n \"name\": \"Tipboxcoin\",\n \"url\": \"https://testnet.tipboxcoin.net\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.tipboxcoin.net\"],\n \"icon\": {\n \"url\": \"ipfs://QmbiaHnR3fVVofZ7Xq2GYZxwHkLEy3Fh5qDtqnqXD6ACAh\",\n \"width\": 192,\n \"height\": 192,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://tipboxcoin.net\",\n \"name\": \"Tipboxcoin Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Tipboxcoin\",\n \"symbol\": \"TPBX\",\n \"decimals\": 18\n },\n \"networkId\": 4141,\n \"rpc\": [\"https://tipboxcoin-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://4141.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-rpc.tipboxcoin.net\"],\n \"shortName\": \"TPBXt\",\n \"slip44\": 1,\n \"slug\": \"tipboxcoin-testnet\",\n \"testnet\": true\n};\n\nvar c4145 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 4145,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"QI1212I2\",\n \"nativeCurrency\": {\n \"name\": \"QI1212I2 Token\",\n \"symbol\": \"HSCX\",\n \"decimals\": 18\n },\n \"networkId\": 4145,\n \"redFlags\": [],\n \"rpc\": [\"https://qi1212i2.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://4145.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc\"],\n \"shortName\": \"QI1212I2\",\n \"slug\": \"qi1212i2\",\n \"testnet\": true\n};\n\nvar c4157 = {\n \"chain\": \"XFI\",\n \"chainId\": 4157,\n \"explorers\": [{\n \"name\": \"Scan Testnet\",\n \"url\": \"https://scan.testnet.ms/\",\n \"standard\": \"EIP1559\"\n }],\n \"faucets\": [],\n \"features\": [],\n \"name\": \"CrossFi Testnet\",\n \"nativeCurrency\": {\n \"name\": \"XFI\",\n \"symbol\": \"XFI\",\n \"decimals\": 18\n },\n \"networkId\": 4157,\n \"redFlags\": [],\n \"rpc\": [\"https://crossfi-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://4157.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.testnet.ms/\"],\n \"shortName\": \"XFI\",\n \"slug\": \"crossfi-testnet\",\n \"testnet\": true,\n \"title\": \"https://scan.testnet.ms/\"\n};\n\nvar c4181 = {\n \"chain\": \"PHI V1\",\n \"chainId\": 4181,\n \"explorers\": [{\n \"name\": \"PHI Explorer\",\n \"url\": \"https://explorer.phi.network\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://bafkreid6pm3mic7izp3a6zlfwhhe7etd276bjfsq2xash6a4s2vmcdf65a\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreid6pm3mic7izp3a6zlfwhhe7etd276bjfsq2xash6a4s2vmcdf65a\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://phi.network\",\n \"name\": \"PHI Network V1\",\n \"nativeCurrency\": {\n \"name\": \"PHI\",\n \"symbol\": \"Φ\",\n \"decimals\": 18\n },\n \"networkId\": 4181,\n \"rpc\": [\"https://phi-network-v1.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://4181.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc1.phi.network\", \"https://rpc2.phi.network\"],\n \"shortName\": \"PHIv1\",\n \"slug\": \"phi-network-v1\",\n \"testnet\": false\n};\n\nvar c4201 = {\n \"chain\": \"LUKSO Testnet\",\n \"chainId\": 4201,\n \"explorers\": [{\n \"name\": \"Blockscout\",\n \"url\": \"https://explorer.execution.testnet.lukso.network\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://faucet.testnet.lukso.network\"],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://Qmeg9sFF5tAGi6MCx7YjtVHW6a23zqvHRK1xwzSdp9iE7z\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://lukso.network\",\n \"name\": \"LUKSO Testnet\",\n \"nativeCurrency\": {\n \"name\": \"TestLYX\",\n \"symbol\": \"LYXt\",\n \"decimals\": 18\n },\n \"networkId\": 4201,\n \"rpc\": [\"https://lukso-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://4201.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.testnet.lukso.network\", \"wss://ws-rpc.testnet.lukso.network\"],\n \"shortName\": \"lukso-testnet\",\n \"slip44\": 1,\n \"slug\": \"lukso-testnet\",\n \"testnet\": true\n};\n\nvar c4242 = {\n \"chain\": \"Nexi\",\n \"chainId\": 4242,\n \"explorers\": [{\n \"name\": \"nexiscan\",\n \"url\": \"https://www.nexiscan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafybeifxqd7zel2m237kq5enavnh2s6cshaavswigogyvae2wevxy5k2ti\",\n \"width\": 512,\n \"height\": 578,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.nexi.technology/\",\n \"name\": \"Nexi Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Nexi\",\n \"symbol\": \"NEXI\",\n \"decimals\": 18\n },\n \"networkId\": 4242,\n \"rpc\": [\"https://nexi.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://4242.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.chain.nexi.technology/\", \"https://chain.nexilix.com\", \"https://chain.nexi.evmnode.online\"],\n \"shortName\": \"nexi\",\n \"slip44\": 2500,\n \"slug\": \"nexi\",\n \"testnet\": false\n};\n\nvar c4243 = {\n \"chain\": \"Nexi V2\",\n \"chainId\": 4243,\n \"explorers\": [{\n \"name\": \"nexiscan\",\n \"url\": \"https://www.nexiscan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafybeifxqd7zel2m237kq5enavnh2s6cshaavswigogyvae2wevxy5k2ti\",\n \"width\": 512,\n \"height\": 578,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.nexi.technology/\",\n \"name\": \"Nexi V2 Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"NexiV2\",\n \"symbol\": \"NEXI\",\n \"decimals\": 18\n },\n \"networkId\": 4243,\n \"rpc\": [\"https://nexi-v2.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://4243.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://chain.nexiv2.nexilix.com\", \"https://rpc.chainv1.nexi.technology\"],\n \"shortName\": \"NexiV2\",\n \"slip44\": 2500,\n \"slug\": \"nexi-v2\",\n \"testnet\": false\n};\n\nvar c4328 = {\n \"chain\": \"Bobafuji Testnet\",\n \"chainId\": 4328,\n \"explorers\": [{\n \"name\": \"Bobafuji Testnet block explorer\",\n \"url\": \"https://blockexplorer.testnet.avax.boba.network\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://boba.network\",\n \"name\": \"Bobafuji Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Boba Token\",\n \"symbol\": \"BOBA\",\n \"decimals\": 18\n },\n \"networkId\": 4328,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-5\",\n \"bridges\": [{\n \"url\": \"https://gateway.boba.network\"\n }]\n },\n \"rpc\": [\"https://bobafuji-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://4328.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.avax.boba.network\", \"wss://wss.testnet.avax.boba.network\", \"https://replica.testnet.avax.boba.network\"],\n \"shortName\": \"BobaFujiTestnet\",\n \"slip44\": 1,\n \"slug\": \"bobafuji-testnet\",\n \"testnet\": true\n};\n\nvar c4337 = {\n \"chain\": \"BEAM\",\n \"chainId\": 4337,\n \"explorers\": [{\n \"name\": \"Beam Explorer\",\n \"url\": \"https://subnets.avax.network/beam\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.onbeam.com\"],\n \"features\": [{\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmQJ21NWyGGDraicVEzS1Uqq1yXahM9NCuNZgnfYvtspdt\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.onbeam.com\",\n \"name\": \"Beam\",\n \"nativeCurrency\": {\n \"name\": \"Beam\",\n \"symbol\": \"BEAM\",\n \"decimals\": 18\n },\n \"networkId\": 4337,\n \"rpc\": [\"https://beam.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://4337.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/beam/mainnet/rpc\", \"wss://subnets.avax.network/beam/mainnet/ws\"],\n \"shortName\": \"beam\",\n \"slug\": \"beam\",\n \"testnet\": false\n};\n\nvar c4400 = {\n \"chain\": \"CREDIT\",\n \"chainId\": 4400,\n \"explorers\": [{\n \"name\": \"Creditscan\",\n \"url\": \"https://scan.creditsmartchain.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://bafkreifbso3gd4wu5wxl27xyurxctmuae2jyuy37guqtzx23nga6ba4ag4\",\n \"width\": 1000,\n \"height\": 1628,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://bafkreifbso3gd4wu5wxl27xyurxctmuae2jyuy37guqtzx23nga6ba4ag4\",\n \"width\": 1000,\n \"height\": 1628,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://creditsmartchain.com\",\n \"name\": \"Credit Smart Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Credit\",\n \"symbol\": \"CREDIT\",\n \"decimals\": 18\n },\n \"networkId\": 4400,\n \"rpc\": [\"https://credit-smart-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://4400.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.creditsmartchain.com\"],\n \"shortName\": \"CreditEdge\",\n \"slug\": \"credit-smart-chain\",\n \"testnet\": false\n};\n\nvar c4444 = {\n \"chain\": \"mainnet\",\n \"chainId\": 4444,\n \"explorers\": [{\n \"name\": \"htmlcoin\",\n \"url\": \"https://explorer.htmlcoin.com\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmR1oDRSadPerfyWMhKHNP268vPKvpczt5zPawgFSZisz2\",\n \"width\": 1000,\n \"height\": 1000,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://gruvin.me/htmlcoin\"],\n \"icon\": {\n \"url\": \"ipfs://QmR1oDRSadPerfyWMhKHNP268vPKvpczt5zPawgFSZisz2\",\n \"width\": 1000,\n \"height\": 1000,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://htmlcoin.com\",\n \"name\": \"Htmlcoin Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Htmlcoin\",\n \"symbol\": \"HTML\",\n \"decimals\": 8\n },\n \"networkId\": 4444,\n \"rpc\": [\"https://htmlcoin.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://4444.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://janus.htmlcoin.com/api/\"],\n \"shortName\": \"html\",\n \"slug\": \"htmlcoin\",\n \"status\": \"active\",\n \"testnet\": false\n};\n\nvar c4460 = {\n \"chain\": \"ETH\",\n \"chainId\": 4460,\n \"explorers\": [{\n \"name\": \"basescout\",\n \"url\": \"https://explorerl2new-orderly-l2-4460-sepolia-8tc3sd7dvy.t.conduit.xyz\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmSpwp3RAVhZsErAQrCQxEmjnGqJQMigarzZbfqr9Ktakb\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"name\": \"Orderly Sepolia Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Sepolia Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 4460,\n \"rpc\": [\"https://orderly-sepolia-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://4460.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://l2-orderly-l2-4460-sepolia-8tc3sd7dvy.t.conduit.xyz\"],\n \"shortName\": \"orderlyl2\",\n \"slip44\": 1,\n \"slug\": \"orderly-sepolia-testnet\",\n \"testnet\": true\n};\n\nvar c4689 = {\n \"chain\": \"iotex.io\",\n \"chainId\": 4689,\n \"explorers\": [{\n \"name\": \"iotexscan\",\n \"url\": \"https://iotexscan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmQKHQrvtyUC5b5B76ke5GPTGXoGTVCubXS6gHgzCAswKo\",\n \"width\": 250,\n \"height\": 250,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://iotex.io\",\n \"name\": \"IoTeX Network Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"IoTeX\",\n \"symbol\": \"IOTX\",\n \"decimals\": 18\n },\n \"networkId\": 4689,\n \"redFlags\": [],\n \"rpc\": [\"https://iotex-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://4689.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.ankr.com/iotex\", \"https://babel-api.mainnet.iotex.io\"],\n \"shortName\": \"iotex-mainnet\",\n \"slug\": \"iotex-network\",\n \"testnet\": false\n};\n\nvar c4690 = {\n \"chain\": \"iotex.io\",\n \"chainId\": 4690,\n \"explorers\": [{\n \"name\": \"testnet iotexscan\",\n \"url\": \"https://testnet.iotexscan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.iotex.io/\"],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmQKHQrvtyUC5b5B76ke5GPTGXoGTVCubXS6gHgzCAswKo\",\n \"width\": 250,\n \"height\": 250,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://iotex.io\",\n \"name\": \"IoTeX Network Testnet\",\n \"nativeCurrency\": {\n \"name\": \"IoTeX\",\n \"symbol\": \"IOTX\",\n \"decimals\": 18\n },\n \"networkId\": 4690,\n \"redFlags\": [],\n \"rpc\": [\"https://iotex-network-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://4690.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://babel-api.testnet.iotex.io\"],\n \"shortName\": \"iotex-testnet\",\n \"slip44\": 1,\n \"slug\": \"iotex-network-testnet\",\n \"testnet\": true\n};\n\nvar c4759 = {\n \"chain\": \"MEVerse\",\n \"chainId\": 4759,\n \"explorers\": [{\n \"name\": \"MEVerse Chain Testnet Explorer\",\n \"url\": \"https://testnet.meversescan.io\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmPuQ6gaCfUtNdRuaEDbdhot2m2KCy2ZHCJUvZXJAtdeyJ\",\n \"width\": 800,\n \"height\": 800,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmPuQ6gaCfUtNdRuaEDbdhot2m2KCy2ZHCJUvZXJAtdeyJ\",\n \"width\": 800,\n \"height\": 800,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.meverse.sg\",\n \"name\": \"MEVerse Chain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"MEVerse\",\n \"symbol\": \"MEV\",\n \"decimals\": 18\n },\n \"networkId\": 4759,\n \"rpc\": [\"https://meverse-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://4759.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.meversetestnet.io\"],\n \"shortName\": \"TESTMEV\",\n \"slip44\": 1,\n \"slug\": \"meverse-chain-testnet\",\n \"testnet\": true\n};\n\nvar c4777 = {\n \"chain\": \"TBXN\",\n \"chainId\": 4777,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://testnet-explorer.blackfort.network\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmPasA8xykRtJDivB2bcKDiRCUNWDPtfUTTKVAcaF2wVxC\",\n \"width\": 1968,\n \"height\": 1968,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://blackfort.exchange\",\n \"name\": \"BlackFort Exchange Network Testnet\",\n \"nativeCurrency\": {\n \"name\": \"BlackFort Testnet Token\",\n \"symbol\": \"TBXN\",\n \"decimals\": 18\n },\n \"networkId\": 4777,\n \"rpc\": [\"https://blackfort-exchange-network-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://4777.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.blackfort.network/rpc\"],\n \"shortName\": \"TBXN\",\n \"slip44\": 1,\n \"slug\": \"blackfort-exchange-network-testnet\",\n \"testnet\": true\n};\n\nvar c4893 = {\n \"chain\": \"GC\",\n \"chainId\": 4893,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://gcscan.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmPRHDsVNpRZ72GoQgDbpa3R4wKENmrXCRNuYJkxocFRDb\",\n \"width\": 306,\n \"height\": 293,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://gcscan.io\",\n \"name\": \"Globel Chain\",\n \"nativeCurrency\": {\n \"name\": \"Globel Chain\",\n \"symbol\": \"GC\",\n \"decimals\": 18\n },\n \"networkId\": 4893,\n \"rpc\": [\"https://globel-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://4893.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.gcscan.io\"],\n \"shortName\": \"GC\",\n \"slug\": \"globel-chain\",\n \"testnet\": false\n};\n\nvar c4905 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 4905,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"Jambon's Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Jambon's Testnet Token\",\n \"symbol\": \"XFX\",\n \"decimals\": 18\n },\n \"networkId\": 4905,\n \"redFlags\": [],\n \"rpc\": [\"https://jambon-s-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://4905.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avacloud-dev.io/f4ceb0cc-0d11-4d49-888e-d744e333488a\"],\n \"shortName\": \"Jambon's Testnet\",\n \"slug\": \"jambon-s-testnet\",\n \"testnet\": true\n};\n\nvar c4918 = {\n \"chain\": \"XVM\",\n \"chainId\": 4918,\n \"explorers\": [{\n \"name\": \"Venidium EVM Testnet Explorer\",\n \"url\": \"https://evm-testnet.venidiumexplorer.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://venidium.io\",\n \"name\": \"Venidium Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Venidium\",\n \"symbol\": \"XVM\",\n \"decimals\": 18\n },\n \"networkId\": 4918,\n \"rpc\": [\"https://venidium-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://4918.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-evm-testnet.venidium.io\"],\n \"shortName\": \"txvm\",\n \"slip44\": 1,\n \"slug\": \"venidium-testnet\",\n \"testnet\": true\n};\n\nvar c4919 = {\n \"chain\": \"XVM\",\n \"chainId\": 4919,\n \"explorers\": [{\n \"name\": \"Venidium Explorer\",\n \"url\": \"https://evm.venidiumexplorer.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreiaplwlym5g27jm4mjhotfqq6al2cxp3fnkmzdusqjg7wnipq5wn2e\",\n \"width\": 1000,\n \"height\": 1000,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://venidium.io\",\n \"name\": \"Venidium Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Venidium\",\n \"symbol\": \"XVM\",\n \"decimals\": 18\n },\n \"networkId\": 4919,\n \"rpc\": [\"https://venidium.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://4919.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.venidium.io\"],\n \"shortName\": \"xvm\",\n \"slug\": \"venidium\",\n \"testnet\": false\n};\n\nvar c4999 = {\n \"chain\": \"BXN\",\n \"chainId\": 4999,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://explorer.blackfort.network\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmPasA8xykRtJDivB2bcKDiRCUNWDPtfUTTKVAcaF2wVxC\",\n \"width\": 1968,\n \"height\": 1968,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://blackfort.exchange\",\n \"name\": \"BlackFort Exchange Network\",\n \"nativeCurrency\": {\n \"name\": \"BlackFort Token\",\n \"symbol\": \"BXN\",\n \"decimals\": 18\n },\n \"networkId\": 4999,\n \"rpc\": [\"https://blackfort-exchange-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://4999.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.blackfort.network/rpc\", \"https://mainnet-1.blackfort.network/rpc\", \"https://mainnet-2.blackfort.network/rpc\", \"https://mainnet-3.blackfort.network/rpc\"],\n \"shortName\": \"BXN\",\n \"slug\": \"blackfort-exchange-network\",\n \"testnet\": false\n};\n\nvar c5000 = {\n \"chain\": \"ETH\",\n \"chainId\": 5000,\n \"explorers\": [{\n \"name\": \"Mantle Explorer\",\n \"url\": \"https://explorer.mantle.xyz\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmYddHh5zdceSsBU7uGfQvEHg6UUtAFbzQBBaePS4whx7o\",\n \"width\": 225,\n \"height\": 225,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://mantle.xyz\",\n \"name\": \"Mantle\",\n \"nativeCurrency\": {\n \"name\": \"Mantle\",\n \"symbol\": \"MNT\",\n \"decimals\": 18\n },\n \"networkId\": 5000,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-1\",\n \"bridges\": [{\n \"url\": \"https://bridge.mantle.xyz\"\n }]\n },\n \"rpc\": [\"https://mantle.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://5000.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.mantle.xyz\", \"https://mantle.publicnode.com\", \"wss://mantle.publicnode.com\"],\n \"shortName\": \"mantle\",\n \"slug\": \"mantle\",\n \"testnet\": false\n};\n\nvar c5001 = {\n \"chain\": \"ETH\",\n \"chainId\": 5001,\n \"explorers\": [{\n \"name\": \"Mantle Testnet Explorer\",\n \"url\": \"https://explorer.testnet.mantle.xyz\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.testnet.mantle.xyz\"],\n \"infoURL\": \"https://mantle.xyz\",\n \"name\": \"Mantle Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Testnet Mantle\",\n \"symbol\": \"MNT\",\n \"decimals\": 18\n },\n \"networkId\": 5001,\n \"rpc\": [\"https://mantle-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://5001.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.testnet.mantle.xyz\"],\n \"shortName\": \"mantle-testnet\",\n \"slip44\": 1,\n \"slug\": \"mantle-testnet\",\n \"testnet\": true\n};\n\nvar c5002 = {\n \"chain\": \"Treasurenet Mainnet Alpha\",\n \"chainId\": 5002,\n \"explorers\": [{\n \"name\": \"Treasurenet EVM BlockExplorer\",\n \"url\": \"https://evmexplorer.treasurenet.io\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmTcNX8ukHkXiVfVah1W8Sed3vtGN95Sq2QSimfLuHva6B\",\n \"width\": 1844,\n \"height\": 1920,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmTcNX8ukHkXiVfVah1W8Sed3vtGN95Sq2QSimfLuHva6B\",\n \"width\": 1844,\n \"height\": 1920,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.treasurenet.io\",\n \"name\": \"Treasurenet Mainnet Alpha\",\n \"nativeCurrency\": {\n \"name\": \"UNIT\",\n \"symbol\": \"UNIT\",\n \"decimals\": 18\n },\n \"networkId\": 5002,\n \"rpc\": [\"https://treasurenet-alpha.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://5002.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://node0.treasurenet.io\", \"https://node1.treasurenet.io\", \"https://node2.treasurenet.io\", \"https://node3.treasurenet.io\"],\n \"shortName\": \"treasurenet\",\n \"slug\": \"treasurenet-alpha\",\n \"testnet\": false\n};\n\nvar c5003 = {\n \"chain\": \"ETH\",\n \"chainId\": 5003,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://explorer.sepolia.mantle.xyz\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.sepolia.mantle.xyz\"],\n \"infoURL\": \"https://mantle.xyz\",\n \"name\": \"Mantle Sepolia Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Sepolia Mantle\",\n \"symbol\": \"MNT\",\n \"decimals\": 18\n },\n \"networkId\": 5003,\n \"rpc\": [\"https://mantle-sepolia-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://5003.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.sepolia.mantle.xyz\"],\n \"shortName\": \"mnt-sep\",\n \"slip44\": 1,\n \"slug\": \"mantle-sepolia-testnet\",\n \"testnet\": true\n};\n\nvar c5005 = {\n \"chain\": \"Treasurenet Testnet\",\n \"chainId\": 5005,\n \"explorers\": [{\n \"name\": \"Treasurenet EVM BlockExplorer\",\n \"url\": \"https://evmexplorer.testnet.treasurenet.io\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmTcNX8ukHkXiVfVah1W8Sed3vtGN95Sq2QSimfLuHva6B\",\n \"width\": 1844,\n \"height\": 1920,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmTcNX8ukHkXiVfVah1W8Sed3vtGN95Sq2QSimfLuHva6B\",\n \"width\": 1844,\n \"height\": 1920,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.testnet.treasurenet.io\",\n \"name\": \"Treasurenet Testnet\",\n \"nativeCurrency\": {\n \"name\": \"UNIT\",\n \"symbol\": \"UNIT\",\n \"decimals\": 18\n },\n \"networkId\": 5005,\n \"rpc\": [\"https://treasurenet-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://5005.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://node0.testnet.treasurenet.io\", \"https://node1.testnet.treasurenet.io\", \"https://node2.testnet.treasurenet.io\", \"https://node3.testnet.treasurenet.io\"],\n \"shortName\": \"tntest\",\n \"slip44\": 1,\n \"slug\": \"treasurenet-testnet\",\n \"testnet\": true\n};\n\nvar c5165 = {\n \"chain\": \"Bahamut\",\n \"chainId\": 5165,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://ftnscan.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmSemioP83RXnDWwTZbet8VpwJxcFRboX4B3pcdhLZGodP\",\n \"width\": 200,\n \"height\": 200,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://bahamut.io\",\n \"name\": \"Bahamut\",\n \"nativeCurrency\": {\n \"name\": \"FTN\",\n \"symbol\": \"FTN\",\n \"decimals\": 18\n },\n \"networkId\": 5165,\n \"rpc\": [\"https://bahamut.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://5165.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc1.bahamut.io\", \"https://rpc2.bahamut.io\", \"wss://ws1.sahara.bahamutchain.com\", \"wss://ws2.sahara.bahamutchain.com\", \"https://bahamut.publicnode.com\", \"wss://bahamut.publicnode.com\"],\n \"shortName\": \"ftn\",\n \"slug\": \"bahamut\",\n \"testnet\": false,\n \"title\": \"Bahamut mainnet\"\n};\n\nvar c5169 = {\n \"chain\": \"SLN\",\n \"chainId\": 5169,\n \"explorers\": [{\n \"name\": \"SLN Mainnet Explorer\",\n \"url\": \"https://explorer.main.smartlayer.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.smartlayer.network/\",\n \"name\": \"Smart Layer Network\",\n \"nativeCurrency\": {\n \"name\": \"Service Unit Token\",\n \"symbol\": \"SU\",\n \"decimals\": 18\n },\n \"networkId\": 5169,\n \"rpc\": [\"https://smart-layer-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://5169.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.main.smartlayer.network\"],\n \"shortName\": \"SLN\",\n \"slug\": \"smart-layer-network\",\n \"testnet\": false\n};\n\nvar c5177 = {\n \"chain\": \"TLC\",\n \"chainId\": 5177,\n \"explorers\": [{\n \"name\": \"TLChain Explorer\",\n \"url\": \"https://explorer.tlchain.network\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmaR5TsgnWSjLys6wGaciKUbc5qYL3Es4jtgQcosVqDWR3\",\n \"width\": 2048,\n \"height\": 2048,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://tlchain.network/\",\n \"name\": \"TLChain Network Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"TLChain Network\",\n \"symbol\": \"TLC\",\n \"decimals\": 18\n },\n \"networkId\": 5177,\n \"rpc\": [\"https://tlchain-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://5177.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-rpc.tlxscan.com/\"],\n \"shortName\": \"tlc\",\n \"slug\": \"tlchain-network\",\n \"testnet\": false\n};\n\nvar c5197 = {\n \"chain\": \"ESN\",\n \"chainId\": 5197,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmV1wZ1RVXeD7216aiVBpLkbBBHWNuoTvcSzpVQsqi2uaH\",\n \"width\": 200,\n \"height\": 200,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://eraswap.info/\",\n \"name\": \"EraSwap Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"EraSwap\",\n \"symbol\": \"ES\",\n \"decimals\": 18\n },\n \"networkId\": 5197,\n \"rpc\": [\"https://eraswap.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://5197.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.eraswap.network\", \"https://rpc-mumbai.mainnet.eraswap.network\"],\n \"shortName\": \"es\",\n \"slug\": \"eraswap\",\n \"testnet\": false\n};\n\nvar c5234 = {\n \"chain\": \"HMND\",\n \"chainId\": 5234,\n \"explorers\": [{\n \"name\": \"Subscan\",\n \"url\": \"https://humanode.subscan.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://Qma2GfW5nQHuA7nGqdEfwaXPL63G9oTwRTQKaGTfjNtM2W\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafybeihuskzfwqogwvutaxil6sztmvpiavzbrzwjwpn6w2i4j3jysbybra\",\n \"width\": 1043,\n \"height\": 1043,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://humanode.io\",\n \"name\": \"Humanode Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"eHMND\",\n \"symbol\": \"eHMND\",\n \"decimals\": 18\n },\n \"networkId\": 5234,\n \"rpc\": [\"https://humanode.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://5234.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://explorer-rpc-http.mainnet.stages.humanode.io\"],\n \"shortName\": \"hmnd\",\n \"slug\": \"humanode\",\n \"testnet\": false\n};\n\nvar c5290 = {\n \"chain\": \"FIRE\",\n \"chainId\": 5290,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmYjuztyURb3Fc6ZTLgCbwQa64CcVoigF5j9cafzuSbqgf\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://thefirechain.com\",\n \"name\": \"Firechain Mainnet Old\",\n \"nativeCurrency\": {\n \"name\": \"Firechain\",\n \"symbol\": \"FIRE\",\n \"decimals\": 18\n },\n \"networkId\": 5290,\n \"rpc\": [\"https://firechain-old.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://5290.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.rpc1.thefirechain.com\"],\n \"shortName\": \"_old_fire\",\n \"slug\": \"firechain-old\",\n \"status\": \"deprecated\",\n \"testnet\": false\n};\n\nvar c5315 = {\n \"chain\": \"UZMI\",\n \"chainId\": 5315,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://uzmigames.com.br/\",\n \"name\": \"Uzmi Network Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"UZMI\",\n \"symbol\": \"UZMI\",\n \"decimals\": 18\n },\n \"networkId\": 5315,\n \"rpc\": [\"https://uzmi-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://5315.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://network.uzmigames.com.br/\"],\n \"shortName\": \"UZMI\",\n \"slug\": \"uzmi-network\",\n \"testnet\": false\n};\n\nvar c5353 = {\n \"chain\": \"TRITANIUM\",\n \"chainId\": 5353,\n \"explorers\": [{\n \"name\": \"TRITANIUM Testnet Explorer\",\n \"url\": \"https://testnet.tritanium.network\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmRm6gcEPJmU9a86zrmyP7FALTN4Toz9HrnrL2Kwg6FPeh\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucet.tritanium.network\"],\n \"icon\": {\n \"url\": \"ipfs://QmRm6gcEPJmU9a86zrmyP7FALTN4Toz9HrnrL2Kwg6FPeh\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://tritanium.network\",\n \"name\": \"Tritanium Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Tritanium Native Token\",\n \"symbol\": \"tTRN\",\n \"decimals\": 18\n },\n \"networkId\": 5353,\n \"rpc\": [\"https://tritanium-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://5353.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://nodetestnet-station-one.tritanium.network/\", \"https://nodetestnet-station-two.tritanium.network/\"],\n \"shortName\": \"ttrn\",\n \"slip44\": 1,\n \"slug\": \"tritanium-testnet\",\n \"testnet\": true\n};\n\nvar c5522 = {\n \"chain\": \"vex\",\n \"chainId\": 5522,\n \"explorers\": [{\n \"name\": \"Vexascan-EVM-TestNet\",\n \"url\": \"https://testnet.vexascan.com/evmexplorer\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://t.me/vexfaucetbot\"],\n \"icon\": {\n \"url\": \"ipfs://QmcZiEAGFYEEax1uxYnDUh8X5YBvZqMi9K92yZoq4o2zeM\",\n \"width\": 451,\n \"height\": 446,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://vexanium.com\",\n \"name\": \"VEX EVM TESTNET\",\n \"nativeCurrency\": {\n \"name\": \"VEX EVM TESTNET\",\n \"symbol\": \"VEX\",\n \"decimals\": 18\n },\n \"networkId\": 5522,\n \"rpc\": [\"https://vex-evm-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://5522.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.vexascan.com/evmapi\"],\n \"shortName\": \"VEX\",\n \"slip44\": 1,\n \"slug\": \"vex-evm-testnet\",\n \"testnet\": true\n};\n\nvar c5551 = {\n \"chain\": \"Nahmii\",\n \"chainId\": 5551,\n \"explorers\": [{\n \"name\": \"Nahmii mainnet explorer\",\n \"url\": \"https://explorer.nahmii.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmZhKXgoGpzvthr2eh8ZNgT75YvMtEBegdELAaMPPzf5QT\",\n \"width\": 384,\n \"height\": 384,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmZhKXgoGpzvthr2eh8ZNgT75YvMtEBegdELAaMPPzf5QT\",\n \"width\": 384,\n \"height\": 384,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://nahmii.io\",\n \"name\": \"Nahmii Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 5551,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-1\",\n \"bridges\": [{\n \"url\": \"https://bridge.nahmii.io\"\n }]\n },\n \"rpc\": [\"https://nahmii.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://5551.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://l2.nahmii.io\"],\n \"shortName\": \"Nahmii\",\n \"slug\": \"nahmii\",\n \"testnet\": false\n};\n\nvar c5553 = {\n \"chain\": \"Nahmii\",\n \"chainId\": 5553,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://explorer.testnet.nahmii.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmZhKXgoGpzvthr2eh8ZNgT75YvMtEBegdELAaMPPzf5QT\",\n \"width\": 384,\n \"height\": 384,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmZhKXgoGpzvthr2eh8ZNgT75YvMtEBegdELAaMPPzf5QT\",\n \"width\": 384,\n \"height\": 384,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://nahmii.io\",\n \"name\": \"Nahmii Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 5553,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-3\",\n \"bridges\": [{\n \"url\": \"https://bridge.nahmii.io\"\n }]\n },\n \"rpc\": [\"https://nahmii-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://5553.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://l2.testnet.nahmii.io\"],\n \"shortName\": \"NahmiiTestnet\",\n \"slip44\": 1,\n \"slug\": \"nahmii-testnet\",\n \"testnet\": true\n};\n\nvar c5555 = {\n \"chain\": \"CVERSE\",\n \"chainId\": 5555,\n \"explorers\": [{\n \"name\": \"Chain Verse Explorer\",\n \"url\": \"https://explorer.chainverse.info\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmQyJt28h4wN3QHPXUQJQYQqGiFUD77han3zibZPzHbitk\",\n \"width\": 1000,\n \"height\": 1436,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://chainverse.info\",\n \"name\": \"Chain Verse Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Oasys\",\n \"symbol\": \"OAS\",\n \"decimals\": 18\n },\n \"networkId\": 5555,\n \"rpc\": [\"https://chain-verse.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://5555.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.chainverse.info\"],\n \"shortName\": \"cverse\",\n \"slug\": \"chain-verse\",\n \"testnet\": false\n};\n\nvar c5611 = {\n \"chain\": \"opBNB\",\n \"chainId\": 5611,\n \"explorers\": [{\n \"name\": \"bscscan-opbnb-testnet\",\n \"url\": \"https://opbnb-testnet.bscscan.com\",\n \"standard\": \"EIP3091\"\n }, {\n \"name\": \"opbnbscan\",\n \"url\": \"https://opbnbscan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://testnet.bnbchain.org/faucet-smart\"],\n \"icon\": {\n \"url\": \"ipfs://bafybeib75gwytvblyvjpfminitr3i6mpat3a624udfsqsl5nysf5vuuvie\",\n \"width\": 96,\n \"height\": 96,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://opbnb.bnbchain.org/en\",\n \"name\": \"opBNB Testnet\",\n \"nativeCurrency\": {\n \"name\": \"BNB Chain Native Token\",\n \"symbol\": \"tBNB\",\n \"decimals\": 18\n },\n \"networkId\": 5611,\n \"rpc\": [\"https://opbnb-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://5611.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://opbnb-testnet-rpc.bnbchain.org\", \"https://opbnb-testnet.nodereal.io/v1/64a9df0874fb4a93b9d0a3849de012d3\", \"wss://opbnb-testnet.nodereal.io/ws/v1/64a9df0874fb4a93b9d0a3849de012d3\", \"https://opbnb-testnet.nodereal.io/v1/e9a36765eb8a40b9bd12e680a1fd2bc5\", \"wss://opbnb-testnet.nodereal.io/ws/v1/e9a36765eb8a40b9bd12e680a1fd2bc5\"],\n \"shortName\": \"obnbt\",\n \"slip44\": 1,\n \"slug\": \"opbnb-testnet\",\n \"testnet\": true\n};\n\nvar c5616 = {\n \"chain\": \"ARCTURUS\",\n \"chainId\": 5616,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://arcturuschain.io\",\n \"name\": \"Arcturus Chain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Test Arct\",\n \"symbol\": \"tARCT\",\n \"decimals\": 18\n },\n \"networkId\": 5616,\n \"rpc\": [\"https://arcturus-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://5616.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"http://185.99.196.3:8545\"],\n \"shortName\": \"ARCT\",\n \"slip44\": 1,\n \"slug\": \"arcturus-chain-testnet\",\n \"testnet\": true\n};\n\nvar c5678 = {\n \"chain\": \"EVMCC\",\n \"chainId\": 5678,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://tanssi.network\",\n \"name\": \"Tanssi EVM ContainerChain\",\n \"nativeCurrency\": {\n \"name\": \"Unit\",\n \"symbol\": \"Unit\",\n \"decimals\": 18\n },\n \"networkId\": 5678,\n \"rpc\": [\"https://tanssi-evm-containerchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://5678.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://fraa-dancebox-3001-rpc.a.dancebox.tanssi.network\", \"wss://fraa-dancebox-3001-rpc.a.dancebox.tanssi.network\"],\n \"shortName\": \"TanssiCC\",\n \"slug\": \"tanssi-evm-containerchain\",\n \"testnet\": false\n};\n\nvar c5700 = {\n \"chain\": \"SYS\",\n \"chainId\": 5700,\n \"explorers\": [{\n \"name\": \"Syscoin Testnet Block Explorer\",\n \"url\": \"https://tanenbaum.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.tanenbaum.io\"],\n \"infoURL\": \"https://syscoin.org\",\n \"name\": \"Syscoin Tanenbaum Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Testnet Syscoin\",\n \"symbol\": \"tSYS\",\n \"decimals\": 18\n },\n \"networkId\": 5700,\n \"rpc\": [\"https://syscoin-tanenbaum-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://5700.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.tanenbaum.io\", \"wss://rpc.tanenbaum.io/wss\", \"https://syscoin-tanenbaum-evm.publicnode.com\", \"wss://syscoin-tanenbaum-evm.publicnode.com\"],\n \"shortName\": \"tsys\",\n \"slip44\": 1,\n \"slug\": \"syscoin-tanenbaum-testnet\",\n \"testnet\": true\n};\n\nvar c5729 = {\n \"chain\": \"HIK\",\n \"chainId\": 5729,\n \"explorers\": [{\n \"name\": \"Hika Network Testnet Explorer\",\n \"url\": \"https://scan-testnet.hika.network\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmW44FPm3CMM2JDs8BQxLNvUtykkUtrGkQkQsUDJSi3Gmp\",\n \"width\": 350,\n \"height\": 84,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://hika.network/\",\n \"name\": \"Hika Network Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Hik Token\",\n \"symbol\": \"HIK\",\n \"decimals\": 18\n },\n \"networkId\": 5729,\n \"rpc\": [\"https://hika-network-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://5729.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-testnet.hika.network/\"],\n \"shortName\": \"hik\",\n \"slug\": \"hika-network-testnet\",\n \"testnet\": true,\n \"title\": \"Hika Network Testnet\"\n};\n\nvar c5758 = {\n \"chain\": \"SATS\",\n \"chainId\": 5758,\n \"explorers\": [{\n \"name\": \"SatoshiChain Testnet Explorer\",\n \"url\": \"https://testnet.satoshiscan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.satoshichain.io\"],\n \"icon\": {\n \"url\": \"ipfs://QmRegpZQBW4o1imYNsW3d27MQjygBSU23Gf6JKje26nvs7\",\n \"width\": 1251,\n \"height\": 1251,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://satoshichain.net\",\n \"name\": \"SatoshiChain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"SatoshiChain Coin\",\n \"symbol\": \"SATS\",\n \"decimals\": 18\n },\n \"networkId\": 5758,\n \"rpc\": [\"https://satoshichain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://5758.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-rpc.satoshichain.io\"],\n \"shortName\": \"satst\",\n \"slip44\": 1,\n \"slug\": \"satoshichain-testnet\",\n \"testnet\": true\n};\n\nvar c5777 = {\n \"chain\": \"ETH\",\n \"chainId\": 5777,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://Qmc9N7V8CiLB4r7FEcG7GojqfiGGsRCZqcFWCahwMohbDW\",\n \"width\": 267,\n \"height\": 300,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://trufflesuite.com/ganache/\",\n \"name\": \"Ganache\",\n \"nativeCurrency\": {\n \"name\": \"Ganache Test Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 5777,\n \"rpc\": [\"https://ganache.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://5777.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://127.0.0.1:7545\"],\n \"shortName\": \"ggui\",\n \"slip44\": 1,\n \"slug\": \"ganache\",\n \"testnet\": true,\n \"title\": \"Ganache GUI Ethereum Testnet\"\n};\n\nvar c5851 = {\n \"chain\": \"Ontology\",\n \"chainId\": 5851,\n \"explorers\": [{\n \"name\": \"explorer\",\n \"url\": \"https://explorer.ont.io/testnet\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://developer.ont.io/\"],\n \"icon\": {\n \"url\": \"ipfs://bafkreigmvn6spvbiirtutowpq6jmetevbxoof5plzixjoerbeswy4htfb4\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://ont.io/\",\n \"name\": \"Ontology Testnet\",\n \"nativeCurrency\": {\n \"name\": \"ONG\",\n \"symbol\": \"ONG\",\n \"decimals\": 18\n },\n \"networkId\": 5851,\n \"rpc\": [\"https://ontology-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://5851.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"http://polaris1.ont.io:20339\", \"http://polaris2.ont.io:20339\", \"http://polaris3.ont.io:20339\", \"http://polaris4.ont.io:20339\", \"https://polaris1.ont.io:10339\", \"https://polaris2.ont.io:10339\", \"https://polaris3.ont.io:10339\", \"https://polaris4.ont.io:10339\"],\n \"shortName\": \"OntologyTestnet\",\n \"slip44\": 1,\n \"slug\": \"ontology-testnet\",\n \"testnet\": true\n};\n\nvar c5869 = {\n \"chain\": \"RBD\",\n \"chainId\": 5869,\n \"explorers\": [{\n \"name\": \"wegoscan2\",\n \"url\": \"https://scan2.wegochain.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.wegochain.io\",\n \"name\": \"Wegochain Rubidium Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Rubid\",\n \"symbol\": \"RBD\",\n \"decimals\": 18\n },\n \"networkId\": 5869,\n \"rpc\": [\"https://wegochain-rubidium.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://5869.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://proxy.wegochain.io\", \"http://wallet.wegochain.io:7764\"],\n \"shortName\": \"rbd\",\n \"slug\": \"wegochain-rubidium\",\n \"testnet\": false\n};\n\nvar c6065 = {\n \"chain\": \"TresLeches\",\n \"chainId\": 6065,\n \"explorers\": [{\n \"name\": \"treslechesexplorer\",\n \"url\": \"https://explorer-test.tresleches.finance\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmS33ypsZ1Hx5LMMACaJaxePy9QNYMwu4D12niobExLK74\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"http://faucet.tresleches.finance:8080\"],\n \"icon\": {\n \"url\": \"ipfs://QmS33ypsZ1Hx5LMMACaJaxePy9QNYMwu4D12niobExLK74\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://treschain.com\",\n \"name\": \"Tres Testnet\",\n \"nativeCurrency\": {\n \"name\": \"TRES\",\n \"symbol\": \"TRES\",\n \"decimals\": 18\n },\n \"networkId\": 6065,\n \"rpc\": [\"https://tres-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://6065.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-test.tresleches.finance/\"],\n \"shortName\": \"TRESTEST\",\n \"slip44\": 1,\n \"slug\": \"tres-testnet\",\n \"testnet\": true\n};\n\nvar c6066 = {\n \"chain\": \"TresLeches\",\n \"chainId\": 6066,\n \"explorers\": [{\n \"name\": \"treslechesexplorer\",\n \"url\": \"https://explorer.tresleches.finance\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmS33ypsZ1Hx5LMMACaJaxePy9QNYMwu4D12niobExLK74\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmS33ypsZ1Hx5LMMACaJaxePy9QNYMwu4D12niobExLK74\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://treschain.com\",\n \"name\": \"Tres Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"TRES\",\n \"symbol\": \"TRES\",\n \"decimals\": 18\n },\n \"networkId\": 6066,\n \"rpc\": [\"https://tres.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://6066.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.tresleches.finance/\", \"https://rpc.treschain.io/\"],\n \"shortName\": \"TRESMAIN\",\n \"slug\": \"tres\",\n \"testnet\": false\n};\n\nvar c6102 = {\n \"chain\": \"Cascadia\",\n \"chainId\": 6102,\n \"explorers\": [{\n \"name\": \"Cascadia EVM Explorer\",\n \"url\": \"https://explorer.cascadia.foundation\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmQtcwxNiJ9D1QDz4k6jZ7qacLcqMk6CeW85TTBWBvNp3z\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"png\"\n }\n }, {\n \"name\": \"Cascadia Cosmos Explorer\",\n \"url\": \"https://validator.cascadia.foundation\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmQtcwxNiJ9D1QDz4k6jZ7qacLcqMk6CeW85TTBWBvNp3z\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://www.cascadia.foundation/faucet\"],\n \"icon\": {\n \"url\": \"ipfs://QmQtcwxNiJ9D1QDz4k6jZ7qacLcqMk6CeW85TTBWBvNp3z\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.cascadia.foundation\",\n \"name\": \"Cascadia Testnet\",\n \"nativeCurrency\": {\n \"name\": \"CC\",\n \"symbol\": \"tCC\",\n \"decimals\": 18\n },\n \"networkId\": 6102,\n \"rpc\": [\"https://cascadia-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://6102.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.cascadia.foundation\"],\n \"shortName\": \"cascadia\",\n \"slug\": \"cascadia-testnet\",\n \"testnet\": true\n};\n\nvar c6118 = {\n \"chain\": \"UPTN\",\n \"chainId\": 6118,\n \"explorers\": [{\n \"name\": \"UPTN Testnet Explorer\",\n \"url\": \"https://testnet.explorer.uptn.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://Qma6cGPCDcJPFxy5KQaMBrLtuVQiqeLncXVybcBoQuhai5\",\n \"width\": 128,\n \"height\": 128,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://uptn.io\",\n \"name\": \"UPTN Testnet\",\n \"nativeCurrency\": {\n \"name\": \"UPTN\",\n \"symbol\": \"UPTN\",\n \"decimals\": 18\n },\n \"networkId\": 6118,\n \"rpc\": [\"https://uptn-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://6118.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://node-api.alp.uptn.io/v1/ext/rpc\"],\n \"shortName\": \"UPTN-TEST\",\n \"slip44\": 1,\n \"slug\": \"uptn-testnet\",\n \"testnet\": true\n};\n\nvar c6119 = {\n \"chain\": \"UPTN\",\n \"chainId\": 6119,\n \"explorers\": [{\n \"name\": \"UPTN Explorer\",\n \"url\": \"https://explorer.uptn.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://Qma6cGPCDcJPFxy5KQaMBrLtuVQiqeLncXVybcBoQuhai5\",\n \"width\": 128,\n \"height\": 128,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://uptn.io\",\n \"name\": \"UPTN\",\n \"nativeCurrency\": {\n \"name\": \"UPTN\",\n \"symbol\": \"UPTN\",\n \"decimals\": 18\n },\n \"networkId\": 6119,\n \"rpc\": [\"https://uptn.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://6119.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://node-api.uptn.io/v1/ext/rpc\"],\n \"shortName\": \"UPTN\",\n \"slug\": \"uptn\",\n \"testnet\": false\n};\n\nvar c6363 = {\n \"chain\": \"DGS\",\n \"chainId\": 6363,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmRiAUu3xV5uiX6Nk1iXD5w6qjki5ugGFETRVavzJ2h5QF\",\n \"width\": 370,\n \"height\": 320,\n \"format\": \"png\"\n },\n \"name\": \"Digit Soul Smart Chain\",\n \"nativeCurrency\": {\n \"name\": \"Digit Coin\",\n \"symbol\": \"DGC\",\n \"decimals\": 18\n },\n \"networkId\": 6363,\n \"rpc\": [\"https://digit-soul-smart-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://6363.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://dsc-rpc.digitsoul.co.th\"],\n \"shortName\": \"DGS\",\n \"slug\": \"digit-soul-smart-chain\",\n \"testnet\": false\n};\n\nvar c6502 = {\n \"chain\": \"P2P\",\n \"chainId\": 6502,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://peerpay.su.gy\",\n \"name\": \"Peerpay\",\n \"nativeCurrency\": {\n \"name\": \"Peerpay\",\n \"symbol\": \"P2P\",\n \"decimals\": 18\n },\n \"networkId\": 6502,\n \"rpc\": [\"https://peerpay.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://6502.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://peerpay.su.gy/p2p\"],\n \"shortName\": \"Peerpay\",\n \"slug\": \"peerpay\",\n \"testnet\": false\n};\n\nvar c6552 = {\n \"chain\": \"SCOLWEI-testnet\",\n \"chainId\": 6552,\n \"explorers\": [{\n \"name\": \"Scolscan Testnet Explorer\",\n \"url\": \"https://testnet-explorer.scolcoin.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.scolcoin.com\"],\n \"icon\": {\n \"url\": \"ipfs://QmVES1eqDXhP8SdeCpM85wvjmhrQDXGRquQebDrSdvJqpt\",\n \"width\": 792,\n \"height\": 822,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://scolcoin.com\",\n \"name\": \"Scolcoin WeiChain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Scolcoin\",\n \"symbol\": \"SCOL\",\n \"decimals\": 18\n },\n \"networkId\": 6552,\n \"rpc\": [\"https://scolcoin-weichain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://6552.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-rpc.scolcoin.com\"],\n \"shortName\": \"SRC-test\",\n \"slip44\": 1,\n \"slug\": \"scolcoin-weichain-testnet\",\n \"testnet\": true\n};\n\nvar c6565 = {\n \"chain\": \"FOX\",\n \"chainId\": 6565,\n \"explorers\": [{\n \"name\": \"FOX Testnet Explorer\",\n \"url\": \"https://testnet.foxscan.app\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://Qmbp1rwhtRr6JQRyYqyfLqkbmzXr1T17zbmChsi2ouvg3M\",\n \"width\": 100,\n \"height\": 100,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucet.foxchain.app\"],\n \"icon\": {\n \"url\": \"ipfs://Qmbp1rwhtRr6JQRyYqyfLqkbmzXr1T17zbmChsi2ouvg3M\",\n \"width\": 100,\n \"height\": 100,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://foxchain.app\",\n \"name\": \"Fox Testnet Network\",\n \"nativeCurrency\": {\n \"name\": \"FOX Native Token\",\n \"symbol\": \"tFOX\",\n \"decimals\": 18\n },\n \"networkId\": 6565,\n \"rpc\": [\"https://fox-testnet-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://6565.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-testnet-v1.foxchain.app/\", \"https://rpc2-testnet-v1.foxchain.app/\", \"https://rpc3-testnet-v1.foxchain.app\"],\n \"shortName\": \"fox\",\n \"slip44\": 1,\n \"slug\": \"fox-testnet-network\",\n \"testnet\": true\n};\n\nvar c6626 = {\n \"chain\": \"PixieChain\",\n \"chainId\": 6626,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://scan.chain.pixie.xyz\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://chain.pixie.xyz\",\n \"name\": \"Pixie Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Pixie Chain Native Token\",\n \"symbol\": \"PIX\",\n \"decimals\": 18\n },\n \"networkId\": 6626,\n \"rpc\": [\"https://pixie-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://6626.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://http-mainnet.chain.pixie.xyz\", \"wss://ws-mainnet.chain.pixie.xyz\"],\n \"shortName\": \"pixie-chain\",\n \"slug\": \"pixie-chain\",\n \"testnet\": false\n};\n\nvar c6660 = {\n \"chain\": \"LATEST\",\n \"chainId\": 6660,\n \"explorers\": [{\n \"name\": \"Latest Chain\",\n \"url\": \"http://testnet.latestchain.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"http://faucet.latestchain.io\"],\n \"icon\": {\n \"url\": \"ipfs://QmUU784i1ZHDNwgXvt9weZmq6YbHHkyXvuDS7r4iDzao72\",\n \"width\": 1115,\n \"height\": 1242,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://latestcoin.io\",\n \"name\": \"Latest Chain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Latest\",\n \"symbol\": \"LATEST\",\n \"decimals\": 18\n },\n \"networkId\": 6660,\n \"rpc\": [\"https://latest-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://6660.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-rpc.latestcoin.io\"],\n \"shortName\": \"LATESTt\",\n \"slug\": \"latest-chain-testnet\",\n \"testnet\": true\n};\n\nvar c6661 = {\n \"chain\": \"CYBA\",\n \"chainId\": 6661,\n \"explorers\": [{\n \"name\": \"Cybria Explorer\",\n \"url\": \"https://cybascan.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://bafkreiagdqfrvnbdjhkh27gjbvepzo66dpqgnbffmpnywuw5ncprg3jk3u\",\n \"width\": 2264,\n \"height\": 408,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://bafkreiarso74bytq5ccnl3mlfhd4ejiylwautsr6ovbqgmynzjzmkorn6y\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://cybria.io\",\n \"name\": \"Cybria Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Cybria\",\n \"symbol\": \"CYBA\",\n \"decimals\": 18\n },\n \"networkId\": 6661,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-11155420\",\n \"bridges\": [{\n \"url\": \"https://app.optimism.io/bridge\"\n }]\n },\n \"rpc\": [\"https://cybria.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://6661.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-mainnet.cybria.io\"],\n \"shortName\": \"cyba\",\n \"slug\": \"cybria\",\n \"testnet\": false\n};\n\nvar c6666 = {\n \"chain\": \"CYBA\",\n \"chainId\": 6666,\n \"explorers\": [{\n \"name\": \"Cybria Explorer\",\n \"url\": \"https://explorer.cybascan.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://bafkreiagdqfrvnbdjhkh27gjbvepzo66dpqgnbffmpnywuw5ncprg3jk3u\",\n \"width\": 2264,\n \"height\": 408,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucet.cybascan.io\"],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://bafkreiarso74bytq5ccnl3mlfhd4ejiylwautsr6ovbqgmynzjzmkorn6y\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://cybria.io\",\n \"name\": \"Cybria Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Cybria\",\n \"symbol\": \"CYBA\",\n \"decimals\": 18\n },\n \"networkId\": 6666,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-11155420\",\n \"bridges\": [{\n \"url\": \"https://app.optimism.io/bridge\"\n }]\n },\n \"rpc\": [\"https://cybria-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://6666.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://l2-rpc.cybascan.io\"],\n \"shortName\": \"tcyba\",\n \"slug\": \"cybria-testnet\",\n \"testnet\": true\n};\n\nvar c6688 = {\n \"chain\": \"IRIShub\",\n \"chainId\": 6688,\n \"explorers\": [{\n \"name\": \"IRISHub Cosmos Explorer (IOBScan)\",\n \"url\": \"https://irishub.iobscan.io\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmTKgKs7kJiWDhdjbELE4Y2HVZ36KS4bYkNCbXdsXk66sW\",\n \"width\": 1062,\n \"height\": 1062,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmTKgKs7kJiWDhdjbELE4Y2HVZ36KS4bYkNCbXdsXk66sW\",\n \"width\": 1062,\n \"height\": 1062,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.irisnet.org\",\n \"name\": \"IRIShub\",\n \"nativeCurrency\": {\n \"name\": \"Eris\",\n \"symbol\": \"ERIS\",\n \"decimals\": 18\n },\n \"networkId\": 6688,\n \"rpc\": [\"https://irishub.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://6688.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://evmrpc.irishub-1.irisnet.org\", \"https://iris-evm.publicnode.com\", \"wss://iris-evm.publicnode.com\"],\n \"shortName\": \"iris\",\n \"slug\": \"irishub\",\n \"testnet\": false\n};\n\nvar c6779 = {\n \"chain\": \"CPV\",\n \"chainId\": 6779,\n \"explorers\": [{\n \"name\": \"cpvscan\",\n \"url\": \"https://scan.compverse.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmYbskrGpidbMwsJekTeLrr8Z6GA9q4Uxh7piS1F9BdWWv\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://compverse.io\",\n \"name\": \"Compverse Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"compverse\",\n \"symbol\": \"CPV\",\n \"decimals\": 18\n },\n \"networkId\": 6779,\n \"rpc\": [\"https://compverse.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://6779.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.compverse.io/\", \"https://rpc-useast1.compverse.io/\"],\n \"shortName\": \"compverse\",\n \"slip44\": 7779,\n \"slug\": \"compverse\",\n \"testnet\": false\n};\n\nvar c6789 = {\n \"chain\": \"STAND\",\n \"chainId\": 6789,\n \"explorers\": [{\n \"name\": \"Gold Smart Chain\",\n \"url\": \"https://mainnet.goldsmartchain.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.goldsmartchain.com\"],\n \"icon\": {\n \"url\": \"ipfs://QmPNuymyaKLJhCaXnyrsL8358FeTxabZFsaxMmWNU4Tzt3\",\n \"width\": 396,\n \"height\": 418,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://goldsmartchain.com\",\n \"name\": \"Gold Smart Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Standard in Gold\",\n \"symbol\": \"STAND\",\n \"decimals\": 18\n },\n \"networkId\": 6789,\n \"rpc\": [\"https://gold-smart-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://6789.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-mainnet.goldsmartchain.com\"],\n \"shortName\": \"STANDm\",\n \"slug\": \"gold-smart-chain\",\n \"testnet\": false\n};\n\nvar c6969 = {\n \"chain\": \"Tomb Chain\",\n \"chainId\": 6969,\n \"explorers\": [{\n \"name\": \"tombscout\",\n \"url\": \"https://tombscout.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://tombchain.com/\",\n \"name\": \"Tomb Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Tomb\",\n \"symbol\": \"TOMB\",\n \"decimals\": 18\n },\n \"networkId\": 6969,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-250\",\n \"bridges\": [{\n \"url\": \"https://lif3.com/bridge\"\n }]\n },\n \"rpc\": [\"https://tomb-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://6969.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.tombchain.com/\"],\n \"shortName\": \"tombchain\",\n \"slug\": \"tomb-chain\",\n \"testnet\": false\n};\n\nvar c6999 = {\n \"chain\": \"PSC\",\n \"chainId\": 6999,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://www.polysmartchain.com/\",\n \"name\": \"PolySmartChain\",\n \"nativeCurrency\": {\n \"name\": \"PSC\",\n \"symbol\": \"PSC\",\n \"decimals\": 18\n },\n \"networkId\": 6999,\n \"rpc\": [\"https://polysmartchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://6999.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://seed0.polysmartchain.com/\", \"https://seed1.polysmartchain.com/\", \"https://seed2.polysmartchain.com/\"],\n \"shortName\": \"psc\",\n \"slug\": \"polysmartchain\",\n \"testnet\": false\n};\n\nvar c7000 = {\n \"chain\": \"ZetaChain\",\n \"chainId\": 7000,\n \"explorers\": [{\n \"name\": \"ZetaChain Mainnet Explorer\",\n \"url\": \"https://explorer.mainnet.zetachain.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmP4Gnf4Lkp8q5LQVePNjAWxSqrw8vU2JAf7amcFz4vEUy\",\n \"width\": 712,\n \"height\": 712,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://zetachain.com/docs/\",\n \"name\": \"ZetaChain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Zeta\",\n \"symbol\": \"ZETA\",\n \"decimals\": 18\n },\n \"networkId\": 7000,\n \"rpc\": [\"https://zetachain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://7000.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.mainnet.zetachain.com/evm\"],\n \"shortName\": \"zetachain-mainnet\",\n \"slug\": \"zetachain\",\n \"status\": \"incubating\",\n \"testnet\": false\n};\n\nvar c7001 = {\n \"chain\": \"ZetaChain\",\n \"chainId\": 7001,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://zetachain-athens-3.blockscout.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }, {\n \"name\": \"ZetaChain Athens Testnet Explorer\",\n \"url\": \"https://athens3.explorer.zetachain.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://labs.zetachain.com/get-zeta\"],\n \"icon\": {\n \"url\": \"ipfs://QmP4Gnf4Lkp8q5LQVePNjAWxSqrw8vU2JAf7amcFz4vEUy\",\n \"width\": 712,\n \"height\": 712,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://zetachain.com/docs\",\n \"name\": \"ZetaChain Athens 3 Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Zeta\",\n \"symbol\": \"ZETA\",\n \"decimals\": 18\n },\n \"networkId\": 7001,\n \"rpc\": [\"https://zetachain-athens-3-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://7001.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.ankr.com/zetachain_evm_athens_testnet\"],\n \"shortName\": \"zetachain-athens\",\n \"slip44\": 1,\n \"slug\": \"zetachain-athens-3-testnet\",\n \"status\": \"active\",\n \"testnet\": true\n};\n\nvar c7027 = {\n \"chain\": \"ella\",\n \"chainId\": 7027,\n \"explorers\": [{\n \"name\": \"Ella\",\n \"url\": \"https://ella.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmVkAhSaHhH3wKoLT56Aq8dNyEH4RySPEpqPcLwsptGBDm\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://ella.network\",\n \"name\": \"Ella the heart\",\n \"nativeCurrency\": {\n \"name\": \"Ella\",\n \"symbol\": \"ELLA\",\n \"decimals\": 18\n },\n \"networkId\": 7027,\n \"rpc\": [\"https://ella-the-heart.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://7027.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.ella.network\"],\n \"shortName\": \"ELLA\",\n \"slug\": \"ella-the-heart\",\n \"testnet\": false\n};\n\nvar c7070 = {\n \"chain\": \"Planq\",\n \"chainId\": 7070,\n \"explorers\": [{\n \"name\": \"Planq EVM Explorer (Blockscout)\",\n \"url\": \"https://evm.planq.network\",\n \"standard\": \"none\"\n }, {\n \"name\": \"Planq Cosmos Explorer (BigDipper)\",\n \"url\": \"https://explorer.planq.network\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmWEy9xK5BoqxPuVs7T48WM4exJrxzkEFt45iHcxWqUy8D\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://planq.network\",\n \"name\": \"Planq Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Planq\",\n \"symbol\": \"PLQ\",\n \"decimals\": 18\n },\n \"networkId\": 7070,\n \"rpc\": [\"https://planq.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://7070.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://evm-rpc.planq.network\"],\n \"shortName\": \"planq\",\n \"slug\": \"planq\",\n \"testnet\": false\n};\n\nvar c7100 = {\n \"chain\": \"Nume\",\n \"chainId\": 7100,\n \"explorers\": [{\n \"name\": \"numeexplorer\",\n \"url\": \"https://explorer.numecrypto.com\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmNbp1K6vKKFYh7bWeWtjBqKgdH88suDVbztP5CYU3pYNG\",\n \"width\": 1280,\n \"height\": 1280,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmNbp1K6vKKFYh7bWeWtjBqKgdH88suDVbztP5CYU3pYNG\",\n \"width\": 1280,\n \"height\": 1280,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://numecrypto.com\",\n \"name\": \"Nume\",\n \"nativeCurrency\": {\n \"name\": \"Dai Stablecoin\",\n \"symbol\": \"DAI\",\n \"decimals\": 18\n },\n \"networkId\": 7100,\n \"rpc\": [\"https://nume.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://7100.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.numecrypto.com\"],\n \"shortName\": \"nume\",\n \"slug\": \"nume\",\n \"testnet\": false,\n \"title\": \"Nume\"\n};\n\nvar c7118 = {\n \"chain\": \"mainnet\",\n \"chainId\": 7118,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmNR4Y3cUxefV7KGpGxMkjp5ofeJvbaUkR1GavsmTtK248\",\n \"width\": 1000,\n \"height\": 1000,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://hth.world\",\n \"name\": \"Help The Homeless\",\n \"nativeCurrency\": {\n \"name\": \"Help The Homeless Coin\",\n \"symbol\": \"HTH\",\n \"decimals\": 18\n },\n \"networkId\": 7118,\n \"rpc\": [],\n \"shortName\": \"hth\",\n \"slug\": \"help-the-homeless\",\n \"status\": \"incubating\",\n \"testnet\": false\n};\n\nvar c7171 = {\n \"chain\": \"Bitrock\",\n \"chainId\": 7171,\n \"explorers\": [{\n \"name\": \"Bitrock Explorer\",\n \"url\": \"https://explorer.bit-rock.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmfXZCAh3HWS2bJroUStN9TieL4QA9QArMotie3X4pwBfj\",\n \"width\": 72,\n \"height\": 72,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://bit-rock.io\",\n \"name\": \"Bitrock Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"BITROCK\",\n \"symbol\": \"BROCK\",\n \"decimals\": 18\n },\n \"networkId\": 7171,\n \"rpc\": [\"https://bitrock.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://7171.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://connect.bit-rock.io\", \"https://brockrpc.io\"],\n \"shortName\": \"bitrock\",\n \"slug\": \"bitrock\",\n \"testnet\": false\n};\n\nvar c7331 = {\n \"chain\": \"KLY\",\n \"chainId\": 7331,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmaDr9R6dKnZLsogRxojjq4dwXuXcudR8UeTZ8Nq553K4u\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://klyntar.org\",\n \"name\": \"KLYNTAR\",\n \"nativeCurrency\": {\n \"name\": \"KLYNTAR\",\n \"symbol\": \"KLY\",\n \"decimals\": 18\n },\n \"networkId\": 7331,\n \"rpc\": [\"https://klyntar.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://7331.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://evm.klyntar.org/kly_evm_rpc\", \"https://evm.klyntarscan.org/kly_evm_rpc\"],\n \"shortName\": \"kly\",\n \"slug\": \"klyntar\",\n \"status\": \"incubating\",\n \"testnet\": false\n};\n\nvar c7332 = {\n \"chain\": \"EON\",\n \"chainId\": 7332,\n \"explorers\": [{\n \"name\": \"Horizen EON Block Explorer\",\n \"url\": \"https://eon-explorer.horizenlabs.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmSFMBk3rMyu45Sy9KQHjgArFj4HdywANNYrSosLMUdcti\",\n \"width\": 1213,\n \"height\": 1213,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmSFMBk3rMyu45Sy9KQHjgArFj4HdywANNYrSosLMUdcti\",\n \"width\": 1213,\n \"height\": 1213,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://horizen.io/\",\n \"name\": \"Horizen EON Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Zencash\",\n \"symbol\": \"ZEN\",\n \"decimals\": 18\n },\n \"networkId\": 7332,\n \"rpc\": [\"https://horizen-eon.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://7332.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://eon-rpc.horizenlabs.io/ethv1\", \"https://rpc.ankr.com/horizen_eon\"],\n \"shortName\": \"EON\",\n \"slip44\": 121,\n \"slug\": \"horizen-eon\",\n \"testnet\": false\n};\n\nvar c7341 = {\n \"chain\": \"SHYFT\",\n \"chainId\": 7341,\n \"explorers\": [{\n \"name\": \"Shyft BX\",\n \"url\": \"https://bx.shyft.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmUkFZC2ZmoYPTKf7AHdjwRPZoV2h1MCuHaGM4iu8SNFpi\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://shyft.network\",\n \"name\": \"Shyft Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Shyft\",\n \"symbol\": \"SHYFT\",\n \"decimals\": 18\n },\n \"networkId\": 7341,\n \"rpc\": [\"https://shyft.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://7341.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.shyft.network/\"],\n \"shortName\": \"shyft\",\n \"slip44\": 2147490989,\n \"slug\": \"shyft\",\n \"testnet\": false\n};\n\nvar c7484 = {\n \"chain\": \"Raba\",\n \"chainId\": 7484,\n \"explorers\": [{\n \"name\": \"raba\",\n \"url\": \"https://x.raba.app/explorer\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmatP9qMHEYoXqRDyHMTyjYRQa6j6Gk7pmv1QLxQkvpGRP\",\n \"width\": 787,\n \"height\": 750,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://x.raba.app/\",\n \"name\": \"Raba Network Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Raba\",\n \"symbol\": \"RABA\",\n \"decimals\": 18\n },\n \"networkId\": 7484,\n \"rpc\": [\"https://raba-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://7484.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.x.raba.app/\", \"wss://rpc.x.raba.app/ws/\"],\n \"shortName\": \"raba\",\n \"slug\": \"raba-network\",\n \"testnet\": false\n};\n\nvar c7518 = {\n \"chain\": \"MEVerse\",\n \"chainId\": 7518,\n \"explorers\": [{\n \"name\": \"MEVerse Chain Explorer\",\n \"url\": \"https://www.meversescan.io\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmPuQ6gaCfUtNdRuaEDbdhot2m2KCy2ZHCJUvZXJAtdeyJ\",\n \"width\": 800,\n \"height\": 800,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmPuQ6gaCfUtNdRuaEDbdhot2m2KCy2ZHCJUvZXJAtdeyJ\",\n \"width\": 800,\n \"height\": 800,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.meverse.sg\",\n \"name\": \"MEVerse Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"MEVerse\",\n \"symbol\": \"MEV\",\n \"decimals\": 18\n },\n \"networkId\": 7518,\n \"rpc\": [\"https://meverse-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://7518.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.meversemainnet.io\"],\n \"shortName\": \"MEV\",\n \"slug\": \"meverse-chain\",\n \"testnet\": false\n};\n\nvar c7575 = {\n \"chain\": \"ADIL\",\n \"chainId\": 7575,\n \"explorers\": [{\n \"name\": \"ADIL Testnet Explorer\",\n \"url\": \"https://testnet.adilchain-scan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://testnet-faucet.adil-scan.io\"],\n \"icon\": {\n \"url\": \"ipfs://QmeHNYUx6n8CjUFSLWNT17oAtDYrUq6r8buyvGCUBXCJw6\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://adilchain.io\",\n \"name\": \"ADIL Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Testnet ADIL\",\n \"symbol\": \"ADIL\",\n \"decimals\": 18\n },\n \"networkId\": 7575,\n \"rpc\": [\"https://adil-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://7575.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.adilchain-rpc.io\"],\n \"shortName\": \"tadil\",\n \"slip44\": 1,\n \"slug\": \"adil-testnet\",\n \"testnet\": true\n};\n\nvar c7576 = {\n \"chain\": \"ADIL\",\n \"chainId\": 7576,\n \"explorers\": [{\n \"name\": \"ADIL Mainnet Explorer\",\n \"url\": \"https://adilchain-scan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmeHNYUx6n8CjUFSLWNT17oAtDYrUq6r8buyvGCUBXCJw6\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://adilchain.io\",\n \"name\": \"Adil Chain V2 Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"ADIL\",\n \"symbol\": \"ADIL\",\n \"decimals\": 18\n },\n \"networkId\": 7576,\n \"rpc\": [\"https://adil-chain-v2.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://7576.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://adilchain-rpc.io\"],\n \"shortName\": \"adil\",\n \"slug\": \"adil-chain-v2\",\n \"testnet\": false\n};\n\nvar c7668 = {\n \"chain\": \"TRN\",\n \"chainId\": 7668,\n \"explorers\": [{\n \"name\": \"rootnet\",\n \"url\": \"https://explorer.rootnet.live\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.futureverse.com/technology/root\",\n \"name\": \"The Root Network - Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"XRP\",\n \"symbol\": \"XRP\",\n \"decimals\": 6\n },\n \"networkId\": 7668,\n \"rpc\": [\"https://the-root-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://7668.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://root.rootnet.live/archive\", \"wss://root.rootnet.live/archive/ws\"],\n \"shortName\": \"trn-mainnet\",\n \"slug\": \"the-root-network\",\n \"testnet\": false\n};\n\nvar c7672 = {\n \"chain\": \"TRN\",\n \"chainId\": 7672,\n \"explorers\": [{\n \"name\": \"rootnet\",\n \"url\": \"https://explorer.rootnet.cloud\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.futureverse.com/technology/root\",\n \"name\": \"The Root Network - Porcini Testnet\",\n \"nativeCurrency\": {\n \"name\": \"XRP\",\n \"symbol\": \"XRP\",\n \"decimals\": 6\n },\n \"networkId\": 7672,\n \"rpc\": [\"https://the-root-network-porcini-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://7672.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://porcini.rootnet.app/archive\", \"wss://porcini.rootnet.app/archive/ws\"],\n \"shortName\": \"trn-porcini\",\n \"slip44\": 1,\n \"slug\": \"the-root-network-porcini-testnet\",\n \"testnet\": true\n};\n\nvar c7700 = {\n \"chain\": \"Canto\",\n \"chainId\": 7700,\n \"explorers\": [{\n \"name\": \"Canto EVM Explorer (Blockscout)\",\n \"url\": \"https://evm.explorer.canto.io\",\n \"standard\": \"none\"\n }, {\n \"name\": \"Canto Cosmos Explorer\",\n \"url\": \"https://cosmos-explorers.neobase.one\",\n \"standard\": \"none\"\n }, {\n \"name\": \"Canto EVM Explorer (Blockscout)\",\n \"url\": \"https://tuber.build\",\n \"standard\": \"none\"\n }, {\n \"name\": \"dexguru\",\n \"url\": \"https://canto.dex.guru\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmRaASKRSjQ5btoUQ2rNTJNxKtx2a2RoewgA7DMQkLVEne\",\n \"width\": 83,\n \"height\": 82,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [],\n \"infoURL\": \"https://canto.io\",\n \"name\": \"Canto\",\n \"nativeCurrency\": {\n \"name\": \"Canto\",\n \"symbol\": \"CANTO\",\n \"decimals\": 18\n },\n \"networkId\": 7700,\n \"rpc\": [\"https://canto.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://7700.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://canto.slingshot.finance\", \"https://canto.neobase.one\", \"https://mainnode.plexnode.org:8545\", \"https://canto.gravitychain.io/\", \"https://canto.evm.chandrastation.com/\", \"https://jsonrpc.canto.nodestake.top/\", \"https://canto.dexvaults.com/\", \"wss://canto.gravitychain.io:8546\", \"wss://canto.dexvaults.com/ws\"],\n \"shortName\": \"canto\",\n \"slug\": \"canto\",\n \"testnet\": false\n};\n\nvar c7701 = {\n \"chain\": \"Canto\",\n \"chainId\": 7701,\n \"explorers\": [{\n \"name\": \"Canto Testnet EVM Explorer (Blockscout)\",\n \"url\": \"https://testnet.tuber.build\",\n \"standard\": \"none\"\n }, {\n \"name\": \"dexguru\",\n \"url\": \"https://canto-test.dex.guru\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmRaASKRSjQ5btoUQ2rNTJNxKtx2a2RoewgA7DMQkLVEne\",\n \"width\": 83,\n \"height\": 82,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [],\n \"infoURL\": \"https://canto.io\",\n \"name\": \"Canto Tesnet\",\n \"nativeCurrency\": {\n \"name\": \"Testnet Canto\",\n \"symbol\": \"CANTO\",\n \"decimals\": 18\n },\n \"networkId\": 7701,\n \"rpc\": [\"https://canto-tesnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://7701.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-archive.plexnode.wtf\"],\n \"shortName\": \"TestnetCanto\",\n \"slip44\": 1,\n \"slug\": \"canto-tesnet\",\n \"testnet\": true\n};\n\nvar c7771 = {\n \"chain\": \"Bitrock\",\n \"chainId\": 7771,\n \"explorers\": [{\n \"name\": \"Bitrock Testnet Explorer\",\n \"url\": \"https://testnetscan.bit-rock.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.bit-rock.io\"],\n \"icon\": {\n \"url\": \"ipfs://QmfXZCAh3HWS2bJroUStN9TieL4QA9QArMotie3X4pwBfj\",\n \"width\": 72,\n \"height\": 72,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://bit-rock.io\",\n \"name\": \"Bitrock Testnet\",\n \"nativeCurrency\": {\n \"name\": \"BITROCK\",\n \"symbol\": \"BROCK\",\n \"decimals\": 18\n },\n \"networkId\": 7771,\n \"rpc\": [\"https://bitrock-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://7771.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.bit-rock.io\"],\n \"shortName\": \"tbitrock\",\n \"slip44\": 1,\n \"slug\": \"bitrock-testnet\",\n \"testnet\": true\n};\n\nvar c7777 = {\n \"chain\": \"nmactest\",\n \"chainId\": 7777,\n \"explorers\": [{\n \"name\": \"avascan\",\n \"url\": \"https://testnet.avascan.info/blockchain/2mZ9doojfwHzXN3VXDQELKnKyZYxv7833U8Yq5eTfFx3hxJtiy\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://riseofthewarbots.com/\",\n \"name\": \"Rise of the Warbots Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Nano Machines\",\n \"symbol\": \"NMAC\",\n \"decimals\": 18\n },\n \"networkId\": 7777,\n \"rpc\": [\"https://rise-of-the-warbots-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://7777.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet1.riseofthewarbots.com\", \"https://testnet2.riseofthewarbots.com\", \"https://testnet3.riseofthewarbots.com\", \"https://testnet4.riseofthewarbots.com\", \"https://testnet5.riseofthewarbots.com\"],\n \"shortName\": \"RiseOfTheWarbotsTestnet\",\n \"slip44\": 1,\n \"slug\": \"rise-of-the-warbots-testnet\",\n \"testnet\": true\n};\n\nvar c7860 = {\n \"chain\": \"MaalChain Testnet\",\n \"chainId\": 7860,\n \"explorers\": [{\n \"name\": \"maalscan testnet\",\n \"url\": \"https://testnet.maalscan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet-testnet.maalscan.io/\"],\n \"icon\": {\n \"url\": \"ipfs://bafkreiexfqfe2x4impvwhra3xxa5eb25gv25zi3kkaoatdnld7wbxdzf2a\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.maalchain.com/\",\n \"name\": \"MaalChain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"MAAL\",\n \"symbol\": \"MAAL\",\n \"decimals\": 18\n },\n \"networkId\": 7860,\n \"rpc\": [\"https://maalchain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://7860.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://node1.maalscan.io/\", \"https://rpc-bntest.maalscan.io/\"],\n \"shortName\": \"maal-test\",\n \"slip44\": 1,\n \"slug\": \"maalchain-testnet\",\n \"testnet\": true\n};\n\nvar c7878 = {\n \"chain\": \"SCAS\",\n \"chainId\": 7878,\n \"explorers\": [{\n \"name\": \"Hazlor Testnet Explorer\",\n \"url\": \"https://explorer.hazlor.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://faucet.hazlor.com\"],\n \"infoURL\": \"https://hazlor.com\",\n \"name\": \"Hazlor Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Hazlor Test Coin\",\n \"symbol\": \"TSCAS\",\n \"decimals\": 18\n },\n \"networkId\": 7878,\n \"rpc\": [\"https://hazlor-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://7878.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://hatlas.rpc.hazlor.com:8545\", \"wss://hatlas.rpc.hazlor.com:8546\"],\n \"shortName\": \"tscas\",\n \"slip44\": 1,\n \"slug\": \"hazlor-testnet\",\n \"testnet\": true\n};\n\nvar c7895 = {\n \"chain\": \"ATHENA\",\n \"chainId\": 7895,\n \"explorers\": [{\n \"name\": \"ARDENIUM Athena Explorer\",\n \"url\": \"https://testnet.ardscan.com\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmdwifhejRfF8QfyzYrNdFVhfhCR6iuzWMmppK4eL7kttG\",\n \"width\": 120,\n \"height\": 120,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucet-athena.ardescan.com/\"],\n \"icon\": {\n \"url\": \"ipfs://QmdwifhejRfF8QfyzYrNdFVhfhCR6iuzWMmppK4eL7kttG\",\n \"width\": 120,\n \"height\": 120,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://ardenium.org\",\n \"name\": \"ARDENIUM Athena\",\n \"nativeCurrency\": {\n \"name\": \"ARD\",\n \"symbol\": \"tARD\",\n \"decimals\": 18\n },\n \"networkId\": 7895,\n \"rpc\": [\"https://ardenium-athena.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://7895.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-athena.ardescan.com/\"],\n \"shortName\": \"ard\",\n \"slug\": \"ardenium-athena\",\n \"testnet\": true\n};\n\nvar c7979 = {\n \"chain\": \"DOS\",\n \"chainId\": 7979,\n \"explorers\": [{\n \"name\": \"DOScan\",\n \"url\": \"https://doscan.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmV2Nowzo81F6pi2qFcHePA4MwmmdMKBMUzBJUrxcymxx4\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n }\n }, {\n \"name\": \"DOScan\",\n \"url\": \"https://explorer.doschain.com/\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmV2Nowzo81F6pi2qFcHePA4MwmmdMKBMUzBJUrxcymxx4\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmV2Nowzo81F6pi2qFcHePA4MwmmdMKBMUzBJUrxcymxx4\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://doschain.com/\",\n \"name\": \"DOS Chain\",\n \"nativeCurrency\": {\n \"name\": \"DOS\",\n \"symbol\": \"DOS\",\n \"decimals\": 18\n },\n \"networkId\": 7979,\n \"redFlags\": [],\n \"rpc\": [\"https://dos-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://7979.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://main.doschain.com\"],\n \"shortName\": \"dos\",\n \"slug\": \"dos-chain\",\n \"testnet\": false\n};\n\nvar c8000 = {\n \"chain\": \"Teleport\",\n \"chainId\": 8000,\n \"explorers\": [{\n \"name\": \"Teleport EVM Explorer (Blockscout)\",\n \"url\": \"https://evm-explorer.teleport.network\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmdP1sLnsmW9dwnfb1GxAXU1nHDzCvWBQNumvMXpdbCSuz\",\n \"width\": 390,\n \"height\": 390,\n \"format\": \"svg\"\n }\n }, {\n \"name\": \"Teleport Cosmos Explorer (Big Dipper)\",\n \"url\": \"https://explorer.teleport.network\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmdP1sLnsmW9dwnfb1GxAXU1nHDzCvWBQNumvMXpdbCSuz\",\n \"width\": 390,\n \"height\": 390,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmdP1sLnsmW9dwnfb1GxAXU1nHDzCvWBQNumvMXpdbCSuz\",\n \"width\": 390,\n \"height\": 390,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://teleport.network\",\n \"name\": \"Teleport\",\n \"nativeCurrency\": {\n \"name\": \"Tele\",\n \"symbol\": \"TELE\",\n \"decimals\": 18\n },\n \"networkId\": 8000,\n \"rpc\": [\"https://teleport.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8000.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://evm-rpc.teleport.network\"],\n \"shortName\": \"teleport\",\n \"slug\": \"teleport\",\n \"testnet\": false\n};\n\nvar c8001 = {\n \"chain\": \"Teleport\",\n \"chainId\": 8001,\n \"explorers\": [{\n \"name\": \"Teleport EVM Explorer (Blockscout)\",\n \"url\": \"https://evm-explorer.testnet.teleport.network\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmdP1sLnsmW9dwnfb1GxAXU1nHDzCvWBQNumvMXpdbCSuz\",\n \"width\": 390,\n \"height\": 390,\n \"format\": \"svg\"\n }\n }, {\n \"name\": \"Teleport Cosmos Explorer (Big Dipper)\",\n \"url\": \"https://explorer.testnet.teleport.network\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmdP1sLnsmW9dwnfb1GxAXU1nHDzCvWBQNumvMXpdbCSuz\",\n \"width\": 390,\n \"height\": 390,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [\"https://chain-docs.teleport.network/testnet/faucet.html\"],\n \"icon\": {\n \"url\": \"ipfs://QmdP1sLnsmW9dwnfb1GxAXU1nHDzCvWBQNumvMXpdbCSuz\",\n \"width\": 390,\n \"height\": 390,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://teleport.network\",\n \"name\": \"Teleport Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Tele\",\n \"symbol\": \"TELE\",\n \"decimals\": 18\n },\n \"networkId\": 8001,\n \"rpc\": [\"https://teleport-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8001.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://evm-rpc.testnet.teleport.network\"],\n \"shortName\": \"teleport-testnet\",\n \"slip44\": 1,\n \"slug\": \"teleport-testnet\",\n \"testnet\": true\n};\n\nvar c8029 = {\n \"chain\": \"MDGL\",\n \"chainId\": 8029,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://mdgl.io\",\n \"name\": \"MDGL Testnet\",\n \"nativeCurrency\": {\n \"name\": \"MDGL Token\",\n \"symbol\": \"MDGLT\",\n \"decimals\": 18\n },\n \"networkId\": 8029,\n \"rpc\": [\"https://mdgl-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8029.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.mdgl.io\"],\n \"shortName\": \"mdgl\",\n \"slip44\": 1,\n \"slug\": \"mdgl-testnet\",\n \"testnet\": true\n};\n\nvar c8080 = {\n \"chain\": \"Shardeum\",\n \"chainId\": 8080,\n \"explorers\": [{\n \"name\": \"Shardeum Scan\",\n \"url\": \"https://explorer-liberty10.shardeum.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.liberty10.shardeum.org\"],\n \"icon\": {\n \"url\": \"ipfs://Qma1bfuubpepKn7DLDy4NPSKDeT3S4VPCNhu6UmdGrb6YD\",\n \"width\": 609,\n \"height\": 533,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://docs.shardeum.org/\",\n \"name\": \"Shardeum Liberty 1.X\",\n \"nativeCurrency\": {\n \"name\": \"Shardeum SHM\",\n \"symbol\": \"SHM\",\n \"decimals\": 18\n },\n \"networkId\": 8080,\n \"redFlags\": [\"reusedChainId\"],\n \"rpc\": [\"https://shardeum-liberty-1-x.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8080.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://liberty10.shardeum.org/\"],\n \"shortName\": \"Liberty10\",\n \"slug\": \"shardeum-liberty-1-x\",\n \"testnet\": false\n};\n\nvar c8081 = {\n \"chain\": \"Shardeum\",\n \"chainId\": 8081,\n \"explorers\": [{\n \"name\": \"Shardeum Scan\",\n \"url\": \"https://explorer-liberty20.shardeum.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.liberty20.shardeum.org\"],\n \"icon\": {\n \"url\": \"ipfs://Qma1bfuubpepKn7DLDy4NPSKDeT3S4VPCNhu6UmdGrb6YD\",\n \"width\": 609,\n \"height\": 533,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://docs.shardeum.org/\",\n \"name\": \"Shardeum Liberty 2.X\",\n \"nativeCurrency\": {\n \"name\": \"Shardeum SHM\",\n \"symbol\": \"SHM\",\n \"decimals\": 18\n },\n \"networkId\": 8081,\n \"redFlags\": [\"reusedChainId\"],\n \"rpc\": [\"https://shardeum-liberty-2-x.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8081.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://liberty20.shardeum.org/\"],\n \"shortName\": \"Liberty20\",\n \"slug\": \"shardeum-liberty-2-x\",\n \"testnet\": false\n};\n\nvar c8082 = {\n \"chain\": \"Shardeum\",\n \"chainId\": 8082,\n \"explorers\": [{\n \"name\": \"Shardeum Scan\",\n \"url\": \"https://explorer-sphinx.shardeum.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet-sphinx.shardeum.org/\"],\n \"icon\": {\n \"url\": \"ipfs://Qma1bfuubpepKn7DLDy4NPSKDeT3S4VPCNhu6UmdGrb6YD\",\n \"width\": 609,\n \"height\": 533,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://docs.shardeum.org/\",\n \"name\": \"Shardeum Sphinx 1.X\",\n \"nativeCurrency\": {\n \"name\": \"Shardeum SHM\",\n \"symbol\": \"SHM\",\n \"decimals\": 18\n },\n \"networkId\": 8082,\n \"redFlags\": [\"reusedChainId\"],\n \"rpc\": [\"https://shardeum-sphinx-1-x.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8082.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://sphinx.shardeum.org/\"],\n \"shortName\": \"Sphinx10\",\n \"slug\": \"shardeum-sphinx-1-x\",\n \"testnet\": false\n};\n\nvar c8086 = {\n \"chain\": \"BTC\",\n \"chainId\": 8086,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://biteth.org\",\n \"name\": \"Bitcoin Chain\",\n \"nativeCurrency\": {\n \"name\": \"Bitcoin\",\n \"symbol\": \"BTC\",\n \"decimals\": 18\n },\n \"networkId\": 8086,\n \"rpc\": [\"https://bitcoin-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8086.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.biteth.org\"],\n \"shortName\": \"Bitcoin\",\n \"slug\": \"bitcoin-chain\",\n \"testnet\": false\n};\n\nvar c8087 = {\n \"chain\": \"USD\",\n \"chainId\": 8087,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://e-dollar.org\",\n \"name\": \"E-Dollar\",\n \"nativeCurrency\": {\n \"name\": \"E-Dollar\",\n \"symbol\": \"USD\",\n \"decimals\": 18\n },\n \"networkId\": 8087,\n \"rpc\": [\"https://e-dollar.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8087.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.e-dollar.org\"],\n \"shortName\": \"E-Dollar\",\n \"slug\": \"e-dollar\",\n \"testnet\": false\n};\n\nvar c8098 = {\n \"chain\": \"StreamuX\",\n \"chainId\": 8098,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://www.streamux.cloud\",\n \"name\": \"StreamuX Blockchain\",\n \"nativeCurrency\": {\n \"name\": \"StreamuX\",\n \"symbol\": \"SmuX\",\n \"decimals\": 18\n },\n \"networkId\": 8098,\n \"rpc\": [\"https://streamux-blockchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8098.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://u0ma6t6heb:KDNwOsRDGcyM2Oeui1p431Bteb4rvcWkuPgQNHwB4FM@u0xy4x6x82-u0e2mg517m-rpc.us0-aws.kaleido.io/\"],\n \"shortName\": \"StreamuX\",\n \"slug\": \"streamux-blockchain\",\n \"testnet\": false\n};\n\nvar c8131 = {\n \"chain\": \"MEER\",\n \"chainId\": 8131,\n \"explorers\": [{\n \"name\": \"meerscan testnet\",\n \"url\": \"https://qng-testnet.meerscan.io\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmWSbMuCwQzhBB6GRLYqZ87n5cnpzpYCehCAMMQmUXj4mm\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucet.qitmeer.io\"],\n \"icon\": {\n \"url\": \"ipfs://QmWSbMuCwQzhBB6GRLYqZ87n5cnpzpYCehCAMMQmUXj4mm\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://github.com/Qitmeer\",\n \"name\": \"Qitmeer Network Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Qitmeer Testnet\",\n \"symbol\": \"MEER-T\",\n \"decimals\": 18\n },\n \"networkId\": 8131,\n \"rpc\": [\"https://qitmeer-network-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8131.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-qng.rpc.qitmeer.io\", \"https://testnet.meerlabs.com\", \"https://meer.testnet.meerfans.club\"],\n \"shortName\": \"meertest\",\n \"slip44\": 1,\n \"slug\": \"qitmeer-network-testnet\",\n \"testnet\": true\n};\n\nvar c8132 = {\n \"chain\": \"MEER\",\n \"chainId\": 8132,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmWSbMuCwQzhBB6GRLYqZ87n5cnpzpYCehCAMMQmUXj4mm\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://github.com/Qitmeer\",\n \"name\": \"Qitmeer Network Mixnet\",\n \"nativeCurrency\": {\n \"name\": \"Qitmeer Mixnet\",\n \"symbol\": \"MEER-M\",\n \"decimals\": 18\n },\n \"networkId\": 8132,\n \"rpc\": [],\n \"shortName\": \"meermix\",\n \"slug\": \"qitmeer-network-mixnet\",\n \"status\": \"incubating\",\n \"testnet\": false\n};\n\nvar c8133 = {\n \"chain\": \"MEER\",\n \"chainId\": 8133,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmWSbMuCwQzhBB6GRLYqZ87n5cnpzpYCehCAMMQmUXj4mm\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://github.com/Qitmeer\",\n \"name\": \"Qitmeer Network Privnet\",\n \"nativeCurrency\": {\n \"name\": \"Qitmeer Privnet\",\n \"symbol\": \"MEER-P\",\n \"decimals\": 18\n },\n \"networkId\": 8133,\n \"rpc\": [],\n \"shortName\": \"meerpriv\",\n \"slug\": \"qitmeer-network-privnet\",\n \"status\": \"incubating\",\n \"testnet\": false\n};\n\nvar c8134 = {\n \"chain\": \"MEER\",\n \"chainId\": 8134,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmWSbMuCwQzhBB6GRLYqZ87n5cnpzpYCehCAMMQmUXj4mm\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://github.com/Qitmeer\",\n \"name\": \"Amana\",\n \"nativeCurrency\": {\n \"name\": \"Amana Mainnet\",\n \"symbol\": \"MEER\",\n \"decimals\": 18\n },\n \"networkId\": 8134,\n \"rpc\": [],\n \"shortName\": \"amana\",\n \"slug\": \"amana\",\n \"status\": \"incubating\",\n \"testnet\": false\n};\n\nvar c8135 = {\n \"chain\": \"MEER\",\n \"chainId\": 8135,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmWSbMuCwQzhBB6GRLYqZ87n5cnpzpYCehCAMMQmUXj4mm\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://github.com/Qitmeer\",\n \"name\": \"Flana\",\n \"nativeCurrency\": {\n \"name\": \"Flana Mainnet\",\n \"symbol\": \"MEER\",\n \"decimals\": 18\n },\n \"networkId\": 8135,\n \"rpc\": [],\n \"shortName\": \"flana\",\n \"slug\": \"flana\",\n \"status\": \"incubating\",\n \"testnet\": false\n};\n\nvar c8136 = {\n \"chain\": \"MEER\",\n \"chainId\": 8136,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmWSbMuCwQzhBB6GRLYqZ87n5cnpzpYCehCAMMQmUXj4mm\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://github.com/Qitmeer\",\n \"name\": \"Mizana\",\n \"nativeCurrency\": {\n \"name\": \"Mizana Mainnet\",\n \"symbol\": \"MEER\",\n \"decimals\": 18\n },\n \"networkId\": 8136,\n \"rpc\": [],\n \"shortName\": \"mizana\",\n \"slug\": \"mizana\",\n \"status\": \"incubating\",\n \"testnet\": false\n};\n\nvar c8181 = {\n \"chain\": \"tBOC\",\n \"chainId\": 8181,\n \"explorers\": [{\n \"name\": \"Testnet BeOne Chain\",\n \"url\": \"https://testnet.beonescan.com\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmbVLQnaMDu86bPyKgCvTGhFBeYwjr15hQnrCcsp1EkAGL\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://testnet.beonescan.com/faucet\"],\n \"icon\": {\n \"url\": \"ipfs://QmbVLQnaMDu86bPyKgCvTGhFBeYwjr15hQnrCcsp1EkAGL\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://testnet.beonescan.com\",\n \"name\": \"Testnet BeOne Chain\",\n \"nativeCurrency\": {\n \"name\": \"Testnet BeOne Chain\",\n \"symbol\": \"tBOC\",\n \"decimals\": 18\n },\n \"networkId\": 8181,\n \"rpc\": [\"https://testnet-beone-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8181.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://pre-boc1.beonechain.com\"],\n \"shortName\": \"tBOC\",\n \"slip44\": 1,\n \"slug\": \"testnet-beone-chain\",\n \"testnet\": true\n};\n\nvar c8192 = {\n \"chain\": \"TQF\",\n \"chainId\": 8192,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://toruscan.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreidchntjaxmq52cuqqoalpajk5ssk4p77k7n4jgywqmkpldo5qgobm\",\n \"width\": 1200,\n \"height\": 1200,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://docs.toruschain.com\",\n \"name\": \"Torus Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"TQF\",\n \"symbol\": \"TQF\",\n \"decimals\": 18\n },\n \"networkId\": 8192,\n \"rpc\": [\"https://torus.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8192.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.toruschain.com\"],\n \"shortName\": \"tqf\",\n \"slug\": \"torus\",\n \"testnet\": false\n};\n\nvar c8194 = {\n \"chain\": \"TQF\",\n \"chainId\": 8194,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://testnet.toruscan.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreidchntjaxmq52cuqqoalpajk5ssk4p77k7n4jgywqmkpldo5qgobm\",\n \"width\": 1200,\n \"height\": 1200,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://docs.toruschain.com\",\n \"name\": \"Torus Testnet\",\n \"nativeCurrency\": {\n \"name\": \"tTQF\",\n \"symbol\": \"TTQF\",\n \"decimals\": 18\n },\n \"networkId\": 8194,\n \"rpc\": [\"https://torus-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8194.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.testnet.toruschain.com\"],\n \"shortName\": \"ttqf\",\n \"slip44\": 1,\n \"slug\": \"torus-testnet\",\n \"testnet\": true\n};\n\nvar c8217 = {\n \"chain\": \"KLAY\",\n \"chainId\": 8217,\n \"explorers\": [{\n \"name\": \"Klaytnscope\",\n \"url\": \"https://scope.klaytn.com\",\n \"standard\": \"none\"\n }, {\n \"name\": \"klaytnfinder\",\n \"url\": \"https://www.klaytnfinder.io/\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreigtgdivlmfvf7trqjqy4vkz2d26xk3iif6av265v4klu5qavsugm4\",\n \"width\": 1000,\n \"height\": 1000,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.klaytn.com/\",\n \"name\": \"Klaytn Mainnet Cypress\",\n \"nativeCurrency\": {\n \"name\": \"KLAY\",\n \"symbol\": \"KLAY\",\n \"decimals\": 18\n },\n \"networkId\": 8217,\n \"redFlags\": [],\n \"rpc\": [\"https://klaytn-cypress.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8217.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://public-en-cypress.klaytn.net\", \"https://klaytn-mainnet-rpc.allthatnode.com:8551\", \"https://klaytn.blockpi.network/v1/rpc/public\", \"https://public-node-api.klaytnapi.com/v1/cypress\"],\n \"shortName\": \"Cypress\",\n \"slip44\": 8217,\n \"slug\": \"klaytn-cypress\",\n \"testnet\": false\n};\n\nvar c8272 = {\n \"chain\": \"Blockton Blockchain\",\n \"chainId\": 8272,\n \"explorers\": [{\n \"name\": \"Blockton Explorer\",\n \"url\": \"https://blocktonscan.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://faucet.blocktonscan.com/\"],\n \"icon\": {\n \"url\": \"ipfs://bafkreig3hoedafisrgc6iffdo2jcblm6kov35h72gcblc3zkmt7t4ucwhy\",\n \"width\": 800,\n \"height\": 800,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://blocktoncoin.com\",\n \"name\": \"Blockton Blockchain\",\n \"nativeCurrency\": {\n \"name\": \"BLOCKTON\",\n \"symbol\": \"BTON\",\n \"decimals\": 18\n },\n \"networkId\": 8272,\n \"rpc\": [\"https://blockton-blockchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8272.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.blocktonscan.com/\"],\n \"shortName\": \"BTON\",\n \"slug\": \"blockton-blockchain\",\n \"testnet\": false\n};\n\nvar c8285 = {\n \"chain\": \"Kortho\",\n \"chainId\": 8285,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://www.kortho.io/\",\n \"name\": \"KorthoTest\",\n \"nativeCurrency\": {\n \"name\": \"Kortho Test\",\n \"symbol\": \"KTO\",\n \"decimals\": 11\n },\n \"networkId\": 8285,\n \"rpc\": [\"https://korthotest.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8285.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://www.krotho-test.net\"],\n \"shortName\": \"Kortho\",\n \"slip44\": 1,\n \"slug\": \"korthotest\",\n \"testnet\": true\n};\n\nvar c8387 = {\n \"chain\": \"FUCK\",\n \"chainId\": 8387,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafybeibpyckp65pqjvrvqhdt26wqoqk55m6anshbfgyqnaemn6l34nlwya\",\n \"width\": 1024,\n \"height\": 1024,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://wolfery.com\",\n \"name\": \"Dracones Financial Services\",\n \"nativeCurrency\": {\n \"name\": \"Functionally Universal Coin Kind\",\n \"symbol\": \"FUCK\",\n \"decimals\": 18\n },\n \"networkId\": 8387,\n \"rpc\": [\"https://dracones-financial-services.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8387.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.dracones.net/\"],\n \"shortName\": \"fuck\",\n \"slug\": \"dracones-financial-services\",\n \"testnet\": false,\n \"title\": \"The Dracones Mainnet\"\n};\n\nvar c8453 = {\n \"chain\": \"ETH\",\n \"chainId\": 8453,\n \"explorers\": [{\n \"name\": \"basescan\",\n \"url\": \"https://basescan.org\",\n \"standard\": \"none\"\n }, {\n \"name\": \"basescout\",\n \"url\": \"https://base.blockscout.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }, {\n \"name\": \"dexguru\",\n \"url\": \"https://base.dex.guru\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmRaASKRSjQ5btoUQ2rNTJNxKtx2a2RoewgA7DMQkLVEne\",\n \"width\": 83,\n \"height\": 82,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmW5Vn15HeRkScMfPcW12ZdZcC2yUASpu6eCsECRdEmjjj/base-512.png\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://base.org\",\n \"name\": \"Base\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 8453,\n \"redFlags\": [],\n \"rpc\": [\"https://base.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8453.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.base.org/\", \"https://developer-access-mainnet.base.org/\", \"https://base.gateway.tenderly.co\", \"wss://base.gateway.tenderly.co\", \"https://base.publicnode.com\", \"wss://base.publicnode.com\"],\n \"shortName\": \"base\",\n \"slug\": \"base\",\n \"status\": \"active\",\n \"testnet\": false\n};\n\nvar c8654 = {\n \"chain\": \"TOKI\",\n \"chainId\": 8654,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmbCBBH4dFHGr8u1yQspCieQG9hLcPFNYdRx1wnVsX8hUw\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://www.buildwithtoki.com\",\n \"name\": \"Toki Network\",\n \"nativeCurrency\": {\n \"name\": \"Toki\",\n \"symbol\": \"TOKI\",\n \"decimals\": 18\n },\n \"networkId\": 8654,\n \"rpc\": [\"https://toki-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8654.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.buildwithtoki.com/v0/rpc\"],\n \"shortName\": \"toki\",\n \"slug\": \"toki-network\",\n \"testnet\": false\n};\n\nvar c8655 = {\n \"chain\": \"TOKI\",\n \"chainId\": 8655,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmbCBBH4dFHGr8u1yQspCieQG9hLcPFNYdRx1wnVsX8hUw\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://www.buildwithtoki.com\",\n \"name\": \"Toki Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Toki\",\n \"symbol\": \"TOKI\",\n \"decimals\": 18\n },\n \"networkId\": 8655,\n \"rpc\": [\"https://toki-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8655.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.buildwithtoki.com/v0/rpc\"],\n \"shortName\": \"toki-testnet\",\n \"slip44\": 1,\n \"slug\": \"toki-testnet\",\n \"testnet\": true\n};\n\nvar c8668 = {\n \"chain\": \"Hela\",\n \"chainId\": 8668,\n \"explorers\": [{\n \"name\": \"Hela Official Runtime Mainnet Explorer\",\n \"url\": \"https://mainnet-blockexplorer.helachain.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmQbUVcaxFwY8gqMq1Jeup4NEyivo12QYhbLvVRvgXRBFb\",\n \"width\": 719,\n \"height\": 216,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://helalabs.com\",\n \"name\": \"Hela Official Runtime Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Hela HLUSD\",\n \"symbol\": \"HLUSD\",\n \"decimals\": 18\n },\n \"networkId\": 8668,\n \"rpc\": [\"https://hela-official-runtime.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8668.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-rpc.helachain.com\"],\n \"shortName\": \"hela\",\n \"slug\": \"hela-official-runtime\",\n \"testnet\": false\n};\n\nvar c8723 = {\n \"chain\": \"OLO\",\n \"chainId\": 8723,\n \"explorers\": [{\n \"name\": \"OLO Block Explorer\",\n \"url\": \"https://www.olo.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://ibdt.io\",\n \"name\": \"TOOL Global Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"TOOL Global\",\n \"symbol\": \"OLO\",\n \"decimals\": 18\n },\n \"networkId\": 8723,\n \"rpc\": [\"https://tool-global.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8723.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-web3.wolot.io\"],\n \"shortName\": \"olo\",\n \"slip44\": 479,\n \"slug\": \"tool-global\",\n \"testnet\": false\n};\n\nvar c8724 = {\n \"chain\": \"OLO\",\n \"chainId\": 8724,\n \"explorers\": [],\n \"faucets\": [\"https://testnet-explorer.wolot.io\"],\n \"infoURL\": \"https://testnet-explorer.wolot.io\",\n \"name\": \"TOOL Global Testnet\",\n \"nativeCurrency\": {\n \"name\": \"TOOL Global\",\n \"symbol\": \"OLO\",\n \"decimals\": 18\n },\n \"networkId\": 8724,\n \"rpc\": [\"https://tool-global-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8724.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-web3.wolot.io\"],\n \"shortName\": \"tolo\",\n \"slip44\": 1,\n \"slug\": \"tool-global-testnet\",\n \"testnet\": true\n};\n\nvar c8726 = {\n \"chain\": \"Storagechain\",\n \"chainId\": 8726,\n \"explorers\": [{\n \"name\": \"Storscan\",\n \"url\": \"https://explorer-storagechain.invo.zone/?network=StorageChain\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmfN9r1S7FvzkbjqfNMdUikhHmCw5e6UqsTuRD51S8T6Cq\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://storagechain.io/about-us\",\n \"name\": \"Storagechain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Storagechain\",\n \"symbol\": \"STOR\",\n \"decimals\": 18\n },\n \"networkId\": 8726,\n \"rpc\": [\"https://storagechain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8726.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-validator.storagechain.io\"],\n \"shortName\": \"stor\",\n \"slug\": \"storagechain\",\n \"testnet\": false\n};\n\nvar c8727 = {\n \"chain\": \"Storagechain\",\n \"chainId\": 8727,\n \"explorers\": [{\n \"name\": \"Storscan\",\n \"url\": \"https://explorer-storagechain.invo.zone/?network=StorageChain%20Testnet\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmfN9r1S7FvzkbjqfNMdUikhHmCw5e6UqsTuRD51S8T6Cq\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://storagechain.io/about-us\",\n \"name\": \"Storagechain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Storagechain\",\n \"symbol\": \"STOR\",\n \"decimals\": 18\n },\n \"networkId\": 8727,\n \"rpc\": [\"https://storagechain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8727.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-validator.storagechain.io\"],\n \"shortName\": \"tstor\",\n \"slug\": \"storagechain-testnet\",\n \"testnet\": true\n};\n\nvar c8738 = {\n \"chain\": \"ALPH\",\n \"chainId\": 8738,\n \"explorers\": [{\n \"name\": \"alphscan\",\n \"url\": \"https://explorer.alph.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://alph.network\",\n \"name\": \"Alph Network\",\n \"nativeCurrency\": {\n \"name\": \"Alph Network\",\n \"symbol\": \"ALPH\",\n \"decimals\": 18\n },\n \"networkId\": 8738,\n \"rpc\": [\"https://alph-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8738.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.alph.network\", \"wss://rpc.alph.network\"],\n \"shortName\": \"alph\",\n \"slug\": \"alph-network\",\n \"testnet\": false\n};\n\nvar c8768 = {\n \"chain\": \"TMY\",\n \"chainId\": 8768,\n \"explorers\": [],\n \"faucets\": [\"https://faucet.tmychain.org/\"],\n \"icon\": {\n \"url\": \"ipfs://Qmcd19ksUvNMD1XQFSC55jJhDPoF2zUzzV7woteFiugwBH\",\n \"width\": 1024,\n \"height\": 1023,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://tmychain.org/\",\n \"name\": \"TMY Chain\",\n \"nativeCurrency\": {\n \"name\": \"TMY\",\n \"symbol\": \"TMY\",\n \"decimals\": 18\n },\n \"networkId\": 8768,\n \"rpc\": [\"https://tmy-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8768.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://node1.tmyblockchain.org/rpc\"],\n \"shortName\": \"tmy\",\n \"slug\": \"tmy-chain\",\n \"testnet\": false\n};\n\nvar c8848 = {\n \"chain\": \"MARO Blockchain\",\n \"chainId\": 8848,\n \"explorers\": [{\n \"name\": \"MARO Scan\",\n \"url\": \"https://scan.ma.ro/#\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreig47k53aipns6nu3u5fxpysp7mogzk6zyvatgpbam7yut3yvtuefa\",\n \"width\": 160,\n \"height\": 160,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://ma.ro/\",\n \"name\": \"MARO Blockchain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"MARO\",\n \"symbol\": \"MARO\",\n \"decimals\": 18\n },\n \"networkId\": 8848,\n \"rpc\": [\"https://maro-blockchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8848.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-mainnet.ma.ro\"],\n \"shortName\": \"maro\",\n \"slug\": \"maro-blockchain\",\n \"testnet\": false\n};\n\nvar c8880 = {\n \"chain\": \"UNQ\",\n \"chainId\": 8880,\n \"explorers\": [{\n \"name\": \"Unique Scan\",\n \"url\": \"https://uniquescan.io/unique\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmbJ7CGZ2GxWMp7s6jy71UGzRsMe4w3KANKXDAExYWdaFR\",\n \"width\": 48,\n \"height\": 48,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://unique.network\",\n \"name\": \"Unique\",\n \"nativeCurrency\": {\n \"name\": \"Unique\",\n \"symbol\": \"UNQ\",\n \"decimals\": 18\n },\n \"networkId\": 8880,\n \"rpc\": [\"https://unique.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8880.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.unique.network\", \"https://eu-rpc.unique.network\", \"https://asia-rpc.unique.network\", \"https://us-rpc.unique.network\"],\n \"shortName\": \"unq\",\n \"slug\": \"unique\",\n \"testnet\": false\n};\n\nvar c8881 = {\n \"chain\": \"UNQ\",\n \"chainId\": 8881,\n \"explorers\": [{\n \"name\": \"Unique Scan / Quartz\",\n \"url\": \"https://uniquescan.io/quartz\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmaGPdccULQEFcCGxzstnmE8THfac2kSiGwvWRAiaRq4dp\",\n \"width\": 48,\n \"height\": 48,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://unique.network\",\n \"name\": \"Quartz by Unique\",\n \"nativeCurrency\": {\n \"name\": \"Quartz\",\n \"symbol\": \"QTZ\",\n \"decimals\": 18\n },\n \"networkId\": 8881,\n \"rpc\": [\"https://quartz-by-unique.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8881.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-quartz.unique.network\", \"https://quartz.api.onfinality.io/public-ws\", \"https://eu-rpc-quartz.unique.network\", \"https://asia-rpc-quartz.unique.network\", \"https://us-rpc-quartz.unique.network\"],\n \"shortName\": \"qtz\",\n \"slug\": \"quartz-by-unique\",\n \"testnet\": false\n};\n\nvar c8882 = {\n \"chain\": \"UNQ\",\n \"chainId\": 8882,\n \"explorers\": [{\n \"name\": \"Unique Scan / Opal\",\n \"url\": \"https://uniquescan.io/opal\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://t.me/unique2faucet_opal_bot\"],\n \"icon\": {\n \"url\": \"ipfs://QmYJDpmWyjDa3H6BxweFmQXk4fU8b1GU7M9EqYcaUNvXzc\",\n \"width\": 48,\n \"height\": 48,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://unique.network\",\n \"name\": \"Opal testnet by Unique\",\n \"nativeCurrency\": {\n \"name\": \"Opal\",\n \"symbol\": \"UNQ\",\n \"decimals\": 18\n },\n \"networkId\": 8882,\n \"rpc\": [\"https://opal-testnet-by-unique.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8882.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-opal.unique.network\", \"https://us-rpc-opal.unique.network\", \"https://eu-rpc-opal.unique.network\", \"https://asia-rpc-opal.unique.network\"],\n \"shortName\": \"opl\",\n \"slip44\": 1,\n \"slug\": \"opal-testnet-by-unique\",\n \"testnet\": true\n};\n\nvar c8883 = {\n \"chain\": \"UNQ\",\n \"chainId\": 8883,\n \"explorers\": [{\n \"name\": \"Unique Scan / Sapphire\",\n \"url\": \"https://uniquescan.io/sapphire\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://Qmd1PGt4cDRjFbh4ihP5QKEd4XQVwN1MkebYKdF56V74pf\",\n \"width\": 48,\n \"height\": 48,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://unique.network\",\n \"name\": \"Sapphire by Unique\",\n \"nativeCurrency\": {\n \"name\": \"Quartz\",\n \"symbol\": \"QTZ\",\n \"decimals\": 18\n },\n \"networkId\": 8883,\n \"rpc\": [\"https://sapphire-by-unique.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8883.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-sapphire.unique.network\", \"https://us-rpc-sapphire.unique.network\", \"https://eu-rpc-sapphire.unique.network\", \"https://asia-rpc-sapphire.unique.network\"],\n \"shortName\": \"sph\",\n \"slug\": \"sapphire-by-unique\",\n \"testnet\": false\n};\n\nvar c8888 = {\n \"chain\": \"XANAChain\",\n \"chainId\": 8888,\n \"explorers\": [{\n \"name\": \"XANAChain\",\n \"url\": \"https://xanachain.xana.net\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmWGNfwJ9o2vmKD3E6fjrxpbFP8W5q45zmYzHHoXwqqAoj\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://xanachain.xana.net/\",\n \"name\": \"XANAChain\",\n \"nativeCurrency\": {\n \"name\": \"XETA\",\n \"symbol\": \"XETA\",\n \"decimals\": 18\n },\n \"networkId\": 8888,\n \"redFlags\": [\"reusedChainId\"],\n \"rpc\": [\"https://xanachain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8888.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.xana.net/rpc\"],\n \"shortName\": \"XANAChain\",\n \"slug\": \"xanachain\",\n \"testnet\": false\n};\n\nvar c8889 = {\n \"chain\": \"VSC\",\n \"chainId\": 8889,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://vsc-dataseed.vyvo.org\",\n \"name\": \"Vyvo Smart Chain\",\n \"nativeCurrency\": {\n \"name\": \"VSC\",\n \"symbol\": \"VSC\",\n \"decimals\": 18\n },\n \"networkId\": 8889,\n \"rpc\": [\"https://vyvo-smart-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8889.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://vsc-dataseed.vyvo.org:8889\"],\n \"shortName\": \"vsc\",\n \"slug\": \"vyvo-smart-chain\",\n \"testnet\": false\n};\n\nvar c8898 = {\n \"chain\": \"MMT\",\n \"chainId\": 8898,\n \"explorers\": [{\n \"name\": \"mmtscan\",\n \"url\": \"https://mmtscan.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmaF5gi2CbDKsJ2UchNkjBqmWjv8JEDP3vePBmxeUHiaK4\",\n \"width\": 250,\n \"height\": 250,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucet.mmtscan.io/\"],\n \"icon\": {\n \"url\": \"ipfs://QmaF5gi2CbDKsJ2UchNkjBqmWjv8JEDP3vePBmxeUHiaK4\",\n \"width\": 250,\n \"height\": 250,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://mmtchain.io/\",\n \"name\": \"Mammoth Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Mammoth Token\",\n \"symbol\": \"MMT\",\n \"decimals\": 18\n },\n \"networkId\": 8898,\n \"rpc\": [\"https://mammoth.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8898.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://dataseed.mmtscan.io\", \"https://dataseed1.mmtscan.io\", \"https://dataseed2.mmtscan.io\"],\n \"shortName\": \"mmt\",\n \"slug\": \"mammoth\",\n \"testnet\": false,\n \"title\": \"Mammoth Chain\"\n};\n\nvar c8899 = {\n \"chain\": \"JBC\",\n \"chainId\": 8899,\n \"explorers\": [{\n \"name\": \"JIBCHAIN Explorer\",\n \"url\": \"https://exp-l1.jibchain.net\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmfGHivFXtqs1CZvrBbLsRXAukWiLqgUF5erWaLNK55pDV\",\n \"width\": 200,\n \"height\": 200,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://jibchain.net\",\n \"name\": \"JIBCHAIN L1\",\n \"nativeCurrency\": {\n \"name\": \"JIBCOIN\",\n \"symbol\": \"JBC\",\n \"decimals\": 18\n },\n \"networkId\": 8899,\n \"rpc\": [\"https://jibchain-l1.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8899.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-l1.jibchain.net\", \"https://jib-rpc.inan.in.th\"],\n \"shortName\": \"jbc\",\n \"slug\": \"jibchain-l1\",\n \"testnet\": false\n};\n\nvar c8989 = {\n \"chain\": \"GMMT\",\n \"chainId\": 8989,\n \"explorers\": [{\n \"name\": \"gmmtscan\",\n \"url\": \"https://scan.gmmtchain.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmVth4aPeskDTFqRifUugJx6gyEHCmx2PFbMWUtsCSQFkF\",\n \"width\": 468,\n \"height\": 518,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmVth4aPeskDTFqRifUugJx6gyEHCmx2PFbMWUtsCSQFkF\",\n \"width\": 468,\n \"height\": 518,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://gmmtchain.io/\",\n \"name\": \"Giant Mammoth Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Giant Mammoth Coin\",\n \"symbol\": \"GMMT\",\n \"decimals\": 18\n },\n \"networkId\": 8989,\n \"rpc\": [\"https://giant-mammoth.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8989.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-asia.gmmtchain.io\"],\n \"shortName\": \"gmmt\",\n \"slug\": \"giant-mammoth\",\n \"testnet\": false,\n \"title\": \"Giant Mammoth Chain\"\n};\n\nvar c8995 = {\n \"chain\": \"bloxberg\",\n \"chainId\": 8995,\n \"explorers\": [],\n \"faucets\": [\"https://faucet.bloxberg.org/\"],\n \"infoURL\": \"https://bloxberg.org\",\n \"name\": \"bloxberg\",\n \"nativeCurrency\": {\n \"name\": \"BERG\",\n \"symbol\": \"U+25B3\",\n \"decimals\": 18\n },\n \"networkId\": 8995,\n \"rpc\": [\"https://bloxberg.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8995.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://core.bloxberg.org\"],\n \"shortName\": \"berg\",\n \"slug\": \"bloxberg\",\n \"testnet\": false\n};\n\nvar c9000 = {\n \"chain\": \"Evmos\",\n \"chainId\": 9000,\n \"explorers\": [{\n \"name\": \"Evmos Explorer (Escan)\",\n \"url\": \"https://testnet.escan.live\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmeZW6VKUFTbz7PPW8PmDR3ZHa6osYPLBFPnW8T5LSU49c\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucet.evmos.dev\"],\n \"icon\": {\n \"url\": \"ipfs://QmeZW6VKUFTbz7PPW8PmDR3ZHa6osYPLBFPnW8T5LSU49c\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://evmos.org\",\n \"name\": \"Evmos Testnet\",\n \"nativeCurrency\": {\n \"name\": \"test-Evmos\",\n \"symbol\": \"tEVMOS\",\n \"decimals\": 18\n },\n \"networkId\": 9000,\n \"rpc\": [\"https://evmos-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://9000.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://evmos-testnet.lava.build\", \"https://eth.bd.evmos.dev:8545\"],\n \"shortName\": \"evmos-testnet\",\n \"slip44\": 1,\n \"slug\": \"evmos-testnet\",\n \"testnet\": true\n};\n\nvar c9001 = {\n \"chain\": \"Evmos\",\n \"chainId\": 9001,\n \"explorers\": [{\n \"name\": \"Evmos Explorer (Escan)\",\n \"url\": \"https://escan.live\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmeZW6VKUFTbz7PPW8PmDR3ZHa6osYPLBFPnW8T5LSU49c\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmeZW6VKUFTbz7PPW8PmDR3ZHa6osYPLBFPnW8T5LSU49c\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://evmos.org\",\n \"name\": \"Evmos\",\n \"nativeCurrency\": {\n \"name\": \"Evmos\",\n \"symbol\": \"EVMOS\",\n \"decimals\": 18\n },\n \"networkId\": 9001,\n \"rpc\": [\"https://evmos.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://9001.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://evmos.lava.build\", \"wss://evmos.lava.build/websocket\", \"https://evmos-evm.publicnode.com\", \"wss://evmos-evm.publicnode.com\"],\n \"shortName\": \"evmos\",\n \"slug\": \"evmos\",\n \"testnet\": false\n};\n\nvar c9012 = {\n \"chain\": \"BRB\",\n \"chainId\": 9012,\n \"explorers\": [{\n \"name\": \"berylbit-explorer\",\n \"url\": \"https://explorer.berylbit.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://t.me/BerylBit\"],\n \"icon\": {\n \"url\": \"ipfs://QmeDXHkpranzqGN1BmQqZSrFp4vGXf4JfaB5iq8WHHiwDi\",\n \"width\": 162,\n \"height\": 162,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.beryl-bit.com\",\n \"name\": \"BerylBit Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"BerylBit Chain Native Token\",\n \"symbol\": \"BRB\",\n \"decimals\": 18\n },\n \"networkId\": 9012,\n \"rpc\": [\"https://berylbit.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://9012.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.berylbit.io\"],\n \"shortName\": \"brb\",\n \"slug\": \"berylbit\",\n \"testnet\": false\n};\n\nvar c9100 = {\n \"chain\": \"Genesis\",\n \"chainId\": 9100,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://genesis-gn.com\",\n \"name\": \"Genesis Coin\",\n \"nativeCurrency\": {\n \"name\": \"GN Coin\",\n \"symbol\": \"GNC\",\n \"decimals\": 18\n },\n \"networkId\": 9100,\n \"rpc\": [\"https://genesis-coin.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://9100.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://genesis-gn.com\", \"wss://genesis-gn.com\"],\n \"shortName\": \"GENEC\",\n \"slug\": \"genesis-coin\",\n \"testnet\": false\n};\n\nvar c9170 = {\n \"chain\": \"FIRE\",\n \"chainId\": 9170,\n \"explorers\": [],\n \"faucets\": [\"https://faucet.thefirechain.com\"],\n \"icon\": {\n \"url\": \"ipfs://QmRnnw2gtbU9TWJMLJ6tks7SN6HQV5rRugeoyN6csTYHt1\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://thefirechain.com\",\n \"name\": \"Rinia Testnet Old\",\n \"nativeCurrency\": {\n \"name\": \"Firechain\",\n \"symbol\": \"FIRE\",\n \"decimals\": 18\n },\n \"networkId\": 9170,\n \"rpc\": [],\n \"shortName\": \"_old_tfire\",\n \"slip44\": 1,\n \"slug\": \"rinia-testnet-old\",\n \"status\": \"deprecated\",\n \"testnet\": true\n};\n\nvar c9223 = {\n \"chain\": \"COF\",\n \"chainId\": 9223,\n \"explorers\": [{\n \"name\": \"Codefin Net Explorer\",\n \"url\": \"https://explorer.codefin.pro\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmVyAuAnKKNnGEpqeYMLPRfMdysLgPBTZeEXihXbRytGhp\",\n \"width\": 1024,\n \"height\": 1024,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://network.codefin.pro\",\n \"name\": \"Codefin Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Codefin\",\n \"symbol\": \"COF\",\n \"decimals\": 18\n },\n \"networkId\": 9223,\n \"rpc\": [\"https://codefin.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://9223.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://chain-rpc.codefin.pro\"],\n \"shortName\": \"COF\",\n \"slug\": \"codefin\",\n \"testnet\": false\n};\n\nvar c9339 = {\n \"chain\": \"DOGS\",\n \"chainId\": 9339,\n \"explorers\": [{\n \"name\": \"Dogcoin\",\n \"url\": \"https://testnet.dogcoin.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.dogcoin.network\"],\n \"icon\": {\n \"url\": \"ipfs://QmZCadkExKThak3msvszZjo6UnAbUJKE61dAcg4TixuMC3\",\n \"width\": 160,\n \"height\": 171,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://dogcoin.network\",\n \"name\": \"Dogcoin Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Dogcoin\",\n \"symbol\": \"DOGS\",\n \"decimals\": 18\n },\n \"networkId\": 9339,\n \"rpc\": [\"https://dogcoin-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://9339.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-rpc.dogcoin.me\"],\n \"shortName\": \"DOGSt\",\n \"slip44\": 1,\n \"slug\": \"dogcoin-testnet\",\n \"testnet\": true\n};\n\nvar c9527 = {\n \"chain\": \"Rangers\",\n \"chainId\": 9527,\n \"explorers\": [{\n \"name\": \"rangersscan-robin\",\n \"url\": \"https://robin-rangersscan.rangersprotocol.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://robin-faucet.rangersprotocol.com\"],\n \"icon\": {\n \"url\": \"ipfs://QmXR5e5SDABWfQn6XT9uMsVYAo5Bv7vUv4jVs8DFqatZWG\",\n \"width\": 2000,\n \"height\": 2000,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://rangersprotocol.com\",\n \"name\": \"Rangers Protocol Testnet Robin\",\n \"nativeCurrency\": {\n \"name\": \"Rangers Protocol Gas\",\n \"symbol\": \"tRPG\",\n \"decimals\": 18\n },\n \"networkId\": 9527,\n \"rpc\": [\"https://rangers-protocol-testnet-robin.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://9527.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://robin.rangersprotocol.com/api/jsonrpc\"],\n \"shortName\": \"trpg\",\n \"slip44\": 1,\n \"slug\": \"rangers-protocol-testnet-robin\",\n \"testnet\": true\n};\n\nvar c9528 = {\n \"chain\": \"QET\",\n \"chainId\": 9528,\n \"explorers\": [{\n \"name\": \"QEasyWeb3 Explorer\",\n \"url\": \"https://www.qeasyweb3.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"http://faucet.qeasyweb3.com\"],\n \"infoURL\": \"https://www.qeasyweb3.com\",\n \"name\": \"QEasyWeb3 Testnet\",\n \"nativeCurrency\": {\n \"name\": \"QET\",\n \"symbol\": \"QET\",\n \"decimals\": 18\n },\n \"networkId\": 9528,\n \"rpc\": [\"https://qeasyweb3-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://9528.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://qeasyweb3.com\"],\n \"shortName\": \"QETTest\",\n \"slip44\": 1,\n \"slug\": \"qeasyweb3-testnet\",\n \"testnet\": true\n};\n\nvar c9559 = {\n \"chain\": \"Neonlink\",\n \"chainId\": 9559,\n \"explorers\": [{\n \"name\": \"Neon Blockchain Explorer\",\n \"url\": \"https://testnet-scan.neonlink.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmX3hBv8WyvVfYjh1gmgDfJCpJBvKk4TYG9wFX9sC8WAjz\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [\"https://faucet.neonlink.io/\"],\n \"icon\": {\n \"url\": \"ipfs://QmX3hBv8WyvVfYjh1gmgDfJCpJBvKk4TYG9wFX9sC8WAjz\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://neonlink.io\",\n \"name\": \"Neonlink Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Neonlink Native Token\",\n \"symbol\": \"tNEON\",\n \"decimals\": 18\n },\n \"networkId\": 9559,\n \"rpc\": [\"https://neonlink-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://9559.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.neonlink.io\"],\n \"shortName\": \"testneon\",\n \"slip44\": 1,\n \"slug\": \"neonlink-testnet\",\n \"testnet\": true\n};\n\nvar c9700 = {\n \"chain\": \"MainnetDev\",\n \"chainId\": 9700,\n \"explorers\": [{\n \"name\": \"Oort MainnetDev Scan\",\n \"url\": \"https://dev-scan.oortech.com\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://bafkreidrbvklkb52sgmg7cmy42fhf7vqpig7qj7bnrq24ijdwywkzr2tfy\",\n \"width\": 1440,\n \"height\": 1440,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreidrbvklkb52sgmg7cmy42fhf7vqpig7qj7bnrq24ijdwywkzr2tfy\",\n \"width\": 1440,\n \"height\": 1440,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://oortech.com\",\n \"name\": \"Oort MainnetDev\",\n \"nativeCurrency\": {\n \"name\": \"Oort\",\n \"symbol\": \"OORT\",\n \"decimals\": 18\n },\n \"networkId\": 9700,\n \"rpc\": [\"https://oort-dev.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://9700.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://dev-rpc.oortech.com\"],\n \"shortName\": \"MainnetDev\",\n \"slug\": \"oort-dev\",\n \"testnet\": false,\n \"title\": \"Oort MainnetDev\"\n};\n\nvar c9728 = {\n \"chain\": \"Boba BNB Testnet\",\n \"chainId\": 9728,\n \"explorers\": [{\n \"name\": \"Boba BNB Testnet block explorer\",\n \"url\": \"https://blockexplorer.testnet.bnb.boba.network\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://boba.network\",\n \"name\": \"Boba BNB Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Boba Token\",\n \"symbol\": \"BOBA\",\n \"decimals\": 18\n },\n \"networkId\": 9728,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-5\",\n \"bridges\": [{\n \"url\": \"https://gateway.boba.network\"\n }]\n },\n \"rpc\": [\"https://boba-bnb-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://9728.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.bnb.boba.network\", \"wss://wss.testnet.bnb.boba.network\", \"https://replica.testnet.bnb.boba.network\", \"wss://replica-wss.testnet.bnb.boba.network\", \"https://boba-bnb-testnet.gateway.tenderly.co\", \"wss://boba-bnb-testnet.gateway.tenderly.co\"],\n \"shortName\": \"BobaBnbTestnet\",\n \"slip44\": 1,\n \"slug\": \"boba-bnb-testnet\",\n \"testnet\": true\n};\n\nvar c9768 = {\n \"chain\": \"NetZ\",\n \"chainId\": 9768,\n \"explorers\": [{\n \"name\": \"MainnetZ\",\n \"url\": \"https://testnet.mainnetz.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.mainnetz.io\"],\n \"icon\": {\n \"url\": \"ipfs://QmT5gJ5weBiLT3GoYuF5yRTRLdPLCVZ3tXznfqW7M8fxgG\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://testnet.mainnetz.io\",\n \"name\": \"MainnetZ Testnet\",\n \"nativeCurrency\": {\n \"name\": \"MainnetZ\",\n \"symbol\": \"NetZ\",\n \"decimals\": 18\n },\n \"networkId\": 9768,\n \"rpc\": [\"https://z-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://9768.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-rpc.mainnetz.io\"],\n \"shortName\": \"NetZt\",\n \"slip44\": 1,\n \"slug\": \"z-testnet\",\n \"testnet\": true\n};\n\nvar c9779 = {\n \"chain\": \"PepeNetwork\",\n \"chainId\": 9779,\n \"explorers\": [{\n \"name\": \"Pepe Explorer\",\n \"url\": \"https://explorer.pepenetwork.io\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmPX3uipdwd195z1MJff7uj8hpZdSuVvM5z47eiz2o7Gz5\",\n \"width\": 960,\n \"height\": 944,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmPX3uipdwd195z1MJff7uj8hpZdSuVvM5z47eiz2o7Gz5\",\n \"width\": 960,\n \"height\": 944,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://pepenetwork.io\",\n \"name\": \"PepeNetwork Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Pepe\",\n \"symbol\": \"WPEPE\",\n \"decimals\": 18\n },\n \"networkId\": 9779,\n \"rpc\": [\"https://pepenetwork.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://9779.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-mainnet.pepenetwork.io\"],\n \"shortName\": \"pn\",\n \"slug\": \"pepenetwork\",\n \"testnet\": false\n};\n\nvar c9790 = {\n \"chain\": \"Carbon\",\n \"chainId\": 9790,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmQUHqi1gyuTuKmJQHqt9EyhN1FPmmmLNUK8u93nMGrxAy\",\n \"width\": 1600,\n \"height\": 1600,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://carbon.network/\",\n \"name\": \"Carbon EVM\",\n \"nativeCurrency\": {\n \"name\": \"swth\",\n \"symbol\": \"SWTH\",\n \"decimals\": 18\n },\n \"networkId\": 9790,\n \"rpc\": [\"https://carbon-evm.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://9790.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://evm-api.carbon.network/\"],\n \"shortName\": \"carbon\",\n \"slug\": \"carbon-evm\",\n \"testnet\": false\n};\n\nvar c9792 = {\n \"chain\": \"Carbon\",\n \"chainId\": 9792,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmQUHqi1gyuTuKmJQHqt9EyhN1FPmmmLNUK8u93nMGrxAy\",\n \"width\": 1600,\n \"height\": 1600,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://carbon.network/\",\n \"name\": \"Carbon EVM Testnet\",\n \"nativeCurrency\": {\n \"name\": \"swth\",\n \"symbol\": \"SWTH\",\n \"decimals\": 18\n },\n \"networkId\": 9792,\n \"rpc\": [\"https://carbon-evm-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://9792.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://test-evm-api.carbon.network/\"],\n \"shortName\": \"carbon-testnet\",\n \"slip44\": 1,\n \"slug\": \"carbon-evm-testnet\",\n \"testnet\": true\n};\n\nvar c9818 = {\n \"chain\": \"tIMP\",\n \"chainId\": 9818,\n \"explorers\": [{\n \"name\": \"IMPERIUM TESTNET Explorer\",\n \"url\": \"https://network.impscan.com\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmcNGLzKyc7Gu2dgpBFF6t3KJwFuKC79D56DW8GTc5DWRw\",\n \"width\": 200,\n \"height\": 200,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucet.imperiumchain.com/\"],\n \"icon\": {\n \"url\": \"ipfs://QmcNGLzKyc7Gu2dgpBFF6t3KJwFuKC79D56DW8GTc5DWRw\",\n \"width\": 200,\n \"height\": 200,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://imperiumchain.com\",\n \"name\": \"IMPERIUM TESTNET\",\n \"nativeCurrency\": {\n \"name\": \"tIMP\",\n \"symbol\": \"tIMP\",\n \"decimals\": 18\n },\n \"networkId\": 9818,\n \"rpc\": [\"https://imperium-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://9818.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://data-aws-testnet.imperiumchain.com\", \"https://data-aws2-testnet.imperiumchain.com\"],\n \"shortName\": \"tIMP\",\n \"slip44\": 1,\n \"slug\": \"imperium-testnet\",\n \"testnet\": true\n};\n\nvar c9819 = {\n \"chain\": \"IMP\",\n \"chainId\": 9819,\n \"explorers\": [{\n \"name\": \"IMPERIUM Explorer\",\n \"url\": \"https://impscan.com\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmcNGLzKyc7Gu2dgpBFF6t3KJwFuKC79D56DW8GTc5DWRw\",\n \"width\": 200,\n \"height\": 200,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucet.imperiumchain.com/\"],\n \"icon\": {\n \"url\": \"ipfs://QmcNGLzKyc7Gu2dgpBFF6t3KJwFuKC79D56DW8GTc5DWRw\",\n \"width\": 200,\n \"height\": 200,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://imperiumchain.com\",\n \"name\": \"IMPERIUM MAINNET\",\n \"nativeCurrency\": {\n \"name\": \"IMP\",\n \"symbol\": \"IMP\",\n \"decimals\": 18\n },\n \"networkId\": 9819,\n \"rpc\": [\"https://imperium.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://9819.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://data-aws-mainnet.imperiumchain.com\", \"https://data-aws2-mainnet.imperiumchain.com\"],\n \"shortName\": \"IMP\",\n \"slug\": \"imperium\",\n \"testnet\": false\n};\n\nvar c9888 = {\n \"chain\": \"Dogelayer\",\n \"chainId\": 9888,\n \"explorers\": [{\n \"name\": \"Dogelayer mainnet explorer\",\n \"url\": \"https://dl-explorer.dogelayer.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://dogelayer.org\",\n \"name\": \"Dogelayer Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Dogecoin\",\n \"symbol\": \"DOGE\",\n \"decimals\": 18\n },\n \"networkId\": 9888,\n \"rpc\": [\"https://dogelayer.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://9888.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://dl-rpc.dogelayer.org\"],\n \"shortName\": \"Dogelayer\",\n \"slug\": \"dogelayer\",\n \"testnet\": false\n};\n\nvar c9977 = {\n \"chain\": \"tMIND\",\n \"chainId\": 9977,\n \"explorers\": [{\n \"name\": \"Mind Chain explorer\",\n \"url\": \"https://testnet.mindscan.info\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.mindchain.info/\"],\n \"icon\": {\n \"url\": \"ipfs://QmX2b4CzNyrNgy4ERBEteSS9MsuYNVYeq2sSMMiogGjbFP\",\n \"width\": 732,\n \"height\": 732,\n \"format\": \"jpg\"\n },\n \"infoURL\": \"https://mindchain.info\",\n \"name\": \"Mind Smart Chain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"MIND Coin\",\n \"symbol\": \"tMIND\",\n \"decimals\": 18\n },\n \"networkId\": 9977,\n \"rpc\": [\"https://mind-smart-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://9977.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-msc.mindchain.info/\", \"wss://testnet-msc.mindchain.info/ws\"],\n \"shortName\": \"tMIND\",\n \"slip44\": 1,\n \"slug\": \"mind-smart-chain-testnet\",\n \"testnet\": true\n};\n\nvar c9980 = {\n \"chain\": \"Combo\",\n \"chainId\": 9980,\n \"explorers\": [{\n \"name\": \"combotrace explorer\",\n \"url\": \"https://combotrace.nodereal.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmRR4v6h6z21BpgS9xY3ExLB4Gkmm3i3dJWQx27oTGifq8\",\n \"width\": 800,\n \"height\": 693,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://combonetwork.io\",\n \"name\": \"Combo Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"BNB Chain Native Token\",\n \"symbol\": \"BNB\",\n \"decimals\": 18\n },\n \"networkId\": 9980,\n \"rpc\": [\"https://combo.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://9980.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.combonetwork.io\"],\n \"shortName\": \"combo-mainnet\",\n \"slug\": \"combo\",\n \"testnet\": false\n};\n\nvar c9990 = {\n \"chain\": \"Agung\",\n \"chainId\": 9990,\n \"explorers\": [{\n \"name\": \"Polkadot.js\",\n \"url\": \"https://polkadot.js.org/apps/?rpc=wss://wsspc1-qa.agung.peaq.network#/explorer\",\n \"standard\": \"none\"\n }, {\n \"name\": \"Subscan\",\n \"url\": \"https://agung.subscan.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreibkqdof3ztkdhgukwvkacwgrjb27e23hgz5c6mmudzu5hipyvgisa\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.peaq.network\",\n \"name\": \"Agung Network\",\n \"nativeCurrency\": {\n \"name\": \"Agung\",\n \"symbol\": \"AGNG\",\n \"decimals\": 18\n },\n \"networkId\": 9990,\n \"rpc\": [\"https://agung-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://9990.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpcpc1-qa.agung.peaq.network\"],\n \"shortName\": \"AGNG\",\n \"slug\": \"agung-network\",\n \"testnet\": false\n};\n\nvar c9996 = {\n \"chain\": \"MIND\",\n \"chainId\": 9996,\n \"explorers\": [{\n \"name\": \"Mind Chain explorer\",\n \"url\": \"https://mainnet.mindscan.info\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmX2b4CzNyrNgy4ERBEteSS9MsuYNVYeq2sSMMiogGjbFP\",\n \"width\": 732,\n \"height\": 732,\n \"format\": \"jpg\"\n },\n \"infoURL\": \"https://mindchain.info\",\n \"name\": \"Mind Smart Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"MIND Coin\",\n \"symbol\": \"MIND\",\n \"decimals\": 18\n },\n \"networkId\": 9996,\n \"rpc\": [\"https://mind-smart-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://9996.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-msc.mindchain.info/\", \"https://seednode.mindchain.info\", \"https://archive.mindchain.info/\", \"wss://archive.mindchain.info/ws\", \"wss://seednode.mindchain.info/ws\"],\n \"shortName\": \"MIND\",\n \"slug\": \"mind-smart-chain\",\n \"testnet\": false\n};\n\nvar c9997 = {\n \"chain\": \"ETH\",\n \"chainId\": 9997,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://testnet-rollup-explorer.altlayer.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmcEfZJU7NMn9ycTAcEooQgGNfa2nYBToSUZHdFCFadcjb\",\n \"width\": 1080,\n \"height\": 1025,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://altlayer.io\",\n \"name\": \"AltLayer Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 9997,\n \"rpc\": [\"https://altlayer-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://9997.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-rollup-api.altlayer.io\"],\n \"shortName\": \"alt-testnet\",\n \"slip44\": 1,\n \"slug\": \"altlayer-testnet\",\n \"testnet\": true\n};\n\nvar c9999 = {\n \"chain\": \"myOwn\",\n \"chainId\": 9999,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://docs.bccloud.net/\",\n \"name\": \"myOwn Testnet\",\n \"nativeCurrency\": {\n \"name\": \"MYN\",\n \"symbol\": \"MYN\",\n \"decimals\": 18\n },\n \"networkId\": 9999,\n \"rpc\": [\"https://myown-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://9999.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://geth.dev.bccloud.net\"],\n \"shortName\": \"myn\",\n \"slip44\": 1,\n \"slug\": \"myown-testnet\",\n \"testnet\": true\n};\n\nvar c10000 = {\n \"chain\": \"smartBCH\",\n \"chainId\": 10000,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://smartbch.org/\",\n \"name\": \"Smart Bitcoin Cash\",\n \"nativeCurrency\": {\n \"name\": \"Bitcoin Cash\",\n \"symbol\": \"BCH\",\n \"decimals\": 18\n },\n \"networkId\": 10000,\n \"rpc\": [\"https://smart-bitcoin-cash.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://10000.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://smartbch.greyh.at\", \"https://rpc-mainnet.smartbch.org\", \"https://smartbch.fountainhead.cash/mainnet\", \"https://smartbch.devops.cash/mainnet\"],\n \"shortName\": \"smartbch\",\n \"slug\": \"smart-bitcoin-cash\",\n \"testnet\": false\n};\n\nvar c10001 = {\n \"chain\": \"smartBCHTest\",\n \"chainId\": 10001,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"http://smartbch.org/\",\n \"name\": \"Smart Bitcoin Cash Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Bitcoin Cash Test Token\",\n \"symbol\": \"BCHT\",\n \"decimals\": 18\n },\n \"networkId\": 10001,\n \"rpc\": [\"https://smart-bitcoin-cash-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://10001.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-testnet.smartbch.org\", \"https://smartbch.devops.cash/testnet\"],\n \"shortName\": \"smartbchtest\",\n \"slip44\": 1,\n \"slug\": \"smart-bitcoin-cash-testnet\",\n \"testnet\": true\n};\n\nvar c10024 = {\n \"chain\": \"GonChain\",\n \"chainId\": 10024,\n \"explorers\": [{\n \"name\": \"Gon Explorer\",\n \"url\": \"https://gonscan.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmPtiJGaApbW3ATZhPW3pKJpw3iGVrRGsZLWhrDKF9ZK18\",\n \"width\": 1024,\n \"height\": 1024,\n \"format\": \"png\"\n },\n \"name\": \"Gon Chain\",\n \"nativeCurrency\": {\n \"name\": \"Gon Token\",\n \"symbol\": \"GT\",\n \"decimals\": 18\n },\n \"networkId\": 10024,\n \"rpc\": [\"https://gon-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://10024.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://node1.testnet.gaiaopen.network\", \"https://node1.mainnet.gon.network\", \"https://node2.mainnet.gon.network\", \"https://node3.mainnet.gon.network\", \"https://node4.mainnet.gon.network\"],\n \"shortName\": \"gon\",\n \"slug\": \"gon-chain\",\n \"testnet\": true\n};\n\nvar c10081 = {\n \"chain\": \"JOCT\",\n \"chainId\": 10081,\n \"explorers\": [{\n \"name\": \"Testnet Block Explorer\",\n \"url\": \"https://explorer.testnet.japanopenchain.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.japanopenchain.org/\",\n \"name\": \"Japan Open Chain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Japan Open Chain Testnet Token\",\n \"symbol\": \"JOCT\",\n \"decimals\": 18\n },\n \"networkId\": 10081,\n \"rpc\": [\"https://japan-open-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://10081.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-1.testnet.japanopenchain.org:8545\", \"https://rpc-2.testnet.japanopenchain.org:8545\"],\n \"shortName\": \"joct\",\n \"slip44\": 1,\n \"slug\": \"japan-open-chain-testnet\",\n \"testnet\": true\n};\n\nvar c10086 = {\n \"chain\": \"ETH\",\n \"chainId\": 10086,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://sjis.me\",\n \"name\": \"SJATSH\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 10086,\n \"rpc\": [\"https://sjatsh.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://10086.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"http://geth.free.idcfengye.com\"],\n \"shortName\": \"SJ\",\n \"slug\": \"sjatsh\",\n \"testnet\": false\n};\n\nvar c10101 = {\n \"chain\": \"GEN\",\n \"chainId\": 10101,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://www.xixoio.com/\",\n \"name\": \"Blockchain Genesis Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"GEN\",\n \"symbol\": \"GEN\",\n \"decimals\": 18\n },\n \"networkId\": 10101,\n \"rpc\": [\"https://blockchain-genesis.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://10101.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://eu.mainnet.xixoio.com\", \"https://us.mainnet.xixoio.com\", \"https://asia.mainnet.xixoio.com\"],\n \"shortName\": \"GEN\",\n \"slug\": \"blockchain-genesis\",\n \"testnet\": false\n};\n\nvar c10200 = {\n \"chain\": \"GNO\",\n \"chainId\": 10200,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://gnosis-chiado.blockscout.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://gnosisfaucet.com\"],\n \"icon\": {\n \"url\": \"ipfs://bafybeidk4swpgdyqmpz6shd5onvpaujvwiwthrhypufnwr6xh3dausz2dm\",\n \"width\": 1800,\n \"height\": 1800,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://docs.gnosischain.com\",\n \"name\": \"Gnosis Chiado Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Chiado xDAI\",\n \"symbol\": \"XDAI\",\n \"decimals\": 18\n },\n \"networkId\": 10200,\n \"rpc\": [\"https://gnosis-chiado-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://10200.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.chiadochain.net\", \"https://rpc.chiado.gnosis.gateway.fm\", \"wss://rpc.chiadochain.net/wss\", \"https://gnosis-chiado.publicnode.com\", \"wss://gnosis-chiado.publicnode.com\"],\n \"shortName\": \"chi\",\n \"slip44\": 1,\n \"slug\": \"gnosis-chiado-testnet\",\n \"testnet\": true\n};\n\nvar c10201 = {\n \"chain\": \"MaxxChain\",\n \"chainId\": 10201,\n \"explorers\": [{\n \"name\": \"MaxxChain Block Explorer\",\n \"url\": \"https://explorer.maxxchain.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.maxxchain.org\"],\n \"icon\": {\n \"url\": \"ipfs://QmRhQG9TZrXDdbQeTzBmjg3pqgwaD5TKVZj8k4kaz8AoZx\",\n \"width\": 1021,\n \"height\": 1021,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.maxxchain.org/\",\n \"name\": \"MaxxChain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Power\",\n \"symbol\": \"PWR\",\n \"decimals\": 18\n },\n \"networkId\": 10201,\n \"rpc\": [\"https://maxxchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://10201.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.maxxchain.org\", \"https://rpc1.maxxchain.org\", \"https://rpc2.maxxchain.org\"],\n \"shortName\": \"PWR\",\n \"slug\": \"maxxchain\",\n \"testnet\": false\n};\n\nvar c10242 = {\n \"chain\": \"AA\",\n \"chainId\": 10242,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://explorer.arthera.net\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmYQp3e52KjkT4bYdAvB6ACEEpXs2D8DozsDitaADRY2Ak\",\n \"width\": 1024,\n \"height\": 998,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://docs.arthera.net/build/developing-sc/using-hardhat\",\n \"name\": \"Arthera Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Arthera\",\n \"symbol\": \"AA\",\n \"decimals\": 18\n },\n \"networkId\": 10242,\n \"rpc\": [\"https://arthera.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://10242.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.arthera.net\"],\n \"shortName\": \"aa\",\n \"slip44\": 10242,\n \"slug\": \"arthera\",\n \"testnet\": false\n};\n\nvar c10243 = {\n \"chain\": \"AA\",\n \"chainId\": 10243,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://explorer-test.arthera.net\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucet.arthera.net\"],\n \"icon\": {\n \"url\": \"ipfs://QmYQp3e52KjkT4bYdAvB6ACEEpXs2D8DozsDitaADRY2Ak\",\n \"width\": 1024,\n \"height\": 998,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://docs.arthera.net\",\n \"name\": \"Arthera Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Arthera\",\n \"symbol\": \"AA\",\n \"decimals\": 18\n },\n \"networkId\": 10243,\n \"rpc\": [\"https://arthera-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://10243.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-test.arthera.net\"],\n \"shortName\": \"aat\",\n \"slip44\": 1,\n \"slug\": \"arthera-testnet\",\n \"testnet\": true\n};\n\nvar c10248 = {\n \"chain\": \"0XTade Chain\",\n \"chainId\": 10248,\n \"explorers\": [{\n \"name\": \"0xtrade Scan\",\n \"url\": \"https://www.0xtscan.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.0xtrade.finance/\",\n \"name\": \"0XTade\",\n \"nativeCurrency\": {\n \"name\": \"0XT\",\n \"symbol\": \"0XT\",\n \"decimals\": 18\n },\n \"networkId\": 10248,\n \"rpc\": [\"https://0xtade.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://10248.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://node.0xtchain.com\"],\n \"shortName\": \"0xt\",\n \"slug\": \"0xtade\",\n \"testnet\": false\n};\n\nvar c10395 = {\n \"chain\": \"Worldland\",\n \"chainId\": 10395,\n \"explorers\": [{\n \"name\": \"Worldland Explorer\",\n \"url\": \"https://testscan.worldland.foundation\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmYZNTfK3byhgLsTjXP8vPubVHRz2CWsBrTJxZrQmKq6JZ\",\n \"width\": 3509,\n \"height\": 2482,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://worldland.foundation\",\n \"name\": \"Worldland Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Worldland\",\n \"symbol\": \"WLC\",\n \"decimals\": 18\n },\n \"networkId\": 10395,\n \"rpc\": [\"https://worldland-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://10395.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://gwangju.worldland.foundation\"],\n \"shortName\": \"TWLC\",\n \"slip44\": 1,\n \"slug\": \"worldland-testnet\",\n \"testnet\": true\n};\n\nvar c10507 = {\n \"chain\": \"NUM\",\n \"chainId\": 10507,\n \"explorers\": [{\n \"name\": \"ethernal\",\n \"url\": \"https://mainnet.num.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreie3ba6ofosjqqiya6empkyw6u5xdrtcfzi2evvyt4u6utzeiezyhi\",\n \"width\": 1500,\n \"height\": 1500,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://numbersprotocol.io\",\n \"name\": \"Numbers Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"NUM Token\",\n \"symbol\": \"NUM\",\n \"decimals\": 18\n },\n \"networkId\": 10507,\n \"rpc\": [\"https://numbers.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://10507.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnetrpc.num.network\"],\n \"shortName\": \"Jade\",\n \"slug\": \"numbers\",\n \"testnet\": false\n};\n\nvar c10508 = {\n \"chain\": \"NUM\",\n \"chainId\": 10508,\n \"explorers\": [{\n \"name\": \"ethernal\",\n \"url\": \"https://testnet.num.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.avax.network/?subnet=num\", \"https://faucet.num.network\"],\n \"icon\": {\n \"url\": \"ipfs://bafkreie3ba6ofosjqqiya6empkyw6u5xdrtcfzi2evvyt4u6utzeiezyhi\",\n \"width\": 1500,\n \"height\": 1500,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://numbersprotocol.io\",\n \"name\": \"Numbers Testnet\",\n \"nativeCurrency\": {\n \"name\": \"NUM Token\",\n \"symbol\": \"NUM\",\n \"decimals\": 18\n },\n \"networkId\": 10508,\n \"rpc\": [\"https://numbers-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://10508.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnetrpc.num.network\"],\n \"shortName\": \"Snow\",\n \"slip44\": 1,\n \"slug\": \"numbers-testnet\",\n \"testnet\": true\n};\n\nvar c10671 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 10671,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"QI M 12131\",\n \"nativeCurrency\": {\n \"name\": \"QI M 12131 Token\",\n \"symbol\": \"XVL\",\n \"decimals\": 18\n },\n \"networkId\": 10671,\n \"redFlags\": [],\n \"rpc\": [\"https://qi-m-12131.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://10671.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avacloud-test.io/c3c8cc74-5101-4380-937f-4f534cad0128\"],\n \"shortName\": \"QI M 12131\",\n \"slug\": \"qi-m-12131\",\n \"testnet\": true\n};\n\nvar c10823 = {\n \"chain\": \"CCP\",\n \"chainId\": 10823,\n \"explorers\": [{\n \"name\": \"CCP Explorer\",\n \"url\": \"https://cryptocoinpay.info\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmPw1ixYYeXvTiRWoCt2jWe4YMd3B5o7TzL18SBEHXvhXX\",\n \"width\": 200,\n \"height\": 200,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.cryptocoinpay.co\",\n \"name\": \"CryptoCoinPay\",\n \"nativeCurrency\": {\n \"name\": \"CryptoCoinPay\",\n \"symbol\": \"CCP\",\n \"decimals\": 18\n },\n \"networkId\": 10823,\n \"rpc\": [\"https://cryptocoinpay.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://10823.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"http://node106.cryptocoinpay.info:8545\", \"ws://node106.cryptocoinpay.info:8546\"],\n \"shortName\": \"CCP\",\n \"slug\": \"cryptocoinpay\",\n \"testnet\": false\n};\n\nvar c10946 = {\n \"chain\": \"QDC\",\n \"chainId\": 10946,\n \"explorers\": [{\n \"name\": \"explorer\",\n \"url\": \"https://explorer.quadrans.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmZFiYHnE4TrezPz8wSap9nMxG6m98w4fv7ataj2TfLNck\",\n \"width\": 1024,\n \"height\": 1024,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmZFiYHnE4TrezPz8wSap9nMxG6m98w4fv7ataj2TfLNck\",\n \"width\": 1024,\n \"height\": 1024,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://quadrans.io\",\n \"name\": \"Quadrans Blockchain\",\n \"nativeCurrency\": {\n \"name\": \"Quadrans Coin\",\n \"symbol\": \"QDC\",\n \"decimals\": 18\n },\n \"networkId\": 10946,\n \"rpc\": [\"https://quadrans-blockchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://10946.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.quadrans.io\", \"https://rpcna.quadrans.io\", \"https://rpceu.quadrans.io\"],\n \"shortName\": \"quadrans\",\n \"slug\": \"quadrans-blockchain\",\n \"testnet\": false\n};\n\nvar c10947 = {\n \"chain\": \"tQDC\",\n \"chainId\": 10947,\n \"explorers\": [{\n \"name\": \"explorer\",\n \"url\": \"https://explorer.testnet.quadrans.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmZFiYHnE4TrezPz8wSap9nMxG6m98w4fv7ataj2TfLNck\",\n \"width\": 1024,\n \"height\": 1024,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucetpage.quadrans.io\"],\n \"icon\": {\n \"url\": \"ipfs://QmZFiYHnE4TrezPz8wSap9nMxG6m98w4fv7ataj2TfLNck\",\n \"width\": 1024,\n \"height\": 1024,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://quadrans.io\",\n \"name\": \"Quadrans Blockchain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Quadrans Testnet Coin\",\n \"symbol\": \"tQDC\",\n \"decimals\": 18\n },\n \"networkId\": 10947,\n \"rpc\": [\"https://quadrans-blockchain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://10947.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpctest.quadrans.io\", \"https://rpctest2.quadrans.io\"],\n \"shortName\": \"quadranstestnet\",\n \"slip44\": 1,\n \"slug\": \"quadrans-blockchain-testnet\",\n \"testnet\": true\n};\n\nvar c11110 = {\n \"chain\": \"Astra\",\n \"chainId\": 11110,\n \"explorers\": [{\n \"name\": \"Astra EVM Explorer (Blockscout)\",\n \"url\": \"https://explorer.astranaut.io\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmaBtaukPNNUNjdJSUAwuFFQMLbZX1Pc3fvXKTKQcds7Kf\",\n \"width\": 104,\n \"height\": 80,\n \"format\": \"png\"\n }\n }, {\n \"name\": \"Astra PingPub Explorer\",\n \"url\": \"https://ping.astranaut.io/astra\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmaBtaukPNNUNjdJSUAwuFFQMLbZX1Pc3fvXKTKQcds7Kf\",\n \"width\": 104,\n \"height\": 80,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmaBtaukPNNUNjdJSUAwuFFQMLbZX1Pc3fvXKTKQcds7Kf\",\n \"width\": 104,\n \"height\": 80,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://astranaut.io\",\n \"name\": \"Astra\",\n \"nativeCurrency\": {\n \"name\": \"Astra\",\n \"symbol\": \"ASA\",\n \"decimals\": 18\n },\n \"networkId\": 11110,\n \"rpc\": [\"https://astra.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://11110.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.astranaut.io\", \"https://rpc1.astranaut.io\"],\n \"shortName\": \"astra\",\n \"slug\": \"astra\",\n \"testnet\": false\n};\n\nvar c11111 = {\n \"chain\": \"WAGMI\",\n \"chainId\": 11111,\n \"explorers\": [{\n \"name\": \"Avalanche Subnet Explorer\",\n \"url\": \"https://subnets-test.avax.network/wagmi\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.avax.network/?subnet=wagmi\"],\n \"icon\": {\n \"url\": \"ipfs://QmNoyUXxnak8B3xgFxErkVfyVEPJUMHBzq7qJcYzkUrPR4\",\n \"width\": 1920,\n \"height\": 1920,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://subnets-test.avax.network/wagmi/details\",\n \"name\": \"WAGMI\",\n \"nativeCurrency\": {\n \"name\": \"WAGMI\",\n \"symbol\": \"WGM\",\n \"decimals\": 18\n },\n \"networkId\": 11111,\n \"rpc\": [\"https://wagmi.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://11111.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/wagmi/wagmi-chain-testnet/rpc\"],\n \"shortName\": \"WAGMI\",\n \"slug\": \"wagmi\",\n \"testnet\": true\n};\n\nvar c11115 = {\n \"chain\": \"Astra\",\n \"chainId\": 11115,\n \"explorers\": [{\n \"name\": \"Astra EVM Explorer\",\n \"url\": \"https://explorer.astranaut.dev\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmaBtaukPNNUNjdJSUAwuFFQMLbZX1Pc3fvXKTKQcds7Kf\",\n \"width\": 104,\n \"height\": 80,\n \"format\": \"png\"\n }\n }, {\n \"name\": \"Astra PingPub Explorer\",\n \"url\": \"https://ping.astranaut.dev/astra\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmaBtaukPNNUNjdJSUAwuFFQMLbZX1Pc3fvXKTKQcds7Kf\",\n \"width\": 104,\n \"height\": 80,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucet.astranaut.dev\"],\n \"icon\": {\n \"url\": \"ipfs://QmaBtaukPNNUNjdJSUAwuFFQMLbZX1Pc3fvXKTKQcds7Kf\",\n \"width\": 104,\n \"height\": 80,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://astranaut.io\",\n \"name\": \"Astra Testnet\",\n \"nativeCurrency\": {\n \"name\": \"test-Astra\",\n \"symbol\": \"tASA\",\n \"decimals\": 18\n },\n \"networkId\": 11115,\n \"rpc\": [\"https://astra-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://11115.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.astranaut.dev\"],\n \"shortName\": \"astra-testnet\",\n \"slip44\": 1,\n \"slug\": \"astra-testnet\",\n \"testnet\": true\n};\n\nvar c11119 = {\n \"chain\": \"HBIT\",\n \"chainId\": 11119,\n \"explorers\": [{\n \"name\": \"hashbitscan\",\n \"url\": \"https://explorer.hashbit.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://hashbit.org\",\n \"name\": \"HashBit Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"HashBit Native Token\",\n \"symbol\": \"HBIT\",\n \"decimals\": 18\n },\n \"networkId\": 11119,\n \"rpc\": [\"https://hashbit.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://11119.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-rpc.hashbit.org\", \"https://rpc.hashbit.org\"],\n \"shortName\": \"hbit\",\n \"slug\": \"hashbit\",\n \"testnet\": false\n};\n\nvar c11235 = {\n \"chain\": \"Haqq\",\n \"chainId\": 11235,\n \"explorers\": [{\n \"name\": \"Mainnet HAQQ Explorer\",\n \"url\": \"https://explorer.haqq.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://islamiccoin.net\",\n \"name\": \"Haqq Network\",\n \"nativeCurrency\": {\n \"name\": \"Islamic Coin\",\n \"symbol\": \"ISLM\",\n \"decimals\": 18\n },\n \"networkId\": 11235,\n \"rpc\": [\"https://haqq-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://11235.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.eth.haqq.network\", \"https://haqq-evm.publicnode.com\", \"wss://haqq-evm.publicnode.com\"],\n \"shortName\": \"ISLM\",\n \"slug\": \"haqq-network\",\n \"testnet\": false\n};\n\nvar c11437 = {\n \"chain\": \"SHYFTT\",\n \"chainId\": 11437,\n \"explorers\": [{\n \"name\": \"Shyft Testnet BX\",\n \"url\": \"https://bx.testnet.shyft.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmUkFZC2ZmoYPTKf7AHdjwRPZoV2h1MCuHaGM4iu8SNFpi\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://shyft.network\",\n \"name\": \"Shyft Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Shyft Test Token\",\n \"symbol\": \"SHYFTT\",\n \"decimals\": 18\n },\n \"networkId\": 11437,\n \"rpc\": [],\n \"shortName\": \"shyftt\",\n \"slip44\": 1,\n \"slug\": \"shyft-testnet\",\n \"testnet\": true\n};\n\nvar c11612 = {\n \"chain\": \"SRDX\",\n \"chainId\": 11612,\n \"explorers\": [{\n \"name\": \"Sardis\",\n \"url\": \"https://testnet.sardisnetwork.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.sardisnetwork.com\"],\n \"icon\": {\n \"url\": \"ipfs://QmdR9QJjQEh1mBnf2WbJfehverxiP5RDPWMtEECbDP2rc3\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://mysardis.com\",\n \"name\": \"Sardis Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Sardis\",\n \"symbol\": \"SRDX\",\n \"decimals\": 18\n },\n \"networkId\": 11612,\n \"rpc\": [\"https://sardis-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://11612.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-rpc.sardisnetwork.com\"],\n \"shortName\": \"SRDXt\",\n \"slip44\": 1,\n \"slug\": \"sardis-testnet\",\n \"testnet\": true\n};\n\nvar c11888 = {\n \"chain\": \"SanRChain\",\n \"chainId\": 11888,\n \"explorers\": [{\n \"name\": \"SanR Chain Explorer\",\n \"url\": \"https://sanrchain-explorer.santiment.net\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmPLMg5mYD8XRknvYbDkD2x7FXxYan7MPTeUWZC2CihwDM\",\n \"width\": 2048,\n \"height\": 2048,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://sanr.app\",\n \"name\": \"SanR Chain\",\n \"nativeCurrency\": {\n \"name\": \"nSAN\",\n \"symbol\": \"nSAN\",\n \"decimals\": 18\n },\n \"networkId\": 11888,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-1\",\n \"bridges\": [{\n \"url\": \"https://sanr.app\"\n }]\n },\n \"rpc\": [\"https://sanr-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://11888.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://sanrchain-node.santiment.net\"],\n \"shortName\": \"SAN\",\n \"slug\": \"sanr-chain\",\n \"testnet\": false\n};\n\nvar c11891 = {\n \"chain\": \"Arianee\",\n \"chainId\": 11891,\n \"explorers\": [{\n \"name\": \"Polygon Supernet Arianee Explorer\",\n \"url\": \"https://polygonsupernet.explorer.arianee.net\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://arianee.org\",\n \"name\": \"Polygon Supernet Arianee\",\n \"nativeCurrency\": {\n \"name\": \"Arianee\",\n \"symbol\": \"ARIA20\",\n \"decimals\": 18\n },\n \"networkId\": 11891,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-1\"\n },\n \"rpc\": [\"https://polygon-supernet-arianee.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://11891.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.polygonsupernet.public.arianee.net\"],\n \"shortName\": \"Arianee\",\n \"slug\": \"polygon-supernet-arianee\",\n \"testnet\": false\n};\n\nvar c12009 = {\n \"chain\": \"SATS\",\n \"chainId\": 12009,\n \"explorers\": [{\n \"name\": \"SatoshiChain Explorer\",\n \"url\": \"https://satoshiscan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmRegpZQBW4o1imYNsW3d27MQjygBSU23Gf6JKje26nvs7\",\n \"width\": 1251,\n \"height\": 1251,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://satoshichain.net\",\n \"name\": \"SatoshiChain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"SatoshiChain Coin\",\n \"symbol\": \"SATS\",\n \"decimals\": 18\n },\n \"networkId\": 12009,\n \"rpc\": [\"https://satoshichain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://12009.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-rpc.satoshichain.io\"],\n \"shortName\": \"sats\",\n \"slug\": \"satoshichain\",\n \"testnet\": false\n};\n\nvar c12035 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 12035,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \".svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"QI M 11272\",\n \"nativeCurrency\": {\n \"name\": \"QI M 11272 Token\",\n \"symbol\": \"JZW\",\n \"decimals\": 18\n },\n \"networkId\": 12035,\n \"redFlags\": [],\n \"rpc\": [\"https://qi-m-11272.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://12035.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avacloud-dev.io/b19c9e32-f359-451f-ad15-7ec784625c04\"],\n \"shortName\": \"QI M 11272\",\n \"slug\": \"qi-m-11272\",\n \"testnet\": true\n};\n\nvar c12051 = {\n \"chain\": \"ZERO\",\n \"chainId\": 12051,\n \"explorers\": [{\n \"name\": \"zeroscan\",\n \"url\": \"https://betaenv.singularity.gold:18002\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://nft.singularity.gold\"],\n \"infoURL\": \"https://www.singularity.gold\",\n \"name\": \"Singularity ZERO Testnet\",\n \"nativeCurrency\": {\n \"name\": \"ZERO\",\n \"symbol\": \"tZERO\",\n \"decimals\": 18\n },\n \"networkId\": 12051,\n \"rpc\": [\"https://singularity-zero-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://12051.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://betaenv.singularity.gold:18545\"],\n \"shortName\": \"tZERO\",\n \"slip44\": 1,\n \"slug\": \"singularity-zero-testnet\",\n \"testnet\": true\n};\n\nvar c12052 = {\n \"chain\": \"ZERO\",\n \"chainId\": 12052,\n \"explorers\": [{\n \"name\": \"zeroscan\",\n \"url\": \"https://zeroscan.singularity.gold\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://zeroscan.singularity.gold\"],\n \"infoURL\": \"https://www.singularity.gold\",\n \"name\": \"Singularity ZERO Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"ZERO\",\n \"symbol\": \"ZERO\",\n \"decimals\": 18\n },\n \"networkId\": 12052,\n \"rpc\": [\"https://singularity-zero.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://12052.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://zerorpc.singularity.gold\"],\n \"shortName\": \"ZERO\",\n \"slip44\": 621,\n \"slug\": \"singularity-zero\",\n \"testnet\": false\n};\n\nvar c12123 = {\n \"chain\": \"BRC\",\n \"chainId\": 12123,\n \"explorers\": [{\n \"name\": \"BRC Chain Explorer\",\n \"url\": \"https://scan.brcchain.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.brcchain.io\"],\n \"icon\": {\n \"url\": \"ipfs://QmX8qGX7xoZqYUpHxA85uZwQX2fgbTHvmddE1NfseDyBED\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://bridge.brcchain.io\",\n \"name\": \"BRC Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"BRC Chain mainnet native token\",\n \"symbol\": \"BRC\",\n \"decimals\": 18\n },\n \"networkId\": 12123,\n \"rpc\": [\"https://brc-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://12123.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.brcchain.io\"],\n \"shortName\": \"BRC\",\n \"slug\": \"brc-chain\",\n \"testnet\": false\n};\n\nvar c12306 = {\n \"chain\": \"FIBO\",\n \"chainId\": 12306,\n \"explorers\": [{\n \"name\": \"fiboscan\",\n \"url\": \"https://scan.fibochain.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://test.fibochain.org/faucets\"],\n \"icon\": {\n \"url\": \"ipfs://bafkreidiedaz3jugxmh2ylzlc4nympbd5iwab33adhwkcnblyop6vvj25y\",\n \"width\": 1494,\n \"height\": 1494,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://fibochain.org\",\n \"name\": \"Fibonacci Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"FIBONACCI UTILITY TOKEN\",\n \"symbol\": \"FIBO\",\n \"decimals\": 18\n },\n \"networkId\": 1230,\n \"rpc\": [\"https://fibonacci.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://12306.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://node1.fibo-api.asia\", \"https://node2.fibo-api.asia\", \"https://node3.fibo-api.asia\", \"https://node4.fibo-api.asia\", \"https://node5.fibo-api.asia\", \"https://node6.fibo-api.asia\", \"https://node7.fibo-api.asia\", \"https://node1.fibo-rpc.asia\", \"https://node2.fibo-rpc.asia\", \"https://node3.fibo-rpc.asia\", \"https://node4.fibo-rpc.asia\", \"https://node5.fibo-rpc.asia\", \"https://node6.fibo-rpc.asia\", \"https://node7.fibo-rpc.asia\"],\n \"shortName\": \"fibo\",\n \"slug\": \"fibonacci\",\n \"testnet\": true\n};\n\nvar c12321 = {\n \"chain\": \"BLG\",\n \"chainId\": 12321,\n \"explorers\": [],\n \"faucets\": [\"https://faucet.blgchain.com\"],\n \"icon\": {\n \"url\": \"ipfs://QmUN5j2cre8GHKv52JE8ag88aAnRmuHMGFxePPvKMogisC\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://blgchain.com\",\n \"name\": \"BLG Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Blg\",\n \"symbol\": \"BLG\",\n \"decimals\": 18\n },\n \"networkId\": 12321,\n \"rpc\": [\"https://blg-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://12321.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.blgchain.com\"],\n \"shortName\": \"blgchain\",\n \"slip44\": 1,\n \"slug\": \"blg-testnet\",\n \"testnet\": true\n};\n\nvar c12345 = {\n \"chain\": \"STEP\",\n \"chainId\": 12345,\n \"explorers\": [{\n \"name\": \"StepScan\",\n \"url\": \"https://testnet.stepscan.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmVp9jyb3UFW71867yVtymmiRw7dPY4BTnsp3hEjr9tn8L\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucet.step.network\"],\n \"icon\": {\n \"url\": \"ipfs://QmVp9jyb3UFW71867yVtymmiRw7dPY4BTnsp3hEjr9tn8L\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://step.network\",\n \"name\": \"Step Testnet\",\n \"nativeCurrency\": {\n \"name\": \"FITFI\",\n \"symbol\": \"FITFI\",\n \"decimals\": 18\n },\n \"networkId\": 12345,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-43113\"\n },\n \"rpc\": [\"https://step-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://12345.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.testnet.step.network\"],\n \"shortName\": \"steptest\",\n \"slip44\": 1,\n \"slug\": \"step-testnet\",\n \"testnet\": true,\n \"title\": \"Step Test Network\"\n};\n\nvar c12611 = {\n \"chain\": \"ETH\",\n \"chainId\": 12611,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmRySLe3su59dE5x5JPm2b1GeZfz6DR9qUzcbp3rt4SD3A\",\n \"width\": 300,\n \"height\": 300,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://astar.network\",\n \"name\": \"Astar zkEVM\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 12611,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-1\",\n \"bridges\": []\n },\n \"rpc\": [],\n \"shortName\": \"astrzk\",\n \"slug\": \"astar-zkevm\",\n \"status\": \"incubating\",\n \"testnet\": false,\n \"title\": \"Astar zkEVM Mainnet\"\n};\n\nvar c12715 = {\n \"chain\": \"Rikeza\",\n \"chainId\": 12715,\n \"explorers\": [{\n \"name\": \"Rikeza Blockchain explorer\",\n \"url\": \"https://testnet.rikscan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmfJ1Qxpzi6CSLeFeWY1Bwe435CpT5za5WfrLUE7vNzZfy\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://rikeza.io\",\n \"name\": \"Rikeza Network Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Rikeza\",\n \"symbol\": \"RIK\",\n \"decimals\": 18\n },\n \"networkId\": 12715,\n \"rpc\": [\"https://rikeza-network-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://12715.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-rpc.rikscan.com\"],\n \"shortName\": \"tRIK\",\n \"slip44\": 1,\n \"slug\": \"rikeza-network-testnet\",\n \"testnet\": true,\n \"title\": \"Rikeza Network Testnet\"\n};\n\nvar c12890 = {\n \"chain\": \"tQNET\",\n \"chainId\": 12890,\n \"explorers\": [{\n \"name\": \"Quantum Scan Testnet\",\n \"url\": \"https://testnet.quantumscan.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreibwywok67uewqbtqdzgr7nlk3lvvg7hxmbgwtn7kdwxe34useucvm\",\n \"width\": 1024,\n \"height\": 1024,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://quantumnetwork.gg\",\n \"name\": \"Quantum Chain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Quantum Chain\",\n \"symbol\": \"tQNET\",\n \"decimals\": 18\n },\n \"networkId\": 12890,\n \"rpc\": [\"https://quantum-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://12890.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-rpc.quantumscan.org\"],\n \"shortName\": \"tqnet\",\n \"slip44\": 1,\n \"slug\": \"quantum-chain-testnet\",\n \"testnet\": true\n};\n\nvar c13000 = {\n \"chain\": \"SPS\",\n \"chainId\": 13000,\n \"explorers\": [{\n \"name\": \"SPS Explorer\",\n \"url\": \"http://spsscan.ssquad.games\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://ssquad.games/\",\n \"name\": \"SPS\",\n \"nativeCurrency\": {\n \"name\": \"ECG\",\n \"symbol\": \"ECG\",\n \"decimals\": 18\n },\n \"networkId\": 13000,\n \"rpc\": [\"https://sps.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://13000.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.ssquad.games\"],\n \"shortName\": \"SPS\",\n \"slug\": \"sps\",\n \"testnet\": false\n};\n\nvar c13308 = {\n \"chain\": \"CREDIT\",\n \"chainId\": 13308,\n \"explorers\": [{\n \"name\": \"Creditscan\",\n \"url\": \"https://scan.creditsmartchain.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://bafkreifbso3gd4wu5wxl27xyurxctmuae2jyuy37guqtzx23nga6ba4ag4\",\n \"width\": 1000,\n \"height\": 1628,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://bafkreifbso3gd4wu5wxl27xyurxctmuae2jyuy37guqtzx23nga6ba4ag4\",\n \"width\": 1000,\n \"height\": 1628,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://creditsmartchain.com\",\n \"name\": \"Credit Smart Chain\",\n \"nativeCurrency\": {\n \"name\": \"Credit\",\n \"symbol\": \"CREDIT\",\n \"decimals\": 18\n },\n \"networkId\": 13308,\n \"rpc\": [\"https://credit-smart-chain-credit.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://13308.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.creditsmartchain.com\"],\n \"shortName\": \"Credit\",\n \"slug\": \"credit-smart-chain-credit\",\n \"testnet\": false\n};\n\nvar c13337 = {\n \"chain\": \"BEAM\",\n \"chainId\": 13337,\n \"explorers\": [{\n \"name\": \"Beam Explorer\",\n \"url\": \"https://subnets-test.avax.network/beam\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.avax.network/?subnet=beam\", \"https://faucet.onbeam.com\"],\n \"features\": [{\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmQJ21NWyGGDraicVEzS1Uqq1yXahM9NCuNZgnfYvtspdt\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.onbeam.com\",\n \"name\": \"Beam Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Beam\",\n \"symbol\": \"BEAM\",\n \"decimals\": 18\n },\n \"networkId\": 13337,\n \"rpc\": [\"https://beam-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://13337.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/beam/testnet/rpc\", \"wss://subnets.avax.network/beam/testnet/ws\"],\n \"shortName\": \"beam-testnet\",\n \"slip44\": 1,\n \"slug\": \"beam-testnet\",\n \"testnet\": true\n};\n\nvar c13371 = {\n \"chain\": \"Immutable zkEVM\",\n \"chainId\": 13371,\n \"explorers\": [{\n \"name\": \"Immutable explorer\",\n \"url\": \"https://explorer.immutable.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmXFUYFW4e6wifbU9LKVq7owM14bnE6ZbbYq3bn1jBP3Mw\",\n \"width\": 1168,\n \"height\": 1168,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://docs.immutable.com/docs/zkEVM/guides/faucet\"],\n \"icon\": {\n \"url\": \"ipfs://QmXFUYFW4e6wifbU9LKVq7owM14bnE6ZbbYq3bn1jBP3Mw\",\n \"width\": 1168,\n \"height\": 1168,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.immutable.com\",\n \"name\": \"Immutable zkEVM\",\n \"nativeCurrency\": {\n \"name\": \"IMX\",\n \"symbol\": \"IMX\",\n \"decimals\": 18\n },\n \"networkId\": 13371,\n \"rpc\": [\"https://immutable-zkevm.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://13371.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.immutable.com\"],\n \"shortName\": \"imx\",\n \"slug\": \"immutable-zkevm\",\n \"testnet\": false\n};\n\nvar c13381 = {\n \"chain\": \"Phoenix\",\n \"chainId\": 13381,\n \"explorers\": [{\n \"name\": \"phoenixplorer\",\n \"url\": \"https://phoenixplorer.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmYiLMeKDXMSNuQmtxNdxm53xR588pcRXMf7zuiZLjQnc6\",\n \"width\": 1501,\n \"height\": 1501,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://cryptophoenix.org/phoenix\",\n \"name\": \"Phoenix Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Phoenix\",\n \"symbol\": \"PHX\",\n \"decimals\": 18\n },\n \"networkId\": 13381,\n \"rpc\": [\"https://phoenix.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://13381.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.phoenixplorer.com/\"],\n \"shortName\": \"Phoenix\",\n \"slug\": \"phoenix\",\n \"testnet\": false\n};\n\nvar c13473 = {\n \"chain\": \"Immutable zkEVM\",\n \"chainId\": 13473,\n \"explorers\": [{\n \"name\": \"Immutable Testnet explorer\",\n \"url\": \"https://explorer.testnet.immutable.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmXFUYFW4e6wifbU9LKVq7owM14bnE6ZbbYq3bn1jBP3Mw\",\n \"width\": 1168,\n \"height\": 1168,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://docs.immutable.com/docs/zkEVM/guides/faucet\"],\n \"icon\": {\n \"url\": \"ipfs://QmXFUYFW4e6wifbU9LKVq7owM14bnE6ZbbYq3bn1jBP3Mw\",\n \"width\": 1168,\n \"height\": 1168,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.immutable.com\",\n \"name\": \"Immutable zkEVM Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Test IMX\",\n \"symbol\": \"tIMX\",\n \"decimals\": 18\n },\n \"networkId\": 13473,\n \"rpc\": [\"https://immutable-zkevm-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://13473.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.testnet.immutable.com\"],\n \"shortName\": \"imx-testnet\",\n \"slip44\": 1,\n \"slug\": \"immutable-zkevm-testnet\",\n \"testnet\": true\n};\n\nvar c13812 = {\n \"chain\": \"SUS\",\n \"chainId\": 13812,\n \"explorers\": [{\n \"name\": \"Susono\",\n \"url\": \"http://explorer.opn.network\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"name\": \"Susono\",\n \"nativeCurrency\": {\n \"name\": \"Susono\",\n \"symbol\": \"OPN\",\n \"decimals\": 18\n },\n \"networkId\": 13812,\n \"rpc\": [\"https://susono.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://13812.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://gateway.opn.network/node/ext/bc/2VsZe5DstWw2bfgdx3YbjKcMsJnNDjni95sZorBEdk9L9Qr9Fr/rpc\"],\n \"shortName\": \"sus\",\n \"slug\": \"susono\",\n \"testnet\": false\n};\n\nvar c14000 = {\n \"chain\": \"SPS-Testnet\",\n \"chainId\": 14000,\n \"explorers\": [{\n \"name\": \"SPS Test Explorer\",\n \"url\": \"https://explorer.3sps.net\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://ssquad.games/\",\n \"name\": \"SPS Testnet\",\n \"nativeCurrency\": {\n \"name\": \"ECG\",\n \"symbol\": \"ECG\",\n \"decimals\": 18\n },\n \"networkId\": 14000,\n \"rpc\": [\"https://sps-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://14000.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://www.3sps.net\"],\n \"shortName\": \"SPS-Test\",\n \"slip44\": 1,\n \"slug\": \"sps-testnet\",\n \"testnet\": true\n};\n\nvar c14853 = {\n \"chain\": \"Humanode Testnet 5\",\n \"chainId\": 14853,\n \"explorers\": [],\n \"faucets\": [\"https://t.me/HumanodeTestnet5FaucetBot\"],\n \"icon\": {\n \"url\": \"ipfs://bafybeihuskzfwqogwvutaxil6sztmvpiavzbrzwjwpn6w2i4j3jysbybra\",\n \"width\": 1043,\n \"height\": 1043,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://humanode.io\",\n \"name\": \"Humanode Testnet 5 Israfel\",\n \"nativeCurrency\": {\n \"name\": \"eHMND\",\n \"symbol\": \"eHMND\",\n \"decimals\": 18\n },\n \"networkId\": 14853,\n \"rpc\": [\"https://humanode-testnet-5-israfel.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://14853.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://explorer-rpc-http.testnet5.stages.humanode.io\"],\n \"shortName\": \"hmnd-t5\",\n \"slip44\": 1,\n \"slug\": \"humanode-testnet-5-israfel\",\n \"testnet\": true\n};\n\nvar c15003 = {\n \"chain\": \"Immutable zkEVM\",\n \"chainId\": 15003,\n \"explorers\": [{\n \"name\": \"Immutable Devnet explorer\",\n \"url\": \"https://explorer.dev.immutable.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmXFUYFW4e6wifbU9LKVq7owM14bnE6ZbbYq3bn1jBP3Mw\",\n \"width\": 1168,\n \"height\": 1168,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://docs.immutable.com/docs/zkEVM/guides/faucet\"],\n \"icon\": {\n \"url\": \"ipfs://QmXFUYFW4e6wifbU9LKVq7owM14bnE6ZbbYq3bn1jBP3Mw\",\n \"width\": 1168,\n \"height\": 1168,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.immutable.com\",\n \"name\": \"Immutable zkEVM Devnet\",\n \"nativeCurrency\": {\n \"name\": \"Dev IMX\",\n \"symbol\": \"dIMX\",\n \"decimals\": 18\n },\n \"networkId\": 15003,\n \"rpc\": [\"https://immutable-zkevm-devnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://15003.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.dev.immutable.com\"],\n \"shortName\": \"imx-devnet\",\n \"slug\": \"immutable-zkevm-devnet\",\n \"testnet\": false\n};\n\nvar c15535 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 15535,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \".svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"QI M 11271\",\n \"nativeCurrency\": {\n \"name\": \"QI M 11271 Token\",\n \"symbol\": \"JZW\",\n \"decimals\": 18\n },\n \"networkId\": 15535,\n \"redFlags\": [],\n \"rpc\": [\"https://qi-m-11271.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://15535.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avacloud-dev.io/a47e1c06-fa75-4536-a900-1574d198e197\"],\n \"shortName\": \"QI M 11271\",\n \"slug\": \"qi-m-11271\",\n \"testnet\": true\n};\n\nvar c15551 = {\n \"chain\": \"LoopNetwork\",\n \"chainId\": 15551,\n \"explorers\": [{\n \"name\": \"loopscan\",\n \"url\": \"http://explorer.mainnetloop.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"http://theloopnetwork.org/\",\n \"name\": \"LoopNetwork Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"LOOP\",\n \"symbol\": \"LOOP\",\n \"decimals\": 18\n },\n \"networkId\": 15551,\n \"rpc\": [\"https://loopnetwork.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://15551.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.mainnetloop.com\"],\n \"shortName\": \"loop\",\n \"slug\": \"loopnetwork\",\n \"testnet\": false\n};\n\nvar c15555 = {\n \"chain\": \"Trust EVM Testnet\",\n \"chainId\": 15555,\n \"explorers\": [{\n \"name\": \"Trust EVM Explorer\",\n \"url\": \"https://trustscan.one\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.testnet-dev.trust.one/\"],\n \"infoURL\": \"https://www.trust.one/\",\n \"name\": \"Trust EVM Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Trust EVM\",\n \"symbol\": \"EVM\",\n \"decimals\": 18\n },\n \"networkId\": 15555,\n \"rpc\": [\"https://trust-evm-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://15555.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.testnet-dev.trust.one\"],\n \"shortName\": \"TrustTestnet\",\n \"slip44\": 1,\n \"slug\": \"trust-evm-testnet\",\n \"testnet\": true\n};\n\nvar c15557 = {\n \"chain\": \"EOS\",\n \"chainId\": 15557,\n \"explorers\": [{\n \"name\": \"EOS EVM Explorer\",\n \"url\": \"https://explorer.testnet.evm.eosnetwork.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmXkK5D5GWizvY1FmL6pV8cYLAbhehKETubktCgh6qDJZb\",\n \"width\": 500,\n \"height\": 750,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://eosnetwork.com/eos-evm\",\n \"name\": \"EOS EVM Network Testnet\",\n \"nativeCurrency\": {\n \"name\": \"EOS\",\n \"symbol\": \"EOS\",\n \"decimals\": 18\n },\n \"networkId\": 15557,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-1\",\n \"bridges\": [{\n \"url\": \"https://bridge.testnet.evm.eosnetwork.com\"\n }]\n },\n \"rpc\": [\"https://eos-evm-network-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://15557.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.testnet.evm.eosnetwork.com\"],\n \"shortName\": \"eos-testnet\",\n \"slip44\": 1,\n \"slug\": \"eos-evm-network-testnet\",\n \"testnet\": true\n};\n\nvar c16000 = {\n \"chain\": \"MTT\",\n \"chainId\": 16000,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://metadot.network\",\n \"name\": \"MetaDot Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"MetaDot Token\",\n \"symbol\": \"MTT\",\n \"decimals\": 18\n },\n \"networkId\": 16000,\n \"rpc\": [\"https://metadot.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://16000.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.metadot.network\"],\n \"shortName\": \"mtt\",\n \"slug\": \"metadot\",\n \"testnet\": false\n};\n\nvar c16001 = {\n \"chain\": \"MTTTest\",\n \"chainId\": 16001,\n \"explorers\": [],\n \"faucets\": [\"https://faucet.metadot.network/\"],\n \"infoURL\": \"https://metadot.network\",\n \"name\": \"MetaDot Testnet\",\n \"nativeCurrency\": {\n \"name\": \"MetaDot Token TestNet\",\n \"symbol\": \"MTTest\",\n \"decimals\": 18\n },\n \"networkId\": 16001,\n \"rpc\": [\"https://metadot-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://16001.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.metadot.network\"],\n \"shortName\": \"mtttest\",\n \"slip44\": 1,\n \"slug\": \"metadot-testnet\",\n \"testnet\": true\n};\n\nvar c16507 = {\n \"chain\": \"Genesys\",\n \"chainId\": 16507,\n \"explorers\": [{\n \"name\": \"GchainExplorer\",\n \"url\": \"https://gchainexplorer.genesys.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreie6nai3yhykcdlsyshn5lbcbyba5y7zwsqg6owcfek2urhoucr6rm\",\n \"width\": 800,\n \"height\": 800,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.genesys.network/\",\n \"name\": \"Genesys Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Genesys\",\n \"symbol\": \"GSYS\",\n \"decimals\": 18\n },\n \"networkId\": 16507,\n \"rpc\": [\"https://genesys.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://16507.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.genesys.network\"],\n \"shortName\": \"Genesys\",\n \"slug\": \"genesys\",\n \"testnet\": false\n};\n\nvar c16688 = {\n \"chain\": \"IRIShub\",\n \"chainId\": 16688,\n \"explorers\": [{\n \"name\": \"IRISHub Testnet Cosmos Explorer (IOBScan)\",\n \"url\": \"https://nyancat.iobscan.io\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmRaSx7AX1VDgcqjwLgSDP4WZmKBHPdHhbjkcEEXPA2Fnc\",\n \"width\": 1062,\n \"height\": 822,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmRaSx7AX1VDgcqjwLgSDP4WZmKBHPdHhbjkcEEXPA2Fnc\",\n \"width\": 1062,\n \"height\": 822,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.irisnet.org\",\n \"name\": \"IRIShub Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Eris\",\n \"symbol\": \"ERIS\",\n \"decimals\": 18\n },\n \"networkId\": 16688,\n \"rpc\": [\"https://irishub-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://16688.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://evmrpc.nyancat.irisnet.org\"],\n \"shortName\": \"nyancat\",\n \"slip44\": 1,\n \"slug\": \"irishub-testnet\",\n \"testnet\": true\n};\n\nvar c16718 = {\n \"chain\": \"ambnet\",\n \"chainId\": 16718,\n \"explorers\": [{\n \"name\": \"AirDAO Network Explorer\",\n \"url\": \"https://airdao.io/explorer\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmSxXjvWng3Diz4YwXDV2VqSPgMyzLYBNfkjJcr7rzkxom\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://airdao.io\",\n \"name\": \"AirDAO Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Amber\",\n \"symbol\": \"AMB\",\n \"decimals\": 18\n },\n \"networkId\": 16718,\n \"rpc\": [\"https://airdao.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://16718.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://network.ambrosus.io\"],\n \"shortName\": \"airdao\",\n \"slug\": \"airdao\",\n \"testnet\": false\n};\n\nvar c16888 = {\n \"chain\": \"IVAR\",\n \"chainId\": 16888,\n \"explorers\": [{\n \"name\": \"ivarscan\",\n \"url\": \"https://testnet.ivarscan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://tfaucet.ivarex.com/\"],\n \"icon\": {\n \"url\": \"ipfs://QmV8UmSwqGF2fxrqVEBTHbkyZueahqyYtkfH2RBF5pNysM\",\n \"width\": 519,\n \"height\": 519,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://ivarex.com\",\n \"name\": \"IVAR Chain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"tIvar\",\n \"symbol\": \"tIVAR\",\n \"decimals\": 18\n },\n \"networkId\": 16888,\n \"rpc\": [\"https://ivar-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://16888.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-rpc.ivarex.com\"],\n \"shortName\": \"tivar\",\n \"slip44\": 1,\n \"slug\": \"ivar-chain-testnet\",\n \"testnet\": true\n};\n\nvar c17000 = {\n \"chain\": \"ETH\",\n \"chainId\": 17000,\n \"explorers\": [{\n \"name\": \"Holesky Explorer\",\n \"url\": \"https://holesky.beaconcha.in\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmdwQDr6vmBtXmK2TmknkEuZNoaDqTasFdZdu3DRw8b2wt\",\n \"width\": 1000,\n \"height\": 1628,\n \"format\": \"png\"\n }\n }, {\n \"name\": \"otterscan-holesky\",\n \"url\": \"https://holesky.otterscan.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmdwQDr6vmBtXmK2TmknkEuZNoaDqTasFdZdu3DRw8b2wt\",\n \"width\": 1000,\n \"height\": 1628,\n \"format\": \"png\"\n }\n }, {\n \"name\": \"Holesky Etherscan\",\n \"url\": \"https://holesky.etherscan.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmdwQDr6vmBtXmK2TmknkEuZNoaDqTasFdZdu3DRw8b2wt\",\n \"width\": 1000,\n \"height\": 1628,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucet.holesky.ethpandaops.io\", \"https://holesky-faucet.pk910.de\"],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmdwQDr6vmBtXmK2TmknkEuZNoaDqTasFdZdu3DRw8b2wt\",\n \"width\": 1000,\n \"height\": 1628,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://holesky.ethpandaops.io\",\n \"name\": \"Holesky\",\n \"nativeCurrency\": {\n \"name\": \"Testnet ETH\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 17000,\n \"redFlags\": [],\n \"rpc\": [\"https://holesky.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://17000.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.holesky.ethpandaops.io\", \"https://ethereum-holesky.publicnode.com\", \"wss://ethereum-holesky.publicnode.com\"],\n \"shortName\": \"holesky\",\n \"slip44\": 1,\n \"slug\": \"holesky\",\n \"status\": \"incubating\",\n \"testnet\": true,\n \"title\": \"Ethereum Testnet Holesky\"\n};\n\nvar c17001 = {\n \"chain\": \"ETH\",\n \"chainId\": 17001,\n \"explorers\": [{\n \"name\": \"Redstone Holesky Explorer\",\n \"url\": \"https://explorer.holesky.redstone.xyz\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmdwQDr6vmBtXmK2TmknkEuZNoaDqTasFdZdu3DRw8b2wt\",\n \"width\": 1000,\n \"height\": 1628,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreieyaqgkgntvxuo5tnhgseladga5q6gutc37dab7kqqfdguhq7vkxq\",\n \"width\": 5836,\n \"height\": 5836,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://redstone.xyz/docs/network-info\",\n \"name\": \"Redstone Holesky Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Redstone Testnet Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 17001,\n \"rpc\": [\"https://redstone-holesky-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://17001.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.holesky.redstone.xyz\"],\n \"shortName\": \"redstone\",\n \"slip44\": 1,\n \"slug\": \"redstone-holesky-testnet\",\n \"testnet\": true\n};\n\nvar c17026 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 17026,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \".svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"QI1204I3\",\n \"nativeCurrency\": {\n \"name\": \"QI1204I3 Token\",\n \"symbol\": \"BHOX\",\n \"decimals\": 18\n },\n \"networkId\": 17026,\n \"redFlags\": [],\n \"rpc\": [\"https://qi1204i3.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://17026.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avacloud-test.io/e7aeac38-06b2-4aaa-87b4-2c2da10fa43e\"],\n \"shortName\": \"QI1204I3\",\n \"slug\": \"qi1204i3\",\n \"testnet\": true\n};\n\nvar c17171 = {\n \"chain\": \"G8C\",\n \"chainId\": 17171,\n \"explorers\": [{\n \"name\": \"G8Chain\",\n \"url\": \"https://mainnet.oneg8.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.oneg8.network\"],\n \"icon\": {\n \"url\": \"ipfs://QmbkCVC5vZpVAfq8SuPXR9PhpTRS2m8w6LGqBkhXAvmie6\",\n \"width\": 80,\n \"height\": 80,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://oneg8.one\",\n \"name\": \"G8Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"G8Chain\",\n \"symbol\": \"G8C\",\n \"decimals\": 18\n },\n \"networkId\": 17171,\n \"rpc\": [\"https://g8chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://17171.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-rpc.oneg8.network\"],\n \"shortName\": \"G8Cm\",\n \"slug\": \"g8chain\",\n \"testnet\": false\n};\n\nvar c17180 = {\n \"chain\": \"PLT\",\n \"chainId\": 17180,\n \"explorers\": [{\n \"name\": \"Palettescan\",\n \"url\": \"https://testnet.palettescan.com\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmPCEGZD1p1keTT2YfPp725azx1r9Ci41hejeUuGL2whFA\",\n \"width\": 800,\n \"height\": 800,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmPCEGZD1p1keTT2YfPp725azx1r9Ci41hejeUuGL2whFA\",\n \"width\": 800,\n \"height\": 800,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://hashpalette.com/\",\n \"name\": \"Palette Chain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Palette Token\",\n \"symbol\": \"PLT\",\n \"decimals\": 18\n },\n \"networkId\": 17180,\n \"rpc\": [\"https://palette-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://17180.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://palette-opennet.com:22000\"],\n \"shortName\": \"PCT\",\n \"slip44\": 1,\n \"slug\": \"palette-chain-testnet\",\n \"testnet\": true\n};\n\nvar c17777 = {\n \"chain\": \"EOS\",\n \"chainId\": 17777,\n \"explorers\": [{\n \"name\": \"EOS EVM Explorer\",\n \"url\": \"https://explorer.evm.eosnetwork.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmXkK5D5GWizvY1FmL6pV8cYLAbhehKETubktCgh6qDJZb\",\n \"width\": 500,\n \"height\": 750,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://eosnetwork.com/eos-evm\",\n \"name\": \"EOS EVM Network\",\n \"nativeCurrency\": {\n \"name\": \"EOS\",\n \"symbol\": \"EOS\",\n \"decimals\": 18\n },\n \"networkId\": 17777,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-1\",\n \"bridges\": [{\n \"url\": \"https://bridge.evm.eosnetwork.com\"\n }, {\n \"url\": \"https://app.multichain.org\"\n }]\n },\n \"rpc\": [\"https://eos-evm-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://17777.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.evm.eosnetwork.com\"],\n \"shortName\": \"eos\",\n \"slug\": \"eos-evm-network\",\n \"testnet\": false\n};\n\nvar c18000 = {\n \"chain\": \"Game Network\",\n \"chainId\": 18000,\n \"explorers\": [{\n \"name\": \"Game Network\",\n \"url\": \"https://explorer.fod.games\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://goexosphere.com\",\n \"name\": \"Frontier of Dreams Testnet\",\n \"nativeCurrency\": {\n \"name\": \"ZKST\",\n \"symbol\": \"ZKST\",\n \"decimals\": 18\n },\n \"networkId\": 18000,\n \"rpc\": [\"https://frontier-of-dreams-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://18000.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.fod.games/\"],\n \"shortName\": \"ZKST\",\n \"slip44\": 1,\n \"slug\": \"frontier-of-dreams-testnet\",\n \"testnet\": true\n};\n\nvar c18105 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 18105,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"Found Test\",\n \"nativeCurrency\": {\n \"name\": \"Found Test Token\",\n \"symbol\": \"TVJ\",\n \"decimals\": 18\n },\n \"networkId\": 18105,\n \"redFlags\": [],\n \"rpc\": [\"https://found-test.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://18105.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc\"],\n \"shortName\": \"Found Test\",\n \"slug\": \"found-test\",\n \"testnet\": true\n};\n\nvar c18122 = {\n \"chain\": \"Smart Trade Networks\",\n \"chainId\": 18122,\n \"explorers\": [{\n \"name\": \"stnscan\",\n \"url\": \"https://stnscan.com\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmRgZVpjik4cH3Sb6wLRpdnfv9kiMEZ8fugfkzTgk3bpRW\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmRgZVpjik4cH3Sb6wLRpdnfv9kiMEZ8fugfkzTgk3bpRW\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.smarttradenetworks.com\",\n \"name\": \"Smart Trade Networks\",\n \"nativeCurrency\": {\n \"name\": \"STN\",\n \"symbol\": \"STN\",\n \"decimals\": 18\n },\n \"networkId\": 18122,\n \"rpc\": [\"https://smart-trade-networks.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://18122.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://beefledgerwallet.com:8544\"],\n \"shortName\": \"STN\",\n \"slug\": \"smart-trade-networks\",\n \"testnet\": false\n};\n\nvar c18159 = {\n \"chain\": \"POM\",\n \"chainId\": 18159,\n \"explorers\": [{\n \"name\": \"explorer-proofofmemes\",\n \"url\": \"https://memescan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmePhfibWz9jnGUqF9Rven4x734br1h3LxrChYTEjbbQvo\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://proofofmemes.org\",\n \"name\": \"Proof Of Memes\",\n \"nativeCurrency\": {\n \"name\": \"Proof Of Memes\",\n \"symbol\": \"POM\",\n \"decimals\": 18\n },\n \"networkId\": 18159,\n \"rpc\": [\"https://proof-of-memes.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://18159.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-rpc.memescan.io\", \"https://mainnet-rpc2.memescan.io\", \"https://mainnet-rpc3.memescan.io\", \"https://mainnet-rpc4.memescan.io\"],\n \"shortName\": \"pom\",\n \"slug\": \"proof-of-memes\",\n \"testnet\": false,\n \"title\": \"Proof Of Memes Mainnet\"\n};\n\nvar c18181 = {\n \"chain\": \"G8C\",\n \"chainId\": 18181,\n \"explorers\": [{\n \"name\": \"G8Chain\",\n \"url\": \"https://testnet.oneg8.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.oneg8.network\"],\n \"icon\": {\n \"url\": \"ipfs://QmbkCVC5vZpVAfq8SuPXR9PhpTRS2m8w6LGqBkhXAvmie6\",\n \"width\": 80,\n \"height\": 80,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://oneg8.one\",\n \"name\": \"G8Chain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"G8Coin\",\n \"symbol\": \"G8C\",\n \"decimals\": 18\n },\n \"networkId\": 18181,\n \"rpc\": [\"https://g8chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://18181.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-rpc.oneg8.network\"],\n \"shortName\": \"G8Ct\",\n \"slip44\": 1,\n \"slug\": \"g8chain-testnet\",\n \"testnet\": true\n};\n\nvar c18686 = {\n \"chain\": \"MXC zkEVM\",\n \"chainId\": 18686,\n \"explorers\": [{\n \"name\": \"MXC zkEVM Mainnet\",\n \"url\": \"https://explorer.mxc.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmdGCthKA11K9kCZJdbTP5WPAyq1wiRZ3REn6KG58MrWaE\",\n \"width\": 159,\n \"height\": 159,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://doc.mxc.com/docs/intro\",\n \"name\": \"MXC zkEVM Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"MXC zkEVM Mainnet\",\n \"symbol\": \"MXC\",\n \"decimals\": 18\n },\n \"networkId\": 18686,\n \"rpc\": [\"https://mxc-zkevm.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://18686.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.mxc.com\"],\n \"shortName\": \"MXCzkEVM\",\n \"slug\": \"mxc-zkevm\",\n \"testnet\": false\n};\n\nvar c19011 = {\n \"chain\": \"HOME Verse\",\n \"chainId\": 19011,\n \"explorers\": [{\n \"name\": \"HOME Verse Explorer\",\n \"url\": \"https://explorer.oasys.homeverse.games\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmeGb65zSworzoHmwK3jdkPtEsQZMUSJRxf8K8Feg56soU\",\n \"width\": 597,\n \"height\": 597,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.homeverse.games/\",\n \"name\": \"HOME Verse Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"OAS\",\n \"symbol\": \"OAS\",\n \"decimals\": 18\n },\n \"networkId\": 19011,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-248\"\n },\n \"rpc\": [\"https://home-verse.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://19011.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.mainnet.oasys.homeverse.games/\"],\n \"shortName\": \"HMV\",\n \"slug\": \"home-verse\",\n \"testnet\": false\n};\n\nvar c19683 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 19683,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \".svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"ST 12-07 V1\",\n \"nativeCurrency\": {\n \"name\": \"ST 12-07 V1 Token\",\n \"symbol\": \"XRL\",\n \"decimals\": 18\n },\n \"networkId\": 19683,\n \"redFlags\": [],\n \"rpc\": [\"https://st-12-07-v1.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://19683.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avacloud-test.io/d26b972e-1832-4d3a-bf7b-d0ce1f4331c2\"],\n \"shortName\": \"ST 12-07 V1\",\n \"slug\": \"st-12-07-v1\",\n \"testnet\": true\n};\n\nvar c19845 = {\n \"chain\": \"BTCIX\",\n \"chainId\": 19845,\n \"explorers\": [{\n \"name\": \"BTCIXScan\",\n \"url\": \"https://btcixscan.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://bitcolojix.org\",\n \"name\": \"BTCIX Network\",\n \"nativeCurrency\": {\n \"name\": \"BTCIX Network\",\n \"symbol\": \"BTCIX\",\n \"decimals\": 18\n },\n \"networkId\": 19845,\n \"rpc\": [\"https://btcix-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://19845.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://seed.btcix.org/rpc\"],\n \"shortName\": \"btcix\",\n \"slug\": \"btcix-network\",\n \"testnet\": false\n};\n\nvar c20001 = {\n \"chain\": \"ETHW\",\n \"chainId\": 20001,\n \"explorers\": [{\n \"name\": \"CamelarkScan\",\n \"url\": \"https://scan.camelark.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmeJerrsURFNt2LL7DE7TxeunjrQXiuezdfHyqmsbwX3MZ\",\n \"width\": 128,\n \"height\": 128,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.camelark.com\",\n \"name\": \"Camelark Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"EthereumPoW\",\n \"symbol\": \"ETHW\",\n \"decimals\": 18\n },\n \"networkId\": 20001,\n \"rpc\": [\"https://camelark.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://20001.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-http-rpc.camelark.com\"],\n \"shortName\": \"Camelark\",\n \"slug\": \"camelark\",\n \"testnet\": false\n};\n\nvar c20141 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 20141,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"Shelby's Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Shelby's Testnet Token\",\n \"symbol\": \"FUC\",\n \"decimals\": 18\n },\n \"networkId\": 20141,\n \"redFlags\": [],\n \"rpc\": [\"https://shelby-s-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://20141.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avacloud-dev.io/c6fcfa18-e711-4f91-b8d4-ad59cfd30316\"],\n \"shortName\": \"Shelby's Testnet\",\n \"slug\": \"shelby-s-testnet\",\n \"testnet\": true\n};\n\nvar c20729 = {\n \"chain\": \"CLO\",\n \"chainId\": 20729,\n \"explorers\": [],\n \"faucets\": [\"https://faucet.callisto.network/\"],\n \"infoURL\": \"https://callisto.network\",\n \"name\": \"Callisto Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Callisto\",\n \"symbol\": \"CLO\",\n \"decimals\": 18\n },\n \"networkId\": 79,\n \"rpc\": [\"https://callisto-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://20729.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-rpc.callisto.network/\"],\n \"shortName\": \"CLOTestnet\",\n \"slip44\": 1,\n \"slug\": \"callisto-testnet\",\n \"testnet\": true\n};\n\nvar c20736 = {\n \"chain\": \"P12\",\n \"chainId\": 20736,\n \"explorers\": [{\n \"name\": \"P12 Chain Explorer\",\n \"url\": \"https://explorer.p12.games\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://bafkreieiro4imoujeewc4r4thf5hxj47l56j2iwuz6d6pdj6ieb6ub3h7e\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://p12.network\",\n \"name\": \"P12 Chain\",\n \"nativeCurrency\": {\n \"name\": \"Hooked P2\",\n \"symbol\": \"hP2\",\n \"decimals\": 18\n },\n \"networkId\": 20736,\n \"rpc\": [\"https://p12-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://20736.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-chain.p12.games\"],\n \"shortName\": \"p12\",\n \"slug\": \"p12-chain\",\n \"testnet\": false\n};\n\nvar c20948 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 20948,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \".svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"GoldFever\",\n \"nativeCurrency\": {\n \"name\": \"GoldFever Token\",\n \"symbol\": \"GFT\",\n \"decimals\": 18\n },\n \"networkId\": 20948,\n \"redFlags\": [],\n \"rpc\": [\"https://goldfever.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://20948.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/goldfever/testnet/rpc\"],\n \"shortName\": \"GoldFever\",\n \"slug\": \"goldfever\",\n \"testnet\": true\n};\n\nvar c21337 = {\n \"chain\": \"CENNZnet\",\n \"chainId\": 21337,\n \"explorers\": [{\n \"name\": \"UNcover\",\n \"url\": \"https://uncoverexplorer.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmWhNm7tTi6SYbiumULDRk956hxgqaZSX77vcxBNn8fvnw\",\n \"width\": 112,\n \"height\": 112,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://cennz.net\",\n \"name\": \"CENNZnet Azalea\",\n \"nativeCurrency\": {\n \"name\": \"CPAY\",\n \"symbol\": \"CPAY\",\n \"decimals\": 18\n },\n \"networkId\": 21337,\n \"rpc\": [\"https://cennznet-azalea.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://21337.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://cennznet.unfrastructure.io/public\"],\n \"shortName\": \"cennz-a\",\n \"slug\": \"cennznet-azalea\",\n \"testnet\": false\n};\n\nvar c21816 = {\n \"chain\": \"OML\",\n \"chainId\": 21816,\n \"explorers\": [{\n \"name\": \"omChain Explorer\",\n \"url\": \"https://explorer.omchain.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmQtEHaejiDbmiCvbBYw9jNQv3DLK5XHCQwLRfnLNpdN5j\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://omchain.io\",\n \"name\": \"omChain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"omChain\",\n \"symbol\": \"OMC\",\n \"decimals\": 18\n },\n \"networkId\": 21816,\n \"rpc\": [\"https://omchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://21816.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://seed.omchain.io\"],\n \"shortName\": \"omc\",\n \"slug\": \"omchain\",\n \"testnet\": false\n};\n\nvar c21912 = {\n \"chain\": \"BSL\",\n \"chainId\": 21912,\n \"explorers\": [{\n \"name\": \"BSL Mainnet Explorer\",\n \"url\": \"https://scan.nftruth.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://bsquarelab.com/\",\n \"name\": \"BSL Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Origin NFT\",\n \"symbol\": \"ONF\",\n \"decimals\": 18\n },\n \"networkId\": 21912,\n \"rpc\": [\"https://bsl.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://21912.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"http://rpc-mainnet.nftruth.io:8545\", \"ws://rpc-mainnet.nftruth.io:8645\"],\n \"shortName\": \"onf\",\n \"slug\": \"bsl\",\n \"testnet\": false\n};\n\nvar c22023 = {\n \"chain\": \"Taycan\",\n \"chainId\": 22023,\n \"explorers\": [{\n \"name\": \"Taycan Explorer(Blockscout)\",\n \"url\": \"https://taycan-evmscan.hupayx.io\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://bafkreidvjcc73v747lqlyrhgbnkvkdepdvepo6baj6hmjsmjtvdyhmzzmq\",\n \"width\": 1000,\n \"height\": 1206,\n \"format\": \"png\"\n }\n }, {\n \"name\": \"Taycan Cosmos Explorer(BigDipper)\",\n \"url\": \"https://taycan-cosmoscan.hupayx.io\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://bafkreidvjcc73v747lqlyrhgbnkvkdepdvepo6baj6hmjsmjtvdyhmzzmq\",\n \"width\": 1000,\n \"height\": 1206,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreidvjcc73v747lqlyrhgbnkvkdepdvepo6baj6hmjsmjtvdyhmzzmq\",\n \"width\": 1000,\n \"height\": 1206,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://hupayx.io\",\n \"name\": \"Taycan\",\n \"nativeCurrency\": {\n \"name\": \"shuffle\",\n \"symbol\": \"SFL\",\n \"decimals\": 18\n },\n \"networkId\": 22023,\n \"rpc\": [\"https://taycan.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://22023.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://taycan-rpc.hupayx.io:8545\"],\n \"shortName\": \"SFL\",\n \"slug\": \"taycan\",\n \"testnet\": false\n};\n\nvar c22040 = {\n \"chain\": \"ambnet-test\",\n \"chainId\": 22040,\n \"explorers\": [{\n \"name\": \"AirDAO Network Explorer\",\n \"url\": \"https://testnet.airdao.io/explorer\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmSxXjvWng3Diz4YwXDV2VqSPgMyzLYBNfkjJcr7rzkxom\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://testnet.airdao.io\",\n \"name\": \"AirDAO Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Amber\",\n \"symbol\": \"AMB\",\n \"decimals\": 18\n },\n \"networkId\": 22040,\n \"rpc\": [\"https://airdao-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://22040.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://network.ambrosus-test.io\"],\n \"shortName\": \"airdao-test\",\n \"slip44\": 1,\n \"slug\": \"airdao-testnet\",\n \"testnet\": true\n};\n\nvar c22222 = {\n \"chain\": \"ETH\",\n \"chainId\": 22222,\n \"explorers\": [{\n \"name\": \"Nautscan\",\n \"url\": \"https://nautscan.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmNutSgM7n6aJPPDiofe9Dm1epy1RcYTMvugukLUK2vmPM\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmNutSgM7n6aJPPDiofe9Dm1epy1RcYTMvugukLUK2vmPM\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://docs.nautchain.xyz\",\n \"name\": \"Nautilus Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Zebec\",\n \"symbol\": \"ZBC\",\n \"decimals\": 18\n },\n \"networkId\": 22222,\n \"rpc\": [\"https://nautilus.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://22222.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.nautilus.nautchain.xyz\"],\n \"shortName\": \"NAUTCHAIN\",\n \"slug\": \"nautilus\",\n \"testnet\": false\n};\n\nvar c22324 = {\n \"chain\": \"GoldXTestnet\",\n \"chainId\": 22324,\n \"explorers\": [{\n \"name\": \"GoldXChain Testnet Explorer\",\n \"url\": \"https://testnet-explorer.goldxchain.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.goldxchain.io\"],\n \"infoURL\": \"https://goldxchain.io\",\n \"name\": \"GoldXChain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"GoldX\",\n \"symbol\": \"GOLDX\",\n \"decimals\": 18\n },\n \"networkId\": 22324,\n \"rpc\": [\"https://goldxchain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://22324.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-rpc.goldxchain.io\"],\n \"shortName\": \"goldx-testnet\",\n \"slug\": \"goldxchain-testnet\",\n \"testnet\": true\n};\n\nvar c22776 = {\n \"chain\": \"MAP\",\n \"chainId\": 22776,\n \"explorers\": [{\n \"name\": \"mapscan\",\n \"url\": \"https://mapscan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmcLdQ8gM4iHv3CCKA9HuxmzTxY4WhjWtepUVCc3dpzKxD\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://maplabs.io\",\n \"name\": \"MAP Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"MAPO\",\n \"symbol\": \"MAPO\",\n \"decimals\": 18\n },\n \"networkId\": 22776,\n \"rpc\": [\"https://map.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://22776.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.maplabs.io\"],\n \"shortName\": \"map\",\n \"slip44\": 60,\n \"slug\": \"map\",\n \"testnet\": false\n};\n\nvar c23006 = {\n \"chain\": \"ABN\",\n \"chainId\": 23006,\n \"explorers\": [{\n \"name\": \"Antofy Testnet\",\n \"url\": \"https://test.antofyscan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.antofy.io\"],\n \"icon\": {\n \"url\": \"ipfs://QmdTfku81ohnG9ECU1Xswmeumt678cBhwHWuFYZ7i1Qsto\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://antofy.io\",\n \"name\": \"Antofy Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Antofy\",\n \"symbol\": \"ABN\",\n \"decimals\": 18\n },\n \"networkId\": 23006,\n \"rpc\": [\"https://antofy-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://23006.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-rpc.antofy.io\"],\n \"shortName\": \"ABNt\",\n \"slip44\": 1,\n \"slug\": \"antofy-testnet\",\n \"testnet\": true\n};\n\nvar c23118 = {\n \"chain\": \"Opside\",\n \"chainId\": 23118,\n \"explorers\": [{\n \"name\": \"opsideInfo\",\n \"url\": \"https://opside.info\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.opside.network\"],\n \"icon\": {\n \"url\": \"ipfs://QmeCyZeibUoHNoYGzy1GkzH2uhxyRHKvH51PdaUMer4VTo\",\n \"width\": 591,\n \"height\": 591,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://opside.network\",\n \"name\": \"Opside Testnet\",\n \"nativeCurrency\": {\n \"name\": \"IDE\",\n \"symbol\": \"IDE\",\n \"decimals\": 18\n },\n \"networkId\": 23118,\n \"rpc\": [\"https://opside-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://23118.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testrpc.opside.network\"],\n \"shortName\": \"opside\",\n \"slip44\": 1,\n \"slug\": \"opside-testnet\",\n \"testnet\": true\n};\n\nvar c23294 = {\n \"chain\": \"Sapphire\",\n \"chainId\": 23294,\n \"explorers\": [{\n \"name\": \"Oasis Sapphire Explorer\",\n \"url\": \"https://explorer.sapphire.oasis.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreiespupb52akiwrexxg7g72mh7m7h7lum5hmqijmpdh3kmuunzclha\",\n \"width\": 2000,\n \"height\": 2000,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://docs.oasis.io/dapp/sapphire\",\n \"name\": \"Oasis Sapphire\",\n \"nativeCurrency\": {\n \"name\": \"Sapphire Rose\",\n \"symbol\": \"ROSE\",\n \"decimals\": 18\n },\n \"networkId\": 23294,\n \"rpc\": [\"https://oasis-sapphire.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://23294.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://sapphire.oasis.io\", \"wss://sapphire.oasis.io/ws\"],\n \"shortName\": \"sapphire\",\n \"slug\": \"oasis-sapphire\",\n \"testnet\": false\n};\n\nvar c23295 = {\n \"chain\": \"Sapphire\",\n \"chainId\": 23295,\n \"explorers\": [{\n \"name\": \"Oasis Sapphire Testnet Explorer\",\n \"url\": \"https://testnet.explorer.sapphire.oasis.dev\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreiespupb52akiwrexxg7g72mh7m7h7lum5hmqijmpdh3kmuunzclha\",\n \"width\": 2000,\n \"height\": 2000,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://docs.oasis.io/dapp/sapphire\",\n \"name\": \"Oasis Sapphire Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Sapphire Test Rose\",\n \"symbol\": \"TEST\",\n \"decimals\": 18\n },\n \"networkId\": 23295,\n \"rpc\": [\"https://oasis-sapphire-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://23295.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.sapphire.oasis.dev\", \"wss://testnet.sapphire.oasis.dev/ws\"],\n \"shortName\": \"sapphire-testnet\",\n \"slip44\": 1,\n \"slug\": \"oasis-sapphire-testnet\",\n \"testnet\": true\n};\n\nvar c23812 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 23812,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"kjCohan Testnet\",\n \"nativeCurrency\": {\n \"name\": \"kjCohan Testnet Token\",\n \"symbol\": \"DBM\",\n \"decimals\": 18\n },\n \"networkId\": 23812,\n \"redFlags\": [],\n \"rpc\": [\"https://kjcohan-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://23812.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avacloud-dev.io/d2b6bd35-89f7-4019-bc88-643c31221e5c\"],\n \"shortName\": \"kjCohan Testnet\",\n \"slug\": \"kjcohan-testnet\",\n \"testnet\": true\n};\n\nvar c23888 = {\n \"chain\": \"ETH\",\n \"chainId\": 23888,\n \"explorers\": [{\n \"name\": \"Blast Testnet\",\n \"url\": \"http://testnet-explorer.blastblockchain.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmdHpjiepU2Q4bt4kR48tKHPgaQW57Sb6UVFgLh4MCyg6U\",\n \"width\": 595,\n \"height\": 582,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://docs.blastblockchain.com\",\n \"name\": \"Blast Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 23888,\n \"rpc\": [\"https://blast-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://23888.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"http://testnet-rpc.blastblockchain.com\"],\n \"shortName\": \"blastT\",\n \"slug\": \"blast-testnet\",\n \"testnet\": true\n};\n\nvar c23934 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 23934,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \".svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"ST 11-16 v7 Regression\",\n \"nativeCurrency\": {\n \"name\": \"ST 11-16 v7 Regression Token\",\n \"symbol\": \"WLA\",\n \"decimals\": 18\n },\n \"networkId\": 23934,\n \"redFlags\": [],\n \"rpc\": [\"https://st-11-16-v7-regression.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://23934.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc\"],\n \"shortName\": \"ST 11-16 v7 Regression\",\n \"slug\": \"st-11-16-v7-regression\",\n \"testnet\": true\n};\n\nvar c24484 = {\n \"chain\": \"WEB\",\n \"chainId\": 24484,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://webchain.network\",\n \"name\": \"Webchain\",\n \"nativeCurrency\": {\n \"name\": \"Webchain Ether\",\n \"symbol\": \"WEB\",\n \"decimals\": 18\n },\n \"networkId\": 37129,\n \"rpc\": [],\n \"shortName\": \"web\",\n \"slip44\": 227,\n \"slug\": \"webchain\",\n \"testnet\": false\n};\n\nvar c24734 = {\n \"chain\": \"MINTME\",\n \"chainId\": 24734,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://www.mintme.com\",\n \"name\": \"MintMe.com Coin\",\n \"nativeCurrency\": {\n \"name\": \"MintMe.com Coin\",\n \"symbol\": \"MINTME\",\n \"decimals\": 18\n },\n \"networkId\": 37480,\n \"rpc\": [\"https://mintme-com-coin.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://24734.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://node1.mintme.com\"],\n \"shortName\": \"mintme\",\n \"slug\": \"mintme-com-coin\",\n \"testnet\": false\n};\n\nvar c25888 = {\n \"chain\": \"HammerChain\",\n \"chainId\": 25888,\n \"explorers\": [{\n \"name\": \"Hammer Chain Explorer\",\n \"url\": \"https://www.hammerchain.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.hammerchain.io\",\n \"name\": \"Hammer Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"GOLDT\",\n \"symbol\": \"GOLDT\",\n \"decimals\": 18\n },\n \"networkId\": 25888,\n \"rpc\": [\"https://hammer-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://25888.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://www.hammerchain.io/rpc\"],\n \"shortName\": \"GOLDT\",\n \"slug\": \"hammer-chain\",\n \"testnet\": false\n};\n\nvar c25925 = {\n \"chain\": \"BKC\",\n \"chainId\": 25925,\n \"explorers\": [{\n \"name\": \"bkcscan-testnet\",\n \"url\": \"https://testnet.bkcscan.com\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmYFYwyquipwc9gURQGcEd4iAq7pq15chQrJ3zJJe9HuFT\",\n \"width\": 1000,\n \"height\": 1000,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucet.bitkubchain.com\"],\n \"icon\": {\n \"url\": \"ipfs://QmYFYwyquipwc9gURQGcEd4iAq7pq15chQrJ3zJJe9HuFT\",\n \"width\": 1000,\n \"height\": 1000,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.bitkubchain.com/\",\n \"name\": \"Bitkub Chain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Bitkub Coin\",\n \"symbol\": \"tKUB\",\n \"decimals\": 18\n },\n \"networkId\": 25925,\n \"rpc\": [\"https://bitkub-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://25925.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-testnet.bitkubchain.io\", \"wss://wss-testnet.bitkubchain.io\"],\n \"shortName\": \"bkct\",\n \"slip44\": 1,\n \"slug\": \"bitkub-chain-testnet\",\n \"testnet\": true\n};\n\nvar c26026 = {\n \"chain\": \"tFRM\",\n \"chainId\": 26026,\n \"explorers\": [{\n \"name\": \"polkadotjs\",\n \"url\": \"https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftestnet.dev.svcs.ferrumnetwork.io#/explorer\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://testnet.faucet.ferrumnetwork.io\"],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"infoURL\": \"https://ferrum.network\",\n \"name\": \"Ferrum Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Ferrum\",\n \"symbol\": \"tFRM\",\n \"decimals\": 18\n },\n \"networkId\": 26026,\n \"rpc\": [\"https://ferrum-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://26026.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"http://testnet.dev.svcs.ferrumnetwork.io:9933\"],\n \"shortName\": \"frm\",\n \"slip44\": 1,\n \"slug\": \"ferrum-testnet\",\n \"testnet\": true\n};\n\nvar c26600 = {\n \"chain\": \"HTZ\",\n \"chainId\": 26600,\n \"explorers\": [{\n \"name\": \"Hertz Scan\",\n \"url\": \"https://hertzscan.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://Qmf3GYbPXmTDpSP6t7Ug2j5HjEwrY5oGhBDP7d4TQHvGnG\",\n \"width\": 162,\n \"height\": 129,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://Qmf3GYbPXmTDpSP6t7Ug2j5HjEwrY5oGhBDP7d4TQHvGnG\",\n \"width\": 162,\n \"height\": 129,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.hertz-network.com\",\n \"name\": \"Hertz Network Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Hertz\",\n \"symbol\": \"HTZ\",\n \"decimals\": 18\n },\n \"networkId\": 26600,\n \"rpc\": [\"https://hertz-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://26600.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-rpc.hertzscan.com\"],\n \"shortName\": \"HTZ\",\n \"slug\": \"hertz-network\",\n \"testnet\": false\n};\n\nvar c26863 = {\n \"chain\": \"OasisChain\",\n \"chainId\": 26863,\n \"explorers\": [{\n \"name\": \"OasisChain Explorer\",\n \"url\": \"https://scan.oasischain.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"http://faucet.oasischain.io\"],\n \"infoURL\": \"https://scan.oasischain.io\",\n \"name\": \"OasisChain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"OAC\",\n \"symbol\": \"OAC\",\n \"decimals\": 18\n },\n \"networkId\": 26863,\n \"rpc\": [\"https://oasischain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://26863.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc1.oasischain.io\", \"https://rpc2.oasischain.io\", \"https://rpc3.oasischain.io\"],\n \"shortName\": \"OAC\",\n \"slug\": \"oasischain\",\n \"testnet\": false\n};\n\nvar c28528 = {\n \"chain\": \"ETH\",\n \"chainId\": 28528,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://blockscout.com/optimism/bedrock-alpha\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://community.optimism.io/docs/developers/bedrock\",\n \"name\": \"Optimism Bedrock (Goerli Alpha Testnet)\",\n \"nativeCurrency\": {\n \"name\": \"Goerli Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 28528,\n \"rpc\": [\"https://optimism-bedrock-goerli-alpha-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://28528.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://alpha-1-replica-0.bedrock-goerli.optimism.io\", \"https://alpha-1-replica-1.bedrock-goerli.optimism.io\", \"https://alpha-1-replica-2.bedrock-goerli.optimism.io\", \"https://alpha-1-replica-2.bedrock-goerli.optimism.io\"],\n \"shortName\": \"obgor\",\n \"slip44\": 1,\n \"slug\": \"optimism-bedrock-goerli-alpha-testnet\",\n \"testnet\": true\n};\n\nvar c29548 = {\n \"chain\": \"MCH Verse\",\n \"chainId\": 29548,\n \"explorers\": [{\n \"name\": \"MCH Verse Explorer\",\n \"url\": \"https://explorer.oasys.mycryptoheroes.net\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmZZnwR1y6cU1sare2TQmwqkNDLXQxD4GdPrmHLmUoPtbU\",\n \"width\": 4000,\n \"height\": 4000,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.mycryptoheroes.net/verse\",\n \"name\": \"MCH Verse Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"OAS\",\n \"symbol\": \"OAS\",\n \"decimals\": 18\n },\n \"networkId\": 29548,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-248\"\n },\n \"rpc\": [\"https://mch-verse.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://29548.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.oasys.mycryptoheroes.net\"],\n \"shortName\": \"MCHV\",\n \"slug\": \"mch-verse\",\n \"testnet\": false\n};\n\nvar c30067 = {\n \"chain\": \"PieceNetwork\",\n \"chainId\": 30067,\n \"explorers\": [{\n \"name\": \"Piece Scan\",\n \"url\": \"https://testnet-scan.piecenetwork.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://piecenetwork.com/faucet\"],\n \"icon\": {\n \"url\": \"ipfs://QmWAU39z1kcYshAqkENRH8qUjfR5CJehCxA4GiC33p3HpH\",\n \"width\": 800,\n \"height\": 800,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://piecenetwork.com\",\n \"name\": \"Piece testnet\",\n \"nativeCurrency\": {\n \"name\": \"ECE\",\n \"symbol\": \"ECE\",\n \"decimals\": 18\n },\n \"networkId\": 30067,\n \"rpc\": [\"https://piece-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://30067.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-rpc0.piecenetwork.com\"],\n \"shortName\": \"Piece\",\n \"slip44\": 1,\n \"slug\": \"piece-testnet\",\n \"testnet\": true\n};\n\nvar c30103 = {\n \"chain\": \"CAU\",\n \"chainId\": 30103,\n \"explorers\": [{\n \"name\": \"canxium explorer\",\n \"url\": \"https://cerium-explorer.canxium.net\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmXHSbtVNCJVfe2CvRH7njdyf2SrX5u5bNTfvhqjLeFN2A\",\n \"width\": 938,\n \"height\": 938,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://canxium.org\",\n \"name\": \"Cerium Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Canxium\",\n \"symbol\": \"CAU\",\n \"decimals\": 18\n },\n \"networkId\": 30103,\n \"rpc\": [\"https://cerium-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://30103.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://cerium-rpc.canxium.net\"],\n \"shortName\": \"ceri\",\n \"slip44\": 1,\n \"slug\": \"cerium-testnet\",\n \"testnet\": true\n};\n\nvar c30891 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 30891,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \".svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"Jambon's Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Jambon's Testnet Token\",\n \"symbol\": \"CXY\",\n \"decimals\": 18\n },\n \"networkId\": 30891,\n \"redFlags\": [],\n \"rpc\": [\"https://jambon-s-testnet-jambon's testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://30891.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avacloud-dev.io/e8b04790-d50c-4bb1-89ba-7bd140b674f3\"],\n \"shortName\": \"Jambon's Testnet\",\n \"slug\": \"jambon-s-testnet-jambon's testnet\",\n \"testnet\": true\n};\n\nvar c31102 = {\n \"chain\": \"ESN\",\n \"chainId\": 31102,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://ethersocial.org\",\n \"name\": \"Ethersocial Network\",\n \"nativeCurrency\": {\n \"name\": \"Ethersocial Network Ether\",\n \"symbol\": \"ESN\",\n \"decimals\": 18\n },\n \"networkId\": 1,\n \"rpc\": [\"https://ethersocial-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://31102.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.esn.gonspool.com\"],\n \"shortName\": \"esn\",\n \"slip44\": 31102,\n \"slug\": \"ethersocial-network\",\n \"testnet\": false\n};\n\nvar c31223 = {\n \"chain\": \"CLD\",\n \"chainId\": 31223,\n \"explorers\": [{\n \"name\": \"cloudtxscan\",\n \"url\": \"https://scan.cloudtx.finance\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmSEsi71AdA5HYH6VNC5QUQezFg1C7BiVQJdx1VVfGz3g3\",\n \"width\": 713,\n \"height\": 830,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://cloudtx.finance\",\n \"name\": \"CloudTx Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"CloudTx\",\n \"symbol\": \"CLD\",\n \"decimals\": 18\n },\n \"networkId\": 31223,\n \"rpc\": [\"https://cloudtx.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://31223.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-rpc.cloudtx.finance\"],\n \"shortName\": \"CLDTX\",\n \"slug\": \"cloudtx\",\n \"testnet\": false\n};\n\nvar c31224 = {\n \"chain\": \"CloudTx\",\n \"chainId\": 31224,\n \"explorers\": [{\n \"name\": \"cloudtxexplorer\",\n \"url\": \"https://explorer.cloudtx.finance\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.cloudtx.finance\"],\n \"icon\": {\n \"url\": \"ipfs://QmSEsi71AdA5HYH6VNC5QUQezFg1C7BiVQJdx1VVfGz3g3\",\n \"width\": 713,\n \"height\": 830,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://cloudtx.finance/\",\n \"name\": \"CloudTx Testnet\",\n \"nativeCurrency\": {\n \"name\": \"CloudTx\",\n \"symbol\": \"CLD\",\n \"decimals\": 18\n },\n \"networkId\": 31224,\n \"rpc\": [\"https://cloudtx-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://31224.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-rpc.cloudtx.finance\"],\n \"shortName\": \"CLD\",\n \"slip44\": 1,\n \"slug\": \"cloudtx-testnet\",\n \"testnet\": true\n};\n\nvar c31337 = {\n \"chain\": \"GO\",\n \"chainId\": 31337,\n \"explorers\": [{\n \"name\": \"GoChain Testnet Explorer\",\n \"url\": \"https://testnet-explorer.gochain.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://gochain.io\",\n \"name\": \"GoChain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"GoChain Coin\",\n \"symbol\": \"GO\",\n \"decimals\": 18\n },\n \"networkId\": 31337,\n \"rpc\": [\"https://gochain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://31337.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-rpc.gochain.io\"],\n \"shortName\": \"got\",\n \"slip44\": 1,\n \"slug\": \"gochain-testnet\",\n \"testnet\": true\n};\n\nvar c31415 = {\n \"chain\": \"FIL\",\n \"chainId\": 31415,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmS9r9XQkMHVomWcSBNDkKkz9n87h9bH9ssabeiKZtANoU\",\n \"width\": 1000,\n \"height\": 1000,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://filecoin.io\",\n \"name\": \"Filecoin - Wallaby testnet\",\n \"nativeCurrency\": {\n \"name\": \"testnet filecoin\",\n \"symbol\": \"tFIL\",\n \"decimals\": 18\n },\n \"networkId\": 31415,\n \"rpc\": [],\n \"shortName\": \"filecoin-wallaby\",\n \"slip44\": 1,\n \"slug\": \"filecoin-wallaby-testnet\",\n \"status\": \"deprecated\",\n \"testnet\": true\n};\n\nvar c32520 = {\n \"chain\": \"Brise\",\n \"chainId\": 32520,\n \"explorers\": [{\n \"name\": \"Brise Scan\",\n \"url\": \"https://brisescan.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmY3vKe1rG9AyHSGH1ouP3ER3EVUZRtRrFbFZEfEpMSd4V\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmY3vKe1rG9AyHSGH1ouP3ER3EVUZRtRrFbFZEfEpMSd4V\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://bitgert.com/\",\n \"name\": \"Bitgert Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Bitrise Token\",\n \"symbol\": \"Brise\",\n \"decimals\": 18\n },\n \"networkId\": 32520,\n \"rpc\": [\"https://bitgert.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://32520.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.icecreamswap.com\", \"https://mainnet-rpc.brisescan.com\", \"https://chainrpc.com\", \"https://serverrpc.com\"],\n \"shortName\": \"Brise\",\n \"slug\": \"bitgert\",\n \"testnet\": false\n};\n\nvar c32659 = {\n \"chain\": \"FSN\",\n \"chainId\": 32659,\n \"explorers\": [{\n \"name\": \"fsnscan\",\n \"url\": \"https://fsnscan.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmSAFx34SKNi7a139agX12f68oBMo2Ktt9c8yD8aFa14gd\",\n \"width\": 48,\n \"height\": 51,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmX3tsEoj7SdaBLLV8VyyCUAmymdEGiSGeuTbxMrEMVvth\",\n \"width\": 31,\n \"height\": 31,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://fusion.org\",\n \"name\": \"Fusion Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Fusion\",\n \"symbol\": \"FSN\",\n \"decimals\": 18\n },\n \"networkId\": 32659,\n \"rpc\": [\"https://fusion.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://32659.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.fusionnetwork.io\", \"wss://mainnet.fusionnetwork.io\"],\n \"shortName\": \"fsn\",\n \"slip44\": 288,\n \"slug\": \"fusion\",\n \"testnet\": false\n};\n\nvar c32769 = {\n \"chain\": \"ZIL\",\n \"chainId\": 32769,\n \"explorers\": [{\n \"name\": \"Zilliqa EVM Explorer\",\n \"url\": \"https://evmx.zilliqa.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmTREXNgGtUhSoxFsrkhTe5LUnDBTKL5byaX8kpET6UuKp\",\n \"width\": 2048,\n \"height\": 2048,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.zilliqa.com/\",\n \"name\": \"Zilliqa EVM\",\n \"nativeCurrency\": {\n \"name\": \"Zilliqa\",\n \"symbol\": \"ZIL\",\n \"decimals\": 18\n },\n \"networkId\": 32769,\n \"rpc\": [\"https://zilliqa-evm.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://32769.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.zilliqa.com\"],\n \"shortName\": \"zil\",\n \"slug\": \"zilliqa-evm\",\n \"testnet\": false\n};\n\nvar c32990 = {\n \"chain\": \"ZIL\",\n \"chainId\": 32990,\n \"explorers\": [{\n \"name\": \"Zilliqa EVM Isolated Server Explorer\",\n \"url\": \"https://devex.zilliqa.com/?network=https://zilliqa-isolated-server.zilliqa.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://dev-wallet.zilliqa.com/faucet?network=isolated_server\"],\n \"icon\": {\n \"url\": \"ipfs://QmTREXNgGtUhSoxFsrkhTe5LUnDBTKL5byaX8kpET6UuKp\",\n \"width\": 2048,\n \"height\": 2048,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.zilliqa.com/\",\n \"name\": \"Zilliqa EVM Isolated Server\",\n \"nativeCurrency\": {\n \"name\": \"Zilliqa\",\n \"symbol\": \"ZIL\",\n \"decimals\": 18\n },\n \"networkId\": 32990,\n \"rpc\": [\"https://zilliqa-evm-isolated-server.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://32990.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://zilliqa-isolated-server.zilliqa.com/\"],\n \"shortName\": \"zil-isolated-server\",\n \"slug\": \"zilliqa-evm-isolated-server\",\n \"testnet\": false\n};\n\nvar c33101 = {\n \"chain\": \"ZIL\",\n \"chainId\": 33101,\n \"explorers\": [{\n \"name\": \"Zilliqa EVM Explorer\",\n \"url\": \"https://evmx.zilliqa.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://dev-wallet.zilliqa.com/faucet?network=testnet\"],\n \"infoURL\": \"https://www.zilliqa.com/\",\n \"name\": \"Zilliqa EVM Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Zilliqa\",\n \"symbol\": \"ZIL\",\n \"decimals\": 18\n },\n \"networkId\": 33101,\n \"rpc\": [\"https://zilliqa-evm-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://33101.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://dev-api.zilliqa.com\"],\n \"shortName\": \"zil-testnet\",\n \"slip44\": 1,\n \"slug\": \"zilliqa-evm-testnet\",\n \"testnet\": true\n};\n\nvar c33210 = {\n \"chain\": \"CLOUDVERSE\",\n \"chainId\": 33210,\n \"explorers\": [{\n \"name\": \"CLOUDVERSE Explorer\",\n \"url\": \"https://subnets.avax.network/cloudverse\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP1559\"\n }],\n \"infoURL\": \"https://muadao.build/\",\n \"name\": \"Cloudverse Subnet\",\n \"nativeCurrency\": {\n \"name\": \"XCLOUD\",\n \"symbol\": \"XCLOUD\",\n \"decimals\": 18\n },\n \"networkId\": 33210,\n \"rpc\": [\"https://cloudverse-subnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://33210.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/cloudverse/mainnet/rpc\"],\n \"shortName\": \"cloudverse\",\n \"slug\": \"cloudverse-subnet\",\n \"testnet\": false\n};\n\nvar c33333 = {\n \"chain\": \"AVS\",\n \"chainId\": 33333,\n \"explorers\": [{\n \"name\": \"avescan\",\n \"url\": \"https://avescan.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmeKQVv2QneHaaggw2NfpZ7DGMdjVhPywTdse5RzCs4oGn\",\n \"width\": 232,\n \"height\": 232,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmeKQVv2QneHaaggw2NfpZ7DGMdjVhPywTdse5RzCs4oGn\",\n \"width\": 232,\n \"height\": 232,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://avescoin.io\",\n \"name\": \"Aves Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Aves\",\n \"symbol\": \"AVS\",\n \"decimals\": 18\n },\n \"networkId\": 33333,\n \"rpc\": [\"https://aves.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://33333.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.avescoin.io\"],\n \"shortName\": \"avs\",\n \"slug\": \"aves\",\n \"testnet\": false\n};\n\nvar c33385 = {\n \"chain\": \"ZIL\",\n \"chainId\": 33385,\n \"explorers\": [{\n \"name\": \"Zilliqa EVM Devnet Explorer\",\n \"url\": \"https://otterscan.devnet.zilliqa.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.devnet.zilliqa.com/\"],\n \"icon\": {\n \"url\": \"ipfs://QmTREXNgGtUhSoxFsrkhTe5LUnDBTKL5byaX8kpET6UuKp\",\n \"width\": 2048,\n \"height\": 2048,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.zilliqa.com/\",\n \"name\": \"Zilliqa EVM Devnet\",\n \"nativeCurrency\": {\n \"name\": \"Zilliqa\",\n \"symbol\": \"ZIL\",\n \"decimals\": 18\n },\n \"networkId\": 33385,\n \"rpc\": [\"https://zilliqa-evm-devnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://33385.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.devnet.zilliqa.com/\"],\n \"shortName\": \"zil-devnet\",\n \"slug\": \"zilliqa-evm-devnet\",\n \"testnet\": false\n};\n\nvar c33469 = {\n \"chain\": \"ZIL\",\n \"chainId\": 33469,\n \"explorers\": [{\n \"name\": \"Zilliqa 2 EVM Devnet Explorer\",\n \"url\": \"https://explorer.zq2-devnet.zilstg.dev\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.zq2-devnet.zilstg.dev\"],\n \"icon\": {\n \"url\": \"ipfs://QmTREXNgGtUhSoxFsrkhTe5LUnDBTKL5byaX8kpET6UuKp\",\n \"width\": 2048,\n \"height\": 2048,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.zilliqa.com/\",\n \"name\": \"Zilliqa 2 EVM Devnet\",\n \"nativeCurrency\": {\n \"name\": \"Zilliqa\",\n \"symbol\": \"ZIL\",\n \"decimals\": 18\n },\n \"networkId\": 33469,\n \"rpc\": [\"https://zilliqa-2-evm-devnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://33469.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.zq2-devnet.zilstg.dev\"],\n \"shortName\": \"zq2-devnet\",\n \"slug\": \"zilliqa-2-evm-devnet\",\n \"testnet\": false\n};\n\nvar c33909 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 33909,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \".svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"Reg1116test\",\n \"nativeCurrency\": {\n \"name\": \"Reg1116test Token\",\n \"symbol\": \"JUO\",\n \"decimals\": 18\n },\n \"networkId\": 33909,\n \"redFlags\": [],\n \"rpc\": [\"https://reg1116test.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://33909.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc\"],\n \"shortName\": \"Reg1116test\",\n \"slug\": \"reg1116test\",\n \"testnet\": true\n};\n\nvar c34443 = {\n \"chain\": \"ETH\",\n \"chainId\": 34443,\n \"explorers\": [{\n \"name\": \"modescout\",\n \"url\": \"https://explorer.mode.network\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreidi5y7afj5z4xrz7uz5rkg2mcsv2p2n4ui4g7q4k4ecdz65i2agou\",\n \"width\": 2160,\n \"height\": 2160,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://docs.mode.network/\",\n \"name\": \"Mode\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 34443,\n \"rpc\": [\"https://mode.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://34443.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.mode.network\"],\n \"shortName\": \"mode\",\n \"slug\": \"mode\",\n \"testnet\": false\n};\n\nvar c35011 = {\n \"chain\": \"TARO\",\n \"chainId\": 35011,\n \"explorers\": [{\n \"name\": \"J2O Taro Explorer\",\n \"url\": \"https://exp.j2o.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmdUYi8fjnvdM9iFQ7dwE2YvmhDtavSB3bKhCD2GhPxPks\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"infoURL\": \"https://j2o.io\",\n \"name\": \"J2O Taro\",\n \"nativeCurrency\": {\n \"name\": \"TARO Coin\",\n \"symbol\": \"taro\",\n \"decimals\": 18\n },\n \"networkId\": 35011,\n \"rpc\": [\"https://j2o-taro.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://35011.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.j2o.io\"],\n \"shortName\": \"j2o\",\n \"slug\": \"j2o-taro\",\n \"testnet\": false\n};\n\nvar c35395 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 35395,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"Found 1-4-23\",\n \"nativeCurrency\": {\n \"name\": \"Found 1-4-23 Token\",\n \"symbol\": \"TVJ\",\n \"decimals\": 18\n },\n \"networkId\": 35395,\n \"redFlags\": [],\n \"rpc\": [\"https://found-1-4-23.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://35395.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc\"],\n \"shortName\": \"Found 1-4-23\",\n \"slug\": \"found-1-4-23\",\n \"testnet\": true\n};\n\nvar c35441 = {\n \"chain\": \"Q\",\n \"chainId\": 35441,\n \"explorers\": [{\n \"name\": \"Q explorer\",\n \"url\": \"https://explorer.q.org\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmQUQKe8VEtSthhgXnJ3EmEz94YhpVCpUDZAiU9KYyNLya\",\n \"width\": 585,\n \"height\": 603,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmQUQKe8VEtSthhgXnJ3EmEz94YhpVCpUDZAiU9KYyNLya\",\n \"width\": 585,\n \"height\": 603,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://q.org\",\n \"name\": \"Q Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Q token\",\n \"symbol\": \"Q\",\n \"decimals\": 18\n },\n \"networkId\": 35441,\n \"rpc\": [\"https://q.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://35441.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.q.org\"],\n \"shortName\": \"q\",\n \"slug\": \"q\",\n \"testnet\": false\n};\n\nvar c35443 = {\n \"chain\": \"Q\",\n \"chainId\": 35443,\n \"explorers\": [{\n \"name\": \"Q explorer\",\n \"url\": \"https://explorer.qtestnet.org\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmQUQKe8VEtSthhgXnJ3EmEz94YhpVCpUDZAiU9KYyNLya\",\n \"width\": 585,\n \"height\": 603,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmQUQKe8VEtSthhgXnJ3EmEz94YhpVCpUDZAiU9KYyNLya\",\n \"width\": 585,\n \"height\": 603,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://q.org/\",\n \"name\": \"Q Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Q token\",\n \"symbol\": \"Q\",\n \"decimals\": 18\n },\n \"networkId\": 35443,\n \"rpc\": [\"https://q-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://35443.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.qtestnet.org\"],\n \"shortName\": \"q-testnet\",\n \"slip44\": 1,\n \"slug\": \"q-testnet\",\n \"testnet\": true\n};\n\nvar c35730 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 35730,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \".svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"QR1129I1\",\n \"nativeCurrency\": {\n \"name\": \"QR1129I1 Token\",\n \"symbol\": \"YXAX\",\n \"decimals\": 18\n },\n \"networkId\": 35730,\n \"redFlags\": [],\n \"rpc\": [\"https://qr1129i1.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://35730.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/qr1129i1/testnet/rpc\"],\n \"shortName\": \"QR1129I1\",\n \"slug\": \"qr1129i1\",\n \"testnet\": true\n};\n\nvar c36695 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 36695,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"Cohan Yolo Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Cohan Yolo Testnet Token\",\n \"symbol\": \"KYI\",\n \"decimals\": 18\n },\n \"networkId\": 36695,\n \"redFlags\": [],\n \"rpc\": [\"https://cohan-yolo-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://36695.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avacloud-dev.io/c033f73a-70ff-463d-b121-81b9542e11a1\"],\n \"shortName\": \"Cohan Yolo Testnet\",\n \"slug\": \"cohan-yolo-testnet\",\n \"testnet\": true\n};\n\nvar c36908 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 36908,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \".svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"QR1205s1\",\n \"nativeCurrency\": {\n \"name\": \"QR1205s1 Token\",\n \"symbol\": \"MDN\",\n \"decimals\": 18\n },\n \"networkId\": 36908,\n \"redFlags\": [],\n \"rpc\": [\"https://qr1205s1.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://36908.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/qr1205s1/testnet/rpc\"],\n \"shortName\": \"QR1205s1\",\n \"slug\": \"qr1205s1\",\n \"testnet\": true\n};\n\nvar c37195 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 37195,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"Thari\",\n \"nativeCurrency\": {\n \"name\": \"Thari Token\",\n \"symbol\": \"THARI\",\n \"decimals\": 18\n },\n \"networkId\": 37195,\n \"redFlags\": [],\n \"rpc\": [\"https://thari.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://37195.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/thari/testnet/rpc\"],\n \"shortName\": \"Thari\",\n \"slug\": \"thari\",\n \"testnet\": true\n};\n\nvar c38400 = {\n \"chain\": \"Rangers\",\n \"chainId\": 38400,\n \"explorers\": [{\n \"name\": \"rangersscan\",\n \"url\": \"https://scan.rangersprotocol.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmXR5e5SDABWfQn6XT9uMsVYAo5Bv7vUv4jVs8DFqatZWG\",\n \"width\": 2000,\n \"height\": 2000,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://rangersprotocol.com\",\n \"name\": \"ConnectorManager\",\n \"nativeCurrency\": {\n \"name\": \"Rangers Protocol Gas\",\n \"symbol\": \"cmRPG\",\n \"decimals\": 18\n },\n \"networkId\": 38400,\n \"rpc\": [\"https://connectormanager.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://38400.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://cm.rangersprotocol.com/api/jsonrpc\"],\n \"shortName\": \"cmrpg\",\n \"slug\": \"connectormanager\",\n \"testnet\": false\n};\n\nvar c38401 = {\n \"chain\": \"Rangers\",\n \"chainId\": 38401,\n \"explorers\": [{\n \"name\": \"rangersscan-robin\",\n \"url\": \"https://robin-rangersscan.rangersprotocol.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://robin-faucet.rangersprotocol.com\"],\n \"icon\": {\n \"url\": \"ipfs://QmXR5e5SDABWfQn6XT9uMsVYAo5Bv7vUv4jVs8DFqatZWG\",\n \"width\": 2000,\n \"height\": 2000,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://rangersprotocol.com\",\n \"name\": \"ConnectorManager Robin\",\n \"nativeCurrency\": {\n \"name\": \"Rangers Protocol Gas\",\n \"symbol\": \"ttRPG\",\n \"decimals\": 18\n },\n \"networkId\": 38401,\n \"rpc\": [\"https://connectormanager-robin.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://38401.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://robin-cm.rangersprotocol.com/api/jsonrpc\"],\n \"shortName\": \"ttrpg\",\n \"slug\": \"connectormanager-robin\",\n \"testnet\": false\n};\n\nvar c39142 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 39142,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"ST Found 1-05-24\",\n \"nativeCurrency\": {\n \"name\": \"ST Found 1-05-24 Token\",\n \"symbol\": \"LGT\",\n \"decimals\": 18\n },\n \"networkId\": 39142,\n \"redFlags\": [],\n \"rpc\": [\"https://st-found-1-05-24.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://39142.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc\"],\n \"shortName\": \"ST Found 1-05-24\",\n \"slug\": \"st-found-1-05-24\",\n \"testnet\": true\n};\n\nvar c39797 = {\n \"chain\": \"NRG\",\n \"chainId\": 39797,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://www.energi.world/\",\n \"name\": \"Energi Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Energi\",\n \"symbol\": \"NRG\",\n \"decimals\": 18\n },\n \"networkId\": 39797,\n \"rpc\": [\"https://energi.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://39797.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://nodeapi.energi.network\"],\n \"shortName\": \"nrg\",\n \"slip44\": 39797,\n \"slug\": \"energi\",\n \"testnet\": false\n};\n\nvar c39815 = {\n \"chain\": \"OHO\",\n \"chainId\": 39815,\n \"explorers\": [{\n \"name\": \"ohoscan\",\n \"url\": \"https://ohoscan.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmZt75xixnEtFzqHTrJa8kJkV4cTXmUZqeMeHM8BcvomQc\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmZt75xixnEtFzqHTrJa8kJkV4cTXmUZqeMeHM8BcvomQc\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://oho.ai\",\n \"name\": \"OHO Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"OHO\",\n \"symbol\": \"OHO\",\n \"decimals\": 18\n },\n \"networkId\": 39815,\n \"rpc\": [\"https://oho.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://39815.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.oho.ai\"],\n \"shortName\": \"oho\",\n \"slug\": \"oho\",\n \"testnet\": false\n};\n\nvar c40542 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 40542,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"QI1212I8\",\n \"nativeCurrency\": {\n \"name\": \"QI1212I8 Token\",\n \"symbol\": \"HSCX\",\n \"decimals\": 18\n },\n \"networkId\": 40542,\n \"redFlags\": [],\n \"rpc\": [\"https://qi1212i8.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://40542.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avacloud-test.io/ba4e7766-4bc6-44ec-b43f-598647b4ee71\"],\n \"shortName\": \"QI1212I8\",\n \"slug\": \"qi1212i8\",\n \"testnet\": true\n};\n\nvar c40798 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 40798,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"qr0109y1p\",\n \"nativeCurrency\": {\n \"name\": \"qr0109y1p Token\",\n \"symbol\": \"KZP\",\n \"decimals\": 18\n },\n \"networkId\": 40798,\n \"redFlags\": [],\n \"rpc\": [\"https://qr0109y1p.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://40798.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/qr0109y1p/testnet/rpc\"],\n \"shortName\": \"qr0109y1p\",\n \"slug\": \"qr0109y1p\",\n \"testnet\": true\n};\n\nvar c41500 = {\n \"chain\": \"Opulent-X\",\n \"chainId\": 41500,\n \"explorers\": [{\n \"name\": \"Opulent-X BETA Explorer\",\n \"url\": \"https://explorer.opulent-x.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://beta.opulent-x.com\",\n \"name\": \"Opulent-X BETA\",\n \"nativeCurrency\": {\n \"name\": \"Oxyn Gas\",\n \"symbol\": \"OXYN\",\n \"decimals\": 18\n },\n \"networkId\": 41500,\n \"rpc\": [\"https://opulent-x-beta.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://41500.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://connect.opulent-x.com\"],\n \"shortName\": \"ox-beta\",\n \"slug\": \"opulent-x-beta\",\n \"testnet\": false\n};\n\nvar c42069 = {\n \"chain\": \"42069\",\n \"chainId\": 42069,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://teampeggle.com\",\n \"name\": \"pegglecoin\",\n \"nativeCurrency\": {\n \"name\": \"pegglecoin\",\n \"symbol\": \"peggle\",\n \"decimals\": 18\n },\n \"networkId\": 42069,\n \"rpc\": [],\n \"shortName\": \"PC\",\n \"slug\": \"pegglecoin\",\n \"testnet\": false\n};\n\nvar c42161 = {\n \"chain\": \"ETH\",\n \"chainId\": 42161,\n \"explorers\": [{\n \"name\": \"Arbiscan\",\n \"url\": \"https://arbiscan.io\",\n \"standard\": \"EIP3091\"\n }, {\n \"name\": \"Arbitrum Explorer\",\n \"url\": \"https://explorer.arbitrum.io\",\n \"standard\": \"EIP3091\"\n }, {\n \"name\": \"dexguru\",\n \"url\": \"https://arbitrum.dex.guru\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmRaASKRSjQ5btoUQ2rNTJNxKtx2a2RoewgA7DMQkLVEne\",\n \"width\": 83,\n \"height\": 82,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmcxZHpyJa8T4i63xqjPYrZ6tKrt55tZJpbXcjSDKuKaf9/arbitrum/512.png\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://arbitrum.io\",\n \"name\": \"Arbitrum One\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 42161,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-1\",\n \"bridges\": [{\n \"url\": \"https://bridge.arbitrum.io\"\n }]\n },\n \"redFlags\": [],\n \"rpc\": [\"https://arbitrum.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://42161.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://arbitrum-mainnet.infura.io/v3/${INFURA_API_KEY}\", \"https://arb-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}\", \"https://arb1.arbitrum.io/rpc\", \"https://arbitrum-one.publicnode.com\", \"wss://arbitrum-one.publicnode.com\"],\n \"shortName\": \"arb1\",\n \"slug\": \"arbitrum\",\n \"testnet\": false\n};\n\nvar c42170 = {\n \"chain\": \"ETH\",\n \"chainId\": 42170,\n \"explorers\": [{\n \"name\": \"Arbitrum Nova Chain Explorer\",\n \"url\": \"https://nova-explorer.arbitrum.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }, {\n \"name\": \"dexguru\",\n \"url\": \"https://nova.dex.guru\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmRaASKRSjQ5btoUQ2rNTJNxKtx2a2RoewgA7DMQkLVEne\",\n \"width\": 83,\n \"height\": 82,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [],\n \"infoURL\": \"https://arbitrum.io\",\n \"name\": \"Arbitrum Nova\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 42170,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-1\",\n \"bridges\": [{\n \"url\": \"https://bridge.arbitrum.io\"\n }]\n },\n \"rpc\": [\"https://arbitrum-nova.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://42170.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://nova.arbitrum.io/rpc\", \"https://arbitrum-nova.publicnode.com\", \"wss://arbitrum-nova.publicnode.com\"],\n \"shortName\": \"arb-nova\",\n \"slug\": \"arbitrum-nova\",\n \"testnet\": false\n};\n\nvar c42220 = {\n \"chain\": \"CELO\",\n \"chainId\": 42220,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://explorer.celo.org\",\n \"standard\": \"none\"\n }, {\n \"name\": \"Celoscan\",\n \"url\": \"https://celoscan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://docs.celo.org/\",\n \"name\": \"Celo Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"CELO\",\n \"symbol\": \"CELO\",\n \"decimals\": 18\n },\n \"networkId\": 42220,\n \"rpc\": [\"https://celo.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://42220.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://forno.celo.org\", \"wss://forno.celo.org/ws\"],\n \"shortName\": \"celo\",\n \"slug\": \"celo\",\n \"testnet\": false\n};\n\nvar c42261 = {\n \"chain\": \"Emerald\",\n \"chainId\": 42261,\n \"explorers\": [{\n \"name\": \"Oasis Emerald Testnet Explorer\",\n \"url\": \"https://testnet.explorer.emerald.oasis.dev\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.testnet.oasis.dev/\"],\n \"icon\": {\n \"url\": \"ipfs://bafkreiespupb52akiwrexxg7g72mh7m7h7lum5hmqijmpdh3kmuunzclha\",\n \"width\": 2000,\n \"height\": 2000,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://docs.oasis.io/dapp/emerald\",\n \"name\": \"Oasis Emerald Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Emerald Rose\",\n \"symbol\": \"ROSE\",\n \"decimals\": 18\n },\n \"networkId\": 42261,\n \"rpc\": [\"https://oasis-emerald-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://42261.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.emerald.oasis.dev/\", \"wss://testnet.emerald.oasis.dev/ws\"],\n \"shortName\": \"emerald-testnet\",\n \"slip44\": 1,\n \"slug\": \"oasis-emerald-testnet\",\n \"testnet\": true\n};\n\nvar c42262 = {\n \"chain\": \"Emerald\",\n \"chainId\": 42262,\n \"explorers\": [{\n \"name\": \"Oasis Emerald Explorer\",\n \"url\": \"https://explorer.emerald.oasis.dev\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreiespupb52akiwrexxg7g72mh7m7h7lum5hmqijmpdh3kmuunzclha\",\n \"width\": 2000,\n \"height\": 2000,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://docs.oasis.io/dapp/emerald\",\n \"name\": \"Oasis Emerald\",\n \"nativeCurrency\": {\n \"name\": \"Emerald Rose\",\n \"symbol\": \"ROSE\",\n \"decimals\": 18\n },\n \"networkId\": 42262,\n \"rpc\": [\"https://oasis-emerald.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://42262.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://emerald.oasis.dev\", \"wss://emerald.oasis.dev/ws\"],\n \"shortName\": \"emerald\",\n \"slug\": \"oasis-emerald\",\n \"testnet\": false\n};\n\nvar c42355 = {\n \"chain\": \"GoldX\",\n \"chainId\": 42355,\n \"explorers\": [{\n \"name\": \"GoldXChain Explorer\",\n \"url\": \"https://explorer.goldxchain.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://goldxchain.io\",\n \"name\": \"GoldXChain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"GoldX\",\n \"symbol\": \"GOLDX\",\n \"decimals\": 18\n },\n \"networkId\": 42355,\n \"rpc\": [\"https://goldxchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://42355.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-rpc.goldxchain.io\"],\n \"shortName\": \"goldx\",\n \"slug\": \"goldxchain\",\n \"testnet\": false\n};\n\nvar c42451 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 42451,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"QI1220s1\",\n \"nativeCurrency\": {\n \"name\": \"QI1220s1 Token\",\n \"symbol\": \"BKX\",\n \"decimals\": 18\n },\n \"networkId\": 42451,\n \"redFlags\": [],\n \"rpc\": [\"https://qi1220s1.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://42451.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc\"],\n \"shortName\": \"QI1220s1\",\n \"slug\": \"qi1220s1\",\n \"testnet\": true\n};\n\nvar c42766 = {\n \"chain\": \"ZKFair\",\n \"chainId\": 42766,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://scan.zkfair.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmVb682D4mUXkKNP28xxJDNgSYbDLvEc3kVYx7TQxEa6Cw\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"jpg\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmVb682D4mUXkKNP28xxJDNgSYbDLvEc3kVYx7TQxEa6Cw\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"jpg\"\n },\n \"infoURL\": \"https://zkfair.io\",\n \"name\": \"ZKFair Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"USDC Token\",\n \"symbol\": \"USDC\",\n \"decimals\": 18\n },\n \"networkId\": 42766,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-1\",\n \"bridges\": [{\n \"url\": \"https://wallet.zkfair.io\"\n }]\n },\n \"rpc\": [\"https://zkfair.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://42766.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.zkfair.io\"],\n \"shortName\": \"ZKFair-Mainnet\",\n \"slug\": \"zkfair\",\n \"testnet\": false,\n \"title\": \"ZKFair Mainnet\"\n};\n\nvar c42801 = {\n \"chain\": \"Gesoten Verse\",\n \"chainId\": 42801,\n \"explorers\": [{\n \"name\": \"Gesoten Verse Testnet Explorer\",\n \"url\": \"https://explorer.testnet.verse.gesoten.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://Qmb7oJY9zd9sTzxNNQNTVZQz2hkd1aA94mWm4cvXfJ9QxV\",\n \"width\": 1280,\n \"height\": 1280,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://gesoten.com/\",\n \"name\": \"Gesoten Verse Testnet\",\n \"nativeCurrency\": {\n \"name\": \"OAS\",\n \"symbol\": \"OAS\",\n \"decimals\": 18\n },\n \"networkId\": 42801,\n \"rpc\": [\"https://gesoten-verse-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://42801.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.testnet.verse.gesoten.com/\"],\n \"shortName\": \"GST\",\n \"slip44\": 1,\n \"slug\": \"gesoten-verse-testnet\",\n \"testnet\": true\n};\n\nvar c42888 = {\n \"chain\": \"ETH\",\n \"chainId\": 42888,\n \"explorers\": [{\n \"name\": \"kintoscan\",\n \"url\": \"http://35.215.120.180:4000\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"infoURL\": \"https://ethereum.org\",\n \"name\": \"Kinto Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 42888,\n \"rpc\": [\"https://kinto-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://42888.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"http://35.215.120.180:8545\"],\n \"shortName\": \"keth\",\n \"slip44\": 1,\n \"slug\": \"kinto-testnet\",\n \"testnet\": true,\n \"title\": \"Kinto Testnet\"\n};\n\nvar c43110 = {\n \"chain\": \"ATH\",\n \"chainId\": 43110,\n \"explorers\": [],\n \"faucets\": [\"http://athfaucet.ava.network//?address=${ADDRESS}\"],\n \"infoURL\": \"https://athereum.ava.network\",\n \"name\": \"Athereum\",\n \"nativeCurrency\": {\n \"name\": \"Athereum Ether\",\n \"symbol\": \"ATH\",\n \"decimals\": 18\n },\n \"networkId\": 43110,\n \"rpc\": [\"https://athereum.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://43110.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://ava.network:21015/ext/evm/rpc\"],\n \"shortName\": \"avaeth\",\n \"slug\": \"athereum\",\n \"testnet\": false\n};\n\nvar c43113 = {\n \"chain\": \"AVAX\",\n \"chainId\": 43113,\n \"explorers\": [{\n \"name\": \"snowtrace\",\n \"url\": \"https://testnet.snowtrace.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.avax-test.network/\"],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmcxZHpyJa8T4i63xqjPYrZ6tKrt55tZJpbXcjSDKuKaf9/avalanche/512.png\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://cchain.explorer.avax-test.network\",\n \"name\": \"Avalanche Fuji Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Avalanche\",\n \"symbol\": \"AVAX\",\n \"decimals\": 18\n },\n \"networkId\": 43113,\n \"redFlags\": [],\n \"rpc\": [\"https://avalanche-fuji.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://43113.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.avax-test.network/ext/bc/C/rpc\", \"https://avalanche-fuji-c-chain.publicnode.com\", \"wss://avalanche-fuji-c-chain.publicnode.com\"],\n \"shortName\": \"Fuji\",\n \"slip44\": 1,\n \"slug\": \"avalanche-fuji\",\n \"testnet\": true\n};\n\nvar c43114 = {\n \"chain\": \"AVAX\",\n \"chainId\": 43114,\n \"explorers\": [{\n \"name\": \"snowtrace\",\n \"url\": \"https://snowtrace.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmcxZHpyJa8T4i63xqjPYrZ6tKrt55tZJpbXcjSDKuKaf9/avalanche/512.png\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.avax.network/\",\n \"name\": \"Avalanche C-Chain\",\n \"nativeCurrency\": {\n \"name\": \"Avalanche\",\n \"symbol\": \"AVAX\",\n \"decimals\": 18\n },\n \"networkId\": 43114,\n \"redFlags\": [],\n \"rpc\": [\"https://avalanche.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://43114.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://avalanche-mainnet.infura.io/v3/${INFURA_API_KEY}\", \"https://api.avax.network/ext/bc/C/rpc\", \"https://avalanche-c-chain.publicnode.com\", \"wss://avalanche-c-chain.publicnode.com\"],\n \"shortName\": \"avax\",\n \"slip44\": 9005,\n \"slug\": \"avalanche\",\n \"testnet\": false\n};\n\nvar c43288 = {\n \"chain\": \"Boba Avax\",\n \"chainId\": 43288,\n \"explorers\": [{\n \"name\": \"Boba Avax Explorer\",\n \"url\": \"https://blockexplorer.avax.boba.network\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://docs.boba.network/for-developers/network-avalanche\",\n \"name\": \"Boba Avax\",\n \"nativeCurrency\": {\n \"name\": \"Boba Token\",\n \"symbol\": \"BOBA\",\n \"decimals\": 18\n },\n \"networkId\": 43288,\n \"rpc\": [\"https://boba-avax.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://43288.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://avax.boba.network\", \"wss://wss.avax.boba.network\", \"https://replica.avax.boba.network\", \"wss://replica-wss.avax.boba.network\"],\n \"shortName\": \"bobaavax\",\n \"slug\": \"boba-avax\",\n \"testnet\": false\n};\n\nvar c43851 = {\n \"chain\": \"ETH\",\n \"chainId\": 43851,\n \"explorers\": [{\n \"name\": \"ZKFair Testnet Info\",\n \"url\": \"https://testnet-scan.zkfair.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmVb682D4mUXkKNP28xxJDNgSYbDLvEc3kVYx7TQxEa6Cw\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"jpg\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmVb682D4mUXkKNP28xxJDNgSYbDLvEc3kVYx7TQxEa6Cw\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"jpg\"\n },\n \"infoURL\": \"https://zkfair.io\",\n \"name\": \"ZKFair Testnet\",\n \"nativeCurrency\": {\n \"name\": \"USDC Token\",\n \"symbol\": \"USDC\",\n \"decimals\": 18\n },\n \"networkId\": 43851,\n \"rpc\": [\"https://zkfair-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://43851.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-rpc.zkfair.io\"],\n \"shortName\": \"ZKFair-Testnet\",\n \"slip44\": 1,\n \"slug\": \"zkfair-testnet\",\n \"testnet\": true\n};\n\nvar c44444 = {\n \"chain\": \"fren\",\n \"chainId\": 44444,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://frenscan.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmQk41bYX6WpYyUAdRgomZekxP5mbvZXhfxLEEqtatyJv4\",\n \"width\": 128,\n \"height\": 128,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmQk41bYX6WpYyUAdRgomZekxP5mbvZXhfxLEEqtatyJv4\",\n \"width\": 128,\n \"height\": 128,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://frenchain.app\",\n \"name\": \"Frenchain\",\n \"nativeCurrency\": {\n \"name\": \"FREN\",\n \"symbol\": \"FREN\",\n \"decimals\": 18\n },\n \"networkId\": 44444,\n \"rpc\": [\"https://frenchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://44444.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-02.frenscan.io\"],\n \"shortName\": \"FREN\",\n \"slug\": \"frenchain\",\n \"testnet\": false\n};\n\nvar c44787 = {\n \"chain\": \"CELO\",\n \"chainId\": 44787,\n \"explorers\": [{\n \"name\": \"Alfajoresscan\",\n \"url\": \"https://alfajores.celoscan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://celo.org/developers/faucet\", \"https://cauldron.pretoriaresearchlab.io/alfajores-faucet\"],\n \"features\": [],\n \"infoURL\": \"https://docs.celo.org/\",\n \"name\": \"Celo Alfajores Testnet\",\n \"nativeCurrency\": {\n \"name\": \"CELO\",\n \"symbol\": \"CELO\",\n \"decimals\": 18\n },\n \"networkId\": 44787,\n \"redFlags\": [],\n \"rpc\": [\"https://celo-alfajores-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://44787.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://alfajores-forno.celo-testnet.org\", \"wss://alfajores-forno.celo-testnet.org/ws\"],\n \"shortName\": \"ALFA\",\n \"slip44\": 1,\n \"slug\": \"celo-alfajores-testnet\",\n \"testnet\": true\n};\n\nvar c44808 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 44808,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"klCohan Testnet\",\n \"nativeCurrency\": {\n \"name\": \"klCohan Testnet Token\",\n \"symbol\": \"DBM\",\n \"decimals\": 18\n },\n \"networkId\": 44808,\n \"redFlags\": [],\n \"rpc\": [\"https://klcohan-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://44808.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avacloud-dev.io/d2b6bd35-89f7-4019-bc88-643c31221e5c\"],\n \"shortName\": \"klCohan Testnet\",\n \"slug\": \"klcohan-testnet\",\n \"testnet\": true\n};\n\nvar c45000 = {\n \"chain\": \"TXL\",\n \"chainId\": 45000,\n \"explorers\": [{\n \"name\": \"autobahn explorer\",\n \"url\": \"https://explorer.autobahn.network\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmZP19pbqTco4vaP9siduLWP8pdYArFK3onfR55tvjr12s\",\n \"width\": 489,\n \"height\": 489,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmZP19pbqTco4vaP9siduLWP8pdYArFK3onfR55tvjr12s\",\n \"width\": 489,\n \"height\": 489,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://autobahn.network\",\n \"name\": \"Autobahn Network\",\n \"nativeCurrency\": {\n \"name\": \"TXL\",\n \"symbol\": \"TXL\",\n \"decimals\": 18\n },\n \"networkId\": 45000,\n \"rpc\": [\"https://autobahn-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://45000.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.autobahn.network\"],\n \"shortName\": \"AutobahnNetwork\",\n \"slug\": \"autobahn-network\",\n \"testnet\": false\n};\n\nvar c46688 = {\n \"chain\": \"FSN\",\n \"chainId\": 46688,\n \"explorers\": [{\n \"name\": \"fsnscan\",\n \"url\": \"https://testnet.fsnscan.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmSAFx34SKNi7a139agX12f68oBMo2Ktt9c8yD8aFa14gd\",\n \"width\": 48,\n \"height\": 51,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmX3tsEoj7SdaBLLV8VyyCUAmymdEGiSGeuTbxMrEMVvth\",\n \"width\": 31,\n \"height\": 31,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://fusion.org\",\n \"name\": \"Fusion Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Testnet Fusion\",\n \"symbol\": \"T-FSN\",\n \"decimals\": 18\n },\n \"networkId\": 46688,\n \"rpc\": [\"https://fusion-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://46688.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.fusionnetwork.io\", \"wss://testnet.fusionnetwork.io\"],\n \"shortName\": \"tfsn\",\n \"slip44\": 1,\n \"slug\": \"fusion-testnet\",\n \"testnet\": true\n};\n\nvar c47805 = {\n \"chain\": \"REI\",\n \"chainId\": 47805,\n \"explorers\": [{\n \"name\": \"rei-scan\",\n \"url\": \"https://scan.rei.network\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://rei.network/\",\n \"name\": \"REI Network\",\n \"nativeCurrency\": {\n \"name\": \"REI\",\n \"symbol\": \"REI\",\n \"decimals\": 18\n },\n \"networkId\": 47805,\n \"rpc\": [\"https://rei-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://47805.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.rei.network\", \"wss://rpc.rei.network\"],\n \"shortName\": \"REI\",\n \"slug\": \"rei-network\",\n \"testnet\": false\n};\n\nvar c49049 = {\n \"chain\": \"Wireshape\",\n \"chainId\": 49049,\n \"explorers\": [{\n \"name\": \"Wire Explorer\",\n \"url\": \"https://floripa-explorer.wireshape.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmTAyT3YrW2654CBRqRkec2cCznv6EBsbsRc2y6WQPbvXx\",\n \"width\": 1280,\n \"height\": 1280,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://wireshape.org\",\n \"name\": \"Wireshape Floripa Testnet\",\n \"nativeCurrency\": {\n \"name\": \"WIRE\",\n \"symbol\": \"WIRE\",\n \"decimals\": 18\n },\n \"networkId\": 49049,\n \"rpc\": [\"https://wireshape-floripa-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://49049.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-floripa.wireshape.org\"],\n \"shortName\": \"floripa\",\n \"slip44\": 1,\n \"slug\": \"wireshape-floripa-testnet\",\n \"testnet\": true,\n \"title\": \"Wireshape Floripa Testnet\"\n};\n\nvar c49088 = {\n \"chain\": \"BFC\",\n \"chainId\": 49088,\n \"explorers\": [{\n \"name\": \"explorer-thebifrost\",\n \"url\": \"https://explorer.testnet.thebifrost.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmYxniqbiFD7nXBNjN8boUhoXYEAW23YquArD2Rnkq8WHS\",\n \"width\": 480,\n \"height\": 480,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://thebifrost.io\",\n \"name\": \"Bifrost Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Bifrost\",\n \"symbol\": \"BFC\",\n \"decimals\": 18\n },\n \"networkId\": 49088,\n \"rpc\": [\"https://bifrost-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://49088.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://public-01.testnet.thebifrost.io/rpc\", \"https://public-02.testnet.thebifrost.io/rpc\"],\n \"shortName\": \"tbfc\",\n \"slip44\": 1,\n \"slug\": \"bifrost-testnet\",\n \"testnet\": true,\n \"title\": \"Bifrost Network Testnet\"\n};\n\nvar c49797 = {\n \"chain\": \"NRG\",\n \"chainId\": 49797,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://www.energi.world/\",\n \"name\": \"Energi Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Energi\",\n \"symbol\": \"NRG\",\n \"decimals\": 18\n },\n \"networkId\": 49797,\n \"rpc\": [\"https://energi-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://49797.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://nodeapi.test.energi.network\"],\n \"shortName\": \"tnrg\",\n \"slip44\": 1,\n \"slug\": \"energi-testnet\",\n \"testnet\": true\n};\n\nvar c50001 = {\n \"chain\": \"Liveplex OracleEVM Network\",\n \"chainId\": 50001,\n \"explorers\": [],\n \"faucets\": [],\n \"name\": \"Liveplex OracleEVM\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 50001,\n \"rpc\": [\"https://liveplex-oracleevm.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://50001.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.oracle.liveplex.io\"],\n \"shortName\": \"LOE\",\n \"slug\": \"liveplex-oracleevm\",\n \"testnet\": false\n};\n\nvar c50005 = {\n \"chain\": \"Yooldo Verse\",\n \"chainId\": 50005,\n \"explorers\": [{\n \"name\": \"Yooldo Verse Explorer\",\n \"url\": \"https://explorer.yooldo-verse.xyz\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmWvfA2usnYp1ktzLcqFS8eTLgdp4ifrxjiify46KyG9NZ\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://yooldo.gg/\",\n \"name\": \"Yooldo Verse Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"OAS\",\n \"symbol\": \"OAS\",\n \"decimals\": 18\n },\n \"networkId\": 50005,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-248\"\n },\n \"rpc\": [\"https://yooldo-verse.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://50005.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.yooldo-verse.xyz/\"],\n \"shortName\": \"YVM\",\n \"slug\": \"yooldo-verse\",\n \"testnet\": false\n};\n\nvar c50006 = {\n \"chain\": \"Yooldo Verse\",\n \"chainId\": 50006,\n \"explorers\": [{\n \"name\": \"Yooldo Verse Explorer\",\n \"url\": \"https://explorer.testnet.yooldo-verse.xyz\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmWvfA2usnYp1ktzLcqFS8eTLgdp4ifrxjiify46KyG9NZ\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://yooldo.gg/\",\n \"name\": \"Yooldo Verse Testnet\",\n \"nativeCurrency\": {\n \"name\": \"OAS\",\n \"symbol\": \"OAS\",\n \"decimals\": 18\n },\n \"networkId\": 50006,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-248\"\n },\n \"rpc\": [\"https://yooldo-verse-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://50006.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.testnet.yooldo-verse.xyz/\"],\n \"shortName\": \"YVT\",\n \"slip44\": 1,\n \"slug\": \"yooldo-verse-testnet\",\n \"testnet\": true\n};\n\nvar c50021 = {\n \"chain\": \"GTON Testnet\",\n \"chainId\": 50021,\n \"explorers\": [{\n \"name\": \"GTON Testnet Network Explorer\",\n \"url\": \"https://explorer.testnet.gton.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://gton.capital\",\n \"name\": \"GTON Testnet\",\n \"nativeCurrency\": {\n \"name\": \"GCD\",\n \"symbol\": \"GCD\",\n \"decimals\": 18\n },\n \"networkId\": 50021,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-3\"\n },\n \"rpc\": [\"https://gton-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://50021.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.gton.network/\"],\n \"shortName\": \"tgton\",\n \"slip44\": 1,\n \"slug\": \"gton-testnet\",\n \"testnet\": true\n};\n\nvar c51161 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 51161,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"QI1212I6\",\n \"nativeCurrency\": {\n \"name\": \"QI1212I6 Token\",\n \"symbol\": \"HSCX\",\n \"decimals\": 18\n },\n \"networkId\": 51161,\n \"redFlags\": [],\n \"rpc\": [\"https://qi1212i6.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://51161.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc\"],\n \"shortName\": \"QI1212I6\",\n \"slug\": \"qi1212i6\",\n \"testnet\": true\n};\n\nvar c51178 = {\n \"chain\": \"ETH\",\n \"chainId\": 51178,\n \"explorers\": [{\n \"name\": \"LumozTestnetInfo\",\n \"url\": \"https://lumoz.info\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmZnE2ygPL2ZGuzHGvFCHmrqxwdurrhz3K1yPnwLzKbgay\",\n \"width\": 401,\n \"height\": 400,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmZnE2ygPL2ZGuzHGvFCHmrqxwdurrhz3K1yPnwLzKbgay\",\n \"width\": 401,\n \"height\": 400,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://lumoz.org\",\n \"name\": \"Lumoz Testnet Alpha\",\n \"nativeCurrency\": {\n \"name\": \"Lumoz Test Token\",\n \"symbol\": \"MOZ\",\n \"decimals\": 18\n },\n \"networkId\": 51178,\n \"rpc\": [\"https://lumoz-testnet-alpha.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://51178.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://alpha-us-http-geth.lumoz.org\", \"https://alpha-hk-http-geth.lumoz.org\"],\n \"shortName\": \"Lumoz-Testnet\",\n \"slip44\": 1,\n \"slug\": \"lumoz-testnet-alpha\",\n \"testnet\": true\n};\n\nvar c51712 = {\n \"chain\": \"SRDX\",\n \"chainId\": 51712,\n \"explorers\": [{\n \"name\": \"Sardis\",\n \"url\": \"https://contract-mainnet.sardisnetwork.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.sardisnetwork.com\"],\n \"icon\": {\n \"url\": \"ipfs://QmdR9QJjQEh1mBnf2WbJfehverxiP5RDPWMtEECbDP2rc3\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://mysardis.com\",\n \"name\": \"Sardis Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Sardis\",\n \"symbol\": \"SRDX\",\n \"decimals\": 18\n },\n \"networkId\": 51712,\n \"rpc\": [\"https://sardis.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://51712.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-rpc.sardisnetwork.com\"],\n \"shortName\": \"SRDXm\",\n \"slug\": \"sardis\",\n \"testnet\": false\n};\n\nvar c51740 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 51740,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"QaUser4Testnet\",\n \"nativeCurrency\": {\n \"name\": \"QaUser4Testnet Token\",\n \"symbol\": \"VGW\",\n \"decimals\": 18\n },\n \"networkId\": 51740,\n \"redFlags\": [],\n \"rpc\": [\"https://qauser4testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://51740.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc\"],\n \"shortName\": \"QaUser4Testnet\",\n \"slug\": \"qauser4testnet\",\n \"testnet\": true\n};\n\nvar c52014 = {\n \"chain\": \"Electroneum\",\n \"chainId\": 52014,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://blockexplorer.electroneum.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmVgFqXA3kkCrVYGcWFF7Mhx8JUSe9vSCauNamuKWSvCym\",\n \"width\": 1000,\n \"height\": 1000,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmVgFqXA3kkCrVYGcWFF7Mhx8JUSe9vSCauNamuKWSvCym\",\n \"width\": 1000,\n \"height\": 1000,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://electroneum.com\",\n \"name\": \"Electroneum Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Electroneum\",\n \"symbol\": \"ETN\",\n \"decimals\": 18\n },\n \"networkId\": 52014,\n \"rpc\": [\"https://electroneum.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://52014.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.electroneum.com\"],\n \"shortName\": \"etn-mainnet\",\n \"slug\": \"electroneum\",\n \"testnet\": false\n};\n\nvar c53935 = {\n \"chain\": \"DFK\",\n \"chainId\": 53935,\n \"explorers\": [{\n \"name\": \"ethernal\",\n \"url\": \"https://explorer.dfkchain.com\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmdwQDr6vmBtXmK2TmknkEuZNoaDqTasFdZdu3DRw8b2wt\",\n \"width\": 1000,\n \"height\": 1628,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmQB48m15TzhUFrmu56QCRQjkrkgUaKfgCmKE8o3RzmuPJ\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://defikingdoms.com\",\n \"name\": \"DFK Chain\",\n \"nativeCurrency\": {\n \"name\": \"Jewel\",\n \"symbol\": \"JEWEL\",\n \"decimals\": 18\n },\n \"networkId\": 53935,\n \"rpc\": [\"https://dfk-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://53935.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc\"],\n \"shortName\": \"DFK\",\n \"slug\": \"dfk-chain\",\n \"testnet\": false\n};\n\nvar c54211 = {\n \"chain\": \"TestEdge2\",\n \"chainId\": 54211,\n \"explorers\": [{\n \"name\": \"TestEdge HAQQ Explorer\",\n \"url\": \"https://explorer.testedge2.haqq.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://testedge2.haqq.network\"],\n \"infoURL\": \"https://islamiccoin.net\",\n \"name\": \"Haqq Chain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Islamic Coin\",\n \"symbol\": \"ISLMT\",\n \"decimals\": 18\n },\n \"networkId\": 54211,\n \"rpc\": [\"https://haqq-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://54211.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.eth.testedge2.haqq.network\"],\n \"shortName\": \"ISLMT\",\n \"slip44\": 1,\n \"slug\": \"haqq-chain-testnet\",\n \"testnet\": true\n};\n\nvar c54321 = {\n \"chain\": \"Toronet\",\n \"chainId\": 54321,\n \"ens\": {\n \"registry\": \"0x059C474f26D65B0458F9da10A649a7322aB02C09\"\n },\n \"explorers\": [{\n \"name\": \"toronet_explorer\",\n \"url\": \"https://testnet.toronet.org\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmciSvgLatP6jhgdazuiyD3fSrhipfAN7wC943v1qxcrpv\",\n \"width\": 846,\n \"height\": 733,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://toronet.org\",\n \"name\": \"Toronet Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Toro\",\n \"symbol\": \"TORO\",\n \"decimals\": 18\n },\n \"networkId\": 54321,\n \"rpc\": [\"https://toronet-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://54321.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"http://testnet.toronet.org/rpc\"],\n \"shortName\": \"ToronetTestnet\",\n \"slip44\": 1,\n \"slug\": \"toronet-testnet\",\n \"testnet\": true\n};\n\nvar c55004 = {\n \"chain\": \"ETH\",\n \"chainId\": 55004,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://explorer.titan.tokamak.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://tokamak.network\",\n \"name\": \"Titan\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 55004,\n \"rpc\": [\"https://titan.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://55004.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.titan.tokamak.network\", \"wss://rpc.titan.tokamak.network\"],\n \"shortName\": \"teth\",\n \"slug\": \"titan\",\n \"testnet\": false\n};\n\nvar c55555 = {\n \"chain\": \"REI\",\n \"chainId\": 55555,\n \"explorers\": [{\n \"name\": \"reiscan\",\n \"url\": \"https://reiscan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"http://kururu.finance/faucet?chainId=55555\"],\n \"icon\": {\n \"url\": \"ipfs://QmNy5d5knHVjJJS9g4kLsh9i73RTjckpKL6KZvRk6ptbhf\",\n \"width\": 591,\n \"height\": 591,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://reichain.io\",\n \"name\": \"REI Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Rei\",\n \"symbol\": \"REI\",\n \"decimals\": 18\n },\n \"networkId\": 55555,\n \"rpc\": [\"https://rei-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://55555.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rei-rpc.moonrhythm.io\"],\n \"shortName\": \"reichain\",\n \"slug\": \"rei-chain\",\n \"testnet\": false\n};\n\nvar c55556 = {\n \"chain\": \"REI\",\n \"chainId\": 55556,\n \"explorers\": [{\n \"name\": \"reiscan\",\n \"url\": \"https://testnet.reiscan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"http://kururu.finance/faucet?chainId=55556\"],\n \"icon\": {\n \"url\": \"ipfs://QmNy5d5knHVjJJS9g4kLsh9i73RTjckpKL6KZvRk6ptbhf\",\n \"width\": 591,\n \"height\": 591,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://reichain.io\",\n \"name\": \"REI Chain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"tRei\",\n \"symbol\": \"tREI\",\n \"decimals\": 18\n },\n \"networkId\": 55556,\n \"rpc\": [\"https://rei-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://55556.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rei-testnet-rpc.moonrhythm.io\"],\n \"shortName\": \"trei\",\n \"slip44\": 1,\n \"slug\": \"rei-chain-testnet\",\n \"testnet\": true\n};\n\nvar c56288 = {\n \"chain\": \"Boba BNB Mainnet\",\n \"chainId\": 56288,\n \"explorers\": [{\n \"name\": \"Boba BNB block explorer\",\n \"url\": \"https://blockexplorer.bnb.boba.network\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://boba.network\",\n \"name\": \"Boba BNB Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Boba Token\",\n \"symbol\": \"BOBA\",\n \"decimals\": 18\n },\n \"networkId\": 56288,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-5\",\n \"bridges\": [{\n \"url\": \"https://gateway.boba.network\"\n }]\n },\n \"rpc\": [\"https://boba-bnb.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://56288.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://bnb.boba.network\", \"https://boba-bnb.gateway.tenderly.co/\", \"https://gateway.tenderly.co/public/boba-bnb\", \"https://replica.bnb.boba.network\", \"wss://boba-bnb.gateway.tenderly.co/\", \"wss://gateway.tenderly.co/public/boba-bnb\"],\n \"shortName\": \"BobaBnb\",\n \"slug\": \"boba-bnb\",\n \"testnet\": false\n};\n\nvar c56789 = {\n \"chain\": \"NOVA chain\",\n \"chainId\": 56789,\n \"explorers\": [{\n \"name\": \"novascan\",\n \"url\": \"https://novascan.velo.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://nova-faucet.velo.org\"],\n \"icon\": {\n \"url\": \"ipfs://QmYqvnW2jwPEKUv8BdaV4sbL8Audcwosat6SPn4GqYtKxc\",\n \"width\": 225,\n \"height\": 225,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://velo.org\",\n \"name\": \"VELO Labs Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Nova\",\n \"symbol\": \"NOVA\",\n \"decimals\": 18\n },\n \"networkId\": 56789,\n \"rpc\": [\"https://velo-labs.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://56789.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://nova.velo.org\"],\n \"shortName\": \"VELO\",\n \"slug\": \"velo-labs\",\n \"testnet\": false\n};\n\nvar c56914 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 56914,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"KK1223\",\n \"nativeCurrency\": {\n \"name\": \"KK1223 Token\",\n \"symbol\": \"KLK\",\n \"decimals\": 18\n },\n \"networkId\": 56914,\n \"redFlags\": [],\n \"rpc\": [\"https://kk1223.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://56914.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avacloud-dev.io/bf540c23-4601-4768-9e26-f2e5f0f89c18\"],\n \"shortName\": \"KK1223\",\n \"slug\": \"kk1223\",\n \"testnet\": true\n};\n\nvar c57000 = {\n \"chain\": \"SYS\",\n \"chainId\": 57000,\n \"explorers\": [{\n \"name\": \"Rollux Testnet Explorer\",\n \"url\": \"https://rollux.tanenbaum.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://rollux.id/faucetapp\"],\n \"infoURL\": \"https://rollux.com\",\n \"name\": \"Rollux Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Testnet Syscoin\",\n \"symbol\": \"TSYS\",\n \"decimals\": 18\n },\n \"networkId\": 57000,\n \"rpc\": [\"https://rollux-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://57000.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-tanenbaum.rollux.com\", \"https://rpc.ankr.com/rollux_testnet/${ANKR_API_KEY}\", \"wss://rpc-tanenbaum.rollux.com/wss\"],\n \"shortName\": \"tsys-rollux\",\n \"slip44\": 1,\n \"slug\": \"rollux-testnet\",\n \"testnet\": true\n};\n\nvar c57522 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 57522,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"Cohan Test\",\n \"nativeCurrency\": {\n \"name\": \"Cohan Test Token\",\n \"symbol\": \"NYU\",\n \"decimals\": 18\n },\n \"networkId\": 57522,\n \"redFlags\": [],\n \"rpc\": [\"https://cohan-test.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://57522.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avacloud-dev.io/fc395ee3-9e2d-45ea-951a-233b4f3e367d\"],\n \"shortName\": \"Cohan Test\",\n \"slug\": \"cohan-test\",\n \"testnet\": true\n};\n\nvar c58008 = {\n \"chain\": \"ETH\",\n \"chainId\": 58008,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://explorer.sepolia.publicgoods.network\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmUVJ7MLCEAfq3pHVPFLscqRMiyAY5biVgTkeDQCmAhHNS\",\n \"width\": 574,\n \"height\": 574,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://publicgoods.network/\",\n \"name\": \"Sepolia PGN (Public Goods Network)\",\n \"nativeCurrency\": {\n \"name\": \"Sepolia Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 58008,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-11155111\",\n \"bridges\": [{\n \"url\": \"https://pgn-bridge.vercel.app/bridge\"\n }]\n },\n \"redFlags\": [],\n \"rpc\": [\"https://sepolia-pgn-public-goods-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://58008.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://sepolia.publicgoods.network\"],\n \"shortName\": \"sepPGN\",\n \"slug\": \"sepolia-pgn-public-goods-network\",\n \"testnet\": true\n};\n\nvar c59069 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 59069,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"ST 12-12 V2\",\n \"nativeCurrency\": {\n \"name\": \"ST 12-12 V2 Token\",\n \"symbol\": \"GXE\",\n \"decimals\": 18\n },\n \"networkId\": 59069,\n \"redFlags\": [],\n \"rpc\": [\"https://st-12-12-v2.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://59069.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc\"],\n \"shortName\": \"ST 12-12 V2\",\n \"slug\": \"st-12-12-v2\",\n \"testnet\": true\n};\n\nvar c59140 = {\n \"chain\": \"ETH\",\n \"chainId\": 59140,\n \"explorers\": [{\n \"name\": \"Etherscan\",\n \"url\": \"https://goerli.lineascan.build\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmURjritnHL7a8TwZgsFwp3f272DJmG5paaPtWDZ98QZwH\",\n \"width\": 97,\n \"height\": 102,\n \"format\": \"svg\"\n }\n }, {\n \"name\": \"Blockscout\",\n \"url\": \"https://explorer.goerli.linea.build\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmURjritnHL7a8TwZgsFwp3f272DJmG5paaPtWDZ98QZwH\",\n \"width\": 97,\n \"height\": 102,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [\"https://faucetlink.to/goerli\"],\n \"icon\": {\n \"url\": \"ipfs://QmURjritnHL7a8TwZgsFwp3f272DJmG5paaPtWDZ98QZwH\",\n \"width\": 97,\n \"height\": 102,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://linea.build\",\n \"name\": \"Linea Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Linea Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 59140,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-5\",\n \"bridges\": [{\n \"url\": \"https://goerli.hop.exchange/#/send?token=ETH&sourceNetwork=ethereum&destNetwork=linea\"\n }]\n },\n \"rpc\": [\"https://linea-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://59140.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.goerli.linea.build\", \"wss://rpc.goerli.linea.build\", \"https://linea-goerli.infura.io/v3/${INFURA_API_KEY}\", \"wss://linea-goerli.infura.io/ws/v3/${INFURA_API_KEY}\"],\n \"shortName\": \"linea-testnet\",\n \"slip44\": 1,\n \"slug\": \"linea-testnet\",\n \"status\": \"active\",\n \"testnet\": true,\n \"title\": \"Linea Goerli Testnet\"\n};\n\nvar c59144 = {\n \"chain\": \"ETH\",\n \"chainId\": 59144,\n \"explorers\": [{\n \"name\": \"lineascan\",\n \"url\": \"https://lineascan.build\",\n \"standard\": \"EIP3091\"\n }, {\n \"name\": \"Blockscout\",\n \"url\": \"https://explorer.linea.build\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmURjritnHL7a8TwZgsFwp3f272DJmG5paaPtWDZ98QZwH\",\n \"width\": 97,\n \"height\": 102,\n \"format\": \"svg\"\n }\n }, {\n \"name\": \"L2scan\",\n \"url\": \"https://linea.l2scan.co\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmURjritnHL7a8TwZgsFwp3f272DJmG5paaPtWDZ98QZwH\",\n \"width\": 97,\n \"height\": 102,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmURjritnHL7a8TwZgsFwp3f272DJmG5paaPtWDZ98QZwH\",\n \"width\": 97,\n \"height\": 102,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://linea.build\",\n \"name\": \"Linea\",\n \"nativeCurrency\": {\n \"name\": \"Linea Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 59144,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-1\",\n \"bridges\": [{\n \"url\": \"https://bridge.linea.build\"\n }]\n },\n \"redFlags\": [],\n \"rpc\": [\"https://linea.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://59144.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://linea-mainnet.infura.io/v3/${INFURA_API_KEY}\", \"wss://linea-mainnet.infura.io/ws/v3/${INFURA_API_KEY}\", \"https://rpc.linea.build\", \"wss://rpc.linea.build\"],\n \"shortName\": \"linea\",\n \"slug\": \"linea\",\n \"status\": \"active\",\n \"testnet\": false,\n \"title\": \"Linea Mainnet\"\n};\n\nvar c59971 = {\n \"chain\": \"GCODE\",\n \"chainId\": 59971,\n \"explorers\": [{\n \"name\": \"Genesys Scan\",\n \"url\": \"https://genesysscan.io\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://bafkreihgmpaceze7rxpajv7yrlx3cb6daqubippkpvgryzairtaubsjjoe\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreihgmpaceze7rxpajv7yrlx3cb6daqubippkpvgryzairtaubsjjoe\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://genesyscode.io\",\n \"name\": \"Genesys Code Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"GenesysCode\",\n \"symbol\": \"GCODE\",\n \"decimals\": 18\n },\n \"networkId\": 59971,\n \"rpc\": [\"https://genesys-code.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://59971.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.genesyscode.io/\"],\n \"shortName\": \"gcode\",\n \"slug\": \"genesys-code\",\n \"testnet\": false\n};\n\nvar c60000 = {\n \"chain\": \"Thinkium\",\n \"chainId\": 60000,\n \"explorers\": [{\n \"name\": \"thinkiumscan\",\n \"url\": \"https://test0.thinkiumscan.net\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://www.thinkiumdev.net/faucet\"],\n \"infoURL\": \"https://thinkium.net/\",\n \"name\": \"Thinkium Testnet Chain 0\",\n \"nativeCurrency\": {\n \"name\": \"TKM\",\n \"symbol\": \"TKM\",\n \"decimals\": 18\n },\n \"networkId\": 60000,\n \"rpc\": [\"https://thinkium-testnet-chain-0.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://60000.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://test.thinkiumrpc.net/\"],\n \"shortName\": \"TKM-test0\",\n \"slip44\": 1,\n \"slug\": \"thinkium-testnet-chain-0\",\n \"testnet\": true\n};\n\nvar c60001 = {\n \"chain\": \"Thinkium\",\n \"chainId\": 60001,\n \"explorers\": [{\n \"name\": \"thinkiumscan\",\n \"url\": \"https://test1.thinkiumscan.net\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://www.thinkiumdev.net/faucet\"],\n \"infoURL\": \"https://thinkium.net/\",\n \"name\": \"Thinkium Testnet Chain 1\",\n \"nativeCurrency\": {\n \"name\": \"TKM\",\n \"symbol\": \"TKM\",\n \"decimals\": 18\n },\n \"networkId\": 60001,\n \"rpc\": [\"https://thinkium-testnet-chain-1.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://60001.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://test1.thinkiumrpc.net/\"],\n \"shortName\": \"TKM-test1\",\n \"slip44\": 1,\n \"slug\": \"thinkium-testnet-chain-1\",\n \"testnet\": true\n};\n\nvar c60002 = {\n \"chain\": \"Thinkium\",\n \"chainId\": 60002,\n \"explorers\": [{\n \"name\": \"thinkiumscan\",\n \"url\": \"https://test2.thinkiumscan.net\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://www.thinkiumdev.net/faucet\"],\n \"infoURL\": \"https://thinkium.net/\",\n \"name\": \"Thinkium Testnet Chain 2\",\n \"nativeCurrency\": {\n \"name\": \"TKM\",\n \"symbol\": \"TKM\",\n \"decimals\": 18\n },\n \"networkId\": 60002,\n \"rpc\": [\"https://thinkium-testnet-chain-2.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://60002.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://test2.thinkiumrpc.net/\"],\n \"shortName\": \"TKM-test2\",\n \"slip44\": 1,\n \"slug\": \"thinkium-testnet-chain-2\",\n \"testnet\": true\n};\n\nvar c60103 = {\n \"chain\": \"Thinkium\",\n \"chainId\": 60103,\n \"explorers\": [{\n \"name\": \"thinkiumscan\",\n \"url\": \"https://test103.thinkiumscan.net\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://www.thinkiumdev.net/faucet\"],\n \"infoURL\": \"https://thinkium.net/\",\n \"name\": \"Thinkium Testnet Chain 103\",\n \"nativeCurrency\": {\n \"name\": \"TKM\",\n \"symbol\": \"TKM\",\n \"decimals\": 18\n },\n \"networkId\": 60103,\n \"rpc\": [\"https://thinkium-testnet-chain-103.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://60103.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://test103.thinkiumrpc.net/\"],\n \"shortName\": \"TKM-test103\",\n \"slip44\": 1,\n \"slug\": \"thinkium-testnet-chain-103\",\n \"testnet\": true\n};\n\nvar c60841 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 60841,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \".svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"SCG-K\",\n \"nativeCurrency\": {\n \"name\": \"SCG-K Token\",\n \"symbol\": \"REC\",\n \"decimals\": 18\n },\n \"networkId\": 60841,\n \"redFlags\": [],\n \"rpc\": [\"https://scg-k.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://60841.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/scgk/testnet/rpc\"],\n \"shortName\": \"SCG-K\",\n \"slug\": \"scg-k\",\n \"testnet\": true\n};\n\nvar c61800 = {\n \"chain\": \"AXEL\",\n \"chainId\": 61800,\n \"explorers\": [{\n \"name\": \"AxelChain Dev-Net Explorer\",\n \"url\": \"https://devexplorer2.viacube.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmNx8FRacfNeawhkjk5p57EKzDHkLGMaBBmK2VRL5CB2P2\",\n \"width\": 40,\n \"height\": 40,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://www.axel.org\",\n \"name\": \"AxelChain Dev-Net\",\n \"nativeCurrency\": {\n \"name\": \"Axelium\",\n \"symbol\": \"AIUM\",\n \"decimals\": 18\n },\n \"networkId\": 61800,\n \"rpc\": [\"https://axelchain-dev-net.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://61800.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://aium-rpc-dev.viacube.com\"],\n \"shortName\": \"aium-dev\",\n \"slug\": \"axelchain-dev-net\",\n \"testnet\": false\n};\n\nvar c61803 = {\n \"chain\": \"Etica Protocol (ETI/EGAZ)\",\n \"chainId\": 61803,\n \"explorers\": [{\n \"name\": \"eticascan\",\n \"url\": \"https://eticascan.org\",\n \"standard\": \"EIP3091\"\n }, {\n \"name\": \"eticastats\",\n \"url\": \"http://explorer.etica-stats.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"http://faucet.etica-stats.org/\"],\n \"icon\": {\n \"url\": \"ipfs://QmYSyhUqm6ArWyALBe3G64823ZpEUmFdkzKZ93hUUhNKgU\",\n \"width\": 360,\n \"height\": 361,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://eticaprotocol.org\",\n \"name\": \"Etica Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"EGAZ\",\n \"symbol\": \"EGAZ\",\n \"decimals\": 18\n },\n \"networkId\": 61803,\n \"rpc\": [\"https://etica.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://61803.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://eticamainnet.eticascan.org\", \"https://eticamainnet.eticaprotocol.org\"],\n \"shortName\": \"Etica\",\n \"slug\": \"etica\",\n \"testnet\": false\n};\n\nvar c61916 = {\n \"chain\": \"DoKEN Super Chain\",\n \"chainId\": 61916,\n \"explorers\": [{\n \"name\": \"DSC Scan\",\n \"url\": \"https://explore.doken.dev\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://bafkreifms4eio6v56oyeemnnu5luq3sc44hptan225lr45itgzu3u372iu\",\n \"width\": 200,\n \"height\": 200,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreifms4eio6v56oyeemnnu5luq3sc44hptan225lr45itgzu3u372iu\",\n \"width\": 200,\n \"height\": 200,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://doken.dev/\",\n \"name\": \"DoKEN Super Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"DoKEN\",\n \"symbol\": \"DKN\",\n \"decimals\": 18\n },\n \"networkId\": 61916,\n \"rpc\": [\"https://doken-super-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://61916.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://sgrpc.doken.dev\", \"https://nyrpc.doken.dev\", \"https://ukrpc.doken.dev\"],\n \"shortName\": \"DoKEN\",\n \"slug\": \"doken-super-chain\",\n \"testnet\": false\n};\n\nvar c62278 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 62278,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \".svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"qi1121i1\",\n \"nativeCurrency\": {\n \"name\": \"qi1121i1 Token\",\n \"symbol\": \"SJOX\",\n \"decimals\": 18\n },\n \"networkId\": 62278,\n \"redFlags\": [],\n \"rpc\": [\"https://qi1121i1.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://62278.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc\"],\n \"shortName\": \"qi1121i1\",\n \"slug\": \"qi1121i1\",\n \"testnet\": true\n};\n\nvar c62320 = {\n \"chain\": \"CELO\",\n \"chainId\": 62320,\n \"explorers\": [],\n \"faucets\": [\"https://docs.google.com/forms/d/e/1FAIpQLSdfr1BwUTYepVmmvfVUDRCwALejZ-TUva2YujNpvrEmPAX2pg/viewform\", \"https://cauldron.pretoriaresearchlab.io/baklava-faucet\"],\n \"infoURL\": \"https://docs.celo.org/\",\n \"name\": \"Celo Baklava Testnet\",\n \"nativeCurrency\": {\n \"name\": \"CELO\",\n \"symbol\": \"CELO\",\n \"decimals\": 18\n },\n \"networkId\": 62320,\n \"rpc\": [\"https://celo-baklava-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://62320.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://baklava-forno.celo-testnet.org\"],\n \"shortName\": \"BKLV\",\n \"slip44\": 1,\n \"slug\": \"celo-baklava-testnet\",\n \"testnet\": true\n};\n\nvar c62621 = {\n \"chain\": \"MultiVAC\",\n \"chainId\": 62621,\n \"explorers\": [{\n \"name\": \"MultiVAC Explorer\",\n \"url\": \"https://e.mtv.ac\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmWb1gthhbzkiLdgcP8ccZprGbJVjFcW8Rn4uJjrw4jd3B\",\n \"width\": 200,\n \"height\": 200,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://mtv.ac\",\n \"name\": \"MultiVAC Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"MultiVAC\",\n \"symbol\": \"MTV\",\n \"decimals\": 18\n },\n \"networkId\": 62621,\n \"rpc\": [\"https://multivac.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://62621.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.mtv.ac\", \"https://rpc-eu.mtv.ac\"],\n \"shortName\": \"mtv\",\n \"slug\": \"multivac\",\n \"testnet\": false\n};\n\nvar c63000 = {\n \"chain\": \"ECS\",\n \"chainId\": 63000,\n \"explorers\": [{\n \"name\": \"eCredits MainNet Explorer\",\n \"url\": \"https://explorer.ecredits.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmU9H9JE1KtLh2Fxrd8EWTMjKGJBpgRWKUeEx7u6ic4kBY\",\n \"width\": 32,\n \"height\": 32,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmU9H9JE1KtLh2Fxrd8EWTMjKGJBpgRWKUeEx7u6ic4kBY\",\n \"width\": 32,\n \"height\": 32,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://ecredits.com\",\n \"name\": \"eCredits Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"eCredits\",\n \"symbol\": \"ECS\",\n \"decimals\": 18\n },\n \"networkId\": 63000,\n \"rpc\": [\"https://ecredits.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://63000.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.ecredits.com\"],\n \"shortName\": \"ecs\",\n \"slug\": \"ecredits\",\n \"testnet\": false\n};\n\nvar c63001 = {\n \"chain\": \"ECS\",\n \"chainId\": 63001,\n \"explorers\": [{\n \"name\": \"eCredits TestNet Explorer\",\n \"url\": \"https://explorer.tst.ecredits.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmU9H9JE1KtLh2Fxrd8EWTMjKGJBpgRWKUeEx7u6ic4kBY\",\n \"width\": 32,\n \"height\": 32,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucet.tst.ecredits.com\"],\n \"icon\": {\n \"url\": \"ipfs://QmU9H9JE1KtLh2Fxrd8EWTMjKGJBpgRWKUeEx7u6ic4kBY\",\n \"width\": 32,\n \"height\": 32,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://ecredits.com\",\n \"name\": \"eCredits Testnet\",\n \"nativeCurrency\": {\n \"name\": \"eCredits\",\n \"symbol\": \"ECS\",\n \"decimals\": 18\n },\n \"networkId\": 63001,\n \"rpc\": [\"https://ecredits-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://63001.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.tst.ecredits.com\"],\n \"shortName\": \"ecs-testnet\",\n \"slip44\": 1,\n \"slug\": \"ecredits-testnet\",\n \"testnet\": true\n};\n\nvar c63079 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 63079,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \".svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"MT 1121-2\",\n \"nativeCurrency\": {\n \"name\": \"MT 1121-2 Token\",\n \"symbol\": \"RCE\",\n \"decimals\": 18\n },\n \"networkId\": 63079,\n \"redFlags\": [],\n \"rpc\": [\"https://mt-1121-2.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://63079.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avacloud-test.io/d76ea66a-e423-49f6-8ef1-4355260b47f1\"],\n \"shortName\": \"MT 1121-2\",\n \"slug\": \"mt-1121-2\",\n \"testnet\": true\n};\n\nvar c65450 = {\n \"chain\": \"SCOLWEI\",\n \"chainId\": 65450,\n \"explorers\": [{\n \"name\": \"Scolscan Explorer\",\n \"url\": \"https://explorer.scolcoin.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmVES1eqDXhP8SdeCpM85wvjmhrQDXGRquQebDrSdvJqpt\",\n \"width\": 792,\n \"height\": 822,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://scolcoin.com\",\n \"name\": \"Scolcoin Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Scolcoin\",\n \"symbol\": \"SCOL\",\n \"decimals\": 18\n },\n \"networkId\": 65450,\n \"rpc\": [\"https://scolcoin.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://65450.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-rpc.scolcoin.com\"],\n \"shortName\": \"SRC\",\n \"slug\": \"scolcoin\",\n \"testnet\": false\n};\n\nvar c66988 = {\n \"chain\": \"JanusNetwork\",\n \"chainId\": 66988,\n \"explorers\": [{\n \"name\": \"JanusNetwork Testnet Explorer\",\n \"url\": \"https://beta.scan.janusnetwork.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreifc3vnwf4hj3bo6fg4u5qlqmjgajjgezyeg236qjcihl4ha42siuq\",\n \"width\": 819,\n \"height\": 792,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://janus-network.gitbook.io/janus\",\n \"name\": \"Janus Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Janus\",\n \"symbol\": \"JNS\",\n \"decimals\": 18\n },\n \"networkId\": 66988,\n \"rpc\": [\"https://janus-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://66988.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.test.janusnetwork.io\"],\n \"shortName\": \"janusnetwork-testnet\",\n \"slip44\": 1,\n \"slug\": \"janus-testnet\",\n \"status\": \"active\",\n \"testnet\": true\n};\n\nvar c67390 = {\n \"chain\": \"SIN\",\n \"chainId\": 67390,\n \"explorers\": [{\n \"name\": \"siriusnetscan\",\n \"url\": \"https://siriusnet.tryethernal.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://macaucasinolisboa.xyz\",\n \"name\": \"SiriusNet\",\n \"nativeCurrency\": {\n \"name\": \"MCD\",\n \"symbol\": \"MCD\",\n \"decimals\": 18\n },\n \"networkId\": 67390,\n \"rpc\": [\"https://siriusnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://67390.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://u0tnafcv6j:o2T045sxuCNXL878RDQLp5__Zj-es2cvdjtgkl4etn0@u0v7kwtvtg-u0wj114sve-rpc.us0-aws.kaleido.io/\"],\n \"shortName\": \"mcl\",\n \"slug\": \"siriusnet\",\n \"status\": \"deprecated\",\n \"testnet\": false\n};\n\nvar c67588 = {\n \"chain\": \"COSMIC\",\n \"chainId\": 67588,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://cosmicchain.site\",\n \"name\": \"Cosmic Chain\",\n \"nativeCurrency\": {\n \"name\": \"Cosmic Chain\",\n \"symbol\": \"COSMIC\",\n \"decimals\": 18\n },\n \"networkId\": 3344,\n \"rpc\": [\"https://cosmic-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://67588.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"http://testnet.cosmicchain.site:3344\"],\n \"shortName\": \"Cosmic\",\n \"slug\": \"cosmic-chain\",\n \"testnet\": true\n};\n\nvar c68770 = {\n \"chain\": \"DM2 Verse\",\n \"chainId\": 68770,\n \"explorers\": [{\n \"name\": \"DM2Verse Explorer\",\n \"url\": \"https://explorer.dm2verse.dmm.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmPMqjf5XKZ4Cxa1u8qc8Zj9mmVLBoqK7N5h2zFr3Rsyzw\",\n \"width\": 260,\n \"height\": 260,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://seamoon.dmm.com\",\n \"name\": \"DM2 Verse Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"OAS\",\n \"symbol\": \"OAS\",\n \"decimals\": 18\n },\n \"networkId\": 68770,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-248\"\n },\n \"rpc\": [\"https://dm2-verse.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://68770.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.dm2verse.dmm.com\"],\n \"shortName\": \"dm2\",\n \"slug\": \"dm2-verse\",\n \"testnet\": false\n};\n\nvar c69399 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 69399,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"QI0103I1\",\n \"nativeCurrency\": {\n \"name\": \"QI0103I1 Token\",\n \"symbol\": \"AYYX\",\n \"decimals\": 18\n },\n \"networkId\": 69399,\n \"redFlags\": [],\n \"rpc\": [\"https://qi0103i1.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://69399.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc\"],\n \"shortName\": \"QI0103I1\",\n \"slug\": \"qi0103i1\",\n \"testnet\": true\n};\n\nvar c69420 = {\n \"chain\": \"ETH\",\n \"chainId\": 69420,\n \"explorers\": [{\n \"name\": \"Condrieu explorer\",\n \"url\": \"https://explorer.condrieu.ethdevops.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://faucet.condrieu.ethdevops.io\"],\n \"infoURL\": \"https://condrieu.ethdevops.io\",\n \"name\": \"Condrieu\",\n \"nativeCurrency\": {\n \"name\": \"Condrieu Testnet Ether\",\n \"symbol\": \"CTE\",\n \"decimals\": 18\n },\n \"networkId\": 69420,\n \"rpc\": [\"https://condrieu.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://69420.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.condrieu.ethdevops.io:8545\"],\n \"shortName\": \"cndr\",\n \"slip44\": 1,\n \"slug\": \"condrieu\",\n \"testnet\": true,\n \"title\": \"Ethereum Verkle Testnet Condrieu\"\n};\n\nvar c69740 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 69740,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \".svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"Will's Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Will's Testnet Token\",\n \"symbol\": \"WLDVNT\",\n \"decimals\": 18\n },\n \"networkId\": 69740,\n \"redFlags\": [],\n \"rpc\": [\"https://will-s-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://69740.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc\"],\n \"shortName\": \"Will's Testnet\",\n \"slug\": \"will-s-testnet\",\n \"testnet\": true\n};\n\nvar c70000 = {\n \"chain\": \"Thinkium\",\n \"chainId\": 70000,\n \"explorers\": [{\n \"name\": \"thinkiumscan\",\n \"url\": \"https://chain0.thinkiumscan.net\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://thinkium.net/\",\n \"name\": \"Thinkium Mainnet Chain 0\",\n \"nativeCurrency\": {\n \"name\": \"TKM\",\n \"symbol\": \"TKM\",\n \"decimals\": 18\n },\n \"networkId\": 70000,\n \"rpc\": [\"https://thinkium-chain-0.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://70000.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://proxy.thinkiumrpc.net/\"],\n \"shortName\": \"TKM0\",\n \"slug\": \"thinkium-chain-0\",\n \"testnet\": false\n};\n\nvar c70001 = {\n \"chain\": \"Thinkium\",\n \"chainId\": 70001,\n \"explorers\": [{\n \"name\": \"thinkiumscan\",\n \"url\": \"https://chain1.thinkiumscan.net\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://thinkium.net/\",\n \"name\": \"Thinkium Mainnet Chain 1\",\n \"nativeCurrency\": {\n \"name\": \"TKM\",\n \"symbol\": \"TKM\",\n \"decimals\": 18\n },\n \"networkId\": 70001,\n \"rpc\": [\"https://thinkium-chain-1.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://70001.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://proxy1.thinkiumrpc.net/\"],\n \"shortName\": \"TKM1\",\n \"slug\": \"thinkium-chain-1\",\n \"testnet\": false\n};\n\nvar c70002 = {\n \"chain\": \"Thinkium\",\n \"chainId\": 70002,\n \"explorers\": [{\n \"name\": \"thinkiumscan\",\n \"url\": \"https://chain2.thinkiumscan.net\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://thinkium.net/\",\n \"name\": \"Thinkium Mainnet Chain 2\",\n \"nativeCurrency\": {\n \"name\": \"TKM\",\n \"symbol\": \"TKM\",\n \"decimals\": 18\n },\n \"networkId\": 70002,\n \"rpc\": [\"https://thinkium-chain-2.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://70002.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://proxy2.thinkiumrpc.net/\"],\n \"shortName\": \"TKM2\",\n \"slug\": \"thinkium-chain-2\",\n \"testnet\": false\n};\n\nvar c70103 = {\n \"chain\": \"Thinkium\",\n \"chainId\": 70103,\n \"explorers\": [{\n \"name\": \"thinkiumscan\",\n \"url\": \"https://chain103.thinkiumscan.net\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://thinkium.net/\",\n \"name\": \"Thinkium Mainnet Chain 103\",\n \"nativeCurrency\": {\n \"name\": \"TKM\",\n \"symbol\": \"TKM\",\n \"decimals\": 18\n },\n \"networkId\": 70103,\n \"rpc\": [\"https://thinkium-chain-103.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://70103.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://proxy103.thinkiumrpc.net/\"],\n \"shortName\": \"TKM103\",\n \"slug\": \"thinkium-chain-103\",\n \"testnet\": false\n};\n\nvar c70466 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 70466,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"Cohan test3\",\n \"nativeCurrency\": {\n \"name\": \"Cohan test3 Token\",\n \"symbol\": \"HYN\",\n \"decimals\": 18\n },\n \"networkId\": 70466,\n \"redFlags\": [],\n \"rpc\": [\"https://cohan-test3.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://70466.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avacloud-dev.io/f44b72ee-0574-44d2-a10b-363a74964145\"],\n \"shortName\": \"Cohan test3\",\n \"slug\": \"cohan-test3\",\n \"testnet\": true\n};\n\nvar c71111 = {\n \"chain\": \"GuapcoinX\",\n \"chainId\": 71111,\n \"explorers\": [{\n \"name\": \"GuapcoinX Explorer\",\n \"url\": \"http://explorer.guapcoinx.com\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmcDTR7982VQKDDz2Mh4fZbnE9hn67MuFPWQv1MimCqPvB\",\n \"width\": 800,\n \"height\": 800,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmcDTR7982VQKDDz2Mh4fZbnE9hn67MuFPWQv1MimCqPvB\",\n \"width\": 800,\n \"height\": 800,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://guapcoin.org/\",\n \"name\": \"GuapcoinX\",\n \"nativeCurrency\": {\n \"name\": \"GuapcoinX\",\n \"symbol\": \"GuapX\",\n \"decimals\": 18\n },\n \"networkId\": 71111,\n \"rpc\": [\"https://guapcoinx.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://71111.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-mainnet.guapcoinx.com/\", \"https://rpc-mainnet-1.guapcoinx.com/\", \"https://rpc-mainnet-2.guapcoinx.com/\"],\n \"shortName\": \"GuapX\",\n \"slug\": \"guapcoinx\",\n \"testnet\": false\n};\n\nvar c71393 = {\n \"chain\": \"CKB\",\n \"chainId\": 71393,\n \"explorers\": [],\n \"faucets\": [\"https://faucet.nervos.org/\"],\n \"icon\": {\n \"url\": \"ipfs://QmZ5gFWUxLFqqT3DkefYfRsVksMwMTc5VvBjkbHpeFMsNe\",\n \"width\": 1001,\n \"height\": 1629,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://github.com/nervosnetwork/godwoken\",\n \"name\": \"Polyjuice Testnet\",\n \"nativeCurrency\": {\n \"name\": \"CKB\",\n \"symbol\": \"CKB\",\n \"decimals\": 8\n },\n \"networkId\": 1,\n \"rpc\": [\"https://polyjuice-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://71393.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://godwoken-testnet-web3-rpc.ckbapp.dev\", \"ws://godwoken-testnet-web3-rpc.ckbapp.dev/ws\"],\n \"shortName\": \"ckb\",\n \"slip44\": 1,\n \"slug\": \"polyjuice-testnet\",\n \"testnet\": true\n};\n\nvar c71401 = {\n \"chain\": \"GWT\",\n \"chainId\": 71401,\n \"explorers\": [{\n \"name\": \"GWScan Block Explorer\",\n \"url\": \"https://v1.testnet.gwscan.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://testnet.bridge.godwoken.io\"],\n \"infoURL\": \"https://www.nervos.org\",\n \"name\": \"Godwoken Testnet v1\",\n \"nativeCurrency\": {\n \"name\": \"pCKB\",\n \"symbol\": \"pCKB\",\n \"decimals\": 18\n },\n \"networkId\": 71401,\n \"rpc\": [\"https://godwoken-testnet-v1.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://71401.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://godwoken-testnet-v1.ckbapp.dev\", \"https://v1.testnet.godwoken.io/rpc\"],\n \"shortName\": \"gw-testnet-v1\",\n \"slip44\": 1,\n \"slug\": \"godwoken-testnet-v1\",\n \"testnet\": true\n};\n\nvar c71402 = {\n \"chain\": \"GWT\",\n \"chainId\": 71402,\n \"explorers\": [{\n \"name\": \"GWScan Block Explorer\",\n \"url\": \"https://v1.gwscan.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.nervos.org\",\n \"name\": \"Godwoken Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"pCKB\",\n \"symbol\": \"pCKB\",\n \"decimals\": 18\n },\n \"networkId\": 71402,\n \"rpc\": [\"https://godwoken.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://71402.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://v1.mainnet.godwoken.io/rpc\"],\n \"shortName\": \"gw-mainnet-v1\",\n \"slug\": \"godwoken\",\n \"testnet\": false\n};\n\nvar c72605 = {\n \"chain\": \"Jambon's Devnet\",\n \"chainId\": 72605,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \".svg\"\n },\n \"name\": \"Jambon's Devnet\",\n \"nativeCurrency\": {\n \"name\": \"Jambon's Devnet\",\n \"symbol\": \"DOB\",\n \"decimals\": 18\n },\n \"networkId\": 72605,\n \"redFlags\": [],\n \"rpc\": [],\n \"shortName\": \"Jambon's Devnet\",\n \"slug\": \"jambon-s-devnet\",\n \"testnet\": true\n};\n\nvar c72992 = {\n \"chain\": \"Grok\",\n \"chainId\": 72992,\n \"explorers\": [{\n \"name\": \"GrokScan\",\n \"url\": \"https://mainnet-explorer.grokchain.dev\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreicepw6yqtmubtpcthecjx47ndwgywartfqnkdhf66k3q57h2hlewm\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://grokchain.dev\",\n \"name\": \"Grok Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Groc\",\n \"symbol\": \"GROC\",\n \"decimals\": 18\n },\n \"networkId\": 72992,\n \"rpc\": [\"https://grok-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://72992.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-rpc.grokchain.dev\"],\n \"shortName\": \"GrokChain\",\n \"slug\": \"grok-chain\",\n \"testnet\": false\n};\n\nvar c73799 = {\n \"chain\": \"Volta\",\n \"chainId\": 73799,\n \"explorers\": [],\n \"faucets\": [\"https://voltafaucet.energyweb.org\"],\n \"infoURL\": \"https://energyweb.org\",\n \"name\": \"Energy Web Volta Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Volta Token\",\n \"symbol\": \"VT\",\n \"decimals\": 18\n },\n \"networkId\": 73799,\n \"rpc\": [\"https://energy-web-volta-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://73799.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://volta-rpc.energyweb.org\", \"wss://volta-rpc.energyweb.org/ws\"],\n \"shortName\": \"vt\",\n \"slip44\": 1,\n \"slug\": \"energy-web-volta-testnet\",\n \"testnet\": true\n};\n\nvar c73927 = {\n \"chain\": \"MVM\",\n \"chainId\": 73927,\n \"explorers\": [{\n \"name\": \"mvmscan\",\n \"url\": \"https://scan.mvm.dev\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmeuDgSprukzfV7fi9XYHYcfmT4aZZZU7idgShtRS8Vf6V\",\n \"width\": 471,\n \"height\": 512,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmeuDgSprukzfV7fi9XYHYcfmT4aZZZU7idgShtRS8Vf6V\",\n \"width\": 471,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://mvm.dev\",\n \"name\": \"Mixin Virtual Machine\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 73927,\n \"rpc\": [\"https://mixin-virtual-machine.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://73927.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://geth.mvm.dev\"],\n \"shortName\": \"mvm\",\n \"slug\": \"mixin-virtual-machine\",\n \"testnet\": false\n};\n\nvar c74356 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 74356,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"S Testnet 1-5-24\",\n \"nativeCurrency\": {\n \"name\": \"S Testnet 1-5-24 Token\",\n \"symbol\": \"ZLQ\",\n \"decimals\": 18\n },\n \"networkId\": 74356,\n \"redFlags\": [],\n \"rpc\": [\"https://s-testnet-1-5-24.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://74356.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc\"],\n \"shortName\": \"S Testnet 1-5-24\",\n \"slug\": \"s-testnet-1-5-24\",\n \"testnet\": true\n};\n\nvar c75000 = {\n \"chain\": \"RESIN\",\n \"chainId\": 75000,\n \"explorers\": [{\n \"name\": \"ResinScan\",\n \"url\": \"https://explorer.resincoin.dev\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmTBszPzBeWPhjozf4TxpL2ws1NkG9yJvisx9h6MFii1zb\",\n \"width\": 460,\n \"height\": 460,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://resincoin.dev\",\n \"name\": \"ResinCoin Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"RESIN\",\n \"decimals\": 18\n },\n \"networkId\": 75000,\n \"rpc\": [],\n \"shortName\": \"resin\",\n \"slug\": \"resincoin\",\n \"testnet\": false\n};\n\nvar c75817 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 75817,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"SFT 1-8-24\",\n \"nativeCurrency\": {\n \"name\": \"SFT 1-8-24 Token\",\n \"symbol\": \"ZAF\",\n \"decimals\": 18\n },\n \"networkId\": 75817,\n \"redFlags\": [],\n \"rpc\": [\"https://sft-1-8-24.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://75817.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc\"],\n \"shortName\": \"SFT 1-8-24\",\n \"slug\": \"sft-1-8-24\",\n \"testnet\": true\n};\n\nvar c76950 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 76950,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"QI1204I2\",\n \"nativeCurrency\": {\n \"name\": \"QI1204I2 Token\",\n \"symbol\": \"BHOX\",\n \"decimals\": 18\n },\n \"networkId\": 76950,\n \"redFlags\": [],\n \"rpc\": [\"https://qi1204i2.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://76950.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avacloud-test.io/ba4e7766-4bc6-44ec-b43f-598647b4ee71\"],\n \"shortName\": \"QI1204I2\",\n \"slug\": \"qi1204i2\",\n \"testnet\": true\n};\n\nvar c77238 = {\n \"chain\": \"tFNC\",\n \"chainId\": 77238,\n \"explorers\": [{\n \"name\": \"Foundry Scan Testnet\",\n \"url\": \"https://testnet-explorer.foundryscan.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.foundryscan.org\"],\n \"icon\": {\n \"url\": \"ipfs://bafkreifx4vef7ubqz4iiaxckcvkdwjrp2hbliljwjlwu2vytlngg3r4pg4\",\n \"width\": 192,\n \"height\": 192,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://foundrychain.org\",\n \"name\": \"Foundry Chain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Foundry Chain Testnet\",\n \"symbol\": \"tFNC\",\n \"decimals\": 18\n },\n \"networkId\": 77238,\n \"rpc\": [\"https://foundry-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://77238.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-rpc.foundryscan.org/\"],\n \"shortName\": \"fnc\",\n \"slip44\": 1,\n \"slug\": \"foundry-chain-testnet\",\n \"testnet\": true\n};\n\nvar c77612 = {\n \"chain\": \"VSC\",\n \"chainId\": 77612,\n \"explorers\": [{\n \"name\": \"ventionscan\",\n \"url\": \"https://ventionscan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.vention.network\"],\n \"icon\": {\n \"url\": \"ipfs://QmcNepHmbmHW1BZYM3MFqJW4awwhmDqhUPRXXmRnXwg1U4\",\n \"width\": 250,\n \"height\": 250,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://ventionscan.io\",\n \"name\": \"Vention Smart Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"VNT\",\n \"symbol\": \"VNT\",\n \"decimals\": 18\n },\n \"networkId\": 77612,\n \"rpc\": [\"https://vention-smart-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://77612.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-rpc.vention.network\"],\n \"shortName\": \"vscm\",\n \"slug\": \"vention-smart-chain\",\n \"testnet\": false\n};\n\nvar c77777 = {\n \"chain\": \"Toronet\",\n \"chainId\": 77777,\n \"ens\": {\n \"registry\": \"0x1f45a71f4aAD769E27c969c4359E0e250C67165c\"\n },\n \"explorers\": [{\n \"name\": \"toronet_explorer\",\n \"url\": \"https://toronet.org/explorer\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmciSvgLatP6jhgdazuiyD3fSrhipfAN7wC943v1qxcrpv\",\n \"width\": 846,\n \"height\": 733,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://toronet.org\",\n \"name\": \"Toronet Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Toro\",\n \"symbol\": \"TORO\",\n \"decimals\": 18\n },\n \"networkId\": 77777,\n \"rpc\": [\"https://toronet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://77777.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"http://toronet.org/rpc\"],\n \"shortName\": \"Toronet\",\n \"slug\": \"toronet\",\n \"testnet\": false\n};\n\nvar c78110 = {\n \"chain\": \"ETH\",\n \"chainId\": 78110,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://primusmoney.com\",\n \"name\": \"Firenze test network\",\n \"nativeCurrency\": {\n \"name\": \"Firenze Ether\",\n \"symbol\": \"FIN\",\n \"decimals\": 18\n },\n \"networkId\": 78110,\n \"rpc\": [\"https://firenze-test-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://78110.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://ethnode.primusmoney.com/firenze\"],\n \"shortName\": \"firenze\",\n \"slip44\": 1,\n \"slug\": \"firenze-test-network\",\n \"testnet\": true\n};\n\nvar c78281 = {\n \"chain\": \"Dragonfly\",\n \"chainId\": 78281,\n \"explorers\": [{\n \"name\": \"Dragonfly Blockscout\",\n \"url\": \"https://blockscout.dragonfly.hexapod.network\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmPXhdPGufjcPzZ9Y6nY6QyW8MgA6793L88iPMRh1Q3gjJ\",\n \"width\": 512,\n \"height\": 366,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://hexapod.network\",\n \"name\": \"Dragonfly Mainnet (Hexapod)\",\n \"nativeCurrency\": {\n \"name\": \"Dragonfly\",\n \"symbol\": \"DFLY\",\n \"decimals\": 18\n },\n \"networkId\": 78281,\n \"rpc\": [\"https://dragonfly-hexapod.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://78281.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://dragonfly-rpc.switch.ch\", \"https://dragonfly-rpc.kore-technologies.ch\", \"https://dragonfly-rpc.phoenix-systems.io\", \"https://dragonfly-rpc.block-spirit.ch\"],\n \"shortName\": \"dfly\",\n \"slug\": \"dragonfly-hexapod\",\n \"testnet\": false\n};\n\nvar c78430 = {\n \"chain\": \"AMPLIFY\",\n \"chainId\": 78430,\n \"explorers\": [{\n \"name\": \"AMPLIFY Explorer\",\n \"url\": \"https://subnets-test.avax.network/amplify\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP1559\"\n }],\n \"infoURL\": \"https://www.avax.network\",\n \"name\": \"Amplify Subnet\",\n \"nativeCurrency\": {\n \"name\": \"AMP\",\n \"symbol\": \"AMP\",\n \"decimals\": 18\n },\n \"networkId\": 78430,\n \"rpc\": [\"https://amplify-subnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://78430.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/amplify/testnet/rpc\"],\n \"shortName\": \"amplify\",\n \"slip44\": 1,\n \"slug\": \"amplify-subnet\",\n \"testnet\": true\n};\n\nvar c78431 = {\n \"chain\": \"BULLETIN\",\n \"chainId\": 78431,\n \"explorers\": [{\n \"name\": \"BULLETIN Explorer\",\n \"url\": \"https://subnets-test.avax.network/bulletin\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP1559\"\n }],\n \"infoURL\": \"https://www.avax.network\",\n \"name\": \"Bulletin Subnet\",\n \"nativeCurrency\": {\n \"name\": \"BLT\",\n \"symbol\": \"BLT\",\n \"decimals\": 18\n },\n \"networkId\": 78431,\n \"rpc\": [\"https://bulletin-subnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://78431.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/bulletin/testnet/rpc\"],\n \"shortName\": \"bulletin\",\n \"slip44\": 1,\n \"slug\": \"bulletin-subnet\",\n \"testnet\": true\n};\n\nvar c78432 = {\n \"chain\": \"CONDUIT\",\n \"chainId\": 78432,\n \"explorers\": [{\n \"name\": \"CONDUIT Explorer\",\n \"url\": \"https://subnets-test.avax.network/conduit\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP1559\"\n }],\n \"infoURL\": \"https://www.avax.network\",\n \"name\": \"Conduit Subnet\",\n \"nativeCurrency\": {\n \"name\": \"CON\",\n \"symbol\": \"CON\",\n \"decimals\": 18\n },\n \"networkId\": 78432,\n \"rpc\": [\"https://conduit-subnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://78432.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/conduit/testnet/rpc\"],\n \"shortName\": \"conduit\",\n \"slip44\": 1,\n \"slug\": \"conduit-subnet\",\n \"testnet\": true\n};\n\nvar c78933 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 78933,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"FST 12-22 V2\",\n \"nativeCurrency\": {\n \"name\": \"FST 12-22 V2 Token\",\n \"symbol\": \"EJJ\",\n \"decimals\": 18\n },\n \"networkId\": 78933,\n \"redFlags\": [],\n \"rpc\": [\"https://fst-12-22-v2.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://78933.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc\"],\n \"shortName\": \"FST 12-22 V2\",\n \"slug\": \"fst-12-22-v2\",\n \"testnet\": true\n};\n\nvar c79879 = {\n \"chain\": \"STAND\",\n \"chainId\": 79879,\n \"explorers\": [{\n \"name\": \"Gold Smart Chain\",\n \"url\": \"https://testnet.goldsmartchain.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.goldsmartchain.com\"],\n \"icon\": {\n \"url\": \"ipfs://QmPNuymyaKLJhCaXnyrsL8358FeTxabZFsaxMmWNU4Tzt3\",\n \"width\": 396,\n \"height\": 418,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://goldsmartchain.com\",\n \"name\": \"Gold Smart Chain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Standard in Gold\",\n \"symbol\": \"STAND\",\n \"decimals\": 18\n },\n \"networkId\": 79879,\n \"rpc\": [\"https://gold-smart-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://79879.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-testnet.goldsmartchain.com\"],\n \"shortName\": \"STANDt\",\n \"slip44\": 1,\n \"slug\": \"gold-smart-chain-testnet\",\n \"testnet\": true\n};\n\nvar c80001 = {\n \"chain\": \"Polygon\",\n \"chainId\": 80001,\n \"explorers\": [{\n \"name\": \"polygonscan\",\n \"url\": \"https://mumbai.polygonscan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.polygon.technology/\"],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmcxZHpyJa8T4i63xqjPYrZ6tKrt55tZJpbXcjSDKuKaf9/polygon/512.png\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://polygon.technology/\",\n \"name\": \"Mumbai\",\n \"nativeCurrency\": {\n \"name\": \"MATIC\",\n \"symbol\": \"MATIC\",\n \"decimals\": 18\n },\n \"networkId\": 80001,\n \"redFlags\": [],\n \"rpc\": [\"https://mumbai.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://80001.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-mumbai.maticvigil.com\", \"https://polygon-mumbai-bor.publicnode.com\", \"wss://polygon-mumbai-bor.publicnode.com\", \"https://polygon-mumbai.gateway.tenderly.co\", \"wss://polygon-mumbai.gateway.tenderly.co\"],\n \"shortName\": \"maticmum\",\n \"slip44\": 1,\n \"slug\": \"mumbai\",\n \"testnet\": true,\n \"title\": \"Polygon Testnet Mumbai\"\n};\n\nvar c80182 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 80182,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \".svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"QI M 12051\",\n \"nativeCurrency\": {\n \"name\": \"QI M 12051 Token\",\n \"symbol\": \"VTV\",\n \"decimals\": 18\n },\n \"networkId\": 80182,\n \"redFlags\": [],\n \"rpc\": [\"https://qi-m-12051.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://80182.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avacloud-dev.io/b19c9e32-f359-451f-ad15-7ec784625c04\"],\n \"shortName\": \"QI M 12051\",\n \"slug\": \"qi-m-12051\",\n \"testnet\": true\n};\n\nvar c80375 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 80375,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"qr0103y1s\",\n \"nativeCurrency\": {\n \"name\": \"qr0103y1s Token\",\n \"symbol\": \"IJB\",\n \"decimals\": 18\n },\n \"networkId\": 80375,\n \"redFlags\": [],\n \"rpc\": [\"https://qr0103y1s.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://80375.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/qr0103y1s/testnet/rpc\"],\n \"shortName\": \"qr0103y1s\",\n \"slug\": \"qr0103y1s\",\n \"testnet\": true\n};\n\nvar c81041 = {\n \"chain\": \"Nordek\",\n \"chainId\": 81041,\n \"explorers\": [{\n \"name\": \"nordek\",\n \"url\": \"https://nordekscan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreie45fcr2hllmej2elwqpdxmiaycxmz25tl5ymraduhtefqndhlm4q\",\n \"width\": 222,\n \"height\": 306,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://nordekscan.com\",\n \"name\": \"Nordek Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"NRK\",\n \"symbol\": \"NRK\",\n \"decimals\": 18\n },\n \"networkId\": 81041,\n \"rpc\": [\"https://nordek.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://81041.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-rpc.nordekscan.com\"],\n \"shortName\": \"nordek\",\n \"slug\": \"nordek\",\n \"testnet\": false\n};\n\nvar c81079 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 81079,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"QI M 21343243\",\n \"nativeCurrency\": {\n \"name\": \"QI M 21343243 Token\",\n \"symbol\": \"JZW\",\n \"decimals\": 18\n },\n \"networkId\": 81079,\n \"redFlags\": [],\n \"rpc\": [\"https://qi-m-21343243.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://81079.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avacloud-dev.io/f575b5b1-8b60-47f3-af28-13f3f3de2ba5\"],\n \"shortName\": \"QI M 21343243\",\n \"slug\": \"qi-m-21343243\",\n \"testnet\": true\n};\n\nvar c81341 = {\n \"chain\": \"MEER\",\n \"chainId\": 81341,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmWSbMuCwQzhBB6GRLYqZ87n5cnpzpYCehCAMMQmUXj4mm\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://github.com/Qitmeer\",\n \"name\": \"Amana Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Amana Testnet\",\n \"symbol\": \"MEER-T\",\n \"decimals\": 18\n },\n \"networkId\": 81341,\n \"rpc\": [],\n \"shortName\": \"amanatest\",\n \"slip44\": 1,\n \"slug\": \"amana-testnet\",\n \"status\": \"incubating\",\n \"testnet\": true\n};\n\nvar c81342 = {\n \"chain\": \"MEER\",\n \"chainId\": 81342,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmWSbMuCwQzhBB6GRLYqZ87n5cnpzpYCehCAMMQmUXj4mm\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://github.com/Qitmeer\",\n \"name\": \"Amana Mixnet\",\n \"nativeCurrency\": {\n \"name\": \"Amana Mixnet\",\n \"symbol\": \"MEER-M\",\n \"decimals\": 18\n },\n \"networkId\": 81342,\n \"rpc\": [],\n \"shortName\": \"amanamix\",\n \"slug\": \"amana-mixnet\",\n \"status\": \"incubating\",\n \"testnet\": false\n};\n\nvar c81343 = {\n \"chain\": \"MEER\",\n \"chainId\": 81343,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmWSbMuCwQzhBB6GRLYqZ87n5cnpzpYCehCAMMQmUXj4mm\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://github.com/Qitmeer\",\n \"name\": \"Amana Privnet\",\n \"nativeCurrency\": {\n \"name\": \"Amana Privnet\",\n \"symbol\": \"MEER-P\",\n \"decimals\": 18\n },\n \"networkId\": 81343,\n \"rpc\": [],\n \"shortName\": \"amanapriv\",\n \"slug\": \"amana-privnet\",\n \"status\": \"incubating\",\n \"testnet\": false\n};\n\nvar c81351 = {\n \"chain\": \"MEER\",\n \"chainId\": 81351,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmWSbMuCwQzhBB6GRLYqZ87n5cnpzpYCehCAMMQmUXj4mm\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://github.com/Qitmeer\",\n \"name\": \"Flana Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Flana Testnet\",\n \"symbol\": \"MEER-T\",\n \"decimals\": 18\n },\n \"networkId\": 81351,\n \"rpc\": [],\n \"shortName\": \"flanatest\",\n \"slip44\": 1,\n \"slug\": \"flana-testnet\",\n \"status\": \"incubating\",\n \"testnet\": true\n};\n\nvar c81352 = {\n \"chain\": \"MEER\",\n \"chainId\": 81352,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmWSbMuCwQzhBB6GRLYqZ87n5cnpzpYCehCAMMQmUXj4mm\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://github.com/Qitmeer\",\n \"name\": \"Flana Mixnet\",\n \"nativeCurrency\": {\n \"name\": \"Flana Mixnet\",\n \"symbol\": \"MEER-M\",\n \"decimals\": 18\n },\n \"networkId\": 81352,\n \"rpc\": [],\n \"shortName\": \"flanamix\",\n \"slug\": \"flana-mixnet\",\n \"status\": \"incubating\",\n \"testnet\": false\n};\n\nvar c81353 = {\n \"chain\": \"MEER\",\n \"chainId\": 81353,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmWSbMuCwQzhBB6GRLYqZ87n5cnpzpYCehCAMMQmUXj4mm\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://github.com/Qitmeer\",\n \"name\": \"Flana Privnet\",\n \"nativeCurrency\": {\n \"name\": \"Flana Privnet\",\n \"symbol\": \"MEER-P\",\n \"decimals\": 18\n },\n \"networkId\": 81353,\n \"rpc\": [],\n \"shortName\": \"flanapriv\",\n \"slug\": \"flana-privnet\",\n \"status\": \"incubating\",\n \"testnet\": false\n};\n\nvar c81361 = {\n \"chain\": \"MEER\",\n \"chainId\": 81361,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmWSbMuCwQzhBB6GRLYqZ87n5cnpzpYCehCAMMQmUXj4mm\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://github.com/Qitmeer\",\n \"name\": \"Mizana Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Mizana Testnet\",\n \"symbol\": \"MEER-T\",\n \"decimals\": 18\n },\n \"networkId\": 81361,\n \"rpc\": [],\n \"shortName\": \"mizanatest\",\n \"slip44\": 1,\n \"slug\": \"mizana-testnet\",\n \"status\": \"incubating\",\n \"testnet\": true\n};\n\nvar c81362 = {\n \"chain\": \"MEER\",\n \"chainId\": 81362,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmWSbMuCwQzhBB6GRLYqZ87n5cnpzpYCehCAMMQmUXj4mm\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://github.com/Qitmeer\",\n \"name\": \"Mizana Mixnet\",\n \"nativeCurrency\": {\n \"name\": \"Mizana Mixnet\",\n \"symbol\": \"MEER-M\",\n \"decimals\": 18\n },\n \"networkId\": 81362,\n \"rpc\": [],\n \"shortName\": \"mizanamix\",\n \"slug\": \"mizana-mixnet\",\n \"status\": \"incubating\",\n \"testnet\": false\n};\n\nvar c81363 = {\n \"chain\": \"MEER\",\n \"chainId\": 81363,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmWSbMuCwQzhBB6GRLYqZ87n5cnpzpYCehCAMMQmUXj4mm\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://github.com/Qitmeer\",\n \"name\": \"Mizana Privnet\",\n \"nativeCurrency\": {\n \"name\": \"Mizana Privnet\",\n \"symbol\": \"MEER-P\",\n \"decimals\": 18\n },\n \"networkId\": 81363,\n \"rpc\": [],\n \"shortName\": \"mizanapriv\",\n \"slug\": \"mizana-privnet\",\n \"status\": \"incubating\",\n \"testnet\": false\n};\n\nvar c81720 = {\n \"chain\": \"QNET\",\n \"chainId\": 81720,\n \"explorers\": [{\n \"name\": \"Quantum Scan Mainnet\",\n \"url\": \"https://quantumscan.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreibwywok67uewqbtqdzgr7nlk3lvvg7hxmbgwtn7kdwxe34useucvm\",\n \"width\": 1024,\n \"height\": 1024,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://quantumnetwork.gg\",\n \"name\": \"Quantum Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Quantum Chain\",\n \"symbol\": \"QNET\",\n \"decimals\": 18\n },\n \"networkId\": 81720,\n \"rpc\": [\"https://quantum-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://81720.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.quantumscan.org\"],\n \"shortName\": \"qnet\",\n \"slug\": \"quantum-chain\",\n \"testnet\": false\n};\n\nvar c82459 = {\n \"chain\": \"SLN\",\n \"chainId\": 82459,\n \"explorers\": [{\n \"name\": \"SLN Testnet Explorer\",\n \"url\": \"https://explorer.test.smartlayer.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.smartlayer.network/\",\n \"name\": \"Smart Layer Network Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Service Unit Token\",\n \"symbol\": \"SU\",\n \"decimals\": 18\n },\n \"networkId\": 82459,\n \"rpc\": [\"https://smart-layer-network-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://82459.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.test.smartlayer.network\"],\n \"shortName\": \"tSLN\",\n \"slug\": \"smart-layer-network-testnet\",\n \"testnet\": true\n};\n\nvar c82807 = {\n \"chain\": \"zFirst AvaCloud Subnet Thirdweb\",\n \"chainId\": 82807,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \".svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"zFirst AvaCloud Subnet Thirdweb\",\n \"nativeCurrency\": {\n \"name\": \"zFirst AvaCloud Subnet Thirdweb\",\n \"symbol\": \"YOOO\",\n \"decimals\": 18\n },\n \"networkId\": 82807,\n \"redFlags\": [],\n \"rpc\": [\"https://zfirst-avacloud-subnet-thirdweb.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://82807.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avacloud-dev.io/f2ea180d-0fda-4b06-9b2e-53a65d3fd789\"],\n \"shortName\": \"zFirst AvaCloud Subnet Thirdweb\",\n \"slug\": \"zfirst-avacloud-subnet-thirdweb\",\n \"testnet\": true\n};\n\nvar c83862 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 83862,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"ST 12-12 V1\",\n \"nativeCurrency\": {\n \"name\": \"ST 12-12 V1 Token\",\n \"symbol\": \"GXE\",\n \"decimals\": 18\n },\n \"networkId\": 83862,\n \"redFlags\": [],\n \"rpc\": [\"https://st-12-12-v1.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://83862.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc\"],\n \"shortName\": \"ST 12-12 V1\",\n \"slug\": \"st-12-12-v1\",\n \"testnet\": true\n};\n\nvar c84531 = {\n \"chain\": \"ETH\",\n \"chainId\": 84531,\n \"explorers\": [{\n \"name\": \"basescan\",\n \"url\": \"https://goerli.basescan.org\",\n \"standard\": \"none\"\n }, {\n \"name\": \"basescout\",\n \"url\": \"https://base-goerli.blockscout.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }, {\n \"name\": \"dexguru\",\n \"url\": \"https://base-goerli.dex.guru\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmRaASKRSjQ5btoUQ2rNTJNxKtx2a2RoewgA7DMQkLVEne\",\n \"width\": 83,\n \"height\": 82,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [\"https://www.coinbase.com/faucets/base-ethereum-goerli-faucet\"],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmW5Vn15HeRkScMfPcW12ZdZcC2yUASpu6eCsECRdEmjjj/base-512.png\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://base.org\",\n \"name\": \"Base Goerli Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Goerli Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 84531,\n \"redFlags\": [],\n \"rpc\": [\"https://base-goerli.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://84531.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://goerli.base.org\", \"https://base-goerli.gateway.tenderly.co\", \"wss://base-goerli.gateway.tenderly.co\", \"https://base-goerli.publicnode.com\", \"wss://base-goerli.publicnode.com\"],\n \"shortName\": \"basegor\",\n \"slip44\": 1,\n \"slug\": \"base-goerli\",\n \"testnet\": true\n};\n\nvar c84532 = {\n \"chain\": \"ETH\",\n \"chainId\": 84532,\n \"explorers\": [{\n \"name\": \"basescout\",\n \"url\": \"https://base-sepolia.blockscout.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmaxRoHpxZd8PqccAynherrMznMufG6sdmHZLihkECXmZv\",\n \"width\": 1200,\n \"height\": 1200,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://base.org\",\n \"name\": \"Base Sepolia Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Sepolia Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 84532,\n \"rpc\": [\"https://base-sepolia-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://84532.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://sepolia.base.org\"],\n \"shortName\": \"basesep\",\n \"slip44\": 1,\n \"slug\": \"base-sepolia-testnet\",\n \"testnet\": true\n};\n\nvar c84886 = {\n \"chain\": \"Aerie\",\n \"chainId\": 84886,\n \"explorers\": [{\n \"name\": \"Aerie Explorer\",\n \"url\": \"https://explorer.aerielab.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://bafkreig54jss26xllpjbclmfgwvot72m4ku7qxignhlqei6mijvwi2m4pu\",\n \"width\": 1062,\n \"height\": 1069,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreig54jss26xllpjbclmfgwvot72m4ku7qxignhlqei6mijvwi2m4pu\",\n \"width\": 1062,\n \"height\": 1069,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://aerielab.io/\",\n \"name\": \"Aerie Network\",\n \"nativeCurrency\": {\n \"name\": \"Aerie\",\n \"symbol\": \"AER\",\n \"decimals\": 18\n },\n \"networkId\": 84886,\n \"rpc\": [\"https://aerie-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://84886.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.aerielab.io\"],\n \"shortName\": \"Aerie\",\n \"slug\": \"aerie-network\",\n \"testnet\": false\n};\n\nvar c85449 = {\n \"chain\": \"CYBER\",\n \"chainId\": 85449,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://cybertrust.space\",\n \"name\": \"CYBERTRUST\",\n \"nativeCurrency\": {\n \"name\": \"Cyber Trust\",\n \"symbol\": \"CYBER\",\n \"decimals\": 18\n },\n \"networkId\": 48501,\n \"rpc\": [\"https://cybertrust.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://85449.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"http://testnet.cybertrust.space:48501\"],\n \"shortName\": \"Cyber\",\n \"slug\": \"cybertrust\",\n \"testnet\": true\n};\n\nvar c88002 = {\n \"chain\": \"ETH\",\n \"chainId\": 88002,\n \"explorers\": [{\n \"name\": \"Nautscan\",\n \"url\": \"https://proteus.nautscan.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmNutSgM7n6aJPPDiofe9Dm1epy1RcYTMvugukLUK2vmPM\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://proteusfaucet.nautchain.xyz\"],\n \"icon\": {\n \"url\": \"ipfs://QmNutSgM7n6aJPPDiofe9Dm1epy1RcYTMvugukLUK2vmPM\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://docs.nautchain.xyz\",\n \"name\": \"Nautilus Proteus Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Zebec Test Token\",\n \"symbol\": \"tZBC\",\n \"decimals\": 18\n },\n \"networkId\": 88002,\n \"rpc\": [\"https://nautilus-proteus-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://88002.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.proteus.nautchain.xyz/solana\"],\n \"shortName\": \"NAUTTest\",\n \"slip44\": 1,\n \"slug\": \"nautilus-proteus-testnet\",\n \"testnet\": true\n};\n\nvar c88880 = {\n \"chain\": \"CHZ\",\n \"chainId\": 88880,\n \"explorers\": [{\n \"name\": \"scoville-explorer\",\n \"url\": \"https://scoville-explorer.chiliz.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://scoville-faucet.chiliz.com\"],\n \"icon\": {\n \"url\": \"ipfs://QmYV5xUVZhHRzLy7ie9D8qZeygJHvNZZAxwnB9GXYy6EED\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.chiliz.com/en/chain\",\n \"name\": \"Chiliz Scoville Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Chiliz\",\n \"symbol\": \"CHZ\",\n \"decimals\": 18\n },\n \"networkId\": 88880,\n \"rpc\": [\"https://chiliz-scoville-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://88880.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://scoville-rpc.chiliz.com\"],\n \"shortName\": \"chz\",\n \"slip44\": 1,\n \"slug\": \"chiliz-scoville-testnet\",\n \"testnet\": true\n};\n\nvar c88882 = {\n \"chain\": \"Spicy\",\n \"chainId\": 88882,\n \"explorers\": [{\n \"name\": \"Spicy Explorer\",\n \"url\": \"http://spicy-explorer.chiliz.com/\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://spicy-faucet.chiliz.com/\"],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmTGYofJ8VLkeNY4J69AvXi8e126kmbHmf34wLFoJ1FKAK\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://chiliz.com/\",\n \"name\": \"Spicy Chain\",\n \"nativeCurrency\": {\n \"name\": \"Chiliz\",\n \"symbol\": \"CHZ\",\n \"decimals\": 18\n },\n \"networkId\": 88882,\n \"redFlags\": [],\n \"rpc\": [\"https://spicy-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://88882.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://spicy-rpc.chiliz.com/\"],\n \"shortName\": \"Spicy\",\n \"slug\": \"spicy-chain\",\n \"testnet\": true\n};\n\nvar c88883 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 88883,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \".svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"Proj Orc Testnet Alpha\",\n \"nativeCurrency\": {\n \"name\": \"Proj Orc Testnet Alpha Token\",\n \"symbol\": \"STX\",\n \"decimals\": 18\n },\n \"networkId\": 88883,\n \"redFlags\": [],\n \"rpc\": [\"https://proj-orc-testnet-alpha.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://88883.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/projorctes/testnet/rpc\"],\n \"shortName\": \"Proj Orc Testnet Alpha\",\n \"slug\": \"proj-orc-testnet-alpha\",\n \"testnet\": true\n};\n\nvar c88888 = {\n \"chain\": \"CC2\",\n \"chainId\": 88888,\n \"explorers\": [{\n \"name\": \"cc2scan\",\n \"url\": \"https://scan.chiliz.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmTGYofJ8VLkeNY4J69AvXi8e126kmbHmf34wLFoJ1FKAK\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://chiliz.com/chiliz-chain-2-0/\",\n \"name\": \"Chiliz Chain\",\n \"nativeCurrency\": {\n \"name\": \"Chiliz\",\n \"symbol\": \"CHZ\",\n \"decimals\": 18\n },\n \"networkId\": 88888,\n \"redFlags\": [\"reusedChainId\"],\n \"rpc\": [\"https://chiliz-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://88888.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.ankr.com/chiliz\", \"https://rpc.chiliz.com\"],\n \"shortName\": \"cc2\",\n \"slug\": \"chiliz-chain\",\n \"testnet\": false\n};\n\nvar c90210 = {\n \"chain\": \"ETH\",\n \"chainId\": 90210,\n \"explorers\": [{\n \"name\": \"Beverly Hills explorer\",\n \"url\": \"https://explorer.beverlyhills.ethdevops.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://faucet.beverlyhills.ethdevops.io\"],\n \"infoURL\": \"https://beverlyhills.ethdevops.io\",\n \"name\": \"Beverly Hills\",\n \"nativeCurrency\": {\n \"name\": \"Beverly Hills Testnet Ether\",\n \"symbol\": \"BVE\",\n \"decimals\": 18\n },\n \"networkId\": 90210,\n \"rpc\": [\"https://beverly-hills.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://90210.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.beverlyhills.ethdevops.io:8545\"],\n \"shortName\": \"bvhl\",\n \"slug\": \"beverly-hills\",\n \"status\": \"incubating\",\n \"testnet\": true,\n \"title\": \"Ethereum multi-client Verkle Testnet Beverly Hills\"\n};\n\nvar c91002 = {\n \"chain\": \"ETH\",\n \"chainId\": 91002,\n \"explorers\": [{\n \"name\": \"Nautscan\",\n \"url\": \"https://triton.nautscan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.eclipse.builders\"],\n \"icon\": {\n \"url\": \"ipfs://QmNutSgM7n6aJPPDiofe9Dm1epy1RcYTMvugukLUK2vmPM\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://docs.nautchain.xyz\",\n \"name\": \"Nautilus Trition Chain\",\n \"nativeCurrency\": {\n \"name\": \"Nautilus Zebec Testnet Tokens\",\n \"symbol\": \"tZBC\",\n \"decimals\": 18\n },\n \"networkId\": 91002,\n \"rpc\": [\"https://nautilus-trition-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://91002.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://triton.api.nautchain.xyz\"],\n \"shortName\": \"NAUT\",\n \"slug\": \"nautilus-trition-chain\",\n \"testnet\": true,\n \"title\": \"Nautilus Trition Testnet\"\n};\n\nvar c91003 = {\n \"chain\": \"WRLDS\",\n \"chainId\": 91003,\n \"explorers\": [],\n \"faucets\": [\"https://faucet.evm.worlds.dev.eclipsenetwork.xyz/request_neon\"],\n \"features\": [],\n \"name\": \"Worlds Appchain\",\n \"nativeCurrency\": {\n \"name\": \"WRLDS\",\n \"symbol\": \"WRLDS\",\n \"decimals\": 18\n },\n \"networkId\": 91003,\n \"redFlags\": [],\n \"rpc\": [\"https://worlds-appchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://91003.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.evm.worlds.dev.eclipsenetwork.xyz/\"],\n \"shortName\": \"WRLDS\",\n \"slug\": \"worlds-appchain\",\n \"testnet\": true\n};\n\nvar c91715 = {\n \"chain\": \"Combo\",\n \"chainId\": 91715,\n \"explorers\": [{\n \"name\": \"combotrace explorer\",\n \"url\": \"https://combotrace-testnet.nodereal.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmRR4v6h6z21BpgS9xY3ExLB4Gkmm3i3dJWQx27oTGifq8\",\n \"width\": 800,\n \"height\": 693,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://combonetwork.io\",\n \"name\": \"Combo Testnet\",\n \"nativeCurrency\": {\n \"name\": \"BNB Chain Native Token\",\n \"symbol\": \"tcBNB\",\n \"decimals\": 18\n },\n \"networkId\": 91715,\n \"rpc\": [\"https://combo-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://91715.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://test-rpc.combonetwork.io\"],\n \"shortName\": \"combo-testnet\",\n \"slug\": \"combo-testnet\",\n \"testnet\": true\n};\n\nvar c91735 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 91735,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"QI1228I2\",\n \"nativeCurrency\": {\n \"name\": \"QI1228I2 Token\",\n \"symbol\": \"ZMY\",\n \"decimals\": 18\n },\n \"networkId\": 91735,\n \"redFlags\": [],\n \"rpc\": [\"https://qi1228i2.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://91735.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avacloud-dev.io/f51649a9-3420-4636-bb44-206f63998951\"],\n \"shortName\": \"QI1228I2\",\n \"slug\": \"qi1228i2\",\n \"testnet\": true\n};\n\nvar c92001 = {\n \"chain\": \"Lambda\",\n \"chainId\": 92001,\n \"explorers\": [{\n \"name\": \"Lambda EVM Explorer\",\n \"url\": \"https://explorer.lambda.top\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmWsoME6LCghQTpGYf7EnUojaDdYo7kfkWVjE6VvNtkjwy\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucet.lambda.top\"],\n \"icon\": {\n \"url\": \"ipfs://QmWsoME6LCghQTpGYf7EnUojaDdYo7kfkWVjE6VvNtkjwy\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://lambda.im\",\n \"name\": \"Lambda Testnet\",\n \"nativeCurrency\": {\n \"name\": \"test-Lamb\",\n \"symbol\": \"LAMB\",\n \"decimals\": 18\n },\n \"networkId\": 92001,\n \"rpc\": [\"https://lambda-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://92001.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://evm.lambda.top/\"],\n \"shortName\": \"lambda-testnet\",\n \"slip44\": 1,\n \"slug\": \"lambda-testnet\",\n \"testnet\": true\n};\n\nvar c92850 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 92850,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"QI1212I3\",\n \"nativeCurrency\": {\n \"name\": \"QI1212I3 Token\",\n \"symbol\": \"HSCX\",\n \"decimals\": 18\n },\n \"networkId\": 92850,\n \"redFlags\": [],\n \"rpc\": [\"https://qi1212i3.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://92850.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc\"],\n \"shortName\": \"QI1212I3\",\n \"slug\": \"qi1212i3\",\n \"testnet\": true\n};\n\nvar c94158 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 94158,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"FST 12-22 V1\",\n \"nativeCurrency\": {\n \"name\": \"FST 12-22 V1 Token\",\n \"symbol\": \"EJJ\",\n \"decimals\": 18\n },\n \"networkId\": 94158,\n \"redFlags\": [],\n \"rpc\": [\"https://fst-12-22-v1.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://94158.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc\"],\n \"shortName\": \"FST 12-22 V1\",\n \"slug\": \"fst-12-22-v1\",\n \"testnet\": true\n};\n\nvar c94918 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 94918,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"Sample Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Sample Testnet Token\",\n \"symbol\": \"INS\",\n \"decimals\": 18\n },\n \"networkId\": 94918,\n \"redFlags\": [],\n \"rpc\": [\"https://sample-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://94918.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/sampletest/testnet/rpc\"],\n \"shortName\": \"Sample Testnet\",\n \"slug\": \"sample-testnet\",\n \"testnet\": true\n};\n\nvar c96970 = {\n \"chain\": \"Mantis\",\n \"chainId\": 96970,\n \"explorers\": [{\n \"name\": \"Mantis Blockscout\",\n \"url\": \"https://blockscout.mantis.hexapod.network\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://mantis.switch.ch/faucet\", \"https://mantis.kore-technologies.ch/faucet\", \"https://mantis.phoenix-systems.io/faucet\", \"https://mantis.block-spirit.ch/faucet\"],\n \"icon\": {\n \"url\": \"ipfs://Qma8dDhxSSVUyzV8Pu5bo252WaZEEikYFndRh7LVktvQEy\",\n \"width\": 512,\n \"height\": 330,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://hexapod.network\",\n \"name\": \"Mantis Testnet (Hexapod)\",\n \"nativeCurrency\": {\n \"name\": \"Mantis\",\n \"symbol\": \"MANTIS\",\n \"decimals\": 18\n },\n \"networkId\": 96970,\n \"rpc\": [\"https://mantis-testnet-hexapod.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://96970.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mantis-rpc.switch.ch\", \"https://mantis-rpc.kore-technologies.ch\", \"https://mantis-rpc.phoenix-systems.io\"],\n \"shortName\": \"mantis\",\n \"slip44\": 1,\n \"slug\": \"mantis-testnet-hexapod\",\n \"testnet\": true\n};\n\nvar c97288 = {\n \"chain\": \"Boba BNB Mainnet\",\n \"chainId\": 97288,\n \"explorers\": [{\n \"name\": \"Boba BNB block explorer\",\n \"url\": \"https://blockexplorer.bnb.boba.network\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://boba.network\",\n \"name\": \"Boba BNB Mainnet Old\",\n \"nativeCurrency\": {\n \"name\": \"Boba Token\",\n \"symbol\": \"BOBA\",\n \"decimals\": 18\n },\n \"networkId\": 97288,\n \"rpc\": [],\n \"shortName\": \"BobaBnbOld\",\n \"slug\": \"boba-bnb-old\",\n \"status\": \"deprecated\",\n \"testnet\": false\n};\n\nvar c98540 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 98540,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"QI1212I5\",\n \"nativeCurrency\": {\n \"name\": \"QI1212I5 Token\",\n \"symbol\": \"HSCX\",\n \"decimals\": 18\n },\n \"networkId\": 98540,\n \"redFlags\": [],\n \"rpc\": [\"https://qi1212i5.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://98540.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avacloud-test.io/ba4e7766-4bc6-44ec-b43f-598647b4ee71\"],\n \"shortName\": \"QI1212I5\",\n \"slug\": \"qi1212i5\",\n \"testnet\": true\n};\n\nvar c99099 = {\n \"chain\": \"$EL\",\n \"chainId\": 99099,\n \"explorers\": [{\n \"name\": \"eLiberty Testnet\",\n \"url\": \"https://testnet.eliberty.ngo\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.eliberty.ngo\"],\n \"icon\": {\n \"url\": \"ipfs://Qmcr8US1DZcK3ooiMtE8tEQPgep12abXzxPw1jCkgZhji9\",\n \"width\": 150,\n \"height\": 150,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://eliberty.ngo\",\n \"name\": \"eLiberty Testnet\",\n \"nativeCurrency\": {\n \"name\": \"eLiberty\",\n \"symbol\": \"$EL\",\n \"decimals\": 18\n },\n \"networkId\": 99099,\n \"rpc\": [\"https://eliberty-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://99099.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-rpc.eliberty.ngo\"],\n \"shortName\": \"ELt\",\n \"slip44\": 1,\n \"slug\": \"eliberty-testnet\",\n \"testnet\": true\n};\n\nvar c99998 = {\n \"chain\": \"USC\",\n \"chainId\": 99998,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://www.ubchain.site\",\n \"name\": \"UB Smart Chain(testnet)\",\n \"nativeCurrency\": {\n \"name\": \"UBC\",\n \"symbol\": \"UBC\",\n \"decimals\": 18\n },\n \"networkId\": 99998,\n \"rpc\": [\"https://ub-smart-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://99998.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.rpc.uschain.network\"],\n \"shortName\": \"usctest\",\n \"slip44\": 1,\n \"slug\": \"ub-smart-chain-testnet\",\n \"testnet\": true\n};\n\nvar c99999 = {\n \"chain\": \"USC\",\n \"chainId\": 99999,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://www.ubchain.site/\",\n \"name\": \"UB Smart Chain\",\n \"nativeCurrency\": {\n \"name\": \"UBC\",\n \"symbol\": \"UBC\",\n \"decimals\": 18\n },\n \"networkId\": 99999,\n \"rpc\": [\"https://ub-smart-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://99999.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.uschain.network\"],\n \"shortName\": \"usc\",\n \"slug\": \"ub-smart-chain\",\n \"testnet\": false\n};\n\nvar c100000 = {\n \"chain\": \"QuarkChain\",\n \"chainId\": 100000,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://www.quarkchain.io\",\n \"name\": \"QuarkChain Mainnet Root\",\n \"nativeCurrency\": {\n \"name\": \"QKC\",\n \"symbol\": \"QKC\",\n \"decimals\": 18\n },\n \"networkId\": 100000,\n \"rpc\": [\"https://quarkchain-root.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://100000.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"http://jrpc.mainnet.quarkchain.io:38391\"],\n \"shortName\": \"qkc-r\",\n \"slug\": \"quarkchain-root\",\n \"testnet\": false\n};\n\nvar c100001 = {\n \"chain\": \"QuarkChain\",\n \"chainId\": 100001,\n \"explorers\": [{\n \"name\": \"quarkchain-mainnet\",\n \"url\": \"https://mainnet.quarkchain.io/0\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.quarkchain.io\",\n \"name\": \"QuarkChain Mainnet Shard 0\",\n \"nativeCurrency\": {\n \"name\": \"QKC\",\n \"symbol\": \"QKC\",\n \"decimals\": 18\n },\n \"networkId\": 100001,\n \"parent\": {\n \"type\": \"shard\",\n \"chain\": \"eip155-100000\"\n },\n \"rpc\": [\"https://quarkchain-shard-0.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://100001.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-s0-ethapi.quarkchain.io\", \"http://eth-jrpc.mainnet.quarkchain.io:39000\"],\n \"shortName\": \"qkc-s0\",\n \"slug\": \"quarkchain-shard-0\",\n \"testnet\": false\n};\n\nvar c100002 = {\n \"chain\": \"QuarkChain\",\n \"chainId\": 100002,\n \"explorers\": [{\n \"name\": \"quarkchain-mainnet\",\n \"url\": \"https://mainnet.quarkchain.io/1\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.quarkchain.io\",\n \"name\": \"QuarkChain Mainnet Shard 1\",\n \"nativeCurrency\": {\n \"name\": \"QKC\",\n \"symbol\": \"QKC\",\n \"decimals\": 18\n },\n \"networkId\": 100002,\n \"parent\": {\n \"type\": \"shard\",\n \"chain\": \"eip155-100000\"\n },\n \"rpc\": [\"https://quarkchain-shard-1.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://100002.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-s1-ethapi.quarkchain.io\", \"http://eth-jrpc.mainnet.quarkchain.io:39001\"],\n \"shortName\": \"qkc-s1\",\n \"slug\": \"quarkchain-shard-1\",\n \"testnet\": false\n};\n\nvar c100003 = {\n \"chain\": \"QuarkChain\",\n \"chainId\": 100003,\n \"explorers\": [{\n \"name\": \"quarkchain-mainnet\",\n \"url\": \"https://mainnet.quarkchain.io/2\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.quarkchain.io\",\n \"name\": \"QuarkChain Mainnet Shard 2\",\n \"nativeCurrency\": {\n \"name\": \"QKC\",\n \"symbol\": \"QKC\",\n \"decimals\": 18\n },\n \"networkId\": 100003,\n \"parent\": {\n \"type\": \"shard\",\n \"chain\": \"eip155-100000\"\n },\n \"rpc\": [\"https://quarkchain-shard-2.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://100003.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-s2-ethapi.quarkchain.io\", \"http://eth-jrpc.mainnet.quarkchain.io:39002\"],\n \"shortName\": \"qkc-s2\",\n \"slug\": \"quarkchain-shard-2\",\n \"testnet\": false\n};\n\nvar c100004 = {\n \"chain\": \"QuarkChain\",\n \"chainId\": 100004,\n \"explorers\": [{\n \"name\": \"quarkchain-mainnet\",\n \"url\": \"https://mainnet.quarkchain.io/3\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.quarkchain.io\",\n \"name\": \"QuarkChain Mainnet Shard 3\",\n \"nativeCurrency\": {\n \"name\": \"QKC\",\n \"symbol\": \"QKC\",\n \"decimals\": 18\n },\n \"networkId\": 100004,\n \"parent\": {\n \"type\": \"shard\",\n \"chain\": \"eip155-100000\"\n },\n \"rpc\": [\"https://quarkchain-shard-3.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://100004.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-s3-ethapi.quarkchain.io\", \"http://eth-jrpc.mainnet.quarkchain.io:39003\"],\n \"shortName\": \"qkc-s3\",\n \"slug\": \"quarkchain-shard-3\",\n \"testnet\": false\n};\n\nvar c100005 = {\n \"chain\": \"QuarkChain\",\n \"chainId\": 100005,\n \"explorers\": [{\n \"name\": \"quarkchain-mainnet\",\n \"url\": \"https://mainnet.quarkchain.io/4\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.quarkchain.io\",\n \"name\": \"QuarkChain Mainnet Shard 4\",\n \"nativeCurrency\": {\n \"name\": \"QKC\",\n \"symbol\": \"QKC\",\n \"decimals\": 18\n },\n \"networkId\": 100005,\n \"parent\": {\n \"type\": \"shard\",\n \"chain\": \"eip155-100000\"\n },\n \"rpc\": [\"https://quarkchain-shard-4.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://100005.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-s4-ethapi.quarkchain.io\", \"http://eth-jrpc.mainnet.quarkchain.io:39004\"],\n \"shortName\": \"qkc-s4\",\n \"slug\": \"quarkchain-shard-4\",\n \"testnet\": false\n};\n\nvar c100006 = {\n \"chain\": \"QuarkChain\",\n \"chainId\": 100006,\n \"explorers\": [{\n \"name\": \"quarkchain-mainnet\",\n \"url\": \"https://mainnet.quarkchain.io/5\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.quarkchain.io\",\n \"name\": \"QuarkChain Mainnet Shard 5\",\n \"nativeCurrency\": {\n \"name\": \"QKC\",\n \"symbol\": \"QKC\",\n \"decimals\": 18\n },\n \"networkId\": 100006,\n \"parent\": {\n \"type\": \"shard\",\n \"chain\": \"eip155-100000\"\n },\n \"rpc\": [\"https://quarkchain-shard-5.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://100006.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-s5-ethapi.quarkchain.io\", \"http://eth-jrpc.mainnet.quarkchain.io:39005\"],\n \"shortName\": \"qkc-s5\",\n \"slug\": \"quarkchain-shard-5\",\n \"testnet\": false\n};\n\nvar c100007 = {\n \"chain\": \"QuarkChain\",\n \"chainId\": 100007,\n \"explorers\": [{\n \"name\": \"quarkchain-mainnet\",\n \"url\": \"https://mainnet.quarkchain.io/6\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.quarkchain.io\",\n \"name\": \"QuarkChain Mainnet Shard 6\",\n \"nativeCurrency\": {\n \"name\": \"QKC\",\n \"symbol\": \"QKC\",\n \"decimals\": 18\n },\n \"networkId\": 100007,\n \"parent\": {\n \"type\": \"shard\",\n \"chain\": \"eip155-100000\"\n },\n \"rpc\": [\"https://quarkchain-shard-6.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://100007.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-s6-ethapi.quarkchain.io\", \"http://eth-jrpc.mainnet.quarkchain.io:39006\"],\n \"shortName\": \"qkc-s6\",\n \"slug\": \"quarkchain-shard-6\",\n \"testnet\": false\n};\n\nvar c100008 = {\n \"chain\": \"QuarkChain\",\n \"chainId\": 100008,\n \"explorers\": [{\n \"name\": \"quarkchain-mainnet\",\n \"url\": \"https://mainnet.quarkchain.io/7\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.quarkchain.io\",\n \"name\": \"QuarkChain Mainnet Shard 7\",\n \"nativeCurrency\": {\n \"name\": \"QKC\",\n \"symbol\": \"QKC\",\n \"decimals\": 18\n },\n \"networkId\": 100008,\n \"parent\": {\n \"type\": \"shard\",\n \"chain\": \"eip155-100000\"\n },\n \"rpc\": [\"https://quarkchain-shard-7.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://100008.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-s7-ethapi.quarkchain.io\", \"http://eth-jrpc.mainnet.quarkchain.io:39007\"],\n \"shortName\": \"qkc-s7\",\n \"slug\": \"quarkchain-shard-7\",\n \"testnet\": false\n};\n\nvar c100009 = {\n \"chain\": \"VeChain\",\n \"chainId\": 100009,\n \"explorers\": [{\n \"name\": \"VeChain Stats\",\n \"url\": \"https://vechainstats.com\",\n \"standard\": \"none\"\n }, {\n \"name\": \"VeChain Explorer\",\n \"url\": \"https://explore.vechain.org\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://vechain.org\",\n \"name\": \"VeChain\",\n \"nativeCurrency\": {\n \"name\": \"VeChain\",\n \"symbol\": \"VET\",\n \"decimals\": 18\n },\n \"networkId\": 100009,\n \"rpc\": [],\n \"shortName\": \"vechain\",\n \"slug\": \"vechain\",\n \"testnet\": false\n};\n\nvar c100010 = {\n \"chain\": \"VeChain\",\n \"chainId\": 100010,\n \"explorers\": [{\n \"name\": \"VeChain Explorer\",\n \"url\": \"https://explore-testnet.vechain.org\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://faucet.vecha.in\"],\n \"infoURL\": \"https://vechain.org\",\n \"name\": \"VeChain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"VeChain\",\n \"symbol\": \"VET\",\n \"decimals\": 18\n },\n \"networkId\": 100010,\n \"rpc\": [],\n \"shortName\": \"vechain-testnet\",\n \"slip44\": 1,\n \"slug\": \"vechain-testnet\",\n \"testnet\": true\n};\n\nvar c100100 = {\n \"chain\": \"CHI1\",\n \"chainId\": 100100,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafybeidk4swpgdyqmpz6shd5onvpaujvwiwthrhypufnwr6xh3dausz2dm\",\n \"width\": 1800,\n \"height\": 1800,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://docs.gnosischain.com\",\n \"name\": \"Deprecated CHI\",\n \"nativeCurrency\": {\n \"name\": \"Chiado xDAI\",\n \"symbol\": \"xDAI\",\n \"decimals\": 18\n },\n \"networkId\": 100100,\n \"rpc\": [],\n \"shortName\": \"chi1\",\n \"slug\": \"deprecated-chi\",\n \"status\": \"deprecated\",\n \"testnet\": false\n};\n\nvar c101010 = {\n \"chain\": \"SVRN\",\n \"chainId\": 101010,\n \"explorers\": [{\n \"name\": \"Soverun\",\n \"url\": \"https://testnet.soverun.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.soverun.com\"],\n \"icon\": {\n \"url\": \"ipfs://QmTYazUzgY9Nn2mCjWwFUSLy3dG6i2PvALpwCNQvx1zXyi\",\n \"width\": 1154,\n \"height\": 1154,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://soverun.com\",\n \"name\": \"Soverun Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Soverun\",\n \"symbol\": \"SVRN\",\n \"decimals\": 18\n },\n \"networkId\": 101010,\n \"rpc\": [\"https://soverun-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://101010.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-rpc.soverun.com\"],\n \"shortName\": \"SVRNt\",\n \"slip44\": 1,\n \"slug\": \"soverun-testnet\",\n \"testnet\": true\n};\n\nvar c103090 = {\n \"chain\": \"crystal\",\n \"chainId\": 103090,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://scan.crystaleum.org\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://Qmbry1Uc6HnXmqFNXW5dFJ7To8EezCCjNr4TqqvAyzXS4h\",\n \"width\": 150,\n \"height\": 150,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://Qmbry1Uc6HnXmqFNXW5dFJ7To8EezCCjNr4TqqvAyzXS4h\",\n \"width\": 150,\n \"height\": 150,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://crystaleum.org\",\n \"name\": \"Crystaleum\",\n \"nativeCurrency\": {\n \"name\": \"CRFI\",\n \"symbol\": \"◈\",\n \"decimals\": 18\n },\n \"networkId\": 1,\n \"rpc\": [\"https://crystaleum.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://103090.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://evm.cryptocurrencydevs.org\", \"https://rpc.crystaleum.org\"],\n \"shortName\": \"CRFI\",\n \"slug\": \"crystaleum\",\n \"testnet\": false\n};\n\nvar c108801 = {\n \"chain\": \"BRO\",\n \"chainId\": 108801,\n \"explorers\": [{\n \"name\": \"BROChain Explorer\",\n \"url\": \"https://explorer.brochain.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://brochain.org\",\n \"name\": \"BROChain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Brother\",\n \"symbol\": \"BRO\",\n \"decimals\": 18\n },\n \"networkId\": 108801,\n \"rpc\": [\"https://brochain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://108801.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.brochain.org\", \"http://rpc.brochain.org\", \"https://rpc.brochain.org/mainnet\", \"http://rpc.brochain.org/mainnet\"],\n \"shortName\": \"bro\",\n \"slug\": \"brochain\",\n \"testnet\": false\n};\n\nvar c110000 = {\n \"chain\": \"QuarkChain\",\n \"chainId\": 110000,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://www.quarkchain.io\",\n \"name\": \"QuarkChain Devnet Root\",\n \"nativeCurrency\": {\n \"name\": \"QKC\",\n \"symbol\": \"QKC\",\n \"decimals\": 18\n },\n \"networkId\": 110000,\n \"rpc\": [\"https://quarkchain-devnet-root.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://110000.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"http://jrpc.devnet.quarkchain.io:38391\"],\n \"shortName\": \"qkc-d-r\",\n \"slug\": \"quarkchain-devnet-root\",\n \"testnet\": false\n};\n\nvar c110001 = {\n \"chain\": \"QuarkChain\",\n \"chainId\": 110001,\n \"explorers\": [{\n \"name\": \"quarkchain-devnet\",\n \"url\": \"https://devnet.quarkchain.io/0\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.quarkchain.io\",\n \"name\": \"QuarkChain Devnet Shard 0\",\n \"nativeCurrency\": {\n \"name\": \"QKC\",\n \"symbol\": \"QKC\",\n \"decimals\": 18\n },\n \"networkId\": 110001,\n \"parent\": {\n \"type\": \"shard\",\n \"chain\": \"eip155-110000\"\n },\n \"rpc\": [\"https://quarkchain-devnet-shard-0.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://110001.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://devnet-s0-ethapi.quarkchain.io\", \"http://eth-jrpc.devnet.quarkchain.io:39900\"],\n \"shortName\": \"qkc-d-s0\",\n \"slug\": \"quarkchain-devnet-shard-0\",\n \"testnet\": false\n};\n\nvar c110002 = {\n \"chain\": \"QuarkChain\",\n \"chainId\": 110002,\n \"explorers\": [{\n \"name\": \"quarkchain-devnet\",\n \"url\": \"https://devnet.quarkchain.io/1\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.quarkchain.io\",\n \"name\": \"QuarkChain Devnet Shard 1\",\n \"nativeCurrency\": {\n \"name\": \"QKC\",\n \"symbol\": \"QKC\",\n \"decimals\": 18\n },\n \"networkId\": 110002,\n \"parent\": {\n \"type\": \"shard\",\n \"chain\": \"eip155-110000\"\n },\n \"rpc\": [\"https://quarkchain-devnet-shard-1.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://110002.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://devnet-s1-ethapi.quarkchain.io\", \"http://eth-jrpc.devnet.quarkchain.io:39901\"],\n \"shortName\": \"qkc-d-s1\",\n \"slug\": \"quarkchain-devnet-shard-1\",\n \"testnet\": false\n};\n\nvar c110003 = {\n \"chain\": \"QuarkChain\",\n \"chainId\": 110003,\n \"explorers\": [{\n \"name\": \"quarkchain-devnet\",\n \"url\": \"https://devnet.quarkchain.io/2\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.quarkchain.io\",\n \"name\": \"QuarkChain Devnet Shard 2\",\n \"nativeCurrency\": {\n \"name\": \"QKC\",\n \"symbol\": \"QKC\",\n \"decimals\": 18\n },\n \"networkId\": 110003,\n \"parent\": {\n \"type\": \"shard\",\n \"chain\": \"eip155-110000\"\n },\n \"rpc\": [\"https://quarkchain-devnet-shard-2.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://110003.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://devnet-s2-ethapi.quarkchain.io\", \"http://eth-jrpc.devnet.quarkchain.io:39902\"],\n \"shortName\": \"qkc-d-s2\",\n \"slug\": \"quarkchain-devnet-shard-2\",\n \"testnet\": false\n};\n\nvar c110004 = {\n \"chain\": \"QuarkChain\",\n \"chainId\": 110004,\n \"explorers\": [{\n \"name\": \"quarkchain-devnet\",\n \"url\": \"https://devnet.quarkchain.io/3\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.quarkchain.io\",\n \"name\": \"QuarkChain Devnet Shard 3\",\n \"nativeCurrency\": {\n \"name\": \"QKC\",\n \"symbol\": \"QKC\",\n \"decimals\": 18\n },\n \"networkId\": 110004,\n \"parent\": {\n \"type\": \"shard\",\n \"chain\": \"eip155-110000\"\n },\n \"rpc\": [\"https://quarkchain-devnet-shard-3.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://110004.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://devnet-s3-ethapi.quarkchain.io\", \"http://eth-jrpc.devnet.quarkchain.io:39903\"],\n \"shortName\": \"qkc-d-s3\",\n \"slug\": \"quarkchain-devnet-shard-3\",\n \"testnet\": false\n};\n\nvar c110005 = {\n \"chain\": \"QuarkChain\",\n \"chainId\": 110005,\n \"explorers\": [{\n \"name\": \"quarkchain-devnet\",\n \"url\": \"https://devnet.quarkchain.io/4\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.quarkchain.io\",\n \"name\": \"QuarkChain Devnet Shard 4\",\n \"nativeCurrency\": {\n \"name\": \"QKC\",\n \"symbol\": \"QKC\",\n \"decimals\": 18\n },\n \"networkId\": 110005,\n \"parent\": {\n \"type\": \"shard\",\n \"chain\": \"eip155-110000\"\n },\n \"rpc\": [\"https://quarkchain-devnet-shard-4.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://110005.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://devnet-s4-ethapi.quarkchain.io\", \"http://eth-jrpc.devnet.quarkchain.io:39904\"],\n \"shortName\": \"qkc-d-s4\",\n \"slug\": \"quarkchain-devnet-shard-4\",\n \"testnet\": false\n};\n\nvar c110006 = {\n \"chain\": \"QuarkChain\",\n \"chainId\": 110006,\n \"explorers\": [{\n \"name\": \"quarkchain-devnet\",\n \"url\": \"https://devnet.quarkchain.io/5\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.quarkchain.io\",\n \"name\": \"QuarkChain Devnet Shard 5\",\n \"nativeCurrency\": {\n \"name\": \"QKC\",\n \"symbol\": \"QKC\",\n \"decimals\": 18\n },\n \"networkId\": 110006,\n \"parent\": {\n \"type\": \"shard\",\n \"chain\": \"eip155-110000\"\n },\n \"rpc\": [\"https://quarkchain-devnet-shard-5.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://110006.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://devnet-s5-ethapi.quarkchain.io\", \"http://eth-jrpc.devnet.quarkchain.io:39905\"],\n \"shortName\": \"qkc-d-s5\",\n \"slug\": \"quarkchain-devnet-shard-5\",\n \"testnet\": false\n};\n\nvar c110007 = {\n \"chain\": \"QuarkChain\",\n \"chainId\": 110007,\n \"explorers\": [{\n \"name\": \"quarkchain-devnet\",\n \"url\": \"https://devnet.quarkchain.io/6\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.quarkchain.io\",\n \"name\": \"QuarkChain Devnet Shard 6\",\n \"nativeCurrency\": {\n \"name\": \"QKC\",\n \"symbol\": \"QKC\",\n \"decimals\": 18\n },\n \"networkId\": 110007,\n \"parent\": {\n \"type\": \"shard\",\n \"chain\": \"eip155-110000\"\n },\n \"rpc\": [\"https://quarkchain-devnet-shard-6.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://110007.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://devnet-s6-ethapi.quarkchain.io\", \"http://eth-jrpc.devnet.quarkchain.io:39906\"],\n \"shortName\": \"qkc-d-s6\",\n \"slug\": \"quarkchain-devnet-shard-6\",\n \"testnet\": false\n};\n\nvar c110008 = {\n \"chain\": \"QuarkChain\",\n \"chainId\": 110008,\n \"explorers\": [{\n \"name\": \"quarkchain-devnet\",\n \"url\": \"https://devnet.quarkchain.io/7\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.quarkchain.io\",\n \"name\": \"QuarkChain Devnet Shard 7\",\n \"nativeCurrency\": {\n \"name\": \"QKC\",\n \"symbol\": \"QKC\",\n \"decimals\": 18\n },\n \"networkId\": 110008,\n \"parent\": {\n \"type\": \"shard\",\n \"chain\": \"eip155-110000\"\n },\n \"rpc\": [\"https://quarkchain-devnet-shard-7.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://110008.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://devnet-s7-ethapi.quarkchain.io\", \"http://eth-jrpc.devnet.quarkchain.io:39907\"],\n \"shortName\": \"qkc-d-s7\",\n \"slug\": \"quarkchain-devnet-shard-7\",\n \"testnet\": false\n};\n\nvar c111000 = {\n \"chain\": \"SBR\",\n \"chainId\": 111000,\n \"explorers\": [{\n \"name\": \"Siberium Testnet Explorer - blockscout\",\n \"url\": \"https://explorer.test.siberium.net\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYeMdWDZ1iaBFeSPorRyPi7RuSXTdDKTgW3rfnUf3W5ne\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmYeMdWDZ1iaBFeSPorRyPi7RuSXTdDKTgW3rfnUf3W5ne\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://siberium.net\",\n \"name\": \"Siberium Test Network\",\n \"nativeCurrency\": {\n \"name\": \"TestSIBR\",\n \"symbol\": \"SIBR\",\n \"decimals\": 18\n },\n \"networkId\": 111000,\n \"rpc\": [\"https://siberium-test-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://111000.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.test.siberium.net\"],\n \"shortName\": \"testsbr\",\n \"slip44\": 1,\n \"slug\": \"siberium-test-network\",\n \"testnet\": true\n};\n\nvar c111111 = {\n \"chain\": \"SBR\",\n \"chainId\": 111111,\n \"explorers\": [{\n \"name\": \"Siberium Mainnet Explorer - blockscout - 2\",\n \"url\": \"https://explorer.main.siberium.net.ru\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYeMdWDZ1iaBFeSPorRyPi7RuSXTdDKTgW3rfnUf3W5ne\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmYeMdWDZ1iaBFeSPorRyPi7RuSXTdDKTgW3rfnUf3W5ne\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://siberium.net\",\n \"name\": \"Siberium Network\",\n \"nativeCurrency\": {\n \"name\": \"Siberium\",\n \"symbol\": \"SIBR\",\n \"decimals\": 18\n },\n \"networkId\": 111111,\n \"rpc\": [\"https://siberium-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://111111.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.main.siberium.net\", \"https://rpc.main.siberium.net.ru\"],\n \"shortName\": \"sbr\",\n \"slug\": \"siberium-network\",\n \"testnet\": false\n};\n\nvar c112358 = {\n \"chain\": \"METAO\",\n \"chainId\": 112358,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://explorer.metachain.one\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmTmo2QAtX5PbhX96vewnvH4Vc5H83Ft2DJGi6tAqTcFij\",\n \"width\": 1000,\n \"height\": 981,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://metachain.one\",\n \"name\": \"Metachain One Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Metao\",\n \"symbol\": \"METAO\",\n \"decimals\": 18\n },\n \"networkId\": 112358,\n \"rpc\": [\"https://metachain-one.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://112358.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.metachain.one\", \"https://rpc2.metachain.one\"],\n \"shortName\": \"metao\",\n \"slug\": \"metachain-one\",\n \"testnet\": false\n};\n\nvar c123456 = {\n \"chain\": \"ADIL\",\n \"chainId\": 123456,\n \"explorers\": [{\n \"name\": \"ADIL Devnet Explorer\",\n \"url\": \"https://devnet.adilchain-scan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmeHNYUx6n8CjUFSLWNT17oAtDYrUq6r8buyvGCUBXCJw6\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://adilchain.io\",\n \"name\": \"ADIL Devnet\",\n \"nativeCurrency\": {\n \"name\": \"Devnet ADIL\",\n \"symbol\": \"ADIL\",\n \"decimals\": 18\n },\n \"networkId\": 123456,\n \"rpc\": [\"https://adil-devnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://123456.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://devnet.adilchain-rpc.io\"],\n \"shortName\": \"dadil\",\n \"slug\": \"adil-devnet\",\n \"testnet\": false\n};\n\nvar c128123 = {\n \"chain\": \"Etherlink\",\n \"chainId\": 128123,\n \"explorers\": [{\n \"name\": \"Explorer\",\n \"url\": \"https://testnet-explorer.etherlink.com/\",\n \"standard\": \"EIP1559\"\n }],\n \"faucets\": [\"https://faucet.etherlink.com\"],\n \"features\": [{\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmVqE4wq3fd3RKZwo7GxmW333ywHgYBZGvqwh3TUBM5DUi\",\n \"width\": 3600,\n \"height\": 3600,\n \"format\": \"PNG\"\n },\n \"infoURL\": \"https://node.ghostnet.etherlink.com\",\n \"name\": \"Etherlink Testnet\",\n \"nativeCurrency\": {\n \"name\": \"tez\",\n \"symbol\": \"XTZ\",\n \"decimals\": 18\n },\n \"networkId\": 128123,\n \"parent\": {\n \"type\": \"Etherlink\",\n \"chain\": \"Etherlink\",\n \"bridges\": []\n },\n \"redFlags\": [],\n \"rpc\": [\"https://etherlink-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://128123.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://node.ghostnet.etherlink.com\"],\n \"shortName\": \"etlt\",\n \"slug\": \"etherlink-testnet\",\n \"testnet\": true\n};\n\nvar c131419 = {\n \"chain\": \"ETND\",\n \"chainId\": 131419,\n \"explorers\": [{\n \"name\": \"etndscan\",\n \"url\": \"https://scan.etnd.pro\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://Qmd26eRJxPb1jJg5Q4mC2M4kD9Jrs5vmcnr5LczHFMGwSD\",\n \"width\": 128,\n \"height\": 128,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://Qmd26eRJxPb1jJg5Q4mC2M4kD9Jrs5vmcnr5LczHFMGwSD\",\n \"width\": 128,\n \"height\": 128,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.etnd.pro\",\n \"name\": \"ETND Chain Mainnets\",\n \"nativeCurrency\": {\n \"name\": \"ETND\",\n \"symbol\": \"ETND\",\n \"decimals\": 18\n },\n \"networkId\": 131419,\n \"rpc\": [\"https://etnd-chain-s.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://131419.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.node1.etnd.pro/\"],\n \"shortName\": \"ETND\",\n \"slug\": \"etnd-chain-s\",\n \"testnet\": false\n};\n\nvar c132902 = {\n \"chain\": \"Form\",\n \"chainId\": 132902,\n \"explorers\": [],\n \"faucets\": [\"https://info.form.network/faucet\"],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreif6anuffunp3le26jsyemdrg4ydf2abensokw4qnlgvg5nc43zqbi\",\n \"width\": 3600,\n \"height\": 3600,\n \"format\": \"PNG\"\n },\n \"infoURL\": \"https://info.form.network\",\n \"name\": \"Form Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 132902,\n \"parent\": {\n \"type\": \"Optimism\",\n \"chain\": \"Optimism\",\n \"bridges\": []\n },\n \"redFlags\": [],\n \"rpc\": [\"https://form-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://132902.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.form.network/http\"],\n \"shortName\": \"Form\",\n \"slug\": \"form-testnet\",\n \"testnet\": true,\n \"title\": \"https://explorer.form.network/\"\n};\n\nvar c142857 = {\n \"chain\": \"ICPlaza\",\n \"chainId\": 142857,\n \"explorers\": [{\n \"name\": \"ICPlaza\",\n \"url\": \"https://browsemainnet.ic-plaza.org/index\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmQpKKwpqrx77VA4SJLEWhuv9eLFMcVV9uvxRCLb6gdgCX\",\n \"width\": 847,\n \"height\": 906,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://docs.ic-plaza.org/\",\n \"name\": \"ICPlaza Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"ict\",\n \"symbol\": \"ict\",\n \"decimals\": 18\n },\n \"networkId\": 142857,\n \"rpc\": [\"https://icplaza.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://142857.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpcmainnet.ic-plaza.org/\"],\n \"shortName\": \"ICPlaza\",\n \"slug\": \"icplaza\",\n \"testnet\": false\n};\n\nvar c151221 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 151221,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \".svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"Xantus\",\n \"nativeCurrency\": {\n \"name\": \"Xantus Token\",\n \"symbol\": \"XAN\",\n \"decimals\": 18\n },\n \"networkId\": 151221,\n \"redFlags\": [],\n \"rpc\": [\"https://xantus.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://151221.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/xantus/testnet/rpc\"],\n \"shortName\": \"Xantus\",\n \"slug\": \"xantus\",\n \"testnet\": true\n};\n\nvar c167004 = {\n \"chain\": \"ETH\",\n \"chainId\": 167004,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://explorer.a2.taiko.xyz\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmcHdmVr5VRUJq13jnM6tgah5Ge7hn3Dm14eY6vwivJ5ui\",\n \"width\": 288,\n \"height\": 258,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://taiko.xyz\",\n \"name\": \"Taiko (Alpha-2 Testnet)\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 167004,\n \"rpc\": [\"https://taiko-alpha-2-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://167004.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.a2.taiko.xyz\"],\n \"shortName\": \"taiko-a2\",\n \"slip44\": 1,\n \"slug\": \"taiko-alpha-2-testnet\",\n \"status\": \"deprecated\",\n \"testnet\": true\n};\n\nvar c167005 = {\n \"chain\": \"ETH\",\n \"chainId\": 167005,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://explorer.test.taiko.xyz\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmcHdmVr5VRUJq13jnM6tgah5Ge7hn3Dm14eY6vwivJ5ui\",\n \"width\": 288,\n \"height\": 258,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://taiko.xyz\",\n \"name\": \"Taiko Grimsvotn L2\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 167005,\n \"rpc\": [\"https://taiko-grimsvotn-l2.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://167005.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.test.taiko.xyz\"],\n \"shortName\": \"taiko-l2\",\n \"slug\": \"taiko-grimsvotn-l2\",\n \"status\": \"deprecated\",\n \"testnet\": true\n};\n\nvar c167006 = {\n \"chain\": \"ETH\",\n \"chainId\": 167006,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://explorer.l3test.taiko.xyz\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmcHdmVr5VRUJq13jnM6tgah5Ge7hn3Dm14eY6vwivJ5ui\",\n \"width\": 288,\n \"height\": 258,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://taiko.xyz\",\n \"name\": \"Taiko Eldfell L3\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 167006,\n \"rpc\": [\"https://taiko-eldfell-l3.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://167006.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.l3test.taiko.xyz\"],\n \"shortName\": \"taiko-l3\",\n \"slug\": \"taiko-eldfell-l3\",\n \"status\": \"deprecated\",\n \"testnet\": true\n};\n\nvar c167007 = {\n \"chain\": \"ETH\",\n \"chainId\": 167007,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://explorer.jolnir.taiko.xyz\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmcHdmVr5VRUJq13jnM6tgah5Ge7hn3Dm14eY6vwivJ5ui\",\n \"width\": 288,\n \"height\": 258,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://taiko.xyz\",\n \"name\": \"Taiko Jolnir L2\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 167007,\n \"rpc\": [\"https://taiko-jolnir-l2.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://167007.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.jolnir.taiko.xyz\"],\n \"shortName\": \"tko-jolnir\",\n \"slug\": \"taiko-jolnir-l2\",\n \"status\": \"deprecated\",\n \"testnet\": false\n};\n\nvar c167008 = {\n \"chain\": \"ETH\",\n \"chainId\": 167008,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://explorer.katla.taiko.xyz\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmcHdmVr5VRUJq13jnM6tgah5Ge7hn3Dm14eY6vwivJ5ui\",\n \"width\": 288,\n \"height\": 258,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://taiko.xyz\",\n \"name\": \"Taiko Katla L2\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 167008,\n \"rpc\": [\"https://taiko-katla-l2.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://167008.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.katla.taiko.xyz\"],\n \"shortName\": \"tko-katla\",\n \"slug\": \"taiko-katla-l2\",\n \"status\": \"active\",\n \"testnet\": false\n};\n\nvar c188710 = {\n \"chain\": \"BDCC\",\n \"chainId\": 188710,\n \"explorers\": [{\n \"name\": \"Bitica DPOS Blockchain Explorer\",\n \"url\": \"https://biticablockchain.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://biticablockchain.com/\",\n \"name\": \"Bitica Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Bitica Coin\",\n \"symbol\": \"BDCC\",\n \"decimals\": 18\n },\n \"networkId\": 188710,\n \"rpc\": [\"https://bitica-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://188710.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-rpc.biticablockchain.com/\"],\n \"shortName\": \"bdcc\",\n \"slug\": \"bitica-chain\",\n \"testnet\": false\n};\n\nvar c188881 = {\n \"chain\": \"CONDOR\",\n \"chainId\": 188881,\n \"explorers\": [{\n \"name\": \"CondorScan\",\n \"url\": \"https://explorer.condor.systems\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://faucet.condor.systems\"],\n \"icon\": {\n \"url\": \"ipfs://QmPRDuEJSTqp2cDUvWCp71Wns6XV8nvdeAVKWH6srpk4xM\",\n \"width\": 752,\n \"height\": 752,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://condor.systems\",\n \"name\": \"Condor Test Network\",\n \"nativeCurrency\": {\n \"name\": \"Condor Native Token\",\n \"symbol\": \"CONDOR\",\n \"decimals\": 18\n },\n \"networkId\": 188881,\n \"rpc\": [\"https://condor-test-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://188881.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.condor.systems/rpc\"],\n \"shortName\": \"condor\",\n \"slip44\": 1,\n \"slug\": \"condor-test-network\",\n \"testnet\": true\n};\n\nvar c200101 = {\n \"chain\": \"milkTAda\",\n \"chainId\": 200101,\n \"explorers\": [{\n \"name\": \"Blockscout\",\n \"url\": \"https://explorer-devnet-cardano-evm.c1.milkomeda.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmdoUtvHDybu5ppYBZT8BMRp6AqByVSoQs8nFwKbaS55jd\",\n \"width\": 367,\n \"height\": 367,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://milkomeda.com\",\n \"name\": \"Milkomeda C1 Testnet\",\n \"nativeCurrency\": {\n \"name\": \"milkTAda\",\n \"symbol\": \"mTAda\",\n \"decimals\": 18\n },\n \"networkId\": 200101,\n \"rpc\": [\"https://milkomeda-c1-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://200101.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-devnet-cardano-evm.c1.milkomeda.com\", \"wss://rpc-devnet-cardano-evm.c1.milkomeda.com\"],\n \"shortName\": \"milkTAda\",\n \"slip44\": 1,\n \"slug\": \"milkomeda-c1-testnet\",\n \"testnet\": true\n};\n\nvar c200202 = {\n \"chain\": \"milkTAlgo\",\n \"chainId\": 200202,\n \"explorers\": [{\n \"name\": \"Blockscout\",\n \"url\": \"https://explorer-devnet-algorand-rollup.a1.milkomeda.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmdoUtvHDybu5ppYBZT8BMRp6AqByVSoQs8nFwKbaS55jd\",\n \"width\": 367,\n \"height\": 367,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://milkomeda.com\",\n \"name\": \"Milkomeda A1 Testnet\",\n \"nativeCurrency\": {\n \"name\": \"milkTAlgo\",\n \"symbol\": \"mTAlgo\",\n \"decimals\": 18\n },\n \"networkId\": 200202,\n \"rpc\": [\"https://milkomeda-a1-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://200202.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-devnet-algorand-rollup.a1.milkomeda.com\"],\n \"shortName\": \"milkTAlgo\",\n \"slip44\": 1,\n \"slug\": \"milkomeda-a1-testnet\",\n \"testnet\": true\n};\n\nvar c200625 = {\n \"chain\": \"AKA\",\n \"chainId\": 200625,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://akroma.io\",\n \"name\": \"Akroma\",\n \"nativeCurrency\": {\n \"name\": \"Akroma Ether\",\n \"symbol\": \"AKA\",\n \"decimals\": 18\n },\n \"networkId\": 200625,\n \"rpc\": [\"https://akroma.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://200625.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://remote.akroma.io\"],\n \"shortName\": \"aka\",\n \"slip44\": 200625,\n \"slug\": \"akroma\",\n \"testnet\": false\n};\n\nvar c201018 = {\n \"chain\": \"Alaya\",\n \"chainId\": 201018,\n \"explorers\": [{\n \"name\": \"alaya explorer\",\n \"url\": \"https://scan.alaya.network\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://Qmci6vPcWAwmq19j98yuQxjV6UPzHtThMdCAUDbKeb8oYu\",\n \"width\": 1140,\n \"height\": 1140,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.alaya.network/\",\n \"name\": \"Alaya Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"ATP\",\n \"symbol\": \"atp\",\n \"decimals\": 18\n },\n \"networkId\": 1,\n \"rpc\": [\"https://alaya.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://201018.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://openapi.alaya.network/rpc\", \"wss://openapi.alaya.network/ws\"],\n \"shortName\": \"alaya\",\n \"slug\": \"alaya\",\n \"testnet\": false\n};\n\nvar c201030 = {\n \"chain\": \"Alaya\",\n \"chainId\": 201030,\n \"explorers\": [{\n \"name\": \"alaya explorer\",\n \"url\": \"https://devnetscan.alaya.network\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://faucet.alaya.network/faucet/?id=f93426c0887f11eb83b900163e06151c\"],\n \"icon\": {\n \"url\": \"ipfs://Qmci6vPcWAwmq19j98yuQxjV6UPzHtThMdCAUDbKeb8oYu\",\n \"width\": 1140,\n \"height\": 1140,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.alaya.network/\",\n \"name\": \"Alaya Dev Testnet\",\n \"nativeCurrency\": {\n \"name\": \"ATP\",\n \"symbol\": \"atp\",\n \"decimals\": 18\n },\n \"networkId\": 1,\n \"rpc\": [\"https://alaya-dev-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://201030.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://devnetopenapi.alaya.network/rpc\", \"wss://devnetopenapi.alaya.network/ws\"],\n \"shortName\": \"alayadev\",\n \"slip44\": 1,\n \"slug\": \"alaya-dev-testnet\",\n \"testnet\": true\n};\n\nvar c201804 = {\n \"chain\": \"MYTH\",\n \"chainId\": 201804,\n \"explorers\": [{\n \"name\": \"Mythical Chain Explorer\",\n \"url\": \"https://explorer.mythicalgames.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://bafkreihru6cccfblrjz5bv36znq2l3h67u6xj5ivtc4bj5l6gzofbgtnb4\",\n \"width\": 350,\n \"height\": 350,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://bafkreihru6cccfblrjz5bv36znq2l3h67u6xj5ivtc4bj5l6gzofbgtnb4\",\n \"width\": 350,\n \"height\": 350,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://mythicalgames.com/\",\n \"name\": \"Mythical Chain\",\n \"nativeCurrency\": {\n \"name\": \"Mythos\",\n \"symbol\": \"MYTH\",\n \"decimals\": 18\n },\n \"networkId\": 201804,\n \"rpc\": [\"https://mythical-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://201804.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://chain-rpc.mythicalgames.com\"],\n \"shortName\": \"myth\",\n \"slug\": \"mythical-chain\",\n \"testnet\": false\n};\n\nvar c202020 = {\n \"chain\": \"tDSC\",\n \"chainId\": 202020,\n \"explorers\": [{\n \"name\": \"DSC Explorer Testnet\",\n \"url\": \"https://testnet.explorer.decimalchain.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmSgzwKnJJjys3Uq2aVVdwJ3NffLj3CXMVCph9uByTBegc\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmSgzwKnJJjys3Uq2aVVdwJ3NffLj3CXMVCph9uByTBegc\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://decimalchain.com\",\n \"name\": \"Decimal Smart Chain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Decimal\",\n \"symbol\": \"tDEL\",\n \"decimals\": 18\n },\n \"networkId\": 202020,\n \"rpc\": [\"https://decimal-smart-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://202020.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-val.decimalchain.com/web3/\"],\n \"shortName\": \"tDSC\",\n \"slip44\": 1,\n \"slug\": \"decimal-smart-chain-testnet\",\n \"testnet\": true\n};\n\nvar c202212 = {\n \"chain\": \"X1\",\n \"chainId\": 202212,\n \"explorers\": [{\n \"name\": \"Blockscout\",\n \"url\": \"https://explorer.x1-devnet.xen.network\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"infoURL\": \"https://docs.xen.network/x1/\",\n \"name\": \"X1 Devnet\",\n \"nativeCurrency\": {\n \"name\": \"XN\",\n \"symbol\": \"XN\",\n \"decimals\": 18\n },\n \"networkId\": 202212,\n \"rpc\": [\"https://x1-devnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://202212.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://x1-devnet.xen.network\"],\n \"shortName\": \"x1-devnet\",\n \"slug\": \"x1-devnet\",\n \"testnet\": false\n};\n\nvar c202624 = {\n \"chain\": \"ETH\",\n \"chainId\": 202624,\n \"explorers\": [{\n \"name\": \"Jellie Blockchain Explorer\",\n \"url\": \"https://jellie.twala.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmTXJVhVKvVC7DQEnGKXvydvwpvVaUEBJrMHvsCr4nr1sK\",\n \"width\": 1326,\n \"height\": 1265,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmTXJVhVKvVC7DQEnGKXvydvwpvVaUEBJrMHvsCr4nr1sK\",\n \"width\": 1326,\n \"height\": 1265,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://twala.io/\",\n \"name\": \"Jellie\",\n \"nativeCurrency\": {\n \"name\": \"Twala Coin\",\n \"symbol\": \"TWL\",\n \"decimals\": 18\n },\n \"networkId\": 202624,\n \"rpc\": [\"https://jellie.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://202624.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://jellie-rpc.twala.io/\", \"wss://jellie-rpc-wss.twala.io/\"],\n \"shortName\": \"twl-jellie\",\n \"slip44\": 1,\n \"slug\": \"jellie\",\n \"testnet\": true,\n \"title\": \"Twala Testnet Jellie\"\n};\n\nvar c204005 = {\n \"chain\": \"X1\",\n \"chainId\": 204005,\n \"explorers\": [{\n \"name\": \"Blockscout\",\n \"url\": \"https://explorer.x1-testnet.xen.network\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"infoURL\": \"https://docs.xen.network/go-x1/\",\n \"name\": \"X1 Network\",\n \"nativeCurrency\": {\n \"name\": \"XN\",\n \"symbol\": \"XN\",\n \"decimals\": 18\n },\n \"networkId\": 204005,\n \"rpc\": [\"https://x1-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://204005.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://x1-testnet.xen.network\"],\n \"shortName\": \"x1-testnet\",\n \"slug\": \"x1-network\",\n \"testnet\": true\n};\n\nvar c210425 = {\n \"chain\": \"PlatON\",\n \"chainId\": 210425,\n \"explorers\": [{\n \"name\": \"PlatON explorer\",\n \"url\": \"https://scan.platon.network\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmT7PSXBiVBma6E15hNkivmstqLu3JSnG1jXN5pTmcCGRC\",\n \"width\": 180,\n \"height\": 180,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.platon.network\",\n \"name\": \"PlatON Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"LAT\",\n \"symbol\": \"lat\",\n \"decimals\": 18\n },\n \"networkId\": 1,\n \"rpc\": [\"https://platon.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://210425.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://openapi2.platon.network/rpc\", \"wss://openapi2.platon.network/ws\"],\n \"shortName\": \"platon\",\n \"slug\": \"platon\",\n \"testnet\": false\n};\n\nvar c220315 = {\n \"chain\": \"MAS\",\n \"chainId\": 220315,\n \"explorers\": [{\n \"name\": \"explorer masnet\",\n \"url\": \"https://explorer.masnet.ai\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmZ9njQhhKkpJKGnoYy6XTuDtk5CYiDFUd8atqWthqUT3Q\",\n \"width\": 1024,\n \"height\": 1024,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://masterbank.org\",\n \"name\": \"Mas Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Master Bank\",\n \"symbol\": \"MAS\",\n \"decimals\": 18\n },\n \"networkId\": 220315,\n \"rpc\": [\"https://mas.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://220315.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"http://node.masnet.ai:8545\"],\n \"shortName\": \"mas\",\n \"slug\": \"mas\",\n \"testnet\": false\n};\n\nvar c221230 = {\n \"chain\": \"REAP\",\n \"chainId\": 221230,\n \"explorers\": [{\n \"name\": \"Reapchain Dashboard\",\n \"url\": \"https://dashboard.reapchain.org\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmevQ8jmDWHmdnUQg6BpoMwVB3NhpzS75adbMnKL78Ls2h\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmevQ8jmDWHmdnUQg6BpoMwVB3NhpzS75adbMnKL78Ls2h\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://reapchain.com\",\n \"name\": \"Reapchain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Reap\",\n \"symbol\": \"REAP\",\n \"decimals\": 18\n },\n \"networkId\": 221230,\n \"rpc\": [\"https://reapchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://221230.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://eth.reapchain.org\"],\n \"shortName\": \"reap\",\n \"slug\": \"reapchain\",\n \"testnet\": false\n};\n\nvar c221231 = {\n \"chain\": \"REAP\",\n \"chainId\": 221231,\n \"explorers\": [{\n \"name\": \"Reapchain Testnet Dashboard\",\n \"url\": \"https://test-dashboard.reapchain.org\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmevQ8jmDWHmdnUQg6BpoMwVB3NhpzS75adbMnKL78Ls2h\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"http://faucet.reapchain.com\"],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmevQ8jmDWHmdnUQg6BpoMwVB3NhpzS75adbMnKL78Ls2h\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://reapchain.com\",\n \"name\": \"Reapchain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"test-Reap\",\n \"symbol\": \"tREAP\",\n \"decimals\": 18\n },\n \"networkId\": 221231,\n \"rpc\": [\"https://reapchain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://221231.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://test-eth.reapchain.org\"],\n \"shortName\": \"reap-testnet\",\n \"slip44\": 1,\n \"slug\": \"reapchain-testnet\",\n \"testnet\": true\n};\n\nvar c224168 = {\n \"chain\": \"Taf ECO Chain\",\n \"chainId\": 224168,\n \"explorers\": [{\n \"name\": \"Taf ECO Chain Mainnet\",\n \"url\": \"https://ecoscan.tafchain.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreigpxhu7glccsislhjqpl5fnsfmj2io4cy33blhky642uiuyojossy\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.tafchain.com\",\n \"name\": \"Taf ECO Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Taf ECO Chain Mainnet\",\n \"symbol\": \"TAFECO\",\n \"decimals\": 18\n },\n \"networkId\": 224168,\n \"rpc\": [\"https://taf-eco-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://224168.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.tafchain.com/v1\"],\n \"shortName\": \"TAFECO\",\n \"slug\": \"taf-eco-chain\",\n \"testnet\": false\n};\n\nvar c224422 = {\n \"chain\": \"CONET\",\n \"chainId\": 224422,\n \"explorers\": [{\n \"name\": \"CONET Scan\",\n \"url\": \"https://scan.conet.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }],\n \"icon\": {\n \"url\": \"ipfs://bafkreibjxqd5kqcc2shstjjujvxzg6cwegwr6dgjyyd56v6h7yusgks7sy\",\n \"width\": 1200,\n \"height\": 1200,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://conet.network\",\n \"name\": \"CONET Sebolia Testnet\",\n \"nativeCurrency\": {\n \"name\": \"CONET Sebolia\",\n \"symbol\": \"CONET\",\n \"decimals\": 18\n },\n \"networkId\": 224422,\n \"rpc\": [\"https://conet-sebolia-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://224422.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc1.conet.network\"],\n \"shortName\": \"conet-sebolia\",\n \"slip44\": 1,\n \"slug\": \"conet-sebolia-testnet\",\n \"testnet\": true\n};\n\nvar c224433 = {\n \"chain\": \"CONET Holesky\",\n \"chainId\": 224433,\n \"explorers\": [{\n \"name\": \"CONET Holesky Scan\",\n \"url\": \"https://scan.conet.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }],\n \"icon\": {\n \"url\": \"ipfs://bafkreibjxqd5kqcc2shstjjujvxzg6cwegwr6dgjyyd56v6h7yusgks7sy\",\n \"width\": 1200,\n \"height\": 1200,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://conet.network\",\n \"name\": \"CONET Holesky\",\n \"nativeCurrency\": {\n \"name\": \"CONET Holesky\",\n \"symbol\": \"CONET\",\n \"decimals\": 18\n },\n \"networkId\": 224433,\n \"rpc\": [\"https://conet-holesky.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://224433.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://holeskyrpc1.conet.network\"],\n \"shortName\": \"conet-holesky\",\n \"slip44\": 2147708081,\n \"slug\": \"conet-holesky\",\n \"testnet\": false\n};\n\nvar c230315 = {\n \"chain\": \"HashKey\",\n \"chainId\": 230315,\n \"explorers\": [{\n \"name\": \"HashKey Chain Testnet Explorer\",\n \"url\": \"https://testnet.hashkeyscan.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://testnet.hashkeychain/faucet\"],\n \"icon\": {\n \"url\": \"ipfs://QmNU11AqYB2htrrSyBSP9ct7bPtuZTP7Hrz21PrEcB9nYE\",\n \"width\": 1440,\n \"height\": 448,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.hashkey.com\",\n \"name\": \"HashKey Chain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"HashKey Token\",\n \"symbol\": \"tHSK\",\n \"decimals\": 18\n },\n \"networkId\": 230315,\n \"rpc\": [\"https://hashkey-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://230315.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.hashkeychain/rpc\"],\n \"shortName\": \"hsktest\",\n \"slip44\": 1,\n \"slug\": \"hashkey-chain-testnet\",\n \"testnet\": true\n};\n\nvar c234666 = {\n \"chain\": \"tHYM\",\n \"chainId\": 234666,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://haymoswap.web.app/\",\n \"name\": \"Haymo Testnet\",\n \"nativeCurrency\": {\n \"name\": \"HAYMO\",\n \"symbol\": \"HYM\",\n \"decimals\": 18\n },\n \"networkId\": 234666,\n \"rpc\": [\"https://haymo-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://234666.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet1.haymo.network\"],\n \"shortName\": \"hym\",\n \"slip44\": 1,\n \"slug\": \"haymo-testnet\",\n \"testnet\": true\n};\n\nvar c246529 = {\n \"chain\": \"ARTIS\",\n \"chainId\": 246529,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://artis.eco\",\n \"name\": \"ARTIS sigma1\",\n \"nativeCurrency\": {\n \"name\": \"ARTIS sigma1 Ether\",\n \"symbol\": \"ATS\",\n \"decimals\": 18\n },\n \"networkId\": 246529,\n \"rpc\": [\"https://artis-sigma1.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://246529.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.sigma1.artis.network\"],\n \"shortName\": \"ats\",\n \"slip44\": 246529,\n \"slug\": \"artis-sigma1\",\n \"testnet\": false\n};\n\nvar c246785 = {\n \"chain\": \"ARTIS\",\n \"chainId\": 246785,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://artis.network\",\n \"name\": \"ARTIS Testnet tau1\",\n \"nativeCurrency\": {\n \"name\": \"ARTIS tau1 Ether\",\n \"symbol\": \"tATS\",\n \"decimals\": 18\n },\n \"networkId\": 246785,\n \"rpc\": [\"https://artis-testnet-tau1.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://246785.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.tau1.artis.network\"],\n \"shortName\": \"atstau\",\n \"slip44\": 1,\n \"slug\": \"artis-testnet-tau1\",\n \"testnet\": true\n};\n\nvar c247253 = {\n \"chain\": \"Saakuru\",\n \"chainId\": 247253,\n \"explorers\": [{\n \"name\": \"saakuru-explorer-testnet\",\n \"url\": \"https://explorer-testnet.saakuru.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmduEdtFobPpZWSc45MU6RKxZfTEzLux2z8ikHFhT8usqv\",\n \"width\": 1024,\n \"height\": 1024,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://saakuru.network\",\n \"name\": \"Saakuru Testnet\",\n \"nativeCurrency\": {\n \"name\": \"OAS\",\n \"symbol\": \"OAS\",\n \"decimals\": 18\n },\n \"networkId\": 247253,\n \"rpc\": [\"https://saakuru-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://247253.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-testnet.saakuru.network\"],\n \"shortName\": \"saakuru-testnet\",\n \"slip44\": 1,\n \"slug\": \"saakuru-testnet\",\n \"testnet\": true\n};\n\nvar c256256 = {\n \"chain\": \"CMP\",\n \"chainId\": 256256,\n \"explorers\": [{\n \"name\": \"Mainnet Scan\",\n \"url\": \"https://mainnet.scan.caduceus.foundation\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://caduceus.foundation/\",\n \"name\": \"CMP-Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Caduceus Token\",\n \"symbol\": \"CMP\",\n \"decimals\": 18\n },\n \"networkId\": 256256,\n \"rpc\": [\"https://cmp.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://256256.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.block.caduceus.foundation\", \"wss://mainnet.block.caduceus.foundation\"],\n \"shortName\": \"cmp-mainnet\",\n \"slug\": \"cmp\",\n \"testnet\": false\n};\n\nvar c266256 = {\n \"chain\": \"GearZero\",\n \"chainId\": 266256,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://token.gearzero.ca/testnet\",\n \"name\": \"Gear Zero Network Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Gear Zero Network Native Token\",\n \"symbol\": \"GZN\",\n \"decimals\": 18\n },\n \"networkId\": 266256,\n \"rpc\": [\"https://gear-zero-network-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://266256.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://gzn-test.linksme.info\"],\n \"shortName\": \"gz-testnet\",\n \"slip44\": 1,\n \"slug\": \"gear-zero-network-testnet\",\n \"testnet\": true\n};\n\nvar c271271 = {\n \"chain\": \"EGON\",\n \"chainId\": 271271,\n \"explorers\": [{\n \"name\": \"EgonCoin Testnet\",\n \"url\": \"https://testnet.egonscan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.egonscan.com\"],\n \"icon\": {\n \"url\": \"ipfs://QmNZiMmzMQYjyGtNSghtzLg4UooYhDgMQsa677DAP5KsBg\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://egonscan.com\",\n \"name\": \"EgonCoin Testnet\",\n \"nativeCurrency\": {\n \"name\": \"EgonCoin\",\n \"symbol\": \"EGON\",\n \"decimals\": 18\n },\n \"networkId\": 271271,\n \"rpc\": [\"https://egoncoin-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://271271.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpctest.egonscan.com\"],\n \"shortName\": \"EGONt\",\n \"slip44\": 1,\n \"slug\": \"egoncoin-testnet\",\n \"testnet\": true\n};\n\nvar c281121 = {\n \"chain\": \"SoChain\",\n \"chainId\": 281121,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://digitalnext.business/SocialSmartChain\",\n \"name\": \"Social Smart Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"SoChain\",\n \"symbol\": \"$OC\",\n \"decimals\": 18\n },\n \"networkId\": 281121,\n \"rpc\": [\"https://social-smart-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://281121.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://socialsmartchain.digitalnext.business\"],\n \"shortName\": \"SoChain\",\n \"slug\": \"social-smart-chain\",\n \"testnet\": false\n};\n\nvar c314159 = {\n \"chain\": \"FIL\",\n \"chainId\": 314159,\n \"explorers\": [{\n \"name\": \"Filscan - Calibration\",\n \"url\": \"https://calibration.filscan.io\",\n \"standard\": \"none\"\n }, {\n \"name\": \"Filscout - Calibration\",\n \"url\": \"https://calibration.filscout.com/en\",\n \"standard\": \"none\"\n }, {\n \"name\": \"Filfox - Calibration\",\n \"url\": \"https://calibration.filfox.info\",\n \"standard\": \"none\"\n }, {\n \"name\": \"Glif Explorer - Calibration\",\n \"url\": \"https://explorer.glif.io/?network=calibration\",\n \"standard\": \"none\"\n }, {\n \"name\": \"Beryx\",\n \"url\": \"https://beryx.zondax.ch\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://faucet.calibration.fildev.network/\"],\n \"icon\": {\n \"url\": \"ipfs://QmS9r9XQkMHVomWcSBNDkKkz9n87h9bH9ssabeiKZtANoU\",\n \"width\": 1000,\n \"height\": 1000,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://filecoin.io\",\n \"name\": \"Filecoin - Calibration testnet\",\n \"nativeCurrency\": {\n \"name\": \"testnet filecoin\",\n \"symbol\": \"tFIL\",\n \"decimals\": 18\n },\n \"networkId\": 314159,\n \"rpc\": [\"https://filecoin-calibration-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://314159.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.calibration.node.glif.io/rpc/v1\", \"https://rpc.ankr.com/filecoin_testnet\", \"https://filecoin-calibration.chainstacklabs.com/rpc/v1\", \"https://filecoin-calibration.chainup.net/rpc/v1\", \"https://calibration.filfox.info/rpc/v1\"],\n \"shortName\": \"filecoin-calibration\",\n \"slip44\": 1,\n \"slug\": \"filecoin-calibration-testnet\",\n \"testnet\": true\n};\n\nvar c330844 = {\n \"chain\": \"TSC\",\n \"chainId\": 330844,\n \"explorers\": [{\n \"name\": \"TTcoin Smart Chain Explorer\",\n \"url\": \"https://tscscan.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmS7ipvvyZ16weG1DM7AZbi1v9ixYwU2FjP25Jj5jkLiuf\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucet.tscscan.com\"],\n \"icon\": {\n \"url\": \"ipfs://QmS7ipvvyZ16weG1DM7AZbi1v9ixYwU2FjP25Jj5jkLiuf\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://ttcoin.info/\",\n \"name\": \"TTcoin Smart Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"TTcoin\",\n \"symbol\": \"TC\",\n \"decimals\": 18\n },\n \"networkId\": 330844,\n \"rpc\": [\"https://ttcoin-smart-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://330844.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-rpc.tscscan.com\"],\n \"shortName\": \"tc\",\n \"slug\": \"ttcoin-smart-chain\",\n \"testnet\": false\n};\n\nvar c331769 = {\n \"chain\": \"POPTestnet\",\n \"chainId\": 331769,\n \"explorers\": [{\n \"name\": \"ProofOfPepe Explorer\",\n \"url\": \"https://pepescan.app/\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmP8rYvcc7aJB3c2YZxjxaySvHapHnoK8MnxuSuDT4PtF2\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n },\n \"name\": \"ProofOfPepe Testnet\",\n \"nativeCurrency\": {\n \"name\": \"POP\",\n \"symbol\": \"POP\",\n \"decimals\": 18\n },\n \"networkId\": 331769,\n \"redFlags\": [],\n \"rpc\": [\"https://proofofpepe-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://331769.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet01.proofofpepe.tech\"],\n \"shortName\": \"POPTestnet\",\n \"slug\": \"proofofpepe-testnet\",\n \"testnet\": true\n};\n\nvar c331771 = {\n \"chain\": \"POP\",\n \"chainId\": 331771,\n \"explorers\": [{\n \"name\": \"Pepescan\",\n \"url\": \"https://pepescan.app\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmP8rYvcc7aJB3c2YZxjxaySvHapHnoK8MnxuSuDT4PtF2\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n },\n \"name\": \"POP Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Pepe\",\n \"symbol\": \"PEPE\",\n \"decimals\": 18\n },\n \"networkId\": 331771,\n \"redFlags\": [],\n \"rpc\": [\"https://pop.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://331771.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc00.proofofpepe.tech\", \"https://rpc01.proofofpepe.tech\", \"https://rpc02.proofofpepe.tech\"],\n \"shortName\": \"POP\",\n \"slug\": \"pop\",\n \"testnet\": false\n};\n\nvar c333331 = {\n \"chain\": \"AVST\",\n \"chainId\": 333331,\n \"explorers\": [{\n \"name\": \"avescan\",\n \"url\": \"https://testnet.avescoin.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmeKQVv2QneHaaggw2NfpZ7DGMdjVhPywTdse5RzCs4oGn\",\n \"width\": 232,\n \"height\": 232,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmeKQVv2QneHaaggw2NfpZ7DGMdjVhPywTdse5RzCs4oGn\",\n \"width\": 232,\n \"height\": 232,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://ethereum.org\",\n \"name\": \"Aves Testnet\",\n \"nativeCurrency\": {\n \"name\": \"AvesT\",\n \"symbol\": \"AVST\",\n \"decimals\": 18\n },\n \"networkId\": 333331,\n \"rpc\": [\"https://aves-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://333331.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://test.rpc.avescoin.io\"],\n \"shortName\": \"avst\",\n \"slip44\": 1,\n \"slug\": \"aves-testnet\",\n \"testnet\": true\n};\n\nvar c333333 = {\n \"chain\": \"N3-Test\",\n \"chainId\": 333333,\n \"explorers\": [{\n \"name\": \"Nativ3 Test Explorer\",\n \"url\": \"https://scantest.nativ3.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmVzJDndPui6qBSeJWe5kMLA56C3KpVhqqqk9xvVKE1DGb\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://nativ3.network\",\n \"name\": \"Nativ3 Testnet\",\n \"nativeCurrency\": {\n \"name\": \"USNT\",\n \"symbol\": \"USNT\",\n \"decimals\": 18\n },\n \"networkId\": 333333,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-421613\",\n \"bridges\": [{\n \"url\": \"https://bridgetest.nativ3.network\"\n }]\n },\n \"rpc\": [\"https://nativ3-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://333333.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpctest.nativ3.network\", \"wss://wstest.nativ3.network\"],\n \"shortName\": \"N3-Test\",\n \"slip44\": 1,\n \"slug\": \"nativ3-testnet\",\n \"testnet\": true\n};\n\nvar c333666 = {\n \"chain\": \"OONE Testnet\",\n \"chainId\": 333666,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://testnet.oonescan.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://apps-test.adigium.com/faucet\"],\n \"infoURL\": \"https://oonechain.com\",\n \"name\": \"Oone Chain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"tOONE\",\n \"symbol\": \"tOONE\",\n \"decimals\": 18\n },\n \"networkId\": 333666,\n \"rpc\": [\"https://oone-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://333666.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.testnet.oonechain.com\"],\n \"shortName\": \"oonetest\",\n \"slip44\": 1,\n \"slug\": \"oone-chain-testnet\",\n \"testnet\": true\n};\n\nvar c333777 = {\n \"chain\": \"OONE Devnet\",\n \"chainId\": 333777,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://dev.oonescan.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://apps-test.adigium.com/faucet\"],\n \"infoURL\": \"https://oonechain.com\",\n \"name\": \"Oone Chain Devnet\",\n \"nativeCurrency\": {\n \"name\": \"tOONE\",\n \"symbol\": \"tOONE\",\n \"decimals\": 18\n },\n \"networkId\": 333777,\n \"rpc\": [\"https://oone-chain-devnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://333777.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.dev.oonechain.com\"],\n \"shortName\": \"oonedev\",\n \"slug\": \"oone-chain-devnet\",\n \"testnet\": true\n};\n\nvar c333888 = {\n \"chain\": \"Sparta\",\n \"chainId\": 333888,\n \"explorers\": [],\n \"faucets\": [\"https://faucet.polis.tech\"],\n \"icon\": {\n \"url\": \"ipfs://QmagWrtyApex28H2QeXcs3jJ2F7p2K7eESz3cDbHdQ3pjG\",\n \"width\": 1050,\n \"height\": 1050,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://polis.tech\",\n \"name\": \"Polis Testnet\",\n \"nativeCurrency\": {\n \"name\": \"tPolis\",\n \"symbol\": \"tPOLIS\",\n \"decimals\": 18\n },\n \"networkId\": 333888,\n \"rpc\": [\"https://polis-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://333888.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://sparta-rpc.polis.tech\"],\n \"shortName\": \"sparta\",\n \"slip44\": 1,\n \"slug\": \"polis-testnet\",\n \"testnet\": true\n};\n\nvar c333999 = {\n \"chain\": \"Olympus\",\n \"chainId\": 333999,\n \"explorers\": [],\n \"faucets\": [\"https://faucet.polis.tech\"],\n \"icon\": {\n \"url\": \"ipfs://QmagWrtyApex28H2QeXcs3jJ2F7p2K7eESz3cDbHdQ3pjG\",\n \"width\": 1050,\n \"height\": 1050,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://polis.tech\",\n \"name\": \"Polis Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Polis\",\n \"symbol\": \"POLIS\",\n \"decimals\": 18\n },\n \"networkId\": 333999,\n \"rpc\": [\"https://polis.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://333999.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.polis.tech\"],\n \"shortName\": \"olympus\",\n \"slug\": \"polis\",\n \"testnet\": false\n};\n\nvar c355113 = {\n \"chain\": \"BFT\",\n \"chainId\": 355113,\n \"explorers\": [{\n \"name\": \"Bitfinity Block Explorer\",\n \"url\": \"https://explorer.bitfinity.network\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://bafkreiczbhnoc5wpjikskmehexmg3xmqr4fchrny64db4wmk3lrygqik5e\",\n \"width\": 796,\n \"height\": 129,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://bitfinity.network/faucet\"],\n \"infoURL\": \"https://bitfinity.network\",\n \"name\": \"Bitfinity Network Testnet\",\n \"nativeCurrency\": {\n \"name\": \"BITFINITY\",\n \"symbol\": \"BFT\",\n \"decimals\": 18\n },\n \"networkId\": 355113,\n \"rpc\": [\"https://bitfinity-network-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://355113.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.bitfinity.network\"],\n \"shortName\": \"Bitfinity\",\n \"slip44\": 1,\n \"slug\": \"bitfinity-network-testnet\",\n \"testnet\": true\n};\n\nvar c363636 = {\n \"chain\": \"DS2\",\n \"chainId\": 363636,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmRiAUu3xV5uiX6Nk1iXD5w6qjki5ugGFETRVavzJ2h5QF\",\n \"width\": 370,\n \"height\": 320,\n \"format\": \"png\"\n },\n \"name\": \"Digit Soul Smart Chain 2\",\n \"nativeCurrency\": {\n \"name\": \"Digit Coin\",\n \"symbol\": \"DGC\",\n \"decimals\": 18\n },\n \"networkId\": 363636,\n \"rpc\": [\"https://digit-soul-smart-chain-2.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://363636.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://dgs-rpc.digitsoul.co.th\"],\n \"shortName\": \"DS2\",\n \"slug\": \"digit-soul-smart-chain-2\",\n \"testnet\": false\n};\n\nvar c373737 = {\n \"chain\": \"HAPchain\",\n \"chainId\": 373737,\n \"explorers\": [{\n \"name\": \"HAP EVM Explorer (Blockscout)\",\n \"url\": \"https://blockscout-test.hap.land\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmQ4V9JC25yUrYk2kFJwmKguSsZBQvtGcg6q9zkDV8mkJW\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmQ4V9JC25yUrYk2kFJwmKguSsZBQvtGcg6q9zkDV8mkJW\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://hap.land\",\n \"name\": \"HAPchain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"HAP\",\n \"symbol\": \"HAP\",\n \"decimals\": 18\n },\n \"networkId\": 373737,\n \"rpc\": [\"https://hapchain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://373737.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://jsonrpc-test.hap.land\"],\n \"shortName\": \"hap-testnet\",\n \"slip44\": 1,\n \"slug\": \"hapchain-testnet\",\n \"testnet\": true\n};\n\nvar c381931 = {\n \"chain\": \"Metal\",\n \"chainId\": 381931,\n \"explorers\": [{\n \"name\": \"metalscan\",\n \"url\": \"https://metalscan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.metalblockchain.org/\",\n \"name\": \"Metal C-Chain\",\n \"nativeCurrency\": {\n \"name\": \"Metal\",\n \"symbol\": \"METAL\",\n \"decimals\": 18\n },\n \"networkId\": 381931,\n \"rpc\": [\"https://metal-c-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://381931.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.metalblockchain.org/ext/bc/C/rpc\"],\n \"shortName\": \"metal\",\n \"slip44\": 9005,\n \"slug\": \"metal-c-chain\",\n \"testnet\": false\n};\n\nvar c381932 = {\n \"chain\": \"Metal\",\n \"chainId\": 381932,\n \"explorers\": [{\n \"name\": \"metalscan\",\n \"url\": \"https://tahoe.metalscan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.metalblockchain.org/\",\n \"name\": \"Metal Tahoe C-Chain\",\n \"nativeCurrency\": {\n \"name\": \"Metal\",\n \"symbol\": \"METAL\",\n \"decimals\": 18\n },\n \"networkId\": 381932,\n \"rpc\": [\"https://metal-tahoe-c-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://381932.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://tahoe.metalblockchain.org/ext/bc/C/rpc\"],\n \"shortName\": \"Tahoe\",\n \"slip44\": 9005,\n \"slug\": \"metal-tahoe-c-chain\",\n \"testnet\": false\n};\n\nvar c404040 = {\n \"chain\": \"TPBX\",\n \"chainId\": 404040,\n \"explorers\": [{\n \"name\": \"Tipboxcoin\",\n \"url\": \"https://tipboxcoin.net\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.tipboxcoin.net\"],\n \"icon\": {\n \"url\": \"ipfs://QmbiaHnR3fVVofZ7Xq2GYZxwHkLEy3Fh5qDtqnqXD6ACAh\",\n \"width\": 192,\n \"height\": 192,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://tipboxcoin.net\",\n \"name\": \"Tipboxcoin Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Tipboxcoin\",\n \"symbol\": \"TPBX\",\n \"decimals\": 18\n },\n \"networkId\": 404040,\n \"rpc\": [\"https://tipboxcoin.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://404040.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-rpc.tipboxcoin.net\"],\n \"shortName\": \"TPBXm\",\n \"slug\": \"tipboxcoin\",\n \"testnet\": false\n};\n\nvar c420420 = {\n \"chain\": \"kek\",\n \"chainId\": 420420,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://mainnet-explorer.kekchain.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmNzwHAmaaQyuvKudrzGkrTT2GMshcmCmJ9FH8gG2mNJtM\",\n \"width\": 401,\n \"height\": 401,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmNzwHAmaaQyuvKudrzGkrTT2GMshcmCmJ9FH8gG2mNJtM\",\n \"width\": 401,\n \"height\": 401,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://kekchain.com\",\n \"name\": \"Kekchain\",\n \"nativeCurrency\": {\n \"name\": \"KEK\",\n \"symbol\": \"KEK\",\n \"decimals\": 18\n },\n \"networkId\": 103090,\n \"rpc\": [\"https://kekchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://420420.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.kekchain.com\"],\n \"shortName\": \"KEK\",\n \"slug\": \"kekchain\",\n \"testnet\": false\n};\n\nvar c420666 = {\n \"chain\": \"kek\",\n \"chainId\": 420666,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://testnet-explorer.kekchain.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmNzwHAmaaQyuvKudrzGkrTT2GMshcmCmJ9FH8gG2mNJtM\",\n \"width\": 401,\n \"height\": 401,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmNzwHAmaaQyuvKudrzGkrTT2GMshcmCmJ9FH8gG2mNJtM\",\n \"width\": 401,\n \"height\": 401,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://kekchain.com\",\n \"name\": \"Kekchain (kektest)\",\n \"nativeCurrency\": {\n \"name\": \"tKEK\",\n \"symbol\": \"tKEK\",\n \"decimals\": 18\n },\n \"networkId\": 1,\n \"rpc\": [\"https://kekchain-kektest.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://420666.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.kekchain.com\"],\n \"shortName\": \"tKEK\",\n \"slip44\": 1,\n \"slug\": \"kekchain-kektest\",\n \"testnet\": true\n};\n\nvar c420692 = {\n \"chain\": \"ALT\",\n \"chainId\": 420692,\n \"explorers\": [{\n \"name\": \"Alterium L2 Testnet Explorer\",\n \"url\": \"https://l2-testnet.altscan.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreid3v7ow4c4t3ljya6aouiwvqbtssb2lzmkwt2eghryk234g7yynrq\",\n \"width\": 756,\n \"height\": 756,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://alteriumprotocol.org\",\n \"name\": \"Alterium L2 Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Alterium ETH\",\n \"symbol\": \"AltETH\",\n \"decimals\": 18\n },\n \"networkId\": 420692,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-5\",\n \"bridges\": [{\n \"url\": \"https://testnet-bridge.alteriumprotocol.org\"\n }]\n },\n \"rpc\": [\"https://alterium-l2-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://420692.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://l2-testnet-rpc.altscan.org\"],\n \"shortName\": \"alterium\",\n \"slip44\": 1,\n \"slug\": \"alterium-l2-testnet\",\n \"testnet\": true\n};\n\nvar c421611 = {\n \"chain\": \"ETH\",\n \"chainId\": 421611,\n \"explorers\": [{\n \"name\": \"arbiscan-testnet\",\n \"url\": \"https://testnet.arbiscan.io\",\n \"standard\": \"EIP3091\"\n }, {\n \"name\": \"arbitrum-rinkeby\",\n \"url\": \"https://rinkeby-explorer.arbitrum.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"http://fauceth.komputing.org?chain=421611&address=${ADDRESS}\"],\n \"infoURL\": \"https://arbitrum.io\",\n \"name\": \"Arbitrum Rinkeby\",\n \"nativeCurrency\": {\n \"name\": \"Arbitrum Rinkeby Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 421611,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-4\",\n \"bridges\": [{\n \"url\": \"https://bridge.arbitrum.io\"\n }]\n },\n \"rpc\": [\"https://arbitrum-rinkeby.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://421611.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rinkeby.arbitrum.io/rpc\"],\n \"shortName\": \"arb-rinkeby\",\n \"slip44\": 1,\n \"slug\": \"arbitrum-rinkeby\",\n \"testnet\": true,\n \"title\": \"Arbitrum Testnet Rinkeby\"\n};\n\nvar c421613 = {\n \"chain\": \"ETH\",\n \"chainId\": 421613,\n \"explorers\": [{\n \"name\": \"Arbitrum Goerli Arbiscan\",\n \"url\": \"https://goerli.arbiscan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmcxZHpyJa8T4i63xqjPYrZ6tKrt55tZJpbXcjSDKuKaf9/arbitrum/512.png\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://arbitrum.io/\",\n \"name\": \"Arbitrum Goerli\",\n \"nativeCurrency\": {\n \"name\": \"Arbitrum Goerli Ether\",\n \"symbol\": \"AGOR\",\n \"decimals\": 18\n },\n \"networkId\": 421613,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-5\",\n \"bridges\": [{\n \"url\": \"https://bridge.arbitrum.io/\"\n }]\n },\n \"redFlags\": [],\n \"rpc\": [\"https://arbitrum-goerli.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://421613.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://goerli-rollup.arbitrum.io/rpc\", \"https://arbitrum-goerli.publicnode.com\", \"wss://arbitrum-goerli.publicnode.com\"],\n \"shortName\": \"arb-goerli\",\n \"slip44\": 1,\n \"slug\": \"arbitrum-goerli\",\n \"testnet\": true,\n \"title\": \"Arbitrum Goerli Rollup Testnet\"\n};\n\nvar c421614 = {\n \"chain\": \"ETH\",\n \"chainId\": 421614,\n \"explorers\": [{\n \"name\": \"Arbitrum Sepolia Rollup Testnet Explorer\",\n \"url\": \"https://sepolia-explorer.arbitrum.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://arbitrum.io\",\n \"name\": \"Arbitrum Sepolia\",\n \"nativeCurrency\": {\n \"name\": \"Sepolia Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 421614,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-11155111\",\n \"bridges\": [{\n \"url\": \"https://bridge.arbitrum.io\"\n }]\n },\n \"rpc\": [\"https://arbitrum-sepolia.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://421614.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://sepolia-rollup.arbitrum.io/rpc\", \"https://arbitrum-sepolia.infura.io/v3/${INFURA_API_KEY}\"],\n \"shortName\": \"arb-sep\",\n \"slip44\": 1,\n \"slug\": \"arbitrum-sepolia\",\n \"testnet\": true,\n \"title\": \"Arbitrum Sepolia Rollup Testnet\"\n};\n\nvar c424242 = {\n \"chain\": \"FTN\",\n \"chainId\": 424242,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://testnet.ftnscan.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"infoURL\": \"https://fastex.com\",\n \"name\": \"Fastex Chain testnet\",\n \"nativeCurrency\": {\n \"name\": \"FTN\",\n \"symbol\": \"FTN\",\n \"decimals\": 18\n },\n \"networkId\": 424242,\n \"rpc\": [\"https://fastex-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://424242.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.testnet.fastexchain.com\"],\n \"shortName\": \"fastexTestnet\",\n \"slip44\": 1,\n \"slug\": \"fastex-chain-testnet\",\n \"testnet\": true,\n \"title\": \"Fastex Chain testnet\"\n};\n\nvar c431140 = {\n \"chain\": \"Unified\",\n \"chainId\": 431140,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmVMBTZVPawyLBD2B5VbG68dfWLfZ1CnB8V59xduBe2kwh\",\n \"width\": 84,\n \"height\": 84,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.markr.io/\",\n \"name\": \"Markr Go\",\n \"nativeCurrency\": {\n \"name\": \"Avalanche\",\n \"symbol\": \"AVAX\",\n \"decimals\": 18\n },\n \"networkId\": 431140,\n \"rpc\": [\"https://markr-go.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://431140.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.markr.io/ext/\"],\n \"shortName\": \"markr-go\",\n \"slug\": \"markr-go\",\n \"status\": \"incubating\",\n \"testnet\": false\n};\n\nvar c432201 = {\n \"chain\": \"DEXALOT\",\n \"chainId\": 432201,\n \"explorers\": [{\n \"name\": \"Avalanche Subnet Testnet Explorer\",\n \"url\": \"https://subnets-test.avax.network/dexalot\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.avax.network/?subnet=dexalot\"],\n \"icon\": {\n \"url\": \"ipfs://QmfVxdrWjtUKiGzqFDzAxHH2FqwP2aRuZTGcYWdWg519Xy\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://dexalot.com\",\n \"name\": \"Dexalot Subnet Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Dexalot\",\n \"symbol\": \"ALOT\",\n \"decimals\": 18\n },\n \"networkId\": 432201,\n \"rpc\": [\"https://dexalot-subnet-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://432201.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/dexalot/testnet/rpc\"],\n \"shortName\": \"dexalot-testnet\",\n \"slip44\": 1,\n \"slug\": \"dexalot-subnet-testnet\",\n \"testnet\": true\n};\n\nvar c432204 = {\n \"chain\": \"DEXALOT\",\n \"chainId\": 432204,\n \"explorers\": [{\n \"name\": \"Avalanche Subnet Explorer\",\n \"url\": \"https://subnets.avax.network/dexalot\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmfVxdrWjtUKiGzqFDzAxHH2FqwP2aRuZTGcYWdWg519Xy\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://dexalot.com\",\n \"name\": \"Dexalot Subnet\",\n \"nativeCurrency\": {\n \"name\": \"Dexalot\",\n \"symbol\": \"ALOT\",\n \"decimals\": 18\n },\n \"networkId\": 432204,\n \"rpc\": [\"https://dexalot-subnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://432204.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/dexalot/mainnet/rpc\"],\n \"shortName\": \"dexalot\",\n \"slug\": \"dexalot-subnet\",\n \"testnet\": false\n};\n\nvar c444900 = {\n \"chain\": \"WLK\",\n \"chainId\": 444900,\n \"explorers\": [{\n \"name\": \"weelink-testnet\",\n \"url\": \"https://weelink.cloud/#/blockView/overview\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://faucet.weelink.gw002.oneitfarm.com\"],\n \"infoURL\": \"https://weelink.cloud\",\n \"name\": \"Weelink Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Weelink Chain Token\",\n \"symbol\": \"tWLK\",\n \"decimals\": 18\n },\n \"networkId\": 444900,\n \"rpc\": [\"https://weelink-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://444900.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://weelinknode1c.gw002.oneitfarm.com\"],\n \"shortName\": \"wlkt\",\n \"slip44\": 1,\n \"slug\": \"weelink-testnet\",\n \"testnet\": true\n};\n\nvar c471100 = {\n \"chain\": \"ETH\",\n \"chainId\": 471100,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://patex.io/\",\n \"name\": \"Patex Sepolia Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Sepolia Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 471100,\n \"rpc\": [\"https://patex-sepolia-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://471100.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://test-rpc.patex.io/\"],\n \"shortName\": \"psep\",\n \"slip44\": 1,\n \"slug\": \"patex-sepolia-testnet\",\n \"testnet\": true\n};\n\nvar c473861 = {\n \"chain\": \"ultrapro\",\n \"chainId\": 473861,\n \"explorers\": [{\n \"name\": \"ultraproscan\",\n \"url\": \"https://ultraproscan.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmT11iJMLe9sAk5NiRQbe2wv1jtLFCs2sF2w9vFwDLkkgE\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmT11iJMLe9sAk5NiRQbe2wv1jtLFCs2sF2w9vFwDLkkgE\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://ultrapro.info\",\n \"name\": \"Ultra Pro Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Ultra Pro\",\n \"symbol\": \"UPRO\",\n \"decimals\": 18\n },\n \"networkId\": 473861,\n \"rpc\": [\"https://ultra-pro.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://473861.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-rpc.ultraproscan.io\"],\n \"shortName\": \"ultrapro\",\n \"slug\": \"ultra-pro\",\n \"testnet\": false\n};\n\nvar c474142 = {\n \"chain\": \"OpenChain\",\n \"chainId\": 474142,\n \"explorers\": [{\n \"name\": \"SIDE SCAN\",\n \"url\": \"https://sidescan.luniverse.io/1641349324562974539\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.openchain.live\",\n \"name\": \"OpenChain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"OpenCoin\",\n \"symbol\": \"OPC\",\n \"decimals\": 10\n },\n \"networkId\": 474142,\n \"rpc\": [\"https://openchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://474142.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://baas-rpc.luniverse.io:18545?lChainId=1641349324562974539\"],\n \"shortName\": \"oc\",\n \"slug\": \"openchain\",\n \"testnet\": false\n};\n\nvar c512512 = {\n \"chain\": \"CMP\",\n \"chainId\": 512512,\n \"explorers\": [{\n \"name\": \"Galaxy Scan\",\n \"url\": \"https://galaxy.scan.caduceus.foundation\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://dev.caduceus.foundation/testNetwork\"],\n \"infoURL\": \"https://caduceus.foundation/\",\n \"name\": \"CMP-Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Caduceus Testnet Token\",\n \"symbol\": \"CMP\",\n \"decimals\": 18\n },\n \"networkId\": 512512,\n \"rpc\": [\"https://cmp-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://512512.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://galaxy.block.caduceus.foundation\", \"wss://galaxy.block.caduceus.foundation\"],\n \"shortName\": \"cmp\",\n \"slip44\": 1,\n \"slug\": \"cmp-testnet\",\n \"testnet\": true\n};\n\nvar c513100 = {\n \"chain\": \"ETHF\",\n \"chainId\": 513100,\n \"explorers\": [{\n \"name\": \"etherfair\",\n \"url\": \"https://www.oklink.com/ethf\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://etherfair.org\",\n \"name\": \"ethereum Fair\",\n \"nativeCurrency\": {\n \"name\": \"EthereumFair\",\n \"symbol\": \"ETHF\",\n \"decimals\": 18\n },\n \"networkId\": 513100,\n \"rpc\": [\"https://ethereum-fair.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://513100.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.etherfair.org\"],\n \"shortName\": \"ethf\",\n \"slug\": \"ethereum-fair\",\n \"testnet\": false\n};\n\nvar c534351 = {\n \"chain\": \"ETH\",\n \"chainId\": 534351,\n \"explorers\": [{\n \"name\": \"Scroll Sepolia Etherscan\",\n \"url\": \"https://sepolia.scrollscan.com\",\n \"standard\": \"EIP3091\"\n }, {\n \"name\": \"Scroll Sepolia Blockscout\",\n \"url\": \"https://sepolia-blockscout.scroll.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://scroll.io\",\n \"name\": \"Scroll Sepolia Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 534351,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-11155111\",\n \"bridges\": [{\n \"url\": \"https://sepolia.scroll.io/bridge\"\n }]\n },\n \"rpc\": [\"https://scroll-sepolia-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://534351.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://sepolia-rpc.scroll.io\", \"https://rpc.ankr.com/scroll_sepolia_testnet\", \"https://scroll-sepolia.chainstacklabs.com\", \"https://scroll-testnet-public.unifra.io\"],\n \"shortName\": \"scr-sepolia\",\n \"slip44\": 1,\n \"slug\": \"scroll-sepolia-testnet\",\n \"status\": \"active\",\n \"testnet\": true\n};\n\nvar c534352 = {\n \"chain\": \"ETH\",\n \"chainId\": 534352,\n \"explorers\": [{\n \"name\": \"Scrollscan\",\n \"url\": \"https://scrollscan.com\",\n \"standard\": \"EIP3091\"\n }, {\n \"name\": \"Blockscout\",\n \"url\": \"https://blockscout.scroll.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://scroll.io\",\n \"name\": \"Scroll\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 534352,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-1\",\n \"bridges\": [{\n \"url\": \"https://scroll.io/bridge\"\n }]\n },\n \"rpc\": [\"https://scroll.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://534352.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.scroll.io\", \"https://rpc-scroll.icecreamswap.com\", \"https://rpc.ankr.com/scroll\", \"https://scroll-mainnet.chainstacklabs.com\"],\n \"shortName\": \"scr\",\n \"slug\": \"scroll\",\n \"status\": \"active\",\n \"testnet\": false\n};\n\nvar c534353 = {\n \"chain\": \"ETH\",\n \"chainId\": 534353,\n \"explorers\": [{\n \"name\": \"Scroll Alpha Testnet Block Explorer\",\n \"url\": \"https://alpha-blockscout.scroll.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://scroll.io\",\n \"name\": \"Scroll Alpha Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 534353,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-5\",\n \"bridges\": []\n },\n \"rpc\": [\"https://scroll-alpha-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://534353.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://alpha-rpc.scroll.io/l2\"],\n \"shortName\": \"scr-alpha\",\n \"slip44\": 1,\n \"slug\": \"scroll-alpha-testnet\",\n \"status\": \"deprecated\",\n \"testnet\": true\n};\n\nvar c534354 = {\n \"chain\": \"ETH\",\n \"chainId\": 534354,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://scroll.io\",\n \"name\": \"Scroll Pre-Alpha Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"TSETH\",\n \"decimals\": 18\n },\n \"networkId\": 534354,\n \"rpc\": [],\n \"shortName\": \"scr-prealpha\",\n \"slip44\": 1,\n \"slug\": \"scroll-pre-alpha-testnet\",\n \"status\": \"deprecated\",\n \"testnet\": true\n};\n\nvar c534849 = {\n \"chain\": \"Shinarium\",\n \"chainId\": 534849,\n \"explorers\": [{\n \"name\": \"shinascan\",\n \"url\": \"https://shinascan.shinarium.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.shinarium.org\"],\n \"icon\": {\n \"url\": \"ipfs://bafybeiadbavrwcial76vs5ovhyykyaobteltuhliqcthdairbja4klwzhu\",\n \"width\": 1000,\n \"height\": 1000,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://shinarium.org\",\n \"name\": \"Shinarium Beta\",\n \"nativeCurrency\": {\n \"name\": \"Shina Inu\",\n \"symbol\": \"SHI\",\n \"decimals\": 18\n },\n \"networkId\": 534849,\n \"rpc\": [\"https://shinarium-beta.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://534849.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.shinarium.org\"],\n \"shortName\": \"shi\",\n \"slug\": \"shinarium-beta\",\n \"testnet\": false\n};\n\nvar c535037 = {\n \"chain\": \"BESC\",\n \"chainId\": 535037,\n \"explorers\": [{\n \"name\": \"bescscan\",\n \"url\": \"https://Bescscan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"name\": \"BeanEco SmartChain\",\n \"nativeCurrency\": {\n \"name\": \"BeanEco SmartChain\",\n \"symbol\": \"BESC\",\n \"decimals\": 18\n },\n \"networkId\": 535037,\n \"rpc\": [\"https://beaneco-smartchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://535037.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-rpc.bescscan.io\"],\n \"shortName\": \"BESC\",\n \"slug\": \"beaneco-smartchain\",\n \"testnet\": false,\n \"title\": \"BESC Mainnet\"\n};\n\nvar c622277 = {\n \"chain\": \"HYP\",\n \"chainId\": 622277,\n \"explorers\": [{\n \"name\": \"hypra\",\n \"url\": \"https://explorer.hypra.network\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://bafkreiawlhc2trzyxgnz24vowdymxme2m446uk4vmrplgxsdd74ecpfloq\",\n \"width\": 830,\n \"height\": 830,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.hypra.network\",\n \"name\": \"Hypra Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Hypra\",\n \"symbol\": \"HYP\",\n \"decimals\": 18\n },\n \"networkId\": 622277,\n \"rpc\": [\"https://hypra.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://622277.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.hypra.network\", \"https://rpc.rethereum.org\", \"https://rethereum.rpc.restratagem.com\", \"https://rpc.rthcentral.org\"],\n \"shortName\": \"hyp\",\n \"slug\": \"hypra\",\n \"testnet\": false\n};\n\nvar c641230 = {\n \"chain\": \"BRNKC\",\n \"chainId\": 641230,\n \"explorers\": [{\n \"name\": \"brnkscan\",\n \"url\": \"https://brnkscan.bearnetwork.net\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmQqhH28QpUrreoRw5Gj8YShzdHxxVGMjfVrx3TqJNLSLv\",\n \"width\": 1067,\n \"height\": 1067,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://bearnetwork.net\",\n \"name\": \"Bear Network Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Bear Network Chain Native Token\",\n \"symbol\": \"BRNKC\",\n \"decimals\": 18\n },\n \"networkId\": 641230,\n \"rpc\": [\"https://bear-network-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://641230.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://brnkc-mainnet.bearnetwork.net\", \"https://brnkc-mainnet1.bearnetwork.net\"],\n \"shortName\": \"BRNKC\",\n \"slug\": \"bear-network-chain\",\n \"testnet\": false\n};\n\nvar c651940 = {\n \"chain\": \"ALL\",\n \"chainId\": 651940,\n \"explorers\": [{\n \"name\": \"Alltra SmartChain Explorer\",\n \"url\": \"https://alltra.global\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreibqe2mgiqezi24sx272kunqt6pv7uzxhpkxuobvpbsptce3q6nn5i\",\n \"width\": 1000,\n \"height\": 1000,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://alltra.world\",\n \"name\": \"ALL Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"ALL\",\n \"symbol\": \"ALL\",\n \"decimals\": 18\n },\n \"networkId\": 651940,\n \"rpc\": [\"https://all.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://651940.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-rpc.alltra.global\"],\n \"shortName\": \"ALL\",\n \"slug\": \"all\",\n \"testnet\": false\n};\n\nvar c660279 = {\n \"chain\": \"Xai Mainnet\",\n \"chainId\": 660279,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://explorer.xai-chain.net/\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmZKFekbHxDkB8gFmmmjWz89SLhwg38GkALmAKo3gn753N/2024-01-10%2012.50.15.jpg\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"jpg\"\n },\n \"infoURL\": \"https://xai.games/\",\n \"name\": \"Xai Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"XAI token\",\n \"symbol\": \"XAI\",\n \"decimals\": 18\n },\n \"networkId\": 660279,\n \"redFlags\": [],\n \"rpc\": [\"https://xai.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://660279.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://xai-chain.net/rpc\"],\n \"shortName\": \"xai\",\n \"slug\": \"xai\",\n \"testnet\": false\n};\n\nvar c660868 = {\n \"chain\": \"OCASH\",\n \"chainId\": 660868,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://ipfs.io/ipfs/QmbwuoezvkfZBY9nrZ65n3iHGyhJG6yDRyhPjqE6k3uCiM\",\n \"width\": 350,\n \"height\": 350,\n \"format\": \"PNG\"\n },\n \"infoURL\": \"https://www.overline.network\",\n \"name\": \"Ocash testnet\",\n \"nativeCurrency\": {\n \"name\": \"OCASH\",\n \"symbol\": \"OCASH\",\n \"decimals\": 18\n },\n \"networkId\": 660868,\n \"redFlags\": [],\n \"rpc\": [],\n \"shortName\": \"ocash\",\n \"slug\": \"ocash-testnet\",\n \"testnet\": true\n};\n\nvar c666666 = {\n \"chain\": \"Vision-Vpioneer\",\n \"chainId\": 666666,\n \"explorers\": [],\n \"faucets\": [\"https://vpioneerfaucet.visionscan.org\"],\n \"infoURL\": \"https://visionscan.org\",\n \"name\": \"Vision - Vpioneer Test Chain\",\n \"nativeCurrency\": {\n \"name\": \"VS\",\n \"symbol\": \"VS\",\n \"decimals\": 18\n },\n \"networkId\": 666666,\n \"rpc\": [\"https://vision-vpioneer-test-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://666666.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://vpioneer.infragrid.v.network/ethereum/compatible\"],\n \"shortName\": \"vpioneer\",\n \"slip44\": 1,\n \"slug\": \"vision-vpioneer-test-chain\",\n \"testnet\": true\n};\n\nvar c666888 = {\n \"chain\": \"Hela\",\n \"chainId\": 666888,\n \"explorers\": [{\n \"name\": \"Hela Official Runtime Testnet Explorer\",\n \"url\": \"https://testnet-blockexplorer.helachain.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://testnet-faucet.helachain.com\"],\n \"icon\": {\n \"url\": \"ipfs://QmQbUVcaxFwY8gqMq1Jeup4NEyivo12QYhbLvVRvgXRBFb\",\n \"width\": 719,\n \"height\": 216,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://helalabs.com\",\n \"name\": \"Hela Official Runtime Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Hela HLUSD\",\n \"symbol\": \"HLUSD\",\n \"decimals\": 18\n },\n \"networkId\": 666888,\n \"rpc\": [\"https://hela-official-runtime-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://666888.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-rpc.helachain.com\"],\n \"shortName\": \"hela-testnet\",\n \"slip44\": 1,\n \"slug\": \"hela-official-runtime-testnet\",\n \"testnet\": true\n};\n\nvar c751230 = {\n \"chain\": \"BRNKCTEST\",\n \"chainId\": 751230,\n \"explorers\": [{\n \"name\": \"brnktestscan\",\n \"url\": \"https://brnktest-scan.bearnetwork.net\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.bearnetwork.net\"],\n \"icon\": {\n \"url\": \"ipfs://QmQqhH28QpUrreoRw5Gj8YShzdHxxVGMjfVrx3TqJNLSLv\",\n \"width\": 1067,\n \"height\": 1067,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://bearnetwork.net\",\n \"name\": \"Bear Network Chain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Bear Network Chain Testnet Token\",\n \"symbol\": \"tBRNKC\",\n \"decimals\": 18\n },\n \"networkId\": 751230,\n \"rpc\": [\"https://bear-network-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://751230.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://brnkc-test.bearnetwork.net\"],\n \"shortName\": \"BRNKCTEST\",\n \"slip44\": 1,\n \"slug\": \"bear-network-chain-testnet\",\n \"testnet\": true\n};\n\nvar c761412 = {\n \"chain\": \"MiexsSmartchain\",\n \"chainId\": 761412,\n \"explorers\": [{\n \"name\": \"Miexs Smartchain Explorer\",\n \"url\": \"https://miexs.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreic6tcc6swh5kzljwqnswj6rlemcm7n6ra7xkgttwv5v3fv7ozj5zu\",\n \"width\": 1500,\n \"height\": 1500,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://miexs.com\",\n \"name\": \"Miexs Smartchain\",\n \"nativeCurrency\": {\n \"name\": \"Miexs Coin\",\n \"symbol\": \"MIX\",\n \"decimals\": 18\n },\n \"networkId\": 761412,\n \"rpc\": [\"https://miexs-smartchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://761412.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-rpc.miexs.com\"],\n \"shortName\": \"Miexs\",\n \"slug\": \"miexs-smartchain\",\n \"testnet\": false\n};\n\nvar c776877 = {\n \"chain\": \"EVMCC\",\n \"chainId\": 776877,\n \"explorers\": [{\n \"name\": \"Tanssi Explorer\",\n \"url\": \"https://tanssi-evmexplorer.netlify.app/?rpcUrl=https://fraa-dancebox-3035-rpc.a.dancebox.tanssi.network\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.rmrk.app/\",\n \"name\": \"Modularium\",\n \"nativeCurrency\": {\n \"name\": \"Modularium\",\n \"symbol\": \"MDM\",\n \"decimals\": 18\n },\n \"networkId\": 776877,\n \"rpc\": [\"https://modularium.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://776877.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://fraa-dancebox-3035-rpc.a.dancebox.tanssi.network\"],\n \"shortName\": \"mdlrm\",\n \"slug\": \"modularium\",\n \"testnet\": false\n};\n\nvar c800001 = {\n \"chain\": \"OCTA\",\n \"chainId\": 800001,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://explorer.octa.space\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmVhezQHkqSZ5Tvtsw18giA1yBjV1URSsBQ7HenUh6p6oC\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://octa.space\",\n \"name\": \"OctaSpace\",\n \"nativeCurrency\": {\n \"name\": \"OctaSpace\",\n \"symbol\": \"OCTA\",\n \"decimals\": 18\n },\n \"networkId\": 800001,\n \"rpc\": [\"https://octaspace.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://800001.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.octa.space\", \"wss://rpc.octa.space\"],\n \"shortName\": \"octa\",\n \"slug\": \"octaspace\",\n \"testnet\": false\n};\n\nvar c827431 = {\n \"chain\": \"CURVE\",\n \"chainId\": 827431,\n \"explorers\": [{\n \"name\": \"CURVE Mainnet\",\n \"url\": \"https://curvescan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmTjV3TTR5aLb7fi7tjx8gcDvYtqBpusqhCSaznVxJ7NJg\",\n \"width\": 150,\n \"height\": 150,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://curvescan.io\",\n \"name\": \"CURVE Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Curve\",\n \"symbol\": \"CURVE\",\n \"decimals\": 18\n },\n \"networkId\": 827431,\n \"rpc\": [\"https://curve.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://827431.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-rpc.curvescan.io\"],\n \"shortName\": \"CURVEm\",\n \"slug\": \"curve\",\n \"testnet\": false\n};\n\nvar c846000 = {\n \"chain\": \"4GN\",\n \"chainId\": 846000,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://bloqs4good.com\",\n \"name\": \"4GoodNetwork\",\n \"nativeCurrency\": {\n \"name\": \"APTA\",\n \"symbol\": \"APTA\",\n \"decimals\": 18\n },\n \"networkId\": 846000,\n \"rpc\": [\"https://4goodnetwork.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://846000.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://chain.deptofgood.com\"],\n \"shortName\": \"bloqs4good\",\n \"slug\": \"4goodnetwork\",\n \"testnet\": false\n};\n\nvar c855456 = {\n \"chain\": \"EVMCC\",\n \"chainId\": 855456,\n \"explorers\": [{\n \"name\": \"Dodao Explorer\",\n \"url\": \"https://tanssi-evmexplorer.netlify.app/?rpcUrl=https://fraa-dancebox-3041-rpc.a.dancebox.tanssi.network\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmdWsi6mhs6Agb3LF4uycUwx2fgNmwkuAGb7JmsLPkwd3j\",\n \"width\": 636,\n \"height\": 629,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmdWsi6mhs6Agb3LF4uycUwx2fgNmwkuAGb7JmsLPkwd3j\",\n \"width\": 636,\n \"height\": 629,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://dodao.dev/\",\n \"name\": \"Dodao\",\n \"nativeCurrency\": {\n \"name\": \"Dodao\",\n \"symbol\": \"DODAO\",\n \"decimals\": 18\n },\n \"networkId\": 855456,\n \"rpc\": [\"https://dodao.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://855456.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://fraa-dancebox-3041-rpc.a.dancebox.tanssi.network\", \"wss://fraa-dancebox-3041-rpc.a.dancebox.tanssi.network\"],\n \"shortName\": \"dodao\",\n \"slug\": \"dodao\",\n \"testnet\": false\n};\n\nvar c879151 = {\n \"chain\": \"BLX\",\n \"chainId\": 879151,\n \"explorers\": [{\n \"name\": \"BlocX Mainnet Explorer\",\n \"url\": \"https://explorer.blxscan.com\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmXM7XiLdSxhCub8MLSSo2J9V2qAkTcwdAGxcT57kurUzg\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmXM7XiLdSxhCub8MLSSo2J9V2qAkTcwdAGxcT57kurUzg\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.blocxchain.org/\",\n \"name\": \"BlocX Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"BlocX\",\n \"symbol\": \"BLX\",\n \"decimals\": 18\n },\n \"networkId\": 879151,\n \"rpc\": [\"https://blocx.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://879151.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-rpc.blxscan.com/\"],\n \"shortName\": \"blx\",\n \"slug\": \"blocx\",\n \"testnet\": false\n};\n\nvar c888888 = {\n \"chain\": \"Vision\",\n \"chainId\": 888888,\n \"explorers\": [{\n \"name\": \"Visionscan\",\n \"url\": \"https://www.visionscan.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.v.network\",\n \"name\": \"Vision - Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"VS\",\n \"symbol\": \"VS\",\n \"decimals\": 18\n },\n \"networkId\": 888888,\n \"rpc\": [\"https://vision.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://888888.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://infragrid.v.network/ethereum/compatible\"],\n \"shortName\": \"vision\",\n \"slip44\": 60,\n \"slug\": \"vision\",\n \"testnet\": false\n};\n\nvar c894538 = {\n \"chain\": \"TWT\",\n \"chainId\": 894538,\n \"explorers\": [{\n \"name\": \"explorer\",\n \"url\": \"https://subnets-test.avax.network/thirdweb\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmXDGoJKuuwQKzY1Y7ZhgULg8hcmveu6PVaDaYQzEjKwkQ/Thirdweb-Icon-Black-BG.png\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"name\": \"thirdweb test subnet\",\n \"nativeCurrency\": {\n \"name\": \"TWT\",\n \"symbol\": \"TWT\",\n \"decimals\": 18\n },\n \"networkId\": 894538,\n \"redFlags\": [],\n \"rpc\": [\"https://thirdweb-test-subnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://894538.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/thirdweb/testnet/rpc\"],\n \"shortName\": \"twt\",\n \"slug\": \"thirdweb-test-subnet\",\n \"testnet\": true\n};\n\nvar c900000 = {\n \"chain\": \"PSC\",\n \"chainId\": 900000,\n \"explorers\": [{\n \"name\": \"Posichain Explorer\",\n \"url\": \"https://explorer.posichain.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://posichain.org\",\n \"name\": \"Posichain Mainnet Shard 0\",\n \"nativeCurrency\": {\n \"name\": \"Posichain Native Token\",\n \"symbol\": \"POSI\",\n \"decimals\": 18\n },\n \"networkId\": 900000,\n \"rpc\": [\"https://posichain-shard-0.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://900000.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.posichain.org\", \"https://api.s0.posichain.org\"],\n \"shortName\": \"psc-s0\",\n \"slug\": \"posichain-shard-0\",\n \"testnet\": false\n};\n\nvar c910000 = {\n \"chain\": \"PSC\",\n \"chainId\": 910000,\n \"explorers\": [{\n \"name\": \"Posichain Explorer Testnet\",\n \"url\": \"https://explorer-testnet.posichain.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.posichain.org/\"],\n \"infoURL\": \"https://posichain.org\",\n \"name\": \"Posichain Testnet Shard 0\",\n \"nativeCurrency\": {\n \"name\": \"Posichain Native Token\",\n \"symbol\": \"POSI\",\n \"decimals\": 18\n },\n \"networkId\": 910000,\n \"rpc\": [\"https://posichain-testnet-shard-0.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://910000.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.s0.t.posichain.org\"],\n \"shortName\": \"psc-t-s0\",\n \"slug\": \"posichain-testnet-shard-0\",\n \"testnet\": true\n};\n\nvar c912559 = {\n \"chain\": \"RIA\",\n \"chainId\": 912559,\n \"explorers\": [{\n \"name\": \"Astria EVM Dusknet Explorer\",\n \"url\": \"https://explorer.evm.dusk-2.devnet.astria.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.evm.dusk-2.devnet.astria.org/\"],\n \"icon\": {\n \"url\": \"ipfs://QmVbzZYXdVFY3uFaWQd7iSRtdM2UKWohj9fVqqEwxcw2RV\",\n \"width\": 200,\n \"height\": 200,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://docs.astria.org\",\n \"name\": \"Astria EVM Dusknet\",\n \"nativeCurrency\": {\n \"name\": \"RIA\",\n \"symbol\": \"RIA\",\n \"decimals\": 18\n },\n \"networkId\": 912559,\n \"rpc\": [\"https://astria-evm-dusknet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://912559.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.evm.dusk-2.devnet.astria.org\"],\n \"shortName\": \"ria-dev\",\n \"slug\": \"astria-evm-dusknet\",\n \"testnet\": false\n};\n\nvar c920000 = {\n \"chain\": \"PSC\",\n \"chainId\": 920000,\n \"explorers\": [{\n \"name\": \"Posichain Explorer Devnet\",\n \"url\": \"https://explorer-devnet.posichain.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.posichain.org/\"],\n \"infoURL\": \"https://posichain.org\",\n \"name\": \"Posichain Devnet Shard 0\",\n \"nativeCurrency\": {\n \"name\": \"Posichain Native Token\",\n \"symbol\": \"POSI\",\n \"decimals\": 18\n },\n \"networkId\": 920000,\n \"rpc\": [\"https://posichain-devnet-shard-0.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://920000.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.s0.d.posichain.org\"],\n \"shortName\": \"psc-d-s0\",\n \"slug\": \"posichain-devnet-shard-0\",\n \"testnet\": false\n};\n\nvar c920001 = {\n \"chain\": \"PSC\",\n \"chainId\": 920001,\n \"explorers\": [{\n \"name\": \"Posichain Explorer Devnet\",\n \"url\": \"https://explorer-devnet.posichain.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.posichain.org/\"],\n \"infoURL\": \"https://posichain.org\",\n \"name\": \"Posichain Devnet Shard 1\",\n \"nativeCurrency\": {\n \"name\": \"Posichain Native Token\",\n \"symbol\": \"POSI\",\n \"decimals\": 18\n },\n \"networkId\": 920001,\n \"rpc\": [\"https://posichain-devnet-shard-1.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://920001.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.s1.d.posichain.org\"],\n \"shortName\": \"psc-d-s1\",\n \"slug\": \"posichain-devnet-shard-1\",\n \"testnet\": false\n};\n\nvar c923018 = {\n \"chain\": \"FNCY\",\n \"chainId\": 923018,\n \"explorers\": [{\n \"name\": \"fncy scan testnet\",\n \"url\": \"https://fncyscan-testnet.fncy.world\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmfXCh6UnaEHn3Evz7RFJ3p2ggJBRm9hunDHegeoquGuhD\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucet-testnet.fncy.world\"],\n \"icon\": {\n \"url\": \"ipfs://QmfXCh6UnaEHn3Evz7RFJ3p2ggJBRm9hunDHegeoquGuhD\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://fncyscan-testnet.fncy.world\",\n \"name\": \"FNCY Testnet\",\n \"nativeCurrency\": {\n \"name\": \"FNCY\",\n \"symbol\": \"FNCY\",\n \"decimals\": 18\n },\n \"networkId\": 923018,\n \"rpc\": [\"https://fncy-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://923018.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://fncy-testnet-seed.fncy.world\"],\n \"shortName\": \"tFNCY\",\n \"slip44\": 1,\n \"slug\": \"fncy-testnet\",\n \"testnet\": true\n};\n\nvar c955305 = {\n \"chain\": \"Eluvio\",\n \"chainId\": 955305,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://explorer.eluv.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://eluv.io\",\n \"name\": \"Eluvio Content Fabric\",\n \"nativeCurrency\": {\n \"name\": \"ELV\",\n \"symbol\": \"ELV\",\n \"decimals\": 18\n },\n \"networkId\": 955305,\n \"rpc\": [\"https://eluvio-content-fabric.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://955305.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://host-76-74-28-226.contentfabric.io/eth/\", \"https://host-76-74-28-232.contentfabric.io/eth/\", \"https://host-76-74-29-2.contentfabric.io/eth/\", \"https://host-76-74-29-8.contentfabric.io/eth/\", \"https://host-76-74-29-34.contentfabric.io/eth/\", \"https://host-76-74-29-35.contentfabric.io/eth/\", \"https://host-154-14-211-98.contentfabric.io/eth/\", \"https://host-154-14-192-66.contentfabric.io/eth/\", \"https://host-60-240-133-202.contentfabric.io/eth/\", \"https://host-64-235-250-98.contentfabric.io/eth/\"],\n \"shortName\": \"elv\",\n \"slip44\": 1011,\n \"slug\": \"eluvio-content-fabric\",\n \"testnet\": false\n};\n\nvar c988207 = {\n \"chain\": \"Ecrox Chain\",\n \"chainId\": 988207,\n \"explorers\": [{\n \"name\": \"Ecrox Chain Explorer\",\n \"url\": \"https://ecroxscan.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreibnqdlwgotu4hwx6oeu4ye3huobr3eaiuvv55n5tolyxya2q7edmq\",\n \"width\": 300,\n \"height\": 300,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://ecroxcoin.io/\",\n \"name\": \"Ecrox Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"ECROX COIN\",\n \"symbol\": \"ECROX\",\n \"decimals\": 18\n },\n \"networkId\": 988207,\n \"rpc\": [\"https://ecrox-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://988207.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-rpc.ecroxscan.com/\"],\n \"shortName\": \"ecrox\",\n \"slug\": \"ecrox-chain\",\n \"testnet\": false\n};\n\nvar c993535 = {\n \"chain\": \"Avalanche\",\n \"chainId\": 993535,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \".svg\"\n },\n \"infoURL\": \"https://avacloud.io\",\n \"name\": \"qr1120y1\",\n \"nativeCurrency\": {\n \"name\": \"qr1120y1 Token\",\n \"symbol\": \"LMK\",\n \"decimals\": 18\n },\n \"networkId\": 993535,\n \"redFlags\": [],\n \"rpc\": [\"https://qr1120y1.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://993535.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/qr1120y1/testnet/rpc\"],\n \"shortName\": \"qr1120y1\",\n \"slug\": \"qr1120y1\",\n \"testnet\": true\n};\n\nvar c1127469 = {\n \"chain\": \"TILTYARD\",\n \"chainId\": 1127469,\n \"explorers\": [{\n \"name\": \"TILTYARD Explorer\",\n \"url\": \"http://testnet-explorer.tiltyard.gg\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP1559\"\n }],\n \"name\": \"Tiltyard Subnet\",\n \"nativeCurrency\": {\n \"name\": \"Tiltyard Token\",\n \"symbol\": \"TILTG\",\n \"decimals\": 18\n },\n \"networkId\": 1127469,\n \"rpc\": [\"https://tiltyard-subnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1127469.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/tiltyard/testnet/rpc\"],\n \"shortName\": \"tiltyard\",\n \"slug\": \"tiltyard-subnet\",\n \"testnet\": true\n};\n\nvar c1261120 = {\n \"chain\": \"ETH\",\n \"chainId\": 1261120,\n \"explorers\": [{\n \"name\": \"Blockscout zKatana chain explorer\",\n \"url\": \"https://zkatana.blockscout.com\",\n \"standard\": \"EIP3091\"\n }, {\n \"name\": \"Startale zKatana chain explorer\",\n \"url\": \"https://zkatana.explorer.startale.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmRySLe3su59dE5x5JPm2b1GeZfz6DR9qUzcbp3rt4SD3A\",\n \"width\": 300,\n \"height\": 300,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://astar.network\",\n \"name\": \"zKatana\",\n \"nativeCurrency\": {\n \"name\": \"Sepolia Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 1261120,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-11155111\",\n \"bridges\": [{\n \"url\": \"https://portal.astar.network\"\n }, {\n \"url\": \"https://bridge.zkatana.gelato.digital\"\n }]\n },\n \"rpc\": [\"https://zkatana.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1261120.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.zkatana.gelato.digital\", \"https://rpc.startale.com/zkatana\"],\n \"shortName\": \"azktn\",\n \"slug\": \"zkatana\",\n \"status\": \"active\",\n \"testnet\": true,\n \"title\": \"Astar zkEVM Testnet zKatana\"\n};\n\nvar c1313114 = {\n \"chain\": \"ETHO\",\n \"chainId\": 1313114,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://explorer.ethoprotocol.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://ethoprotocol.com\",\n \"name\": \"Etho Protocol\",\n \"nativeCurrency\": {\n \"name\": \"Etho Protocol\",\n \"symbol\": \"ETHO\",\n \"decimals\": 18\n },\n \"networkId\": 1313114,\n \"rpc\": [\"https://etho-protocol.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1313114.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.ethoprotocol.com\"],\n \"shortName\": \"etho\",\n \"slip44\": 1313114,\n \"slug\": \"etho-protocol\",\n \"testnet\": false\n};\n\nvar c1313500 = {\n \"chain\": \"XERO\",\n \"chainId\": 1313500,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://xerom.org\",\n \"name\": \"Xerom\",\n \"nativeCurrency\": {\n \"name\": \"Xerom Ether\",\n \"symbol\": \"XERO\",\n \"decimals\": 18\n },\n \"networkId\": 1313500,\n \"rpc\": [\"https://xerom.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1313500.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.xerom.org\"],\n \"shortName\": \"xero\",\n \"slug\": \"xerom\",\n \"testnet\": false\n};\n\nvar c1337702 = {\n \"chain\": \"ETH\",\n \"chainId\": 1337702,\n \"explorers\": [{\n \"name\": \"kintsugi explorer\",\n \"url\": \"https://explorer.kintsugi.themerge.dev\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"http://fauceth.komputing.org?chain=1337702&address=${ADDRESS}\", \"https://faucet.kintsugi.themerge.dev\"],\n \"infoURL\": \"https://kintsugi.themerge.dev/\",\n \"name\": \"Kintsugi\",\n \"nativeCurrency\": {\n \"name\": \"kintsugi Ethere\",\n \"symbol\": \"kiETH\",\n \"decimals\": 18\n },\n \"networkId\": 1337702,\n \"rpc\": [\"https://kintsugi.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1337702.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.kintsugi.themerge.dev\"],\n \"shortName\": \"kintsugi\",\n \"slug\": \"kintsugi\",\n \"testnet\": true,\n \"title\": \"Kintsugi merge testnet\"\n};\n\nvar c1337802 = {\n \"chain\": \"ETH\",\n \"chainId\": 1337802,\n \"explorers\": [{\n \"name\": \"Kiln Explorer\",\n \"url\": \"https://explorer.kiln.themerge.dev\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmdwQDr6vmBtXmK2TmknkEuZNoaDqTasFdZdu3DRw8b2wt\",\n \"width\": 1000,\n \"height\": 1628,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucet.kiln.themerge.dev\", \"https://kiln-faucet.pk910.de\", \"https://kilnfaucet.com\"],\n \"icon\": {\n \"url\": \"ipfs://QmdwQDr6vmBtXmK2TmknkEuZNoaDqTasFdZdu3DRw8b2wt\",\n \"width\": 1000,\n \"height\": 1628,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://kiln.themerge.dev/\",\n \"name\": \"Kiln\",\n \"nativeCurrency\": {\n \"name\": \"Testnet ETH\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 1337802,\n \"rpc\": [\"https://kiln.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1337802.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.kiln.themerge.dev\"],\n \"shortName\": \"kiln\",\n \"slug\": \"kiln\",\n \"testnet\": true\n};\n\nvar c1337803 = {\n \"chain\": \"ETH\",\n \"chainId\": 1337803,\n \"explorers\": [{\n \"name\": \"Zhejiang Explorer\",\n \"url\": \"https://zhejiang.beaconcha.in\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmdwQDr6vmBtXmK2TmknkEuZNoaDqTasFdZdu3DRw8b2wt\",\n \"width\": 1000,\n \"height\": 1628,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucet.zhejiang.ethpandaops.io\", \"https://zhejiang-faucet.pk910.de\"],\n \"icon\": {\n \"url\": \"ipfs://QmdwQDr6vmBtXmK2TmknkEuZNoaDqTasFdZdu3DRw8b2wt\",\n \"width\": 1000,\n \"height\": 1628,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://zhejiang.ethpandaops.io\",\n \"name\": \"Zhejiang\",\n \"nativeCurrency\": {\n \"name\": \"Testnet ETH\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 1337803,\n \"rpc\": [\"https://zhejiang.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1337803.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.zhejiang.ethpandaops.io\"],\n \"shortName\": \"zhejiang\",\n \"slug\": \"zhejiang\",\n \"testnet\": true\n};\n\nvar c1440001 = {\n \"chain\": \"XRPL\",\n \"chainId\": 1440001,\n \"explorers\": [{\n \"name\": \"XRP Ledger Explorer\",\n \"url\": \"https://evm-sidechain.xrpl.org/\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreidmgxjwjircegjkvysgz25b2ukw6h7axoirkxv6idupzzqsdrljgy\",\n \"width\": 780,\n \"height\": 680,\n \"format\": \"png\"\n },\n \"name\": \"XRP Ledger EVM Devnet Sidechain\",\n \"nativeCurrency\": {\n \"name\": \"XRP\",\n \"symbol\": \"XRP\",\n \"decimals\": 18\n },\n \"networkId\": 1440001,\n \"redFlags\": [],\n \"rpc\": [\"https://xrp-ledger-evm-devnet-sidechain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1440001.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-evm-sidechain.xrpl.org\"],\n \"shortName\": \"XRPL-EVM-Devnet-Sidechain\",\n \"slug\": \"xrp-ledger-evm-devnet-sidechain\",\n \"testnet\": true\n};\n\nvar c1731313 = {\n \"chain\": \"ETH\",\n \"chainId\": 1731313,\n \"explorers\": [],\n \"faucets\": [],\n \"name\": \"Turkey Demo Dev\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 1731313,\n \"rpc\": [\"https://turkey-demo-dev.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1731313.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://blockscout-poa.huabeizhenxuan.com\"],\n \"shortName\": \"TDD\",\n \"slug\": \"turkey-demo-dev\",\n \"testnet\": false\n};\n\nvar c2021398 = {\n \"chain\": \"DeBank\",\n \"chainId\": 2021398,\n \"explorers\": [{\n \"name\": \"DeBank Chain Explorer\",\n \"url\": \"https://explorer.testnet.debank.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmW9pBps8WHRRWmyXhjLZrjZJUe8F48hUu7z98bu2RVsjN\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://debank.com\",\n \"name\": \"DeBank Testnet\",\n \"nativeCurrency\": {\n \"name\": \"DeBank USD\",\n \"symbol\": \"USD\",\n \"decimals\": 18\n },\n \"networkId\": 2021398,\n \"rpc\": [\"https://debank-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2021398.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"http://rpc.testnet.debank.com\"],\n \"shortName\": \"dbk\",\n \"slip44\": 1,\n \"slug\": \"debank-testnet\",\n \"testnet\": true\n};\n\nvar c2099156 = {\n \"chain\": \"Plian\",\n \"chainId\": 2099156,\n \"explorers\": [{\n \"name\": \"piscan\",\n \"url\": \"https://piscan.plian.org/pchain\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://plian.org/\",\n \"name\": \"Plian Mainnet Main\",\n \"nativeCurrency\": {\n \"name\": \"Plian Token\",\n \"symbol\": \"PI\",\n \"decimals\": 18\n },\n \"networkId\": 2099156,\n \"rpc\": [\"https://plian-main.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2099156.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.plian.io/pchain\"],\n \"shortName\": \"plian-mainnet\",\n \"slug\": \"plian-main\",\n \"testnet\": false\n};\n\nvar c2203181 = {\n \"chain\": \"PlatON\",\n \"chainId\": 2203181,\n \"explorers\": [{\n \"name\": \"PlatON explorer\",\n \"url\": \"https://devnetscan.platon.network\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://devnet2faucet.platon.network/faucet\"],\n \"icon\": {\n \"url\": \"ipfs://QmT7PSXBiVBma6E15hNkivmstqLu3JSnG1jXN5pTmcCGRC\",\n \"width\": 180,\n \"height\": 180,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.platon.network\",\n \"name\": \"PlatON Dev Testnet Deprecated\",\n \"nativeCurrency\": {\n \"name\": \"LAT\",\n \"symbol\": \"lat\",\n \"decimals\": 18\n },\n \"networkId\": 1,\n \"rpc\": [\"https://platon-dev-testnet-deprecated.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2203181.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://devnetopenapi2.platon.network/rpc\", \"wss://devnetopenapi2.platon.network/ws\"],\n \"shortName\": \"platondev\",\n \"slip44\": 1,\n \"slug\": \"platon-dev-testnet-deprecated\",\n \"status\": \"deprecated\",\n \"testnet\": true\n};\n\nvar c2206132 = {\n \"chain\": \"PlatON\",\n \"chainId\": 2206132,\n \"explorers\": [{\n \"name\": \"PlatON explorer\",\n \"url\": \"https://devnet2scan.platon.network\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://devnet2faucet.platon.network/faucet\"],\n \"icon\": {\n \"url\": \"ipfs://QmT7PSXBiVBma6E15hNkivmstqLu3JSnG1jXN5pTmcCGRC\",\n \"width\": 180,\n \"height\": 180,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.platon.network\",\n \"name\": \"PlatON Dev Testnet2\",\n \"nativeCurrency\": {\n \"name\": \"LAT\",\n \"symbol\": \"lat\",\n \"decimals\": 18\n },\n \"networkId\": 1,\n \"rpc\": [\"https://platon-dev-testnet2.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2206132.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://devnet2openapi.platon.network/rpc\", \"wss://devnet2openapi.platon.network/ws\"],\n \"shortName\": \"platondev2\",\n \"slip44\": 1,\n \"slug\": \"platon-dev-testnet2\",\n \"testnet\": true\n};\n\nvar c2611555 = {\n \"chain\": \"DPU\",\n \"chainId\": 2611555,\n \"explorers\": [],\n \"faucets\": [],\n \"name\": \"DPU Chain\",\n \"nativeCurrency\": {\n \"name\": \"DGC\",\n \"symbol\": \"DGC\",\n \"decimals\": 18\n },\n \"networkId\": 2611555,\n \"rpc\": [\"https://dpu-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2611555.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://sc-rpc.dpu.ac.th\"],\n \"shortName\": \"DPU\",\n \"slug\": \"dpu-chain\",\n \"testnet\": false\n};\n\nvar c3141592 = {\n \"chain\": \"FIL\",\n \"chainId\": 3141592,\n \"explorers\": [],\n \"faucets\": [\"https://faucet.butterfly.fildev.network\"],\n \"icon\": {\n \"url\": \"ipfs://QmS9r9XQkMHVomWcSBNDkKkz9n87h9bH9ssabeiKZtANoU\",\n \"width\": 1000,\n \"height\": 1000,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://filecoin.io\",\n \"name\": \"Filecoin - Butterfly testnet\",\n \"nativeCurrency\": {\n \"name\": \"testnet filecoin\",\n \"symbol\": \"tFIL\",\n \"decimals\": 18\n },\n \"networkId\": 3141592,\n \"rpc\": [],\n \"shortName\": \"filecoin-butterfly\",\n \"slip44\": 1,\n \"slug\": \"filecoin-butterfly-testnet\",\n \"status\": \"incubating\",\n \"testnet\": true\n};\n\nvar c3441005 = {\n \"chain\": \"Manta Pacific\",\n \"chainId\": 3441005,\n \"explorers\": [{\n \"name\": \"manta-testnet Explorer\",\n \"url\": \"https://manta-testnet.calderaexplorer.xyz\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmTckcVTViRZ3NqT36MTt8AvgBSmudrbgU3pi8AaNtthoV\",\n \"width\": 834,\n \"height\": 834,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://manta-testnet.caldera.dev/\",\n \"name\": \"Manta Pacific Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Manta\",\n \"symbol\": \"MANTA\",\n \"decimals\": 18\n },\n \"networkId\": 3441005,\n \"rpc\": [\"https://manta-pacific-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://3441005.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://manta-testnet.calderachain.xyz/http\"],\n \"shortName\": \"mantaTestnet\",\n \"slip44\": 1,\n \"slug\": \"manta-pacific-testnet\",\n \"testnet\": true\n};\n\nvar c4000003 = {\n \"chain\": \"ETH\",\n \"chainId\": 4000003,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://zero-explorer.alt.technology\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmcEfZJU7NMn9ycTAcEooQgGNfa2nYBToSUZHdFCFadcjb\",\n \"width\": 1080,\n \"height\": 1025,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://altlayer.io\",\n \"name\": \"AltLayer Zero Gas Network\",\n \"nativeCurrency\": {\n \"name\": \"ZERO\",\n \"symbol\": \"ZERO\",\n \"decimals\": 18\n },\n \"networkId\": 4000003,\n \"rpc\": [\"https://altlayer-zero-gas-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://4000003.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://zero.alt.technology\"],\n \"shortName\": \"alt-zerogas\",\n \"slug\": \"altlayer-zero-gas-network\",\n \"testnet\": false\n};\n\nvar c4281033 = {\n \"chain\": \"WCal\",\n \"chainId\": 4281033,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmdwQDr6vmBtXmK2TmknkEuZNoaDqTasFdZdu3DRw8b2wt\",\n \"width\": 1000,\n \"height\": 1628,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://caldera.xyz/\",\n \"name\": \"Worlds Caldera\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 4281033,\n \"rpc\": [\"https://worlds-caldera.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://4281033.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://worlds-test.calderachain.xyz/http\"],\n \"shortName\": \"worldscal\",\n \"slug\": \"worlds-caldera\",\n \"testnet\": true\n};\n\nvar c5167003 = {\n \"chain\": \"MXC zkEVM\",\n \"chainId\": 5167003,\n \"explorers\": [{\n \"name\": \"MXC Wannsee zkEVM Testnet\",\n \"url\": \"https://wannsee-explorer.mxc.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmdGCthKA11K9kCZJdbTP5WPAyq1wiRZ3REn6KG58MrWaE\",\n \"width\": 159,\n \"height\": 159,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://wannsee.mxc.com/docs/intro\",\n \"name\": \"MXC Wannsee zkEVM Testnet\",\n \"nativeCurrency\": {\n \"name\": \"MXC Wannsee zkEVM Testnet\",\n \"symbol\": \"MXC\",\n \"decimals\": 18\n },\n \"networkId\": 5167003,\n \"rpc\": [\"https://mxc-wannsee-zkevm-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://5167003.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://wannsee-rpc.mxc.com\"],\n \"shortName\": \"MXC\",\n \"slip44\": 1,\n \"slug\": \"mxc-wannsee-zkevm-testnet\",\n \"testnet\": true\n};\n\nvar c5201420 = {\n \"chain\": \"Electroneum\",\n \"chainId\": 5201420,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://blockexplorer.thesecurityteam.rocks\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmVgFqXA3kkCrVYGcWFF7Mhx8JUSe9vSCauNamuKWSvCym\",\n \"width\": 1000,\n \"height\": 1000,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmVgFqXA3kkCrVYGcWFF7Mhx8JUSe9vSCauNamuKWSvCym\",\n \"width\": 1000,\n \"height\": 1000,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://electroneum.com\",\n \"name\": \"Electroneum Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Electroneum\",\n \"symbol\": \"ETN\",\n \"decimals\": 18\n },\n \"networkId\": 5201420,\n \"rpc\": [\"https://electroneum-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://5201420.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.electroneum.com\"],\n \"shortName\": \"etn-testnet\",\n \"slip44\": 1,\n \"slug\": \"electroneum-testnet\",\n \"testnet\": true\n};\n\nvar c5555555 = {\n \"chain\": \"Imversed\",\n \"chainId\": 5555555,\n \"explorers\": [{\n \"name\": \"Imversed EVM explorer (Blockscout)\",\n \"url\": \"https://txe.imversed.network\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYwvmJZ1bgTdiZUKXk4SifTpTj286CkZjMCshUyJuBFH1\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n }\n }, {\n \"name\": \"Imversed Cosmos Explorer (Big Dipper)\",\n \"url\": \"https://tex-c.imversed.com\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmYwvmJZ1bgTdiZUKXk4SifTpTj286CkZjMCshUyJuBFH1\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmYwvmJZ1bgTdiZUKXk4SifTpTj286CkZjMCshUyJuBFH1\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://imversed.com\",\n \"name\": \"Imversed Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Imversed Token\",\n \"symbol\": \"IMV\",\n \"decimals\": 18\n },\n \"networkId\": 5555555,\n \"rpc\": [\"https://imversed.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://5555555.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://jsonrpc.imversed.network\", \"https://ws-jsonrpc.imversed.network\"],\n \"shortName\": \"imversed\",\n \"slug\": \"imversed\",\n \"testnet\": false\n};\n\nvar c5555558 = {\n \"chain\": \"Imversed\",\n \"chainId\": 5555558,\n \"explorers\": [{\n \"name\": \"Imversed EVM Explorer (Blockscout)\",\n \"url\": \"https://txe-test.imversed.network\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYwvmJZ1bgTdiZUKXk4SifTpTj286CkZjMCshUyJuBFH1\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n }\n }, {\n \"name\": \"Imversed Cosmos Explorer (Big Dipper)\",\n \"url\": \"https://tex-t.imversed.com\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmYwvmJZ1bgTdiZUKXk4SifTpTj286CkZjMCshUyJuBFH1\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmYwvmJZ1bgTdiZUKXk4SifTpTj286CkZjMCshUyJuBFH1\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://imversed.com\",\n \"name\": \"Imversed Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Imversed Token\",\n \"symbol\": \"IMV\",\n \"decimals\": 18\n },\n \"networkId\": 5555558,\n \"rpc\": [\"https://imversed-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://5555558.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://jsonrpc-test.imversed.network\", \"https://ws-jsonrpc-test.imversed.network\"],\n \"shortName\": \"imversed-testnet\",\n \"slip44\": 1,\n \"slug\": \"imversed-testnet\",\n \"testnet\": true\n};\n\nvar c7225878 = {\n \"chain\": \"Saakuru\",\n \"chainId\": 7225878,\n \"explorers\": [{\n \"name\": \"saakuru-explorer\",\n \"url\": \"https://explorer.saakuru.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmduEdtFobPpZWSc45MU6RKxZfTEzLux2z8ikHFhT8usqv\",\n \"width\": 1024,\n \"height\": 1024,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://saakuru.network\",\n \"name\": \"Saakuru Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"OAS\",\n \"symbol\": \"OAS\",\n \"decimals\": 18\n },\n \"networkId\": 7225878,\n \"rpc\": [\"https://saakuru.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://7225878.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.saakuru.network\"],\n \"shortName\": \"saakuru\",\n \"slug\": \"saakuru\",\n \"testnet\": false\n};\n\nvar c7355310 = {\n \"chain\": \"VSL\",\n \"chainId\": 7355310,\n \"explorers\": [{\n \"name\": \"openvessel-mainnet\",\n \"url\": \"https://mainnet-explorer.openvessel.io\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmeknNzGCZXQK7egwfwyxQan7Lw8bLnqYsyoEgEbDNCzJX\",\n \"width\": 600,\n \"height\": 529,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.openvessel.io\",\n \"name\": \"OpenVessel\",\n \"nativeCurrency\": {\n \"name\": \"Vessel ETH\",\n \"symbol\": \"VETH\",\n \"decimals\": 18\n },\n \"networkId\": 7355310,\n \"rpc\": [\"https://openvessel.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://7355310.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-external.openvessel.io\"],\n \"shortName\": \"vsl\",\n \"slug\": \"openvessel\",\n \"testnet\": false\n};\n\nvar c7668378 = {\n \"chain\": \"QOM\",\n \"chainId\": 7668378,\n \"explorers\": [{\n \"name\": \"QL1 Testnet Explorer\",\n \"url\": \"https://testnet.qom.one\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmRc1kJ7AgcDL1BSoMYudatWHTrz27K6WNTwGifQb5V17D\",\n \"width\": 518,\n \"height\": 518,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucet.qom.one\"],\n \"icon\": {\n \"url\": \"ipfs://QmRc1kJ7AgcDL1BSoMYudatWHTrz27K6WNTwGifQb5V17D\",\n \"width\": 518,\n \"height\": 518,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://qom.one\",\n \"name\": \"QL1 Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Shiba Predator\",\n \"symbol\": \"QOM\",\n \"decimals\": 18\n },\n \"networkId\": 7668378,\n \"rpc\": [\"https://ql1-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://7668378.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.testnet.qom.one\"],\n \"shortName\": \"tqom\",\n \"slip44\": 1,\n \"slug\": \"ql1-testnet\",\n \"status\": \"incubating\",\n \"testnet\": true\n};\n\nvar c7762959 = {\n \"chain\": \"MUSIC\",\n \"chainId\": 7762959,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://musicoin.tw\",\n \"name\": \"Musicoin\",\n \"nativeCurrency\": {\n \"name\": \"Musicoin\",\n \"symbol\": \"MUSIC\",\n \"decimals\": 18\n },\n \"networkId\": 7762959,\n \"rpc\": [\"https://musicoin.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://7762959.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mewapi.musicoin.tw\"],\n \"shortName\": \"music\",\n \"slip44\": 184,\n \"slug\": \"musicoin\",\n \"testnet\": false\n};\n\nvar c7777777 = {\n \"chain\": \"ETH\",\n \"chainId\": 7777777,\n \"explorers\": [{\n \"name\": \"Zora Network Explorer\",\n \"url\": \"https://explorer.zora.energy\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmZ6qaRwTPFEZUspwMUjaxC6KhmzcELdRQcQzS3P72Dzts/Vector.svg\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://zora.energy\",\n \"name\": \"Zora\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 7777777,\n \"redFlags\": [],\n \"rpc\": [\"https://zora.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://7777777.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.zora.energy/\"],\n \"shortName\": \"zora\",\n \"slug\": \"zora\",\n \"testnet\": false\n};\n\nvar c8007736 = {\n \"chain\": \"Plian\",\n \"chainId\": 8007736,\n \"explorers\": [{\n \"name\": \"piscan\",\n \"url\": \"https://piscan.plian.org/child_0\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://plian.org\",\n \"name\": \"Plian Mainnet Subchain 1\",\n \"nativeCurrency\": {\n \"name\": \"Plian Token\",\n \"symbol\": \"PI\",\n \"decimals\": 18\n },\n \"networkId\": 8007736,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-2099156\"\n },\n \"rpc\": [\"https://plian-subchain-1.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8007736.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.plian.io/child_0\"],\n \"shortName\": \"plian-mainnet-l2\",\n \"slug\": \"plian-subchain-1\",\n \"testnet\": false\n};\n\nvar c8080808 = {\n \"chain\": \"Hokum\",\n \"chainId\": 8080808,\n \"explorers\": [{\n \"name\": \"Hokum Explorer\",\n \"url\": \"https://explorer.hokum.gg\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmafrUmh1FD48WWQwk6pfW1Y7eA9VQTdpeL387Wt2JFrAd\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://hokum.gg\",\n \"name\": \"Hokum\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 8080808,\n \"rpc\": [\"https://hokum.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8080808.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.hokum.gg\"],\n \"shortName\": \"hokum\",\n \"slug\": \"hokum\",\n \"testnet\": false\n};\n\nvar c8794598 = {\n \"chain\": \"HAPchain\",\n \"chainId\": 8794598,\n \"explorers\": [{\n \"name\": \"HAP EVM Explorer (Blockscout)\",\n \"url\": \"https://blockscout.hap.land\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmQ4V9JC25yUrYk2kFJwmKguSsZBQvtGcg6q9zkDV8mkJW\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmQ4V9JC25yUrYk2kFJwmKguSsZBQvtGcg6q9zkDV8mkJW\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://hap.land\",\n \"name\": \"HAPchain\",\n \"nativeCurrency\": {\n \"name\": \"HAP\",\n \"symbol\": \"HAP\",\n \"decimals\": 18\n },\n \"networkId\": 8794598,\n \"rpc\": [\"https://hapchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://8794598.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://jsonrpc.hap.land\"],\n \"shortName\": \"hap\",\n \"slug\": \"hapchain\",\n \"testnet\": false\n};\n\nvar c8888881 = {\n \"chain\": \"Quarix\",\n \"chainId\": 8888881,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmTw8TyeeNhUFWrck2WCiN17MaHRt5qzRBtaAvmz6L7qq7\",\n \"width\": 669,\n \"height\": 587,\n \"format\": \"png\"\n },\n \"name\": \"Quarix Testnet\",\n \"nativeCurrency\": {\n \"name\": \"QARE\",\n \"symbol\": \"QARE\",\n \"decimals\": 18\n },\n \"networkId\": 8888881,\n \"rpc\": [],\n \"shortName\": \"quarix-testnet\",\n \"slip44\": 1,\n \"slug\": \"quarix-testnet\",\n \"status\": \"incubating\",\n \"testnet\": true\n};\n\nvar c8888888 = {\n \"chain\": \"Quarix\",\n \"chainId\": 8888888,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmTw8TyeeNhUFWrck2WCiN17MaHRt5qzRBtaAvmz6L7qq7\",\n \"width\": 669,\n \"height\": 587,\n \"format\": \"png\"\n },\n \"name\": \"Quarix\",\n \"nativeCurrency\": {\n \"name\": \"QARE\",\n \"symbol\": \"QARE\",\n \"decimals\": 18\n },\n \"networkId\": 8888888,\n \"rpc\": [],\n \"shortName\": \"quarix\",\n \"slug\": \"quarix\",\n \"status\": \"incubating\",\n \"testnet\": false\n};\n\nvar c9322252 = {\n \"chain\": \"XCAP\",\n \"chainId\": 9322252,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://xcap-mainnet.explorer.xcap.network\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmeTj6tfaw9qf9wnEUQh7PnCpNWyvm56e7kY35kANRWNxj\",\n \"width\": 1600,\n \"height\": 1600,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://xcap.network/\",\n \"name\": \"XCAP\",\n \"nativeCurrency\": {\n \"name\": \"Gas\",\n \"symbol\": \"GAS\",\n \"decimals\": 18\n },\n \"networkId\": 9322252,\n \"rpc\": [\"https://xcap.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://9322252.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://xcap-mainnet.relay.xcap.network/znzvh2ueyvm2yts5fv5gnul395jbkfb2/rpc1\"],\n \"shortName\": \"xcap\",\n \"slug\": \"xcap\",\n \"testnet\": false,\n \"title\": \"XCAP Mainnet\"\n};\n\nvar c9322253 = {\n \"chain\": \"XCAP\",\n \"chainId\": 9322253,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://xcap-milvine.explorer.xcap.network\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmeTj6tfaw9qf9wnEUQh7PnCpNWyvm56e7kY35kANRWNxj\",\n \"width\": 1600,\n \"height\": 1600,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://xcap.network/\",\n \"name\": \"Milvine\",\n \"nativeCurrency\": {\n \"name\": \"Gas\",\n \"symbol\": \"GAS\",\n \"decimals\": 18\n },\n \"networkId\": 9322253,\n \"rpc\": [\"https://milvine.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://9322253.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://xcap-milvine.relay.xcap.network/zj5l55ftsgi027kz4nf14vs8d89inego/rpc1\"],\n \"shortName\": \"milv\",\n \"slug\": \"milvine\",\n \"testnet\": true,\n \"title\": \"XCAP Testnet Milvine\"\n};\n\nvar c10067275 = {\n \"chain\": \"Plian\",\n \"chainId\": 10067275,\n \"explorers\": [{\n \"name\": \"piscan\",\n \"url\": \"https://testnet.plian.org/child_test\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://plian.org/\",\n \"name\": \"Plian Testnet Subchain 1\",\n \"nativeCurrency\": {\n \"name\": \"Plian Token\",\n \"symbol\": \"TPI\",\n \"decimals\": 18\n },\n \"networkId\": 10067275,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-16658437\"\n },\n \"rpc\": [\"https://plian-testnet-subchain-1.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://10067275.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.plian.io/child_test\"],\n \"shortName\": \"plian-testnet-l2\",\n \"slip44\": 1,\n \"slug\": \"plian-testnet-subchain-1\",\n \"testnet\": true\n};\n\nvar c10101010 = {\n \"chain\": \"SVRN\",\n \"chainId\": 10101010,\n \"explorers\": [{\n \"name\": \"Soverun\",\n \"url\": \"https://explorer.soverun.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.soverun.com\"],\n \"icon\": {\n \"url\": \"ipfs://QmTYazUzgY9Nn2mCjWwFUSLy3dG6i2PvALpwCNQvx1zXyi\",\n \"width\": 1154,\n \"height\": 1154,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://soverun.com\",\n \"name\": \"Soverun Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Soverun\",\n \"symbol\": \"SVRN\",\n \"decimals\": 18\n },\n \"networkId\": 10101010,\n \"rpc\": [\"https://soverun.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://10101010.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-rpc.soverun.com\"],\n \"shortName\": \"SVRNm\",\n \"slug\": \"soverun\",\n \"testnet\": false\n};\n\nvar c11155111 = {\n \"chain\": \"ETH\",\n \"chainId\": 11155111,\n \"explorers\": [{\n \"name\": \"etherscan-sepolia\",\n \"url\": \"https://sepolia.etherscan.io\",\n \"standard\": \"EIP3091\"\n }, {\n \"name\": \"otterscan-sepolia\",\n \"url\": \"https://sepolia.otterscan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"http://fauceth.komputing.org?chain=11155111&address=${ADDRESS}\"],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmcxZHpyJa8T4i63xqjPYrZ6tKrt55tZJpbXcjSDKuKaf9/ethereum/512.png\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://sepolia.otterscan.io\",\n \"name\": \"Sepolia\",\n \"nativeCurrency\": {\n \"name\": \"Sepolia Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 11155111,\n \"redFlags\": [],\n \"rpc\": [\"https://sepolia.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://11155111.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://sepolia.infura.io/v3/${INFURA_API_KEY}\", \"wss://sepolia.infura.io/v3/${INFURA_API_KEY}\", \"https://rpc.sepolia.org\", \"https://rpc2.sepolia.org\", \"https://rpc-sepolia.rockx.com\", \"https://rpc.sepolia.ethpandaops.io\", \"https://sepolia.gateway.tenderly.co\", \"wss://sepolia.gateway.tenderly.co\", \"https://ethereum-sepolia.publicnode.com\", \"wss://ethereum-sepolia.publicnode.com\"],\n \"shortName\": \"sep\",\n \"slip44\": 1,\n \"slug\": \"sepolia\",\n \"testnet\": true,\n \"title\": \"Ethereum Testnet Sepolia\"\n};\n\nvar c11155420 = {\n \"chain\": \"ETH\",\n \"chainId\": 11155420,\n \"explorers\": [{\n \"name\": \"opscout\",\n \"url\": \"https://optimism-sepolia.blockscout.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://app.optimism.io/faucet\"],\n \"infoURL\": \"https://optimism.io\",\n \"name\": \"OP Sepolia Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Sepolia Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 11155420,\n \"rpc\": [\"https://op-sepolia-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://11155420.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://sepolia.optimism.io\"],\n \"shortName\": \"opsep\",\n \"slip44\": 1,\n \"slug\": \"op-sepolia-testnet\",\n \"testnet\": true\n};\n\nvar c13371337 = {\n \"chain\": \"PEP\",\n \"chainId\": 13371337,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://pepchain.io\",\n \"name\": \"PepChain Churchill\",\n \"nativeCurrency\": {\n \"name\": \"PepChain Churchill Ether\",\n \"symbol\": \"TPEP\",\n \"decimals\": 18\n },\n \"networkId\": 13371337,\n \"rpc\": [\"https://pepchain-churchill.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://13371337.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://churchill-rpc.pepchain.io\"],\n \"shortName\": \"tpep\",\n \"slug\": \"pepchain-churchill\",\n \"testnet\": false\n};\n\nvar c14288640 = {\n \"chain\": \"anduschain\",\n \"chainId\": 14288640,\n \"explorers\": [{\n \"name\": \"anduschain explorer\",\n \"url\": \"https://explorer.anduschain.io\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://bafkreiapaxokh2p4j7hg43ug2inomixiwrdhni4kpqazvqifssnez7efze\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"infoURL\": \"https://anduschain.io/\",\n \"name\": \"Anduschain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"DAON\",\n \"symbol\": \"DEB\",\n \"decimals\": 18\n },\n \"networkId\": 14288640,\n \"rpc\": [\"https://anduschain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://14288640.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.anduschain.io/rpc\", \"wss://rpc.anduschain.io/ws\"],\n \"shortName\": \"anduschain-mainnet\",\n \"slug\": \"anduschain\",\n \"testnet\": false\n};\n\nvar c16658437 = {\n \"chain\": \"Plian\",\n \"chainId\": 16658437,\n \"explorers\": [{\n \"name\": \"piscan\",\n \"url\": \"https://testnet.plian.org/testnet\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://plian.org\",\n \"name\": \"Plian Testnet Main\",\n \"nativeCurrency\": {\n \"name\": \"Plian Testnet Token\",\n \"symbol\": \"TPI\",\n \"decimals\": 18\n },\n \"networkId\": 16658437,\n \"rpc\": [\"https://plian-testnet-main.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://16658437.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.plian.io/testnet\"],\n \"shortName\": \"plian-testnet\",\n \"slip44\": 1,\n \"slug\": \"plian-testnet-main\",\n \"testnet\": true\n};\n\nvar c18289463 = {\n \"chain\": \"ILT\",\n \"chainId\": 18289463,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://iolite.io\",\n \"name\": \"IOLite\",\n \"nativeCurrency\": {\n \"name\": \"IOLite Ether\",\n \"symbol\": \"ILT\",\n \"decimals\": 18\n },\n \"networkId\": 18289463,\n \"rpc\": [\"https://iolite.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://18289463.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://net.iolite.io\"],\n \"shortName\": \"ilt\",\n \"slug\": \"iolite\",\n \"testnet\": false\n};\n\nvar c20180430 = {\n \"chain\": \"Spectrum\",\n \"chainId\": 20180430,\n \"explorers\": [{\n \"name\": \"spectrum\",\n \"url\": \"https://spectrum.pub\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://smartmesh.io\",\n \"name\": \"SmartMesh Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"SmartMesh Native Token\",\n \"symbol\": \"SMT\",\n \"decimals\": 18\n },\n \"networkId\": 1,\n \"rpc\": [\"https://smartmesh.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://20180430.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://jsonapi1.smartmesh.cn\"],\n \"shortName\": \"spectrum\",\n \"slug\": \"smartmesh\",\n \"testnet\": false\n};\n\nvar c20181205 = {\n \"chain\": \"QKI\",\n \"chainId\": 20181205,\n \"explorers\": [{\n \"name\": \"qkiscan\",\n \"url\": \"https://qkiscan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://quarkblockchain.org/\",\n \"name\": \"quarkblockchain\",\n \"nativeCurrency\": {\n \"name\": \"quarkblockchain Native Token\",\n \"symbol\": \"QKI\",\n \"decimals\": 18\n },\n \"networkId\": 20181205,\n \"rpc\": [\"https://quarkblockchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://20181205.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://hz.rpc.qkiscan.cn\", \"https://jp.rpc.qkiscan.io\", \"https://rpc1.qkiscan.io\", \"https://rpc2.qkiscan.io\", \"https://rpc3.qkiscan.io\"],\n \"shortName\": \"qki\",\n \"slug\": \"quarkblockchain\",\n \"testnet\": false\n};\n\nvar c20201022 = {\n \"chain\": \"PEGO\",\n \"chainId\": 20201022,\n \"explorers\": [{\n \"name\": \"Pego Network Explorer\",\n \"url\": \"https://scan.pego.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmVf1afskRHuZjFSLCZH8397KrVNAoYgyAePX9VMBrPVtx\",\n \"width\": 246,\n \"height\": 247,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://pego.network\",\n \"name\": \"Pego Network\",\n \"nativeCurrency\": {\n \"name\": \"Pego Native Token\",\n \"symbol\": \"PG\",\n \"decimals\": 18\n },\n \"networkId\": 20201022,\n \"rpc\": [\"https://pego-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://20201022.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://pegorpc.com\", \"https://node1.pegorpc.com\", \"https://node2.pegorpc.com\", \"https://node3.pegorpc.com\"],\n \"shortName\": \"pg\",\n \"slug\": \"pego-network\",\n \"testnet\": false\n};\n\nvar c20482050 = {\n \"chain\": \"HokumTestnet\",\n \"chainId\": 20482050,\n \"explorers\": [{\n \"name\": \"Hokum Explorer\",\n \"url\": \"https://testnet-explorer.hokum.gg\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmafrUmh1FD48WWQwk6pfW1Y7eA9VQTdpeL387Wt2JFrAd\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://hokum.gg\",\n \"name\": \"Hokum Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 20482050,\n \"rpc\": [\"https://hokum-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://20482050.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.hokum.gg\"],\n \"shortName\": \"hokum-testnet\",\n \"slug\": \"hokum-testnet\",\n \"testnet\": true\n};\n\nvar c22052002 = {\n \"chain\": \"XLON\",\n \"chainId\": 22052002,\n \"explorers\": [{\n \"name\": \"Excelon explorer\",\n \"url\": \"https://explorer.excelon.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmTV45o4jTe6ayscF1XWh1WXk5DPck4QohR5kQocSWjvQP\",\n \"width\": 300,\n \"height\": 300,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://xlon.org\",\n \"name\": \"Excelon Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Excelon\",\n \"symbol\": \"xlon\",\n \"decimals\": 18\n },\n \"networkId\": 22052002,\n \"rpc\": [\"https://excelon.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://22052002.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://edgewallet1.xlon.org/\"],\n \"shortName\": \"xlon\",\n \"slug\": \"excelon\",\n \"testnet\": false\n};\n\nvar c27082017 = {\n \"chain\": \"TEXL\",\n \"chainId\": 27082017,\n \"explorers\": [{\n \"name\": \"exlscan\",\n \"url\": \"https://testnet-explorer.exlscan.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmeooM7QicT1YbgY93XPd5p7JsCjYhN3qjWt68X57g6bVC\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://faucet.exlscan.com\"],\n \"icon\": {\n \"url\": \"ipfs://QmeooM7QicT1YbgY93XPd5p7JsCjYhN3qjWt68X57g6bVC\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n },\n \"name\": \"Excoincial Chain Volta-Testnet\",\n \"nativeCurrency\": {\n \"name\": \"TExlcoin\",\n \"symbol\": \"TEXL\",\n \"decimals\": 18\n },\n \"networkId\": 27082017,\n \"rpc\": [\"https://excoincial-chain-volta-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://27082017.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet-rpc.exlscan.com\"],\n \"shortName\": \"exlvolta\",\n \"slip44\": 1,\n \"slug\": \"excoincial-chain-volta-testnet\",\n \"testnet\": true\n};\n\nvar c27082022 = {\n \"chain\": \"EXL\",\n \"chainId\": 27082022,\n \"explorers\": [{\n \"name\": \"exlscan\",\n \"url\": \"https://exlscan.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmeooM7QicT1YbgY93XPd5p7JsCjYhN3qjWt68X57g6bVC\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmeooM7QicT1YbgY93XPd5p7JsCjYhN3qjWt68X57g6bVC\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n },\n \"name\": \"Excoincial Chain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Exlcoin\",\n \"symbol\": \"EXL\",\n \"decimals\": 18\n },\n \"networkId\": 27082022,\n \"rpc\": [\"https://excoincial-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://27082022.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.exlscan.com\"],\n \"shortName\": \"exl\",\n \"slug\": \"excoincial-chain\",\n \"testnet\": false\n};\n\nvar c28945486 = {\n \"chain\": \"AUX\",\n \"chainId\": 28945486,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://auxilium.global\",\n \"name\": \"Auxilium Network Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Auxilium coin\",\n \"symbol\": \"AUX\",\n \"decimals\": 18\n },\n \"networkId\": 28945486,\n \"rpc\": [\"https://auxilium-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://28945486.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.auxilium.global\"],\n \"shortName\": \"auxi\",\n \"slip44\": 344,\n \"slug\": \"auxilium-network\",\n \"testnet\": false\n};\n\nvar c29032022 = {\n \"chain\": \"FLX\",\n \"chainId\": 29032022,\n \"explorers\": [{\n \"name\": \"FLXExplorer\",\n \"url\": \"https://explorer.flaexchange.top\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://bafybeiadlvc4pfiykehyt2z67nvgt5w4vlov27olu5obvmryv4xzua4tae\",\n \"width\": 256,\n \"height\": 256,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://www.flaexchange.top\",\n \"name\": \"Flachain Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Flacoin\",\n \"symbol\": \"FLA\",\n \"decimals\": 18\n },\n \"networkId\": 29032022,\n \"rpc\": [\"https://flachain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://29032022.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://flachain.flaexchange.top/\"],\n \"shortName\": \"fla\",\n \"slug\": \"flachain\",\n \"testnet\": false\n};\n\nvar c31415926 = {\n \"chain\": \"FIL\",\n \"chainId\": 31415926,\n \"explorers\": [],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmS9r9XQkMHVomWcSBNDkKkz9n87h9bH9ssabeiKZtANoU\",\n \"width\": 1000,\n \"height\": 1000,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://filecoin.io\",\n \"name\": \"Filecoin - Local testnet\",\n \"nativeCurrency\": {\n \"name\": \"testnet filecoin\",\n \"symbol\": \"tFIL\",\n \"decimals\": 18\n },\n \"networkId\": 31415926,\n \"rpc\": [],\n \"shortName\": \"filecoin-local\",\n \"slip44\": 1,\n \"slug\": \"filecoin-local-testnet\",\n \"status\": \"incubating\",\n \"testnet\": true\n};\n\nvar c35855456 = {\n \"chain\": \"JOYS\",\n \"chainId\": 35855456,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://joys.digital\",\n \"name\": \"Joys Digital Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"JOYS\",\n \"symbol\": \"JOYS\",\n \"decimals\": 18\n },\n \"networkId\": 35855456,\n \"rpc\": [\"https://joys-digital.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://35855456.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://node.joys.digital\"],\n \"shortName\": \"JOYS\",\n \"slug\": \"joys-digital\",\n \"testnet\": false\n};\n\nvar c43214913 = {\n \"chain\": \"MAI\",\n \"chainId\": 43214913,\n \"explorers\": [{\n \"name\": \"maistesntet\",\n \"url\": \"http://174.138.9.169:3006/?network=maistesntet\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"name\": \"maistestsubnet\",\n \"nativeCurrency\": {\n \"name\": \"maistestsubnet\",\n \"symbol\": \"MAI\",\n \"decimals\": 18\n },\n \"networkId\": 43214913,\n \"rpc\": [\"https://maistestsubnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://43214913.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"http://174.138.9.169:9650/ext/bc/VUKSzFZKckx4PoZF9gX5QAqLPxbLzvu1vcssPG5QuodaJtdHT/rpc\"],\n \"shortName\": \"mais\",\n \"slip44\": 1,\n \"slug\": \"maistestsubnet\",\n \"testnet\": true\n};\n\nvar c61717561 = {\n \"chain\": \"AQUA\",\n \"chainId\": 61717561,\n \"explorers\": [],\n \"faucets\": [\"https://aquacha.in/faucet\"],\n \"infoURL\": \"https://aquachain.github.io\",\n \"name\": \"Aquachain\",\n \"nativeCurrency\": {\n \"name\": \"Aquachain Ether\",\n \"symbol\": \"AQUA\",\n \"decimals\": 18\n },\n \"networkId\": 61717561,\n \"rpc\": [\"https://aquachain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://61717561.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://c.onical.org\", \"https://tx.aquacha.in/api\"],\n \"shortName\": \"aqua\",\n \"slip44\": 61717561,\n \"slug\": \"aquachain\",\n \"testnet\": false\n};\n\nvar c65010000 = {\n \"chain\": \"AUT\",\n \"chainId\": 65010000,\n \"explorers\": [{\n \"name\": \"autonity-blockscout\",\n \"url\": \"https://bakerloo.autonity.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.autonity.org/\"],\n \"icon\": {\n \"url\": \"ipfs://Qme5nxFZZoNNpiT8u9WwcBot4HyLTg2jxMxRnsbc5voQwB\",\n \"width\": 1000,\n \"height\": 1000,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://autonity.org/\",\n \"name\": \"Autonity Bakerloo (Thames) Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Bakerloo Auton\",\n \"symbol\": \"ATN\",\n \"decimals\": 18\n },\n \"networkId\": 65010000,\n \"rpc\": [],\n \"shortName\": \"bakerloo-0\",\n \"slip44\": 1,\n \"slug\": \"autonity-bakerloo-thames-testnet\",\n \"status\": \"deprecated\",\n \"testnet\": true\n};\n\nvar c65010001 = {\n \"chain\": \"AUT\",\n \"chainId\": 65010001,\n \"explorers\": [{\n \"name\": \"autonity-blockscout\",\n \"url\": \"https://bakerloo.autonity.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.autonity.org/\"],\n \"icon\": {\n \"url\": \"ipfs://Qme5nxFZZoNNpiT8u9WwcBot4HyLTg2jxMxRnsbc5voQwB\",\n \"width\": 1000,\n \"height\": 1000,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://autonity.org/\",\n \"name\": \"Autonity Bakerloo (Barada) Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Bakerloo Auton\",\n \"symbol\": \"ATN\",\n \"decimals\": 18\n },\n \"networkId\": 65010001,\n \"rpc\": [\"https://autonity-bakerloo-barada-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://65010001.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc1.bakerloo.autonity.org/\", \"wss://rpc1.bakerloo.autonity.org/ws/\"],\n \"shortName\": \"bakerloo-01\",\n \"slip44\": 1,\n \"slug\": \"autonity-bakerloo-barada-testnet\",\n \"testnet\": true\n};\n\nvar c65100000 = {\n \"chain\": \"AUT\",\n \"chainId\": 65100000,\n \"explorers\": [{\n \"name\": \"autonity-blockscout\",\n \"url\": \"https://piccadilly.autonity.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.autonity.org/\"],\n \"icon\": {\n \"url\": \"ipfs://Qme5nxFZZoNNpiT8u9WwcBot4HyLTg2jxMxRnsbc5voQwB\",\n \"width\": 1000,\n \"height\": 1000,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://autonity.org/\",\n \"name\": \"Autonity Piccadilly (Thames) Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Piccadilly Auton\",\n \"symbol\": \"ATN\",\n \"decimals\": 18\n },\n \"networkId\": 65100000,\n \"rpc\": [],\n \"shortName\": \"piccadilly-0\",\n \"slip44\": 1,\n \"slug\": \"autonity-piccadilly-thames-testnet\",\n \"status\": \"deprecated\",\n \"testnet\": true\n};\n\nvar c65100001 = {\n \"chain\": \"AUT\",\n \"chainId\": 65100001,\n \"explorers\": [{\n \"name\": \"autonity-blockscout\",\n \"url\": \"https://piccadilly.autonity.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://Qme5nxFZZoNNpiT8u9WwcBot4HyLTg2jxMxRnsbc5voQwB\",\n \"width\": 1000,\n \"height\": 1000,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://autonity.org/\",\n \"name\": \"Autonity Piccadilly (Barada) Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Piccadilly Auton\",\n \"symbol\": \"ATN\",\n \"decimals\": 18\n },\n \"networkId\": 65100001,\n \"rpc\": [\"https://autonity-piccadilly-barada-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://65100001.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc1.piccadilly.autonity.org/\", \"wss://rpc1.piccadilly.autonity.org/ws/\"],\n \"shortName\": \"piccadilly-01\",\n \"slip44\": 1,\n \"slug\": \"autonity-piccadilly-barada-testnet\",\n \"testnet\": true\n};\n\nvar c68840142 = {\n \"chain\": \"ETH\",\n \"chainId\": 68840142,\n \"explorers\": [{\n \"name\": \"Frame Testnet Explorer\",\n \"url\": \"https://explorer.testnet.frame.xyz/\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.triangleplatform.com/frame\"],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmRxeKFwBwrXyDksoN4NzNRp3R35s8pVnTBfBj4AJSCq5g\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://frame.xyz\",\n \"name\": \"Frame Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 68840142,\n \"redFlags\": [],\n \"rpc\": [\"https://frame-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://68840142.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.testnet.frame.xyz/http\"],\n \"shortName\": \"frame-test\",\n \"slip44\": 1,\n \"slug\": \"frame-testnet\",\n \"testnet\": true\n};\n\nvar c88888888 = {\n \"chain\": \"TEAM\",\n \"chainId\": 88888888,\n \"explorers\": [{\n \"name\": \"teamscan\",\n \"url\": \"https://teamblockchain.team\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }, {\n \"name\": \"EIP1559\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmcnA15BLE9uvznbugXKjqquizZs1eLPeEEkc92DSmvhmt\",\n \"width\": 248,\n \"height\": 248,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://teamblockchain.team\",\n \"name\": \"T.E.A.M Blockchain\",\n \"nativeCurrency\": {\n \"name\": \"TEAM\",\n \"symbol\": \"$TEAM\",\n \"decimals\": 18\n },\n \"networkId\": 88888888,\n \"rpc\": [\"https://t-e-a-m-blockchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://88888888.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.teamblockchain.team\"],\n \"shortName\": \"team\",\n \"slug\": \"t-e-a-m-blockchain\",\n \"testnet\": false\n};\n\nvar c99415706 = {\n \"chain\": \"TOYS\",\n \"chainId\": 99415706,\n \"explorers\": [],\n \"faucets\": [\"https://faucet.joys.digital/\"],\n \"infoURL\": \"https://joys.digital\",\n \"name\": \"Joys Digital TestNet\",\n \"nativeCurrency\": {\n \"name\": \"TOYS\",\n \"symbol\": \"TOYS\",\n \"decimals\": 18\n },\n \"networkId\": 99415706,\n \"rpc\": [\"https://joys-digital-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://99415706.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://toys.joys.cash/\"],\n \"shortName\": \"TOYS\",\n \"slip44\": 1,\n \"slug\": \"joys-digital-testnet\",\n \"testnet\": true\n};\n\nvar c192837465 = {\n \"chain\": \"GTH\",\n \"chainId\": 192837465,\n \"explorers\": [{\n \"name\": \"Blockscout\",\n \"url\": \"https://explorer.gather.network\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmTYR8CeFiNbJ1zJHnE3DK2wEN18r2y2vqSKUcLweUT2Gz\",\n \"width\": 1080,\n \"height\": 1080,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://Qmc9AJGg9aNhoH56n3deaZeUc8Ty1jDYJsW6Lu6hgSZH4S\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://gather.network\",\n \"name\": \"Gather Mainnet Network\",\n \"nativeCurrency\": {\n \"name\": \"Gather\",\n \"symbol\": \"GTH\",\n \"decimals\": 18\n },\n \"networkId\": 192837465,\n \"redFlags\": [],\n \"rpc\": [\"https://gather-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://192837465.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.gather.network\"],\n \"shortName\": \"GTH\",\n \"slug\": \"gather-network\",\n \"testnet\": false\n};\n\nvar c222000222 = {\n \"chain\": \"Kanazawa\",\n \"chainId\": 222000222,\n \"explorers\": [{\n \"name\": \"explorer\",\n \"url\": \"https://subnets-test.avax.network/meld\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmRhB4AbjDrhvwfSAQi2JvKirFiDWxzJvKEvG8S8AdDdED\",\n \"width\": 4000,\n \"height\": 4000,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmRhB4AbjDrhvwfSAQi2JvKirFiDWxzJvKEvG8S8AdDdED\",\n \"width\": 4000,\n \"height\": 4000,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://meld.com\",\n \"name\": \"Kanazawa\",\n \"nativeCurrency\": {\n \"name\": \"gMeld\",\n \"symbol\": \"gMELD\",\n \"decimals\": 18\n },\n \"networkId\": 222000222,\n \"rpc\": [\"https://kanazawa.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://222000222.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/meld/testnet/rpc\"],\n \"shortName\": \"kanazawa\",\n \"slip44\": 1,\n \"slug\": \"kanazawa\",\n \"testnet\": true,\n \"title\": \"Meld Testnet Kanazawa\"\n};\n\nvar c245022926 = {\n \"chain\": \"Solana\",\n \"chainId\": 245022926,\n \"explorers\": [{\n \"name\": \"blockscout\",\n \"url\": \"https://neon-devnet.blockscout.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM\",\n \"width\": 551,\n \"height\": 540,\n \"format\": \"png\"\n }\n }, {\n \"name\": \"neonscan\",\n \"url\": \"https://devnet.neonscan.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://neonfaucet.org\"],\n \"icon\": {\n \"url\": \"ipfs://Qmcxevb3v8PEvnvfYgcG3bCBuPhe5YAdsHeaufDChSSR3Q\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://neon-labs.org\",\n \"name\": \"Neon EVM Devnet\",\n \"nativeCurrency\": {\n \"name\": \"Neon\",\n \"symbol\": \"NEON\",\n \"decimals\": 18\n },\n \"networkId\": 245022926,\n \"rpc\": [\"https://neon-evm-devnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://245022926.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://devnet.neonevm.org\"],\n \"shortName\": \"neonevm-devnet\",\n \"slug\": \"neon-evm-devnet\",\n \"testnet\": false\n};\n\nvar c245022934 = {\n \"chain\": \"Solana\",\n \"chainId\": 245022934,\n \"explorers\": [{\n \"name\": \"neonscan\",\n \"url\": \"https://neonscan.org\",\n \"standard\": \"EIP3091\"\n }, {\n \"name\": \"native\",\n \"url\": \"https://neon.blockscout.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://Qmcxevb3v8PEvnvfYgcG3bCBuPhe5YAdsHeaufDChSSR3Q\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://neonevm.org\",\n \"name\": \"Neon EVM Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Neon\",\n \"symbol\": \"NEON\",\n \"decimals\": 18\n },\n \"networkId\": 245022934,\n \"rpc\": [\"https://neon-evm.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://245022934.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://neon-proxy-mainnet.solana.p2p.org\"],\n \"shortName\": \"neonevm-mainnet\",\n \"slug\": \"neon-evm\",\n \"testnet\": false\n};\n\nvar c245022940 = {\n \"chain\": \"Solana\",\n \"chainId\": 245022940,\n \"explorers\": [{\n \"name\": \"native\",\n \"url\": \"https://testnet.explorer.neon-labs.org\",\n \"standard\": \"EIP3091\"\n }, {\n \"name\": \"neonscan\",\n \"url\": \"https://testnet.neonscan.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://Qmcxevb3v8PEvnvfYgcG3bCBuPhe5YAdsHeaufDChSSR3Q\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://neon-labs.org\",\n \"name\": \"Neon EVM TestNet\",\n \"nativeCurrency\": {\n \"name\": \"Neon\",\n \"symbol\": \"NEON\",\n \"decimals\": 18\n },\n \"networkId\": 245022940,\n \"rpc\": [\"https://neon-evm-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://245022940.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.neonevm.org\"],\n \"shortName\": \"neonevm-testnet\",\n \"slip44\": 1,\n \"slug\": \"neon-evm-testnet\",\n \"status\": \"deprecated\",\n \"testnet\": true\n};\n\nvar c278611351 = {\n \"chain\": \"Razor Schain\",\n \"chainId\": 278611351,\n \"explorers\": [{\n \"name\": \"turbulent-unique-scheat\",\n \"url\": \"https://turbulent-unique-scheat.explorer.mainnet.skalenodes.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.razorscan.io/\"],\n \"icon\": {\n \"url\": \"ipfs://QmUdwAZJfyKGZnfPGDsCnNvGu123mdd57kTGj1Y3EWVuWK\",\n \"width\": 900,\n \"height\": 900,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://razor.network\",\n \"name\": \"Razor Skale Chain\",\n \"nativeCurrency\": {\n \"name\": \"sFuel\",\n \"symbol\": \"SFUEL\",\n \"decimals\": 18\n },\n \"networkId\": 278611351,\n \"rpc\": [\"https://razor-skale-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://278611351.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.skalenodes.com/v1/turbulent-unique-scheat\"],\n \"shortName\": \"razor\",\n \"slug\": \"razor-skale-chain\",\n \"testnet\": false\n};\n\nvar c311752642 = {\n \"chain\": \"OLT\",\n \"chainId\": 311752642,\n \"explorers\": [{\n \"name\": \"OneLedger Block Explorer\",\n \"url\": \"https://mainnet-explorer.oneledger.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmRhqq4Gp8G9w27ND3LeFW49o5PxcxrbJsqHbpBFtzEMfC\",\n \"width\": 225,\n \"height\": 225,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://oneledger.io\",\n \"name\": \"OneLedger Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"OLT\",\n \"symbol\": \"OLT\",\n \"decimals\": 18\n },\n \"networkId\": 311752642,\n \"rpc\": [\"https://oneledger.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://311752642.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet-rpc.oneledger.network\"],\n \"shortName\": \"oneledger\",\n \"slug\": \"oneledger\",\n \"testnet\": false\n};\n\nvar c333000333 = {\n \"chain\": \"MELD\",\n \"chainId\": 333000333,\n \"explorers\": [{\n \"name\": \"explorer\",\n \"url\": \"https://subnets.avax.network/meld\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmRhB4AbjDrhvwfSAQi2JvKirFiDWxzJvKEvG8S8AdDdED\",\n \"width\": 4000,\n \"height\": 4000,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://QmRhB4AbjDrhvwfSAQi2JvKirFiDWxzJvKEvG8S8AdDdED\",\n \"width\": 4000,\n \"height\": 4000,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://meld.com\",\n \"name\": \"Meld\",\n \"nativeCurrency\": {\n \"name\": \"gMeld\",\n \"symbol\": \"gMELD\",\n \"decimals\": 18\n },\n \"networkId\": 333000333,\n \"rpc\": [\"https://meld.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://333000333.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://subnets.avax.network/meld/mainnet/rpc\"],\n \"shortName\": \"meld\",\n \"slug\": \"meld\",\n \"testnet\": false,\n \"title\": \"Meld Mainnet\"\n};\n\nvar c344106930 = {\n \"chain\": \"staging-utter-unripe-menkar\",\n \"chainId\": 344106930,\n \"explorers\": [{\n \"name\": \"Blockscout\",\n \"url\": \"https://staging-utter-unripe-menkar.explorer.staging-v3.skalenodes.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://sfuel.dirtroad.dev/staging\"],\n \"icon\": {\n \"url\": \"ipfs://bafybeigyayzxvt7vosat4rtrbmhhnldgx57w2pfbutuniax7h6kswzi42m\",\n \"width\": 1637,\n \"height\": 1636,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://calypsohub.network/\",\n \"name\": \"SKALE Calypso Hub Testnet\",\n \"nativeCurrency\": {\n \"name\": \"sFUEL\",\n \"symbol\": \"sFUEL\",\n \"decimals\": 18\n },\n \"networkId\": 344106930,\n \"rpc\": [\"https://skale-calypso-hub-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://344106930.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://staging-v3.skalenodes.com/v1/staging-utter-unripe-menkar\"],\n \"shortName\": \"calypso-testnet\",\n \"slip44\": 1,\n \"slug\": \"skale-calypso-hub-testnet\",\n \"testnet\": true,\n \"title\": \"Calypso NFT Hub Testnet\"\n};\n\nvar c356256156 = {\n \"chain\": \"GTH\",\n \"chainId\": 356256156,\n \"explorers\": [{\n \"name\": \"Blockscout\",\n \"url\": \"https://testnet-explorer.gather.network\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmTYR8CeFiNbJ1zJHnE3DK2wEN18r2y2vqSKUcLweUT2Gz\",\n \"width\": 1080,\n \"height\": 1080,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [\"https://testnet-faucet.gather.network/\"],\n \"features\": [],\n \"icon\": {\n \"url\": \"ipfs://Qmc9AJGg9aNhoH56n3deaZeUc8Ty1jDYJsW6Lu6hgSZH4S\",\n \"width\": 512,\n \"height\": 512,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://gather.network\",\n \"name\": \"Gather Testnet Network\",\n \"nativeCurrency\": {\n \"name\": \"Gather\",\n \"symbol\": \"GTH\",\n \"decimals\": 18\n },\n \"networkId\": 356256156,\n \"redFlags\": [],\n \"rpc\": [\"https://gather-testnet-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://356256156.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.gather.network\"],\n \"shortName\": \"tGTH\",\n \"slip44\": 1,\n \"slug\": \"gather-testnet-network\",\n \"testnet\": true\n};\n\nvar c476158412 = {\n \"chain\": \"staging-legal-crazy-castor\",\n \"chainId\": 476158412,\n \"explorers\": [{\n \"name\": \"Blockscout\",\n \"url\": \"https://staging-legal-crazy-castor.explorer.staging-v3.skalenodes.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://sfuel.dirtroad.dev/staging\"],\n \"icon\": {\n \"url\": \"ipfs://bafkreiezcwowhm6xjrkt44cmiu6ml36rhrxx3amcg3cfkcntv2vgcvgbre\",\n \"width\": 600,\n \"height\": 600,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://europahub.network/\",\n \"name\": \"SKALE Europa Hub Testnet\",\n \"nativeCurrency\": {\n \"name\": \"sFUEL\",\n \"symbol\": \"sFUEL\",\n \"decimals\": 18\n },\n \"networkId\": 476158412,\n \"rpc\": [\"https://skale-europa-hub-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://476158412.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://staging-v3.skalenodes.com/v1/staging-legal-crazy-castor\"],\n \"shortName\": \"europa-testnet\",\n \"slip44\": 1,\n \"slug\": \"skale-europa-hub-testnet\",\n \"testnet\": true,\n \"title\": \"Europa Hub Testnet\"\n};\n\nvar c486217935 = {\n \"chain\": \"GTH\",\n \"chainId\": 486217935,\n \"explorers\": [{\n \"name\": \"Blockscout\",\n \"url\": \"https://devnet-explorer.gather.network\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://gather.network\",\n \"name\": \"Gather Devnet Network\",\n \"nativeCurrency\": {\n \"name\": \"Gather\",\n \"symbol\": \"GTH\",\n \"decimals\": 18\n },\n \"networkId\": 486217935,\n \"rpc\": [\"https://gather-devnet-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://486217935.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://devnet.gather.network\"],\n \"shortName\": \"dGTH\",\n \"slug\": \"gather-devnet-network\",\n \"testnet\": false\n};\n\nvar c503129905 = {\n \"chain\": \"staging-faint-slimy-achird\",\n \"chainId\": 503129905,\n \"explorers\": [{\n \"name\": \"Blockscout\",\n \"url\": \"https://staging-faint-slimy-achird.explorer.staging-v3.skalenodes.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://sfuel.dirtroad.dev/staging\"],\n \"icon\": {\n \"url\": \"ipfs://bafybeic5eexvd34wfy4kuebcyu73qpkv3x57s54ebzjyhyjsmeuni5jwcm\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://nebulachain.io/\",\n \"name\": \"SKALE Nebula Hub Testnet\",\n \"nativeCurrency\": {\n \"name\": \"sFUEL\",\n \"symbol\": \"sFUEL\",\n \"decimals\": 18\n },\n \"networkId\": 503129905,\n \"rpc\": [\"https://skale-nebula-hub-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://503129905.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://staging-v3.skalenodes.com/v1/staging-faint-slimy-achird\", \"wss://staging-v3.skalenodes.com/v1/ws/staging-faint-slimy-achird\"],\n \"shortName\": \"nebula-testnet\",\n \"slip44\": 1,\n \"slug\": \"skale-nebula-hub-testnet\",\n \"testnet\": true\n};\n\nvar c999999999 = {\n \"chain\": \"ETH\",\n \"chainId\": 999999999,\n \"explorers\": [{\n \"name\": \"Zora Sepolia Testnet Network Explorer\",\n \"url\": \"https://sepolia.explorer.zora.energy\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreifvrly5tgd34xqeo67s4etmiu52bkroml7uy7eosizf57htf5nrzq\",\n \"width\": 250,\n \"height\": 250,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://zora.energy\",\n \"name\": \"Zora Sepolia Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Sepolia Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 999999999,\n \"rpc\": [\"https://zora-sepolia-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://999999999.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://sepolia.rpc.zora.energy\"],\n \"shortName\": \"zsep\",\n \"slip44\": 1,\n \"slug\": \"zora-sepolia-testnet\",\n \"testnet\": true\n};\n\nvar c1122334455 = {\n \"chain\": \"IPOS\",\n \"chainId\": 1122334455,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://iposlab.com\",\n \"name\": \"IPOS Network\",\n \"nativeCurrency\": {\n \"name\": \"IPOS Network Ether\",\n \"symbol\": \"IPOS\",\n \"decimals\": 18\n },\n \"networkId\": 1122334455,\n \"rpc\": [\"https://ipos-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1122334455.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.iposlab.com\", \"https://rpc2.iposlab.com\"],\n \"shortName\": \"ipos\",\n \"slug\": \"ipos-network\",\n \"testnet\": false\n};\n\nvar c1146703430 = {\n \"chain\": \"cyberdeck\",\n \"chainId\": 1146703430,\n \"explorers\": [{\n \"name\": \"CybEthExplorer\",\n \"url\": \"http://cybeth1.cyberdeck.eu:8000\",\n \"standard\": \"none\",\n \"icon\": {\n \"url\": \"ipfs://QmTvYMJXeZeWxYPuoQ15mHCS8K5EQzkMMCHQVs3GshooyR\",\n \"width\": 193,\n \"height\": 214,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmTvYMJXeZeWxYPuoQ15mHCS8K5EQzkMMCHQVs3GshooyR\",\n \"width\": 193,\n \"height\": 214,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://cyberdeck.eu\",\n \"name\": \"CyberdeckNet\",\n \"nativeCurrency\": {\n \"name\": \"Cyb\",\n \"symbol\": \"CYB\",\n \"decimals\": 18\n },\n \"networkId\": 1146703430,\n \"rpc\": [\"https://cyberdecknet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1146703430.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"http://cybeth1.cyberdeck.eu:8545\"],\n \"shortName\": \"cyb\",\n \"slug\": \"cyberdecknet\",\n \"status\": \"active\",\n \"testnet\": false\n};\n\nvar c1273227453 = {\n \"chain\": \"wan-red-ain\",\n \"chainId\": 1273227453,\n \"explorers\": [{\n \"name\": \"Blockscout\",\n \"url\": \"https://wan-red-ain.explorer.mainnet.skalenodes.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmT5KKrpNt6duU8QfwaYw3xf4ifTBPtjahpWsMi3gsFmcS\",\n \"width\": 440,\n \"height\": 600,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://dashboard.humanprotocol.org/faucet\"],\n \"infoURL\": \"https://www.humanprotocol.org\",\n \"name\": \"HUMAN Protocol\",\n \"nativeCurrency\": {\n \"name\": \"sFUEL\",\n \"symbol\": \"sFUEL\",\n \"decimals\": 18\n },\n \"networkId\": 1273227453,\n \"rpc\": [\"https://human-protocol.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1273227453.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.skalenodes.com/v1/wan-red-ain\"],\n \"shortName\": \"human-mainnet\",\n \"slug\": \"human-protocol\",\n \"testnet\": false,\n \"title\": \"HUMAN Protocol\"\n};\n\nvar c1313161554 = {\n \"chain\": \"NEAR\",\n \"chainId\": 1313161554,\n \"explorers\": [{\n \"name\": \"aurorascan.dev\",\n \"url\": \"https://aurorascan.dev\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://aurora.dev\",\n \"name\": \"Aurora Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 1313161554,\n \"rpc\": [\"https://aurora.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1313161554.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.aurora.dev\"],\n \"shortName\": \"aurora\",\n \"slug\": \"aurora\",\n \"testnet\": false\n};\n\nvar c1313161555 = {\n \"chain\": \"NEAR\",\n \"chainId\": 1313161555,\n \"explorers\": [{\n \"name\": \"aurorascan.dev\",\n \"url\": \"https://testnet.aurorascan.dev\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://aurora.dev\",\n \"name\": \"Aurora Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 1313161555,\n \"rpc\": [\"https://aurora-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1313161555.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.aurora.dev/\"],\n \"shortName\": \"aurora-testnet\",\n \"slip44\": 1,\n \"slug\": \"aurora-testnet\",\n \"testnet\": true\n};\n\nvar c1313161556 = {\n \"chain\": \"NEAR\",\n \"chainId\": 1313161556,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://aurora.dev\",\n \"name\": \"Aurora Betanet\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 1313161556,\n \"rpc\": [],\n \"shortName\": \"aurora-betanet\",\n \"slug\": \"aurora-betanet\",\n \"testnet\": false\n};\n\nvar c1350216234 = {\n \"chain\": \"parallel-stormy-spica\",\n \"chainId\": 1350216234,\n \"explorers\": [{\n \"name\": \"Blockscout\",\n \"url\": \"https://parallel-stormy-spica.explorer.mainnet.skalenodes.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://sfuel.skale.network/\"],\n \"icon\": {\n \"url\": \"ipfs://bafkreiagrt5dhgltg2kmw7hf24kslstr5h42e745luuxwp2wbg24gm6zza\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"png\"\n },\n \"name\": \"SKALE Titan Hub\",\n \"nativeCurrency\": {\n \"name\": \"sFUEL\",\n \"symbol\": \"sFUEL\",\n \"decimals\": 18\n },\n \"networkId\": 1350216234,\n \"rpc\": [\"https://skale-titan-hub.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1350216234.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.skalenodes.com/v1/parallel-stormy-spica\", \"wss://mainnet.skalenodes.com/v1/ws/parallel-stormy-spica\"],\n \"shortName\": \"titan-mainnet\",\n \"slug\": \"skale-titan-hub\",\n \"testnet\": false\n};\n\nvar c1351057110 = {\n \"chain\": \"staging-fast-active-bellatrix\",\n \"chainId\": 1351057110,\n \"explorers\": [{\n \"name\": \"Blockscout\",\n \"url\": \"https://staging-fast-active-bellatrix.explorer.staging-v3.skalenodes.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmbYYCoU2G4LUfRr9ofGowF3eatfvWv9FiPVhqKndZeqwA\",\n \"width\": 400,\n \"height\": 400,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [\"https://sfuel.skale.network/staging/chaos\"],\n \"infoURL\": \"https://docs.skale.network/develop/\",\n \"name\": \"Chaos (SKALE Testnet)\",\n \"nativeCurrency\": {\n \"name\": \"sFUEL\",\n \"symbol\": \"sFUEL\",\n \"decimals\": 18\n },\n \"networkId\": 1351057110,\n \"rpc\": [\"https://chaos-skale-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1351057110.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://staging-v3.skalenodes.com/v1/staging-fast-active-bellatrix\"],\n \"shortName\": \"chaos-tenet\",\n \"slip44\": 1,\n \"slug\": \"chaos-skale-testnet\",\n \"testnet\": true,\n \"title\": \"Chaos Testnet\"\n};\n\nvar c1380996178 = {\n \"chain\": \"RPTR\",\n \"chainId\": 1380996178,\n \"explorers\": [{\n \"name\": \"RaptorChain Explorer\",\n \"url\": \"https://explorer.raptorchain.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmQuvmiN6vM6Rqzqe1pMzDf8iZXqTtSeqCgGe5k5AyksDU\",\n \"width\": 200,\n \"height\": 200,\n \"format\": \"png\"\n }\n }],\n \"faucets\": [],\n \"features\": [{\n \"name\": \"EIP155\"\n }],\n \"icon\": {\n \"url\": \"ipfs://QmQuvmiN6vM6Rqzqe1pMzDf8iZXqTtSeqCgGe5k5AyksDU\",\n \"width\": 200,\n \"height\": 200,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://raptorchain.io\",\n \"name\": \"RaptorChain\",\n \"nativeCurrency\": {\n \"name\": \"Raptor\",\n \"symbol\": \"RPTR\",\n \"decimals\": 18\n },\n \"networkId\": 1380996178,\n \"rpc\": [\"https://raptorchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1380996178.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.raptorchain.io/web3\"],\n \"shortName\": \"rptr\",\n \"slug\": \"raptorchain\",\n \"testnet\": false\n};\n\nvar c1482601649 = {\n \"chain\": \"green-giddy-denebola\",\n \"chainId\": 1482601649,\n \"explorers\": [{\n \"name\": \"Blockscout\",\n \"url\": \"https://green-giddy-denebola.explorer.mainnet.skalenodes.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://sfuel.skale.network/\"],\n \"icon\": {\n \"url\": \"ipfs://bafybeic5eexvd34wfy4kuebcyu73qpkv3x57s54ebzjyhyjsmeuni5jwcm\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://nebulachain.io/\",\n \"name\": \"SKALE Nebula Hub\",\n \"nativeCurrency\": {\n \"name\": \"sFUEL\",\n \"symbol\": \"sFUEL\",\n \"decimals\": 18\n },\n \"networkId\": 1482601649,\n \"rpc\": [\"https://skale-nebula-hub.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1482601649.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.skalenodes.com/v1/green-giddy-denebola\", \"wss://mainnet-proxy.skalenodes.com/v1/ws/green-giddy-denebola\"],\n \"shortName\": \"nebula-mainnet\",\n \"slug\": \"skale-nebula-hub\",\n \"testnet\": false\n};\n\nvar c1517929550 = {\n \"chain\": \"staging-aware-chief-gianfar\",\n \"chainId\": 1517929550,\n \"explorers\": [{\n \"name\": \"Blockscout\",\n \"url\": \"https://staging-aware-chief-gianfar.explorer.staging-v3.skalenodes.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://sfuel.dirtroad.dev/staging\"],\n \"icon\": {\n \"url\": \"ipfs://bafkreiagrt5dhgltg2kmw7hf24kslstr5h42e745luuxwp2wbg24gm6zza\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"png\"\n },\n \"name\": \"SKALE Titan Hub Testnet\",\n \"nativeCurrency\": {\n \"name\": \"sFUEL\",\n \"symbol\": \"sFUEL\",\n \"decimals\": 18\n },\n \"networkId\": 1517929550,\n \"rpc\": [\"https://skale-titan-hub-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1517929550.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://staging-v3.skalenodes.com/v1/staging-aware-chief-gianfar\", \"wss://staging-v3.skalenodes.com/v1/ws/staging-aware-chief-gianfar\"],\n \"shortName\": \"titan-testnet\",\n \"slip44\": 1,\n \"slug\": \"skale-titan-hub-testnet\",\n \"testnet\": true\n};\n\nvar c1564830818 = {\n \"chain\": \"honorable-steel-rasalhague\",\n \"chainId\": 1564830818,\n \"explorers\": [{\n \"name\": \"Blockscout\",\n \"url\": \"https://honorable-steel-rasalhague.explorer.mainnet.skalenodes.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://sfuel.dirtroad.dev\"],\n \"icon\": {\n \"url\": \"ipfs://bafybeigyayzxvt7vosat4rtrbmhhnldgx57w2pfbutuniax7h6kswzi42m\",\n \"width\": 1637,\n \"height\": 1636,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://calypsohub.network/\",\n \"name\": \"SKALE Calypso Hub\",\n \"nativeCurrency\": {\n \"name\": \"sFUEL\",\n \"symbol\": \"sFUEL\",\n \"decimals\": 18\n },\n \"networkId\": 1564830818,\n \"rpc\": [\"https://skale-calypso-hub.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1564830818.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.skalenodes.com/v1/honorable-steel-rasalhague\"],\n \"shortName\": \"calypso-mainnet\",\n \"slug\": \"skale-calypso-hub\",\n \"testnet\": false\n};\n\nvar c1666600000 = {\n \"chain\": \"Harmony\",\n \"chainId\": 1666600000,\n \"ens\": {\n \"registry\": \"0x4cd2563118e57b19179d8dc033f2b0c5b5d69ff5\"\n },\n \"explorers\": [{\n \"name\": \"Harmony Block Explorer\",\n \"url\": \"https://explorer.harmony.one\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.harmony.one/\",\n \"name\": \"Harmony Mainnet Shard 0\",\n \"nativeCurrency\": {\n \"name\": \"ONE\",\n \"symbol\": \"ONE\",\n \"decimals\": 18\n },\n \"networkId\": 1666600000,\n \"rpc\": [\"https://harmony-shard-0.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1666600000.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.harmony.one\", \"https://a.api.s0.t.hmny.io\", \"https://api.s0.t.hmny.io\", \"https://rpc.ankr.com/harmony\", \"https://harmony.api.onfinality.io/public\", \"https://1rpc.io/one\"],\n \"shortName\": \"hmy-s0\",\n \"slip44\": 1023,\n \"slug\": \"harmony-shard-0\",\n \"testnet\": false\n};\n\nvar c1666600001 = {\n \"chain\": \"Harmony\",\n \"chainId\": 1666600001,\n \"explorers\": [{\n \"name\": \"Harmony Block Explorer\",\n \"url\": \"https://explorer.harmony.one/blocks/shard/1\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.harmony.one/\",\n \"name\": \"Harmony Mainnet Shard 1\",\n \"nativeCurrency\": {\n \"name\": \"ONE\",\n \"symbol\": \"ONE\",\n \"decimals\": 18\n },\n \"networkId\": 1666600001,\n \"rpc\": [\"https://harmony-shard-1.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1666600001.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.s1.t.hmny.io\"],\n \"shortName\": \"hmy-s1\",\n \"slip44\": 1023,\n \"slug\": \"harmony-shard-1\",\n \"testnet\": false\n};\n\nvar c1666600002 = {\n \"chain\": \"Harmony\",\n \"chainId\": 1666600002,\n \"explorers\": [{\n \"name\": \"Harmony Block Explorer\",\n \"url\": \"https://explorer.harmony.one/blocks/shard/2\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.harmony.one/\",\n \"name\": \"Harmony Mainnet Shard 2\",\n \"nativeCurrency\": {\n \"name\": \"ONE\",\n \"symbol\": \"ONE\",\n \"decimals\": 18\n },\n \"networkId\": 1666600002,\n \"rpc\": [\"https://harmony-shard-2.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1666600002.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.s2.t.hmny.io\"],\n \"shortName\": \"hmy-s2\",\n \"slip44\": 1023,\n \"slug\": \"harmony-shard-2\",\n \"status\": \"deprecated\",\n \"testnet\": false\n};\n\nvar c1666600003 = {\n \"chain\": \"Harmony\",\n \"chainId\": 1666600003,\n \"explorers\": [{\n \"name\": \"Harmony Block Explorer\",\n \"url\": \"https://explorer.harmony.one/blocks/shard/3\",\n \"standard\": \"none\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://www.harmony.one/\",\n \"name\": \"Harmony Mainnet Shard 3\",\n \"nativeCurrency\": {\n \"name\": \"ONE\",\n \"symbol\": \"ONE\",\n \"decimals\": 18\n },\n \"networkId\": 1666600003,\n \"rpc\": [\"https://harmony-shard-3.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1666600003.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.s3.t.hmny.io\"],\n \"shortName\": \"hmy-s3\",\n \"slip44\": 1023,\n \"slug\": \"harmony-shard-3\",\n \"status\": \"deprecated\",\n \"testnet\": false\n};\n\nvar c1666700000 = {\n \"chain\": \"Harmony\",\n \"chainId\": 1666700000,\n \"explorers\": [{\n \"name\": \"Harmony Testnet Block Explorer\",\n \"url\": \"https://explorer.testnet.harmony.one\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.pops.one\"],\n \"infoURL\": \"https://www.harmony.one/\",\n \"name\": \"Harmony Testnet Shard 0\",\n \"nativeCurrency\": {\n \"name\": \"ONE\",\n \"symbol\": \"ONE\",\n \"decimals\": 18\n },\n \"networkId\": 1666700000,\n \"rpc\": [\"https://harmony-testnet-shard-0.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1666700000.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.s0.b.hmny.io\"],\n \"shortName\": \"hmy-b-s0\",\n \"slug\": \"harmony-testnet-shard-0\",\n \"testnet\": true\n};\n\nvar c1666700001 = {\n \"chain\": \"Harmony\",\n \"chainId\": 1666700001,\n \"explorers\": [{\n \"name\": \"Harmony Block Explorer\",\n \"url\": \"https://explorer.testnet.harmony.one\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://faucet.pops.one\"],\n \"infoURL\": \"https://www.harmony.one/\",\n \"name\": \"Harmony Testnet Shard 1\",\n \"nativeCurrency\": {\n \"name\": \"ONE\",\n \"symbol\": \"ONE\",\n \"decimals\": 18\n },\n \"networkId\": 1666700001,\n \"rpc\": [\"https://harmony-testnet-shard-1.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1666700001.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.s1.b.hmny.io\"],\n \"shortName\": \"hmy-b-s1\",\n \"slug\": \"harmony-testnet-shard-1\",\n \"testnet\": true\n};\n\nvar c1666900000 = {\n \"chain\": \"Harmony\",\n \"chainId\": 1666900000,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://www.harmony.one/\",\n \"name\": \"Harmony Devnet Shard 0\",\n \"nativeCurrency\": {\n \"name\": \"ONE\",\n \"symbol\": \"ONE\",\n \"decimals\": 18\n },\n \"networkId\": 1666900000,\n \"rpc\": [\"https://harmony-devnet-shard-0.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1666900000.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.s0.ps.hmny.io\"],\n \"shortName\": \"hmy-ps-s0\",\n \"slug\": \"harmony-devnet-shard-0\",\n \"testnet\": false\n};\n\nvar c1666900001 = {\n \"chain\": \"Harmony\",\n \"chainId\": 1666900001,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://www.harmony.one/\",\n \"name\": \"Harmony Devnet Shard 1\",\n \"nativeCurrency\": {\n \"name\": \"ONE\",\n \"symbol\": \"ONE\",\n \"decimals\": 18\n },\n \"networkId\": 1666900001,\n \"rpc\": [\"https://harmony-devnet-shard-1.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1666900001.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://api.s1.ps.hmny.io\"],\n \"shortName\": \"hmy-ps-s1\",\n \"slug\": \"harmony-devnet-shard-1\",\n \"testnet\": false\n};\n\nvar c1918988905 = {\n \"chain\": \"RARI-T\",\n \"chainId\": 1918988905,\n \"explorers\": [],\n \"faucets\": [],\n \"features\": [],\n \"infoURL\": \"https://rarichain.org/\",\n \"name\": \"RARIchain Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 1918988905,\n \"redFlags\": [],\n \"rpc\": [\"https://rarichain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://1918988905.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.rpc.rarichain.org/http\"],\n \"shortName\": \"eth\",\n \"slug\": \"rarichain-testnet\",\n \"testnet\": true\n};\n\nvar c2021121117 = {\n \"chain\": \"HOP\",\n \"chainId\": 2021121117,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://www.DataHopper.com\",\n \"name\": \"DataHopper\",\n \"nativeCurrency\": {\n \"name\": \"DataHoppers\",\n \"symbol\": \"HOP\",\n \"decimals\": 18\n },\n \"networkId\": 2021121117,\n \"rpc\": [\"https://datahopper.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2021121117.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://23.92.21.121:8545\"],\n \"shortName\": \"hop\",\n \"slug\": \"datahopper\",\n \"testnet\": false\n};\n\nvar c2046399126 = {\n \"chain\": \"europa\",\n \"chainId\": 2046399126,\n \"explorers\": [{\n \"name\": \"Blockscout\",\n \"url\": \"https://elated-tan-skat.explorer.mainnet.skalenodes.com\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://ruby.exchange/faucet.html\", \"https://sfuel.mylilius.com/\"],\n \"icon\": {\n \"url\": \"ipfs://bafkreiezcwowhm6xjrkt44cmiu6ml36rhrxx3amcg3cfkcntv2vgcvgbre\",\n \"width\": 600,\n \"height\": 600,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://europahub.network/\",\n \"name\": \"SKALE Europa Hub\",\n \"nativeCurrency\": {\n \"name\": \"sFUEL\",\n \"symbol\": \"sFUEL\",\n \"decimals\": 18\n },\n \"networkId\": 2046399126,\n \"parent\": {\n \"type\": \"L2\",\n \"chain\": \"eip155-1\",\n \"bridges\": [{\n \"url\": \"https://ruby.exchange/bridge.html\"\n }]\n },\n \"rpc\": [\"https://skale-europa-hub.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2046399126.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.skalenodes.com/v1/elated-tan-skat\", \"wss://mainnet.skalenodes.com/v1/elated-tan-skat\"],\n \"shortName\": \"europa\",\n \"slug\": \"skale-europa-hub\",\n \"testnet\": false\n};\n\nvar c2863311531 = {\n \"chain\": \"Ancient8\",\n \"chainId\": 2863311531,\n \"explorers\": [{\n \"name\": \"a8scan-testnet\",\n \"url\": \"https://testnet.a8scan.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmSX8sHToRzyFupT8BvPQjVsegRWFYz2mdnLkVnqBFKohY\",\n \"width\": 901,\n \"height\": 901,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://ancient8.gg/\",\n \"name\": \"Ancient8 Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 2863311531,\n \"rpc\": [\"https://ancient8-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://2863311531.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc-testnet.ancient8.gg\"],\n \"shortName\": \"a8\",\n \"slip44\": 1,\n \"slug\": \"ancient8-testnet\",\n \"testnet\": true\n};\n\nvar c3125659152 = {\n \"chain\": \"PIRL\",\n \"chainId\": 3125659152,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://pirl.io\",\n \"name\": \"Pirl\",\n \"nativeCurrency\": {\n \"name\": \"Pirl Ether\",\n \"symbol\": \"PIRL\",\n \"decimals\": 18\n },\n \"networkId\": 3125659152,\n \"rpc\": [\"https://pirl.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://3125659152.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://wallrpc.pirl.io\"],\n \"shortName\": \"pirl\",\n \"slip44\": 164,\n \"slug\": \"pirl\",\n \"testnet\": false\n};\n\nvar c4216137055 = {\n \"chain\": \"OLT\",\n \"chainId\": 4216137055,\n \"explorers\": [{\n \"name\": \"OneLedger Block Explorer\",\n \"url\": \"https://frankenstein-explorer.oneledger.network\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://frankenstein-faucet.oneledger.network\"],\n \"icon\": {\n \"url\": \"ipfs://QmRhqq4Gp8G9w27ND3LeFW49o5PxcxrbJsqHbpBFtzEMfC\",\n \"width\": 225,\n \"height\": 225,\n \"format\": \"png\"\n },\n \"infoURL\": \"https://oneledger.io\",\n \"name\": \"OneLedger Testnet Frankenstein\",\n \"nativeCurrency\": {\n \"name\": \"OLT\",\n \"symbol\": \"OLT\",\n \"decimals\": 18\n },\n \"networkId\": 4216137055,\n \"rpc\": [\"https://oneledger-testnet-frankenstein.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://4216137055.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://frankenstein-rpc.oneledger.network\"],\n \"shortName\": \"frankenstein\",\n \"slip44\": 1,\n \"slug\": \"oneledger-testnet-frankenstein\",\n \"testnet\": true\n};\n\nvar c11297108099 = {\n \"chain\": \"Palm\",\n \"chainId\": 11297108099,\n \"explorers\": [{\n \"name\": \"Palm Testnet Explorer\",\n \"url\": \"https://explorer.palm-uat.xyz\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreihifvvbq6xzviygveivayogqiotdtpjvilu27bgqobduqemzeq7o4\",\n \"width\": 72,\n \"height\": 72,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://palm.io\",\n \"name\": \"Palm Testnet\",\n \"nativeCurrency\": {\n \"name\": \"PALM\",\n \"symbol\": \"PALM\",\n \"decimals\": 18\n },\n \"networkId\": 11297108099,\n \"rpc\": [\"https://palm-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://11297108099.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://palm-testnet.infura.io/v3/${INFURA_API_KEY}\"],\n \"shortName\": \"tpalm\",\n \"slip44\": 1,\n \"slug\": \"palm-testnet\",\n \"testnet\": true\n};\n\nvar c11297108109 = {\n \"chain\": \"Palm\",\n \"chainId\": 11297108109,\n \"explorers\": [{\n \"name\": \"Palm Explorer\",\n \"url\": \"https://explorer.palm.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://bafkreihifvvbq6xzviygveivayogqiotdtpjvilu27bgqobduqemzeq7o4\",\n \"width\": 72,\n \"height\": 72,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://palm.io\",\n \"name\": \"Palm\",\n \"nativeCurrency\": {\n \"name\": \"PALM\",\n \"symbol\": \"PALM\",\n \"decimals\": 18\n },\n \"networkId\": 11297108109,\n \"rpc\": [\"https://palm.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://11297108109.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://palm-mainnet.infura.io/v3/${INFURA_API_KEY}\"],\n \"shortName\": \"palm\",\n \"slug\": \"palm\",\n \"testnet\": false\n};\n\nvar c47279324479 = {\n \"chain\": \"Xai Goerli Orbit Testnet\",\n \"chainId\": 47279324479,\n \"explorers\": [{\n \"name\": \"Xai Goerli Testnet Explorer\",\n \"url\": \"https://testnet-explorer.xai-chain.net\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"features\": [],\n \"infoURL\": \"https://xai.games/\",\n \"name\": \"Xai Goerli Orbit\",\n \"nativeCurrency\": {\n \"name\": \"Xai Goerli Ether\",\n \"symbol\": \"ETH\",\n \"decimals\": 18\n },\n \"networkId\": 47279324479,\n \"redFlags\": [],\n \"rpc\": [\"https://xai-goerli-orbit.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://47279324479.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://testnet.xai-chain.net/rpc\"],\n \"shortName\": \"xai-goerli\",\n \"slug\": \"xai-goerli-orbit\",\n \"testnet\": true\n};\n\nvar c111222333444 = {\n \"chain\": \"Alphabet Network\",\n \"chainId\": 111222333444,\n \"explorers\": [{\n \"name\": \"Alphabet Explorer\",\n \"url\": \"https://scan.alphabetnetwork.org\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmfTeudwVJcu7jzySBcpD9H5ZVK66nPJKRnicxend1bxfq\",\n \"width\": 500,\n \"height\": 500,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://alphabetnetwork.org\",\n \"name\": \"Alphabet Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"ALT\",\n \"symbol\": \"ALT\",\n \"decimals\": 18\n },\n \"networkId\": 111222333444,\n \"rpc\": [\"https://alphabet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://111222333444.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://londonpublic.alphabetnetwork.org\", \"wss://londonpublic.alphabetnetwork.org/ws/\", \"https://main-rpc.com\", \"wss://main-rpc.com/ws/\"],\n \"shortName\": \"alphabet\",\n \"slug\": \"alphabet\",\n \"testnet\": false\n};\n\nvar c197710212030 = {\n \"chain\": \"Ntity\",\n \"chainId\": 197710212030,\n \"explorers\": [{\n \"name\": \"Ntity Blockscout\",\n \"url\": \"https://blockscout.ntity.io\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmSW2YhCvMpnwtPGTJAuEK2QgyWfFjmnwcrapUg6kqFsPf\",\n \"width\": 711,\n \"height\": 715,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmSW2YhCvMpnwtPGTJAuEK2QgyWfFjmnwcrapUg6kqFsPf\",\n \"width\": 711,\n \"height\": 715,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://ntity.io\",\n \"name\": \"Ntity Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"Ntity\",\n \"symbol\": \"NTT\",\n \"decimals\": 18\n },\n \"networkId\": 197710212030,\n \"rpc\": [\"https://ntity.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://197710212030.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://rpc.ntity.io\"],\n \"shortName\": \"ntt\",\n \"slug\": \"ntity\",\n \"testnet\": false\n};\n\nvar c197710212031 = {\n \"chain\": \"Ntity\",\n \"chainId\": 197710212031,\n \"explorers\": [{\n \"name\": \"Ntity Haradev Blockscout\",\n \"url\": \"https://blockscout.haradev.com\",\n \"standard\": \"EIP3091\",\n \"icon\": {\n \"url\": \"ipfs://QmSW2YhCvMpnwtPGTJAuEK2QgyWfFjmnwcrapUg6kqFsPf\",\n \"width\": 711,\n \"height\": 715,\n \"format\": \"svg\"\n }\n }],\n \"faucets\": [],\n \"icon\": {\n \"url\": \"ipfs://QmSW2YhCvMpnwtPGTJAuEK2QgyWfFjmnwcrapUg6kqFsPf\",\n \"width\": 711,\n \"height\": 715,\n \"format\": \"svg\"\n },\n \"infoURL\": \"https://ntity.io\",\n \"name\": \"Haradev Testnet\",\n \"nativeCurrency\": {\n \"name\": \"Ntity Haradev\",\n \"symbol\": \"NTTH\",\n \"decimals\": 18\n },\n \"networkId\": 197710212031,\n \"rpc\": [\"https://haradev-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://197710212031.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://blockchain.haradev.com\"],\n \"shortName\": \"ntt-haradev\",\n \"slip44\": 1,\n \"slug\": \"haradev-testnet\",\n \"testnet\": true\n};\n\nvar c383414847825 = {\n \"chain\": \"ZENIQ\",\n \"chainId\": 383414847825,\n \"explorers\": [{\n \"name\": \"zeniq-smart-chain-explorer\",\n \"url\": \"https://smart.zeniq.net\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [\"https://faucet.zeniq.net/\"],\n \"infoURL\": \"https://www.zeniq.dev/\",\n \"name\": \"Zeniq\",\n \"nativeCurrency\": {\n \"name\": \"Zeniq\",\n \"symbol\": \"ZENIQ\",\n \"decimals\": 18\n },\n \"networkId\": 383414847825,\n \"rpc\": [\"https://zeniq.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://383414847825.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://smart.zeniq.network:9545\"],\n \"shortName\": \"zeniq\",\n \"slug\": \"zeniq\",\n \"testnet\": false\n};\n\nvar c666301171999 = {\n \"chain\": \"IPDC\",\n \"chainId\": 666301171999,\n \"explorers\": [{\n \"name\": \"ipdcscan\",\n \"url\": \"https://scan.ipdc.io\",\n \"standard\": \"EIP3091\"\n }],\n \"faucets\": [],\n \"infoURL\": \"https://ipdc.io\",\n \"name\": \"PDC Mainnet\",\n \"nativeCurrency\": {\n \"name\": \"PDC\",\n \"symbol\": \"PDC\",\n \"decimals\": 18\n },\n \"networkId\": 666301171999,\n \"rpc\": [\"https://pdc.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://666301171999.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://mainnet.ipdc.io/\"],\n \"shortName\": \"ipdc\",\n \"slug\": \"pdc\",\n \"testnet\": false\n};\n\nvar c6022140761023 = {\n \"chain\": \"ETH\",\n \"chainId\": 6022140761023,\n \"explorers\": [],\n \"faucets\": [],\n \"infoURL\": \"https://github.com/Jdubedition/molereum\",\n \"name\": \"Molereum Network\",\n \"nativeCurrency\": {\n \"name\": \"Molereum Ether\",\n \"symbol\": \"MOLE\",\n \"decimals\": 18\n },\n \"networkId\": 6022140761023,\n \"rpc\": [\"https://molereum-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://6022140761023.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://molereum.jdubedition.com\"],\n \"shortName\": \"mole\",\n \"slug\": \"molereum-network\",\n \"testnet\": false\n};\n\nvar c868455272153094 = {\n \"chain\": \"GWT\",\n \"chainId\": 868455272153094,\n \"explorers\": [{\n \"name\": \"GWScan Block Explorer\",\n \"url\": \"https://v1.aggron.gwscan.com\",\n \"standard\": \"none\"\n }],\n \"faucets\": [\"https://homura.github.io/light-godwoken\"],\n \"infoURL\": \"https://www.nervos.org\",\n \"name\": \"Godwoken Testnet (V1)\",\n \"nativeCurrency\": {\n \"name\": \"CKB\",\n \"symbol\": \"CKB\",\n \"decimals\": 8\n },\n \"networkId\": 868455272153094,\n \"rpc\": [\"https://godwoken-testnet-v1-gw-testnet-v1-deprecated.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://868455272153094.rpc.thirdweb.com/${THIRDWEB_API_KEY}\", \"https://godwoken-testnet-web3-v1-rpc.ckbapp.dev\"],\n \"shortName\": \"gw-testnet-v1-deprecated\",\n \"slip44\": 1,\n \"slug\": \"godwoken-testnet-v1-gw-testnet-v1-deprecated\",\n \"status\": \"deprecated\",\n \"testnet\": true\n};\n\nconst defaultOptions = {\n mode: \"http\"\n};\n\n/**\n * Construct the list of RPC URLs given a specific chain config. Format any RPC URLs\n * with necessary API keys.\n *\n * @param chain - The chain config to assemble RPC URLs from\n * @param options - Options to configure the RPC URLs\n * @returns The list of RPC URLs for the chain\n */\nfunction getChainRPCs(chain, options) {\n const {\n thirdwebApiKey,\n alchemyApiKey,\n infuraApiKey,\n mode\n } = {\n ...defaultOptions,\n ...options\n };\n const processedRPCs = [];\n chain.rpc.forEach(rpc => {\n // exclude RPC if mode mismatch\n if (mode === \"http\" && !rpc.startsWith(\"http\")) {\n return;\n }\n if (mode === \"ws\" && !rpc.startsWith(\"ws\")) {\n return;\n }\n\n // Replace API_KEY placeholder with value\n if (thirdwebApiKey && rpc.includes(\"${THIRDWEB_API_KEY}\")) {\n processedRPCs.push(rpc.replace(\"${THIRDWEB_API_KEY}\", thirdwebApiKey));\n } else if (infuraApiKey && rpc.includes(\"${INFURA_API_KEY}\")) {\n processedRPCs.push(rpc.replace(\"${INFURA_API_KEY}\", infuraApiKey));\n } else if (alchemyApiKey && rpc.includes(\"${ALCHEMY_API_KEY}\")) {\n processedRPCs.push(rpc.replace(\"${ALCHEMY_API_KEY}\", alchemyApiKey));\n }\n\n // exclude RPCs with unknown placeholder\n else if (rpc.includes(\"${\")) {\n return;\n }\n\n // add as is\n else {\n processedRPCs.push(rpc);\n }\n });\n if (processedRPCs.length === 0) {\n throw new Error(`No RPC available for chainId \"${chain.chainId}\" with mode ${mode}`);\n }\n return processedRPCs;\n}\n\n/**\n * Construct the list of RPC URLs given a specific chain config. Format any RPC URLs\n * with necessary clientId/secretKey and returns the first valid one.\n *\n * @param chain - The chain config to assemble RPC URLs from\n * @param clientId - The client id to use for the RPC URL\n * @returns The first valid RPC URL for the chain\n */\nfunction getValidChainRPCs(chain, clientId) {\n let mode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : \"http\";\n const processedRPCs = [];\n chain.rpc.forEach(rpc => {\n // exclude RPC if mode mismatch\n if (mode === \"http\" && !rpc.startsWith(\"http\")) {\n return;\n }\n if (mode === \"ws\" && !rpc.startsWith(\"ws\")) {\n return;\n }\n\n // Replace API_KEY placeholder with value\n if (rpc.includes(\"${THIRDWEB_API_KEY}\")) {\n if (clientId) {\n processedRPCs.push(rpc.replace(\"${THIRDWEB_API_KEY}\", clientId) + (typeof globalThis !== \"undefined\" && \"APP_BUNDLE_ID\" in globalThis ?\n // @ts-ignore\n `/?bundleId=${globalThis.APP_BUNDLE_ID}` : \"\"));\n } else {\n // if no client id, let it through with empty string\n // if secretKey is present, it will be used in header\n // if none are passed, will have reduced access\n processedRPCs.push(rpc.replace(\"${THIRDWEB_API_KEY}\", \"\"));\n }\n }\n\n // exclude RPCs with unknown placeholder\n else if (rpc.includes(\"${\")) {\n return;\n }\n\n // add as is\n else {\n processedRPCs.push(rpc);\n }\n });\n if (processedRPCs.length === 0) {\n throw new Error(`No RPC available for chainId \"${chain.chainId}\" with mode ${mode}`);\n }\n return processedRPCs;\n}\n\n/**\n * Get the highest priority RPC URL for a specific chain\n *\n * @param chain - The chain config to get the RPC URL for\n * @param options - Options to configure the RPC URL\n * @returns The RPC URL for the chain\n *\n * @internal\n */\nfunction getChainRPC(chain, options) {\n return getChainRPCs(chain, options)[0];\n}\nfunction minimizeChain(chain) {\n const [firstRpc] = chain.rpc;\n return {\n name: chain.name,\n chain: chain.chain,\n rpc: [firstRpc],\n nativeCurrency: chain.nativeCurrency,\n shortName: chain.shortName,\n chainId: chain.chainId,\n testnet: chain.testnet,\n slug: chain.slug,\n icon: chain.icon\n };\n}\nfunction configureChain(chain, chainConfig) {\n let additionalRPCs = [];\n if (chainConfig?.rpc) {\n if (typeof chainConfig.rpc === \"string\") {\n additionalRPCs = [chainConfig.rpc];\n } else {\n additionalRPCs = chainConfig.rpc;\n }\n }\n // prepend additional RPCs to the chain's RPCs\n return {\n ...chain,\n rpc: [...additionalRPCs, ...chain.rpc]\n };\n}\n\n/**\n *\n * use the clientId and return a new chain object with updated RPCs\n */\nfunction updateChainRPCs(chain, clientId) {\n try {\n return {\n ...chain,\n rpc: getValidChainRPCs(chain, clientId)\n };\n } catch (error) {\n return chain;\n }\n}\n\n// cache of chainId -> Chain\nconst chainCache = {};\n// cache of slug -> chainId\nconst slugToChainId = {};\nasync function fetchChain(chainIdOrSlug) {\n if (typeof chainIdOrSlug === \"string\" && chainIdOrSlug in slugToChainId) {\n return chainCache[slugToChainId[chainIdOrSlug]];\n } else if (typeof chainIdOrSlug === \"number\" && chainIdOrSlug in chainCache) {\n return chainCache[chainIdOrSlug];\n }\n const res = await fetch(`https://api.thirdweb.com/v1/chains/${chainIdOrSlug}`);\n if (!res.ok) {\n console.debug(\"[chains] fetchChain() failed\", res.status, res.statusText);\n return null;\n }\n try {\n const json = await res.json();\n if (json.error) {\n console.debug(\"[chains] fetchChain() error\", json.error);\n return null;\n }\n const chain = json.data;\n // store the chain in chainCache\n chainCache[chain.chainId] = chain;\n // store the slug<->chainId in slugToChainId\n slugToChainId[chain.slug] = chain.chainId;\n return json.data;\n } catch (err) {\n console.debug(\"[chains] fetchChain() failed\", err);\n return null;\n }\n}\nconst fetchChainsCache = {};\nasync function fetchChains(options) {\n // cache key is based on limit and offset (options)\n const cacheKey = `l:${options?.limit ?? 0}o:${options?.offset ?? 0}`;\n if (cacheKey in fetchChainsCache) {\n return fetchChainsCache[cacheKey];\n }\n const url = new URL(`https://api.thirdweb.com/v1/chains`);\n if (options?.limit && options.limit >= 1) {\n url.searchParams.append(\"limit\", options.limit.toString());\n }\n if (options?.offset && options.offset >= 1) {\n url.searchParams.append(\"offset\", options.offset.toString());\n }\n const res = await fetch(url);\n if (!res.ok) {\n console.debug(\"[chains] fetchChain() failed\", res.status, res.statusText);\n return null;\n }\n try {\n const json = await res.json();\n if (json.error) {\n console.debug(\"[chains] fetchChain() error\", json.error);\n return null;\n }\n fetchChainsCache[cacheKey] = json.data;\n return json.data;\n } catch (err) {\n console.debug(\"[chains] fetchChain() failed\", err);\n return null;\n }\n}\n\n/**\n *\n * @param chainId - the chainId of the chain to resolve\n * @returns A Promise that resolves to the Chain object\n * @throws if the chainId is not found\n */\nasync function getChainByChainIdAsync(chainId) {\n const chain = await fetchChain(chainId);\n if (!chain) {\n throw new Error(`Chain with chainId \"${chainId}\" not found`);\n }\n return chain;\n}\n\n/**\n *\n * @param slug - the slug of the chain to resolve\n * @returns A Promise that resolves to the Chain object\n * @throws if the slug is not found\n */\nasync function getChainBySlugAsync(slug) {\n const chain = await fetchChain(slug);\n if (!chain) {\n throw new Error(`Chain with slug \"${slug}\" not found`);\n }\n return chain;\n}\n\nconst defaultChains = [c1, c5, c8453, c84531, c137, c80001, c42161, c421613, c10, c420, c56, c97, c250, c4002, c43114, c43113, c1337];\n\n/**\n * @deprecated use `fetchChains()` instead\n */\n// @ts-expect-error - TODO: fix this later\nconst allChains = [c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61, c62, c63, c64, c65, c66, c67, c68, c69, c70, c71, c72, c73, c74, c75, c76, c77, c78, c79, c80, c81, c82, c83, c84, c85, c86, c87, c88, c89, c90, c91, c92, c93, c94, c95, c96, c97, c98, c99, c100, c101, c102, c103, c104, c105, c106, c107, c108, c109, c110, c111, c112, c113, c114, c115, c116, c117, c118, c119, c120, c121, c122, c123, c124, c125, c126, c127, c128, c131, c134, c135, c136, c137, c138, c139, c141, c142, c144, c148, c150, c151, c152, c153, c154, c155, c156, c160, c161, c162, c163, c165, c167, c168, c169, c170, c172, c180, c186, c188, c189, c193, c195, c196, c197, c198, c199, c200, c201, c204, c206, c207, c208, c210, c211, c212, c214, c217, c218, c220, c222, c225, c226, c230, c236, c238, c242, c246, c248, c250, c252, c255, c256, c258, c259, c262, c269, c271, c274, c280, c288, c291, c295, c296, c297, c298, c300, c301, c303, c309, c311, c313, c314, c321, c322, c324, c333, c335, c336, c338, c361, c363, c364, c365, c369, c371, c385, c399, c400, c401, c408, c411, c416, c418, c420, c424, c427, c428, c443, c444, c456, c462, c463, c499, c500, c501, c512, c513, c516, c520, c529, c530, c534, c542, c555, c558, c568, c570, c571, c588, c592, c595, c596, c597, c599, c600, c601, c614, c634, c647, c648, c653, c654, c666, c667, c668, c669, c686, c700, c707, c708, c710, c719, c721, c727, c740, c741, c742, c766, c776, c777, c786, c787, c788, c789, c800, c803, c808, c813, c814, c818, c820, c821, c841, c842, c859, c868, c876, c877, c880, c882, c888, c900, c901, c902, c903, c909, c910, c917, c919, c927, c940, c941, c942, c943, c956, c957, c963, c970, c971, c972, c977, c980, c985, c989, c990, c997, c998, c999, c1000, c1001, c1003, c1004, c1007, c1008, c1010, c1012, c1022, c1023, c1024, c1028, c1030, c1031, c1038, c1039, c1071, c1072, c1073, c1079, c1080, c1088, c1089, c1099, c1101, c1107, c1108, c1111, c1112, c1115, c1116, c1117, c1130, c1131, c1133, c1138, c1139, c1140, c1149, c1170, c1177, c1197, c1201, c1202, c1213, c1214, c1229, c1230, c1231, c1234, c1243, c1244, c1246, c1248, c1252, c1280, c1284, c1285, c1286, c1287, c1288, c1291, c1294, c1297, c1311, c1314, c1319, c1320, c1337, c1338, c1339, c1343, c1353, c1369, c1379, c1388, c1392, c1402, c1422, c1433, c1440, c1442, c1452, c1455, c1501, c1506, c1507, c1515, c1559, c1582, c1618, c1620, c1657, c1662, c1663, c1688, c1701, c1707, c1708, c1718, c1773, c1777, c1804, c1807, c1818, c1819, c1821, c1856, c1875, c1881, c1890, c1891, c1898, c1904, c1907, c1908, c1909, c1911, c1912, c1945, c1951, c1954, c1967, c1969, c1970, c1971, c1972, c1975, c1984, c1985, c1986, c1987, c1994, c1995, c1998, c2000, c2001, c2002, c2008, c2009, c2016, c2018, c2019, c2020, c2021, c2022, c2023, c2025, c2031, c2032, c2035, c2037, c2038, c2043, c2044, c2047, c2048, c2049, c2077, c2088, c2089, c2100, c2101, c2109, c2121, c2122, c2124, c2137, c2138, c2151, c2152, c2153, c2154, c2199, c2202, c2203, c2213, c2221, c2222, c2223, c2241, c2300, c2306, c2309, c2323, c2330, c2332, c2357, c2358, c2399, c2400, c2415, c2458, c2468, c2484, c2522, c2559, c2569, c2606, c2611, c2612, c2613, c2625, c2710, c2718, c2828, c2888, c2999, c3000, c3001, c3003, c3011, c3031, c3068, c3100, c3102, c3141, c3269, c3270, c3306, c3331, c3333, c3334, c3400, c3434, c3500, c3501, c3601, c3602, c3636, c3637, c3639, c3666, c3690, c3693, c3698, c3699, c3701, c3737, c3797, c3885, c3888, c3889, c3912, c3939, c3966, c3967, c3999, c4000, c4001, c4002, c4003, c4051, c4061, c4062, c4078, c4090, c4096, c4099, c4102, c4139, c4141, c4145, c4157, c4181, c4201, c4242, c4243, c4328, c4337, c4400, c4444, c4460, c4689, c4690, c4759, c4777, c4893, c4905, c4918, c4919, c4999, c5000, c5001, c5002, c5003, c5005, c5165, c5169, c5177, c5197, c5234, c5290, c5315, c5353, c5522, c5551, c5553, c5555, c5611, c5616, c5678, c5700, c5729, c5758, c5777, c5851, c5869, c6065, c6066, c6102, c6118, c6119, c6363, c6502, c6552, c6565, c6626, c6660, c6661, c6666, c6688, c6779, c6789, c6969, c6999, c7000, c7001, c7027, c7070, c7100, c7118, c7171, c7331, c7332, c7341, c7484, c7518, c7575, c7576, c7668, c7672, c7700, c7701, c7771, c7777, c7860, c7878, c7895, c7979, c8000, c8001, c8029, c8080, c8081, c8082, c8086, c8087, c8098, c8131, c8132, c8133, c8134, c8135, c8136, c8181, c8192, c8194, c8217, c8272, c8285, c8387, c8453, c8654, c8655, c8668, c8723, c8724, c8726, c8727, c8738, c8768, c8848, c8880, c8881, c8882, c8883, c8888, c8889, c8898, c8899, c8989, c8995, c9000, c9001, c9012, c9100, c9170, c9223, c9339, c9527, c9528, c9559, c9700, c9728, c9768, c9779, c9790, c9792, c9818, c9819, c9888, c9977, c9980, c9990, c9996, c9997, c9999, c10000, c10001, c10024, c10081, c10086, c10101, c10200, c10201, c10242, c10243, c10248, c10395, c10507, c10508, c10671, c10823, c10946, c10947, c11110, c11111, c11115, c11119, c11235, c11437, c11612, c11888, c11891, c12009, c12035, c12051, c12052, c12123, c12306, c12321, c12345, c12611, c12715, c12890, c13000, c13308, c13337, c13371, c13381, c13473, c13812, c14000, c14853, c15003, c15535, c15551, c15555, c15557, c16000, c16001, c16507, c16688, c16718, c16888, c17000, c17001, c17026, c17171, c17180, c17777, c18000, c18105, c18122, c18159, c18181, c18686, c19011, c19683, c19845, c20001, c20141, c20729, c20736, c20948, c21337, c21816, c21912, c22023, c22040, c22222, c22324, c22776, c23006, c23118, c23294, c23295, c23812, c23888, c23934, c24484, c24734, c25888, c25925, c26026, c26600, c26863, c28528, c29548, c30067, c30103, c30891, c31102, c31223, c31224, c31337, c31415, c32520, c32659, c32769, c32990, c33101, c33210, c33333, c33385, c33469, c33909, c34443, c35011, c35395, c35441, c35443, c35730, c36695, c36908, c37195, c38400, c38401, c39142, c39797, c39815, c40542, c40798, c41500, c42069, c42161, c42170, c42220, c42261, c42262, c42355, c42451, c42766, c42801, c42888, c43110, c43113, c43114, c43288, c43851, c44444, c44787, c44808, c45000, c46688, c47805, c49049, c49088, c49797, c50001, c50005, c50006, c50021, c51161, c51178, c51712, c51740, c52014, c53935, c54211, c54321, c55004, c55555, c55556, c56288, c56789, c56914, c57000, c57522, c58008, c59069, c59140, c59144, c59971, c60000, c60001, c60002, c60103, c60841, c61800, c61803, c61916, c62278, c62320, c62621, c63000, c63001, c63079, c65450, c66988, c67390, c67588, c68770, c69399, c69420, c69740, c70000, c70001, c70002, c70103, c70466, c71111, c71393, c71401, c71402, c72605, c72992, c73799, c73927, c74356, c75000, c75817, c76950, c77238, c77612, c77777, c78110, c78281, c78430, c78431, c78432, c78933, c79879, c80001, c80182, c80375, c81041, c81079, c81341, c81342, c81343, c81351, c81352, c81353, c81361, c81362, c81363, c81720, c82459, c82807, c83862, c84531, c84532, c84886, c85449, c88002, c88880, c88882, c88883, c88888, c90210, c91002, c91003, c91715, c91735, c92001, c92850, c94158, c94918, c96970, c97288, c98540, c99099, c99998, c99999, c100000, c100001, c100002, c100003, c100004, c100005, c100006, c100007, c100008, c100009, c100010, c100100, c101010, c103090, c108801, c110000, c110001, c110002, c110003, c110004, c110005, c110006, c110007, c110008, c111000, c111111, c112358, c123456, c128123, c131419, c132902, c142857, c151221, c167004, c167005, c167006, c167007, c167008, c188710, c188881, c200101, c200202, c200625, c201018, c201030, c201804, c202020, c202212, c202624, c204005, c210425, c220315, c221230, c221231, c224168, c224422, c224433, c230315, c234666, c246529, c246785, c247253, c256256, c266256, c271271, c281121, c314159, c330844, c331769, c331771, c333331, c333333, c333666, c333777, c333888, c333999, c355113, c363636, c373737, c381931, c381932, c404040, c420420, c420666, c420692, c421611, c421613, c421614, c424242, c431140, c432201, c432204, c444900, c471100, c473861, c474142, c512512, c513100, c534351, c534352, c534353, c534354, c534849, c535037, c622277, c641230, c651940, c660279, c660868, c666666, c666888, c751230, c761412, c776877, c800001, c827431, c846000, c855456, c879151, c888888, c894538, c900000, c910000, c912559, c920000, c920001, c923018, c955305, c988207, c993535, c1127469, c1261120, c1313114, c1313500, c1337702, c1337802, c1337803, c1440001, c1731313, c2021398, c2099156, c2203181, c2206132, c2611555, c3141592, c3441005, c4000003, c4281033, c5167003, c5201420, c5555555, c5555558, c7225878, c7355310, c7668378, c7762959, c7777777, c8007736, c8080808, c8794598, c8888881, c8888888, c9322252, c9322253, c10067275, c10101010, c11155111, c11155420, c13371337, c14288640, c16658437, c18289463, c20180430, c20181205, c20201022, c20482050, c22052002, c27082017, c27082022, c28945486, c29032022, c31415926, c35855456, c43214913, c61717561, c65010000, c65010001, c65100000, c65100001, c68840142, c88888888, c99415706, c192837465, c222000222, c245022926, c245022934, c245022940, c278611351, c311752642, c333000333, c344106930, c356256156, c476158412, c486217935, c503129905, c999999999, c1122334455, c1146703430, c1273227453, c1313161554, c1313161555, c1313161556, c1350216234, c1351057110, c1380996178, c1482601649, c1517929550, c1564830818, c1666600000, c1666600001, c1666600002, c1666600003, c1666700000, c1666700001, c1666900000, c1666900001, c1918988905, c2021121117, c2046399126, c2863311531, c3125659152, c4216137055, c11297108099, c11297108109, c47279324479, c111222333444, c197710212030, c197710212031, c383414847825, c666301171999, c6022140761023, c868455272153094];\nlet _chainsById;\nlet _chainIdsBySlug;\nfunction getChainsById() {\n if (_chainsById) {\n return _chainsById;\n }\n _chainsById = {};\n allChains.forEach(chain => {\n _chainsById[chain.chainId] = chain;\n });\n return _chainsById;\n}\nfunction getChainIdsBySlug() {\n if (_chainIdsBySlug) {\n return _chainIdsBySlug;\n }\n _chainIdsBySlug = {};\n allChains.forEach(chain => {\n _chainIdsBySlug[chain.slug] = chain.chainId;\n });\n return _chainIdsBySlug;\n}\nfunction isValidChainId(chainId) {\n const chainsById = getChainsById();\n return chainId in chainsById;\n}\nfunction isValidChainSlug(slug) {\n const chainIdsBySlug = getChainIdsBySlug();\n return slug in chainIdsBySlug;\n}\n\n/**\n * @deprecated use `getChainByChainIdAsync()` instead\n */\nfunction getChainByChainId(chainId) {\n if (isValidChainId(chainId)) {\n const chainsById = getChainsById();\n return chainsById[chainId];\n }\n throw new Error(`Chain with chainId \"${chainId}\" not found`);\n}\n\n/**\n * @deprecated use `getChainBySlugAsync()` instead\n */\nfunction getChainBySlug(slug) {\n if (isValidChainSlug(slug)) {\n const chainIdsBySlug = getChainIdsBySlug();\n const chainsById = getChainsById();\n return chainsById[chainIdsBySlug[slug]];\n }\n throw new Error(`Chain with slug \"${slug}\" not found`);\n}\n\nexport { c595 as AcalaMandalaTestnetTc9, c787 as AcalaNetwork, c597 as AcalaNetworkTestnet, c7576 as AdilChainV2, c123456 as AdilDevnet, c7575 as AdilTestnet, c84886 as AerieNetwork, c788 as AerochainTestnet, c9990 as AgungNetwork, c1319 as Aia, c1320 as AiaTestnet, c168 as AiozNetwork, c4102 as AiozNetworkTestnet, c16718 as Airdao, c22040 as AirdaoTestnet, c200625 as Akroma, c201018 as Alaya, c201030 as AlayaDevTestnet, c2089 as Algol, c651940 as All, c8738 as AlphNetwork, c111222333444 as Alphabet, c2088 as Altair, c2330 as Altcoinchain, c420692 as AlteriumL2Testnet, c9997 as AltlayerTestnet, c4000003 as AltlayerZeroGasNetwork, c3797 as Alveychain, c1314 as Alyx, c135 as AlyxChainTestnet, c8134 as Amana, c81342 as AmanaMixnet, c81343 as AmanaPrivnet, c81341 as AmanaTestnet, c880 as AmbrosChain, c180 as AmeChain, c78430 as AmplifySubnet, c1388 as Amstar, c1138 as AmstarTestnet, c2863311531 as Ancient8Testnet, c14288640 as Anduschain, c2202 as Antofy, c23006 as AntofyTestnet, c1701 as AnytypeEvmChain, c61717561 as Aquachain, c42161 as Arbitrum, c421613 as ArbitrumGoerli, c42170 as ArbitrumNova, c200 as ArbitrumOnXdai, c421611 as ArbitrumRinkeby, c421614 as ArbitrumSepolia, c1243 as Arc, c1244 as ArcTestnet, c118 as ArcologyTestnet, c5616 as ArcturusChainTestnet, c7895 as ArdeniumAthena, c463 as AreonNetwork, c462 as AreonNetworkTestnet, c2309 as Arevia, c160 as ArmoniaEvaChain, c161 as ArmoniaEvaChainTestnet, c10242 as Arthera, c10243 as ArtheraTestnet, c246529 as ArtisSigma1, c246785 as ArtisTestnetTau1, c456 as ArzioChain, c592 as Astar, c12611 as AstarZkevm, c11110 as Astra, c11115 as AstraTestnet, c912559 as AstriaEvmDusknet, c1971 as Atelier, c1620 as Atheios, c43110 as Athereum, c167 as AtoshiTestnet, c1313161554 as Aurora, c1313161556 as AuroraBetanet, c1313161555 as AuroraTestnet, c45000 as AutobahnNetwork, c65010001 as AutonityBakerlooBaradaTestnet, c65010000 as AutonityBakerlooThamesTestnet, c65100001 as AutonityPiccadillyBaradaTestnet, c65100000 as AutonityPiccadillyThamesTestnet, c28945486 as AuxiliumNetwork, c43114 as Avalanche, c43113 as AvalancheFuji, c33333 as Aves, c333331 as AvesTestnet, c634 as Avocado, c61800 as AxelchainDevNet, c5165 as Bahamut, c876 as BandaiNamcoResearchVerse, c8453 as Base, c84531 as BaseGoerli, c84532 as BaseSepoliaTestnet, c1515 as BeagleMessagingChain, c4337 as Beam, c13337 as BeamTestnet, c535037 as BeanecoSmartchain, c641230 as BearNetworkChain, c751230 as BearNetworkChainTestnet, c818 as BeoneChain, c2022 as BeresheetBereevmTestnet, c9012 as Berylbit, c90210 as BeverlyHills, c1501 as Bevm, c3068 as Bifrost, c49088 as BifrostTestnet, c2137 as Bigshortbets, c56 as Binance, c97 as BinanceTestnet, c198 as Bitchain, c1907 as Bitcichain, c1908 as BitcichainTestnet, c8086 as BitcoinChain, c2203 as BitcoinEvm, c355113 as BitfinityNetworkTestnet, c32520 as Bitgert, c188710 as BiticaChain, c4099 as Bitindi, c4096 as BitindiTestnet, c96 as BitkubChain, c25925 as BitkubChainTestnet, c210 as Bitnet, c7171 as Bitrock, c7771 as BitrockTestnet, c3690 as Bittex, c199 as BittorrentChain, c1028 as BittorrentChainTestnet, c2999 as Bityuan, c4999 as BlackfortExchangeNetwork, c4777 as BlackfortExchangeNetworkTestnet, c238 as Blast, c23888 as BlastTestnet, c12321 as BlgTestnet, c1343 as BlitzSubnet, c10101 as BlockchainGenesis, c707 as BlockchainStation, c708 as BlockchainStationTestnet, c8272 as BlocktonBlockchain, c879151 as Blocx, c8995 as Bloxberg, c727 as Blucrates, c1108 as Blxq, c1107 as BlxqTestnet, c188 as Bmc, c189 as BmcTestnet, c43288 as BobaAvax, c56288 as BobaBnb, c97288 as BobaBnbOld, c9728 as BobaBnbTestnet, c288 as BobaNetwork, c2888 as BobaNetworkGoerliTestnet, c28 as BobaNetworkRinkebyTestnet, c1297 as BobabaseTestnet, c1294 as Bobabeam, c4328 as BobafujiTestnet, c301 as Bobaopera, c4051 as BobaoperaTestnet, c2300 as BombChain, c2399 as BombChainTestnet, c1898 as BonNetwork, c2151 as Bosagora, c3637 as Botanix, c3636 as BotanixTestnet, c12123 as BrcChain, c108801 as Brochain, c1039 as Bronos, c1038 as BronosTestnet, c21912 as Bsl, c1657 as Btachain, c963 as Btc20SmartChain, c19845 as BtcixNetwork, c1582 as BubsTestnet, c78431 as BulletinSubnet, c820 as Callisto, c20729 as CallistoTestnet, c821 as CallistoTestnetDeprecated, c95 as Camdl, c20001 as Camelark, c500 as CaminoCChain, c534 as Candle, c7700 as Canto, c7701 as CantoTesnet, c740 as CantoTestnet, c3003 as Canxium, c9790 as CarbonEvm, c9792 as CarbonEvmTestnet, c6102 as CascadiaTestnet, c2032 as Catalyst, c1618 as CatecoinChain, c42220 as Celo, c44787 as CeloAlfajoresTestnet, c62320 as CeloBaklavaTestnet, c21337 as CennznetAzalea, c3001 as CennznetNikau, c3000 as CennznetRata, c2031 as Centrifuge, c30103 as CeriumTestnet, c5555 as ChainVerse, c1351057110 as ChaosSkaleTestnet, c777 as Cheapeth, c88888 as ChilizChain, c88880 as ChilizScovilleTestnet, c1353 as CicChain, c1252 as CicChainTestnet, c31223 as Cloudtx, c31224 as CloudtxTestnet, c33210 as CloudverseSubnet, c2009 as Cloudwalk, c2008 as CloudwalkTestnet, c1023 as CloverTestnet, c1024 as ClvParachain, c256256 as Cmp, c512512 as CmpTestnet, c9223 as Codefin, c2828 as CohanSTestnet1, c57522 as CohanTest, c70466 as CohanTest3, c36695 as CohanYoloTestnet, c112 as Coinbit, c52 as CoinexSmartChain, c53 as CoinexSmartChainTestnet, c501 as ColumbusTestNetwork, c9980 as Combo, c91715 as ComboTestnet, c6779 as Compverse, c188881 as CondorTestNetwork, c69420 as Condrieu, c78432 as ConduitSubnet, c224433 as ConetHolesky, c224422 as ConetSeboliaTestnet, c1030 as ConfluxEspace, c71 as ConfluxEspaceTestnet, c38400 as Connectormanager, c38401 as ConnectormanagerRobin, c371 as ConstaTestnet, c1116 as CoreBlockchain, c1115 as CoreBlockchainTestnet, c67588 as CosmicChain, c44 as CrabNetwork, c4400 as CreditSmartChain, c13308 as CreditSmartChainCredit, c25 as Cronos, c338 as CronosTestnet, c3737 as Crossbell, c4157 as CrossfiTestnet, c193 as CryptoEmergency, c10823 as Cryptocoinpay, c103090 as Crystaleum, c1455 as CtexScanBlockchain, c1818 as CubeChain, c1819 as CubeChainTestnet, c827431 as Curve, c1146703430 as Cyberdecknet, c85449 as Cybertrust, c6661 as Cybria, c6666 as CybriaTestnet, c1951 as DChain, c46 as DarwiniaNetwork, c43 as DarwiniaPangolinTestnet, c45 as DarwiniaPangoroTestnet, c2021121117 as Datahopper, c142 as DaxChain, c67 as DbchainTestnet, c136 as Deamchain, c236 as DeamchainTestnet, c116 as Debank, c2021398 as DebankTestnet, c115 as DebankTestnetDeprecated, c3306 as DebounceSubnetTestnet, c910 as DecentraboneLayer1Testnet, c124 as DecentralizedWeb, c75 as DecimalSmartChain, c202020 as DecimalSmartChainTestnet, c138 as DefiOracleMeta, c2138 as DefiOracleMetaTestnet, c1130 as DefichainEvmNetwork, c1131 as DefichainEvmNetworkTestnet, c1133 as DefimetachainChangiTestnet, c113 as Dehvo, c100100 as DeprecatedChi, c2357 as DeprecatedKromaSepolia, c432204 as DexalotSubnet, c432201 as DexalotSubnetTestnet, c1954 as DexillaTestnet, c877 as DexitNetwork, c53935 as DfkChain, c335 as DfkChainTest, c6363 as DigitSoulSmartChain, c363636 as DigitSoulSmartChain2, c15 as DiodePrenet, c13 as DiodeTestnetStaging, c68770 as Dm2Verse, c855456 as Dodao, c1117 as Dogcoin, c9339 as DogcoinTestnet, c2000 as Dogechain, c568 as DogechainTestnet, c9888 as Dogelayer, c1248 as Dogether, c61916 as DokenSuperChain, c7979 as DosChain, c1311 as DosFujiSubnet, c3939 as DosTesnet, c512 as DoubleAChain, c513 as DoubleAChainTestnet, c2611555 as DpuChain, c3912 as DracNetwork, c8387 as DraconesFinancialServices, c78281 as DragonflyHexapod, c3269 as DubxcoinNetwork, c3270 as DubxcoinTestnet, c36 as Dxchain, c72 as DxchainTestnet, c3966 as Dyno, c3967 as DynoTestnet, c8087 as EDollar, c2306 as EbroNetwork, c2100 as Ecoball, c2101 as EcoballTestnetEspuma, c63000 as Ecredits, c63001 as EcreditsTestnet, c988207 as EcroxChain, c1995 as EdexaTestnet, c2021 as EdgewareEdgeevm, c271 as Egoncoin, c271271 as EgoncoinTestnet, c1994 as Ekta, c22 as ElaDidSidechain, c23 as ElaDidSidechainTestnet, c20 as ElastosSmartChain, c21 as ElastosSmartChainTestnet, c1967 as Eleanor, c52014 as Electroneum, c5201420 as ElectroneumTestnet, c990 as Eliberty, c99099 as ElibertyTestnet, c7027 as EllaTheHeart, c64 as Ellaism, c955305 as EluvioContentFabric, c1339 as Elysium, c1338 as ElysiumTestnet, c3693 as EmpireNetwork, c648 as EnduranceSmartChain, c39797 as Energi, c49797 as EnergiTestnet, c246 as EnergyWebChain, c73799 as EnergyWebVoltaTestnet, c131 as EngramTestnet, c48 as EnnothemProterozoic, c49 as EnnothemTestnetPioneer, c1214 as Enterchain, c119 as Enuls, c120 as EnulsTestnet, c59 as EosEvmLegacy, c17777 as EosEvmNetwork, c15557 as EosEvmNetworkTestnet, c5197 as Eraswap, c1 as Ethereum, c61 as EthereumClassic, c513100 as EthereumFair, c1987 as Ethergem, c101 as Etherinc, c128123 as EtherlinkTestnet, c111 as EtherliteChain, c31102 as EthersocialNetwork, c1313114 as EthoProtocol, c61803 as Etica, c131419 as EtndChainS, c1008 as Eurus, c1984 as EurusTestnet, c2213 as Evanesco, c1201 as EvanescoTestnet, c9001 as Evmos, c9000 as EvmosTestnet, c1010 as EvriceNetwork, c22052002 as Excelon, c27082022 as ExcoincialChain, c27082017 as ExcoincialChainVoltaTestnet, c2109 as ExosamaNetwork, c2 as ExpanseNetwork, c1229 as ExzoNetwork, c2612 as EzchainCChain, c2613 as EzchainCChainTestnet, c530 as FXCoreNetwork, c127 as Factory127, c868 as FantasiaChain, c250 as Fantom, c4002 as FantomTestnet, c4090 as FastexChainBahamutOasisTestnet, c424242 as FastexChainTestnet, c26026 as FerrumTestnet, c12306 as Fibonacci, c314 as Filecoin, c3141592 as FilecoinButterflyTestnet, c314159 as FilecoinCalibrationTestnet, c3141 as FilecoinHyperspaceTestnet, c31415926 as FilecoinLocalTestnet, c31415 as FilecoinWallabyTestnet, c2152 as Findora, c2154 as FindoraForge, c2153 as FindoraTestnet, c529 as Firechain, c5290 as FirechainOld, c814 as FirechainZkevm, c3885 as FirechainZkevmGhostrider, c78110 as FirenzeTestNetwork, c29032022 as Flachain, c8135 as Flana, c81352 as FlanaMixnet, c81353 as FlanaPrivnet, c81351 as FlanaTestnet, c14 as Flare, c16 as FlareTestnetCoston, c114 as FlareTestnetCoston2, c73 as Fncy, c923018 as FncyTestnet, c132902 as FormTestnet, c35395 as Found1423, c18105 as FoundTest, c77238 as FoundryChainTestnet, c6565 as FoxTestnetNetwork, c68840142 as FrameTestnet, c252 as Fraxtal, c2522 as FraxtalTestnet, c211 as FreightTrustNetwork, c44444 as Frenchain, c18000 as FrontierOfDreamsTestnet, c94158 as Fst1222V1, c78933 as Fst1222V2, c122 as Fuse, c123 as FuseSparknet, c32659 as Fusion, c46688 as FusionTestnet, c17171 as G8chain, c18181 as G8chainTestnet, c5777 as Ganache, c90 as GarizonStage0, c91 as GarizonStage1, c92 as GarizonStage2, c93 as GarizonStage3, c900 as GarizonTestnetStage0, c901 as GarizonTestnetStage1, c902 as GarizonTestnetStage2, c903 as GarizonTestnetStage3, c86 as Gatechain, c85 as GatechainTestnet, c486217935 as GatherDevnetNetwork, c192837465 as GatherNetwork, c356256156 as GatherTestnetNetwork, c1777 as Gauss, c516 as GearZeroNetwork, c266256 as GearZeroNetworkTestnet, c80 as Genechain, c9100 as GenesisCoin, c29 as GenesisL1, c26 as GenesisL1Testnet, c16507 as Genesys, c59971 as GenesysCode, c428 as GesoVerse, c42801 as GesotenVerseTestnet, c8989 as GiantMammoth, c1452 as GilTestnet, c1881 as GitshockCartenzTestnet, c4893 as GlobelChain, c100 as Gnosis, c10200 as GnosisChiadoTestnet, c60 as Gochain, c31337 as GochainTestnet, c71402 as Godwoken, c71401 as GodwokenTestnetV1, c868455272153094 as GodwokenTestnetV1GwTestnetV1Deprecated, c5 as Goerli, c6789 as GoldSmartChain, c79879 as GoldSmartChainTestnet, c20948 as Goldfever, c42355 as Goldxchain, c22324 as GoldxchainTestnet, c10024 as GonChain, c33 as Gooddata, c32 as GooddataTestnet, c614 as GraphlinqBlockchain, c72992 as GrokChain, c1000 as Gton, c50021 as GtonTestnet, c71111 as Guapcoinx, c803 as Haic, c1280 as Halo, c25888 as HammerChain, c8794598 as Hapchain, c373737 as HapchainTestnet, c54211 as HaqqChainTestnet, c11235 as HaqqNetwork, c197710212031 as HaradevTestnet, c1666900000 as HarmonyDevnetShard0, c1666900001 as HarmonyDevnetShard1, c1666600000 as HarmonyShard0, c1666600001 as HarmonyShard1, c1666600002 as HarmonyShard2, c1666600003 as HarmonyShard3, c1666700000 as HarmonyTestnetShard0, c1666700001 as HarmonyTestnetShard1, c11119 as Hashbit, c230315 as HashkeyChainTestnet, c234666 as HaymoTestnet, c7878 as HazlorTestnet, c295 as Hedera, c298 as HederaLocalnet, c297 as HederaPreviewnet, c296 as HederaTestnet, c8668 as HelaOfficialRuntime, c666888 as HelaOfficialRuntimeTestnet, c7118 as HelpTheHomeless, c26600 as HertzNetwork, c269 as HighPerformanceBlockchain, c710 as Highbury, c5729 as HikaNetworkTestnet, c8080808 as Hokum, c20482050 as HokumTestnet, c17000 as Holesky, c19011 as HomeVerse, c70 as HooSmartChain, c170 as HooSmartChainTestnet, c7332 as HorizenEon, c1663 as HorizenGobiTestnet, c4444 as Htmlcoin, c1273227453 as HumanProtocol, c5234 as Humanode, c14853 as HumanodeTestnet5Israfel, c1089 as HumansAi, c4139 as HumansAiTestnet, c128 as HuobiEcoChain, c256 as HuobiEcoChainTestnet, c2468 as HybridChainNetwork, c2458 as HybridChainNetworkTestnet, c400 as HyperonchainTestnet, c882 as HyprTestnet, c622277 as Hypra, c3639 as IchainNetwork, c142857 as Icplaza, c74 as Idchain, c134 as IexecSidechain, c3100 as Immu3Evm, c13371 as ImmutableZkevm, c15003 as ImmutableZkevmDevnet, c13473 as ImmutableZkevmTestnet, c9819 as Imperium, c9818 as ImperiumTestnet, c5555555 as Imversed, c5555558 as ImversedTestnet, c18289463 as Iolite, c1197 as IoraChain, c4689 as IotexNetwork, c4690 as IotexNetworkTestnet, c1122334455 as IposNetwork, c6688 as Irishub, c16688 as IrishubTestnet, c16888 as IvarChainTestnet, c35011 as J2oTaro, c72605 as JambonSDevnet, c4905 as JambonSTestnet, c30891 as JambonSTestnetJambon_s_testnet, c66988 as JanusTestnet, c81 as JapanOpenChain, c10081 as JapanOpenChainTestnet, c202624 as Jellie, c3501 as JfinChain, c8899 as JibchainL1, c1392 as Joseon, c3666 as Jouleverse, c35855456 as JoysDigital, c99415706 as JoysDigitalTestnet, c668 as Juncachain, c669 as JuncachainTestnet, c2718 as KLaos, c104 as KaibaLightningChainTestnet, c1379 as KalarChain, c653 as Kalichain, c654 as KalichainKalichainmainnet, c3888 as Kalychain, c3889 as KalychainTestnet, c222000222 as Kanazawa, c24 as Kardiachain, c686 as KaruraNetwork, c596 as KaruraNetworkTestnet, c2222 as Kava, c2221 as KavaTestnet, c321 as Kcc, c322 as KccTestnet, c420420 as Kekchain, c420666 as KekchainKektest, c1804 as Kerleano, c1337802 as Kiln, c42888 as KintoTestnet, c1337702 as Kintsugi, c2037 as KiwiSubnet, c23812 as KjcohanTestnet, c56914 as Kk1223, c8217 as KlaytnCypress, c1001 as KlaytnTestnetBaobab, c44808 as KlcohanTestnet, c7331 as Klyntar, c2559 as Kortho, c8285 as Korthotest, c6 as KottiTestnet, c2241 as KrestNetwork, c255 as Kroma, c2358 as KromaSepolia, c1998 as KyotoTestnet, c225 as Lachain, c274 as LachainLachain, c226 as LachainTestnet, c92001 as LambdaTestnet, c667 as LaosArrakis, c172 as LatamBlockchainResilTestnet, c6660 as LatestChainTestnet, c418 as Latestnet, c1891 as LightlinkPegasusTestnet, c1890 as LightlinkPhoenix, c163 as Lightstreams, c162 as LightstreamsTestnet, c59144 as Linea, c59140 as LineaTestnet, c84 as LinqtoDevnet, c1662 as Liquichain, c385 as Lisinski, c50001 as LiveplexOracleevm, c1440 as LivingAssets, c1337 as Localhost, c15551 as Loopnetwork, c800 as LucidBlockchain, c998 as LuckyNetwork, c1688 as Ludan, c42 as Lukso, c4201 as LuksoTestnet, c51178 as LumozTestnetAlpha, c721 as LycanChain, c957 as LyraChain, c2121 as MTest11032, c786 as MaalChain, c7860 as MaalchainTestnet, c43214913 as Maistestsubnet, c8898 as Mammoth, c169 as MantaPacific, c3441005 as MantaPacificTestnet, c96970 as MantisTestnetHexapod, c5000 as Mantle, c5003 as MantleSepoliaTestnet, c5001 as MantleTestnet, c22776 as Map, c212 as MapMakalu, c431140 as MarkrGo, c8848 as MaroBlockchain, c220315 as Mas, c1139 as Mathchain, c1140 as MathchainTestnet, c10201 as Maxxchain, c29548 as MchVerse, c8029 as MdglTestnet, c333000333 as Meld, c985 as MemoSmartChain, c1909 as MerkleScan, c600 as MeshnyanTestnet, c571 as Metachain, c112358 as MetachainOne, c11 as Metadium, c12 as MetadiumTestnet, c16000 as Metadot, c16001 as MetadotTestnet, c381931 as MetalCChain, c381932 as MetalTahoeCChain, c2122 as Metaplayerone, c2124 as MetaplayeroneDubaiTestnet, c82 as Meter, c83 as MeterTestnet, c1088 as MetisAndromeda, c599 as MetisGoerliTestnet, c588 as MetisStardustTestnet, c7518 as MeverseChain, c4759 as MeverseChainTestnet, c761412 as MiexsSmartchain, c2002 as MilkomedaA1, c200202 as MilkomedaA1Testnet, c2001 as MilkomedaC1, c200101 as MilkomedaC1Testnet, c9322253 as Milvine, c9996 as MindSmartChain, c9977 as MindSmartChainTestnet, c1080 as Mintara, c1079 as MintaraTestnet, c24734 as MintmeComCoin, c76 as Mix, c73927 as MixinVirtualMachine, c8136 as Mizana, c81362 as MizanaMixnet, c81363 as MizanaPrivnet, c81361 as MizanaTestnet, c1099 as Moac, c201 as MoacTestnet, c34443 as Mode, c919 as ModeTestnet, c776877 as Modularium, c6022140761023 as MolereumNetwork, c1287 as MoonbaseAlpha, c1284 as Moonbeam, c1285 as Moonriver, c1288 as Moonrock, c1286 as MoonrockOld, c2199 as MoonsamaNetwork, c62 as MordenTestnet, c63 as MordorTestnet, c2710 as MorphTestnet, c2049 as MovoSmartChain, c63079 as Mt11212, c62621 as Multivac, c80001 as Mumbai, c956 as MunodeTestnet, c7762959 as Musicoin, c4078 as Muster, c5167003 as MxcWannseeZkevmTestnet, c18686 as MxcZkevm, c9999 as MyownTestnet, c201804 as MythicalChain, c5551 as Nahmii, c4061 as Nahmii3, c4062 as Nahmii3Testnet, c5553 as NahmiiTestnet, c399 as Nativ3, c333333 as Nativ3Testnet, c22222 as Nautilus, c88002 as NautilusProteusTestnet, c91002 as NautilusTritionChain, c107 as NebulaTestnet, c245022934 as NeonEvm, c245022926 as NeonEvmDevnet, c245022940 as NeonEvmTestnet, c259 as Neonlink, c9559 as NeonlinkTestnet, c977 as NepalBlockchainNetwork, c313 as Neurochain, c303 as NeurochainTestnet, c197 as NeutrinosTestnet, c1012 as Newton, c1007 as NewtonTestnet, c4242 as Nexi, c4243 as NexiV2, c81041 as Nordek, c87 as NovaNetwork, c197710212030 as Ntity, c10507 as Numbers, c10508 as NumbersTestnet, c7100 as Nume, c42262 as OasisEmerald, c42261 as OasisEmeraldTestnet, c23294 as OasisSapphire, c23295 as OasisSapphireTestnet, c26863 as Oasischain, c248 as Oasys, c660868 as OcashTestnet, c800001 as Octaspace, c156 as OeblockTestnet, c39815 as Oho, c65 as OkexchainTestnet, c66 as Okxchain, c1246 as OmPlatform, c311 as Omax, c21816 as Omchain, c408 as Omega, c165 as OmniTestnet, c311752642 as Oneledger, c4216137055 as OneledgerTestnetFrankenstein, c58 as Ontology, c5851 as OntologyTestnet, c1975 as OnusChain, c1945 as OnusChainTestnet, c333777 as OoneChainDevnet, c333666 as OoneChainTestnet, c970 as Oort, c972 as OortAscraeus, c9700 as OortDev, c971 as OortHuygens, c11155420 as OpSepoliaTestnet, c8882 as OpalTestnetByUnique, c204 as Opbnb, c5611 as OpbnbTestnet, c474142 as Openchain, c776 as OpenchainTestnet, c54 as Openpiece, c141 as OpenpieceTestnet, c7355310 as Openvessel, c23118 as OpsideTestnet, c10 as Optimism, c28528 as OptimismBedrockGoerliAlphaTestnet, c420 as OptimismGoerli, c69 as OptimismKovan, c41500 as OpulentXBeta, c291 as Orderly, c4460 as OrderlySepoliaTestnet, c1170 as OriginTestnet, c2043 as OrigintrailParachain, c3031 as OrlandoChain, c126 as Oychain, c125 as OychainTestnet, c4000 as OzoneChain, c401 as OzoneChainTestnet, c20736 as P12Chain, c1718 as PaletteChain, c17180 as PaletteChainTestnet, c11297108109 as Palm, c11297108099 as PalmTestnet, c3601 as Pandoproject, c3602 as PandoprojectTestnet, c3400 as ParibuNet, c3500 as ParibuNetTestnet, c1773 as Partychain, c789 as Patex, c471100 as PatexSepoliaTestnet, c542 as PawchainTestnet, c666301171999 as Pdc, c6502 as Peerpay, c42069 as Pegglecoin, c20201022 as PegoNetwork, c13371337 as PepchainChurchill, c411 as PepeChain, c9779 as Pepenetwork, c4001 as PeperiumChainTestnet, c222 as Permission, c424 as PgnPublicGoodsNetwork, c2035 as PhalaNetwork, c4181 as PhiNetworkV1, c144 as PhiNetworkV2, c13381 as Phoenix, c30067 as PieceTestnet, c3125659152 as Pirl, c6626 as PixieChain, c666 as PixieChainTestnet, c7070 as Planq, c210425 as Platon, c2206132 as PlatonDevTestnet2, c2203181 as PlatonDevTestnetDeprecated, c3011 as Playa3ullGames, c2099156 as PlianMain, c8007736 as PlianSubchain1, c16658437 as PlianTestnetMain, c10067275 as PlianTestnetSubchain1, c242 as Plinga, c99 as PoaNetworkCore, c77 as PoaNetworkSokol, c2606 as Pocrnet, c333999 as Polis, c333888 as PolisTestnet, c137 as Polygon, c11891 as PolygonSupernetArianee, c1101 as PolygonZkevm, c1442 as PolygonZkevmTestnet, c1402 as PolygonZkevmTestnetOld, c1422 as PolygonZkevmTestnetPreAuditUpgraded, c71393 as PolyjuiceTestnet, c6999 as Polysmartchain, c331771 as Pop, c1213 as Popcateum, c909 as PortalFantasyChain, c808 as PortalFantasyChainTest, c920000 as PosichainDevnetShard0, c920001 as PosichainDevnetShard1, c900000 as PosichainShard0, c910000 as PosichainTestnetShard0, c78 as Primuschain, c88883 as ProjOrcTestnetAlpha, c18159 as ProofOfMemes, c331769 as ProofofpepeTestnet, c110 as ProtonTestnet, c1031 as ProxyNetworkTestnet, c2020 as Publicmint, c2018 as PublicmintDevnet, c2019 as PublicmintTestnet, c369 as Pulsechain, c940 as PulsechainTestnet, c941 as PulsechainTestnetV2b, c942 as PulsechainTestnetV3, c943 as PulsechainTestnetV4, c35441 as Q, c35443 as QTestnet, c51740 as Qauser4testnet, c9528 as Qeasyweb3Testnet, c69399 as Qi0103i1, c62278 as Qi1121i1, c76950 as Qi1204i2, c17026 as Qi1204i3, c4145 as Qi1212i2, c92850 as Qi1212i3, c98540 as Qi1212i5, c51161 as Qi1212i6, c40542 as Qi1212i8, c42451 as Qi1220s1, c91735 as Qi1228i2, c15535 as QiM11271, c12035 as QiM11272, c80182 as QiM12051, c10671 as QiM12131, c81079 as QiM21343243, c813 as Qitmeer, c8132 as QitmeerNetworkMixnet, c8133 as QitmeerNetworkPrivnet, c8131 as QitmeerNetworkTestnet, c766 as Ql1, c7668378 as Ql1Testnet, c80375 as Qr0103y1s, c40798 as Qr0109y1p, c993535 as Qr1120y1, c35730 as Qr1129i1, c36908 as Qr1205s1, c10946 as QuadransBlockchain, c10947 as QuadransBlockchainTestnet, c81720 as QuantumChain, c12890 as QuantumChainTestnet, c8888888 as Quarix, c8888881 as QuarixTestnet, c20181205 as Quarkblockchain, c110000 as QuarkchainDevnetRoot, c110001 as QuarkchainDevnetShard0, c110002 as QuarkchainDevnetShard1, c110003 as QuarkchainDevnetShard2, c110004 as QuarkchainDevnetShard3, c110005 as QuarkchainDevnetShard4, c110006 as QuarkchainDevnetShard5, c110007 as QuarkchainDevnetShard6, c110008 as QuarkchainDevnetShard7, c100000 as QuarkchainRoot, c100001 as QuarkchainShard0, c100002 as QuarkchainShard1, c100003 as QuarkchainShard2, c100004 as QuarkchainShard3, c100005 as QuarkchainShard4, c100006 as QuarkchainShard5, c100007 as QuarkchainShard6, c100008 as QuarkchainShard7, c8881 as QuartzByUnique, c2077 as Quokkacoin, c7484 as RabaNetwork, c1807 as RabbitAnalogTestnetChain, c2025 as RangersProtocol, c9527 as RangersProtocolTestnetRobin, c1380996178 as Raptorchain, c1918988905 as RarichainTestnet, c278611351 as RazorSkaleChain, c121 as Realchain, c221230 as Reapchain, c221231 as ReapchainTestnet, c151 as RedbellyNetwork, c152 as RedbellyNetworkDevnet, c153 as RedbellyNetworkTestnet, c154 as RedbellyNetworkTge, c1972 as Redecoin, c2611 as RedlightChain, c17001 as RedstoneHoleskyTestnet, c33909 as Reg1116test, c55555 as ReiChain, c55556 as ReiChainTestnet, c47805 as ReiNetwork, c75000 as Resincoin, c1433 as RikezaNetwork, c12715 as RikezaNetworkTestnet, c917 as RiniaTestnet, c9170 as RiniaTestnetOld, c4 as Rinkeby, c7777 as RiseOfTheWarbotsTestnet, c570 as Rollux, c57000 as RolluxTestnet, c30 as Rootstock, c31 as RootstockTestnet, c3 as Ropsten, c1821 as RubySmartChain, c1912 as RubySmartChainTestnet, c499 as Rupaya, c74356 as STestnet1524, c7225878 as Saakuru, c247253 as SaakuruTestnet, c1022 as Sakura, c94918 as SampleTestnet, c11888 as SanrChain, c8883 as SapphireByUnique, c51712 as Sardis, c11612 as SardisTestnet, c12009 as Satoshichain, c5758 as SatoshichainTestnet, c1985 as Satoshie, c1986 as SatoshieTestnet, c1911 as Scalind, c220 as ScalindTestnet, c60841 as ScgK, c65450 as Scolcoin, c6552 as ScolcoinWeichainTestnet, c742 as ScriptTestnet, c534352 as Scroll, c534353 as ScrollAlphaTestnet, c534354 as ScrollPreAlphaTestnet, c534351 as ScrollSepoliaTestnet, c34 as Securechain, c3434 as SecurechainTestnet, c186 as Seele, c3699 as Senjepowers, c3698 as SenjepowersTestnet, c11155111 as Sepolia, c58008 as SepoliaPgnPublicGoodsNetwork, c258 as Setheum, c75817 as Sft1824, c8080 as ShardeumLiberty1X, c8081 as ShardeumLiberty2X, c8082 as ShardeumSphinx1X, c20141 as ShelbySTestnet, c1506 as Sherpax, c1507 as SherpaxTestnet, c27 as Shibachain, c109 as Shibarium, c719 as ShibariumBeta, c336 as Shiden, c148 as Shimmerevm, c1073 as ShimmerevmTestnet, c1071 as ShimmerevmTestnetDeprecated, c1072 as ShimmerevmTestnetDeprecated1072, c214 as Shinarium, c534849 as ShinariumBeta, c2044 as ShrapnelSubnet, c2038 as ShrapnelTestnet, c7341 as Shyft, c11437 as ShyftTestnet, c111111 as SiberiumNetwork, c111000 as SiberiumTestNetwork, c12052 as SingularityZero, c12051 as SingularityZeroTestnet, c67390 as Siriusnet, c217 as SiriusnetV2, c98 as SixProtocol, c150 as SixProtocolTestnet, c10086 as Sjatsh, c1564830818 as SkaleCalypsoHub, c344106930 as SkaleCalypsoHubTestnet, c2046399126 as SkaleEuropaHub, c476158412 as SkaleEuropaHubTestnet, c1482601649 as SkaleNebulaHub, c503129905 as SkaleNebulaHubTestnet, c1350216234 as SkaleTitanHub, c1517929550 as SkaleTitanHubTestnet, c10000 as SmartBitcoinCash, c10001 as SmartBitcoinCashTestnet, c1177 as SmartHostTeknolojiTestnet, c5169 as SmartLayerNetwork, c82459 as SmartLayerNetworkTestnet, c18122 as SmartTradeNetworks, c20180430 as Smartmesh, c281121 as SocialSmartChain, c2332 as SomaNetwork, c2323 as SomaNetworkTestnet, c19 as SongbirdCanaryNetwork, c68 as Soterone, c218 as SoteroneOld, c10101010 as Soverun, c101010 as SoverunTestnet, c88882 as SpicyChain, c1904 as SportsChainNetwork, c13000 as Sps, c14000 as SpsTestnet, c23934 as St1116V7Regression, c19683 as St1207V1, c83862 as St1212V1, c59069 as St1212V2, c39142 as StFound10524, c700 as StarSocialTestnet, c1234 as StepNetwork, c12345 as StepTestnet, c8726 as Storagechain, c8727 as StoragechainTestnet, c2048 as Stratos, c2047 as StratosTestnet, c8098 as StreamuxBlockchain, c208 as Structx, c1970 as SuperSmartChain, c1969 as SuperSmartChainTestnet, c262 as SurBlockchainNetwork, c13812 as Susono, c230 as Swapdex, c94 as Swissdlt, c1291 as SwisstronikTestnet, c416 as SxNetwork, c647 as SxNetworkTestnet, c1149 as SymplexiaSmartChain, c444 as SynapseChainTestnet, c57 as Syscoin, c5700 as SyscoinTanenbaumTestnet, c88888888 as TEAMBlockchain, c1004 as TEkta, c224168 as TafEcoChain, c167004 as TaikoAlpha2Testnet, c167006 as TaikoEldfellL3, c167005 as TaikoGrimsvotnL2, c167007 as TaikoJolnirL2, c167008 as TaikoKatlaL2, c5678 as TanssiEvmContainerchain, c558 as TaoNetwork, c841 as Taraxa, c842 as TaraxaTestnet, c22023 as Taycan, c2023 as TaycanTestnet, c1707 as Tbsi, c1708 as TbsiTestnet, c35 as TbwgChain, c2400 as TcgVerse, c2569 as Techpay, c1003 as TectumEmissionToken, c8000 as Teleport, c8001 as TeleportTestnet, c40 as TelosEvm, c41 as TelosEvmTestnet, c443 as TenTestnet, c1559 as Tenet, c155 as TenetTestnet, c1856 as Teslafunds, c8181 as TestnetBeoneChain, c7 as Thaichain, c17 as Thaichain20Thaifi, c37195 as Thari, c7668 as TheRootNetwork, c7672 as TheRootNetworkPorciniTestnet, c361 as Theta, c364 as ThetaAmberTestnet, c363 as ThetaSapphireTestnet, c365 as ThetaTestnet, c70000 as ThinkiumChain0, c70001 as ThinkiumChain1, c70103 as ThinkiumChain103, c70002 as ThinkiumChain2, c60000 as ThinkiumTestnetChain0, c60001 as ThinkiumTestnetChain1, c60103 as ThinkiumTestnetChain103, c60002 as ThinkiumTestnetChain2, c894538 as ThirdwebTestSubnet, c108 as Thundercore, c18 as ThundercoreTestnet, c1127469 as TiltyardSubnet, c404040 as Tipboxcoin, c4141 as TipboxcoinTestnet, c55004 as Titan, c5177 as TlchainNetwork, c8768 as TmyChain, c8654 as TokiNetwork, c8655 as TokiTestnet, c6969 as TombChain, c88 as Tomochain, c89 as TomochainTestnet, c8723 as ToolGlobal, c8724 as ToolGlobalTestnet, c989 as Top, c980 as TopEvm, c77777 as Toronet, c54321 as ToronetTestnet, c8192 as Torus, c8194 as TorusTestnet, c5002 as TreasurenetAlpha, c5005 as TreasurenetTestnet, c6066 as Tres, c6065 as TresTestnet, c5353 as TritaniumTestnet, c15555 as TrustEvmTestnet, c330844 as TtcoinSmartChain, c1731313 as TurkeyDemoDev, c39 as U2uSolaris, c99999 as UbSmartChain, c99998 as UbSmartChainTestnet, c8 as Ubiq, c9 as UbiqNetworkTestnet, c473861 as UltraPro, c1231 as Ultron, c1230 as UltronTestnet, c2484 as UnicornUltraNebulasTestnet, c8880 as Unique, c117 as Uptick, c6119 as Uptn, c6118 as UptnTestnet, c5315 as UzmiNetwork, c38 as Valorbit, c2223 as Vchain, c100009 as Vechain, c100010 as VechainTestnet, c555 as Vela1Chain, c106 as VelasEvm, c56789 as VeloLabs, c4919 as Venidium, c4918 as VenidiumTestnet, c77612 as VentionSmartChain, c741 as VentionSmartChainTestnet, c5522 as VexEvmTestnet, c601 as VineTestnet, c207 as VinuchainNetwork, c206 as VinuchainTestnet, c888888 as Vision, c666666 as VisionVpioneerTestChain, c3102 as VultureEvmBeta, c8889 as VyvoSmartChain, c11111 as Wagmi, c888 as Wanchain, c105 as Web3gamesDevnet, c102 as Web3gamesTestnet, c333 as Web3q, c3334 as Web3qGalileo, c3333 as Web3qTestnet, c24484 as Webchain, c444900 as WeelinkTestnet, c5869 as WegochainRubidium, c1111 as Wemix30, c1112 as Wemix30Testnet, c1875 as WhitebitNetwork, c2625 as WhitebitNetworkTestnet, c69740 as WillSTestnet, c49049 as WireshapeFloripaTestnet, c139 as Woopchain, c1202 as WorldTradeTechnicalChain, c103 as Worldland, c10395 as WorldlandTestnet, c91003 as WorldsAppchain, c4281033 as WorldsCaldera, c309 as WyzthTestnet, c196 as X1, c202212 as X1Devnet, c4003 as X1Fastnet, c204005 as X1Network, c195 as X1Testnet, c660279 as Xai, c47279324479 as XaiGoerliOrbit, c8888 as Xanachain, c151221 as Xantus, c9322252 as Xcap, c51 as XdcApothemNetwork, c50 as XdcNetwork, c1313500 as Xerom, c2415 as Xodex, c37 as Xpla, c47 as XplaTestnet, c3701 as XplaTestnetXplatest, c1440001 as XrpLedgerEvmDevnetSidechain, c520 as XtSmartChain, c927 as YidarkChain, c50005 as YooldoVerse, c50006 as YooldoVerseTestnet, c3999 as Yuanchain, c2016 as ZMainnet, c9768 as ZTestnet, c1369 as Zafirium, c3331 as ZcoreTestnet, c427 as ZeethChain, c859 as ZeethChainDev, c383414847825 as Zeniq, c79 as Zenith, c7000 as Zetachain, c7001 as ZetachainAthens3Testnet, c82807 as ZfirstAvacloudSubnetThirdweb, c1337803 as Zhejiang, c33469 as Zilliqa2EvmDevnet, c32769 as ZilliqaEvm, c33385 as ZilliqaEvmDevnet, c32990 as ZilliqaEvmIsolatedServer, c33101 as ZilliqaEvmTestnet, c1261120 as Zkatana, c42766 as Zkfair, c43851 as ZkfairTestnet, c324 as Zksync, c280 as ZksyncEraGoerliTestnetDeprecated, c300 as ZksyncSepoliaTestnet, c7777777 as Zora, c999999999 as ZoraSepoliaTestnet, c999 as ZoraTestnet, c55 as Zyx, c10248 as _0xtade, c846000 as _4goodnetwork, c997 as _5irechainThunder, allChains, configureChain, defaultChains, fetchChain, fetchChains, getChainByChainId, getChainByChainIdAsync, getChainBySlug, getChainBySlugAsync, getChainIdsBySlug, getChainRPC, getChainRPCs, getValidChainRPCs, minimizeChain, updateChainRPCs };\n","function number(n: number) {\n if (!Number.isSafeInteger(n) || n < 0) throw new Error(`Wrong positive integer: ${n}`);\n}\n\nfunction bool(b: boolean) {\n if (typeof b !== 'boolean') throw new Error(`Expected boolean, not ${b}`);\n}\n\n// copied from utils\nfunction isBytes(a: unknown): a is Uint8Array {\n return (\n a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array')\n );\n}\n\nfunction bytes(b: Uint8Array | undefined, ...lengths: number[]) {\n if (!isBytes(b)) throw new Error('Expected Uint8Array');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error(`Expected Uint8Array of length ${lengths}, not of length=${b.length}`);\n}\n\ntype Hash = {\n (data: Uint8Array): Uint8Array;\n blockLen: number;\n outputLen: number;\n create: any;\n};\nfunction hash(hash: Hash) {\n if (typeof hash !== 'function' || typeof hash.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n number(hash.outputLen);\n number(hash.blockLen);\n}\n\nfunction exists(instance: any, checkFinished = true) {\n if (instance.destroyed) throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished) throw new Error('Hash#digest() has already been called');\n}\nfunction output(out: any, instance: any) {\n bytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error(`digestInto() expects output buffer of length at least ${min}`);\n }\n}\n\nexport { number, bool, bytes, hash, exists, output };\n\nconst assert = { number, bool, bytes, hash, exists, output };\nexport default assert;\n","/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated (2025-04-30), we can just drop the import.\nimport { crypto } from '@noble/hashes/crypto';\n\n// prettier-ignore\nexport type TypedArray = Int8Array | Uint8ClampedArray | Uint8Array |\n Uint16Array | Int16Array | Uint32Array | Int32Array;\n\n// Cast array to different type\nexport const u8 = (arr: TypedArray) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexport const u32 = (arr: TypedArray) =>\n new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n\nfunction isBytes(a: unknown): a is Uint8Array {\n return (\n a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array')\n );\n}\n\n// Cast array to view\nexport const createView = (arr: TypedArray) =>\n new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n\n// The rotate right (circular right shift) operation for uint32\nexport const rotr = (word: number, shift: number) => (word << (32 - shift)) | (word >>> shift);\n\n// big-endian hardware is rare. Just in case someone still decides to run hashes:\n// early-throw an error because we don't support BE yet.\n// Other libraries would silently corrupt the data instead of throwing an error,\n// when they don't support it.\nexport const isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\nif (!isLE) throw new Error('Non little-endian hardware is not supported');\n\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) =>\n i.toString(16).padStart(2, '0')\n);\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes: Uint8Array): string {\n if (!isBytes(bytes)) throw new Error('Uint8Array expected');\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, _A: 65, _F: 70, _a: 97, _f: 102 } as const;\nfunction asciiToBase16(char: number): number | undefined {\n if (char >= asciis._0 && char <= asciis._9) return char - asciis._0;\n if (char >= asciis._A && char <= asciis._F) return char - (asciis._A - 10);\n if (char >= asciis._a && char <= asciis._f) return char - (asciis._a - 10);\n return;\n}\n\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex: string): Uint8Array {\n if (typeof hex !== 'string') throw new Error('hex string expected, got ' + typeof hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2) throw new Error('padded hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2;\n }\n return array;\n}\n\n// There is no setImmediate in browser and setTimeout is slow.\n// call of async fn will return Promise, which will be fullfiled only on\n// next scheduler queue processing step and this is exactly what we need.\nexport const nextTick = async () => {};\n\n// Returns control to thread each 'tick' ms to avoid blocking\nexport async function asyncLoop(iters: number, tick: number, cb: (i: number) => void) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick) continue;\n await nextTick();\n ts += diff;\n }\n}\n\n// Global symbols in both browsers and Node.js since v11\n// See https://github.com/microsoft/TypeScript/issues/31535\ndeclare const TextEncoder: any;\n\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nexport function utf8ToBytes(str: string): Uint8Array {\n if (typeof str !== 'string') throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n\nexport type Input = Uint8Array | string;\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nexport function toBytes(data: Input): Uint8Array {\n if (typeof data === 'string') data = utf8ToBytes(data);\n if (!isBytes(data)) throw new Error(`expected Uint8Array, got ${typeof data}`);\n return data;\n}\n\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays: Uint8Array[]): Uint8Array {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n if (!isBytes(a)) throw new Error('Uint8Array expected');\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\n\n// For runtime check if class implements interface\nexport abstract class Hash> {\n abstract blockLen: number; // Bytes per block\n abstract outputLen: number; // Bytes in output\n abstract update(buf: Input): this;\n // Writes digest into buf\n abstract digestInto(buf: Uint8Array): void;\n abstract digest(): Uint8Array;\n /**\n * Resets internal state. Makes Hash instance unusable.\n * Reset is impossible for keyed hashes if key is consumed into state. If digest is not consumed\n * by user, they will need to manually call `destroy()` when zeroing is necessary.\n */\n abstract destroy(): void;\n /**\n * Clones hash instance. Unsafe: doesn't check whether `to` is valid. Can be used as `clone()`\n * when no options are passed.\n * Reasons to use `_cloneInto` instead of clone: 1) performance 2) reuse instance => all internal\n * buffers are overwritten => causes buffer overwrite which is used for digest in some cases.\n * There are no guarantees for clean-up because it's impossible in JS.\n */\n abstract _cloneInto(to?: T): T;\n // Safe version that clones internal state\n clone(): T {\n return this._cloneInto();\n }\n}\n\n/**\n * XOF: streaming API to read digest in chunks.\n * Same as 'squeeze' in keccak/k12 and 'seek' in blake3, but more generic name.\n * When hash used in XOF mode it is up to user to call '.destroy' afterwards, since we cannot\n * destroy state, next call can require more bytes.\n */\nexport type HashXOF> = Hash & {\n xof(bytes: number): Uint8Array; // Read 'bytes' bytes from digest stream\n xofInto(buf: Uint8Array): Uint8Array; // read buf.length bytes from digest stream into buf\n};\n\nconst toStr = {}.toString;\ntype EmptyObj = {};\nexport function checkOpts(\n defaults: T1,\n opts?: T2\n): T1 & T2 {\n if (opts !== undefined && toStr.call(opts) !== '[object Object]')\n throw new Error('Options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged as T1 & T2;\n}\n\nexport type CHash = ReturnType;\n\nexport function wrapConstructor>(hashCons: () => Hash) {\n const hashC = (msg: Input): Uint8Array => hashCons().update(toBytes(msg)).digest();\n const tmp = hashCons();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashCons();\n return hashC;\n}\n\nexport function wrapConstructorWithOpts, T extends Object>(\n hashCons: (opts?: T) => Hash\n) {\n const hashC = (msg: Input, opts?: T): Uint8Array => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({} as T);\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts: T) => hashCons(opts);\n return hashC;\n}\n\nexport function wrapXOFConstructorWithOpts, T extends Object>(\n hashCons: (opts?: T) => HashXOF\n) {\n const hashC = (msg: Input, opts?: T): Uint8Array => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({} as T);\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts: T) => hashCons(opts);\n return hashC;\n}\n\n/**\n * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS.\n */\nexport function randomBytes(bytesLength = 32): Uint8Array {\n if (crypto && typeof crypto.getRandomValues === 'function') {\n return crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\n","import { exists, output } from './_assert.js';\nimport { Hash, createView, Input, toBytes } from './utils.js';\n\n// Polyfill for Safari 14\nfunction setBigUint64(view: DataView, byteOffset: number, value: bigint, isLE: boolean): void {\n if (typeof view.setBigUint64 === 'function') return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n\n// Base SHA2 class (RFC 6234)\nexport abstract class SHA2> extends Hash {\n protected abstract process(buf: DataView, offset: number): void;\n protected abstract get(): number[];\n protected abstract set(...args: number[]): void;\n abstract destroy(): void;\n protected abstract roundClean(): void;\n // For partial updates less than block size\n protected buffer: Uint8Array;\n protected view: DataView;\n protected finished = false;\n protected length = 0;\n protected pos = 0;\n protected destroyed = false;\n\n constructor(\n readonly blockLen: number,\n public outputLen: number,\n readonly padOffset: number,\n readonly isLE: boolean\n ) {\n super();\n this.buffer = new Uint8Array(blockLen);\n this.view = createView(this.buffer);\n }\n update(data: Input): this {\n exists(this);\n const { view, buffer, blockLen } = this;\n data = toBytes(data);\n const len = data.length;\n for (let pos = 0; pos < len; ) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = createView(data);\n for (; blockLen <= len - pos; pos += blockLen) this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out: Uint8Array) {\n exists(this);\n output(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++) buffer[i] = 0;\n // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = createView(out);\n const len = this.outputLen;\n // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n if (len % 4) throw new Error('_sha2: outputLen should be aligned to 32bit');\n const outLen = len / 4;\n const state = this.get();\n if (outLen > state.length) throw new Error('_sha2: outputLen bigger than state');\n for (let i = 0; i < outLen; i++) oview.setUint32(4 * i, state[i], isLE);\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to?: T): T {\n to ||= new (this.constructor as any)() as T;\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen) to.buffer.set(buffer);\n return to;\n }\n}\n","import { SHA2 } from './_sha2.js';\nimport { rotr, wrapConstructor } from './utils.js';\n\n// SHA2-256 need to try 2^128 hashes to execute birthday attack.\n// BTC network is doing 2^67 hashes/sec as per early 2023.\n\n// Choice: a ? b : c\nconst Chi = (a: number, b: number, c: number) => (a & b) ^ (~a & c);\n// Majority function, true if any two inpust is true\nconst Maj = (a: number, b: number, c: number) => (a & b) ^ (a & c) ^ (b & c);\n\n// Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\nconst SHA256_K = /* @__PURE__ */new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n\n// Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n// prettier-ignore\nconst IV = /* @__PURE__ */new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA256_W = /* @__PURE__ */ new Uint32Array(64);\nclass SHA256 extends SHA2 {\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n A = IV[0] | 0;\n B = IV[1] | 0;\n C = IV[2] | 0;\n D = IV[3] | 0;\n E = IV[4] | 0;\n F = IV[5] | 0;\n G = IV[6] | 0;\n H = IV[7] | 0;\n\n constructor() {\n super(64, 32, 8, false);\n }\n protected get(): [number, number, number, number, number, number, number, number] {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n protected set(\n A: number, B: number, C: number, D: number, E: number, F: number, G: number, H: number\n ) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n protected process(view: DataView, offset: number): void {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4) SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ (W15 >>> 3);\n const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25);\n const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22);\n const T2 = (sigma0 + Maj(A, B, C)) | 0;\n H = G;\n G = F;\n F = E;\n E = (D + T1) | 0;\n D = C;\n C = B;\n B = A;\n A = (T1 + T2) | 0;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n protected roundClean() {\n SHA256_W.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n this.buffer.fill(0);\n }\n}\n// Constants from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf\nclass SHA224 extends SHA256 {\n A = 0xc1059ed8 | 0;\n B = 0x367cd507 | 0;\n C = 0x3070dd17 | 0;\n D = 0xf70e5939 | 0;\n E = 0xffc00b31 | 0;\n F = 0x68581511 | 0;\n G = 0x64f98fa7 | 0;\n H = 0xbefa4fa4 | 0;\n constructor() {\n super();\n this.outputLen = 28;\n }\n}\n\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexport const sha256 = /* @__PURE__ */ wrapConstructor(() => new SHA256());\nexport const sha224 = /* @__PURE__ */ wrapConstructor(() => new SHA224());\n","import { sha256 as sha256$1 } from '@noble/hashes/sha256';\nimport { keccak_256 } from 'js-sha3';\n\nclass TextProcessorCache {\n #encoder;\n #decoder;\n get encoder() {\n if (!this.#encoder) {\n this.#encoder = new TextEncoder();\n }\n return this.#encoder;\n }\n get decoder() {\n if (!this.#decoder) {\n this.#decoder = new TextDecoder();\n }\n return this.#decoder;\n }\n}\n\n// create a singleton instance of the TextProcessorCache\nconst textProcessorSingleton = new TextProcessorCache();\nfunction getCachedTextEncoder() {\n return textProcessorSingleton.encoder;\n}\nfunction getCachedTextDecoder() {\n return textProcessorSingleton.decoder;\n}\n\n// stripped down version of `js-md5`\n// changes:\n// - we know we always have ArrayBuffer available\n// - we only care about `arrayBuffer` output\n// - we want to behave the same regardless of NODE or non NODE env\n// - transformed into class\n// - typescript\n\n/**\n * [js-md5]{@link https://github.com/emn178/js-md5}\n *\n * @namespace md5\n * @version 0.8.3\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2014-2023\n * @license MIT\n */\n\nconst INPUT_ERROR = \"input is invalid type\";\nconst FINALIZE_ERROR = \"finalize already called\";\nconst EXTRA = [128, 32768, 8388608, -2147483648];\n\n// [message: string, isString: bool]\nfunction formatMessage(message) {\n const type = typeof message;\n if (typeof message === \"string\") {\n return [message, true];\n }\n if (type !== \"object\" || message === null) {\n throw new Error(INPUT_ERROR);\n }\n if (message instanceof ArrayBuffer) {\n return [new Uint8Array(message), false];\n }\n if (!Array.isArray(message) && !ArrayBuffer.isView(message)) {\n throw new Error(INPUT_ERROR);\n }\n return [message, false];\n}\n\n/**\n * Md5 class\n * @class Md5\n * @description This is internal class.\n * @see {@link md5.create}\n */\nclass Md5 {\n lastByteIndex = 0;\n constructor() {\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const buffer = new ArrayBuffer(68);\n this.buffer8 = new Uint8Array(buffer);\n this.blocks = new Uint32Array(buffer);\n this.h0 = this.h1 = this.h2 = this.h3 = this.start = this.bytes = this.hBytes = 0;\n this.finalized = this.hashed = false;\n this.first = true;\n }\n /**\n * @method update\n * @memberof Md5\n * @instance\n * @description Update hash\n * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n * @returns {Md5} Md5 object.\n * @see {@link md5.update}\n */\n update(inputMessage) {\n if (this.finalized) {\n throw new Error(FINALIZE_ERROR);\n }\n const [message, isString] = formatMessage(inputMessage);\n const blocks = this.blocks;\n let length = 0;\n if (ArrayBuffer.isView(message)) {\n length = message.byteLength;\n } else {\n length = message.length;\n }\n let code,\n index = 0,\n i;\n\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const buffer8 = this.buffer8;\n while (index < length) {\n if (this.hashed) {\n this.hashed = false;\n blocks[0] = blocks[16];\n blocks[16] = blocks[1] = blocks[2] = blocks[3] = blocks[4] = blocks[5] = blocks[6] = blocks[7] = blocks[8] = blocks[9] = blocks[10] = blocks[11] = blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n if (isString) {\n for (i = this.start; index < length && i < 64; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n buffer8[i++] = code;\n } else if (code < 0x800) {\n buffer8[i++] = 0xc0 | code >>> 6;\n buffer8[i++] = 0x80 | code & 0x3f;\n } else if (code < 0xd800 || code >= 0xe000) {\n buffer8[i++] = 0xe0 | code >>> 12;\n buffer8[i++] = 0x80 | code >>> 6 & 0x3f;\n buffer8[i++] = 0x80 | code & 0x3f;\n } else {\n code = 0x10000 + ((code & 0x3ff) << 10 | message.charCodeAt(++index) & 0x3ff);\n buffer8[i++] = 0xf0 | code >>> 18;\n buffer8[i++] = 0x80 | code >>> 12 & 0x3f;\n buffer8[i++] = 0x80 | code >>> 6 & 0x3f;\n buffer8[i++] = 0x80 | code & 0x3f;\n }\n }\n } else {\n for (i = this.start; index < length && i < 64; ++index) {\n // at this point we know it's not a string\n buffer8[i++] = message[index];\n }\n }\n this.lastByteIndex = i;\n this.bytes += i - this.start;\n if (i >= 64) {\n this.start = i - 64;\n this.hash();\n this.hashed = true;\n } else {\n this.start = i;\n }\n }\n if (this.bytes > 4294967295) {\n this.hBytes += this.bytes / 4294967296 << 0;\n this.bytes = this.bytes % 4294967296;\n }\n return this;\n }\n finalize() {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const blocks = this.blocks,\n i = this.lastByteIndex;\n blocks[i >>> 2] |= EXTRA[i & 3];\n if (i >= 56) {\n if (!this.hashed) {\n this.hash();\n }\n blocks[0] = blocks[16];\n blocks[16] = blocks[1] = blocks[2] = blocks[3] = blocks[4] = blocks[5] = blocks[6] = blocks[7] = blocks[8] = blocks[9] = blocks[10] = blocks[11] = blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n blocks[14] = this.bytes << 3;\n blocks[15] = this.hBytes << 3 | this.bytes >>> 29;\n this.hash();\n }\n hash() {\n const blocks = this.blocks;\n let a, b, c, d, bc, da;\n if (this.first) {\n a = blocks[0] - 680876937;\n a = (a << 7 | a >>> 25) - 271733879 << 0;\n d = (-1732584194 ^ a & 2004318071) + blocks[1] - 117830708;\n d = (d << 12 | d >>> 20) + a << 0;\n c = (-271733879 ^ d & (a ^ -271733879)) + blocks[2] - 1126478375;\n c = (c << 17 | c >>> 15) + d << 0;\n b = (a ^ c & (d ^ a)) + blocks[3] - 1316259209;\n b = (b << 22 | b >>> 10) + c << 0;\n } else {\n a = this.h0;\n b = this.h1;\n c = this.h2;\n d = this.h3;\n a += (d ^ b & (c ^ d)) + blocks[0] - 680876936;\n a = (a << 7 | a >>> 25) + b << 0;\n d += (c ^ a & (b ^ c)) + blocks[1] - 389564586;\n d = (d << 12 | d >>> 20) + a << 0;\n c += (b ^ d & (a ^ b)) + blocks[2] + 606105819;\n c = (c << 17 | c >>> 15) + d << 0;\n b += (a ^ c & (d ^ a)) + blocks[3] - 1044525330;\n b = (b << 22 | b >>> 10) + c << 0;\n }\n a += (d ^ b & (c ^ d)) + blocks[4] - 176418897;\n a = (a << 7 | a >>> 25) + b << 0;\n d += (c ^ a & (b ^ c)) + blocks[5] + 1200080426;\n d = (d << 12 | d >>> 20) + a << 0;\n c += (b ^ d & (a ^ b)) + blocks[6] - 1473231341;\n c = (c << 17 | c >>> 15) + d << 0;\n b += (a ^ c & (d ^ a)) + blocks[7] - 45705983;\n b = (b << 22 | b >>> 10) + c << 0;\n a += (d ^ b & (c ^ d)) + blocks[8] + 1770035416;\n a = (a << 7 | a >>> 25) + b << 0;\n d += (c ^ a & (b ^ c)) + blocks[9] - 1958414417;\n d = (d << 12 | d >>> 20) + a << 0;\n c += (b ^ d & (a ^ b)) + blocks[10] - 42063;\n c = (c << 17 | c >>> 15) + d << 0;\n b += (a ^ c & (d ^ a)) + blocks[11] - 1990404162;\n b = (b << 22 | b >>> 10) + c << 0;\n a += (d ^ b & (c ^ d)) + blocks[12] + 1804603682;\n a = (a << 7 | a >>> 25) + b << 0;\n d += (c ^ a & (b ^ c)) + blocks[13] - 40341101;\n d = (d << 12 | d >>> 20) + a << 0;\n c += (b ^ d & (a ^ b)) + blocks[14] - 1502002290;\n c = (c << 17 | c >>> 15) + d << 0;\n b += (a ^ c & (d ^ a)) + blocks[15] + 1236535329;\n b = (b << 22 | b >>> 10) + c << 0;\n a += (c ^ d & (b ^ c)) + blocks[1] - 165796510;\n a = (a << 5 | a >>> 27) + b << 0;\n d += (b ^ c & (a ^ b)) + blocks[6] - 1069501632;\n d = (d << 9 | d >>> 23) + a << 0;\n c += (a ^ b & (d ^ a)) + blocks[11] + 643717713;\n c = (c << 14 | c >>> 18) + d << 0;\n b += (d ^ a & (c ^ d)) + blocks[0] - 373897302;\n b = (b << 20 | b >>> 12) + c << 0;\n a += (c ^ d & (b ^ c)) + blocks[5] - 701558691;\n a = (a << 5 | a >>> 27) + b << 0;\n d += (b ^ c & (a ^ b)) + blocks[10] + 38016083;\n d = (d << 9 | d >>> 23) + a << 0;\n c += (a ^ b & (d ^ a)) + blocks[15] - 660478335;\n c = (c << 14 | c >>> 18) + d << 0;\n b += (d ^ a & (c ^ d)) + blocks[4] - 405537848;\n b = (b << 20 | b >>> 12) + c << 0;\n a += (c ^ d & (b ^ c)) + blocks[9] + 568446438;\n a = (a << 5 | a >>> 27) + b << 0;\n d += (b ^ c & (a ^ b)) + blocks[14] - 1019803690;\n d = (d << 9 | d >>> 23) + a << 0;\n c += (a ^ b & (d ^ a)) + blocks[3] - 187363961;\n c = (c << 14 | c >>> 18) + d << 0;\n b += (d ^ a & (c ^ d)) + blocks[8] + 1163531501;\n b = (b << 20 | b >>> 12) + c << 0;\n a += (c ^ d & (b ^ c)) + blocks[13] - 1444681467;\n a = (a << 5 | a >>> 27) + b << 0;\n d += (b ^ c & (a ^ b)) + blocks[2] - 51403784;\n d = (d << 9 | d >>> 23) + a << 0;\n c += (a ^ b & (d ^ a)) + blocks[7] + 1735328473;\n c = (c << 14 | c >>> 18) + d << 0;\n b += (d ^ a & (c ^ d)) + blocks[12] - 1926607734;\n b = (b << 20 | b >>> 12) + c << 0;\n bc = b ^ c;\n a += (bc ^ d) + blocks[5] - 378558;\n a = (a << 4 | a >>> 28) + b << 0;\n d += (bc ^ a) + blocks[8] - 2022574463;\n d = (d << 11 | d >>> 21) + a << 0;\n da = d ^ a;\n c += (da ^ b) + blocks[11] + 1839030562;\n c = (c << 16 | c >>> 16) + d << 0;\n b += (da ^ c) + blocks[14] - 35309556;\n b = (b << 23 | b >>> 9) + c << 0;\n bc = b ^ c;\n a += (bc ^ d) + blocks[1] - 1530992060;\n a = (a << 4 | a >>> 28) + b << 0;\n d += (bc ^ a) + blocks[4] + 1272893353;\n d = (d << 11 | d >>> 21) + a << 0;\n da = d ^ a;\n c += (da ^ b) + blocks[7] - 155497632;\n c = (c << 16 | c >>> 16) + d << 0;\n b += (da ^ c) + blocks[10] - 1094730640;\n b = (b << 23 | b >>> 9) + c << 0;\n bc = b ^ c;\n a += (bc ^ d) + blocks[13] + 681279174;\n a = (a << 4 | a >>> 28) + b << 0;\n d += (bc ^ a) + blocks[0] - 358537222;\n d = (d << 11 | d >>> 21) + a << 0;\n da = d ^ a;\n c += (da ^ b) + blocks[3] - 722521979;\n c = (c << 16 | c >>> 16) + d << 0;\n b += (da ^ c) + blocks[6] + 76029189;\n b = (b << 23 | b >>> 9) + c << 0;\n bc = b ^ c;\n a += (bc ^ d) + blocks[9] - 640364487;\n a = (a << 4 | a >>> 28) + b << 0;\n d += (bc ^ a) + blocks[12] - 421815835;\n d = (d << 11 | d >>> 21) + a << 0;\n da = d ^ a;\n c += (da ^ b) + blocks[15] + 530742520;\n c = (c << 16 | c >>> 16) + d << 0;\n b += (da ^ c) + blocks[2] - 995338651;\n b = (b << 23 | b >>> 9) + c << 0;\n a += (c ^ (b | ~d)) + blocks[0] - 198630844;\n a = (a << 6 | a >>> 26) + b << 0;\n d += (b ^ (a | ~c)) + blocks[7] + 1126891415;\n d = (d << 10 | d >>> 22) + a << 0;\n c += (a ^ (d | ~b)) + blocks[14] - 1416354905;\n c = (c << 15 | c >>> 17) + d << 0;\n b += (d ^ (c | ~a)) + blocks[5] - 57434055;\n b = (b << 21 | b >>> 11) + c << 0;\n a += (c ^ (b | ~d)) + blocks[12] + 1700485571;\n a = (a << 6 | a >>> 26) + b << 0;\n d += (b ^ (a | ~c)) + blocks[3] - 1894986606;\n d = (d << 10 | d >>> 22) + a << 0;\n c += (a ^ (d | ~b)) + blocks[10] - 1051523;\n c = (c << 15 | c >>> 17) + d << 0;\n b += (d ^ (c | ~a)) + blocks[1] - 2054922799;\n b = (b << 21 | b >>> 11) + c << 0;\n a += (c ^ (b | ~d)) + blocks[8] + 1873313359;\n a = (a << 6 | a >>> 26) + b << 0;\n d += (b ^ (a | ~c)) + blocks[15] - 30611744;\n d = (d << 10 | d >>> 22) + a << 0;\n c += (a ^ (d | ~b)) + blocks[6] - 1560198380;\n c = (c << 15 | c >>> 17) + d << 0;\n b += (d ^ (c | ~a)) + blocks[13] + 1309151649;\n b = (b << 21 | b >>> 11) + c << 0;\n a += (c ^ (b | ~d)) + blocks[4] - 145523070;\n a = (a << 6 | a >>> 26) + b << 0;\n d += (b ^ (a | ~c)) + blocks[11] - 1120210379;\n d = (d << 10 | d >>> 22) + a << 0;\n c += (a ^ (d | ~b)) + blocks[2] + 718787259;\n c = (c << 15 | c >>> 17) + d << 0;\n b += (d ^ (c | ~a)) + blocks[9] - 343485551;\n b = (b << 21 | b >>> 11) + c << 0;\n if (this.first) {\n this.h0 = a + 1732584193 << 0;\n this.h1 = b - 271733879 << 0;\n this.h2 = c - 1732584194 << 0;\n this.h3 = d + 271733878 << 0;\n this.first = false;\n } else {\n this.h0 = this.h0 + a << 0;\n this.h1 = this.h1 + b << 0;\n this.h2 = this.h2 + c << 0;\n this.h3 = this.h3 + d << 0;\n }\n }\n\n /**\n * @method arrayBuffer\n * @memberof Md5\n * @instance\n * @description Output hash as ArrayBuffer\n * @returns {ArrayBuffer} ArrayBuffer\n * @see {@link md5.arrayBuffer}\n * @example\n * hash.arrayBuffer();\n */\n arrayBuffer() {\n this.finalize();\n\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const buffer = new ArrayBuffer(16);\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const blocks = new Uint32Array(buffer);\n blocks[0] = this.h0;\n blocks[1] = this.h1;\n blocks[2] = this.h2;\n blocks[3] = this.h3;\n return buffer;\n }\n}\nfunction arrayBuffer(uint8Arr) {\n const md5 = new Md5();\n md5.update(uint8Arr);\n return md5.arrayBuffer();\n}\n\n// taken from: https://github.com/sindresorhus/uint8array-extras\nconst objectToString = Object.prototype.toString;\nconst uint8ArrayStringified = \"[object Uint8Array]\";\nfunction isUint8Array(value) {\n if (!value) {\n return false;\n }\n if (value.constructor === Uint8Array) {\n return true;\n }\n return objectToString.call(value) === uint8ArrayStringified;\n}\nfunction assertUint8Array(value) {\n if (!isUint8Array(value)) {\n throw new TypeError(`Expected \\`Uint8Array\\`, got \\`${typeof value}\\``);\n }\n}\nfunction concatUint8Arrays(arrays, totalLength) {\n if (arrays.length === 0) {\n return new Uint8Array(0);\n }\n totalLength ??= arrays.reduce((accumulator, currentValue) => accumulator + currentValue.length, 0);\n const returnValue = new Uint8Array(totalLength);\n let offset = 0;\n for (const array of arrays) {\n assertUint8Array(array);\n returnValue.set(array, offset);\n offset += array.length;\n }\n return returnValue;\n}\nfunction assertString(value) {\n if (typeof value !== \"string\") {\n throw new TypeError(`Expected \\`string\\`, got \\`${typeof value}\\``);\n }\n}\nfunction base64ToBase64Url(base64) {\n return base64.replaceAll(\"+\", \"-\").replaceAll(\"/\", \"_\").replace(/=+$/, \"\");\n}\nfunction base64UrlToBase64(base64url) {\n return base64url.replaceAll(\"-\", \"+\").replaceAll(\"_\", \"/\");\n}\n\n// Reference: https://phuoc.ng/collection/this-vs-that/concat-vs-push/\nconst MAX_BLOCK_SIZE = 65_535;\nfunction uint8ArrayToBase64(array) {\n let {\n urlSafe = false\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n assertUint8Array(array);\n let base64;\n if (array.length < MAX_BLOCK_SIZE) {\n // Required as `btoa` and `atob` don't properly support Unicode: https://developer.mozilla.org/en-US/docs/Glossary/Base64#the_unicode_problem\n base64 = globalThis.btoa(String.fromCodePoint.apply(this, array));\n } else {\n base64 = \"\";\n for (const value of array) {\n base64 += String.fromCodePoint(value);\n }\n base64 = globalThis.btoa(base64);\n }\n return urlSafe ? base64ToBase64Url(base64) : base64;\n}\nfunction base64ToUint8Array(base64String) {\n assertString(base64String);\n return Uint8Array.from(globalThis.atob(base64UrlToBase64(base64String)), x => x.codePointAt(0));\n}\nconst byteToHexLookupTable = Array.from({\n length: 256\n}, (_, index) => index.toString(16).padStart(2, \"0\"));\nfunction uint8ArrayToHex(array) {\n assertUint8Array(array);\n\n // Concatenating a string is faster than using an array.\n let hexString = \"\";\n for (let index = 0; index < array.length; index++) {\n hexString += byteToHexLookupTable[array[index]];\n }\n return hexString;\n}\n\nasync function universalCrypto() {\n if (\"crypto\" in globalThis) {\n return globalThis.crypto;\n }\n\n // otherwise we are in node 18 so we can use `webcrypto` off of the \"node:crypto\" package and treat it as native\n // trick bundlers so that they leave this alone :)\n const pto = \"pto\";\n // this becomes `node:crypto` at runtime\n return (await import(\"node\" + \":cry\" + pto)).webcrypto;\n}\n\n/**\n * This is an implementation of the CryptoJS AES decryption scheme, without actually relying on crypto-js.\n */\n\nconst HEAD_SIZE_DWORD = 2;\nconst SALT_SIZE_DWORD = 2;\nasync function decryptCryptoJSCipherBase64(salt, ciphertext, password) {\n let {\n keySizeDWORD = 256 / 32,\n ivSizeDWORD = 128 / 32,\n iterations = 1\n } = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const crypto = await universalCrypto();\n const {\n key,\n iv\n } = await dangerouslyDeriveParameters(password, salt, keySizeDWORD, ivSizeDWORD, iterations);\n try {\n // decrypt ciphertext using key\n const plainBuffer = await crypto.subtle.decrypt({\n name: \"AES-CBC\",\n iv\n }, key, ciphertext);\n // return the plaintext from ArrayBuffer\n return getCachedTextDecoder().decode(plainBuffer);\n } catch (e) {\n throw new Error(\"Decrypt failed\");\n }\n}\nfunction parseCryptoJSCipherBase64(cryptoJSCipherBase64) {\n let salt = null;\n let ciphertext = base64ToUint8Array(cryptoJSCipherBase64);\n const [head, body] = splitUint8Array(ciphertext, HEAD_SIZE_DWORD * 4);\n\n // This effectively checks if the ciphertext starts with 'Salted__', which is the crypto-js convention.\n const headDataView = new DataView(head.buffer);\n if (headDataView.getInt32(0) === 0x53616c74 && headDataView.getInt32(4) === 0x65645f5f) {\n [salt, ciphertext] = splitUint8Array(body, SALT_SIZE_DWORD * 4);\n }\n return {\n ciphertext,\n salt\n };\n}\nasync function dangerouslyDeriveParameters(password, salt, keySizeDWORD, ivSizeDWORD, iterations) {\n const crypto = await universalCrypto();\n const passwordUint8Array = getCachedTextEncoder().encode(password);\n const keyPlusIV = dangerousEVPKDF(passwordUint8Array, salt, keySizeDWORD + ivSizeDWORD, iterations);\n const [rawKey, iv] = splitUint8Array(keyPlusIV, keySizeDWORD * 4);\n const key = await crypto.subtle.importKey(\"raw\", rawKey, \"AES-CBC\", false, [\"decrypt\"]);\n return {\n key,\n iv\n };\n}\nfunction dangerousEVPKDF(passwordUint8Array, saltUint8Array, keySizeDWORD, iterations) {\n let derivedKey = new Uint8Array();\n let block = new Uint8Array();\n while (derivedKey.byteLength < keySizeDWORD * 4) {\n block = new Uint8Array(arrayBuffer(concatUint8Arrays([block, passwordUint8Array, saltUint8Array])));\n for (let i = 1; i < iterations; i++) {\n block = new Uint8Array(arrayBuffer(block));\n }\n derivedKey = concatUint8Arrays([derivedKey, block]);\n }\n return derivedKey;\n}\nfunction splitUint8Array(a, i) {\n return [a.subarray(0, i), a.subarray(i, a.length)];\n}\n\n/**\n * Decrypts ciphertext encrypted with aesEncrypt() using supplied password.\n *\n * @param ciphertext - Ciphertext to be decrypted.\n * @param password - Password to use to decrypt ciphertext.\n * @returns Decrypted plaintext.\n *\n * @example\n * const plaintext = await aesDecrypt(ciphertext, 'pw');\n */\nasync function aesDecrypt(ciphertext, password) {\n const crypto = await universalCrypto();\n // encode password as UTF-8\n const pwUtf8 = getCachedTextEncoder().encode(password);\n // hash the password\n const pwHash = await crypto.subtle.digest(\"SHA-256\", pwUtf8);\n const cipherUint8Array = base64ToUint8Array(ciphertext);\n\n // iv\n const iv = cipherUint8Array.slice(0, 12);\n\n // specify algorithm to use\n const alg = {\n name: \"AES-GCM\",\n iv\n };\n\n // generate key from pw\n const key = await crypto.subtle.importKey(\"raw\", pwHash, alg, false, [\"decrypt\"]);\n\n // ciphertext\n const ctUint8 = cipherUint8Array.slice(12);\n try {\n // decrypt ciphertext using key\n const plainBuffer = await crypto.subtle.decrypt(alg, key, ctUint8);\n // return the plaintext from ArrayBuffer\n return getCachedTextDecoder().decode(plainBuffer);\n } catch (e) {\n throw new Error(\"Decrypt failed\");\n }\n}\n\n/**\n * Decrypts ciphertext encrypted with aesEncrypt() OR \"crypto-js\".AES using supplied password.\n *\n * @param ciphertext - Ciphertext to be decrypted.\n * @param password - Password to use to decrypt ciphertext.\n * @returns Decrypted plaintext.\n *\n * @example\n * const plaintext = await aesDecryptCompat(ciphertext, 'pw');\n */\nasync function aesDecryptCompat(ciphertext, password) {\n // determine if we're dealing with a legacy (cryptojs) ciphertext\n const cryptoJs = parseCryptoJSCipherBase64(ciphertext);\n if (cryptoJs.salt && cryptoJs.ciphertext) {\n return decryptCryptoJSCipherBase64(cryptoJs.salt, cryptoJs.ciphertext, password);\n }\n // otherwise assume it's a ciphertext generated by aesEncrypt()\n return aesDecrypt(ciphertext, password);\n}\n\n/**\n * Encrypts plaintext using AES-GCM with supplied password, for decryption with aesDecrypt().\n *\n * @param plaintext - Plaintext to be encrypted.\n * @param password - Password to use to encrypt plaintext.\n * @returns Encrypted ciphertext.\n *\n * @example\n * const ciphertext = await aesEncrypt('my secret text', 'pw');\n */\nasync function aesEncrypt(plaintext, password) {\n const crypto = await universalCrypto();\n const textEncoder = getCachedTextEncoder();\n // encode password as UTF-8\n const pwUtf8 = textEncoder.encode(password);\n // hash the password\n const pwHash = await crypto.subtle.digest(\"SHA-256\", pwUtf8);\n\n // get 96-bit random iv\n const iv = crypto.getRandomValues(new Uint8Array(12));\n\n // specify algorithm to use\n const alg = {\n name: \"AES-GCM\",\n iv\n };\n\n // generate key from pw\n const key = await crypto.subtle.importKey(\"raw\", pwHash, alg, false, [\"encrypt\"]);\n\n // encode plaintext as UTF-8\n const ptUint8 = textEncoder.encode(plaintext);\n // encrypt plaintext using key\n const ctBuffer = await crypto.subtle.encrypt(alg, key, ptUint8);\n\n // iv+ciphertext base64-encoded\n return uint8ArrayToBase64(concatUint8Arrays([iv, new Uint8Array(ctBuffer)]));\n}\n\n/**\n * Hash a string or Uint8Array using sha256.\n * @param value - Value to be hashed.\n * @returns A promise that resolves to the hash of the value as Uint8Array.\n */\nasync function sha256(value) {\n let encodedValue;\n if (typeof value === \"string\") {\n // if we do not have a cahced TextEncoder instance, create one\n\n encodedValue = getCachedTextEncoder().encode(value);\n } else {\n encodedValue = value;\n }\n return new Uint8Array(await (await universalCrypto()).subtle.digest(\"SHA-256\", encodedValue));\n}\n\n/**\n * Hash a string or Uint8Array using sha256 and returns the result as a hex string.\n * @param value - Value to be hashed.\n * @returns A promise that resolves to the hash of the value as a hex string.\n */\nasync function sha256Hex(value) {\n return uint8ArrayToHex(await sha256(value));\n}\n\n/**\n * Hash a string or Uint8Array using sha256.\n * @param value - Value to be hashed.\n * @returns The hash of the value as Uint8Array.\n */\nfunction sha256Sync(value) {\n return sha256$1(value);\n}\n\n/**\n * Hash a string or Uint8Array using sha256.\n * @param value - Value to be hashed.\n * @returns The hash of the value as a hex string.\n */\nfunction sha256HexSync(value) {\n return uint8ArrayToHex(sha256Sync(value));\n}\n\n/**\n * Hashes a string or Uint8Array using keccak256.\n * @param value - Value to be hashed.\n * @returns Hash of the value as Uint8Array.\n */\nfunction keccak256Sync(value) {\n return new Uint8Array(keccak_256.arrayBuffer(value));\n}\n\n/**\n * Hashes a string or Uint8Array using keccak256 and returns the result as a hex string.\n * @param value - Value to be hashed.\n * @returns Hash of the value as a hex string.\n */\nfunction keccak256SyncHex(value) {\n return keccak_256(value);\n}\n\n/**\n * Hashes a string or Uint8Array using keccak256 and returns the result as a hex string prefixed with \"0x\".\n * @param value - Value to be hashed.\n * @returns Hash of the value as a hex string prefixed with \"0x\".\n */\nfunction keccak256SyncHexPrefixed(value) {\n // prefix with 0x (this is what ethers.utils.keccak256 does)\n return `0x${keccak256SyncHex(value)}`;\n}\n\nexport { aesDecrypt, aesDecryptCompat, aesEncrypt, keccak256Sync, keccak256SyncHex, keccak256SyncHexPrefixed, sha256, sha256Hex, sha256HexSync, sha256Sync };\n","/**\n * [js-sha3]{@link https://github.com/emn178/js-sha3}\n *\n * @version 0.9.3\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2015-2023\n * @license MIT\n */\n/*jslint bitwise: true */\n(function () {\n 'use strict';\n\n var INPUT_ERROR = 'input is invalid type';\n var FINALIZE_ERROR = 'finalize already called';\n var WINDOW = typeof window === 'object';\n var root = WINDOW ? window : {};\n if (root.JS_SHA3_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_SHA3_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;\n if (NODE_JS) {\n root = global;\n } else if (WEB_WORKER) {\n root = self;\n }\n var COMMON_JS = !root.JS_SHA3_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_SHA3_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var SHAKE_PADDING = [31, 7936, 2031616, 520093696];\n var CSHAKE_PADDING = [4, 1024, 262144, 67108864];\n var KECCAK_PADDING = [1, 256, 65536, 16777216];\n var PADDING = [6, 1536, 393216, 100663296];\n var SHIFT = [0, 8, 16, 24];\n var RC = [1, 0, 32898, 0, 32906, 2147483648, 2147516416, 2147483648, 32907, 0, 2147483649,\n 0, 2147516545, 2147483648, 32777, 2147483648, 138, 0, 136, 0, 2147516425, 0,\n 2147483658, 0, 2147516555, 0, 139, 2147483648, 32905, 2147483648, 32771,\n 2147483648, 32770, 2147483648, 128, 2147483648, 32778, 0, 2147483658, 2147483648,\n 2147516545, 2147483648, 32896, 2147483648, 2147483649, 0, 2147516424, 2147483648];\n var BITS = [224, 256, 384, 512];\n var SHAKE_BITS = [128, 256];\n var OUTPUT_TYPES = ['hex', 'buffer', 'arrayBuffer', 'array', 'digest'];\n var CSHAKE_BYTEPAD = {\n '128': 168,\n '256': 136\n };\n\n\n var isArray = root.JS_SHA3_NO_NODE_JS || !Array.isArray\n ? function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n }\n : Array.isArray;\n\n var isView = (ARRAY_BUFFER && (root.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView))\n ? function (obj) {\n return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n }\n : ArrayBuffer.isView;\n\n // [message: string, isString: bool]\n var formatMessage = function (message) {\n var type = typeof message;\n if (type === 'string') {\n return [message, true];\n }\n if (type !== 'object' || message === null) {\n throw new Error(INPUT_ERROR);\n }\n if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n return [new Uint8Array(message), false];\n }\n if (!isArray(message) && !isView(message)) {\n throw new Error(INPUT_ERROR);\n }\n return [message, false];\n }\n\n var empty = function (message) {\n return formatMessage(message)[0].length === 0;\n };\n\n var cloneArray = function (array) {\n var newArray = [];\n for (var i = 0; i < array.length; ++i) {\n newArray[i] = array[i];\n }\n return newArray;\n }\n\n var createOutputMethod = function (bits, padding, outputType) {\n return function (message) {\n return new Keccak(bits, padding, bits).update(message)[outputType]();\n };\n };\n\n var createShakeOutputMethod = function (bits, padding, outputType) {\n return function (message, outputBits) {\n return new Keccak(bits, padding, outputBits).update(message)[outputType]();\n };\n };\n\n var createCshakeOutputMethod = function (bits, padding, outputType) {\n return function (message, outputBits, n, s) {\n return methods['cshake' + bits].update(message, outputBits, n, s)[outputType]();\n };\n };\n\n var createKmacOutputMethod = function (bits, padding, outputType) {\n return function (key, message, outputBits, s) {\n return methods['kmac' + bits].update(key, message, outputBits, s)[outputType]();\n };\n };\n\n var createOutputMethods = function (method, createMethod, bits, padding) {\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createMethod(bits, padding, type);\n }\n return method;\n };\n\n var createMethod = function (bits, padding) {\n var method = createOutputMethod(bits, padding, 'hex');\n method.create = function () {\n return new Keccak(bits, padding, bits);\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n return createOutputMethods(method, createOutputMethod, bits, padding);\n };\n\n var createShakeMethod = function (bits, padding) {\n var method = createShakeOutputMethod(bits, padding, 'hex');\n method.create = function (outputBits) {\n return new Keccak(bits, padding, outputBits);\n };\n method.update = function (message, outputBits) {\n return method.create(outputBits).update(message);\n };\n return createOutputMethods(method, createShakeOutputMethod, bits, padding);\n };\n\n var createCshakeMethod = function (bits, padding) {\n var w = CSHAKE_BYTEPAD[bits];\n var method = createCshakeOutputMethod(bits, padding, 'hex');\n method.create = function (outputBits, n, s) {\n if (empty(n) && empty(s)) {\n return methods['shake' + bits].create(outputBits);\n } else {\n return new Keccak(bits, padding, outputBits).bytepad([n, s], w);\n }\n };\n method.update = function (message, outputBits, n, s) {\n return method.create(outputBits, n, s).update(message);\n };\n return createOutputMethods(method, createCshakeOutputMethod, bits, padding);\n };\n\n var createKmacMethod = function (bits, padding) {\n var w = CSHAKE_BYTEPAD[bits];\n var method = createKmacOutputMethod(bits, padding, 'hex');\n method.create = function (key, outputBits, s) {\n return new Kmac(bits, padding, outputBits).bytepad(['KMAC', s], w).bytepad([key], w);\n };\n method.update = function (key, message, outputBits, s) {\n return method.create(key, outputBits, s).update(message);\n };\n return createOutputMethods(method, createKmacOutputMethod, bits, padding);\n };\n\n var algorithms = [\n { name: 'keccak', padding: KECCAK_PADDING, bits: BITS, createMethod: createMethod },\n { name: 'sha3', padding: PADDING, bits: BITS, createMethod: createMethod },\n { name: 'shake', padding: SHAKE_PADDING, bits: SHAKE_BITS, createMethod: createShakeMethod },\n { name: 'cshake', padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createCshakeMethod },\n { name: 'kmac', padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createKmacMethod }\n ];\n\n var methods = {}, methodNames = [];\n\n for (var i = 0; i < algorithms.length; ++i) {\n var algorithm = algorithms[i];\n var bits = algorithm.bits;\n for (var j = 0; j < bits.length; ++j) {\n var methodName = algorithm.name + '_' + bits[j];\n methodNames.push(methodName);\n methods[methodName] = algorithm.createMethod(bits[j], algorithm.padding);\n if (algorithm.name !== 'sha3') {\n var newMethodName = algorithm.name + bits[j];\n methodNames.push(newMethodName);\n methods[newMethodName] = methods[methodName];\n }\n }\n }\n\n function Keccak(bits, padding, outputBits) {\n this.blocks = [];\n this.s = [];\n this.padding = padding;\n this.outputBits = outputBits;\n this.reset = true;\n this.finalized = false;\n this.block = 0;\n this.start = 0;\n this.blockCount = (1600 - (bits << 1)) >> 5;\n this.byteCount = this.blockCount << 2;\n this.outputBlocks = outputBits >> 5;\n this.extraBytes = (outputBits & 31) >> 3;\n\n for (var i = 0; i < 50; ++i) {\n this.s[i] = 0;\n }\n }\n\n Keccak.prototype.update = function (message) {\n if (this.finalized) {\n throw new Error(FINALIZE_ERROR);\n }\n var result = formatMessage(message);\n message = result[0];\n var isString = result[1];\n var blocks = this.blocks, byteCount = this.byteCount, length = message.length,\n blockCount = this.blockCount, index = 0, s = this.s, i, code;\n\n while (index < length) {\n if (this.reset) {\n this.reset = false;\n blocks[0] = this.block;\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n if (isString) {\n for (i = this.start; index < length && i < byteCount; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n } else {\n for (i = this.start; index < length && i < byteCount; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n }\n this.lastByteIndex = i;\n if (i >= byteCount) {\n this.start = i - byteCount;\n this.block = blocks[blockCount];\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n this.reset = true;\n } else {\n this.start = i;\n }\n }\n return this;\n };\n\n Keccak.prototype.encode = function (x, right) {\n var o = x & 255, n = 1;\n var bytes = [o];\n x = x >> 8;\n o = x & 255;\n while (o > 0) {\n bytes.unshift(o);\n x = x >> 8;\n o = x & 255;\n ++n;\n }\n if (right) {\n bytes.push(n);\n } else {\n bytes.unshift(n);\n }\n this.update(bytes);\n return bytes.length;\n };\n\n Keccak.prototype.encodeString = function (str) {\n var result = formatMessage(str);\n str = result[0];\n var isString = result[1];\n var bytes = 0, length = str.length;\n if (isString) {\n for (var i = 0; i < str.length; ++i) {\n var code = str.charCodeAt(i);\n if (code < 0x80) {\n bytes += 1;\n } else if (code < 0x800) {\n bytes += 2;\n } else if (code < 0xd800 || code >= 0xe000) {\n bytes += 3;\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (str.charCodeAt(++i) & 0x3ff));\n bytes += 4;\n }\n }\n } else {\n bytes = length;\n }\n bytes += this.encode(bytes * 8);\n this.update(str);\n return bytes;\n };\n\n Keccak.prototype.bytepad = function (strs, w) {\n var bytes = this.encode(w);\n for (var i = 0; i < strs.length; ++i) {\n bytes += this.encodeString(strs[i]);\n }\n var paddingBytes = (w - bytes % w) % w;\n var zeros = [];\n zeros.length = paddingBytes;\n this.update(zeros);\n return this;\n };\n\n Keccak.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex, blockCount = this.blockCount, s = this.s;\n blocks[i >> 2] |= this.padding[i & 3];\n if (this.lastByteIndex === this.byteCount) {\n blocks[0] = blocks[blockCount];\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n blocks[blockCount - 1] |= 0x80000000;\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n };\n\n Keccak.prototype.toString = Keccak.prototype.hex = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var hex = '', block;\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n block = s[i];\n hex += HEX_CHARS[(block >> 4) & 0x0F] + HEX_CHARS[block & 0x0F] +\n HEX_CHARS[(block >> 12) & 0x0F] + HEX_CHARS[(block >> 8) & 0x0F] +\n HEX_CHARS[(block >> 20) & 0x0F] + HEX_CHARS[(block >> 16) & 0x0F] +\n HEX_CHARS[(block >> 28) & 0x0F] + HEX_CHARS[(block >> 24) & 0x0F];\n }\n if (j % blockCount === 0) {\n s = cloneArray(s);\n f(s);\n i = 0;\n }\n }\n if (extraBytes) {\n block = s[i];\n hex += HEX_CHARS[(block >> 4) & 0x0F] + HEX_CHARS[block & 0x0F];\n if (extraBytes > 1) {\n hex += HEX_CHARS[(block >> 12) & 0x0F] + HEX_CHARS[(block >> 8) & 0x0F];\n }\n if (extraBytes > 2) {\n hex += HEX_CHARS[(block >> 20) & 0x0F] + HEX_CHARS[(block >> 16) & 0x0F];\n }\n }\n return hex;\n };\n\n Keccak.prototype.arrayBuffer = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var bytes = this.outputBits >> 3;\n var buffer;\n if (extraBytes) {\n buffer = new ArrayBuffer((outputBlocks + 1) << 2);\n } else {\n buffer = new ArrayBuffer(bytes);\n }\n var array = new Uint32Array(buffer);\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n array[j] = s[i];\n }\n if (j % blockCount === 0) {\n s = cloneArray(s);\n f(s);\n }\n }\n if (extraBytes) {\n array[j] = s[i];\n buffer = buffer.slice(0, bytes);\n }\n return buffer;\n };\n\n Keccak.prototype.buffer = Keccak.prototype.arrayBuffer;\n\n Keccak.prototype.digest = Keccak.prototype.array = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var array = [], offset, block;\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n offset = j << 2;\n block = s[i];\n array[offset] = block & 0xFF;\n array[offset + 1] = (block >> 8) & 0xFF;\n array[offset + 2] = (block >> 16) & 0xFF;\n array[offset + 3] = (block >> 24) & 0xFF;\n }\n if (j % blockCount === 0) {\n s = cloneArray(s);\n f(s);\n }\n }\n if (extraBytes) {\n offset = j << 2;\n block = s[i];\n array[offset] = block & 0xFF;\n if (extraBytes > 1) {\n array[offset + 1] = (block >> 8) & 0xFF;\n }\n if (extraBytes > 2) {\n array[offset + 2] = (block >> 16) & 0xFF;\n }\n }\n return array;\n };\n\n function Kmac(bits, padding, outputBits) {\n Keccak.call(this, bits, padding, outputBits);\n }\n\n Kmac.prototype = new Keccak();\n\n Kmac.prototype.finalize = function () {\n this.encode(this.outputBits, true);\n return Keccak.prototype.finalize.call(this);\n };\n\n var f = function (s) {\n var h, l, n, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9,\n b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17,\n b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32, b33,\n b34, b35, b36, b37, b38, b39, b40, b41, b42, b43, b44, b45, b46, b47, b48, b49;\n for (n = 0; n < 48; n += 2) {\n c0 = s[0] ^ s[10] ^ s[20] ^ s[30] ^ s[40];\n c1 = s[1] ^ s[11] ^ s[21] ^ s[31] ^ s[41];\n c2 = s[2] ^ s[12] ^ s[22] ^ s[32] ^ s[42];\n c3 = s[3] ^ s[13] ^ s[23] ^ s[33] ^ s[43];\n c4 = s[4] ^ s[14] ^ s[24] ^ s[34] ^ s[44];\n c5 = s[5] ^ s[15] ^ s[25] ^ s[35] ^ s[45];\n c6 = s[6] ^ s[16] ^ s[26] ^ s[36] ^ s[46];\n c7 = s[7] ^ s[17] ^ s[27] ^ s[37] ^ s[47];\n c8 = s[8] ^ s[18] ^ s[28] ^ s[38] ^ s[48];\n c9 = s[9] ^ s[19] ^ s[29] ^ s[39] ^ s[49];\n\n h = c8 ^ ((c2 << 1) | (c3 >>> 31));\n l = c9 ^ ((c3 << 1) | (c2 >>> 31));\n s[0] ^= h;\n s[1] ^= l;\n s[10] ^= h;\n s[11] ^= l;\n s[20] ^= h;\n s[21] ^= l;\n s[30] ^= h;\n s[31] ^= l;\n s[40] ^= h;\n s[41] ^= l;\n h = c0 ^ ((c4 << 1) | (c5 >>> 31));\n l = c1 ^ ((c5 << 1) | (c4 >>> 31));\n s[2] ^= h;\n s[3] ^= l;\n s[12] ^= h;\n s[13] ^= l;\n s[22] ^= h;\n s[23] ^= l;\n s[32] ^= h;\n s[33] ^= l;\n s[42] ^= h;\n s[43] ^= l;\n h = c2 ^ ((c6 << 1) | (c7 >>> 31));\n l = c3 ^ ((c7 << 1) | (c6 >>> 31));\n s[4] ^= h;\n s[5] ^= l;\n s[14] ^= h;\n s[15] ^= l;\n s[24] ^= h;\n s[25] ^= l;\n s[34] ^= h;\n s[35] ^= l;\n s[44] ^= h;\n s[45] ^= l;\n h = c4 ^ ((c8 << 1) | (c9 >>> 31));\n l = c5 ^ ((c9 << 1) | (c8 >>> 31));\n s[6] ^= h;\n s[7] ^= l;\n s[16] ^= h;\n s[17] ^= l;\n s[26] ^= h;\n s[27] ^= l;\n s[36] ^= h;\n s[37] ^= l;\n s[46] ^= h;\n s[47] ^= l;\n h = c6 ^ ((c0 << 1) | (c1 >>> 31));\n l = c7 ^ ((c1 << 1) | (c0 >>> 31));\n s[8] ^= h;\n s[9] ^= l;\n s[18] ^= h;\n s[19] ^= l;\n s[28] ^= h;\n s[29] ^= l;\n s[38] ^= h;\n s[39] ^= l;\n s[48] ^= h;\n s[49] ^= l;\n\n b0 = s[0];\n b1 = s[1];\n b32 = (s[11] << 4) | (s[10] >>> 28);\n b33 = (s[10] << 4) | (s[11] >>> 28);\n b14 = (s[20] << 3) | (s[21] >>> 29);\n b15 = (s[21] << 3) | (s[20] >>> 29);\n b46 = (s[31] << 9) | (s[30] >>> 23);\n b47 = (s[30] << 9) | (s[31] >>> 23);\n b28 = (s[40] << 18) | (s[41] >>> 14);\n b29 = (s[41] << 18) | (s[40] >>> 14);\n b20 = (s[2] << 1) | (s[3] >>> 31);\n b21 = (s[3] << 1) | (s[2] >>> 31);\n b2 = (s[13] << 12) | (s[12] >>> 20);\n b3 = (s[12] << 12) | (s[13] >>> 20);\n b34 = (s[22] << 10) | (s[23] >>> 22);\n b35 = (s[23] << 10) | (s[22] >>> 22);\n b16 = (s[33] << 13) | (s[32] >>> 19);\n b17 = (s[32] << 13) | (s[33] >>> 19);\n b48 = (s[42] << 2) | (s[43] >>> 30);\n b49 = (s[43] << 2) | (s[42] >>> 30);\n b40 = (s[5] << 30) | (s[4] >>> 2);\n b41 = (s[4] << 30) | (s[5] >>> 2);\n b22 = (s[14] << 6) | (s[15] >>> 26);\n b23 = (s[15] << 6) | (s[14] >>> 26);\n b4 = (s[25] << 11) | (s[24] >>> 21);\n b5 = (s[24] << 11) | (s[25] >>> 21);\n b36 = (s[34] << 15) | (s[35] >>> 17);\n b37 = (s[35] << 15) | (s[34] >>> 17);\n b18 = (s[45] << 29) | (s[44] >>> 3);\n b19 = (s[44] << 29) | (s[45] >>> 3);\n b10 = (s[6] << 28) | (s[7] >>> 4);\n b11 = (s[7] << 28) | (s[6] >>> 4);\n b42 = (s[17] << 23) | (s[16] >>> 9);\n b43 = (s[16] << 23) | (s[17] >>> 9);\n b24 = (s[26] << 25) | (s[27] >>> 7);\n b25 = (s[27] << 25) | (s[26] >>> 7);\n b6 = (s[36] << 21) | (s[37] >>> 11);\n b7 = (s[37] << 21) | (s[36] >>> 11);\n b38 = (s[47] << 24) | (s[46] >>> 8);\n b39 = (s[46] << 24) | (s[47] >>> 8);\n b30 = (s[8] << 27) | (s[9] >>> 5);\n b31 = (s[9] << 27) | (s[8] >>> 5);\n b12 = (s[18] << 20) | (s[19] >>> 12);\n b13 = (s[19] << 20) | (s[18] >>> 12);\n b44 = (s[29] << 7) | (s[28] >>> 25);\n b45 = (s[28] << 7) | (s[29] >>> 25);\n b26 = (s[38] << 8) | (s[39] >>> 24);\n b27 = (s[39] << 8) | (s[38] >>> 24);\n b8 = (s[48] << 14) | (s[49] >>> 18);\n b9 = (s[49] << 14) | (s[48] >>> 18);\n\n s[0] = b0 ^ (~b2 & b4);\n s[1] = b1 ^ (~b3 & b5);\n s[10] = b10 ^ (~b12 & b14);\n s[11] = b11 ^ (~b13 & b15);\n s[20] = b20 ^ (~b22 & b24);\n s[21] = b21 ^ (~b23 & b25);\n s[30] = b30 ^ (~b32 & b34);\n s[31] = b31 ^ (~b33 & b35);\n s[40] = b40 ^ (~b42 & b44);\n s[41] = b41 ^ (~b43 & b45);\n s[2] = b2 ^ (~b4 & b6);\n s[3] = b3 ^ (~b5 & b7);\n s[12] = b12 ^ (~b14 & b16);\n s[13] = b13 ^ (~b15 & b17);\n s[22] = b22 ^ (~b24 & b26);\n s[23] = b23 ^ (~b25 & b27);\n s[32] = b32 ^ (~b34 & b36);\n s[33] = b33 ^ (~b35 & b37);\n s[42] = b42 ^ (~b44 & b46);\n s[43] = b43 ^ (~b45 & b47);\n s[4] = b4 ^ (~b6 & b8);\n s[5] = b5 ^ (~b7 & b9);\n s[14] = b14 ^ (~b16 & b18);\n s[15] = b15 ^ (~b17 & b19);\n s[24] = b24 ^ (~b26 & b28);\n s[25] = b25 ^ (~b27 & b29);\n s[34] = b34 ^ (~b36 & b38);\n s[35] = b35 ^ (~b37 & b39);\n s[44] = b44 ^ (~b46 & b48);\n s[45] = b45 ^ (~b47 & b49);\n s[6] = b6 ^ (~b8 & b0);\n s[7] = b7 ^ (~b9 & b1);\n s[16] = b16 ^ (~b18 & b10);\n s[17] = b17 ^ (~b19 & b11);\n s[26] = b26 ^ (~b28 & b20);\n s[27] = b27 ^ (~b29 & b21);\n s[36] = b36 ^ (~b38 & b30);\n s[37] = b37 ^ (~b39 & b31);\n s[46] = b46 ^ (~b48 & b40);\n s[47] = b47 ^ (~b49 & b41);\n s[8] = b8 ^ (~b0 & b2);\n s[9] = b9 ^ (~b1 & b3);\n s[18] = b18 ^ (~b10 & b12);\n s[19] = b19 ^ (~b11 & b13);\n s[28] = b28 ^ (~b20 & b22);\n s[29] = b29 ^ (~b21 & b23);\n s[38] = b38 ^ (~b30 & b32);\n s[39] = b39 ^ (~b31 & b33);\n s[48] = b48 ^ (~b40 & b42);\n s[49] = b49 ^ (~b41 & b43);\n\n s[0] ^= RC[n];\n s[1] ^= RC[n + 1];\n }\n };\n\n if (COMMON_JS) {\n module.exports = methods;\n } else {\n for (i = 0; i < methodNames.length; ++i) {\n root[methodNames[i]] = methods[methodNames[i]];\n }\n if (AMD) {\n define(function () {\n return methods;\n });\n }\n }\n})();\n","const GENERATED_ABI = {};\n\nexport { GENERATED_ABI };\n","import { getAbortController, noop, replaceData, timeUntilStale } from './utils'\nimport { defaultLogger } from './logger'\nimport { notifyManager } from './notifyManager'\nimport { canFetch, createRetryer, isCancelledError } from './retryer'\nimport { Removable } from './removable'\nimport type {\n CancelOptions,\n FetchStatus,\n InitialDataFunction,\n QueryFunctionContext,\n QueryKey,\n QueryMeta,\n QueryOptions,\n QueryStatus,\n SetDataOptions,\n} from './types'\nimport type { QueryCache } from './queryCache'\nimport type { QueryObserver } from './queryObserver'\nimport type { Logger } from './logger'\nimport type { Retryer } from './retryer'\n\n// TYPES\n\ninterface QueryConfig<\n TQueryFnData,\n TError,\n TData,\n TQueryKey extends QueryKey = QueryKey,\n> {\n cache: QueryCache\n queryKey: TQueryKey\n queryHash: string\n logger?: Logger\n options?: QueryOptions\n defaultOptions?: QueryOptions\n state?: QueryState\n}\n\nexport interface QueryState {\n data: TData | undefined\n dataUpdateCount: number\n dataUpdatedAt: number\n error: TError | null\n errorUpdateCount: number\n errorUpdatedAt: number\n fetchFailureCount: number\n fetchFailureReason: TError | null\n fetchMeta: any\n isInvalidated: boolean\n status: QueryStatus\n fetchStatus: FetchStatus\n}\n\nexport interface FetchContext<\n TQueryFnData,\n TError,\n TData,\n TQueryKey extends QueryKey = QueryKey,\n> {\n fetchFn: () => unknown | Promise\n fetchOptions?: FetchOptions\n signal?: AbortSignal\n options: QueryOptions\n queryKey: TQueryKey\n state: QueryState\n}\n\nexport interface QueryBehavior<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> {\n onFetch: (\n context: FetchContext,\n ) => void\n}\n\nexport interface FetchOptions {\n cancelRefetch?: boolean\n meta?: any\n}\n\ninterface FailedAction {\n type: 'failed'\n failureCount: number\n error: TError\n}\n\ninterface FetchAction {\n type: 'fetch'\n meta?: any\n}\n\ninterface SuccessAction {\n data: TData | undefined\n type: 'success'\n dataUpdatedAt?: number\n manual?: boolean\n}\n\ninterface ErrorAction {\n type: 'error'\n error: TError\n}\n\ninterface InvalidateAction {\n type: 'invalidate'\n}\n\ninterface PauseAction {\n type: 'pause'\n}\n\ninterface ContinueAction {\n type: 'continue'\n}\n\ninterface SetStateAction {\n type: 'setState'\n state: Partial>\n setStateOptions?: SetStateOptions\n}\n\nexport type Action =\n | ContinueAction\n | ErrorAction\n | FailedAction\n | FetchAction\n | InvalidateAction\n | PauseAction\n | SetStateAction\n | SuccessAction\n\nexport interface SetStateOptions {\n meta?: any\n}\n\n// CLASS\n\nexport class Query<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> extends Removable {\n queryKey: TQueryKey\n queryHash: string\n options!: QueryOptions\n initialState: QueryState\n revertState?: QueryState\n state: QueryState\n isFetchingOptimistic?: boolean\n\n private cache: QueryCache\n private logger: Logger\n private promise?: Promise\n private retryer?: Retryer\n private observers: QueryObserver[]\n private defaultOptions?: QueryOptions\n private abortSignalConsumed: boolean\n\n constructor(config: QueryConfig) {\n super()\n\n this.abortSignalConsumed = false\n this.defaultOptions = config.defaultOptions\n this.setOptions(config.options)\n this.observers = []\n this.cache = config.cache\n this.logger = config.logger || defaultLogger\n this.queryKey = config.queryKey\n this.queryHash = config.queryHash\n this.initialState = config.state || getDefaultState(this.options)\n this.state = this.initialState\n this.scheduleGc()\n }\n\n get meta(): QueryMeta | undefined {\n return this.options.meta\n }\n\n private setOptions(\n options?: QueryOptions,\n ): void {\n this.options = { ...this.defaultOptions, ...options }\n\n this.updateCacheTime(this.options.cacheTime)\n }\n\n protected optionalRemove() {\n if (!this.observers.length && this.state.fetchStatus === 'idle') {\n this.cache.remove(this)\n }\n }\n\n setData(\n newData: TData,\n options?: SetDataOptions & { manual: boolean },\n ): TData {\n const data = replaceData(this.state.data, newData, this.options)\n\n // Set data and mark it as cached\n this.dispatch({\n data,\n type: 'success',\n dataUpdatedAt: options?.updatedAt,\n manual: options?.manual,\n })\n\n return data\n }\n\n setState(\n state: Partial>,\n setStateOptions?: SetStateOptions,\n ): void {\n this.dispatch({ type: 'setState', state, setStateOptions })\n }\n\n cancel(options?: CancelOptions): Promise {\n const promise = this.promise\n this.retryer?.cancel(options)\n return promise ? promise.then(noop).catch(noop) : Promise.resolve()\n }\n\n destroy(): void {\n super.destroy()\n\n this.cancel({ silent: true })\n }\n\n reset(): void {\n this.destroy()\n this.setState(this.initialState)\n }\n\n isActive(): boolean {\n return this.observers.some((observer) => observer.options.enabled !== false)\n }\n\n isDisabled(): boolean {\n return this.getObserversCount() > 0 && !this.isActive()\n }\n\n isStale(): boolean {\n return (\n this.state.isInvalidated ||\n !this.state.dataUpdatedAt ||\n this.observers.some((observer) => observer.getCurrentResult().isStale)\n )\n }\n\n isStaleByTime(staleTime = 0): boolean {\n return (\n this.state.isInvalidated ||\n !this.state.dataUpdatedAt ||\n !timeUntilStale(this.state.dataUpdatedAt, staleTime)\n )\n }\n\n onFocus(): void {\n const observer = this.observers.find((x) => x.shouldFetchOnWindowFocus())\n\n if (observer) {\n observer.refetch({ cancelRefetch: false })\n }\n\n // Continue fetch if currently paused\n this.retryer?.continue()\n }\n\n onOnline(): void {\n const observer = this.observers.find((x) => x.shouldFetchOnReconnect())\n\n if (observer) {\n observer.refetch({ cancelRefetch: false })\n }\n\n // Continue fetch if currently paused\n this.retryer?.continue()\n }\n\n addObserver(observer: QueryObserver): void {\n if (!this.observers.includes(observer)) {\n this.observers.push(observer)\n\n // Stop the query from being garbage collected\n this.clearGcTimeout()\n\n this.cache.notify({ type: 'observerAdded', query: this, observer })\n }\n }\n\n removeObserver(observer: QueryObserver): void {\n if (this.observers.includes(observer)) {\n this.observers = this.observers.filter((x) => x !== observer)\n\n if (!this.observers.length) {\n // If the transport layer does not support cancellation\n // we'll let the query continue so the result can be cached\n if (this.retryer) {\n if (this.abortSignalConsumed) {\n this.retryer.cancel({ revert: true })\n } else {\n this.retryer.cancelRetry()\n }\n }\n\n this.scheduleGc()\n }\n\n this.cache.notify({ type: 'observerRemoved', query: this, observer })\n }\n }\n\n getObserversCount(): number {\n return this.observers.length\n }\n\n invalidate(): void {\n if (!this.state.isInvalidated) {\n this.dispatch({ type: 'invalidate' })\n }\n }\n\n fetch(\n options?: QueryOptions,\n fetchOptions?: FetchOptions,\n ): Promise {\n if (this.state.fetchStatus !== 'idle') {\n if (this.state.dataUpdatedAt && fetchOptions?.cancelRefetch) {\n // Silently cancel current fetch if the user wants to cancel refetches\n this.cancel({ silent: true })\n } else if (this.promise) {\n // make sure that retries that were potentially cancelled due to unmounts can continue\n this.retryer?.continueRetry()\n // Return current promise if we are already fetching\n return this.promise\n }\n }\n\n // Update config if passed, otherwise the config from the last execution is used\n if (options) {\n this.setOptions(options)\n }\n\n // Use the options from the first observer with a query function if no function is found.\n // This can happen when the query is hydrated or created with setQueryData.\n if (!this.options.queryFn) {\n const observer = this.observers.find((x) => x.options.queryFn)\n if (observer) {\n this.setOptions(observer.options)\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!Array.isArray(this.options.queryKey)) {\n this.logger.error(\n `As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']`,\n )\n }\n }\n\n const abortController = getAbortController()\n\n // Create query function context\n const queryFnContext: QueryFunctionContext = {\n queryKey: this.queryKey,\n pageParam: undefined,\n meta: this.meta,\n }\n\n // Adds an enumerable signal property to the object that\n // which sets abortSignalConsumed to true when the signal\n // is read.\n const addSignalProperty = (object: unknown) => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n if (abortController) {\n this.abortSignalConsumed = true\n return abortController.signal\n }\n return undefined\n },\n })\n }\n\n addSignalProperty(queryFnContext)\n\n // Create fetch function\n const fetchFn = () => {\n if (!this.options.queryFn) {\n return Promise.reject(\n `Missing queryFn for queryKey '${this.options.queryHash}'`,\n )\n }\n this.abortSignalConsumed = false\n return this.options.queryFn(queryFnContext)\n }\n\n // Trigger behavior hook\n const context: FetchContext = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n state: this.state,\n fetchFn,\n }\n\n addSignalProperty(context)\n\n this.options.behavior?.onFetch(context)\n\n // Store state in case the current fetch needs to be reverted\n this.revertState = this.state\n\n // Set to fetching state if not already in it\n if (\n this.state.fetchStatus === 'idle' ||\n this.state.fetchMeta !== context.fetchOptions?.meta\n ) {\n this.dispatch({ type: 'fetch', meta: context.fetchOptions?.meta })\n }\n\n const onError = (error: TError | { silent?: boolean }) => {\n // Optimistically update state if needed\n if (!(isCancelledError(error) && error.silent)) {\n this.dispatch({\n type: 'error',\n error: error as TError,\n })\n }\n\n if (!isCancelledError(error)) {\n // Notify cache callback\n this.cache.config.onError?.(error, this as Query)\n this.cache.config.onSettled?.(\n this.state.data,\n error,\n this as Query,\n )\n\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(error)\n }\n }\n\n if (!this.isFetchingOptimistic) {\n // Schedule query gc after fetching\n this.scheduleGc()\n }\n this.isFetchingOptimistic = false\n }\n\n // Try to fetch the data\n this.retryer = createRetryer({\n fn: context.fetchFn as () => TData,\n abort: abortController?.abort.bind(abortController),\n onSuccess: (data) => {\n if (typeof data === 'undefined') {\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(\n `Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`,\n )\n }\n onError(new Error(`${this.queryHash} data is undefined`) as any)\n return\n }\n\n this.setData(data as TData)\n\n // Notify cache callback\n this.cache.config.onSuccess?.(data, this as Query)\n this.cache.config.onSettled?.(\n data,\n this.state.error,\n this as Query,\n )\n\n if (!this.isFetchingOptimistic) {\n // Schedule query gc after fetching\n this.scheduleGc()\n }\n this.isFetchingOptimistic = false\n },\n onError,\n onFail: (failureCount, error) => {\n this.dispatch({ type: 'failed', failureCount, error })\n },\n onPause: () => {\n this.dispatch({ type: 'pause' })\n },\n onContinue: () => {\n this.dispatch({ type: 'continue' })\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode,\n })\n\n this.promise = this.retryer.promise\n\n return this.promise\n }\n\n private dispatch(action: Action): void {\n const reducer = (\n state: QueryState,\n ): QueryState => {\n switch (action.type) {\n case 'failed':\n return {\n ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error,\n }\n case 'pause':\n return {\n ...state,\n fetchStatus: 'paused',\n }\n case 'continue':\n return {\n ...state,\n fetchStatus: 'fetching',\n }\n case 'fetch':\n return {\n ...state,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: action.meta ?? null,\n fetchStatus: canFetch(this.options.networkMode)\n ? 'fetching'\n : 'paused',\n ...(!state.dataUpdatedAt && {\n error: null,\n status: 'loading',\n }),\n }\n case 'success':\n return {\n ...state,\n data: action.data,\n dataUpdateCount: state.dataUpdateCount + 1,\n dataUpdatedAt: action.dataUpdatedAt ?? Date.now(),\n error: null,\n isInvalidated: false,\n status: 'success',\n ...(!action.manual && {\n fetchStatus: 'idle',\n fetchFailureCount: 0,\n fetchFailureReason: null,\n }),\n }\n case 'error':\n const error = action.error as unknown\n\n if (isCancelledError(error) && error.revert && this.revertState) {\n return { ...this.revertState, fetchStatus: 'idle' }\n }\n\n return {\n ...state,\n error: error as TError,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n fetchFailureReason: error as TError,\n fetchStatus: 'idle',\n status: 'error',\n }\n case 'invalidate':\n return {\n ...state,\n isInvalidated: true,\n }\n case 'setState':\n return {\n ...state,\n ...action.state,\n }\n }\n }\n\n this.state = reducer(this.state)\n\n notifyManager.batch(() => {\n this.observers.forEach((observer) => {\n observer.onQueryUpdate(action)\n })\n\n this.cache.notify({ query: this, type: 'updated', action })\n })\n }\n}\n\nfunction getDefaultState<\n TQueryFnData,\n TError,\n TData,\n TQueryKey extends QueryKey,\n>(\n options: QueryOptions,\n): QueryState {\n const data =\n typeof options.initialData === 'function'\n ? (options.initialData as InitialDataFunction)()\n : options.initialData\n\n const hasData = typeof data !== 'undefined'\n\n const initialDataUpdatedAt = hasData\n ? typeof options.initialDataUpdatedAt === 'function'\n ? (options.initialDataUpdatedAt as () => number | undefined)()\n : options.initialDataUpdatedAt\n : 0\n\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt ?? Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: hasData ? 'success' : 'loading',\n fetchStatus: 'idle',\n }\n}\n","import { hashQueryKeyByOptions, matchQuery, parseFilterArgs } from './utils'\nimport { Query } from './query'\nimport { notifyManager } from './notifyManager'\nimport { Subscribable } from './subscribable'\nimport type { QueryFilters } from './utils'\nimport type { Action, QueryState } from './query'\nimport type { NotifyEvent, QueryKey, QueryOptions } from './types'\nimport type { QueryClient } from './queryClient'\nimport type { QueryObserver } from './queryObserver'\n\n// TYPES\n\ninterface QueryCacheConfig {\n onError?: (error: unknown, query: Query) => void\n onSuccess?: (data: unknown, query: Query) => void\n onSettled?: (\n data: unknown | undefined,\n error: unknown | null,\n query: Query,\n ) => void\n}\n\ninterface QueryHashMap {\n [hash: string]: Query\n}\n\ninterface NotifyEventQueryAdded extends NotifyEvent {\n type: 'added'\n query: Query\n}\n\ninterface NotifyEventQueryRemoved extends NotifyEvent {\n type: 'removed'\n query: Query\n}\n\ninterface NotifyEventQueryUpdated extends NotifyEvent {\n type: 'updated'\n query: Query\n action: Action\n}\n\ninterface NotifyEventQueryObserverAdded extends NotifyEvent {\n type: 'observerAdded'\n query: Query\n observer: QueryObserver\n}\n\ninterface NotifyEventQueryObserverRemoved extends NotifyEvent {\n type: 'observerRemoved'\n query: Query\n observer: QueryObserver\n}\n\ninterface NotifyEventQueryObserverResultsUpdated extends NotifyEvent {\n type: 'observerResultsUpdated'\n query: Query\n}\n\ninterface NotifyEventQueryObserverOptionsUpdated extends NotifyEvent {\n type: 'observerOptionsUpdated'\n query: Query\n observer: QueryObserver\n}\n\nexport type QueryCacheNotifyEvent =\n | NotifyEventQueryAdded\n | NotifyEventQueryRemoved\n | NotifyEventQueryUpdated\n | NotifyEventQueryObserverAdded\n | NotifyEventQueryObserverRemoved\n | NotifyEventQueryObserverResultsUpdated\n | NotifyEventQueryObserverOptionsUpdated\n\ntype QueryCacheListener = (event: QueryCacheNotifyEvent) => void\n\n// CLASS\n\nexport class QueryCache extends Subscribable {\n config: QueryCacheConfig\n\n private queries: Query[]\n private queriesMap: QueryHashMap\n\n constructor(config?: QueryCacheConfig) {\n super()\n this.config = config || {}\n this.queries = []\n this.queriesMap = {}\n }\n\n build(\n client: QueryClient,\n options: QueryOptions,\n state?: QueryState,\n ): Query {\n const queryKey = options.queryKey!\n const queryHash =\n options.queryHash ?? hashQueryKeyByOptions(queryKey, options)\n let query = this.get(queryHash)\n\n if (!query) {\n query = new Query({\n cache: this,\n logger: client.getLogger(),\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey),\n })\n this.add(query)\n }\n\n return query\n }\n\n add(query: Query): void {\n if (!this.queriesMap[query.queryHash]) {\n this.queriesMap[query.queryHash] = query\n this.queries.push(query)\n this.notify({\n type: 'added',\n query,\n })\n }\n }\n\n remove(query: Query): void {\n const queryInMap = this.queriesMap[query.queryHash]\n\n if (queryInMap) {\n query.destroy()\n\n this.queries = this.queries.filter((x) => x !== query)\n\n if (queryInMap === query) {\n delete this.queriesMap[query.queryHash]\n }\n\n this.notify({ type: 'removed', query })\n }\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.queries.forEach((query) => {\n this.remove(query)\n })\n })\n }\n\n get<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryHash: string,\n ): Query | undefined {\n return this.queriesMap[queryHash]\n }\n\n getAll(): Query[] {\n return this.queries\n }\n\n find(\n arg1: QueryKey,\n arg2?: QueryFilters,\n ): Query | undefined {\n const [filters] = parseFilterArgs(arg1, arg2)\n\n if (typeof filters.exact === 'undefined') {\n filters.exact = true\n }\n\n return this.queries.find((query) => matchQuery(filters, query))\n }\n\n findAll(queryKey?: QueryKey, filters?: QueryFilters): Query[]\n findAll(filters?: QueryFilters): Query[]\n findAll(arg1?: QueryKey | QueryFilters, arg2?: QueryFilters): Query[]\n findAll(arg1?: QueryKey | QueryFilters, arg2?: QueryFilters): Query[] {\n const [filters] = parseFilterArgs(arg1, arg2)\n return Object.keys(filters).length > 0\n ? this.queries.filter((query) => matchQuery(filters, query))\n : this.queries\n }\n\n notify(event: QueryCacheNotifyEvent) {\n notifyManager.batch(() => {\n this.listeners.forEach(({ listener }) => {\n listener(event)\n })\n })\n }\n\n onFocus(): void {\n notifyManager.batch(() => {\n this.queries.forEach((query) => {\n query.onFocus()\n })\n })\n }\n\n onOnline(): void {\n notifyManager.batch(() => {\n this.queries.forEach((query) => {\n query.onOnline()\n })\n })\n }\n}\n","import { notifyManager } from './notifyManager'\nimport { Mutation } from './mutation'\nimport { matchMutation, noop } from './utils'\nimport { Subscribable } from './subscribable'\nimport type { MutationObserver } from './mutationObserver'\nimport type { MutationOptions, NotifyEvent } from './types'\nimport type { QueryClient } from './queryClient'\nimport type { Action, MutationState } from './mutation'\nimport type { MutationFilters } from './utils'\n\n// TYPES\n\ninterface MutationCacheConfig {\n onError?: (\n error: unknown,\n variables: unknown,\n context: unknown,\n mutation: Mutation,\n ) => Promise | unknown\n onSuccess?: (\n data: unknown,\n variables: unknown,\n context: unknown,\n mutation: Mutation,\n ) => Promise | unknown\n onMutate?: (\n variables: unknown,\n mutation: Mutation,\n ) => Promise | unknown\n onSettled?: (\n data: unknown | undefined,\n error: unknown | null,\n variables: unknown,\n context: unknown,\n mutation: Mutation,\n ) => Promise | unknown\n}\n\ninterface NotifyEventMutationAdded extends NotifyEvent {\n type: 'added'\n mutation: Mutation\n}\ninterface NotifyEventMutationRemoved extends NotifyEvent {\n type: 'removed'\n mutation: Mutation\n}\n\ninterface NotifyEventMutationObserverAdded extends NotifyEvent {\n type: 'observerAdded'\n mutation: Mutation\n observer: MutationObserver\n}\n\ninterface NotifyEventMutationObserverRemoved extends NotifyEvent {\n type: 'observerRemoved'\n mutation: Mutation\n observer: MutationObserver\n}\n\ninterface NotifyEventMutationObserverOptionsUpdated extends NotifyEvent {\n type: 'observerOptionsUpdated'\n mutation?: Mutation\n observer: MutationObserver\n}\n\ninterface NotifyEventMutationUpdated extends NotifyEvent {\n type: 'updated'\n mutation: Mutation\n action: Action\n}\n\ntype MutationCacheNotifyEvent =\n | NotifyEventMutationAdded\n | NotifyEventMutationRemoved\n | NotifyEventMutationObserverAdded\n | NotifyEventMutationObserverRemoved\n | NotifyEventMutationObserverOptionsUpdated\n | NotifyEventMutationUpdated\n\ntype MutationCacheListener = (event: MutationCacheNotifyEvent) => void\n\n// CLASS\n\nexport class MutationCache extends Subscribable {\n config: MutationCacheConfig\n\n private mutations: Mutation[]\n private mutationId: number\n private resuming: Promise | undefined\n\n constructor(config?: MutationCacheConfig) {\n super()\n this.config = config || {}\n this.mutations = []\n this.mutationId = 0\n }\n\n build(\n client: QueryClient,\n options: MutationOptions,\n state?: MutationState,\n ): Mutation {\n const mutation = new Mutation({\n mutationCache: this,\n logger: client.getLogger(),\n mutationId: ++this.mutationId,\n options: client.defaultMutationOptions(options),\n state,\n defaultOptions: options.mutationKey\n ? client.getMutationDefaults(options.mutationKey)\n : undefined,\n })\n\n this.add(mutation)\n\n return mutation\n }\n\n add(mutation: Mutation): void {\n this.mutations.push(mutation)\n this.notify({ type: 'added', mutation })\n }\n\n remove(mutation: Mutation): void {\n this.mutations = this.mutations.filter((x) => x !== mutation)\n this.notify({ type: 'removed', mutation })\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.mutations.forEach((mutation) => {\n this.remove(mutation)\n })\n })\n }\n\n getAll(): Mutation[] {\n return this.mutations\n }\n\n find(\n filters: MutationFilters,\n ): Mutation | undefined {\n if (typeof filters.exact === 'undefined') {\n filters.exact = true\n }\n\n return this.mutations.find((mutation) => matchMutation(filters, mutation))\n }\n\n findAll(filters: MutationFilters): Mutation[] {\n return this.mutations.filter((mutation) => matchMutation(filters, mutation))\n }\n\n notify(event: MutationCacheNotifyEvent) {\n notifyManager.batch(() => {\n this.listeners.forEach(({ listener }) => {\n listener(event)\n })\n })\n }\n\n resumePausedMutations(): Promise {\n this.resuming = (this.resuming ?? Promise.resolve())\n .then(() => {\n const pausedMutations = this.mutations.filter((x) => x.state.isPaused)\n return notifyManager.batch(() =>\n pausedMutations.reduce(\n (promise, mutation) =>\n promise.then(() => mutation.continue().catch(noop)),\n Promise.resolve() as Promise,\n ),\n )\n })\n .then(() => {\n this.resuming = undefined\n })\n\n return this.resuming\n }\n}\n","import type { QueryBehavior } from './query'\n\nimport type {\n InfiniteData,\n QueryFunctionContext,\n QueryOptions,\n RefetchQueryFilters,\n} from './types'\n\nexport function infiniteQueryBehavior<\n TQueryFnData,\n TError,\n TData,\n>(): QueryBehavior> {\n return {\n onFetch: (context) => {\n context.fetchFn = () => {\n const refetchPage: RefetchQueryFilters['refetchPage'] | undefined =\n context.fetchOptions?.meta?.refetchPage\n const fetchMore = context.fetchOptions?.meta?.fetchMore\n const pageParam = fetchMore?.pageParam\n const isFetchingNextPage = fetchMore?.direction === 'forward'\n const isFetchingPreviousPage = fetchMore?.direction === 'backward'\n const oldPages = context.state.data?.pages || []\n const oldPageParams = context.state.data?.pageParams || []\n let newPageParams = oldPageParams\n let cancelled = false\n\n const addSignalProperty = (object: unknown) => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n if (context.signal?.aborted) {\n cancelled = true\n } else {\n context.signal?.addEventListener('abort', () => {\n cancelled = true\n })\n }\n return context.signal\n },\n })\n }\n\n // Get query function\n const queryFn =\n context.options.queryFn ||\n (() =>\n Promise.reject(\n `Missing queryFn for queryKey '${context.options.queryHash}'`,\n ))\n\n const buildNewPages = (\n pages: unknown[],\n param: unknown,\n page: unknown,\n previous?: boolean,\n ) => {\n newPageParams = previous\n ? [param, ...newPageParams]\n : [...newPageParams, param]\n return previous ? [page, ...pages] : [...pages, page]\n }\n\n // Create function to fetch a page\n const fetchPage = (\n pages: unknown[],\n manual?: boolean,\n param?: unknown,\n previous?: boolean,\n ): Promise => {\n if (cancelled) {\n return Promise.reject('Cancelled')\n }\n\n if (typeof param === 'undefined' && !manual && pages.length) {\n return Promise.resolve(pages)\n }\n\n const queryFnContext: QueryFunctionContext = {\n queryKey: context.queryKey,\n pageParam: param,\n meta: context.options.meta,\n }\n\n addSignalProperty(queryFnContext)\n\n const queryFnResult = queryFn(queryFnContext)\n\n const promise = Promise.resolve(queryFnResult).then((page) =>\n buildNewPages(pages, param, page, previous),\n )\n\n return promise\n }\n\n let promise: Promise\n\n // Fetch first page?\n if (!oldPages.length) {\n promise = fetchPage([])\n }\n\n // Fetch next page?\n else if (isFetchingNextPage) {\n const manual = typeof pageParam !== 'undefined'\n const param = manual\n ? pageParam\n : getNextPageParam(context.options, oldPages)\n promise = fetchPage(oldPages, manual, param)\n }\n\n // Fetch previous page?\n else if (isFetchingPreviousPage) {\n const manual = typeof pageParam !== 'undefined'\n const param = manual\n ? pageParam\n : getPreviousPageParam(context.options, oldPages)\n promise = fetchPage(oldPages, manual, param, true)\n }\n\n // Refetch pages\n else {\n newPageParams = []\n\n const manual = typeof context.options.getNextPageParam === 'undefined'\n\n const shouldFetchFirstPage =\n refetchPage && oldPages[0]\n ? refetchPage(oldPages[0], 0, oldPages)\n : true\n\n // Fetch first page\n promise = shouldFetchFirstPage\n ? fetchPage([], manual, oldPageParams[0])\n : Promise.resolve(buildNewPages([], oldPageParams[0], oldPages[0]))\n\n // Fetch remaining pages\n for (let i = 1; i < oldPages.length; i++) {\n promise = promise.then((pages) => {\n const shouldFetchNextPage =\n refetchPage && oldPages[i]\n ? refetchPage(oldPages[i], i, oldPages)\n : true\n\n if (shouldFetchNextPage) {\n const param = manual\n ? oldPageParams[i]\n : getNextPageParam(context.options, pages)\n return fetchPage(pages, manual, param)\n }\n return Promise.resolve(\n buildNewPages(pages, oldPageParams[i], oldPages[i]),\n )\n })\n }\n }\n\n const finalPromise = promise.then((pages) => ({\n pages,\n pageParams: newPageParams,\n }))\n\n return finalPromise\n }\n },\n }\n}\n\nexport function getNextPageParam(\n options: QueryOptions,\n pages: unknown[],\n): unknown | undefined {\n return options.getNextPageParam?.(pages[pages.length - 1], pages)\n}\n\nexport function getPreviousPageParam(\n options: QueryOptions,\n pages: unknown[],\n): unknown | undefined {\n return options.getPreviousPageParam?.(pages[0], pages)\n}\n\n/**\n * Checks if there is a next page.\n * Returns `undefined` if it cannot be determined.\n */\nexport function hasNextPage(\n options: QueryOptions,\n pages?: unknown,\n): boolean | undefined {\n if (options.getNextPageParam && Array.isArray(pages)) {\n const nextPageParam = getNextPageParam(options, pages)\n return (\n typeof nextPageParam !== 'undefined' &&\n nextPageParam !== null &&\n nextPageParam !== false\n )\n }\n return\n}\n\n/**\n * Checks if there is a previous page.\n * Returns `undefined` if it cannot be determined.\n */\nexport function hasPreviousPage(\n options: QueryOptions,\n pages?: unknown,\n): boolean | undefined {\n if (options.getPreviousPageParam && Array.isArray(pages)) {\n const previousPageParam = getPreviousPageParam(options, pages)\n return (\n typeof previousPageParam !== 'undefined' &&\n previousPageParam !== null &&\n previousPageParam !== false\n )\n }\n return\n}\n","import {\n functionalUpdate,\n hashQueryKey,\n hashQueryKeyByOptions,\n noop,\n parseFilterArgs,\n parseQueryArgs,\n partialMatchKey,\n} from './utils'\nimport { QueryCache } from './queryCache'\nimport { MutationCache } from './mutationCache'\nimport { focusManager } from './focusManager'\nimport { onlineManager } from './onlineManager'\nimport { notifyManager } from './notifyManager'\nimport { infiniteQueryBehavior } from './infiniteQueryBehavior'\nimport { defaultLogger } from './logger'\nimport type { CancelOptions, DefaultedQueryObserverOptions } from './types'\nimport type { Logger } from './logger'\nimport type { QueryState } from './query'\nimport type {\n DefaultOptions,\n FetchInfiniteQueryOptions,\n FetchQueryOptions,\n InfiniteData,\n InvalidateOptions,\n InvalidateQueryFilters,\n MutationKey,\n MutationObserverOptions,\n MutationOptions,\n QueryClientConfig,\n QueryFunction,\n QueryKey,\n QueryObserverOptions,\n QueryOptions,\n RefetchOptions,\n RefetchQueryFilters,\n ResetOptions,\n ResetQueryFilters,\n SetDataOptions,\n WithRequired,\n} from './types'\nimport type { MutationFilters, QueryFilters, Updater } from './utils'\n\n// TYPES\n\ninterface QueryDefaults {\n queryKey: QueryKey\n defaultOptions: QueryOptions\n}\n\ninterface MutationDefaults {\n mutationKey: MutationKey\n defaultOptions: MutationOptions\n}\n\n// CLASS\n\nexport class QueryClient {\n private queryCache: QueryCache\n private mutationCache: MutationCache\n private logger: Logger\n private defaultOptions: DefaultOptions\n private queryDefaults: QueryDefaults[]\n private mutationDefaults: MutationDefaults[]\n private mountCount: number\n private unsubscribeFocus?: () => void\n private unsubscribeOnline?: () => void\n\n constructor(config: QueryClientConfig = {}) {\n this.queryCache = config.queryCache || new QueryCache()\n this.mutationCache = config.mutationCache || new MutationCache()\n this.logger = config.logger || defaultLogger\n this.defaultOptions = config.defaultOptions || {}\n this.queryDefaults = []\n this.mutationDefaults = []\n this.mountCount = 0\n\n if (process.env.NODE_ENV !== 'production' && config.logger) {\n this.logger.error(\n `Passing a custom logger has been deprecated and will be removed in the next major version.`,\n )\n }\n }\n\n mount(): void {\n this.mountCount++\n if (this.mountCount !== 1) return\n\n this.unsubscribeFocus = focusManager.subscribe(() => {\n if (focusManager.isFocused()) {\n this.resumePausedMutations()\n this.queryCache.onFocus()\n }\n })\n this.unsubscribeOnline = onlineManager.subscribe(() => {\n if (onlineManager.isOnline()) {\n this.resumePausedMutations()\n this.queryCache.onOnline()\n }\n })\n }\n\n unmount(): void {\n this.mountCount--\n if (this.mountCount !== 0) return\n\n this.unsubscribeFocus?.()\n this.unsubscribeFocus = undefined\n\n this.unsubscribeOnline?.()\n this.unsubscribeOnline = undefined\n }\n\n isFetching(filters?: QueryFilters): number\n isFetching(queryKey?: QueryKey, filters?: QueryFilters): number\n isFetching(arg1?: QueryKey | QueryFilters, arg2?: QueryFilters): number {\n const [filters] = parseFilterArgs(arg1, arg2)\n filters.fetchStatus = 'fetching'\n return this.queryCache.findAll(filters).length\n }\n\n isMutating(filters?: MutationFilters): number {\n return this.mutationCache.findAll({ ...filters, fetching: true }).length\n }\n\n getQueryData(\n queryKey: QueryKey,\n filters?: QueryFilters,\n ): TQueryFnData | undefined {\n return this.queryCache.find(queryKey, filters)?.state.data\n }\n\n ensureQueryData<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: WithRequired<\n FetchQueryOptions,\n 'queryKey'\n >,\n ): Promise\n ensureQueryData<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryKey: TQueryKey,\n options?: Omit<\n FetchQueryOptions,\n 'queryKey'\n >,\n ): Promise\n ensureQueryData<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryKey: TQueryKey,\n queryFn: QueryFunction,\n options?: Omit<\n FetchQueryOptions,\n 'queryKey' | 'queryFn'\n >,\n ): Promise\n ensureQueryData<\n TQueryFnData,\n TError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n arg1:\n | TQueryKey\n | WithRequired<\n FetchQueryOptions,\n 'queryKey'\n >,\n arg2?:\n | QueryFunction\n | FetchQueryOptions,\n arg3?: FetchQueryOptions,\n ): Promise {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3)\n const cachedData = this.getQueryData(parsedOptions.queryKey!)\n\n return cachedData\n ? Promise.resolve(cachedData)\n : this.fetchQuery(parsedOptions)\n }\n\n getQueriesData(\n queryKey: QueryKey,\n ): [QueryKey, TQueryFnData | undefined][]\n getQueriesData(\n filters: QueryFilters,\n ): [QueryKey, TQueryFnData | undefined][]\n getQueriesData(\n queryKeyOrFilters: QueryKey | QueryFilters,\n ): [QueryKey, TQueryFnData | undefined][] {\n return this.getQueryCache()\n .findAll(queryKeyOrFilters)\n .map(({ queryKey, state }) => {\n const data = state.data as TQueryFnData | undefined\n return [queryKey, data]\n })\n }\n\n setQueryData(\n queryKey: QueryKey,\n updater: Updater,\n options?: SetDataOptions,\n ): TQueryFnData | undefined {\n const query = this.queryCache.find(queryKey)\n const prevData = query?.state.data\n const data = functionalUpdate(updater, prevData)\n\n if (typeof data === 'undefined') {\n return undefined\n }\n\n const parsedOptions = parseQueryArgs(queryKey)\n const defaultedOptions = this.defaultQueryOptions(parsedOptions)\n return this.queryCache\n .build(this, defaultedOptions)\n .setData(data, { ...options, manual: true })\n }\n\n setQueriesData(\n queryKey: QueryKey,\n updater: Updater,\n options?: SetDataOptions,\n ): [QueryKey, TQueryFnData | undefined][]\n\n setQueriesData(\n filters: QueryFilters,\n updater: Updater,\n options?: SetDataOptions,\n ): [QueryKey, TQueryFnData | undefined][]\n\n setQueriesData(\n queryKeyOrFilters: QueryKey | QueryFilters,\n updater: Updater,\n options?: SetDataOptions,\n ): [QueryKey, TQueryFnData | undefined][] {\n return notifyManager.batch(() =>\n this.getQueryCache()\n .findAll(queryKeyOrFilters)\n .map(({ queryKey }) => [\n queryKey,\n this.setQueryData(queryKey, updater, options),\n ]),\n )\n }\n\n getQueryState(\n queryKey: QueryKey,\n filters?: QueryFilters,\n ): QueryState | undefined {\n return this.queryCache.find(queryKey, filters)?.state\n }\n\n removeQueries(filters?: QueryFilters): void\n removeQueries(queryKey?: QueryKey, filters?: QueryFilters): void\n removeQueries(arg1?: QueryKey | QueryFilters, arg2?: QueryFilters): void {\n const [filters] = parseFilterArgs(arg1, arg2)\n const queryCache = this.queryCache\n notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n queryCache.remove(query)\n })\n })\n }\n\n resetQueries(\n filters?: ResetQueryFilters,\n options?: ResetOptions,\n ): Promise\n resetQueries(\n queryKey?: QueryKey,\n filters?: ResetQueryFilters,\n options?: ResetOptions,\n ): Promise\n resetQueries(\n arg1?: QueryKey | ResetQueryFilters,\n arg2?: ResetQueryFilters | ResetOptions,\n arg3?: ResetOptions,\n ): Promise {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3)\n const queryCache = this.queryCache\n\n const refetchFilters: RefetchQueryFilters = {\n type: 'active',\n ...filters,\n }\n\n return notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n query.reset()\n })\n return this.refetchQueries(refetchFilters, options)\n })\n }\n\n cancelQueries(filters?: QueryFilters, options?: CancelOptions): Promise\n cancelQueries(\n queryKey?: QueryKey,\n filters?: QueryFilters,\n options?: CancelOptions,\n ): Promise\n cancelQueries(\n arg1?: QueryKey | QueryFilters,\n arg2?: QueryFilters | CancelOptions,\n arg3?: CancelOptions,\n ): Promise {\n const [filters, cancelOptions = {}] = parseFilterArgs(arg1, arg2, arg3)\n\n if (typeof cancelOptions.revert === 'undefined') {\n cancelOptions.revert = true\n }\n\n const promises = notifyManager.batch(() =>\n this.queryCache\n .findAll(filters)\n .map((query) => query.cancel(cancelOptions)),\n )\n\n return Promise.all(promises).then(noop).catch(noop)\n }\n\n invalidateQueries(\n filters?: InvalidateQueryFilters,\n options?: InvalidateOptions,\n ): Promise\n invalidateQueries(\n queryKey?: QueryKey,\n filters?: InvalidateQueryFilters,\n options?: InvalidateOptions,\n ): Promise\n invalidateQueries(\n arg1?: QueryKey | InvalidateQueryFilters,\n arg2?: InvalidateQueryFilters | InvalidateOptions,\n arg3?: InvalidateOptions,\n ): Promise {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3)\n\n return notifyManager.batch(() => {\n this.queryCache.findAll(filters).forEach((query) => {\n query.invalidate()\n })\n\n if (filters.refetchType === 'none') {\n return Promise.resolve()\n }\n const refetchFilters: RefetchQueryFilters = {\n ...filters,\n type: filters.refetchType ?? filters.type ?? 'active',\n }\n return this.refetchQueries(refetchFilters, options)\n })\n }\n\n refetchQueries(\n filters?: RefetchQueryFilters,\n options?: RefetchOptions,\n ): Promise\n refetchQueries(\n queryKey?: QueryKey,\n filters?: RefetchQueryFilters,\n options?: RefetchOptions,\n ): Promise\n refetchQueries(\n arg1?: QueryKey | RefetchQueryFilters,\n arg2?: RefetchQueryFilters | RefetchOptions,\n arg3?: RefetchOptions,\n ): Promise {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3)\n\n const promises = notifyManager.batch(() =>\n this.queryCache\n .findAll(filters)\n .filter((query) => !query.isDisabled())\n .map((query) =>\n query.fetch(undefined, {\n ...options,\n cancelRefetch: options?.cancelRefetch ?? true,\n meta: { refetchPage: filters.refetchPage },\n }),\n ),\n )\n\n let promise = Promise.all(promises).then(noop)\n\n if (!options?.throwOnError) {\n promise = promise.catch(noop)\n }\n\n return promise\n }\n\n fetchQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: FetchQueryOptions,\n ): Promise\n fetchQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryKey: TQueryKey,\n options?: FetchQueryOptions,\n ): Promise\n fetchQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryKey: TQueryKey,\n queryFn: QueryFunction,\n options?: FetchQueryOptions,\n ): Promise\n fetchQuery<\n TQueryFnData,\n TError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n arg1: TQueryKey | FetchQueryOptions,\n arg2?:\n | QueryFunction\n | FetchQueryOptions,\n arg3?: FetchQueryOptions,\n ): Promise {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3)\n const defaultedOptions = this.defaultQueryOptions(parsedOptions)\n\n // https://github.com/tannerlinsley/react-query/issues/652\n if (typeof defaultedOptions.retry === 'undefined') {\n defaultedOptions.retry = false\n }\n\n const query = this.queryCache.build(this, defaultedOptions)\n\n return query.isStaleByTime(defaultedOptions.staleTime)\n ? query.fetch(defaultedOptions)\n : Promise.resolve(query.state.data as TData)\n }\n\n prefetchQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: FetchQueryOptions,\n ): Promise\n prefetchQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryKey: TQueryKey,\n options?: FetchQueryOptions,\n ): Promise\n prefetchQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryKey: TQueryKey,\n queryFn: QueryFunction,\n options?: FetchQueryOptions,\n ): Promise\n prefetchQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n arg1: TQueryKey | FetchQueryOptions,\n arg2?:\n | QueryFunction\n | FetchQueryOptions,\n arg3?: FetchQueryOptions,\n ): Promise {\n return this.fetchQuery(arg1 as any, arg2 as any, arg3)\n .then(noop)\n .catch(noop)\n }\n\n fetchInfiniteQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: FetchInfiniteQueryOptions,\n ): Promise>\n fetchInfiniteQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryKey: TQueryKey,\n options?: FetchInfiniteQueryOptions,\n ): Promise>\n fetchInfiniteQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryKey: TQueryKey,\n queryFn: QueryFunction,\n options?: FetchInfiniteQueryOptions,\n ): Promise>\n fetchInfiniteQuery<\n TQueryFnData,\n TError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n arg1:\n | TQueryKey\n | FetchInfiniteQueryOptions,\n arg2?:\n | QueryFunction\n | FetchInfiniteQueryOptions,\n arg3?: FetchInfiniteQueryOptions,\n ): Promise> {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3)\n parsedOptions.behavior = infiniteQueryBehavior<\n TQueryFnData,\n TError,\n TData\n >()\n return this.fetchQuery(parsedOptions)\n }\n\n prefetchInfiniteQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: FetchInfiniteQueryOptions,\n ): Promise\n prefetchInfiniteQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryKey: TQueryKey,\n options?: FetchInfiniteQueryOptions,\n ): Promise\n prefetchInfiniteQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryKey: TQueryKey,\n queryFn: QueryFunction,\n options?: FetchInfiniteQueryOptions,\n ): Promise\n prefetchInfiniteQuery<\n TQueryFnData,\n TError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n arg1:\n | TQueryKey\n | FetchInfiniteQueryOptions,\n arg2?:\n | QueryFunction\n | FetchInfiniteQueryOptions,\n arg3?: FetchInfiniteQueryOptions,\n ): Promise {\n return this.fetchInfiniteQuery(arg1 as any, arg2 as any, arg3)\n .then(noop)\n .catch(noop)\n }\n\n resumePausedMutations(): Promise {\n return this.mutationCache.resumePausedMutations()\n }\n\n getQueryCache(): QueryCache {\n return this.queryCache\n }\n\n getMutationCache(): MutationCache {\n return this.mutationCache\n }\n\n getLogger(): Logger {\n return this.logger\n }\n\n getDefaultOptions(): DefaultOptions {\n return this.defaultOptions\n }\n\n setDefaultOptions(options: DefaultOptions): void {\n this.defaultOptions = options\n }\n\n setQueryDefaults(\n queryKey: QueryKey,\n options: QueryObserverOptions,\n ): void {\n const result = this.queryDefaults.find(\n (x) => hashQueryKey(queryKey) === hashQueryKey(x.queryKey),\n )\n if (result) {\n result.defaultOptions = options\n } else {\n this.queryDefaults.push({ queryKey, defaultOptions: options })\n }\n }\n\n getQueryDefaults(\n queryKey?: QueryKey,\n ): QueryObserverOptions | undefined {\n if (!queryKey) {\n return undefined\n }\n\n // Get the first matching defaults\n const firstMatchingDefaults = this.queryDefaults.find((x) =>\n partialMatchKey(queryKey, x.queryKey),\n )\n\n // Additional checks and error in dev mode\n if (process.env.NODE_ENV !== 'production') {\n // Retrieve all matching defaults for the given key\n const matchingDefaults = this.queryDefaults.filter((x) =>\n partialMatchKey(queryKey, x.queryKey),\n )\n // It is ok not having defaults, but it is error prone to have more than 1 default for a given key\n if (matchingDefaults.length > 1) {\n this.logger.error(\n `[QueryClient] Several query defaults match with key '${JSON.stringify(\n queryKey,\n )}'. The first matching query defaults are used. Please check how query defaults are registered. Order does matter here. cf. https://react-query.tanstack.com/reference/QueryClient#queryclientsetquerydefaults.`,\n )\n }\n }\n\n return firstMatchingDefaults?.defaultOptions\n }\n\n setMutationDefaults(\n mutationKey: MutationKey,\n options: MutationObserverOptions,\n ): void {\n const result = this.mutationDefaults.find(\n (x) => hashQueryKey(mutationKey) === hashQueryKey(x.mutationKey),\n )\n if (result) {\n result.defaultOptions = options\n } else {\n this.mutationDefaults.push({ mutationKey, defaultOptions: options })\n }\n }\n\n getMutationDefaults(\n mutationKey?: MutationKey,\n ): MutationObserverOptions | undefined {\n if (!mutationKey) {\n return undefined\n }\n\n // Get the first matching defaults\n const firstMatchingDefaults = this.mutationDefaults.find((x) =>\n partialMatchKey(mutationKey, x.mutationKey),\n )\n\n // Additional checks and error in dev mode\n if (process.env.NODE_ENV !== 'production') {\n // Retrieve all matching defaults for the given key\n const matchingDefaults = this.mutationDefaults.filter((x) =>\n partialMatchKey(mutationKey, x.mutationKey),\n )\n // It is ok not having defaults, but it is error prone to have more than 1 default for a given key\n if (matchingDefaults.length > 1) {\n this.logger.error(\n `[QueryClient] Several mutation defaults match with key '${JSON.stringify(\n mutationKey,\n )}'. The first matching mutation defaults are used. Please check how mutation defaults are registered. Order does matter here. cf. https://react-query.tanstack.com/reference/QueryClient#queryclientsetmutationdefaults.`,\n )\n }\n }\n\n return firstMatchingDefaults?.defaultOptions\n }\n\n defaultQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n >(\n options?:\n | QueryObserverOptions\n | DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n > {\n if (options?._defaulted) {\n return options as DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n }\n\n const defaultedOptions = {\n ...this.defaultOptions.queries,\n ...this.getQueryDefaults(options?.queryKey),\n ...options,\n _defaulted: true,\n }\n\n if (!defaultedOptions.queryHash && defaultedOptions.queryKey) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(\n defaultedOptions.queryKey,\n defaultedOptions,\n )\n }\n\n // dependent default values\n if (typeof defaultedOptions.refetchOnReconnect === 'undefined') {\n defaultedOptions.refetchOnReconnect =\n defaultedOptions.networkMode !== 'always'\n }\n if (typeof defaultedOptions.useErrorBoundary === 'undefined') {\n defaultedOptions.useErrorBoundary = !!defaultedOptions.suspense\n }\n\n return defaultedOptions as DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n }\n\n defaultMutationOptions>(\n options?: T,\n ): T {\n if (options?._defaulted) {\n return options\n }\n return {\n ...this.defaultOptions.mutations,\n ...this.getMutationDefaults(options?.mutationKey),\n ...options,\n _defaulted: true,\n } as T\n }\n\n clear(): void {\n this.queryCache.clear()\n this.mutationCache.clear()\n }\n}\n","export { G as ALL_ROLES, bi as AbiObjectSchema, bj as AbiSchema, bh as AbiTypeSchema, b9 as AddressOrEnsSchema, b8 as AddressSchema, v as AdminRoleMissingError, A as AssetNotFoundError, t as AuctionAlreadyStartedError, w as AuctionHasNotEndedError, bc as BYOCContractMetadataSchema, b5 as BigNumberSchema, b7 as BigNumberTransformSchema, b6 as BigNumberishSchema, ar as COMMON_FACTORY, C as CONTRACTS_MAP, aO as CONTRACT_ADDRESSES, ap as CREATE2_FACTORY_BYTECODE, ba as CallOverrideSchema, aS as ChainId, bl as ChainIdToAddressSchema, bC as CommonContractOutputSchema, bB as CommonContractSchema, bF as CommonPlatformFeeSchema, bE as CommonPrimarySaleSchema, bD as CommonRoyaltySchema, bH as CommonSymbolSchema, bG as CommonTrustedForwarderSchema, bz as CompilerMetadataFetchedSchema, by as ContractInfoSchema, bf as CustomContractDeploy, bd as CustomContractInput, be as CustomContractOutput, bg as CustomContractSchema, bm as CustomFactoryInput, au as DEPLOYER_ABI, at as DEPLOYER_BYTECODE, bo as DeployTypeInput, bq as DeploymentNetworkInput, bU as DropErc1155ContractDeploy, bS as DropErc1155ContractInput, bT as DropErc1155ContractOutput, bV as DropErc1155ContractSchema, bQ as DropErc721ContractDeploy, bO as DropErc721ContractInput, bP as DropErc721ContractOutput, bR as DropErc721ContractSchema, D as DuplicateFileNameError, s as DuplicateLeafsError, E as EditionDropInitializer, a as EditionInitializer, aZ as EventType, x as ExtensionNotImplementedError, br as ExtraPublishMetadataSchemaInput, bs as ExtraPublishMetadataSchemaOutput, bn as FactoryDeploymentSchema, r as FetchError, F as FileNameMissingError, bt as FullPublishMetadataSchemaInput, bu as FullPublishMetadataSchemaOutput, u as FunctionDeprecatedError, as as GAS_LIMIT_FOR_DEPLOYER, I as InvalidAddressError, aY as LINK_TOKEN_ADDRESS, L as ListingNotFoundError, bY as MarketplaceContractDeploy, bW as MarketplaceContractInput, bX as MarketplaceContractOutput, bZ as MarketplaceContractSchema, M as MarketplaceInitializer, b as MarketplaceV3Initializer, bI as MerkleSchema, q as MissingOwnerRoleError, o as MissingRoleError, c as MultiwrapInitializer, aW as NATIVE_TOKENS, aV as NATIVE_TOKEN_ADDRESS, N as NFTCollectionInitializer, d as NFTDropInitializer, p as NotEnoughTokensError, n as NotFoundError, aN as OZ_DEFENDER_FORWARDER_ADDRESS, i as PREBUILT_CONTRACTS_APPURI_MAP, h as PREBUILT_CONTRACTS_MAP, c0 as PackContractDeploy, b_ as PackContractInput, b$ as PackContractOutput, c1 as PackContractSchema, P as PackInitializer, bk as PreDeployMetadata, bA as PreDeployMetadataFetchedSchema, bv as ProfileSchemaInput, bw as ProfileSchemaOutput, co as ProposalOutputSchema, bx as PublishedContractSchema, Q as QuantityAboveLimitError, R as RestrictedTransferError, bp as RouterTypeInput, bb as SDKOptionsSchema, aq as SIGNATURE, b4 as SUPPORTED_FEATURES, e as SignatureDropInitializer, bJ as SnapshotEntryInput, bL as SnapshotEntryWithProofSchema, bN as SnapshotInfoSchema, bK as SnapshotInputSchema, bM as SnapshotSchema, f as SplitInitializer, c4 as SplitsContractDeploy, c2 as SplitsContractInput, c3 as SplitsContractOutput, c5 as SplitsContractSchema, S as StaticJsonRpcBatchProvider, aH as THIRDWEB_DEPLOYER, T as TokenDropInitializer, cg as TokenErc1155ContractDeploy, ce as TokenErc1155ContractInput, cf as TokenErc1155ContractOutput, ch as TokenErc1155ContractSchema, c8 as TokenErc20ContractDeploy, c6 as TokenErc20ContractInput, c7 as TokenErc20ContractOutput, c9 as TokenErc20ContractSchema, cc as TokenErc721ContractDeploy, ca as TokenErc721ContractInput, cb as TokenErc721ContractOutput, cd as TokenErc721ContractSchema, g as TokenInitializer, y as TransactionError, U as UploadError, cm as VoteContractDeploy, ck as VoteContractInput, cl as VoteContractOutput, cn as VoteContractSchema, V as VoteInitializer, ci as VoteSettingsInputSchema, cj as VoteSettingsOuputSchema, W as WrongListingTypeError, aA as computeDeploymentAddress, aE as computeDeploymentInfo, aB as computeEOAForwarderAddress, aC as computeForwarderAddress, af as constructAbiFromBytecode, ab as detectFeatures, ac as detectFeaturesFromBytecode, aF as encodeConstructorParamsForImplementation, a0 as extractCommentFromMetadata, a1 as extractConstructorParamsFromAbi, a2 as extractFunctionsFromAbi, a7 as extractIPFSHashFromBytecode, a3 as extractMinimalProxyImplementationAddress, X as fetchAbiFromAddress, aJ as fetchAndCacheDeployMetadata, Y as fetchContractMetadata, K as fetchContractMetadataFromAddress, O as fetchContractMetadataFromBytecode, aa as fetchExtendedReleaseMetadata, a9 as fetchPreDeployMetadata, aI as fetchPublishedContractFromPolygon, a8 as fetchRawPredeployMetadata, ao as fetchSourceFilesFromMetadata, Z as formatCompilerMetadata, ag as getAllDetectedExtensions, ae as getAllDetectedExtensionsFromBytecode, ad as getAllDetectedFeatures, a$ as getChainIdFromNetwork, b0 as getChainIdOrName, a_ as getChainProvider, ak as getCompositeABI, aP as getContractAddressByChainId, J as getContractMetadataFromCache, k as getContractName, aQ as getContractPublisherAddress, j as getContractTypeForRemoteName, ax as getCreate2FactoryAddress, aG as getCreate2FactoryDeploymentInfo, az as getInitBytecodeWithSalt, aD as getKeylessTxn, aR as getMultichainRegistryAddress, aX as getNativeTokenByChainId, b2 as getProviderFromRpcUrl, H as getRoleHash, ay as getSaltHash, b3 as getSignerAndProvider, aU as getSupportedChains, _ as hasMatchingAbi, B as includesErrorMessage, b1 as isChainConfig, av as isContractDeployed, an as isDowngradeVersion, aw as isEIP155Enforced, ai as isExtensionEnabled, ah as isFeatureEnabled, am as isIncrementalVersion, l as isProvider, m as isSigner, aj as joinABIs, $ as matchesAbiFromBytecode, z as parseRevertReason, aL as resolveAddress, a5 as resolveContractUriAndBytecode, a4 as resolveContractUriFromAddress, aK as resolveEns, a6 as resolveImplementation, aT as setSupportedChains, aM as signTypedDataInternal, al as toSemver } from '../../dist/index-b2a8262b.browser.esm.js';\nexport { C as ContractEncoder, f as fetchCurrencyMetadata, a as fetchCurrencyValue, i as isNativeToken } from '../../dist/fetchCurrencyValue-7173ff94.browser.esm.js';\nexport { b as ContractAppURI, a as ContractEvents, C as ContractMetadata, G as GasCostEstimator, d as detectContractFeature, h as hasFunction } from '../../dist/contract-appuri-46707b74.browser.esm.js';\nexport { C as ContractRoles } from '../../dist/contract-roles-79161481.browser.esm.js';\nexport { a as ContractOwner, C as ContractRoyalty, D as DelayedReveal } from '../../dist/contract-owner-5b08c352.browser.esm.js';\nexport { C as ContractPrimarySale } from '../../dist/contract-sales-3b4f1340.browser.esm.js';\nexport { D as DropClaimConditions } from '../../dist/drop-claim-conditions-b694b1aa.browser.esm.js';\nexport { D as DropErc1155ClaimConditions, E as Erc1155 } from '../../dist/erc-1155-f3473e47.browser.esm.js';\nexport { E as Erc20, n as normalizeAmount } from '../../dist/erc-20-92baf00b.browser.esm.js';\nexport { E as Erc721, t as toWei } from '../../dist/erc-721-c22f7bc8.browser.esm.js';\nexport { A as Account, a as AccountFactory, f as AdminFlag, d as Airdrop1155, b as Airdrop20, c as Airdrop721, C as ContractPublishedMetadata, D as DEFAULT_PERMISSIONS, E as ExtensionManager, P as PermissionSnapshotSchema, h as SignerPermissionRequest, g as SignerPermissionRequestV1, S as SignerPermissionsSchema, e as extractEventsFromAbi } from '../../dist/airdrop-erc1155-5ac5a3e6.browser.esm.js';\nexport { C as ContractInterceptor } from '../../dist/contract-interceptor-d7b164a7.browser.esm.js';\nexport { C as ContractPlatformFee } from '../../dist/contract-platform-fee-430aec6f.browser.esm.js';\nexport { D as DeployTransaction, T as Transaction, e as engineSendFunction, g as getDefaultGasOverrides, a as getDynamicFeeData, b as getGasPrice, c as getPolygonGasPriorityFee, p as prepareGaslessRequest } from '../../dist/transactions-a0a11326.browser.esm.js';\nexport { M as MarketplaceV3DirectListings, a as MarketplaceV3EnglishAuctions, b as MarketplaceV3Offers, S as Status } from '../../dist/marketplacev3-offers-b203c6ca.browser.esm.js';\nexport { A as APPROVED_IMPLEMENTATIONS, a as ContractDeployer, C as ContractVerifier, L as LOCAL_NODE_PKEY, S as SUPPORTED_CHAIN_IDS, T as ThirdwebSDK, U as UserWallet, f as checkVerificationStatus, h as computeCloneFactoryAddress, t as convertParamValues, l as deployCreate2Factory, m as directDeployDeterministic, o as directDeployDeterministicPublished, n as directDeployDeterministicWithUri, e as extractFunctionParamsFromAbi, b as getAllDetectedExtensionNames, g as getAllDetectedFeatureNames, x as getApprovedImplementation, y as getDefaultTrustedForwarders, u as getDeployArguments, k as getEncodedConstructorParamsForThirdwebContract, j as getThirdwebContractAddress, w as getTrustedForwarders, i as isVerifiedOnEtherscan, q as predictAddressDeterministic, s as predictAddressDeterministicPublished, r as predictAddressDeterministicWithUri, p as predictThirdwebContractAddress, d as verify, v as verifyThirdwebPrebuiltImplementation } from '../../dist/sdk-23ff48ab.browser.esm.js';\nexport { B as BaseSignaturePayloadInput, g as ClaimConditionInputArray, e as ClaimConditionInputSchema, d as ClaimConditionMetadataSchema, h as ClaimConditionOutputSchema, C as ClaimEligibility, i as CurrencySchema, j as CurrencyValueSchema, G as GenericRequest, t as MintRequest1155, M as MintRequest20, s as MintRequest721, u as MintRequest721withQuantity, P as PartialClaimConditionInputSchema, n as Signature1155PayloadInput, o as Signature1155PayloadInputWithTokenId, p as Signature1155PayloadOutput, S as Signature20PayloadInput, k as Signature20PayloadOutput, l as Signature721PayloadInput, m as Signature721PayloadOutput, q as Signature721WithQuantityInput, r as Signature721WithQuantityOutput, a as approveErc20Allowance, c as convertToReadableQuantity, b as createSnapshot, f as fetchSnapshotEntryForAddress } from '../../dist/signature-74f6dda9.browser.esm.js';\nexport { h as EditionMetadataInputOrUriSchema, f as EditionMetadataInputSchema, E as EditionMetadataOutputSchema, e as EditionMetadataWithOwnerOutputSchema, O as OptionalPropertiesInput, P as ProposalState, T as TokenMintInputSchema, c as computeNativeTokenAddress, d as deployContractDeterministicRaw, g as getCachedAbiForContract, m as matchesPrebuiltAbi, b as toDisplayValue, t as toEther, a as toUnits } from '../../dist/token-f78496d9.browser.esm.js';\nexport { e as extractConstructorParams, a as extractFunctions } from '../../dist/contract-publisher-d35c7c06.browser.esm.js';\nexport { E as EndDateSchema, R as RawDateSchema, S as StartDateSchema, a as assertEnabled } from '../../dist/assertEnabled-47dc3318.browser.esm.js';\nexport { c as cleanCurrencyAddress } from '../../dist/cleanCurrencyAddress-cb2abf84.browser.esm.js';\nexport { n as normalizePriceValue } from '../../dist/normalizePriceValue-300bf9f3.browser.esm.js';\nexport { s as setErc20Allowance } from '../../dist/setErc20Allowance-f2f77863.browser.esm.js';\nexport { h as hasERC20Allowance } from '../../dist/hasERC20Allowance-5380e256.browser.esm.js';\nexport { c as createTransactionBatches, d as deployContractDeterministic, a as deployWithThrowawayDeployer, e as estimateGasForDeploy, g as getDeploymentInfo } from '../../dist/deployContractDeterministic-37b65e65.browser.esm.js';\nexport { a as InterfaceId_IERC1155, I as InterfaceId_IERC721 } from '../../dist/QueryParams-6f072ab8.browser.esm.js';\nexport { L as ListingType } from '../../dist/ListingType-cba090cb.browser.esm.js';\nexport { V as VoteType } from '../../dist/Vote-3b66775c.browser.esm.js';\nexport { b as ERC1155WrappableSchema, E as ERC20WrappableSchema, a as ERC721WrappableSchema, d as PackMetadataInputSchema, c as PackRewardsOutputSchema, P as PackRewardsSchema } from '../../dist/pack-8a5b0ab7.browser.esm.js';\nexport { c as getBlock, d as getBlockNumber, e as getBlockWithTransactions, b as getChainId, g as getContract, a as getContractFromAbi, w as watchBlock, f as watchBlockNumber, h as watchBlockWithTransactions, i as watchTransactions } from '../../dist/watchTransactions-873a86f2.browser.esm.js';\nimport 'ethers';\nimport 'zod';\nimport '@thirdweb-dev/chains';\nimport '@thirdweb-dev/storage';\nimport '@thirdweb-dev/crypto';\nimport 'tiny-invariant';\nimport 'bn.js';\nimport 'bs58';\nimport '@thirdweb-dev/contracts-js/dist/abis/IBurnableERC20.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IDrop.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IDropERC20_V2.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IDropSinglePhase.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IDropSinglePhase_V1.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IERC20.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IERC20Permit.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IMintableERC20.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IMulticall.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/ISignatureMintERC20.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IERC20Metadata.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IBurnableERC721.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IClaimableERC721.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IDelayedReveal.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IDropERC721_V3.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IERC721.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IERC721Enumerable.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IERC721AQueryableUpgradeable.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IERC721Supply.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/ILazyMint.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IMintableERC721.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/ISignatureMintERC721.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/ISignatureMintERC721_V1.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/LazyMintWithTier_V1.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/SharedMetadata.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/zora_IERC721Drop.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/ILoyaltyCard.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/INFTMetadata.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IERC721Metadata.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IBurnableERC1155.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IClaimableERC1155.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IDrop1155.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IDropERC1155_V2.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IDropSinglePhase1155.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IDropSinglePhase1155_V1.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IERC1155.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IERC1155Metadata.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IERC1155Supply.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IERC1155Enumerable.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IMintableERC1155.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/ISignatureMintERC1155.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IERC2771Context.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IAppURI.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IContractMetadata.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IDirectListings.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IEnglishAuctions.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IOffers.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IPackVRFDirect.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IPermissions.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IPermissionsEnumerable.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IPlatformFee.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IPrimarySale.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IRoyalty.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/Ownable.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IAirdropERC20.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IAirdropERC721.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IAirdropERC1155.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IAccountFactoryCore.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IAccountPermissions.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IAccountPermissions_V1.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/IAccount.json';\nimport 'ethers/lib/utils';\nimport 'eventemitter3';\nimport 'fast-deep-equal';\nimport '../../dist/marketplace-483ff9f5.browser.esm.js';\nimport '@thirdweb-dev/contracts-js/dist/abis/TWMultichainRegistryLogic.json';\nimport '@thirdweb-dev/contracts-js/dist/abis/TWMultichainRegistryRouter.json';\nimport '@thirdweb-dev/generated-abis';\nimport '@thirdweb-dev/contracts-js/dist/abis/TWFactory.json';\nimport '@thirdweb-dev/merkletree';\nimport 'uuid';\nimport '@thirdweb-dev/contracts-js/dist/abis/ContractPublisher.json';\n\n// handle browser vs node global\n// eslint-disable-next-line better-tree-shaking/no-top-level-side-effects\nglobalThis.global = globalThis;\n\n//#endregion @r/packages/sdk/src/evm/schema\n","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","import { z } from 'zod';\nimport { v4 } from 'uuid';\nimport { utils } from 'ethers';\n\nconst literalSchema = z.union([z.string(), z.number(), z.boolean(), z.null()]);\nconst JsonSchema = z.lazy(() => z.union([literalSchema, z.array(JsonSchema), z.record(JsonSchema)]), {\n invalid_type_error: \"Provided value was not valid JSON\"\n});\nconst AddressSchema = z.string().refine(arg => utils.isAddress(arg), out => {\n return {\n message: `${out} is not a valid address`\n };\n});\nconst RawDateSchema = z.date().transform(i => {\n return Math.floor(i.getTime() / 1000);\n});\nconst AccountTypeSchema = z.literal(\"evm\");\n\nconst AuthenticationPayloadDataSchema = z.object({\n iss: z.string(),\n sub: z.string(),\n aud: z.string(),\n exp: RawDateSchema,\n nbf: RawDateSchema,\n iat: RawDateSchema,\n jti: z.string().default(() => v4()),\n ctx: JsonSchema.optional()\n});\nconst AuthenticationPayloadSchema = z.object({\n payload: AuthenticationPayloadDataSchema,\n signature: z.string()\n});\nconst AuthenticateOptionsSchema = z.object({\n domain: z.string(),\n issuerAddress: AddressSchema.optional(),\n validateTokenId: z.function().args(z.string()).optional()\n});\n\nconst VerifyOptionsSchema = z.object({\n domain: z.string(),\n statement: z.string().optional(),\n uri: z.string().optional(),\n version: z.string().optional(),\n chainId: z.string().optional(),\n validateNonce: z.function().args(z.string()).optional(),\n resources: z.array(z.string()).optional()\n});\n\nconst THIRDWEB_AUTH_COOKIE_PREFIX = `thirdweb_auth`;\nconst THIRDWEB_AUTH_TOKEN_COOKIE_PREFIX = `${THIRDWEB_AUTH_COOKIE_PREFIX}_token`;\nconst THIRDWEB_AUTH_ACTIVE_ACCOUNT_COOKIE = `${THIRDWEB_AUTH_COOKIE_PREFIX}_active_account`;\nconst THIRDWEB_AUTH_DEFAULT_LOGIN_PAYLOAD_DURATION_IN_SECONDS = 60 * 10;\nconst THIRDWEB_AUTH_DEFAULT_TOKEN_DURATION_IN_SECONDS = 60 * 60 * 24;\nconst THIRDWEB_AUTH_DEFAULT_REFRESH_INTERVAL_IN_SECONDS = 5;\n\nconst GenerateOptionsSchema = z.object({\n domain: z.string(),\n tokenId: z.string().optional(),\n expirationTime: z.date().default(() => new Date(Date.now() + 1000 * THIRDWEB_AUTH_DEFAULT_TOKEN_DURATION_IN_SECONDS)),\n invalidBefore: z.date().optional(),\n session: z.union([JsonSchema, z.function().args(z.string())]).optional(),\n verifyOptions: VerifyOptionsSchema.omit({\n domain: true\n }).optional()\n});\n\nconst RefreshOptionsSchema = z.object({\n expirationTime: z.date().default(() => new Date(Date.now() + 1000 * THIRDWEB_AUTH_DEFAULT_TOKEN_DURATION_IN_SECONDS))\n});\n\nconst LoginOptionsSchema = z.object({\n domain: z.string(),\n address: z.string().optional(),\n statement: z.string().optional(),\n uri: z.string().optional(),\n version: z.string().optional(),\n chainId: z.string().optional(),\n nonce: z.string().optional(),\n expirationTime: z.date().default(() => new Date(Date.now() + 1000 * THIRDWEB_AUTH_DEFAULT_LOGIN_PAYLOAD_DURATION_IN_SECONDS)),\n invalidBefore: z.date().default(() => new Date(Date.now() - 1000 * THIRDWEB_AUTH_DEFAULT_LOGIN_PAYLOAD_DURATION_IN_SECONDS)),\n resources: z.array(z.string()).optional()\n});\nconst LoginPayloadDataSchema = z.object({\n type: AccountTypeSchema,\n domain: z.string(),\n address: z.string(),\n statement: z.string().default(\"Please ensure that the domain above matches the URL of the current website.\"),\n uri: z.string().optional(),\n version: z.string().default(\"1\"),\n chain_id: z.string().optional(),\n nonce: z.string().default(() => v4()),\n issued_at: z.date().default(new Date()).transform(d => d.toISOString()),\n expiration_time: z.date().transform(d => d.toISOString()),\n invalid_before: z.date().default(new Date()).transform(d => d.toISOString()),\n resources: z.array(z.string()).optional()\n});\nconst LoginPayloadSchema = z.object({\n payload: LoginPayloadDataSchema,\n signature: z.string()\n});\nconst LoginPayloadOutputSchema = LoginPayloadSchema.extend({\n payload: LoginPayloadDataSchema.extend({\n issued_at: z.string(),\n expiration_time: z.string(),\n invalid_before: z.string()\n })\n});\n\n/**\n * Create an EIP-4361 & CAIP-122 compliant message to sign based on the login payload\n */\nfunction createLoginMessage(payload) {\n const typeField = \"Ethereum\";\n const header = `${payload.domain} wants you to sign in with your ${typeField} account:`;\n let prefix = [header, payload.address].join(\"\\n\");\n prefix = [prefix, payload.statement].join(\"\\n\\n\");\n if (payload.statement) {\n prefix += \"\\n\";\n }\n const suffixArray = [];\n if (payload.uri) {\n const uriField = `URI: ${payload.uri}`;\n suffixArray.push(uriField);\n }\n const versionField = `Version: ${payload.version}`;\n suffixArray.push(versionField);\n if (payload.chain_id) {\n const chainField = `Chain ID: ` + payload.chain_id || \"1\";\n suffixArray.push(chainField);\n }\n const nonceField = `Nonce: ${payload.nonce}`;\n suffixArray.push(nonceField);\n const issuedAtField = `Issued At: ${payload.issued_at}`;\n suffixArray.push(issuedAtField);\n const expiryField = `Expiration Time: ${payload.expiration_time}`;\n suffixArray.push(expiryField);\n if (payload.invalid_before) {\n const invalidBeforeField = `Not Before: ${payload.invalid_before}`;\n suffixArray.push(invalidBeforeField);\n }\n if (payload.resources) {\n suffixArray.push([`Resources:`, ...payload.resources.map(x => `- ${x}`)].join(\"\\n\"));\n }\n const suffix = suffixArray.join(\"\\n\");\n return [prefix, suffix].join(\"\\n\");\n}\nasync function buildLoginPayload(_ref) {\n let {\n wallet,\n options\n } = _ref;\n const parsedOptions = LoginOptionsSchema.parse(options);\n let chainId = parsedOptions?.chainId;\n if (!chainId && wallet.getChainId) {\n try {\n chainId = (await wallet.getChainId()).toString();\n } catch {\n // ignore error\n }\n }\n return LoginPayloadDataSchema.parse({\n type: wallet.type,\n domain: parsedOptions.domain,\n address: parsedOptions?.address || (await wallet.getAddress()),\n statement: parsedOptions?.statement,\n version: parsedOptions?.version,\n uri: parsedOptions?.uri,\n chain_id: chainId,\n nonce: parsedOptions?.nonce,\n expiration_time: parsedOptions.expirationTime,\n invalid_before: parsedOptions.invalidBefore,\n resources: parsedOptions?.resources\n });\n}\nasync function signLoginPayload(_ref2) {\n let {\n wallet,\n payload\n } = _ref2;\n const message = createLoginMessage(payload);\n const signature = await wallet.signMessage(message);\n return {\n payload,\n signature\n };\n}\nasync function buildAndSignLoginPayload(_ref3) {\n let {\n wallet,\n options\n } = _ref3;\n const payload = await buildLoginPayload({\n wallet,\n options\n });\n return signLoginPayload({\n wallet,\n payload\n });\n}\nasync function verifyLoginPayload(_ref4) {\n let {\n wallet,\n payload,\n options\n } = _ref4;\n const parsedOptions = VerifyOptionsSchema.parse(options);\n if (payload.payload.type !== wallet.type) {\n throw new Error(`Expected chain type '${wallet.type}' does not match chain type on payload '${payload.payload.type}'`);\n }\n\n // Check that the intended domain matches the domain of the payload\n if (payload.payload.domain !== parsedOptions.domain) {\n throw new Error(`Expected domain '${parsedOptions.domain}' does not match domain on payload '${payload.payload.domain}'`);\n }\n\n // Check that the payload statement matches the expected statement\n if (parsedOptions?.statement) {\n if (payload.payload.statement !== parsedOptions.statement) {\n throw new Error(`Expected statement '${parsedOptions.statement}' does not match statement on payload '${payload.payload.statement}'`);\n }\n }\n\n // Check that the intended URI matches the URI of the payload\n if (parsedOptions?.uri) {\n if (payload.payload.uri !== parsedOptions.uri) {\n throw new Error(`Expected URI '${parsedOptions.uri}' does not match URI on payload '${payload.payload.uri}'`);\n }\n }\n\n // Check that the intended version matches the version of the payload\n if (parsedOptions?.version) {\n if (payload.payload.version !== parsedOptions.version) {\n throw new Error(`Expected version '${parsedOptions.version}' does not match version on payload '${payload.payload.version}'`);\n }\n }\n\n // Check that the intended chain ID matches the chain ID of the payload\n if (parsedOptions?.chainId) {\n if (payload.payload.chain_id !== parsedOptions.chainId) {\n throw new Error(`Expected chain ID '${parsedOptions.chainId}' does not match chain ID on payload '${payload.payload.chain_id}'`);\n }\n }\n\n // Check that the payload nonce is valid\n if (parsedOptions?.validateNonce !== undefined) {\n try {\n await parsedOptions.validateNonce(payload.payload.nonce);\n } catch (err) {\n throw new Error(`Login request nonce is invalid`);\n }\n }\n\n // Check that it isn't before the invalid before time\n const currentTime = new Date();\n if (currentTime < new Date(payload.payload.invalid_before)) {\n throw new Error(`Login request is not yet valid`);\n }\n\n // Check that the payload hasn't expired\n if (currentTime > new Date(payload.payload.expiration_time)) {\n throw new Error(`Login request has expired`);\n }\n\n // Check that the specified resources are present on the payload\n if (parsedOptions?.resources) {\n const missingResources = parsedOptions.resources.filter(resource => !payload.payload.resources?.includes(resource));\n if (missingResources.length > 0) {\n throw new Error(`Login request is missing required resources: ${missingResources.join(\", \")}`);\n }\n }\n\n // Check that the signing address is the claimed wallet address\n const message = createLoginMessage(payload.payload);\n const chainId = wallet.type === \"evm\" && payload.payload.chain_id ? parseInt(payload.payload.chain_id) : undefined;\n const verified = await wallet.verifySignature(message, payload.signature, payload.payload.address, chainId);\n if (!verified) {\n throw new Error(`Signer address does not match payload address '${payload.payload.address.toLowerCase()}'`);\n }\n return payload.payload.address;\n}\n\nfunction base64encode(data) {\n {\n return window.btoa(data);\n }\n}\nfunction base64decode(data) {\n {\n return window.atob(data);\n }\n}\n\n/**\n * Build JWT token based on the authentication payload\n */\nasync function buildJWT(_ref) {\n let {\n wallet,\n payload\n } = _ref;\n const payloadData = AuthenticationPayloadDataSchema.parse(payload);\n const message = JSON.stringify(payloadData);\n const signature = await wallet.signMessage(message);\n\n // Header used for JWT token specifying hash algorithm\n const header = {\n // Specify ECDSA with SHA-256 for hashing algorithm\n alg: \"ES256\",\n typ: \"JWT\"\n };\n const encodedHeader = base64encode(JSON.stringify(header));\n const encodedData = base64encode(JSON.stringify(payloadData));\n const encodedSignature = base64encode(signature);\n\n // Generate a JWT with base64 encoded header, payload, and signature\n const jwt = `${encodedHeader}.${encodedData}.${encodedSignature}`;\n return jwt;\n}\n\n/**\n * Generate a new JWT using a login payload\n */\nasync function generateJWT(_ref2) {\n let {\n wallet,\n payload,\n options\n } = _ref2;\n const parsedOptions = GenerateOptionsSchema.parse(options);\n const userAddress = await verifyLoginPayload({\n wallet,\n payload,\n options: {\n domain: parsedOptions.domain,\n ...parsedOptions.verifyOptions\n }\n });\n let session = undefined;\n if (typeof parsedOptions?.session === \"function\") {\n const sessionTrigger = await parsedOptions.session(userAddress);\n if (sessionTrigger) {\n session = sessionTrigger;\n }\n } else {\n session = parsedOptions?.session;\n }\n const adminAddress = await wallet.getAddress();\n return buildJWT({\n wallet,\n payload: {\n iss: adminAddress,\n sub: userAddress,\n aud: parsedOptions.domain,\n nbf: parsedOptions?.invalidBefore || new Date(),\n exp: parsedOptions.expirationTime,\n iat: new Date(),\n jti: parsedOptions?.tokenId,\n ctx: session\n }\n });\n}\n\n/**\n * Parse data from an encoded auth JWT\n */\nfunction parseJWT(jwt) {\n const encodedPayload = jwt.split(\".\")[1];\n const encodedSignature = jwt.split(\".\")[2];\n const payload = JSON.parse(base64decode(encodedPayload));\n const signature = base64decode(encodedSignature);\n return {\n payload,\n signature\n };\n}\n\n/**\n * Refresh an existing JWT\n */\nasync function refreshJWT(_ref3) {\n let {\n wallet,\n jwt,\n options\n } = _ref3;\n const {\n payload\n } = parseJWT(jwt);\n const parsedOptions = RefreshOptionsSchema.parse(options);\n return buildJWT({\n wallet,\n payload: {\n iss: payload.iss,\n sub: payload.sub,\n aud: payload.aud,\n nbf: new Date(),\n exp: parsedOptions.expirationTime,\n iat: new Date(),\n ctx: payload.ctx\n }\n });\n}\n\n/**\n * Validate a JWT and extract the user's info\n */\nasync function authenticateJWT(_ref4) {\n let {\n wallet,\n jwt,\n options\n } = _ref4;\n const parsedOptions = AuthenticateOptionsSchema.parse(options);\n const {\n payload,\n signature\n } = parseJWT(jwt);\n\n // Check that the payload unique ID is valid\n if (parsedOptions?.validateTokenId !== undefined) {\n try {\n await parsedOptions.validateTokenId(payload.jti);\n } catch (err) {\n throw new Error(`Token ID is invalid`);\n }\n }\n\n // Check that the token audience matches the domain\n if (payload.aud !== parsedOptions.domain) {\n throw new Error(`Expected token to be for the domain '${parsedOptions.domain}', but found token with domain '${payload.aud}'`);\n }\n\n // Check that the token is past the invalid before time\n const currentTime = Math.floor(new Date().getTime() / 1000);\n if (currentTime < payload.nbf) {\n throw new Error(`This token is invalid before epoch time '${payload.nbf}', current epoch time is '${currentTime}'`);\n }\n\n // Check that the token hasn't expired\n if (currentTime > payload.exp) {\n throw new Error(`This token expired at epoch time '${payload.exp}', current epoch time is '${currentTime}'`);\n }\n\n // Check that the connected wallet matches the token issuer\n const issuerAddress = parsedOptions.issuerAddress ? parsedOptions.issuerAddress : await wallet.getAddress();\n if (issuerAddress.toLowerCase() !== payload.iss.toLowerCase()) {\n throw new Error(`The expected issuer address '${issuerAddress}' did not match the token issuer address '${payload.iss}'`);\n }\n let chainId = undefined;\n if (wallet.getChainId) {\n try {\n chainId = await wallet.getChainId();\n } catch {\n // ignore error\n }\n }\n const verified = await wallet.verifySignature(JSON.stringify(payload), signature, issuerAddress, chainId);\n if (!verified) {\n throw new Error(`The expected signer address '${issuerAddress}' did not sign the token`);\n }\n return {\n address: payload.sub,\n session: payload.ctx\n };\n}\n\nclass ThirdwebAuth {\n constructor(wallet, domain) {\n this.wallet = wallet;\n this.domain = domain;\n }\n updateWallet(wallet) {\n this.wallet = wallet;\n }\n async payload(options) {\n return buildLoginPayload({\n wallet: this.wallet,\n options: this.formatOptions(options)\n });\n }\n async loginWithPayload(payload) {\n return signLoginPayload({\n wallet: this.wallet,\n payload\n });\n }\n async login(options) {\n return buildAndSignLoginPayload({\n wallet: this.wallet,\n options: this.formatOptions(options)\n });\n }\n async verify(payload, options) {\n return verifyLoginPayload({\n wallet: this.wallet,\n payload,\n options: this.formatOptions(options)\n });\n }\n async generate(payload, options) {\n return generateJWT({\n wallet: this.wallet,\n payload,\n options: this.formatOptions(options)\n });\n }\n async refresh(jwt, expirationTime) {\n return refreshJWT({\n wallet: this.wallet,\n jwt,\n options: {\n expirationTime\n }\n });\n }\n async authenticate(jwt, options) {\n return authenticateJWT({\n wallet: this.wallet,\n jwt,\n options: this.formatOptions(options)\n });\n }\n parseToken(jwt) {\n return parseJWT(jwt);\n }\n formatOptions(options) {\n return options ? {\n ...options,\n domain: options?.domain || this.domain\n } : {\n domain: this.domain\n };\n }\n}\n\nexport { AuthenticationPayloadDataSchema as A, GenerateOptionsSchema as G, JsonSchema as J, LoginOptionsSchema as L, RawDateSchema as R, ThirdwebAuth as T, VerifyOptionsSchema as V, authenticateJWT as a, buildJWT as b, buildLoginPayload as c, buildAndSignLoginPayload as d, AuthenticationPayloadSchema as e, AuthenticateOptionsSchema as f, generateJWT as g, AddressSchema as h, AccountTypeSchema as i, LoginPayloadDataSchema as j, LoginPayloadSchema as k, LoginPayloadOutputSchema as l, RefreshOptionsSchema as m, THIRDWEB_AUTH_ACTIVE_ACCOUNT_COOKIE as n, THIRDWEB_AUTH_TOKEN_COOKIE_PREFIX as o, parseJWT as p, THIRDWEB_AUTH_DEFAULT_REFRESH_INTERVAL_IN_SECONDS as q, refreshJWT as r, signLoginPayload as s, THIRDWEB_AUTH_DEFAULT_TOKEN_DURATION_IN_SECONDS as t, verifyLoginPayload as v };\n","import mime from 'mime/lite.js';\nimport { createContext, useContext, useState, useEffect, useRef, useMemo, useCallback } from 'react';\nimport { useQueryClient, useMutation, QueryClient, QueryClientProvider, useQuery } from '@tanstack/react-query';\nimport invariant from 'tiny-invariant';\nimport { jsx, jsxs } from 'react/jsx-runtime';\nimport { updateChainRPCs, getValidChainRPCs, defaultChains } from '@thirdweb-dev/chains';\nimport { ThirdwebSDK, getChainProvider } from '@thirdweb-dev/sdk/evm';\nimport { UserWallet, checkClientIdOrSecretKey, fetchCurrencyMetadata, fetchCurrencyValue, getCachedAbiForContract, ListingType, ThirdwebSDK as ThirdwebSDK$1 } from '@thirdweb-dev/sdk';\nimport { walletIds, WalletConnectV2Handler, createAsyncLocalStorage, assertWindowEthereum } from '@thirdweb-dev/wallets';\nimport { constants, utils, BigNumber, providers } from 'ethers';\nimport { ThirdwebAuth, signLoginPayload } from '@thirdweb-dev/auth';\nimport { watchTransactions } from '@thirdweb-dev/sdk/evm/functions';\n\n// TODO legacy remove this when possible\n\n/**\n * @internal\n */\nasync function resolveMimeType(url) {\n if (!url) {\n return undefined;\n }\n const mimeType = mime.getType(url);\n if (mimeType) {\n return mimeType;\n }\n const res = await fetch(url, {\n method: \"HEAD\"\n });\n if (res.ok && res.headers.has(\"content-type\")) {\n return res.headers.get(\"content-type\") || undefined;\n }\n // we failed to resolve the mime type, return null\n return undefined;\n}\n\n/**\n * @internal\n */\nconst ThirdwebThemeContext = /* @__PURE__ */createContext(undefined);\n\n/**\n * Secure storage interface for storing auth tokens.\n *\n * The implementation of this interface should provide a secure way to store values. Either by encrypting the values or by storing them in a secure location.\n * @auth\n */\n\n/**\n * The configuration to use by the React and React Native SDKs with an [auth](https://portal.thirdweb.com/wallets/auth) server.\n * @auth\n */\n\nconst ThirdwebAuthContext = /* @__PURE__ */createContext(undefined);\n\n/**\n *\n * @internal\n */\nfunction useThirdwebAuthContext() {\n return useContext(ThirdwebAuthContext);\n}\n\nconst isWalletConnectReceiverEnabled = wallet => {\n const options = wallet?.getOptions();\n return options && \"walletConnectReceiver\" in options && options.walletConnectReceiver;\n};\n\nconst LAST_CONNECTED_WALLET_STORAGE_KEY = \"lastConnectedWallet\";\nlet lastConnectedWalletStorage;\n// maps wallet instance to it's wallet config\nconst walletInstanceToConfig = new Map();\n\n/**\n * Maps a personal wallet instance to it's wrapper wallet instance ( like smartWallet or safeWallet ) to know it's \"wrapper\" wallet\n *\n * This is used to implement the \"switch to personal wallet\" and \"switch to smart wallet\" feature\n */\nconst personalWalletToWrapperWallet = new Map();\nconst ThirdwebWalletContext = /* @__PURE__ */createContext(undefined);\n/**\n * setup states and methods for wallet connection\n */\nfunction useWalletConnectionSetup(data, initialValue) {\n const {\n chains,\n chainToConnect,\n dAppMeta,\n clientId,\n activeChain\n } = data;\n const [signer, setSigner] = useState(undefined);\n const [connectionStatus, setConnectionStatus] = useState(initialValue.connectionStatus);\n const [activeWallet, setActiveWallet] = useState();\n const [createdWalletInstance, setCreatedWalletInstance] = useState();\n const [activeWalletConfig, setActiveWalletConfig] = useState();\n const [chainId, setChainId] = useState(undefined);\n const [walletAddress, setWalletAddress] = useState(undefined);\n const walletParams = useMemo(() => {\n return {\n chains: chains,\n dappMetadata: dAppMeta,\n chain: activeChain || chains[0],\n clientId: clientId\n };\n }, [chains, dAppMeta, activeChain, clientId]);\n const createWalletInstance = useCallback(walletConfig => {\n const walletInstance = walletConfig.create(walletParams);\n if (walletInstance.walletId === walletIds.magicLink) {\n // NOTE: removing this if statement causes the component to re-render\n // Patch for magic link wallet in react native\n // needed because we need to add a component to the view tree\n // from the instance, right before calling connect.\n // Check it out in RN's DappContextProvider.\n setCreatedWalletInstance(walletInstance);\n }\n walletInstanceToConfig.set(walletInstance, walletConfig);\n return walletInstance;\n }, [walletParams]);\n const setConnectedWallet = useCallback(async function (wallet, connectParams) {\n let isAutoConnect = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n setActiveWallet(wallet);\n const walletConfig = walletInstanceToConfig.get(wallet);\n if (!walletConfig) {\n throw new Error(\"Wallet config not found for given wallet instance. Do not create a wallet instance manually - use the useCreateWalletInstance() hook instead\");\n }\n setActiveWalletConfig(walletConfig);\n setConnectionStatus(\"connected\");\n const _signer = await wallet.getSigner();\n setSigner(_signer);\n\n // if personal wallet exists, we need to replace the connectParams.personalWallet to a stringifiable version\n const personalWallet = wallet.getPersonalWallet();\n personalWalletToWrapperWallet.set(personalWallet, wallet);\n\n // it autoconnected, then the details is already saved in storage, no need to store again\n if (isAutoConnect) {\n return;\n }\n\n // save to storage\n\n const walletInfo = {\n walletId: walletConfig.id,\n connectParams: connectParams || wallet.getConnectParams()\n };\n const personalWalletConfig = walletInstanceToConfig.get(personalWallet);\n if (personalWallet && personalWalletConfig) {\n walletInfo.connectParams = {\n ...walletInfo.connectParams,\n personalWallet: {\n walletId: personalWalletConfig.id,\n connectParams: personalWallet.getConnectParams()\n }\n };\n saveLastConnectedWalletInfo(walletInfo);\n } else {\n saveLastConnectedWalletInfo(walletInfo);\n }\n }, []);\n const storeLastActiveChainId = useCallback(async _chainId => {\n const lastConnectedWallet = await lastConnectedWalletStorage.getItem(LAST_CONNECTED_WALLET_STORAGE_KEY);\n if (!lastConnectedWallet) {\n return;\n }\n try {\n const parsedWallet = JSON.parse(lastConnectedWallet);\n if (parsedWallet.connectParams) {\n parsedWallet.connectParams.chainId = _chainId;\n } else {\n parsedWallet.connectParams = {\n chainId: _chainId\n };\n }\n await lastConnectedWalletStorage.setItem(LAST_CONNECTED_WALLET_STORAGE_KEY, JSON.stringify(parsedWallet));\n } catch (error) {\n console.error(`Error saving the last active chain: ${error}`);\n }\n }, []);\n const switchChain = useCallback(async _chainId => {\n if (!activeWallet) {\n throw new Error(\"No active wallet\");\n }\n await activeWallet.switchChain(_chainId);\n const _signer = await activeWallet.getSigner();\n await storeLastActiveChainId(_chainId);\n setSigner(_signer);\n }, [activeWallet, storeLastActiveChainId]);\n const connectWallet = useCallback(async function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n const [WalletObj, connectParams] = args;\n const _connectedParams = {\n chainId: chainToConnect?.chainId,\n ...(connectParams || {})\n };\n const wallet = createWalletInstance(WalletObj);\n setConnectionStatus(\"connecting\");\n try {\n // if magic is using social login - it will redirect the page - so need to save walletInfo before connecting\n // TODO: find a better way to handle this\n if (WalletObj.id === walletIds.magicLink) {\n saveLastConnectedWalletInfo({\n walletId: WalletObj.id,\n connectParams: _connectedParams\n });\n }\n await wallet.connect(_connectedParams);\n setConnectedWallet(wallet, _connectedParams);\n } catch (e) {\n console.error(`Error connecting to wallet: ${e}`);\n setConnectionStatus(\"disconnected\");\n throw e;\n }\n return wallet;\n }, [createWalletInstance, setConnectedWallet, chainToConnect]);\n const onWalletDisconnect = useCallback(async () => {\n await lastConnectedWalletStorage.removeItem(LAST_CONNECTED_WALLET_STORAGE_KEY);\n setConnectionStatus(\"disconnected\");\n setSigner(undefined);\n setActiveWallet(undefined);\n setActiveWalletConfig(undefined);\n setChainId(undefined);\n setWalletAddress(undefined);\n }, []);\n const disconnectWallet = useCallback(async () => {\n // if disconnect is called before the wallet is connected\n if (!activeWallet) {\n onWalletDisconnect();\n return;\n }\n const personalWallet = activeWallet.getPersonalWallet();\n await activeWallet.disconnect();\n if (personalWallet) {\n await personalWallet?.disconnect();\n }\n onWalletDisconnect();\n }, [activeWallet, onWalletDisconnect]);\n\n // handle wallet change event\n useEffect(() => {\n if (!activeWallet) {\n setSigner(undefined);\n setChainId(undefined);\n setWalletAddress(undefined);\n return;\n }\n const update = async () => {\n activeWallet.getSigner().then(setSigner);\n activeWallet.getChainId().then(setChainId);\n activeWallet.getAddress().then(setWalletAddress);\n };\n update();\n activeWallet.addListener(\"change\", update);\n activeWallet.addListener(\"disconnect\", onWalletDisconnect);\n return () => {\n activeWallet.removeListener(\"change\", update);\n activeWallet.removeListener(\"disconnect\", onWalletDisconnect);\n };\n }, [activeWallet, onWalletDisconnect]);\n\n // if props.chains is updated, update the active wallet's chains\n useEffect(() => {\n if (activeWallet) {\n activeWallet.updateChains(chains);\n }\n }, [activeWallet, chains]);\n return {\n signer,\n connectionStatus,\n setConnectionStatus,\n activeWallet,\n createdWalletInstance,\n activeWalletConfig,\n createWalletInstance,\n setConnectedWallet,\n switchChain,\n connectWallet,\n disconnectWallet,\n chainId,\n address: walletAddress\n };\n}\nfunction ThirdwebWalletProvider(props) {\n // if autoSwitch is enabled - enforce connection to activeChain\n const chainToConnect = props.autoSwitch ? props.activeChain : undefined;\n const autoConnectTimeout = props.autoConnectTimeout || 15000;\n const walletSetupData = {\n chains: props.chains,\n dAppMeta: props.dAppMeta,\n activeChain: props.activeChain,\n clientId: props.clientId,\n chainToConnect\n };\n const {\n signer,\n connectionStatus,\n setConnectionStatus,\n activeWallet,\n createdWalletInstance,\n activeWalletConfig,\n createWalletInstance,\n setConnectedWallet,\n switchChain,\n connectWallet,\n disconnectWallet\n } = useWalletConnectionSetup(walletSetupData, {\n connectionStatus: \"unknown\"\n });\n const personalWalletConnection = useWalletConnectionSetup(walletSetupData, {\n connectionStatus: \"disconnected\"\n });\n\n /**\n * This is used to know if auto connect is in progress\n */\n const [isAutoConnecting, setIsAutoConnecting] = useState(false);\n const [walletConnectHandler, setWalletConnectHandler] = useState();\n if (!lastConnectedWalletStorage) {\n lastConnectedWalletStorage = props.createWalletStorage(\"coordinatorStorage\");\n }\n useEffect(() => {\n if (!activeWallet) {\n return;\n }\n const initWCHandler = async () => {\n const wcReceiverOptions = activeWallet?.getOptions();\n const handler = new WalletConnectV2Handler({\n walletConnectReceiver: {\n ...(wcReceiverOptions?.walletConnectReceiver === true ? {} : wcReceiverOptions?.walletConnectReceiver)\n }\n }, activeWallet);\n await handler.init();\n setWalletConnectHandler(handler);\n };\n if (isWalletConnectReceiverEnabled(activeWallet)) {\n initWCHandler();\n }\n }, [activeWallet]);\n const autoConnectTriggered = useRef(false);\n\n // Auto Connect\n useEffect(() => {\n if (autoConnectTriggered.current) {\n return;\n }\n autoConnectTriggered.current = true;\n\n // do not auto connect if signerWallet is given\n if (props.signerWallet) {\n return;\n }\n if (activeWallet) {\n // there's already an active wallet, don't auto connect\n return;\n }\n if (connectionStatus !== \"unknown\") {\n // only try to auto connect if we're in the unknown state\n return;\n }\n\n // if explicitly set to false, don't auto connect\n // by default, auto connect\n if (props.shouldAutoConnect === false) {\n setConnectionStatus(\"disconnected\");\n return;\n }\n async function autoconnect() {\n const walletInfo = await getLastConnectedWalletInfo();\n if (!walletInfo) {\n setConnectionStatus(\"disconnected\");\n return;\n }\n const walletObj = props.supportedWallets.find(W => W.id === walletInfo.walletId);\n if (!walletObj) {\n // last connected wallet is no longer present in the supported wallets\n setConnectionStatus(\"disconnected\");\n return;\n }\n let _personalWalletInfo = walletInfo.connectParams?.personalWallet;\n let shouldSetPersonalWalletAsActive = false;\n\n // if the wallet requires a personal wallet (like smartWallet), but the saved data does not have it\n // this can happen when user clicks on \"switch to personal wallet\" and reloads the page\n // OR when user clicks on magic link social login\n if (walletObj.personalWallets && !_personalWalletInfo) {\n // for magicLink social login - don't switch to personal wallet because smartWallet did not have a chance to connect because of page change\n if (walletInfo.walletId === walletIds.magicLink && walletInfo.connectParams && \"oauthProvider\" in walletInfo.connectParams) {\n shouldSetPersonalWalletAsActive = false;\n } else {\n shouldSetPersonalWalletAsActive = true;\n }\n\n // fix the connectParams by adding the personal wallet info\n _personalWalletInfo = {\n walletId: walletInfo.walletId,\n connectParams: walletInfo.connectParams\n };\n }\n const personalWalletInfo = _personalWalletInfo;\n let personalWalletInstance;\n if (personalWalletInfo) {\n const personalWallets = walletObj.personalWallets || [];\n const personalWalletObj = personalWallets.find(W => W.id === personalWalletInfo.walletId);\n if (personalWalletObj) {\n // create a personal wallet instance and auto connect it\n personalWalletInstance = createWalletInstance(personalWalletObj);\n try {\n await timeoutPromise(personalWalletInstance.autoConnect(personalWalletInfo.connectParams), {\n ms: autoConnectTimeout,\n message: autoConnectTimeoutErrorMessage\n });\n if (shouldSetPersonalWalletAsActive) {\n setConnectedWallet(personalWalletInstance, personalWalletInfo.connectParams, true);\n }\n } catch (e) {\n console.error(\"Failed to auto connect personal wallet\");\n console.error(e);\n setConnectionStatus(\"disconnected\");\n return;\n }\n\n // set the personal wallet instance to the connectParams\n walletInfo.connectParams = {\n ...walletInfo.connectParams,\n personalWallet: personalWalletInstance\n };\n } else {\n // last used personal wallet is no longer present in the supported wallets\n setConnectionStatus(\"disconnected\");\n return;\n }\n }\n\n // create a wallet instance and auto connect it\n const wallet = createWalletInstance(walletObj);\n try {\n setIsAutoConnecting(true);\n setConnectionStatus(\"connecting\");\n if (personalWalletInstance) {\n personalWalletToWrapperWallet.set(personalWalletInstance, wallet);\n }\n await timeoutPromise(wallet.autoConnect(walletInfo.connectParams), {\n ms: autoConnectTimeout,\n message: autoConnectTimeoutErrorMessage\n });\n if (!shouldSetPersonalWalletAsActive) {\n setConnectedWallet(wallet, walletInfo.connectParams, true);\n }\n } catch (e) {\n console.error(\"Failed to auto connect wallet\");\n console.error(e);\n if (e instanceof Error && e.message === autoConnectTimeoutErrorMessage) {\n lastConnectedWalletStorage.removeItem(LAST_CONNECTED_WALLET_STORAGE_KEY);\n }\n setConnectionStatus(\"disconnected\");\n }\n setIsAutoConnecting(false);\n }\n autoconnect();\n }, [createWalletInstance, props.supportedWallets, setConnectedWallet, props.shouldAutoConnect, activeWallet, connectionStatus, props.signerWallet, setConnectionStatus, autoConnectTimeout]);\n\n // connect signerWallet immediately if it's passed\n // and disconnect it if it's not passed\n const signerConnected = useRef();\n useEffect(() => {\n if (!props.signerWallet) {\n if (signerConnected.current) {\n disconnectWallet();\n signerConnected.current = undefined;\n }\n return;\n }\n if (signerConnected.current === props.signerWallet) {\n return;\n }\n const wallet = createWalletInstance(props.signerWallet);\n setConnectedWallet(wallet);\n signerConnected.current = props.signerWallet;\n }, [createWalletInstance, props.supportedWallets, setConnectedWallet, props.signerWallet, disconnectWallet]);\n return /*#__PURE__*/jsx(ThirdwebWalletContext.Provider, {\n value: {\n disconnect: disconnectWallet,\n wallets: props.supportedWallets,\n connect: connectWallet,\n signer,\n activeWallet,\n activeWalletConfig,\n connectionStatus,\n setConnectionStatus,\n createWalletInstance: createWalletInstance,\n createdWalletInstance: createdWalletInstance,\n createWalletStorage: props.createWalletStorage,\n switchChain,\n setConnectedWallet: setConnectedWallet,\n activeChain: props.activeChain,\n chainToConnect,\n getWalletConfig: walletInstance => {\n return walletInstanceToConfig.get(walletInstance);\n },\n getWrapperWallet: personalWallet => {\n return personalWalletToWrapperWallet.get(personalWallet);\n },\n activeChainSetExplicitly: props.activeChainSetExplicitly,\n clientId: props.clientId,\n walletConnectHandler: walletConnectHandler,\n personalWalletConnection,\n isAutoConnecting\n },\n children: props.children\n });\n}\n\n/**\n * @internal\n */\nfunction useWalletContext() {\n const ctx = useContext(ThirdwebWalletContext);\n if (!ctx) {\n throw new Error(`useWalletContext() can only be used inside `);\n }\n return ctx;\n}\n\n/**\n * Get WalletConnect handler instance\n */\nfunction useWalletConnectHandler() {\n const ctx = useWalletContext();\n if (!ctx) {\n throw new Error(`useWalletConnectHandler() can only be used inside `);\n }\n return ctx.walletConnectHandler;\n}\nasync function getLastConnectedWalletInfo() {\n const str = await lastConnectedWalletStorage.getItem(LAST_CONNECTED_WALLET_STORAGE_KEY);\n if (!str) {\n return null;\n }\n try {\n return JSON.parse(str);\n } catch {\n await lastConnectedWalletStorage.removeItem(LAST_CONNECTED_WALLET_STORAGE_KEY);\n return null;\n }\n}\nasync function saveLastConnectedWalletInfo(walletInfo) {\n try {\n await lastConnectedWalletStorage.setItem(LAST_CONNECTED_WALLET_STORAGE_KEY, JSON.stringify(walletInfo));\n } catch (e) {\n console.error(\"Error saving the last connected wallet info\", e);\n }\n}\n\n/**\n * Timeout a promise with a given Error message if the promise does not resolve in given time\n *\n * @param promise - Promise to track for timeout\n * @param option - timeout options\n * @returns\n */\nfunction timeoutPromise(promise, option) {\n return new Promise((resolve, reject) => {\n const timeoutId = setTimeout(() => {\n reject(new Error(option.message));\n }, option.ms);\n promise.then(res => {\n clearTimeout(timeoutId);\n resolve(res);\n }, err => {\n clearTimeout(timeoutId);\n reject(err);\n });\n });\n}\nconst autoConnectTimeoutErrorMessage = `Failed to Auto connect. Auto connect timed out. You can increase the timeout duration using the autoConnectTimeout prop on `;\n\n/**\n * @wallet\n */\n\n/**\n * Hook to get the instance of the currently connected wallet.\n *\n * @example\n * ```jsx\n * import { useWallet } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const walletInstance = useWallet();\n * }\n * ```\n * @returns Currently connected `WalletInstance` , or `undefined` if no wallet is connected.\n * @walletConnection\n */\n\n/**\n * Hook to get the instance of the currently connected wallet if it matches the given `walletId`.\n *\n * @example\n * ```jsx\n * import { useWallet } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const metamaskWalletInstance = useWallet('metamask');\n * }\n * ```\n *\n * @returns Currently connected `WalletInstance` with given `walletId` , or `undefined` if no wallet is connected or if the connected wallet does not match the given `walletId`.\n * @walletConnection\n */\n\nfunction useWallet(walletId) {\n const context = useWalletContext();\n invariant(context, \"useWallet() hook must be used within a \");\n const activeWallet = context.activeWallet;\n if (!activeWallet) {\n return undefined;\n }\n\n // if walletId is provided, return the wallet instance only if it matches the walletId\n if (walletId) {\n if (activeWallet.walletId === walletId) {\n return activeWallet;\n } else {\n return undefined;\n }\n }\n return activeWallet;\n}\n\n/**\n *\n * Hook to get the `WalletConfig` object of the currently connected wallet.\n *\n * This is useful to get metadata about the connected wallet, such as the wallet name, logo, etc\n *\n * @example\n *\n * ```jsx\n * import { useWalletConfig } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const walletConfig = useWalletConfig();\n *\n * const walletName = walletConfig?.meta.name;\n * const walletLogo = walletConfig?.meta.iconURL;\n * }\n * ```\n *\n * @returns The current connected wallet's configuration object or `undefined` if no wallet is connected.\n *\n * @walletConnection\n */\nfunction useWalletConfig() {\n const context = useWalletContext();\n invariant(context, \"useWallet() hook must be used within a \");\n return context.activeWalletConfig;\n}\n\n/**\n * @internal\n * Get `supportedWallets` passed in the ``\n * @returns `supportedWallets` configured in the ``\n */\nfunction useWallets() {\n const context = useWalletContext();\n invariant(context, \"useWallets() hook must be used within a \");\n return context.wallets;\n}\n\n/**\n * Hook for connecting a wallet to your app.\n *\n * The wallet also needs to be added in `ThirdwebProvider`'s `supportedWallets` prop to enable auto-connection on page load.\n *\n * @example\n * ```jsx\n * import { useConnect, metamaskWallet } from \"@thirdweb-dev/react\";\n *\n * const metamaskConfig = metamaskWallet();\n *\n * function App() {\n * const connect = useConnect();\n *\n * return (\n * {\n * const wallet = await connect(metamaskConfig, connectOptions);\n * console.log(\"connected to \", wallet);\n * }}\n * >\n * Connect to MetaMask\n * \n * );\n * }\n * ```\n *\n * @returns A function to connect a wallet\n *\n * ```ts\n * const connect = useConnect();\n *\n * function handleConnect() {\n * const wallet = await connect(walletConfig, connectOptions);\n * }\n * ```\n *\n * The function accepts two arguments: `walletConfig` and `connectOptions`\n *\n * #### walletConfig\n * The wallet to connect. Must be of type `WalletConfig`.\n *\n * [Learn more about the available wallet options](https://portal.thirdweb.com/react/v4/connecting-wallets).\n *\n * #### connectOptions\n * The typeof `connectOptions` object depends on the wallet you are connecting. For some wallets, it may be optional\n *\n * If you are using typescript, `connect` will automatically infer the type of `connectOptions` based on the `walletConfig` you pass in as the first argument and will show type errors if you pass in invalid options.\n *\n * @walletConnection\n */\nfunction useConnect() {\n const context = useWalletContext();\n invariant(context, \"useConnect() hook must be used within a \");\n return context.connect;\n}\n\n/**\n * Hook for disconnecting the currently connected wallet.\n *\n * @example\n * ```jsx\n * import { useDisconnect } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const disconnect = useDisconnect();\n *\n * return ;\n * }\n * ```\n *\n * @returns A function to disconnect from current connected wallet\n * @walletConnection\n */\nfunction useDisconnect() {\n const context = useWalletContext();\n invariant(context, \"useDisconnect() hook must be used within a \");\n return context.disconnect;\n}\n\n/**\n * Hook for checking whether your app is connected to a wallet or not.\n *\n * @example\n * ```jsx\n * import { useConnectionStatus } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const connectionStatus = useConnectionStatus();\n *\n * if (connectionStatus === \"unknown\") return

Loading...

;\n * if (connectionStatus === \"connecting\") return

Connecting...

;\n * if (connectionStatus === \"connected\") return

You are connected

;\n * if (connectionStatus === \"disconnected\")\n * return

You are not connected to a wallet

;\n * }\n * ```\n *\n * @returns The wallet connection status\n *\n * It can be one of the following:\n * - `unknown`: connection status is not known yet. This is the initial state.\n * - `connecting`: wallet is being connected. Either because of a user action, or when the wallet is auto-connecting on page load.\n * - `connected`: the wallet is connected and ready to be used.\n * - `disconnected`: the wallet is not connected.\n *\n * @walletConnection\n */\nfunction useConnectionStatus() {\n const context = useWalletContext();\n invariant(context, \"useConnectionStatus() must be used within a \");\n return context.connectionStatus;\n}\n\n/**\n * Hook for setting the `connectionStatus` of the wallet which is returned by the `useConnectionStatus` hook\n *\n * This is only useful if you are manually connecting a wallet instance as mentioned in [Build your Wallet](https://portal.thirdweb.com/wallet-sdk/v2/build)\n *\n * @example\n *\n * ```ts\n * import {\n * useCreateWalletInstance,\n * useSetConnectionStatus,\n * useSetConnectedWallet,\n * metamaskWallet\n * } from \"@thirdweb-dev/react\";\n *\n * const walletConfig = metamaskWallet();\n *\n * function Example() {\n * const createWalletInstance = useCreateWalletInstance();\n * const setConnectionStatus = useSetConnectionStatus();\n * const setConnectedWallet = useSetConnectedWallet();\n *\n * // Call this function to connect your wallet\n * const handleConnect = async () => {\n * // 1. create instance\n * const walletInstance = createWalletInstance(walletConfig);\n * setConnectionStatus(\"connecting\");\n *\n * try {\n * // 2. Call `connect` method of your wallet\n * await walletInstance.connect(\n * connectOptions, // if your wallet.connect method accepts any options, specify it here\n * );\n *\n * // 3. Set connected wallet\n * setConnectedWallet(walletInstance);\n * props.close();\n * } catch (e) {\n * setConnectionStatus(\"disconnected\");\n * console.error(\"failed to connect\", e);\n * }\n * };\n *\n * return
...
;\n * }\n * ```\n *\n * @returns A function that sets the `connectionStatus` of the wallet\n * @walletConnection\n */\nfunction useSetConnectionStatus() {\n const context = useWalletContext();\n invariant(context, \"useSetConnectionStatus() must be used within a \");\n return context.setConnectionStatus;\n}\n\n/**\n * Hook for creating a wallet instance from given `WalletConfig` object.\n *\n * If you just want to connect the wallet and don't need the wallet instance before connecting the wallet, use the `useConnect` hook instead.\n *\n * @example\n *\n * ```jsx\n * import { useConnect, metamaskWallet } from \"@thirdweb-dev/react\";\n *\n * const metamaskConfig = metamaskWallet();\n *\n * function App() {\n * const createWalletInstance = useCreateWalletInstance();\n *\n * return (\n * {\n * const metamaskWalletInstance = createWalletInstance(metamaskConfig);\n * console.log(metamaskWalletInstance);\n * }}\n * >\n * create wallet instance\n * \n * );\n * }\n * ```\n *\n * @returns A function that creates a wallet instance for given `WalletConfig` object.\n *\n * @walletConnection\n */\nfunction useCreateWalletInstance() {\n const context = useWalletContext();\n invariant(context, \"useCreateWalletInstance() must be used within a \");\n return context.createWalletInstance;\n}\n\n/**\n * Hook for switching to a different network.\n *\n * @example\n * ```jsx\n * import { useSwitchChain } from \"@thirdweb-dev/react\";\n * import { Goerli } from \"@thirdweb-dev/chains\";\n *\n * function App() {\n * const switchChain = useSwitchChain();\n * return (\n * \n * );\n * }\n * ```\n *\n * @returns A function to switch the network in the currently connected wallet to network with given `chainId`\n * @networkConnection\n */\nfunction useSwitchChain() {\n const context = useWalletContext();\n invariant(context, \"useSwitchChain() must be used within a \");\n return context.switchChain;\n}\n\n/**\n * Hook for setting a wallet instance as \"connected\" - once done, the wallet connection hooks like `useWallet`, `useAddress`, `useSigner`, `useConnectionStatus` etc will return the data for that wallet instance\n *\n * This is only useful if you are manually connecting a wallet instance as mentioned in [Build your Wallet](https://portal.thirdweb.com/wallet-sdk/v2/build)\n *\n * @example\n *\n * ```ts\n * import {\n * useCreateWalletInstance,\n * useSetConnectionStatus,\n * useSetConnectedWallet,\n * metamaskWallet\n * } from \"@thirdweb-dev/react\";\n *\n * const walletConfig = metamaskWallet();\n *\n * function Example() {\n * const createWalletInstance = useCreateWalletInstance();\n * const setConnectionStatus = useSetConnectionStatus();\n * const setConnectedWallet = useSetConnectedWallet();\n *\n * // Call this function to connect your wallet\n * const handleConnect = async () => {\n * // 1. create instance\n * const walletInstance = createWalletInstance(walletConfig);\n * setConnectionStatus(\"connecting\");\n *\n * try {\n * // 2. Call `connect` method of your wallet\n * await walletInstance.connect(\n * connectOptions, // if your wallet.connect method accepts any options, specify it here\n * );\n *\n * // 3. Set connected wallet\n * setConnectedWallet(walletInstance);\n * props.close();\n * } catch (e) {\n * setConnectionStatus(\"disconnected\");\n * console.error(\"failed to connect\", e);\n * }\n * };\n *\n * return
...
;\n * }\n * ```\n *\n * @returns A function to set a wallet instance as \"connected\".\n * @walletConnection\n */\nfunction useSetConnectedWallet() {\n const context = useWalletContext();\n invariant(context, \"useSwitchChain() must be used within a \");\n return context.setConnectedWallet;\n}\n\nconst AUTH_TOKEN_STORAGE_KEY = \"auth_token_storage_key\";\n\nconst TW_CACHE_KEY_PREFIX = \"tw-cache\";\n\n/**\n * @internal\n */\nfunction enforceCachePrefix(input) {\n return [TW_CACHE_KEY_PREFIX, ...input.filter(i => typeof i !== \"string\" || i !== TW_CACHE_KEY_PREFIX)];\n}\n\n/**\n * @internal\n */\nfunction createContractCacheKey() {\n let contractAddress = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : constants.AddressZero;\n let input = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n return enforceCachePrefix([\"contract\", contractAddress, ...input]);\n}\n\n/**\n @internal\n */\nfunction createCacheKeyWithNetwork(input, chainId) {\n return enforceCachePrefix(cacheKeys.network.active(chainId).concat(input));\n}\n\n/**\n * @internal\n */\nfunction invalidateContractAndBalances(queryClient, contractAddress, chainId) {\n return Promise.all([queryClient.invalidateQueries(enforceCachePrefix(createCacheKeyWithNetwork(createContractCacheKey(contractAddress), chainId))), invalidateBalances(queryClient, chainId)]);\n}\n\n/**\n * @internal\n */\nfunction invalidateBalances(queryClient, chainId) {\n return queryClient.invalidateQueries(enforceCachePrefix(createCacheKeyWithNetwork([\"balance\"], chainId)));\n}\n\n/**\n @internal\n */\nconst cacheKeys = {\n auth: {\n user: () => enforceCachePrefix([\"user\"])\n },\n network: {\n active: chainId => enforceCachePrefix([\"chainId\", chainId])\n },\n wallet: {\n balance: (chainId, walletAddress, tokenAddress) => enforceCachePrefix(createCacheKeyWithNetwork(enforceCachePrefix([\"balance\", {\n walletAddress,\n tokenAddress\n }]), chainId))\n },\n contract: {\n read: (contractAddress, fnIdentity) => createContractCacheKey(contractAddress, [\"read\", fnIdentity]),\n type: contractAddress => createContractCacheKey(contractAddress, [\"contract-type\"]),\n compilerMetadata: contractAddress => createContractCacheKey(contractAddress, [\"publish-metadata\"]),\n typeAndCompilerMetadata: contractAddress => createContractCacheKey(contractAddress, [\"contract-type-and-metadata\"]),\n metadata: contractAddress => createContractCacheKey(contractAddress, [\"metadata\"]),\n extractFunctions: contractAddress => createContractCacheKey(contractAddress, [\"extractFunctions\"]),\n call: (contractAddress, functionName, args, overrides) => createContractCacheKey(contractAddress, [\"call\", functionName, args, overrides]),\n accountFactory: {\n getAll: contractAddress => createContractCacheKey(contractAddress, [\"accountFactory\"]),\n isAccountDeployed: (contractAdress, admin) => createContractCacheKey(contractAdress, [\"isAccountDeployed\", admin]),\n getAllForAddress: (contractAdress, address) => createContractCacheKey(contractAdress, [\"getAllForAddress\", address])\n },\n account: {\n signers: contractAddress => createContractCacheKey(contractAddress, [\"account\", \"signers\"])\n },\n app: {\n get: contractAddress => createContractCacheKey(contractAddress, [\"appURI\"])\n },\n events: {\n getEvents: (contractAddress, eventName) => createContractCacheKey(contractAddress, [\"events\", \"getEvents\", {\n eventName\n }]),\n getAllEvents: contractAddress => createContractCacheKey(contractAddress, [\"events\", \"getAllEvents\"])\n },\n // specific contract types\n nft: {\n get: (contractAddress, tokenId) => createContractCacheKey(contractAddress, [\"get\", {\n tokenId\n }]),\n balanceOf: (contractAddress, owner, tokenId) => createContractCacheKey(contractAddress, [\"balanceOf\", {\n owner,\n tokenId\n }]),\n query: {\n all: (contractAddress, params) => createContractCacheKey(contractAddress, params ? [\"query\", \"all\", params] : [\"query\", \"all\"]),\n totalCirculatingSupply: (contractAddress, tokenId) => createContractCacheKey(contractAddress, [\"query\", \"totalCirculatingSupply\", tokenId ?? \"0\"]),\n totalCount: contractAddress => createContractCacheKey(contractAddress, [\"query\", \"totalCount\"]),\n owned: {\n all: (contractAddress, owner) => createContractCacheKey(contractAddress, [\"query\", \"owned\", \"all\", owner])\n }\n },\n sharedMetadata: {\n get: contractAddress => createContractCacheKey(contractAddress)\n },\n drop: {\n getAllUnclaimed: (contractAddress, params) => createContractCacheKey(contractAddress, params ? [\"getAllUnclaimed\", params] : [\"getAllUnclaimed\"]),\n getAllClaimed: (contractAddress, params) => createContractCacheKey(contractAddress, params ? [\"getAllClaimed\", params] : [\"getAllClaimed\"]),\n totalUnclaimedSupply: contractAddress => createContractCacheKey(contractAddress, [\"totalUnclaimedSupply\"]),\n totalClaimedSupply: contractAddress => createContractCacheKey(contractAddress, [\"totalClaimedSupply\"]),\n revealer: {\n getBatchesToReveal: (contractAddress, params) => createContractCacheKey(contractAddress, params ? [\"getBatchesToReveal\", params] : [\"getBatchesToReveal\"])\n }\n }\n },\n token: {\n totalSupply: contractAddress => createContractCacheKey(contractAddress, [\"totalSupply\"]),\n decimals: contractAddress => createContractCacheKey(contractAddress, [\"decimals\"]),\n balanceOf: (contractAddress, walletAddress) => createContractCacheKey(contractAddress, [\"balanceOf\", {\n walletAddress\n }])\n },\n marketplace: {\n getListing: (contractAddress, listingId) => createContractCacheKey(contractAddress, [\"getListing\", {\n listingId\n }]),\n getAllListings: (contractAddress, params) => createContractCacheKey(contractAddress, params ? [\"getAllListings\", params] : [\"getAllListings\"]),\n getTotalCount: contractAddress => createContractCacheKey(contractAddress, [\"getTotalCount\"]),\n getActiveListings: (contractAddress, params) => createContractCacheKey(contractAddress, params ? [\"getActiveListings\", params] : [\"getActiveListings\"]),\n auction: {\n getBidBufferBps: (contractAddress, listingId) => createContractCacheKey(contractAddress, [\"auction\", \"getBidBufferBps\", {\n listingId\n }]),\n getWinningBid: (contractAddress, listingId) => createContractCacheKey(contractAddress, [\"auction\", \"getWinningBid\", {\n listingId\n }]),\n getMinimumNextBid: (contractAddress, listingId) => createContractCacheKey(contractAddress, [\"auction\", \"getMinimumNextBid\", {\n listingId\n }]),\n getWinner: (contractAddress, listingId) => createContractCacheKey(contractAddress, [\"auction\", \"getWinner\", {\n listingId\n }])\n },\n directListings: {\n getAll: (contractAddress, params) => createContractCacheKey(contractAddress, params ? [\"directListings\", \"getAll\", params] : [\"directListings\", \"getAll\"]),\n getAllValid: (contractAddress, params) => createContractCacheKey(contractAddress, params ? [\"directListings\", \"getAllValid\", params] : [\"directListings\", \"getAllValid\"]),\n getListing: (contractAddress, listingId) => createContractCacheKey(contractAddress, [\"directListings\", \"getListing\", {\n listingId\n }]),\n getTotalCount: contractAddress => createContractCacheKey(contractAddress, [\"directListings\", \"getTotalCount\"])\n },\n englishAuctions: {\n getAll: (contractAddress, params) => createContractCacheKey(contractAddress, params ? [\"englishAuctions\", \"getAll\", params] : [\"englishAuctions\", \"getAll\"]),\n getAllValid: (contractAddress, params) => createContractCacheKey(contractAddress, params ? [\"englishAuctions\", \"getAllValid\", params] : [\"englishAuctions\", \"getAllValid\"]),\n getAuction: (contractAddress, auctionId) => createContractCacheKey(contractAddress, [\"englishAuctions\", \"getAuction\", {\n auctionId\n }]),\n getWinningBid: (contractAddress, auctionId) => createContractCacheKey(contractAddress, [\"englishAuctions\", \"getWinningBid\", {\n auctionId\n }]),\n getTotalCount: contractAddress => createContractCacheKey(contractAddress, [\"englishAuctions\", \"getTotalCount\"])\n }\n }\n },\n // extensions\n extensions: {\n claimConditions: {\n getActive: (contractAddress, tokenId, options) => createContractCacheKey(contractAddress, tokenId ? [\"claimConditions\", \"getActive\", {\n tokenId\n }, options] : [\"claimConditions\", \"getActive\", options]),\n getAll: (contractAddress, tokenId, options) => createContractCacheKey(contractAddress, tokenId ? [\"claimConditions\", \"getAll\", {\n tokenId\n }, options] : [\"claimConditions\", \"getAll\", options]),\n getClaimerProofs: (contractAddress, tokenId) => createContractCacheKey(contractAddress, tokenId ? [\"claimConditions\", \"getClaimerProofs\", {\n tokenId\n }] : [\"claimConditions\", \"getClaimerProofs\"]),\n getClaimIneligibilityReasons: (contractAddress, params, tokenId) => createContractCacheKey(contractAddress, tokenId ? [\"claimConditions\", \"getIneligibilityReasons\", {\n tokenId\n }, params] : [\"claimConditions\", \"getIneligibilityReasons\", params]),\n // combinations of queries cache keys\n useActiveClaimConditionForWallet: (contractAddress, walletAddress, tokenId) => createContractCacheKey(contractAddress, tokenId ? [\"claimConditions\", \"useActiveClaimConditionForWallet\", {\n tokenId,\n walletAddress\n },,] : [\"claimConditions\", \"getIneligibilityReasons\", {\n walletAddress\n }])\n },\n // primary sale contracts\n sales: {\n getRecipient: contractAddress => createContractCacheKey(contractAddress, [\"sales\"])\n },\n // royalties\n royalties: {\n getDefaultRoyaltyInfo: contractAddress => createContractCacheKey(contractAddress, [\"royalties\"])\n },\n // platform fees\n platformFees: {\n get: contractAddress => createContractCacheKey(contractAddress, [\"platformFees\"])\n },\n // contract metadata\n metadata: {\n get: contractAddress => createContractCacheKey(contractAddress, [\"metadata\"])\n },\n roles: {\n getAll: contractAddress => createContractCacheKey(contractAddress, [\"roles\"]),\n get: (contractAddress, role) => createContractCacheKey(contractAddress, [\"roles\", {\n role\n }])\n }\n }\n};\n\n/**\n * Hook for signing out of a wallet after a user has logged in using `useLogin`\n *\n * @example\n * ```jsx\n * import { useLogout } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { logout, isLoading } = useLogout();\n *\n * return (\n * \n * );\n * }\n * ```\n *\n * @returns object containing a `logout` function and an `isLoading` state that indicates if the logout request is in progress\n *\n * @auth\n */\nfunction useLogout() {\n const queryClient = useQueryClient();\n const authConfig = useThirdwebAuthContext();\n const logout = useMutation({\n mutationFn: async () => {\n invariant(authConfig, \"Please specify an authConfig in the ThirdwebProvider\");\n invariant(authConfig.authUrl, \"Please specify an authUrl in the authConfig.\");\n await fetch(`${authConfig.authUrl}/logout`, {\n method: \"POST\",\n credentials: \"include\"\n });\n authConfig.secureStorage?.removeItem(AUTH_TOKEN_STORAGE_KEY);\n queryClient.invalidateQueries(cacheKeys.auth.user());\n }\n });\n return {\n logout: logout.mutateAsync,\n isLoading: logout.isLoading\n };\n}\n\n/**\n * Hook to switch the account of the active wallet\n *\n * @example\n * ```ts\n * const { switchAccount, isLoading } = useSwitchAccount();\n *\n * const handleSwitchAccount = async (address: string) => {\n * await switchAccount(address);\n * }\n * ```\n *\n * @returns A function to invoke to switch account and a boolean to indicate if it is in progress\n *\n * @auth\n */\nfunction useSwitchAccount() {\n const queryClient = useQueryClient();\n const authConfig = useThirdwebAuthContext();\n const switchAccount = useMutation({\n mutationFn: async address => {\n invariant(authConfig, \"Please specify an authConfig in the ThirdwebProvider\");\n invariant(authConfig.authUrl, \"Please specify an authUrl in the authConfig.\");\n await fetch(`${authConfig.authUrl}/switch-account`, {\n method: \"POST\",\n credentials: \"include\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n address\n })\n });\n queryClient.invalidateQueries(cacheKeys.auth.user());\n }\n });\n return {\n switchAccount: switchAccount.mutateAsync,\n isLoading: switchAccount.isLoading\n };\n}\n\nconst ThirdwebAuthProvider = _ref => {\n let {\n value,\n children\n } = _ref;\n // Remove trailing slash from URL if present\n const authContext = useMemo(() => {\n if (!value) {\n return undefined;\n }\n const context = {\n ...value,\n authUrl: value.authUrl?.replace(/\\/$/, \"\")\n };\n return context;\n }, [value]);\n return /*#__PURE__*/jsxs(ThirdwebAuthContext.Provider, {\n value: authContext,\n children: [children, /*#__PURE__*/jsx(ChangeActiveWalletOnAccountSwitch, {})]\n });\n};\nfunction ChangeActiveWalletOnAccountSwitch() {\n const wallet = useWallet();\n const {\n logout\n } = useLogout();\n const {\n switchAccount\n } = useSwitchAccount();\n const authConfig = useThirdwebAuthContext();\n const queryClient = useQueryClient();\n\n // When active wallet switches, switch the active account cookie and invalidate user query\n useEffect(() => {\n const handleSwitchAccount = async data => {\n if (!data.address) {\n return;\n }\n try {\n await switchAccount(data.address);\n } catch (err) {\n console.debug(`[Auth] Failed to switch account to ${data.address} with error:\\n`, err);\n }\n };\n const handleLogout = async () => {\n try {\n await logout();\n } catch (err) {\n console.debug(`[Auth] Failed to logout with error:\\n`, err);\n }\n };\n const shouldAddListener = !!wallet && authConfig && authConfig.authUrl;\n if (shouldAddListener) {\n wallet.addListener(\"connect\", handleSwitchAccount);\n wallet.addListener(\"change\", handleSwitchAccount);\n wallet.addListener(\"disconnect\", handleLogout);\n }\n return () => {\n if (shouldAddListener) {\n wallet.removeListener(\"connect\", handleSwitchAccount);\n wallet.removeListener(\"change\", handleSwitchAccount);\n wallet.removeListener(\"disconnect\", handleLogout);\n }\n };\n }, [wallet, queryClient, authConfig, logout, switchAccount]);\n return null;\n}\n\nfunction useUpdateChainsWithClientId(supportedChains, activeChain, clientId) {\n const supportedChainsWithKey = useMemo(() => {\n return supportedChains.map(chain => updateChainRPCs(chain, clientId));\n }, [supportedChains, clientId]);\n const activeChainIdOrObjWithKey = useMemo(() => {\n if (!activeChain || typeof activeChain === \"string\" || typeof activeChain === \"number\") {\n return activeChain;\n }\n return updateChainRPCs(activeChain, clientId);\n }, [activeChain, clientId]);\n return [supportedChainsWithKey, activeChainIdOrObjWithKey];\n}\n\nconst QueryClientProviderWithDefault = _ref => {\n let {\n queryClient,\n children\n } = _ref;\n const queryClientWithDefault = useMemo(() => {\n return queryClient ? queryClient : new QueryClient();\n }, [queryClient]);\n return /*#__PURE__*/jsx(QueryClientProvider, {\n client: queryClientWithDefault,\n children: children\n });\n};\n\nconst ThirdwebConfigContext = /* @__PURE__ */createContext(undefined);\n\n/**\n * @internal\n */\nconst ThirdwebConfigProvider = _ref => {\n let {\n value,\n children\n } = _ref;\n return /*#__PURE__*/jsx(ThirdwebConfigContext.Provider, {\n value: value,\n children: children\n });\n};\n\n/**\n * @internal\n */\nfunction useThirdwebConfigContext() {\n const context = useContext(ThirdwebConfigContext);\n invariant(context, \"useThirdwebConfigContext() hook must be used within a \");\n return context;\n}\n\nconst ThirdwebSDKContext = /* @__PURE__ */createContext({});\n\n/** @internal */\n// eslint-disable-next-line turbo/no-undeclared-env-vars, better-tree-shaking/no-top-level-side-effects\nconst __DEV__ = process.env.NODE_ENV !== \"production\";\n\n/**\n * @internal\n */\nfunction useSDKContext() {\n const ctx = useContext(ThirdwebSDKContext);\n invariant(ctx._inProvider, \"useSDK must be called from within a ThirdwebProvider, did you forget to wrap your app in a ?\");\n return ctx;\n}\n\n/**\n * Hook to get the instance of the `ThirdwebSDK` class being used by the `ThirdwebProvider` component.\n *\n * This gives access to all of the functionality of the TypeScript SDK in your React app.\n *\n * - If there is a connected wallet, the SDK is instantiated from the connected wallet’s signer. Meaning all transactions are initiated from the connected wallet.\n * - If there is no connected wallet, the SDK is in read-only mode on the activeChain.\n *\n * @example\n * ```tsx\n * import { useSDK } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const sdk = useSDK();\n *\n * // Now you use all of the TypeScript SDK functionality\n * // For example, deploy a new contract from the connected wallet.\n * async function deployContract() {\n * sdk?.deployer.deployNFTDrop({\n * name: \"My NFT Drop\",\n * primary_sale_recipient: \"{{wallet_address}}\",\n * });\n * }\n * }\n * ```\n */\nfunction useSDK() {\n const {\n sdk\n } = useSDKContext();\n return sdk;\n}\n\n/**\n * @internal\n */\nfunction useSDKChainId() {\n const sdk = useSDK();\n return sdk?._chainId;\n}\n\nconst INITIAL_CONTEXT_VALUE = {\n wallet: undefined,\n address: undefined,\n chainId: undefined,\n signer: undefined\n};\nconst ThirdwebConnectedWalletContext = /* @__PURE__ */createContext(undefined);\n\n/**\n * @internal\n */\nconst ThirdwebConnectedWalletProvider = _ref => {\n let {\n signer,\n children\n } = _ref;\n const {\n chains,\n clientId\n } = useThirdwebConfigContext();\n const storage = useSDK()?.storage;\n const [contextValue, setContextValue] = useState({\n ...INITIAL_CONTEXT_VALUE,\n signer: signer ? signer : undefined\n });\n useEffect(() => {\n setContextValue(val => ({\n ...val,\n signer: signer ? signer : undefined\n }));\n }, [signer]);\n useEffect(() => {\n if (!storage) {\n return;\n }\n let s = signer;\n if (signer) {\n // just get both of these up front and keep them around with the context\n Promise.all([signer.getAddress(), signer.getChainId()]).then(_ref2 => {\n let [address, chainId] = _ref2;\n const chain = chains.find(c => c.chainId === chainId);\n let rpcUrl = undefined;\n if (chain) {\n try {\n rpcUrl = getValidChainRPCs(chain, clientId)[0];\n } catch (e) {\n // failed to get a viable rpc url, nothing we can do\n console.error(e);\n }\n }\n\n // only if the signer is still the same!\n if (signer === s) {\n const wallet = new UserWallet(signer, {\n readonlySettings: rpcUrl ? {\n rpcUrl,\n chainId\n } : undefined\n }, storage);\n setContextValue({\n wallet,\n address,\n chainId,\n signer\n });\n }\n }).catch(err => {\n if (__DEV__) {\n console.warn(\"failed to get wallet instance in ``\", err);\n }\n });\n } else {\n // if signer is not provided, re-set the context value to initial values\n setContextValue(INITIAL_CONTEXT_VALUE);\n }\n return () => {\n // set the previous signer to undefined because it is invalid now\n s = undefined;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [signer, clientId]);\n return /*#__PURE__*/jsx(ThirdwebConnectedWalletContext.Provider, {\n value: contextValue,\n children: children\n });\n};\n\n/**\n *\n * @internal\n */\nfunction useThirdwebConnectedWalletContext() {\n const context = useContext(ThirdwebConnectedWalletContext);\n invariant(context, \"useThirdwebConnectedWalletContext() hook must be used within a \");\n return context;\n}\n\nconst WrappedThirdwebSDKProvider = _ref => {\n let {\n sdkOptions = {},\n storageInterface,\n supportedChains,\n activeChain,\n signer,\n children,\n clientId,\n secretKey\n } = _ref;\n const activeChainId = useMemo(() => {\n if (!activeChain) {\n return supportedChains[0]?.chainId;\n }\n if (typeof activeChain === \"number\") {\n return activeChain;\n }\n if (typeof activeChain === \"string\") {\n return supportedChains.find(c => c.slug === activeChain)?.chainId;\n }\n return activeChain.chainId;\n }, [activeChain, supportedChains]);\n const sdk = useMemo(() => {\n let chainId = activeChainId;\n const supportedChain = supportedChains.find(c => c.chainId === chainId);\n if (!supportedChain && chainId !== undefined) {\n console.warn(`The chainId ${chainId} is not in the configured chains, please add it to the ThirdwebProvider`);\n // reset the chainId as to not trigger an error in the sdk constructor\n chainId = undefined;\n }\n let readonlySettings = undefined;\n if (supportedChain && supportedChain.rpc.length > 0) {\n try {\n const rpcUrl = getValidChainRPCs(supportedChain, clientId)[0];\n readonlySettings = {\n chainId: supportedChain.chainId,\n rpcUrl\n };\n } catch (e) {\n // no-op\n }\n }\n\n // TODO: find a better way to fix the type error\n\n const mergedOptions = {\n readonlySettings,\n ...sdkOptions,\n supportedChains: supportedChains\n };\n let sdk_ = undefined;\n if (chainId) {\n // sdk from chainId\n sdk_ = new ThirdwebSDK(chainId, {\n ...mergedOptions,\n clientId,\n secretKey\n }, storageInterface);\n }\n // if we still have no sdk fall back to the first element in chains\n if (!sdk_) {\n if (supportedChains.length > 0) {\n chainId = supportedChains[0].chainId;\n sdk_ = new ThirdwebSDK(chainId, mergedOptions, storageInterface);\n } else {\n console.error(\"No chains configured, please pass a chain or chains to the ThirdwebProvider\");\n return undefined;\n }\n }\n\n // set the chainId on the sdk instance to compare things later\n sdk_._chainId = chainId;\n return sdk_;\n }, [activeChainId, supportedChains, sdkOptions, storageInterface, clientId, secretKey]);\n useEffect(() => {\n // if we have an sdk and a signer update the signer\n if (sdk && sdk._chainId === activeChainId) {\n if (signer) {\n sdk.updateSignerOrProvider(signer);\n } else if (activeChainId) {\n sdk.updateSignerOrProvider(activeChainId);\n }\n }\n // we know what we're doing\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [sdk, sdk?._chainId, signer, activeChainId]);\n const ctxValue = useMemo(() => ({\n sdk: sdk && sdk._chainId === activeChainId ? sdk : undefined,\n _inProvider: true\n }), [activeChainId, sdk]);\n return /*#__PURE__*/jsx(ThirdwebSDKContext.Provider, {\n value: ctxValue,\n children: children\n });\n};\n\n/**\n * The `ThirdwebSDKProvider` is used when you want to provide your own wallet connection logic and just use the thirdweb SDK to interact with smart contracts and the blockchain.\n * This means you can use everything in the SDK except for wallet connection-related components and hooks. if you need those please use the `ThirdwebProvider` instead.\n *\n * `ThirdwebSDKProvider` allows you to set a provider & signer to the Thirdweb SDK.\n *\n * @example\n * Wrap your app in the ThirdwebSDKProvider to access the SDK’s functionality from anywhere in your app.\n *\n * ```tsx\n * import { ThirdwebSDKProvider } from \"@thirdweb-dev/react\";\n * import { ethers } from \"ethers\";\n *\n * // Example shows how to get the signer from the injected provider ( wallet extension )\n * function Example() {\n * return (\n * \n * \n * \n * )\n * }\n * ```\n *\n * @param props -\n * The props for the ThirdwebSDKProvider component\n *\n * ### clientId (optional)\n * The clientId prop is required to use the thirdweb infrastructure services with the SDK.\n *\n * ### activeChain (optional)\n * The activeChain prop determines which chain you want your app to be operating on.\n *\n * There are 1000+ chains available in the `@thirdweb-dev/chains` package. Import the chain you want and pass it to the `activeChain` prop.\n *\n * You can override the imported object or pass a custom chain object with required properties.\n *\n * You can get a client ID by creating an API key on [thirdweb dashboard](https://thirdweb.com/dashboard/settings/api-keys)\n *\n * ### supportedChains (optional)\n * An array of chains supported by your app.\n * There are 1000+ chains available in the `@thirdweb-dev/chains` package. You can import the chain you want and pass it to the `supportedChains` prop in an array.\n *\n * If not provided, it will default to the default supported chains supported by the thirdweb SDK.\n *\n * ```tsx\n * import { Ethereum, Polygon } from \"@thirdweb-dev/chains\";\n *\n * function Example() {\n * return (\n * \n * \n * \n * )\n * }\n * ```\n *\n * ### signer (optional)\n * A signer is an abstraction of an Ethereum Account, which can be used to sign messages and initiate transactions.\n *\n * Since the ThirdwebSDKProvider is used when you want to provide your own wallet connection logic, you will need to provide a signer prop to inform the SDK of the wallet you want to use to sign transactions.\n *\n * Libraries such as ethers.js, web3.js, wagmi, etc. all provide ways to get a signer.\n *\n * To use this signer with the SDK, pass it to the `signer` prop. If the signer is connected, the SDK will use this wallet to sign transactions for all write operations on the blockchain.\n *\n * ### sdkOptions (optional)\n * The thirdweb SDK Options to pass to the thirdweb SDK which includes Gas settings, gasless transactions, RPC configuration, and more.\n *\n * This Overrides any of the default values for the SDK. If not provided, it uses sensible defaults.\n *\n * ### storageInterface (optional)\n * Override the default [Storage](https://portal.thirdweb.com/infrastructure/storage/overview) interface used by the SDK.\n *\n * It allows you to create an instance of `ThirdwebStorage` with your own customized config, and pass it to the SDK.\n *\n * *This requires the `@thirdweb-dev/storage` package to be installed.*\n *\n * ```tsx\n * import { ThirdwebSDKProvider } from \"@thirdweb-dev/react\";\n * import {\n * ThirdwebStorage,\n * StorageDownloader,\n * IpfsUploader,\n * } from \"@thirdweb-dev/storage\";\n *\n * // Configure a custom ThirdwebStorage instance\n * const gatewayUrls = {\n * \"ipfs://\": [\n * \"https://gateway.ipfscdn.io/ipfs/\",\n * \"https://cloudflare-ipfs.com/ipfs/\",\n * \"https://ipfs.io/ipfs/\",\n * ],\n * };\n * const downloader = new StorageDownloader();\n * const uploader = new IpfsUploader();\n * const storage = new ThirdwebStorage({ uploader, downloader, gatewayUrls });\n *\n * // Provide the custom storage instance to the SDK\n * function MyApp() {\n * return (\n * \n * \n * \n * );\n * }\n * ```\n *\n * ### authConfig (optional)\n * The configuration object for setting up [Auth](https://portal.thirdweb.com/wallets/auth); allowing users to sign in with their wallet.\n *\n * ### secretKey (optional)\n * secretKey for thirdweb services. This is only required if server side rendering is being used.\n *\n * @public\n */\nconst ThirdwebSDKProvider = props => {\n const {\n signer,\n children,\n queryClient,\n supportedChains: _supportedChains,\n activeChain,\n clientId,\n ...restProps\n } = props;\n if (!clientId) {\n checkClientIdOrSecretKey(\"No API key. Please provide a clientId. It is required to access thirdweb's services. You can create a key at https://thirdweb.com/create-api-key\", clientId, undefined);\n }\n const supportedChains = _supportedChains || defaultChains;\n const supportedChainsNonNull = useMemo(() => {\n const isActiveChainObject = typeof activeChain === \"object\" && activeChain !== null;\n if (!isActiveChainObject) {\n return supportedChains;\n }\n const isActiveChainInSupportedChains = supportedChains.find(c => c.chainId === activeChain.chainId);\n\n // if activeChain is not in supportedChains - add it\n if (!isActiveChainInSupportedChains) {\n return [...supportedChains, activeChain];\n }\n\n // if active chain is in supportedChains - replace it with object in activeChain\n return supportedChains.map(c => c.chainId === activeChain.chainId ? activeChain : c);\n }, [supportedChains, activeChain]);\n const [supportedChainsWithKey, activeChainIdOrObjWithKey] = useUpdateChainsWithClientId(supportedChainsNonNull, activeChain || supportedChainsNonNull[0], clientId);\n const mergedChains = useMemo(() => {\n if (!activeChainIdOrObjWithKey || typeof activeChainIdOrObjWithKey === \"string\" || typeof activeChainIdOrObjWithKey === \"number\") {\n return supportedChainsWithKey;\n }\n const _mergedChains = [...supportedChainsWithKey.filter(c => c.chainId !== activeChainIdOrObjWithKey.chainId), activeChainIdOrObjWithKey];\n // return a _mergedChains uniqued by chainId key\n return _mergedChains.filter((chain, index, self) => index === self.findIndex(c => c.chainId === chain.chainId));\n }, [supportedChainsWithKey, activeChainIdOrObjWithKey]);\n return /*#__PURE__*/jsx(ThirdwebConfigProvider, {\n value: {\n chains: mergedChains,\n clientId\n },\n children: /*#__PURE__*/jsx(QueryClientProviderWithDefault, {\n queryClient: queryClient,\n children: /*#__PURE__*/jsx(WrappedThirdwebSDKProvider, {\n signer: signer,\n supportedChains: mergedChains,\n clientId: clientId,\n activeChain: activeChainIdOrObjWithKey,\n ...restProps,\n children: /*#__PURE__*/jsx(ThirdwebConnectedWalletProvider, {\n signer: signer,\n children: children\n })\n })\n })\n });\n};\n\n/**\n * @internal\n */\nconst ThirdwebProviderCore = props => {\n const {\n activeChain,\n createWalletStorage = createAsyncLocalStorage\n } = props;\n const supportedChains = props.supportedChains || defaultChains;\n const supportedChainsNonNull = useMemo(() => {\n const isActiveChainObject = typeof activeChain === \"object\" && activeChain !== null;\n if (!isActiveChainObject) {\n return supportedChains;\n }\n const isActiveChainInSupportedChains = supportedChains.find(c => c.chainId === activeChain.chainId);\n\n // if activeChain is not in supportedChains - add it\n if (!isActiveChainInSupportedChains) {\n return [...supportedChains, activeChain];\n }\n\n // if active chain is in supportedChains - replace it with object in activeChain\n return supportedChains.map(c => c.chainId === activeChain.chainId ? activeChain : c);\n }, [supportedChains, activeChain]);\n const [supportedChainsWithKey, activeChainIdOrObjWithKey] = useUpdateChainsWithClientId(supportedChainsNonNull, props.activeChain || supportedChainsNonNull[0], props.clientId);\n const activeChainWithKey = useMemo(() => {\n if (typeof activeChainIdOrObjWithKey === \"number\") {\n const resolveChain = supportedChainsWithKey.find(chain => chain.chainId === activeChainIdOrObjWithKey);\n if (!resolveChain) {\n throw new Error(`Invalid chainId: ${activeChainIdOrObjWithKey}. It is not one of supportedChains`);\n }\n return resolveChain;\n }\n if (typeof activeChainIdOrObjWithKey === \"string\") {\n const resolvedChain = supportedChainsWithKey.find(chain => chain.slug === activeChainIdOrObjWithKey);\n if (!resolvedChain) {\n throw new Error(`Invalid chain: \"${activeChainIdOrObjWithKey}\". It is not one of supportedChains`);\n }\n return resolvedChain;\n }\n return activeChainIdOrObjWithKey;\n }, [activeChainIdOrObjWithKey, supportedChainsWithKey]);\n const dAppMeta = props.dAppMeta;\n return /*#__PURE__*/jsx(ThirdwebThemeContext.Provider, {\n value: props.theme,\n children: /*#__PURE__*/jsx(ThirdwebWalletProvider, {\n chains: supportedChainsWithKey,\n supportedWallets: props.supportedWallets,\n shouldAutoConnect: props.autoConnect,\n createWalletStorage: createWalletStorage,\n dAppMeta: dAppMeta,\n activeChain: activeChainWithKey,\n autoSwitch: props.autoSwitch,\n autoConnectTimeout: props.autoConnectTimeout,\n clientId: props.clientId,\n activeChainSetExplicitly: !!props.activeChain,\n signerWallet: props.signerWallet,\n children: /*#__PURE__*/jsx(ThirdwebSDKProviderWrapper, {\n queryClient: props.queryClient,\n sdkOptions: props.sdkOptions,\n supportedChains: supportedChainsWithKey,\n activeChain: activeChainWithKey,\n storageInterface: props.storageInterface,\n authConfig: props.authConfig,\n clientId: props.clientId,\n secretKey: props.secretKey,\n children: /*#__PURE__*/jsx(ThirdwebAuthProvider, {\n value: props.authConfig,\n children: props.children\n })\n })\n })\n });\n};\nconst ThirdwebSDKProviderWrapper = _ref => {\n let {\n children,\n ...props\n } = _ref;\n const signer = useWalletContext()?.signer;\n return /*#__PURE__*/jsx(ThirdwebSDKProvider, {\n signer: signer,\n ...props,\n children: children\n });\n};\n\n/**\n * Hook to get the `supportedChains` which returns the array passed to the `supportedChains` prop of the `ThirdwebProvider` or the default supported chains if not specified.\n *\n * If `activeChain` is set in the `ThirdwebProvider` then it is also added to the `supportedChains` array\n *\n */\nfunction useSupportedChains() {\n const context = useContext(ThirdwebConfigContext);\n invariant(context, \"useSupportedChains() hook must be used within a \");\n return context.chains;\n}\n\n/**\n * Hook for getting a wallet's current balance of native or (optional) ERC20 token balance\n *\n * @example\n *\n * ### get the balance of the native token\n *\n * ```jsx\n * import { useBalance } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { data, isLoading } = useBalance();\n * }\n * ```\n *\n * ### get the balance of any other token\n *\n * ```jsx\n * import { useBalance } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { data, isLoading } = useBalance(tokenAddress);\n * }\n * ```\n *\n * @param tokenAddress - The address of the token contract, if not provided, it defaults to the native token\n *\n * @returns\n * The hook's `data` property contains the token's balance in the `value` property as a `BigNumber` object.\n *\n * @token\n */\nfunction useBalance(tokenAddress) {\n const walletAddress = useAddress();\n const {\n wallet,\n address,\n chainId\n } = useThirdwebConnectedWalletContext();\n const cacheKey = useMemo(() => {\n return cacheKeys.wallet.balance(chainId || -1, address, tokenAddress);\n }, [chainId, tokenAddress, address]);\n return useQuery(cacheKey, () => {\n return wallet?.balance(tokenAddress);\n }, {\n // if user is not logged in no reason to try to fetch\n enabled: !!wallet && !!walletAddress && !!chainId,\n retry: true,\n keepPreviousData: false\n });\n}\n\n/**\n * This hook is similar to the `useBalance` hook, but it for fetching the native token balance of any given wallet address.\n *\n * This hook only fetches the native token balance of the given wallet address. If you want to get the ERC20 balance from a given wallet, use `useTokenBalance`\n *\n * @example\n * ```ts\n * const { data, isLoading } = useBalanceForAddress(walletAddress)\n * ```\n *\n * @param walletAddress - The address of the wallet that you want to get the native balance\n *\n * @returns\n * The hook's `data` property contains the native token's balance in the `value` property as a `BigNumber` object.\n *\n * @token\n */\nfunction useBalanceForAddress(walletAddress) {\n invariant(walletAddress, \"wallet address is not provided\");\n const {\n activeChain\n } = useWalletContext();\n const chainId = activeChain.chainId;\n const sdk = useSDK();\n const cacheKey = useMemo(() => {\n return cacheKeys.wallet.balance(chainId, walletAddress);\n }, [chainId, walletAddress]);\n return useQuery(cacheKey, async () => {\n invariant(sdk, \"SDK is not initialized\");\n return await sdk.getBalance(walletAddress);\n });\n}\n\n/**\n * @internal\n */\nfunction useConnectedWallet() {\n const context = useContext(ThirdwebConnectedWalletContext);\n invariant(context, \"useConnectedWallet() hook must be used within a \");\n return context.signer;\n}\n\n/**\n * Get the address of the connected wallet.\n *\n * Returns `undefined` if no wallet is connected.\n *\n * @example\n * ```tsx\n * import { useAddress } from \"@thirdweb-dev/react\"\n *\n * function Example() {\n * const address = useAddress()\n *\n * return
{address}
\n * }\n * ```\n *\n * @walletConnection\n */\nfunction useAddress() {\n const context = useContext(ThirdwebConnectedWalletContext);\n invariant(context, \"useAddress() hook must be used within a \");\n return context.address;\n}\n\n/**\n * Hook for accessing the chain ID of the network the current wallet is connected to\n *\n * ```javascript\n * import { useChainId } from \"@thirdweb-dev/react\"\n * ```\n *\n * @example\n * ```javascript\n * import { useChainId } from \"@thirdweb-dev/react\"\n *\n * const App = () => {\n * const chainId = useChainId()\n *\n * return
{chainId}
\n * }\n * ```\n *\n * @returns\n * A `number` representing the current chain id, or `undefined` if the user is not connected to a wallet.\n *\n * For Example, if the user is connected to the Ethereum Mainnet, the return value will be `1`.\n *\n * @networkConnection\n */\nfunction useChainId() {\n const context = useContext(ThirdwebConnectedWalletContext);\n invariant(context, \"useChainId() hook must be used within a \");\n return context.chainId;\n}\n\n/**\n * Hook for getting the `Chain` object of the network that the user is connected - but only if\n * it's a supported network (added in the `ThirdwebProvider`'s `supportedChains` or one of default chains\n *\n * Returns `undefined` if the network is not supported or the user is not connected to a wallet. You can use the `useConnectionStatus` hook to check if the user is connected to a wallet or not to differentiate between the two cases.\n *\n * If you only want to get the chain id of the network the user is connected to regardless of whether it's supported or not, use `useChainId` instead.\n *\n * ```jsx\n * import { useChain } from \"@thirdweb-dev/react\";\n *\n * const chain = useChain();\n * ```\n *\n * @example\n *\n * ```jsx\n * import { useChain, useConnectionStatus } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const chain = useChain();\n * const status = useConnectionStatus();\n *\n * if (status === \"unknown\") return
Loading...
;\n * if (status === \"disconnected\") return
disconnected
;\n * if (status === \"connecting\") return
connecting...
;\n *\n * if (chain) {\n * return

Connected to {chain.name}

;\n * }\n *\n * return

Connected to an unsupported network

;\n * }\n * ```\n *\n * @returns\n * An object of type `Chain` from [`@thirdweb-dev/chains`](https://www.npmjs.com/package/\\@thirdweb-dev/chains) package containing various information about the network, or `undefined` if the network is not supported or user is not connected to a wallet.\n *\n * @networkConnection\n */\nfunction useChain() {\n const chainId = useChainId();\n const chains = useSupportedChains();\n const chain = useMemo(() => {\n return chains.find(_chain => _chain.chainId === chainId);\n }, [chainId, chains]);\n const unknownChain = useMemo(() => {\n if (!chain) {\n return defaultChains.find(c => c.chainId === chainId);\n }\n }, [chainId, chain]);\n return chain || unknownChain;\n}\n\n/**\n * @internal\n * @deprecated\n *\n * This hook is renamed to `useChain`\n *\n * use the `useChain` hook instead\n */\nfunction useActiveChain() {\n return useChain();\n}\n\n// this hook is only for backwards compatibility\n\n/**\n *\n *\n * Hook for getting metadata about the network the current wallet is connected to and switching networks\n *\n * It's important to note that some wallet apps do not support programmatic network switching and switchNetwork will be undefined.\n * For those situations, you can typically switch networks in the wallet app this hook will still work.\n *\n * Hook for getting information about the current network and switching to a different network.\n *\n * Returns an array value containing two elements.\n *\n * 1. An object containing the following properties:\n *\n * - `data` object contains information about the wallet's current and supported networks.\n * - `loading` indicates if the switch network request is in progress.\n * - `error` holds the `Error` object if there was an error when attempting to switch network.\n *\n * 2. A function to switch to a different network.\n *\n * @example\n * ```javascript\n * import { useNetwork } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const [{ data, error, loading }, switchNetwork] = useNetwork();\n *\n * return (\n * {\n * if (!switchNetwork) {\n * console.log(\"can not switch network\");\n * return;\n * }\n *\n * const result = await switchNetwork(80001);\n * if (result.data) {\n * console.log(\"Switched to Mumbai testnet successfully\");\n * } else {\n * console.log(\"Error switching to Mumbai testnet\", result.error);\n * }\n * }}\n * >\n * Switch to Mumbai\n * \n * );\n * }\n * ```\n *\n * @returns\n *\n * ```ts\n * const [{ data, error, loading }, switchNetwork] = useNetwork();\n * ```\n * #### data\n *\n * If wallet is connected to a network that is one of `supportedChains` provided in `ThirdwebProvider` or one of the default supported chains, `data` object will contain the following:\n *\n * ```ts\n * {\n * chain: Chain; // The connected network\n * chains: Chain[]; // All supported networks\n * }\n * ```\n *\n * If wallet is connected to a network that is NOT one of `supportedChains` provided in `ThirdwebProvider` or default supported, `data` object will contain the following:\n *\n * ```ts\n * {\n * // chainId of current connected network + unsupported flag\n * chain: { chainId: number, unsupported: true };\n * // All supported networks\n * chains: Chain[];\n * }\n * ```\n *\n * If wallet is not connected, `data` object will contain the following:\n *\n * ```ts\n * {\n * chain: undefined;\n * chains: []; // Empty array\n * }\n * ```\n *\n * #### error\n *\n * `error` contains an `Error` object if there was an error when attempting to switch network using the `switchNetwork` function\n *\n * `undefined` if there is no switch network error\n *\n * ```ts\n * Error | undefined;\n * ```\n *\n * #### loading\n *\n * `loading` is `true` when switching network using the `switchNetwork` function, and `false` otherwise.\n *\n *\n * #### switchNetwork\n *\n * `switchNetwork` is a function to switch to a different network. It takes a `chainId` as an argument and returns a promise that resolves to an object containing `data` and `error` properties.\n *\n * If switching network was successful, `data` will contain the new network information. and `error` will be `undefined`. If switching network failed, `data` will be `undefined` and `error` will contain an `Error` object.\n *\n * `switchNetwork` is `undefined` if not connected to a wallet or if the connected wallet does not allow programmatic switching.\n *\n * ```ts\n * type SwitchNetwork = undefined | (chainId: number) => Promise<\n * | {\n * data: Chain | undefined;\n * error: undefined;\n * }\n * | {\n * data: undefined;\n * error: Error;\n * }>\n * ```\n *\n * @deprecated use `useChain`, `useSwitchChain`, `useChainId` instead\n * @internal\n */\nfunction useNetwork() {\n const chain = useChain();\n const chainId = useChainId();\n const switchChain = useSwitchChain();\n const supportedChains = useSupportedChains();\n const wallet = useWallet();\n const isMetamaskInstalled = assertWindowEthereum(globalThis.window) ? globalThis.window.ethereum.isMetaMask : false;\n const isCoinbaseInstalled = assertWindowEthereum(globalThis.window) ? globalThis.window.ethereum.isCoinbaseWallet : false;\n\n // switch not supported if connected to a mobile wallet\n const switchChainNotSupported = !wallet || wallet.walletId === walletIds.walletConnectV1 || wallet.walletId === walletIds.walletConnect || wallet.walletId === walletIds.metamask && !isMetamaskInstalled || wallet.walletId === walletIds.coinbase && !isCoinbaseInstalled;\n\n // error when switching network\n const [error, setError] = useState(undefined);\n\n // loading: true when switching network\n const [loading, setLoading] = useState(false);\n const switchNetwork = useCallback(async _chainId => {\n // reset error and loading\n setLoading(true);\n setError(undefined);\n try {\n await switchChain(_chainId);\n } catch (e) {\n setError(e);\n setLoading(false);\n return {\n data: undefined,\n error: e\n };\n }\n setLoading(false);\n return {\n data: supportedChains.find(c => c.chainId === _chainId) || defaultChains.find(c => c.chainId === _chainId),\n error: undefined\n };\n }, [switchChain, supportedChains]);\n return [{\n data: {\n chain: chainId === undefined ? undefined : chain || {\n chainId,\n unsupported: true\n },\n chains: wallet ? supportedChains : []\n },\n error: error,\n loading\n }, switchChainNotSupported ? undefined : switchNetwork];\n}\n\n/**\n * Hook for getting the address of the personal wallet connected to the current wallet connection.\n *\n * This is only relevant if the current connected wallet uses a personal wallet - For Example - Smart Wallet and Safe.\n * @walletConnection\n */\nconst usePersonalWalletAddress = () => {\n const [personalWalletAddress, setPersonalWalletAddress] = useState();\n const activeWallet = useWallet();\n useEffect(() => {\n (async () => {\n const possiblePersonalWallet = activeWallet?.getPersonalWallet();\n if (!possiblePersonalWallet) {\n setPersonalWalletAddress(undefined);\n return;\n }\n const address = await (await possiblePersonalWallet?.getSigner())?.getAddress();\n setPersonalWalletAddress(address);\n })();\n }, [activeWallet]);\n return personalWalletAddress;\n};\n\n// we prefix all our query keys with this to avoid possible collisions with user-defined queries that share the same query client\n// marker to make sure the query will not get stored in local storage by a query persister\nconst NEVER_PERSIST_QUERY_POSTFIX = {\n persist: false\n};\nfunction neverPersist(key) {\n return [...key, NEVER_PERSIST_QUERY_POSTFIX];\n}\n\n/**\n * @internal\n */\nfunction shouldNeverPersistQuery(key) {\n return key[key.length - 1] === NEVER_PERSIST_QUERY_POSTFIX;\n}\n\n/**\n * Makes a parameter required to be passed, but still allows it to be null or undefined.\n * @internal\n */\n\nfunction requiredParamInvariant(condition, message) {\n invariant(condition !== null || condition !== undefined, message);\n}\n\n/**\n * @internal\n */\n\n/**\n * A wallet address.\n * @walletConnection\n */\n\n/**\n * A contract address.\n */\n\n/**\n * The parameters to pass to the mint and transfer functions.\n * @token\n */\n\n/**\n * The parameters to pass to the burn function.\n * @token\n */\n\n// NFTS //\n\n/**\n * The possible NFT contract types.\n * @nft\n */\n\n/**\n * The possible Token contract types.\n * @token\n */\n\n/**\n * Possible NFT contract types.\n * @internal\n */\n\n/**\n * The params to pass to `useTransferNFT`.\n * @nft\n */\n\n/**\n * The params to pass to `useTransferBatchNFT`.\n * @nft\n */\n\n/**\n * The params to pass to `useMintNFTSupply`.\n * @nft\n */\n\n/**\n * The params for the `useMintNFT` hook mutation.\n * @nft\n */\n\n/**\n * The return type of the `useMintNFT` hook.\n * @nft\n */\n\n/**\n * The params for the `useBurnNFT` hook mutation.\n *\n * @nft\n */\n\n// DROPS //\n\n/**\n * The possible DROP contract types.\n * @nftDrop\n */\n\n/**\n * The possible revealable contract types.\n * @delayedReveal\n */\n\n/**\n * The params for the {@link useDelayedRevealLazyMint} hook mutation.\n * @delayedReveal\n */\n\n/**\n * The params for the {@link useRevealLazyMint} hook mutation.\n * @delayedReveal\n */\n\n/**\n * The params for the `useClaimNFT` hook mutation.\n * @nftDrop\n */\n\n/**\n * The return type of the `useClaimNFT` hook.\n * @nftDrop\n */\n\n// MARKETPLACE //\n\n/**\n * @marketplace\n */\n\n/**\n * @marketplace\n */\n\n/**\n * @marketplace\n */\n\n/**\n * @marketplace\n */\n\n/**\n * @marketplace\n */\n\n// TOKEN DROP //\n\n/**\n * @token\n */\n\n// Helpers\n\n/**\n * @internal\n */\nfunction getErcs(contract) {\n return {\n erc1155: getErc1155(contract),\n erc721: getErc721(contract),\n erc20: getErc20(contract)\n };\n}\n\n/**\n * @internal\n */\nfunction getErc1155(contract) {\n if (!contract) {\n return undefined;\n }\n try {\n if (\"erc1155\" in contract) {\n return contract.erc1155;\n }\n } catch (error) {\n return undefined;\n }\n return undefined;\n}\n\n/**\n * @internal\n */\nfunction getErc721(contract) {\n if (!contract) {\n return undefined;\n }\n try {\n if (\"erc721\" in contract) {\n return contract.erc721;\n }\n } catch (error) {\n return undefined;\n }\n return undefined;\n}\n\n/**\n * @internal\n */\nfunction getErc20(contract) {\n if (!contract) {\n return undefined;\n }\n try {\n if (\"erc20\" in contract) {\n return contract.erc20;\n }\n } catch (error) {\n return undefined;\n }\n return undefined;\n}\n\n/** @internal */\nfunction useQueryWithNetwork(queryKey, queryFn, options) {\n const activeChainId = useSDKChainId();\n const mergedOptions = {\n ...options,\n enabled: !!(activeChainId && options?.enabled)\n };\n return useQuery(createCacheKeyWithNetwork(queryKey, activeChainId), queryFn, mergedOptions);\n}\n\n/**\n * The options to be passed as the second parameter to the `useClaimIneligibilityReasons` hook.\n * @claimConditions\n */\n\n/**\n * The params for the {@link useSetClaimConditions} hook mutation.\n * @claimConditions\n */\n\n/** **********************/\n/** READ HOOKS **/\n/** **********************/\n\n/**\n * Hook for getting the active claim condition for a given drop contract.\n *\n * Available for contracts that implement the \"ClaimConditions\" interface;\n * such as [NFT Drop](https://thirdweb.com/thirdweb.eth/DropERC721), [Edition Drop](https://thirdweb.com/thirdweb.eth/DropERC1155), and [Token Drop](https://thirdweb.com/thirdweb.eth/DropERC20).\n *\n * @example\n * ```javascript\n * import { useActiveClaimCondition, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const { data, isLoading, error } = useActiveClaimCondition(contract);\n * }\n * ```\n *\n * @param contract -\n * Instance of contract that implement the \"ClaimConditions\" interface;\n * such as [NFT Drop](https://thirdweb.com/thirdweb.eth/DropERC721), [Edition Drop](https://thirdweb.com/thirdweb.eth/DropERC1155), and [Token Drop](https://thirdweb.com/thirdweb.eth/DropERC20).\n *\n * @param tokenId -\n * When using the hook with ERC1155 contracts such as the [Edition Drop](https://thirdweb.com/thirdweb.eth/DropERC1155), pass the `tokenId` as the second parameter; as each token can have unique claim conditions.\n *\n * Pass `undefined`, or leave this field out if you are using ERC721 or ERC20 drop contracts.\n *\n * ```tsx\n * import { useActiveClaimCondition, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n *\n * // \"data\" now includes a \"snapshot\" property that contains the allowlist.\n * const { data, isLoading, error } = useActiveClaimCondition(\n * contract,\n * 0, // Token ID required for ERC1155 contracts here.\n * );\n * }\n * ```\n *\n * @param options - Additional options to pass to the claim condition fetch\n *\n * #### withAllowlist\n *\n * By default, the hook will not include the allowlist or \"snapshot\" in the returned data. To include the allowlist in the returned data, pass `withAllowlist: true` in options object.\n *\n * This will add a snapshot property to the returned data, which contains the allowlist in an array.\n *\n * ```tsx\n * import { useActiveClaimCondition, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n *\n * // \"data\" now includes a \"snapshot\" property that contains the allowlist.\n * const { data, isLoading, error } = useActiveClaimCondition(\n * contract,\n * undefined, // Token ID required for ERC1155 contracts here.\n * {\n * withAllowlist: true,\n * },\n * );\n * }\n * ```\n *\n * @returns A query result object with the currently active claim condition\n *\n * @twfeature ERC20ClaimPhasesV2 | ERC20ClaimPhasesV1 | ERC20ClaimConditionsV2 | ERC20ClaimConditionsV1 | ERC721ClaimPhasesV2 | ERC721ClaimPhasesV1 | ERC721ClaimConditionsV2 | ERC721ClaimConditionsV1 | ERC1155ClaimPhasesV2 | ERC1155ClaimPhasesV1 | ERC1155ClaimConditionsV2 | ERC1155ClaimConditionsV1\n * @claimConditions\n */\nfunction useActiveClaimCondition(contract, tokenId, options) {\n const contractAddress = contract?.getAddress();\n const {\n erc1155,\n erc721,\n erc20\n } = getErcs(contract);\n return useQueryWithNetwork(cacheKeys.extensions.claimConditions.getActive(contractAddress, tokenId, options), () => {\n if (erc1155) {\n requiredParamInvariant(tokenId, \"tokenId is required for ERC1155 claim conditions\");\n return erc1155.claimConditions.getActive(tokenId, options);\n }\n if (erc721) {\n return erc721.claimConditions.getActive(options);\n }\n if (erc20) {\n return erc20.claimConditions.getActive(options);\n }\n throw new Error(\"Contract must be ERC721, ERC1155 or ERC20\");\n }, {\n // Checks that happen here:\n // 1. if the contract is based on ERC1155 contract => tokenId cannot be `undefined`\n // 2. if the contract is NOT based on ERC1155 => we have to have either an ERC721 or ERC20 contract\n enabled: erc1155 ? tokenId !== undefined : !!erc721 || !!erc20\n });\n}\n\n/**\n * Hook to get the claimer proofs for an address for [ERC20](https://portal.thirdweb.com/contracts/build/base-contracts/erc-20/drop), [ERC721](https://portal.thirdweb.com/contracts/build/base-contracts/erc-721/drop), and [ERC1155](https://portal.thirdweb.com/contracts/build/base-contracts/erc-1155/drop) drop contracts.\n *\n * A claimer proof is a set of data about a claimer's claim condition, including the claimer's address, the claimer's proof, and the claimer's max claimable amount, price, and currency address.\n *\n * This is available for available for contracts that implement the \"ClaimConditions\" interface; such as [NFT Drop](https://thirdweb.com/thirdweb.eth/DropERC721), [Edition Drop](https://thirdweb.com/thirdweb.eth/DropERC1155), and [Token Drop](https://thirdweb.com/thirdweb.eth/DropERC20).\n *\n * @example\n * ```javascript\n * import { useClaimerProofs, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n *\n * const {\n * data: proof,\n * isLoading,\n * error,\n * } = useClaimerProofs(contract, \"{{claimer_address}}\");\n * }\n * ```\n *\n * @param contract -\n * Instance of a contract that extends the ERC721, ERC1155 or ERC20 spec and implements the \"ClaimConditions\" extension.\n *\n * @param claimerAddress -\n * This is the address of the user you want to get the proof for.\n *\n * Likely, you will want to check proofs of the currently connected wallet address. You can use the `useAddress` hook to get this value.\n *\n * @param tokenId -\n * When using the hook with ERC1155 contracts, pass the `tokenId`; as each token can have unique claim conditions.\n *\n * Pass `undefined`, or leave this field out if you are using ERC721 or ERC20 drop contracts.\n *\n * @param claimConditionId -\n * This is the ID of the claim condition you want to get the proof for.\n *\n * @returns Query result object with the snapshot for the provided address\n *\n * @claimConditions\n * @twfeature ERC20ClaimPhasesV2 | ERC20ClaimPhasesV1 | ERC20ClaimConditionsV2 | ERC20ClaimConditionsV1 | ERC721ClaimPhasesV2 | ERC721ClaimPhasesV1 | ERC721ClaimConditionsV2 | ERC721ClaimConditionsV1 | ERC1155ClaimPhasesV2 | ERC1155ClaimPhasesV1 | ERC1155ClaimConditionsV2 | ERC1155ClaimConditionsV1\n */\nfunction useClaimerProofs(contract, claimerAddress, tokenId, claimConditionId) {\n const contractAddress = contract?.getAddress();\n const {\n erc1155,\n erc721,\n erc20\n } = getErcs(contract);\n return useQueryWithNetwork(cacheKeys.extensions.claimConditions.getClaimerProofs(contractAddress, tokenId), () => {\n if (erc1155) {\n requiredParamInvariant(tokenId, \"tokenId is required for ERC1155 claim conditions\");\n return erc1155.claimConditions.getClaimerProofs(tokenId, claimerAddress, claimConditionId);\n }\n if (erc721) {\n return erc721.claimConditions.getClaimerProofs(claimerAddress, claimConditionId);\n }\n if (erc20) {\n return erc20.claimConditions.getClaimerProofs(claimerAddress, claimConditionId);\n }\n throw new Error(\"Contract must be ERC721, ERC1155 or ERC20\");\n }, {\n // Checks that happen here:\n // 1. if the contract is based on ERC1155 contract => tokenId cannot be `undefined`\n // 2. if the contract is NOT based on ERC1155 => we have to have either an ERC721 or ERC20 contract\n enabled: erc1155 ? tokenId !== undefined : !!erc721 || !!erc20\n });\n}\n\n/**\n * Hook for fetching all claim conditions for a given drop contract.\n *\n * This is available for available for contracts that implement the \"ClaimConditions\" interface; such as [NFT Drop](https://thirdweb.com/thirdweb.eth/DropERC721), [Edition Drop](https://thirdweb.com/thirdweb.eth/DropERC1155), and [Token Drop](https://thirdweb.com/thirdweb.eth/DropERC20).\n *\n * @example\n * ```javascript\n * import { useClaimConditions, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const { data, isLoading, error } = useClaimConditions(contract);\n * }\n * ```\n *\n * @param contract - Instance of a contract that extends the ERC721, ERC1155 or ERC20 spec and implements the \"ClaimConditions\" extension.\n *\n * @param tokenId -\n * When using the hook with ERC1155 contracts, pass the `tokenId` parameter; as each token can have unique claim conditions.\n *\n * Pass `undefined`, or leave this field out if you are using ERC721 or ERC20 drop contracts.\n *\n * ```tsx\n * import { useClaimConditions, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n *\n * const { data, isLoading, error } = useClaimConditions(\n * contract,\n * 0, // Token ID required for ERC1155 contracts here.\n * );\n * }\n * ```\n *\n * @param options - additional options to pass to the claim condition fetch\n *\n * #### withAllowlist\n *\n * By default, the hook will not include the allowlist in the returned data. To include the allowlist in the returned data, set the `withAllowlist` option to true.\n *\n * This will add a `snapshot` property to the returned data, which contains the allowlist in an array.\n *\n * ```tsx\n * import { useClaimConditions, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n *\n * // \"data\" now includes a \"snapshot\" property that contains the allowlist.\n * const { data, isLoading, error } = useClaimConditions(\n * contract,\n * undefined, // Token ID required for ERC1155 contracts here.\n * {\n * withAllowlist: true,\n * },\n * );\n * }\n * ```\n *\n * @returns Query Result object with the list of claim conditions\n *\n * @twfeature ERC20ClaimPhasesV2 | ERC20ClaimPhasesV1 | ERC20ClaimConditionsV2 | ERC20ClaimConditionsV1 | ERC721ClaimPhasesV2 | ERC721ClaimPhasesV1 | ERC721ClaimConditionsV2 | ERC721ClaimConditionsV1 | ERC1155ClaimPhasesV2 | ERC1155ClaimPhasesV1 | ERC1155ClaimConditionsV2 | ERC1155ClaimConditionsV1\n * @claimConditions\n */\nfunction useClaimConditions(contract, tokenId, options) {\n const contractAddress = contract?.getAddress();\n const {\n erc1155,\n erc721,\n erc20\n } = getErcs(contract);\n return useQueryWithNetwork(cacheKeys.extensions.claimConditions.getAll(contractAddress, tokenId, options), () => {\n if (erc1155) {\n requiredParamInvariant(tokenId, \"tokenId is required for ERC1155 claim conditions\");\n return erc1155.claimConditions.getAll(tokenId, options);\n }\n if (erc721) {\n return erc721.claimConditions.getAll(options);\n }\n if (erc20) {\n return erc20.claimConditions.getAll(options);\n }\n throw new Error(\"Contract must be ERC721, ERC1155 or ERC20\");\n }, {\n // Checks that happen here:\n // 1. if the contract is based on ERC1155 contract => tokenId cannot be `undefined`\n // 2. if the contract is NOT based on ERC1155 => we have to have either an ERC721 or ERC20 contract\n enabled: erc1155 ? tokenId !== undefined : !!erc721 || !!erc20\n });\n}\n\n/**\n * Hook for fetching the reasons a wallet is not eligible to claim tokens from a drop, if any.\n *\n * This is available for available for contracts that implement the \"ClaimConditions\" interface; such as [NFT Drop](https://thirdweb.com/thirdweb.eth/DropERC721), [Edition Drop](https://thirdweb.com/thirdweb.eth/DropERC1155), and [Token Drop](https://thirdweb.com/thirdweb.eth/DropERC20).\n *\n * @example\n * ```javascript\n * import { useClaimIneligibilityReasons, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const { data, isLoading, error } = useClaimIneligibilityReasons(contract, {\n * walletAddress: \"0x123...\", // Use useAddress hook to get the user's wallet address\n * quantity: 1, // Quantity to check eligibility for\n * });\n * }\n * ```\n *\n * @param contract - Instance of a contract that extends the ERC20, ERC721 or ERC1155 spec and implements the \"ClaimConditions\" extension.\n *\n * @param params -\n * The conditions to check eligibility for. The `walletAddress` and `quantity` properties are required.\n *\n * Use the `useAddress` hook to get the connected wallet address.\n *\n * @param tokenId -\n * When using ERC1155 contracts, provide a third argument to specify the token ID.\n *\n * ```tsx\n * import { useClaimIneligibilityReasons, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const { data, isLoading, error } = useClaimIneligibilityReasons(\n * contract,\n * {\n * walletAddress: \"0x123..\",\n * quantity: 1,\n * },\n * tokenId,\n * );\n * }\n * ```\n *\n * @returns\n * The hook's `data` property, once loaded, contains an array of `ClaimEligibility` strings, which may be empty.\n *\n * For example, if the user is not in the allowlist, this hook will return `[\"This address is not on the allowlist.\"]`.\n *\n * If the user is eligible to claim tokens, the hook will return an empty array.\n *\n * @claimConditions\n * @twfeature ERC20ClaimPhasesV2 | ERC20ClaimPhasesV1 | ERC20ClaimConditionsV2 | ERC20ClaimConditionsV1 | ERC721ClaimPhasesV2 | ERC721ClaimPhasesV1 | ERC721ClaimConditionsV2 | ERC721ClaimConditionsV1 | ERC1155ClaimPhasesV2 | ERC1155ClaimPhasesV1 | ERC1155ClaimConditionsV2 | ERC1155ClaimConditionsV1\n */\nfunction useClaimIneligibilityReasons(contract, params, tokenId) {\n const contractAddress = contract?.getAddress();\n const {\n erc1155,\n erc721,\n erc20\n } = getErcs(contract);\n return useQueryWithNetwork(cacheKeys.extensions.claimConditions.getClaimIneligibilityReasons(contractAddress, params, tokenId), () => {\n if (erc1155) {\n requiredParamInvariant(tokenId, \"tokenId is required for ERC1155 claim ineligibility reasons\");\n return erc1155.claimConditions.getClaimIneligibilityReasons(tokenId, params.quantity, params.walletAddress);\n }\n if (erc721) {\n return erc721.claimConditions.getClaimIneligibilityReasons(params.quantity, params.walletAddress);\n }\n if (erc20) {\n return erc20.claimConditions.getClaimIneligibilityReasons(params.quantity, params.walletAddress);\n }\n throw new Error(\"Contract must be ERC721, ERC1155 or ERC20\");\n }, {\n // Checks that happen here:\n // 1. if the contract is based on ERC1155 contract => tokenId cannot be `undefined`\n // 2. if the contract is NOT based on ERC1155 => we have to have either an ERC721 or ERC20 contract\n // 3. has a params object been passed?\n // 4. does params have an address in it?\n enabled: (erc1155 ? tokenId !== undefined : !!erc721 || !!erc20) && !!params && !!params.walletAddress\n });\n}\n\n/**\n * Hook for getting the active claim condition on a drop contract for a specific wallet address.\n *\n * Each wallet address can have unique claim conditions at any given time. This hook allows you to get the active claim condition for a specific wallet address at this time.\n *\n * This is available for available for contracts that implement the \"ClaimConditions\" interface; such as [NFT Drop](https://thirdweb.com/thirdweb.eth/DropERC721), [Edition Drop](https://thirdweb.com/thirdweb.eth/DropERC1155), and [Token Drop](https://thirdweb.com/thirdweb.eth/DropERC20).\n *\n * ---\n *\n * - Returns the claim condition specific to the wallet address if found in the claimer snapshot.\n * - Returns the default claim condition on the contract if the address is not found in the claimer snapshot.\n * - Populates the error field if there is no active claim condition on the contract.\n *\n * @example\n * ```javascript\n * import {\n * useActiveClaimConditionForWallet,\n * useContract,\n * useAddress,\n * } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const address = useAddress();\n * const { contract } = useContract(contractAddress);\n * const { data, isLoading, error } = useActiveClaimConditionForWallet(\n * contract,\n * address,\n * );\n * }\n * ```\n *\n * @param contract - Instance of a contract that extends the ERC20, ERC721 or ERC1155 spec and implements the \"ClaimConditions\" extension.\n *\n * @param walletAddress -\n * The wallet address to check the active claim condition for. You can use the `useAddress` hook to get the currently connected wallet's address.\n *\n * @param tokenId -\n * When using the hook with ERC1155 contracts, pass the `tokenId` as the third parameter; as each token can have unique claim conditions.\n *\n * Pass `undefined`, or leave this field out if you are using ERC721 or ERC20 drop contracts.\n *\n * @returns The active claim condition for the wallet address or `null` if there is no active claim condition\n *\n * @twfeature ERC20ClaimPhasesV2 | ERC20ClaimPhasesV1 | ERC20ClaimConditionsV2 | ERC20ClaimConditionsV1 | ERC721ClaimPhasesV2 | ERC721ClaimPhasesV1 | ERC721ClaimConditionsV2 | ERC721ClaimConditionsV1 | ERC1155ClaimPhasesV2 | ERC1155ClaimPhasesV1 | ERC1155ClaimConditionsV2 | ERC1155ClaimConditionsV1\n * @claimConditions\n */\nfunction useActiveClaimConditionForWallet(contract, walletAddress, tokenId) {\n const sdk = useSDK();\n const contractAddress = contract?.getAddress();\n const {\n erc1155,\n erc721,\n erc20\n } = getErcs(contract);\n return useQueryWithNetwork(cacheKeys.extensions.claimConditions.useActiveClaimConditionForWallet(contractAddress, walletAddress || \"_NO_WALLET_\", tokenId), async () => {\n // if we do not have a walletAddress just do the same logic as basic useClaimCondition\n if (!walletAddress) {\n if (erc1155) {\n requiredParamInvariant(tokenId, \"tokenId is required for ERC1155 claim conditions\");\n return erc1155.claimConditions.getActive(tokenId);\n }\n if (erc721) {\n return erc721.claimConditions.getActive();\n }\n if (erc20) {\n return erc20.claimConditions.getActive();\n }\n throw new Error(\"Contract must be ERC721, ERC1155 or ERC20\");\n }\n invariant(sdk, \"sdk is required\");\n let activeGeneralClaimCondition = null;\n let claimerProofForWallet = null;\n if (erc1155) {\n requiredParamInvariant(tokenId, \"tokenId is required for ERC1155\");\n const [cc, cp] = await Promise.all([erc1155.claimConditions.getActive(tokenId), erc1155.claimConditions.getClaimerProofs(tokenId, walletAddress)]);\n activeGeneralClaimCondition = cc;\n claimerProofForWallet = cp;\n }\n if (erc721) {\n const [cc, cp] = await Promise.all([erc721.claimConditions.getActive(), erc721.claimConditions.getClaimerProofs(walletAddress)]);\n activeGeneralClaimCondition = cc;\n claimerProofForWallet = cp;\n }\n if (erc20) {\n const [cc, cp] = await Promise.all([erc20.claimConditions.getActive(), erc20.claimConditions.getClaimerProofs(walletAddress)]);\n activeGeneralClaimCondition = cc;\n claimerProofForWallet = cp;\n }\n // if there is no active claim condition nothing matters, return null\n if (!activeGeneralClaimCondition) {\n return null;\n }\n\n // if there is no claimer proof then just fall back to the active general claim condition\n if (!claimerProofForWallet) {\n return activeGeneralClaimCondition;\n }\n const {\n maxClaimable,\n currencyAddress,\n price\n } = claimerProofForWallet;\n const currencyWithOverride = currencyAddress || activeGeneralClaimCondition.currencyAddress;\n const currencyMetadata = await fetchCurrencyMetadata(sdk.getProvider(), currencyWithOverride);\n const normalizedPrize = price ? price === \"unlimited\" ? constants.MaxUint256 : utils.parseUnits(price, currencyMetadata.decimals) : null;\n const priceWithOverride = normalizedPrize || activeGeneralClaimCondition.price;\n const maxClaimableWithOverride = maxClaimable || activeGeneralClaimCondition.maxClaimablePerWallet;\n const currencyValueWithOverride = await fetchCurrencyValue(sdk.getProvider(), currencyWithOverride, priceWithOverride);\n return {\n // inherit the entire claim condition\n ...activeGeneralClaimCondition,\n // overwrite all keys that could be changed based on overwrites\n maxClaimablePerWallet: maxClaimableWithOverride,\n price: priceWithOverride,\n currency: currencyWithOverride,\n currencyAddress: currencyWithOverride,\n currencyMetadata: currencyValueWithOverride\n };\n }, {\n // Checks that happen here:\n // 1. if the contract is based on ERC1155 contract => tokenId cannot be `undefined`\n // 2. if the contract is NOT based on ERC1155 => we have to have either an ERC721 or ERC20 contract\n enabled: erc1155 ? tokenId !== undefined : !!erc721 || !!erc20\n });\n}\n\n/** **********************/\n/** WRITE HOOKS **/\n/** **********************/\n\n/**\n * Hook for setting claim conditions on a drop contract.\n *\n * This is available for available for contracts that implement the \"ClaimConditions\" interface; such as [NFT Drop](https://thirdweb.com/thirdweb.eth/DropERC721), [Edition Drop](https://thirdweb.com/thirdweb.eth/DropERC1155), and [Token Drop](https://thirdweb.com/thirdweb.eth/DropERC20).\n *\n * When using an ERC1155 contract, you must also provide the token ID of the NFT you want to set claim conditions on as the second parameter to the hook.\n *\n * @example\n * ```tsx\n * import {\n * useSetClaimConditions,\n * useContract,\n * Web3Button,\n * } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const {\n * mutateAsync: setClaimConditions,\n * isLoading,\n * error,\n * } = useSetClaimConditions(contract);\n *\n * const claimConditions = {\n * phases: [\n * {\n * metadata: {\n * name: \"Phase 1\", // The name of the phase\n * },\n * currencyAddress: \"0x...\", // The address of the currency you want users to pay in\n * price: 1, // The price of the token in the currency specified above\n * maxClaimablePerWallet: 1, // The maximum number of tokens a wallet can claim\n * maxClaimableSupply: 100, // The total number of tokens that can be claimed in this phase\n * startTime: new Date(), // When the phase starts (i.e. when users can start claiming tokens)\n * waitInSeconds: 60 * 60 * 24 * 7, // The period of time users must wait between repeat claims\n * snapshot: [\n * {\n * address: \"0x...\", // The address of the wallet\n * currencyAddress: \"0x...\", // Override the currency address this wallet pays in\n * maxClaimable: 5, // Override the maximum number of tokens this wallet can claim\n * price: 0.5, // Override the price this wallet pays\n * },\n * ],\n * merkleRootHash: \"0x...\", // The merkle root hash of the snapshot\n * },\n * ],\n * }\n *\n * return (\n * setClaimConditions(claimConditions)}\n * >\n * Set Claim Conditions\n * \n * );\n * }\n * ```\n *\n * @param contract - Instance of a {@link DropContract}\n * @returns\n *\n * A Mutation object to set claim conditions\n *\n * ```ts\n * const { mutateAsync, isLoading, error } = useSetClaimConditions(contract);\n *\n * function setPhases(phases) {\n * mutateAsync({\n * phases,\n * });\n * }\n *\n * function reset() {\n * mutateAsync({\n * reset: true,\n * })\n * }\n * ```\n *\n * ### options\n *\n * The mutation function takes an object with two possible properties:\n *\n * 1. `reset` - A boolean that determines whether to reset the claim conditions. This means you reset any previous claim conditions that existed and allow users to claim again as if the drop had just started.\n * 2. `phases` - An array of claim phases that occur in chronological order. You can only have one phase occur at a time. All properties of a phase are optional, with the default being a free, open, unlimited claim, in the native currency, starting immediately.\n *\n * ---\n *\n * #### reset (optional)\n *\n * A boolean value that determines whether to reset the claim conditions or to keep the existing state.\n *\n * By resetting them, any previous claims that were made will be ignored by the claim condition restrictions.\n *\n * For example, if you had a limit of 1 token per wallet, and a user claimed a token, then you reset the claim conditions, that user will be able to claim another token.\n *\n * Default value is `false`.\n *\n * ---\n *\n * #### phases (required)\n *\n * Provide an array of phases that occur in chronological order. All properties of a phase are optional and are described below:\n *\n * ##### metadata\n *\n * An object representing the metadata of the phase. This is only for display purposes in the dashboard and isn’t used elsewhere.\n *\n * ```js\n * {\n * name: string;\n * }\n * ```\n *\n * ##### currencyAddress\n *\n * The address of the currency you want users to pay in.\n *\n * This can be any ERC20 token value. If you want users to pay in the native currency (e.g. Ether on Ethereum), you can import the `NATIVE_TOKEN_ADDRESS` constant from `@thirdweb-dev/sdk`. The default value is `NATIVE_TOKEN_ADDRESS`.\n *\n * ##### price\n *\n * The price per token in the currency specified above. The default value is `0`.\n *\n * ##### maxClaimablePerWallet\n *\n * The maximum number of tokens a wallet can claim. The default value is `\"unlimited\"`\n *\n * ##### maxClaimableSupply\n *\n * The total number of tokens that can be claimed in this phase.\n *\n * For example, if you lazy mint 1000 tokens and set the `maxClaimableSupply` to 100, then only 100 tokens will be claimable in this phase, leaving 900 tokens to be claimed in the next phases (if you have any).\n *\n * This is useful for \"early bird\" use cases, where you allow users to claim a limited number of tokens at a discounted price during the first X amount of time.\n *\n * ##### startTime\n *\n * When the phase starts (i.e. when users can start claiming tokens).\n *\n * The default value is `\"immediately\"`.\n *\n * ##### waitInSeconds\n *\n * The amount of time between claims a wallet must wait before they can claim again.\n *\n * The default value is `0`, meaning users can claim again immediately after claiming.\n *\n * ##### snapshot\n *\n * A list of wallets that you want to override the default claim conditions for.\n *\n * Wallet addresses within this list can be set to pay in a different currency, have a different price, and have a different maximum claimable amount.\n *\n * ```jsx\n * {\n * address: string;\n * currencyAddress?: string;\n * maxClaimable?: number;\n * price?: number;\n * }\n * ```\n *\n * [Learn more about improving claim conditions](https://blog.thirdweb.com/announcing-improved-claim-conditions/)\n *\n * ##### merkleRootHash\n *\n * If you want to provide your own merkle tree for your snapshot, provide the merkle root hash here. This is only recommended for advanced use cases.\n *\n * @claimConditions\n * @twfeature ERC20ClaimPhasesV2 | ERC20ClaimPhasesV1 | ERC20ClaimConditionsV2 | ERC20ClaimConditionsV1 | ERC721ClaimPhasesV2 | ERC721ClaimPhasesV1 | ERC721ClaimConditionsV2 | ERC721ClaimConditionsV1 | ERC1155ClaimPhasesV2 | ERC1155ClaimPhasesV1 | ERC1155ClaimConditionsV2 | ERC1155ClaimConditionsV1\n */\nfunction useSetClaimConditions(contract, tokenId) {\n const activeChainId = useSDKChainId();\n const contractAddress = contract?.getAddress();\n const queryClient = useQueryClient();\n const {\n erc1155,\n erc721,\n erc20\n } = getErcs(contract);\n return useMutation(async data => {\n requiredParamInvariant(contract, \"No Contract instance provided\");\n const {\n phases,\n reset = false\n } = data;\n invariant(phases, 'No \"phases\" provided');\n if (erc1155) {\n requiredParamInvariant(tokenId, \"tokenId is required for ERC1155 claim conditions\");\n return erc1155.claimConditions.set(tokenId, phases, reset);\n }\n if (erc721) {\n return erc721.claimConditions.set(phases, reset);\n }\n if (erc20) {\n return erc20.claimConditions.set(phases, reset);\n }\n throw new Error(\"Contract must be ERC721, ERC1155 or ERC20\");\n }, {\n onSettled: () => {\n invalidateContractAndBalances(queryClient, contractAddress, activeChainId);\n }\n });\n}\n\n/**\n * Hook for resetting the claim conditions on a drop contract.\n *\n * Available to use on contracts that implement\n * [`ERC721ClaimableWithConditions`](https://portal.thirdweb.com/contracts/build/extensions/erc-721/ERC721ClaimConditions),\n * [`ERC1155ClaimableWithConditions`](https://portal.thirdweb.com/contracts/build/extensions/erc-1155/ERC1155ClaimConditions) or\n * [`ERC20ClaimableWithConditions`](https://portal.thirdweb.com/contracts/build/extensions/erc-20/ERC20ClaimConditions).\n *\n * @example\n * ```jsx\n * import {\n * useContract,\n * useResetClaimConditions,\n * Web3Button,\n * } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * // Contract must be a drop contract that implements claim conditions\n * const { contract } = useContract(contractAddress);\n * const {\n * mutateAsync: resetClaimConditions,\n * isLoading,\n * error,\n * } = useResetClaimConditions(contract);\n *\n * return (\n * resetClaimConditions()}\n * >\n * Reset Claim Conditions\n * \n * );\n * }\n * ```\n *\n * @param contract - Instance of a `DropContract`\n * @param tokenId - For ERC1155 NFTs, provide the token ID of the NFT as the second argument to the hook.\n * @twfeature ERC20ClaimPhasesV2 | ERC20ClaimPhasesV1 | ERC20ClaimConditionsV2 | ERC20ClaimConditionsV1 | ERC721ClaimPhasesV2 | ERC721ClaimPhasesV1 | ERC721ClaimConditionsV2 | ERC721ClaimConditionsV1 | ERC1155ClaimPhasesV2 | ERC1155ClaimPhasesV1 | ERC1155ClaimConditionsV2 | ERC1155ClaimConditionsV1\n * @nftDrop\n */\nfunction useResetClaimConditions(contract, tokenId) {\n const activeChainId = useSDKChainId();\n const contractAddress = contract?.getAddress();\n const queryClient = useQueryClient();\n const {\n erc1155,\n erc721,\n erc20\n } = getErcs(contract);\n return useMutation(async () => {\n const cleanConditions = async conditions => {\n return conditions.map(c => ({\n ...c,\n price: c.currencyMetadata.displayValue\n }));\n };\n if (erc1155) {\n requiredParamInvariant(tokenId, \"tokenId is required for ERC1155 claim conditions\");\n const claimConditions = await erc1155.claimConditions.getAll(tokenId, {\n withAllowList: true\n });\n return erc1155.claimConditions.set(tokenId, await cleanConditions(claimConditions || []), true);\n }\n if (erc721) {\n const claimConditions = await erc721.claimConditions.getAll({\n withAllowList: true\n });\n return await erc721.claimConditions.set(await cleanConditions(claimConditions || []), true);\n }\n if (erc20) {\n const claimConditions = await erc20.claimConditions.getAll({\n withAllowList: true\n });\n return await erc20.claimConditions.set(await cleanConditions(claimConditions || []), true);\n }\n throw new Error(\"Contract must be ERC721, ERC1155 or ERC20\");\n }, {\n onSettled: () => {\n invalidateContractAndBalances(queryClient, contractAddress, activeChainId);\n }\n });\n}\n\n// primary sales\n\n/**\n * Hook for getting the primary sales recipient of a smart contract.\n *\n * Available to use on contracts that implement the [`PrimarySale`](https://portal.thirdweb.com/contracts/build/extensions/general/PrimarySale) interface.\n *\n * @example\n * ```jsx\n * import { useContract, usePrimarySaleRecipient } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const { data, isLoading, error } = usePrimarySaleRecipient(contract);\n * }\n * ```\n *\n * @param contract - Instance of a `SmartContract`\n *\n * @returns The hook's `data` property, once loaded, is a `string` with the wallet address of the primary sales recipient.\n *\n * @twfeature PrimarySale\n * @platformFees\n */\nfunction usePrimarySaleRecipient(contract) {\n const contractAddress = contract?.getAddress();\n return useQueryWithNetwork(cacheKeys.extensions.sales.getRecipient(contractAddress), () => {\n requiredParamInvariant(contract, \"No contract provided\");\n invariant(\"sales\" in contract && contract.sales, \"Contract does not support primarySale\");\n return contract.sales.getRecipient();\n }, {\n enabled: !!contract || !!contractAddress\n });\n}\n\n/**\n * Hook for updating the primary sale recipient on a smart contract.\n *\n * Available to use on smart contracts that implement the [`PrimarySale`](https://portal.thirdweb.com/contracts/build/extensions/general/PrimarySale) interface.\n *\n * The wallet that initiates this transaction must have the required permissions to change the primary sale recipient (defaults to `\"admin\"` level).\n *\n * @example\n * ```jsx\n * import {\n * useUpdatePrimarySaleRecipient,\n * useContract,\n * Web3Button,\n * } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const {\n * mutateAsync: updatePrimarySaleRecipient,\n * isLoading,\n * error,\n * } = useUpdatePrimarySaleRecipient(contract);\n *\n * return (\n * updatePrimarySaleRecipient(\"{{wallet_address}}\")}\n * >\n * Update Primary Sale Recipient\n * \n * );\n * }\n * ```\n *\n * @param contract - Instance of a `SmartContract`\n * @returns A mutation object to update the primary sales recipient\n *\n * ```ts\n * const { mutateAsync, isLoading, error } = useUpdatePrimarySaleRecipient(contract);\n * ```\n *\n * ### options\n *\n * The mutation function takes a `walletAddress` as argument:\n *\n * #### walletAddress\n *\n * The wallet address to set as the primary sale recipient.\n *\n * @twfeature PrimarySale\n * @platformFees\n */\nfunction useUpdatePrimarySaleRecipient(contract) {\n const queryClient = useQueryClient();\n const contractAddress = contract?.getAddress();\n const activeChainId = useSDKChainId();\n return useMutation(newRecipient => {\n requiredParamInvariant(contract, \"No contract provided\");\n invariant(\"sales\" in contract && contract.sales, \"Contract does not support primarySale\");\n return contract.sales.setRecipient(newRecipient);\n }, {\n onSettled: () => invalidateContractAndBalances(queryClient, contractAddress, activeChainId)\n });\n}\n\n// end primary sales\n\n// royalties\n\n/**\n * Hook for retrieving royalty settings of a smart contract.\n *\n * Available to use on contracts that implement the [`Royalty`](https://portal.thirdweb.com/contracts/build/extensions/general/Royalty) interface.\n *\n * @example\n * ```jsx\n * import { useContract, useRoyaltySettings } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const { data, isLoading, error } = useRoyaltySettings(contract);\n * }\n * ```\n *\n * @param contract - Instance of a `SmartContract`\n *\n * @returns\n * The hook's `data` property, once loaded, is an object with two properties:\n *\n * ```ts\n * {\n * seller_fee_basis_points: number;\n * fee_recipient: string;\n * }\n * ```\n *\n * - The `seller_fee_basis_points` is the royalty amount (in basis points) that the seller\n * will receive for each token sale on secondary markets.\n * - The `fee_recipient` is the wallet address that will receive the royalty payments.\n *\n * @twfeature Royalty\n * @platformFees\n */\nfunction useRoyaltySettings(contract) {\n const contractAddress = contract?.getAddress();\n return useQueryWithNetwork(cacheKeys.extensions.royalties.getDefaultRoyaltyInfo(contractAddress), () => {\n requiredParamInvariant(contract, \"No contract provided\");\n invariant(\"royalties\" in contract && contract.royalties, \"Contract does not support royalties\");\n return contract.royalties.getDefaultRoyaltyInfo();\n }, {\n enabled: !!contract || !!contractAddress\n });\n}\n\n/**\n * Hook for updating royalty settings on a smart contract.\n *\n * Available to use on smart contracts that implement the [`Royalty`](https://portal.thirdweb.com/contracts/build/extensions/general/Royalty) interface.\n *\n * @example\n * ```jsx\n * import {\n * useUpdateRoyaltySettings,\n * useContract,\n * Web3Button,\n * } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const {\n * mutateAsync: updateRoyaltySettings,\n * isLoading,\n * error,\n * } = useUpdateRoyaltySettings(contract);\n *\n * return (\n * \n * updateRoyaltySettings({\n * seller_fee_basis_points: 0,\n * fee_recipient: \"{{wallet_address}}\",\n * })\n * }\n * >\n * Update Royalty Settings\n * \n * );\n * }\n * ```\n *\n * @param contract - Instance of a `SmartContract`\n *\n * @returns\n * A mutation object to update the royalty settings\n *\n * ```ts\n * const { mutateAsync, isLoading, error } = useUpdateRoyaltySettings(contract);\n * ```\n *\n * ### options\n *\n * The mutation function takes an object with below properties:\n *\n * #### seller_fee_basis_points\n *\n * The `seller_fee_basis_points` property is a `number` between `0` - `10000` that defines the fee rate.\n *\n * This number is in percentage points. i.e. `100` is a 1% fee and `10000` is a 100% fee.\n *\n * #### fee_recipient\n *\n * The `fee_recipient` property is the address of the wallet that will receive the fees.\n *\n * @twfeature Royalty\n * @platformFees\n */\nfunction useUpdateRoyaltySettings(contract) {\n const queryClient = useQueryClient();\n const contractAddress = contract?.getAddress();\n const activeChainId = useSDKChainId();\n return useMutation(updatePayload => {\n requiredParamInvariant(contract, \"No contract provided\");\n invariant(\"royalties\" in contract && contract.royalties, \"Contract does not support royalties\");\n return contract.royalties.setDefaultRoyaltyInfo(updatePayload);\n }, {\n onSettled: () => invalidateContractAndBalances(queryClient, contractAddress, activeChainId)\n });\n}\n\n// end royalties\n\n// platformFees\n\n/**\n * Hook for getting the platform fee settings of a contract.\n *\n * Available to use on contracts that implement the [`PlatformFee`](https://portal.thirdweb.com/contracts/build/extensions/general/PlatformFee) interface.\n *\n * @example\n *\n * ```jsx\n * import { useContract, usePlatformFees } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const { data, isLoading, error } = usePlatformFees(contract);\n * }\n * ```\n *\n * @param contract - Instance of a `SmartContract`\n *\n * @returns\n * The hook's `data` property, once loaded, is an object containing two fields:\n *\n * - `platform_fee_basis_points`: the platform fee basis points set on the contract\n * - `platform_fee_recipient`: the wallet address of the platform fee recipient\n *\n * _Note_: The basis points are in percentage format, meaning that a value of `500` is equivalent to a `5%` fee.\n *\n * ```ts\n * {\n * platform_fee_basis_points: number;\n * platform_fee_recipient: string;\n * }\n * ```\n *\n * @twfeature PlatformFee\n * @platformFees\n */\nfunction usePlatformFees(contract) {\n const contractAddress = contract?.getAddress();\n return useQueryWithNetwork(cacheKeys.extensions.platformFees.get(contractAddress), () => {\n requiredParamInvariant(contract, \"No contract provided\");\n invariant(\"platformFees\" in contract && contract.platformFees, \"Contract does not support platformFees\");\n return contract.platformFees.get();\n }, {\n enabled: !!contract || !!contractAddress\n });\n}\n\n/**\n * Hook for updating platform fees on a smart contract.\n *\n * Available to use on smart contracts that implement the [`PlatformFee`](https://portal.thirdweb.com/contracts/build/extensions/general/PlatformFee) interface.\n *\n * ```jsx\n * import {\n * useUpdatePlatformFees,\n * useContract,\n * Web3Button,\n * } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const {\n * mutateAsync: updatePlatformFees,\n * isLoading,\n * error,\n * } = useUpdatePlatformFees(contract);\n *\n * return (\n * \n * updatePlatformFees({\n * platform_fee_basis_points: 0,\n * fee_recipient: \"{{wallet_address}}\",\n * })\n * }\n * >\n * Update Platform Fees\n * \n * );\n * }\n * ```\n *\n * @param contract - Instance of a `SmartContract`\n *\n * @returns A mutation object to update the platform fees settings\n *\n * ```ts\n * const { mutateAsync, isLoading, error } = useUpdatePlatformFees(contract);\n * ```\n *\n * ### options\n *\n * The mutation function takes an object with below properties:\n *\n * #### platform_fee_basis_points\n *\n * The `platform_fee_basis_points` property is a `number` between `0` - `10000` that defines the fee rate.\n *\n * This number is in percentage points. i.e. `100` is a 1% fee and `10000` is a 100% fee.\n *\n * #### fee_recipient\n *\n * The `fee_recipient` property is the address of the wallet that will receive the fees.\n *\n * Use the `useAddress` hook to get the current wallet address.\n *\n * @twfeature PlatformFee\n * @platformFees\n */\nfunction useUpdatePlatformFees(contract) {\n const queryClient = useQueryClient();\n const contractAddress = contract?.getAddress();\n const activeChainId = useSDKChainId();\n return useMutation(updatePayload => {\n requiredParamInvariant(contract, \"No contract provided\");\n invariant(\"platformFees\" in contract && contract.platformFees, \"Contract does not support platformFees\");\n return contract.platformFees.set(updatePayload);\n }, {\n onSettled: () => invalidateContractAndBalances(queryClient, contractAddress, activeChainId)\n });\n}\n\n// end platformFees\n\n// metadata\n\n/**\n * Hook for getting the metadata associated with a smart contract.\n *\n * Available to use on contracts that implement the [Contract Metadata](https://portal.thirdweb.com/contracts/build/extensions/general/ContractMetadata) interface.\n *\n * @example\n * ```jsx\n * import { useContract, useMetadata } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const { data, isLoading, error } = useMetadata(contract);\n * }\n * ```\n *\n * @param contract - Instance of a `SmartContract`\n * @returns\n * A `CustomContractMetadata` object containing the metadata\n *\n * The hook's `data` property, once loaded, is an object containing the contract's metadata.\n *\n * ```ts\n * CustomContractMetadata | undefined;\n * ```\n *\n * ```ts\n * interface CustomContractMetadata {\n * // The name of the contract.\n * name: string;\n * // A description of the contract.\n * description?: string;\n * // The image associated with the contract.\n * image?: any;\n * // An external link associated with the contract.\n * external_link?: string;\n * }\n * ```\n *\n * @metadata\n */\nfunction useMetadata(contract\n// TODO figure out UseQueryResult type better\n) {\n const contractAddress = contract?.getAddress();\n return useQueryWithNetwork(cacheKeys.extensions.metadata.get(contractAddress), () => {\n requiredParamInvariant(contract, \"No contract provided\");\n invariant(\"metadata\" in contract && contract.metadata, \"Contract does not support metadata\");\n return contract.metadata.get();\n }, {\n enabled: !!contract || !!contractAddress\n });\n}\n\n/**\n * Hook for updating the metadata of a smart contract.\n *\n * Available to use on smart contracts that implement the `ContractMetadata` interface.\n *\n * The wallet initiating this transaction must have the required permissions to update the metadata, (`admin` permissions required by default).\n *\n * Provide your contract instance from the `useContract` hook as the first argument, and\n * an object fitting the [contract-level metadata standards](https://docs.opensea.io/docs/contract-level-metadata) of\n * the new metadata as the second argument, including:\n *\n * - `name`: A `string` for the name of the smart contract (required).\n * - `description`: A `string` to describe the smart contract (optional).\n * - `image`: A `string` or `File` object containing the URL or file data of an image to associate with the contract (optional).\n * - `external_link`: A `string` containing a URL to view the smart contract on your website (optional).\n *\n * @example\n *\n * ```jsx\n * import {\n * useUpdateMetadata,\n * useContract,\n * Web3Button,\n * } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const {\n * mutateAsync: updateMetadata,\n * isLoading,\n * error,\n * } = useUpdateMetadata(contract);\n *\n * return (\n * \n * updateMetadata({\n * name: \"My App\",\n * description: \"My awesome Ethereum App\",\n * image: \"/path/to/image.jpg\", // URL, URI, or File object\n * external_link: \"https://myapp.com\",\n * })\n * }\n * >\n * Update Metadata\n * \n * );\n * }\n * ```\n *\n * @param contract - Instance of a `SmartContract`\n * @returns Mutation object that to update the metadata\n * @metadata\n */\nfunction useUpdateMetadata(contract\n// TODO figure out UseMutationResult type better\n) {\n const queryClient = useQueryClient();\n const contractAddress = contract?.getAddress();\n const activeChainId = useSDKChainId();\n return useMutation(updatePayload => {\n requiredParamInvariant(contract, \"No contract provided\");\n invariant(\"metadata\" in contract && contract.metadata, \"Contract does not support metadata\");\n return contract.metadata.update(updatePayload);\n }, {\n onSettled: () => invalidateContractAndBalances(queryClient, contractAddress, activeChainId)\n });\n}\n\n// end metadata\n\n// contract type\nasync function fetchContractType(contractAddress, sdk) {\n if (!contractAddress || !sdk) {\n return null;\n }\n try {\n return await sdk.resolveContractType(contractAddress);\n } catch (err) {\n console.error(\"failed to resolve contract type\", err);\n // this error can happen if the contract is a custom contract -> assume \"custom\"\n return \"custom\";\n }\n}\n\n/**\n * Hook for determining the type of contract for a contract address.\n *\n * This is useful if you want to determine if a contract is a [prebuilt contract](https://portal.thirdweb.com/pre-built-contracts).\n *\n * @example\n * ```jsx\n * import { useContractType } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { data, isLoading, error } = useContractType(contractAddress);\n * }\n * ```\n *\n * @param contractAddress - The address of the contract\n * @returns Query result containing the type of the contract in the `data` property\n * @metadata\n */\nfunction useContractType(contractAddress) {\n const sdk = useSDK();\n return useQueryWithNetwork(cacheKeys.contract.type(contractAddress), () => fetchContractType(contractAddress, sdk),\n // is immutable, so infinite stale time\n {\n cacheTime: Infinity,\n staleTime: Infinity,\n enabled: !!contractAddress && !!sdk\n });\n}\n\n/**\n * @internal\n */\nconst contractType = {\n cacheKey: (contractAddress, chainId) => createCacheKeyWithNetwork(cacheKeys.contract.type(contractAddress), chainId),\n useQuery: useContractType,\n fetchQuery: fetchContractType\n};\n\n// end contract type\n\n// contract compiler metadata\nfunction fetchCompilerMetadata(contractAddress, sdk) {\n if (!contractAddress || !sdk) {\n return null;\n }\n try {\n return sdk.getPublisher().fetchCompilerMetadataFromAddress(contractAddress);\n } catch (err) {\n // if we fail to get contract metadata just return null;\n return null;\n }\n}\n\n/**\n * Hook for retrieving information such as the ABI, license, and metadata of a smart contract using it's contract address.\n *\n * @example\n * ```jsx\n * import { useCompilerMetadata } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { data, isLoading, error } = useCompilerMetadata(contractAddress);\n * }\n *\n * export default App;\n * ```\n *\n * @param contractAddress - The address of the deployed contract\n * @returns Query result containing the compiler metadata of the deployed contract in the `data` property\n *\n * @metadata\n */\nfunction useCompilerMetadata(contractAddress) {\n const sdk = useSDK();\n return useQueryWithNetwork(cacheKeys.contract.compilerMetadata(contractAddress), () => fetchCompilerMetadata(contractAddress, sdk),\n // is immutable, so infinite stale time\n {\n cacheTime: Infinity,\n staleTime: Infinity,\n enabled: !!contractAddress && !!sdk\n });\n}\n\n/**\n * @internal\n */\nconst compilerMetadata = {\n cacheKey: (contractAddress, chainId) => createCacheKeyWithNetwork(cacheKeys.contract.compilerMetadata(contractAddress), chainId),\n useQuery: useCompilerMetadata,\n fetchQuery: fetchCompilerMetadata\n};\n\n// end compiler metadata\n\n// useContract\n\n/**\n * @contract\n */\n\n/**\n * Hook for connecting to a smart contract.\n *\n * Provide your smart contract address as the first parameter. Once connected, the `contract` will be an instance of your smart contract.\n *\n * The ABI of the smart contract is resolved automatically for contracts deployed or imported using the [thirdweb dashboard](https://thirdweb.com/dashboard).\n *\n * @example\n * ```javascript\n * const { contract, isLoading, error } = useContract(contractAddress);\n * ```\n *\n * @remarks\n *\n * To cache the ABI of the smart contract, use [thirdweb generate](https://portal.thirdweb.com/cli/generate). This is recommended to improve performance and provide type-safety when interacting with your smart contract.\n *\n *\n * @param contractAddress - The address of the deployed contract\n * @returns Query result object that includes the contract once it is resolved\n * @contract\n */\n\n/**\n * If your contract is a prebuilt contract, it is strongly recommended you provide the contract's name as the second argument to gain access to improved top-level functions and type inference.\n *\n * Available contract types are:\n * - `\"nft-drop\"`\n * - `\"signature-drop\"`\n * - `\"edition-drop\"`\n * - `\"nft-collection\"`\n * - `\"edition\"`\n * - `\"multiwrap\"`\n * - `\"pack\"`\n * - `\"token-drop\"`\n * - `\"token\"`\n * - `\"marketplace\"`\n * - `\"marketplace-v3\"`\n * - `\"split\"`\n * - `\"vote\"`\n *\n * When a contract type is provided, the contract object will be typed as the contract's class.\n * For example, if you provide the contract type `\"pack\"`, the contract object will be returned typed as an instance of the `Pack` class, unlocking all of the top-level functions specific to the pack.\n *\n * @example\n * ```javascript\n * const { contract, isLoading, error } = useContract(contractAddress, \"pack\");\n * ```\n *\n * @param contractAddress - The address of the deployed contract\n * @param _contractType - The type of the contract\n * @returns Query result object that includes the contract once it is resolved\n * @public\n */\n\n/**\n * Optionally, (if you don’t want to use the dashboard import feature),\n * you can provide your smart contract’s ABI to the second parameter of the useContract hook.\n * This is useful when developing on a local node, where it may be faster to use the ABI than to import the contract using the dashboard.\n *\n * The ABI is only necessary if you have not deployed your contract with, or imported your contract to the [thirdweb dashboard](https://thirdweb.com/dashboard).\n *\n * @example\n * ```javascript\n * const { contract, isLoading, error } = useContract(contractAddress, contractAbi);\n * ```\n *\n * @param contractAddress - The address of the deployed contract\n * @param _abi - The ABI of the contract to use\n * @returns Query result object that includes the contract once it is resolved\n */\n\n// TODO: add JSDoc for this signature\n\nfunction useContract(contractAddress, contractTypeOrABI) {\n const sdk = useSDK();\n const queryClient = useQueryClient();\n const activeChainId = useSDKChainId();\n const wallet = useAddress();\n const walletChainId = useChainId();\n\n // it's there because we put it there.\n const sdkTimestamp = sdk?._constructedAt;\n const contractQuery = useQueryWithNetwork(\n // need to add the wallet and walletChainId into the query key so this gets refreshed when the wallet / chain changes!\n neverPersist([\"contract-instance\", contractAddress, {\n wallet,\n walletChainId,\n sdkTimestamp\n }]), async () => {\n requiredParamInvariant(contractAddress, \"contract address is required\");\n invariant(sdk, \"SDK not initialized\");\n invariant(activeChainId, \"active chain id is required\");\n\n // if we don't have a contractType or ABI then we will have to resolve it regardless\n // we also handle it being \"custom\" just in case...\n if (!contractTypeOrABI || contractTypeOrABI === \"custom\") {\n // First check local ABI cache\n const cachedAbi = getCachedAbiForContract(contractAddress);\n if (cachedAbi) {\n return sdk.getContract(contractAddress, cachedAbi);\n }\n\n // we just resolve here (sdk does this internally anyway)\n const resolvedContractType = await queryClient.fetchQuery(contractType.cacheKey(contractAddress, activeChainId), () => contractType.fetchQuery(contractAddress, sdk), {\n cacheTime: Infinity,\n staleTime: Infinity\n });\n let abi;\n if (resolvedContractType === \"custom\") {\n abi = (await queryClient.fetchQuery(compilerMetadata.cacheKey(contractAddress, activeChainId), () => compilerMetadata.fetchQuery(contractAddress, sdk), {\n cacheTime: Infinity,\n staleTime: Infinity,\n retry: 0\n }))?.abi;\n }\n invariant(resolvedContractType, \"failed to resolve contract type\");\n // just let the sdk handle the rest\n // if we have resolved an ABI for a custom contract, use that otherwise use contract type\n return sdk.getContract(contractAddress, abi || resolvedContractType);\n }\n // every other case can just be handled by the sdk directly\n return sdk.getContract(contractAddress, contractTypeOrABI);\n }, {\n // keep the previous value around while we fetch the new one\n // this is important because otherwise it can lead to flickering (because we need to re-fetch the contract when sdk things change)\n keepPreviousData: true,\n // is immutable, so infinite cache & stale time (for a given key)\n cacheTime: Infinity,\n staleTime: Infinity,\n enabled: !!contractAddress && !!sdk && !!activeChainId,\n // never retry\n retry: 0\n });\n\n // const previousCountract = usePrevious(contractQuery.data);\n\n return {\n ...contractQuery,\n data: contractQuery.data,\n contract: contractQuery.data\n };\n}\n\n/**\n * Get the metadata of given contract\n *\n * @example\n * ```javascript\n * const { data: contractMetadata, isLoading } = useContractMetadata(contract);\n * ```\n *\n * @param contract - The `ValidContractInstance` instance of the contract to get the metadata for\n * @returns A Query result object that includes the contract metadata of the deployed contract\n * @twfeature ContractMetadata\n * @metadata\n */\nfunction useContractMetadata(contract) {\n return useQueryWithNetwork(cacheKeys.contract.metadata(contract?.getAddress()), async () => {\n requiredParamInvariant(contract, \"contract is required\");\n return await contract.metadata.get(); // FIXME types\n }, {\n enabled: !!contract\n });\n}\n\n/**\n * Update the metadata of the given contract\n *\n * @example\n * ```jsx\n * const Component = () => {\n * const { contract } = useContract(\"{{contract_address}}\");\n * const {\n * mutate: updateContractMetadata,\n * isLoading,\n * error,\n * } = useContractMetadataUpdate(contract);\n *\n * if (error) {\n * console.error(\"failed to update contract metadata\", error);\n * }\n *\n * return (\n * updateContractMetadata({ name: \"New name\", description: \"New description\" })}\n * >\n * Update contract metadata\n * \n * );\n * };\n * ```\n *\n * @param contract - The `ValidContractInstance` instance of the contract to get the metadata for\n * @returns Mutation object to update the contract metadata\n * @twfeature ContractMetadata\n * @metadata\n */\nfunction useContractMetadataUpdate(contract) {\n const activeChainId = useSDKChainId();\n const contractAddress = contract?.getAddress();\n const queryClient = useQueryClient();\n return useMutation(async metadata => {\n requiredParamInvariant(contract, \"contract must be defined\");\n return contract.metadata.update(metadata);\n }, {\n onSettled: () => queryClient.invalidateQueries(createCacheKeyWithNetwork(createContractCacheKey(contractAddress), activeChainId))\n });\n}\n\n/**\n * CONTRACT EVENTS\n */\n\n/**\n * Hook for reading events emitted by a smart contract, including new events as they are emitted (optional).\n *\n * By default, it reads all events emitted by the smart contract.\n *\n * @example\n * ```tsx\n * import { useContractEvents, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const { data, isLoading, error } = useContractEvents(contract);\n * }\n * ```\n *\n * @param contract - The contract instance of the contract to listen to events for\n *\n * @param eventName -\n * The name of the event to query for.\n *\n * For example, if your smart contract emits an event called `MyEvent`, you would pass `\"MyEvent\"` to this parameter.\n *\n * Omit this parameter or provide undefined to query for all events emitted by the smart contract.\n *\n * @param options -\n * An object containing options to filter the events being queried.\n *\n * Available options include\n * - `queryFilter` to refine which events you want to read,\n * - a boolean `subscribe` flag to subscribe to new events as they are emitted.\n *\n * ### Example\n * ```tsx\n * import {\n * useContractEvents,\n * useContract,\n * Web3Button,\n * } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const { data, isLoading, error } = useContractEvents(\n * contract,\n * \"MyEvent\",\n * {\n * queryFilter: {\n * filters: {\n * tokenId: 123, // e.g. Only events where tokenId = 123\n * },\n * fromBlock: 0, // Events starting from this block\n * toBlock: 100, // Events up to this block\n * order: \"asc\", // Order of events (\"asc\" or \"desc\")\n * },\n * subscribe: true, // Subscribe to new events\n * },\n * );\n * ```\n *\n * @returns The hook's `data` property, once loaded, contains an array of `ContractEvent` objects\n * @contract\n *\n */\nfunction useContractEvents(contract, eventName) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n subscribe: true\n };\n const contractAddress = contract?.getAddress();\n const queryClient = useQueryClient();\n const activeChainId = useSDKChainId();\n const cacheKey = useMemo(() => createCacheKeyWithNetwork(eventName ? cacheKeys.contract.events.getEvents(contractAddress, eventName) : cacheKeys.contract.events.getAllEvents(contractAddress), activeChainId), [activeChainId, contractAddress, eventName]);\n useEffect(() => {\n // if we're not subscribing or query is not enabled yet we can early exit\n if (!options.subscribe || !contract || !contract) {\n return;\n }\n const cleanupListener = contract.events.listenToAllEvents(contractEvent => {\n // if we have a specific event name we are looking for we can early exist if it doesn't match\n if (eventName && eventName !== contractEvent.eventName) {\n return;\n }\n // insert new event to the front of the array (no duplicates, though)\n queryClient.setQueryData(cacheKey, oldData => {\n if (!oldData) {\n return [contractEvent];\n }\n const eventIsNotAlreadyInEventsList = oldData.findIndex(e => e.transaction.transactionHash === contractEvent.transaction.transactionHash && e.transaction.logIndex === contractEvent.transaction.logIndex) === -1;\n if (eventIsNotAlreadyInEventsList) {\n return [contractEvent, ...oldData];\n }\n return oldData;\n });\n });\n // cleanup listener on unmount\n return cleanupListener;\n }, [options.subscribe, cacheKey, contract, queryClient, eventName]);\n return useQuery(cacheKey, () => {\n requiredParamInvariant(contract, \"contract must be defined\");\n if (eventName) {\n return contract.events.getEvents(eventName, options.queryFilter);\n }\n return contract.events.getAllEvents(options.queryFilter);\n }, {\n enabled: !!contract,\n // we do not need to re-fetch if we're subscribing\n refetchOnWindowFocus: !options.subscribe,\n refetchOnMount: true,\n refetchOnReconnect: true\n });\n}\n\n/**\n * Generic hook for reading any data from a smart contract via it’s function/view/variable name.\n *\n * ```javascript\n * const { contract } = useContract(\"{{contract_address}}\");\n * const { data, isLoading, error } = useContractRead(contract, \"functionName\", args);\n * ```\n *\n * @example\n * Provide your smart contract instance from `useContract`, a function name and the arguments to pass to the function (if any).\n *\n * For example, to read the value of a view on your smart contract called `getName` you would do the following:\n *\n * ```tsx\n * import { useContractRead, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const { data, isLoading, error } = useContractRead(contract, \"getName\");\n * }\n * ```\n *\n * @remarks\n * If you have cached the ABI of your smart contract using [thirdweb generate](https://portal.thirdweb.com/cli/generate), the functionName and args parameters are strongly typed according to your smart contract’s ABI.\n *\n * @param contract - The contract instance of the contract to call a function on\n *\n * @param functionName - The name of the function to call in the smart contract. This can be any function, view, variable, etc. that does not require a transaction to occur.\n *\n * @param args - The arguments to pass to the function (if any)\n *\n * @param overrides -\n * `CallOverrides` object to send with your request.\n *\n * To include the sender's address (msg.sender) when calling view functions within your smart contract, include the property `{from: 0X123}` passing the relevant address.\n *\n * ```ts\n * const { data, isLoading, error } = useContractRead(contract, \"getName\", [\"arg1\", \"arg2\"], {\n * blockTag: 123,\n * from: \"0x123\",\n * });\n * ```\n *\n * @returns Query result object that includes the data returned by the function call\n * @contract\n */\nfunction useContractRead(contract, functionName, args, overrides) {\n const contractAddress = contract?.getAddress();\n return useQueryWithNetwork(cacheKeys.contract.call(contractAddress, functionName, args, overrides), () => {\n requiredParamInvariant(contract, \"contract must be defined\");\n requiredParamInvariant(functionName, \"function name must be provided\");\n return contract.call(functionName, args, overrides);\n }, {\n enabled: !!contract && !!functionName\n });\n}\n\n/**\n * Generic hook for calling any smart contract function that requires a transaction to take place.\n *\n * Provide your smart contract instance returned from the `useContract` hook, along with the name of the function you wish to call on your smart contract as arguments to the hook.\n *\n * Then call the `mutate` or `mutateAsync` function returned by the hook, providing an array of arguments to send to your smart contract function.\n *\n * If you provide too many or too few arguments, the `error` property will be populated with an error message.\n *\n * If your function has no arguments, provide an empty array by calling the function with `{ args: [] }`\n *\n * @example\n * ```javascript\n * import { useContractWrite, useContract, Web3Button } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const { mutateAsync, isLoading, error } = useContractWrite(\n * contract,\n * \"setName\",\n * );\n *\n * return (\n * mutateAsync({ args: [\"My Name\"] })}\n * >\n * Send Transaction\n * \n * );\n * }\n * ```\n *\n * @remarks\n *\n * If you have cached the ABI of your smart contract using [thirdweb generate](https://portal.thirdweb.com/cli/generate), the functionName and args parameters are strongly typed according to your smart contract’s ABI.\n *\n *\n * @param contract - The contract instance of the contract to call a function on\n * @param functionName - The name of the function to call in the smart contract.\n * @returns A mutation object that includes the write function to call\n * @contract\n */\nfunction useContractWrite(contract, functionName) {\n const activeChainId = useSDKChainId();\n const contractAddress = contract?.getAddress();\n const queryClient = useQueryClient();\n return useMutation(async _ref => {\n let {\n args,\n overrides\n } = _ref;\n requiredParamInvariant(contract, \"contract must be defined\");\n requiredParamInvariant(functionName, \"function name must be provided\");\n return contract.call(functionName, args, overrides);\n }, {\n onSettled: () => queryClient.invalidateQueries(createCacheKeyWithNetwork(createContractCacheKey(contractAddress), activeChainId))\n });\n}\n\n/** **********************/\n/** READ HOOKS **/\n/** **********************/\n\n/**\n * Hook for fetching information about all NFTs that haven't been claimed yet from an NFT Drop contract.\n *\n * Available to use on contracts that extends the ERC721 spec\n *\n * @example\n *\n * ```jsx\n * import { useUnclaimedNFTs, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const { data, isLoading, error } = useUnclaimedNFTs(contract);\n * }\n * ```\n *\n * @param contract - Instance of a contract that extends the ERC721 spec (NFT drop, Signature Drop, or any custom contract that extends the ERC721 spec)\n *\n * @param queryParams -\n * query params to pass to the query for the sake of pagination\n * By default, the hook returns the first 100 unclaimed NFTs from the contract.\n *\n * Paginate the results by providing a `queryParams` object as the second argument.\n *\n * ```jsx\n * import { useUnclaimedNFTs, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const { data, isLoading, error } = useUnclaimedNFTs(\n * contract,\n * {\n * count: 10, // Limit the number of results\n * start: 0, // Start from the nth result (useful for pagination)\n * },\n * );\n * }\n * ```\n *\n * @returns\n * The hook's `data` property, once loaded, contains an array of `NFT` objects.\n *\n * @twfeature ERC721LazyMintable\n * @nftDrop\n */\nfunction useUnclaimedNFTs(contract, queryParams) {\n const contractAddress = contract?.getAddress();\n return useQueryWithNetwork(cacheKeys.contract.nft.drop.getAllUnclaimed(contractAddress, queryParams), () => {\n requiredParamInvariant(contract, \"No Contract instance provided\");\n // TODO make this work for custom contracts (needs ABI change)\n invariant(contract.getAllUnclaimed, \"Contract instance does not support getAllUnclaimed\");\n const data = contract.getAllUnclaimed(queryParams);\n return data;\n }, {\n enabled: !!contract\n });\n}\n\n/**\n * Hook for fetching all claimed NFTs from a given NFT Drop contract.\n *\n * Available to use on contracts that implement [`ERC721Claimable`](https://portal.thirdweb.com/contracts/build/extensions/erc-721/ERC721Claimable),\n * such as the [NFT Drop](https://thirdweb.com/thirdweb.eth/DropERC721).\n *\n * @example\n *\n * ```jsx\n * import { useClaimedNFTs, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress, \"nft-drop\");\n * const { data: nfts, isLoading, error } = useClaimedNFTs(contract);\n * }\n * ```\n *\n * @param contract - Instance of a contract that extends the ERC721 spec (NFT drop, Signature Drop, or any custom contract that extends the ERC721 spec)\n *\n * @param queryParams -\n * By default, the hook will return the first `100` claimed NFTs\n *\n * You can use the `queryParams` argument to paginate the NFTs that are returned.\n *\n * ```jsx\n * import { useClaimedNFTs, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress, \"nft-drop\");\n * const { data, isLoading, error } = useClaimedNFTs(\n * contract,\n * {\n * // For example, to only return the first 50 claimed NFTs in the collection\n * // in order of token ID\n * count: 50,\n * start: 0,\n * },\n * );\n * }\n * ```\n *\n * @returns Query Result object that includes an array of NFTs that are claimed in the `data` property\n * @twfeature ERC721LazyMintable\n * @nftDrop\n */\nfunction useClaimedNFTs(contract, queryParams) {\n const contractAddress = contract?.getAddress();\n return useQueryWithNetwork(cacheKeys.contract.nft.drop.getAllClaimed(contractAddress, queryParams), () => {\n requiredParamInvariant(contract, \"No Contract instance provided\");\n // TODO make this work for custom contracts (needs ABI change)\n invariant(contract.getAllClaimed, \"Contract instance does not support getAllClaimed\");\n return contract.getAllClaimed(queryParams);\n }, {\n enabled: !!contract\n });\n}\n\n/**\n * Hook for fetching the number of unclaimed NFTs from an NFT/Edition Drop contract.\n *\n * Unclaimed NFTs are tokens that were lazy-minted but have not yet been claimed by a user.\n *\n * Available to use on contracts that implement the [`LazyMint`](https://portal.thirdweb.com/contracts/build/extensions/general/LazyMint) extension;\n * such as the [NFT Drop](https://thirdweb.com/thirdweb.eth/DropERC721) contract.\n *\n * @example\n *\n * ```jsx\n * import { useUnclaimedNFTSupply, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress, \"nftDrop\");\n * const { data, isLoading, error } = useUnclaimedNFTSupply(contract);\n * }\n * ```\n *\n * @param contract - Instance of a contract that extends the ERC721 spec (NFT drop, Signature Drop, or any custom contract that extends the ERC721 spec)\n *\n * @returns\n * The hook's `data` property, once loaded, contains a `BigNumber` representing the number of unclaimed NFTs.\n *\n *\n * @twfeature ERC721LazyMintable\n *\n * @nftDrop\n */\nfunction useUnclaimedNFTSupply(contract) {\n const contractAddress = contract?.getAddress();\n const {\n erc721\n } = getErcs(contract);\n return useQueryWithNetwork(cacheKeys.contract.nft.drop.totalUnclaimedSupply(contractAddress), () => {\n requiredParamInvariant(contract, \"No Contract instance provided\");\n if (erc721) {\n invariant(erc721, \"No ERC721 Contract instance provided\");\n return erc721.totalUnclaimedSupply();\n }\n invariant(false, \"Contract is not an instance of ERC721\");\n }, {\n enabled: !!erc721\n });\n}\n\n/**\n * Hook for retrieving the total supply of NFTs claimed from an NFT Drop contract.\n *\n * Available to use on contracts that implement [`ERC721Claimable`](https://portal.thirdweb.com/contracts/build/extensions/erc-721/ERC721Claimable).\n *\n * @example\n *\n * ```jsx\n * import { useClaimedNFTSupply, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const { data, isLoading } = useClaimedNFTSupply(contract);\n * }\n * ```\n *\n * @param contract - Instance of a contract that extends the ERC721 spec (NFT drop, Signature Drop, or any custom contract that extends the ERC721 spec)\n *\n * @returns\n * The hook's `data` property, once loaded, is a `BigNumber` representing the total supply of NFTs claimed from the NFT drop contract so far.\n *\n * @twfeature ERC721LazyMintable\n * @nftDrop\n */\nfunction useClaimedNFTSupply(contract) {\n const contractAddress = contract?.getAddress();\n const {\n erc721\n } = getErcs(contract);\n return useQueryWithNetwork(cacheKeys.contract.nft.drop.totalClaimedSupply(contractAddress), () => {\n requiredParamInvariant(contract, \"No Contract instance provided\");\n if (erc721) {\n return erc721.totalClaimedSupply();\n }\n invariant(false, \"Contract is not an instance of ERC721\");\n }, {\n enabled: !!erc721\n });\n}\n\n/**\n * Hook for fetching batches of lazy-minted NFTs that were set to be revealed at a later date, but have not yet been revealed.\n *\n * Available to use on contracts that implement the [ERC721Revealable](https://portal.thirdweb.com/contracts/build/extensions/erc-721/ERC721Revealable)\n * or [ERC1155Revealable](https://portal.thirdweb.com/contracts/build/extensions/erc-1155/ERC1155Revealable) interfaces,\n * such as the [NFT Drop](https://thirdweb.com/thirdweb.eth/DropERC721)\n * and [Edition Drop](https://thirdweb.com/thirdweb.eth/DropERC1155) smart contracts.\n *\n * @example\n * ```tsx\n * import { useBatchesToReveal, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const { data: batches, isLoading, error } = useBatchesToReveal(contract);\n * }\n * ```\n *\n * @param contract - Instance of a `RevealableContract`\n *\n * @returns The hook's `data` property, once loaded, contains an array of batches that need to be revealed.\n *\n * Each batch is an object with the following properties:\n *\n * ```ts\n * {\n * batchId: BigNumber;\n * batchUri: string;\n * placeholderMetadata: NFTMetadata;\n * }\n * ```\n *\n * @twfeature ERC721Revealable | ERC1155Revealable\n * @delayedReveal\n */\nfunction useBatchesToReveal(contract) {\n const contractAddress = contract?.getAddress();\n const {\n erc721,\n erc1155\n } = getErcs(contract);\n return useQueryWithNetwork(cacheKeys.contract.nft.drop.revealer.getBatchesToReveal(contractAddress), () => {\n if (erc721) {\n return erc721.revealer.getBatchesToReveal();\n }\n if (erc1155) {\n return erc1155.revealer.getBatchesToReveal();\n }\n invariant(false, \"Contract instance does not support getBatchesToReveal\");\n }, {\n enabled: !!erc721 || !!erc1155\n });\n}\n\n/** **********************/\n/** WRITE HOOKS **/\n/** **********************/\n/**\n * Hook for claiming an NFT from a smart contract.\n *\n * Available to use on smart contracts that implement a `Claimable` interface, and follow either the `ERC721`or `ERC1155` standard.\n *\n * @example\n * ```jsx\n * import { useContract, useClaimNFT, Web3Button } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const { mutateAsync: claimNft, isLoading, error } = useClaimNFT(contract);\n *\n * return (\n * \n * claimNft({\n * to: \"{{wallet_address}}\", // Use useAddress hook to get current wallet address\n * quantity: 1,\n * })\n * }\n * >\n * Claim NFT\n * \n * );\n * }\n * ```\n *\n * @param contract - Instance of a `DropContract`\n *\n * @returns A mutation object to claim a NFT to the wallet specified in the params\n *\n * ```ts\n * const { mutateAsync, isLoading, error } = useClaimNFT(contract);\n * ```\n *\n * ### options\n *\n * The mutation function takes an object as argument with below properties:\n *\n * #### to\n *\n * The wallet address to mint the NFT(s) to.\n *\n * Use the `useAddress` hook to get the currently connected wallet address.\n *\n * #### quantity\n *\n * The number of NFTs you wish to claim.\n *\n * - With ERC721 contracts, this represents the number of unique tokens you wish to claim.\n * - With ERC1155 contracts, this represents the quantity of the specific `tokenId` you wish to claim.\n *\n * #### tokenId\n *\n * For ERC1155 contracts, you must specify a specific `tokenId` to claim.\n *\n * #### options (optional)\n *\n * Customizable `ClaimOptions` object to override the default behaviour of the hook.\n *\n * There are three options available:\n *\n * - `checkERC20Allowance` - Whether to check the ERC20 allowance of the sender, defaults to true.\n * - `currencyAddress` - The currency to pay for each token claimed, defaults to `NATIVE_TOKEN_ADDRESS` for native currency.\n * - `pricePerToken` - The price to pay for each token claimed. Not relevant when using claim conditions.\n *\n * ```jsx\n * import { useContract, useClaimNFT, Web3Button } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const { mutate: claimNft, isLoading, error } = useClaimNFT(contract);\n *\n * return (\n * \n * claimNft({\n * to: \"{{wallet_address}}\",\n * quantity: 1,\n * options: {\n * checkERC20Allowance: true,\n * currencyAddress: \"{{erc20_address}}\",\n * pricePerToken: 0,\n * },\n * })\n * }\n * >\n * Claim NFT\n * \n * );\n * }\n * ```\n *\n * @twfeature ERC721Claimable | ERC1155Claimable | ERC721ClaimPhasesV2 | ERC721ClaimPhasesV1 | ERC721ClaimConditionsV2 | ERC721ClaimConditionsV1 | ERC1155ClaimPhasesV2 | ERC1155ClaimPhasesV1 | ERC1155ClaimConditionsV2 | ERC1155ClaimConditionsV1\n * @nftDrop\n */\nfunction useClaimNFT(contract) {\n const activeChainId = useSDKChainId();\n const contractAddress = contract?.getAddress();\n const queryClient = useQueryClient();\n const {\n erc721,\n erc1155\n } = getErcs(contract);\n return useMutation(async data => {\n requiredParamInvariant(contract, \"contract is undefined\");\n if (erc1155) {\n requiredParamInvariant(data.tokenId, \"tokenId not provided\");\n if (!data.to) {\n return await erc1155.claim(data.tokenId, data.quantity, data.options);\n }\n return await erc1155.claimTo(data.to, data.tokenId, data.quantity, data.options);\n }\n if (erc721) {\n if (!data.to) {\n return await erc721.claim(data.quantity, data.options);\n }\n return await erc721.claimTo(data.to, data.quantity, data.options);\n }\n invariant(false, \"contract is not an Erc721 or Erc1155\");\n }, {\n onSettled: () => invalidateContractAndBalances(queryClient, contractAddress, activeChainId)\n });\n}\n\n/**\n * Hook for lazy minting a batch of NFTs on a drop contract.\n *\n * Available to use on smart contracts that implement the \"Drop\" extension, and\n * follow either the `ERC721` or `ERC1155` standard.\n *\n * @example\n *\n * Provide your drop contract (ERC721 or ERC1155) as the argument to the hook, and an array\n * of metadata objects to lazy-mint.\n *\n * ```jsx\n * import { useContract, useLazyMint, Web3Button } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const { mutateAsync: lazyMint, isLoading, error } = useLazyMint(contract);\n *\n * return (\n * \n * lazyMint({\n * // Metadata of the NFTs to upload\n * metadatas: [\n * {\n * name: \"My NFT\",\n * description: \"An example NFT\",\n * image: \"{{image_url}}\",\n * },\n * ],\n * })\n * }\n * >\n * Lazy Mint NFTs\n * \n * );\n * }\n * ```\n *\n * @param contract - Instance of a `NFTContract` with the drop extension\n *\n * @param onProgress - Optional callback that will be called with the progress of the upload\n *\n * @returns A mutation object to lazy mint a batch of NFTs\n *\n * ```ts\n * const { mutateAsync, isLoading, error } = useLazyMint(contract);\n * ```\n *\n * ### options\n *\n * The mutation function takes an object as argument with below properties:\n *\n * #### metadatas\n * An array of objects containing the metadata of the NFTs to lazy mint.\n *\n * Your metadata objects must follow the [Metadata standards](https://docs.opensea.io/docs/metadata-standards#metadata-structure).\n *\n * ```jsx\n * import { useContract, useLazyMint, Web3Button } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const { mutateAsync: lazyMint, isLoading, error } = useLazyMint(contract);\n *\n * return (\n * \n * lazyMint({\n * // Metadata of the NFTs to upload\n * metadatas: [\n * {\n * name: \"My NFT\",\n * description: \"An example NFT\",\n * image: \"{{image_url}}\",\n * },\n * ],\n * })\n * }\n * >\n * Lazy Mint NFTs\n * \n * );\n * }\n * ```\n *\n * @twfeature ERC721LazyMintable | ERC1155LazyMintable\n * @nftDrop\n */\nfunction useLazyMint(contract, onProgress) {\n const activeChainId = useSDKChainId();\n const contractAddress = contract?.getAddress();\n const queryClient = useQueryClient();\n const {\n erc721,\n erc1155\n } = getErcs(contract);\n return useMutation(async data => {\n requiredParamInvariant(contract, \"contract is undefined\");\n let options;\n if (onProgress) {\n options = {\n onProgress\n };\n }\n if (erc721) {\n return erc721.lazyMint(data.metadatas, options);\n }\n if (erc1155) {\n return erc1155.lazyMint(data.metadatas, options);\n }\n invariant(false, \"contract is not an Erc721 or Erc1155\");\n }, {\n onSettled: () => invalidateContractAndBalances(queryClient, contractAddress, activeChainId)\n });\n}\n\n/**\n * Hook to lazy-mint a batch of NFTs with [delayed reveal](https://portal.thirdweb.com/glossary/delayed-reveal);\n * allowing the owner to set placeholder metadata and reveal the metadata of the NFTs at a later time.\n *\n * Available to use on contracts that implement the\n * [ERC721Revealable](https://portal.thirdweb.com/contracts/build/extensions/erc-721/ERC721Revealable)\n * or [ERC1155Revealable](https://portal.thirdweb.com/contracts/build/extensions/erc-1155/ERC1155Revealable)\n * interfaces.\n *\n * @example\n * ```tsx\n * import {\n * useDelayedRevealLazyMint,\n * useContract,\n * Web3Button,\n * } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const {\n * mutateAsync: mintNft,\n * isLoading,\n * error,\n * } = useDelayedRevealLazyMint(contract);\n *\n * const nftData = {\n * placeholder: {\n * name: \"My NFT\",\n * description: \"This is my NFT\",\n * image: \"ipfs://example.com/my-nft.png\", // Accepts any URL or File type\n * },\n * metadatas: [\n * {\n * name: \"My NFT\",\n * description: \"This is my NFT\",\n * image: \"ipfs://example.com/my-nft.png\", // Accepts any URL or File type\n * },\n * ],\n * password: \"{{password}}\", // Password to be used for encryption\n * };\n *\n * return (\n * mintNft(nftData)}\n * >\n * Mint NFTs\n * \n * );\n * }\n * ```\n *\n * @param contract - Instance of a {@link DropContract}\n * @param onProgress - an optional callback that will be called with the progress of the upload\n * @returns Mutation object to lazy mint a batch of NFTs\n *\n * ```ts\n * const { mutateAsync, isLoading, error } = useDelayedRevealLazyMint(contract);\n * ```\n *\n * ### options\n * The mutation function takes an object as argument with below properties:\n *\n * #### metadatas\n * An array of metadata objects, representing the metadata of the NFTs to be lazy-minted. Each metadata object must conform to the [standard metadata properties](https://docs.opensea.io/docs/metadata-standards).\n *\n * #### password\n * The password used to encrypt the metadatas.\n *\n * __The password CANNOT be recovered once it is set. If you lose the password, you will not be able to reveal the metadata.__\n *\n * @twfeature ERC721Revealable | ERC1155Revealable\n * @delayedReveal\n */\nfunction useDelayedRevealLazyMint(contract, onProgress) {\n const activeChainId = useSDKChainId();\n const contractAddress = contract?.getAddress();\n const queryClient = useQueryClient();\n return useMutation(async data => {\n requiredParamInvariant(contract, \"contract is undefined\");\n let options;\n if (onProgress) {\n options = {\n onProgress\n };\n }\n const {\n erc721,\n erc1155\n } = getErcs(contract);\n if (erc721) {\n return await erc721.revealer.createDelayedRevealBatch(data.placeholder, data.metadatas, data.password, options);\n }\n if (erc1155) {\n return await erc1155.revealer.createDelayedRevealBatch(data.placeholder, data.metadatas, data.password, options);\n }\n invariant(false, \"contract is not an Erc721 or Erc1155\");\n }, {\n onSettled: () => invalidateContractAndBalances(queryClient, contractAddress, activeChainId)\n });\n}\n\n/**\n * Hook for revealing a batch of delayed reveal NFTs using [delayed reveal](https://portal.thirdweb.com/glossary/delayed-reveal).\n *\n * Available to use on contracts that implement the\n * [ERC721Revealable](https://portal.thirdweb.com/contracts/build/extensions/erc-721/ERC721Revealable)\n * or [ERC1155Revealable](https://portal.thirdweb.com/contracts/build/extensions/erc-1155/ERC1155Revealable)\n * interfaces.\n *\n * ```jsx\n * import { useRevealLazyMint } from \"@thirdweb-dev/react\";\n *\n * const { mutateAsync, isLoading, error } = useRevealLazyMint(contract);\n * ```\n *\n * @example\n * ```tsx\n * import {\n * useContract,\n * useRevealLazyMint,\n * Web3Button,\n * } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * // Contract must be an ERC-721 or ERC-1155 contract that implements the ERC721Revealable or ERC1155Revealable interface\n * const { contract } = useContract(contractAddress);\n * const {\n * mutateAsync: revealLazyMint,\n * isLoading,\n * error,\n * } = useRevealLazyMint(contract);\n *\n * return (\n * \n * revealLazyMint({\n * batchId: \"{{batch_id}}\", // ID of the batch to reveal (use useBatchesToReveal to get the batch IDs)\n * password: \"{{password}}\", // Password to reveal the batch\n * })\n * }\n * >\n * Reveal Lazy Mint\n * \n * );\n * }\n * ```\n *\n * @param contract - Instance of a `RevealableContract`\n * @twfeature ERC721Revealable | ERC1155Revealable\n * @delayedReveal\n */\nfunction useRevealLazyMint(contract) {\n const activeChainId = useSDKChainId();\n const contractAddress = contract?.getAddress();\n const queryClient = useQueryClient();\n return useMutation(async data => {\n requiredParamInvariant(contract, \"contract is undefined\");\n const {\n erc721,\n erc1155\n } = getErcs(contract);\n if (erc721) {\n return await erc721.revealer.reveal(data.batchId, data.password);\n }\n if (erc1155) {\n return await erc1155.revealer.reveal(data.batchId, data.password);\n }\n invariant(false, \"contract is not an Erc721 or Erc1155\");\n }, {\n onSettled: () => invalidateContractAndBalances(queryClient, contractAddress, activeChainId)\n });\n}\n\n/** **********************/\n/** READ HOOKS **/\n/** **********************/\n\n/**\n * Hook for getting a specific listing on a `Marketplace` contract.\n *\n * __This hook is only available for `Marketplace` contracts__\n *\n * If you are using [Marketplace V3](https://thirdweb.com/thirdweb.eth/MarketplaceV3),\n * use `useDirectListing` or `useEnglishAuction` instead.\n *\n * @example\n *\n * ```jsx\n * import { useContract, useListing } from \"@thirdweb-dev/react\";\n *\n * const listingId = 0;\n *\n * function App() {\n * const { contract } = useContract(contractAddress, \"marketplace\");\n * const { data, isLoading, error } = useListing(contract, listingId);\n * }\n * ```\n *\n *\n * @param contract - Instance of a marketplace contract\n * @param listingId - The listing id to check\n *\n * @returns\n * Query Result object that includes the desired listing.\n *\n * The hook's `data` property, once loaded, is an object containing the desired listing data.\n *\n * The exact shape of the object depends on the type of listing.\n *\n * For auctions, it will be a\n * `AuctionListing` object.\n * For direct listings, it will be a `DirectListing` object.\n *\n * ```jsx\n * AuctionListing | DirectListing | undefined;\n * ```\n *\n * You can use the shared `type` property to determine which type of listing is being returned.\n *\n * ```ts\n * interface AuctionListing {\n * // The id of the listing\n * id: string;\n *\n * // The address of the asset being listed.\n * assetContractAddress: string;\n *\n * // The ID of the token to list.\n * tokenId: BigNumberish;\n *\n * // The asset being listed.\n * asset: NFTMetadata;\n *\n * // The start time of the listing.\n * startTimeInEpochSeconds: BigNumberish;\n *\n * // Number of seconds until the auction expires.\n * endTimeInEpochSeconds: BigNumberish;\n *\n * // The quantity of tokens to include in the listing.\n * // For ERC721s, this value should always be 1 (and will be forced internally regardless of what is passed here).\n * quantity: BigNumberish;\n *\n * // The address of the currency to accept for the listing.\n * currencyContractAddress: string;\n *\n * // The reserve price is the minimum price that a bid must be in order to be accepted.\n * reservePrice: BigNumber;\n *\n * // The buyout price of the listing.\n * buyoutPrice: BigNumber;\n *\n * // The `CurrencyValue` of the buyout price listing.\n * // Useful for displaying the price information.\n * buyoutCurrencyValuePerToken: CurrencyValue;\n *\n * // The `CurrencyValue` of the reserve price.\n * // Useful for displaying the price information.\n * reservePriceCurrencyValuePerToken: CurrencyValue;\n *\n * // The address of the seller.\n * sellerAddress: string;\n *\n * // The type of listing.\n * type: ListingType.Auction;\n * }\n *\n * interface DirectListing {\n * // The id of the listing.\n * id: string;\n *\n * // The address of the asset being listed.\n * assetContractAddress: string;\n *\n * // The ID of the token to list.\n * tokenId: BigNumberish;\n *\n * // The asset being listed.\n * asset: NFTMetadata;\n *\n * // The start time of the listing.\n * startTimeInSeconds: BigNumberish;\n *\n * // Number of seconds until the listing expires.\n * secondsUntilEnd: BigNumberish;\n *\n * // The quantity of tokens to include in the listing.\n * // For ERC721s, this value should always be 1 (and will be forced internally regardless of what is passed here).\n * quantity: BigNumberish;\n *\n * // The address of the currency to accept for the listing.\n * currencyContractAddress: string;\n *\n * // The `CurrencyValue` of the listing. Useful for displaying the price information.\n * buyoutCurrencyValuePerToken: CurrencyValue;\n *\n * // The buyout price of the listing.\n * buyoutPrice: BigNumber;\n *\n * // The address of the seller.\n * sellerAddress: string;\n *\n * // The type of listing.\n * type: ListingType.Direct;\n * }\n * ```\n *\n * @marketplace\n */\nfunction useListing(contract, listingId) {\n const contractAddress = contract?.getAddress();\n return useQueryWithNetwork(cacheKeys.contract.marketplace.getListing(contractAddress, listingId), () => {\n requiredParamInvariant(contract, \"No Contract instance provided\");\n requiredParamInvariant(listingId, \"No listing id provided\");\n return contract.getListing(listingId);\n }, {\n enabled: !!contract,\n keepPreviousData: true\n });\n}\n\n/**\n * Hook to get a specific direct listing from a [Marketplace V3](https://thirdweb.com/thirdweb.eth/MarketplaceV3) contract.\n *\n * __This hook is only for [Marketplace V3](https://thirdweb.com/thirdweb.eth/MarketplaceV3) contracts.__\n *\n * For `Marketplace` contracts, use `useListing` instead.\n *\n * @example\n * ```jsx\n * import { useDirectListing, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress, \"marketplace-v3\");\n * const {\n * data: directListing,\n * isLoading,\n * error,\n * } = useDirectListing(contract, listingId);\n * }\n * ```\n *\n * @param contract - Instance of a marketplace v3 contract\n * @param listingId - The ID of the listing to get. If the listing is not found (or is not a direct listing), the `error` property will be set in the return value of the hook.\n *\n * @returns\n * The hook's data property, once loaded, is a `DirectListingV3` object, containing the following properties:\n *\n * ```ts\n * {\n * // The id of the listing.\n * id: string;\n * // The address of the creator of listing.\n * creatorAddress: string;\n * // The address of the asset being listed.\n * assetContractAddress: string;\n * // The ID of the token to list.\n * tokenId: string;\n * // The quantity of tokens to include in the listing.\n * // For ERC721s, this value should always be 1 (and will be forced internally regardless of what is passed here).\n * quantity: string;\n * // The address of the currency to accept for the listing.\n * currencyContractAddress: string;\n * // The `CurrencyValue` of the listing. Useful for displaying the price information.\n * currencyValuePerToken: CurrencyValue;\n * // The price to pay per unit of NFTs listed.\n * pricePerToken: string;\n * // The asset being listed.\n * asset: NFTMetadata;\n * // The start time of the listing.\n * startTimeInSeconds: number;\n * // The end time of the listing.\n * endTimeInSeconds: number;\n * // Whether the listing is reserved to be bought from a specific set of buyers.\n * isReservedListing: boolean;\n * // Whether the listing is CREATED, COMPLETED, or CANCELLED.\n * status: Status;\n * }\n * ```\n * @twfeature DirectListings\n * @marketplace\n */\nfunction useDirectListing(contract, listingId) {\n const contractAddress = contract?.getAddress();\n return useQueryWithNetwork(cacheKeys.contract.marketplace.directListings.getListing(contractAddress, listingId), () => {\n requiredParamInvariant(contract, \"No Contract instance provided\");\n requiredParamInvariant(listingId, \"No listing id provided\");\n return contract.directListings.getListing(listingId);\n }, {\n enabled: !!contract,\n keepPreviousData: true\n });\n}\n\n/**\n * Hook to get an english auction listing from a [Marketplace V3](https://thirdweb.com/thirdweb.eth/MarketplaceV3) contract.\n *\n * **Note: This hook is only for [Marketplace V3](https://thirdweb.com/thirdweb.eth/MarketplaceV3) contracts.**\n *\n * For `Marketplace`\n * contracts, use `useListing` instead.\n *\n * @example\n * ```jsx\n * import { useEnglishAuction, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress, \"marketplace-v3\");\n * const {\n * data: englishAuction,\n * isLoading,\n * error,\n * } = useEnglishAuction(contract, listingId);\n * }\n * ```\n *\n * @param contract - Instance of a marketplace v3 contract\n * @param auctionId -\n * the auction id to check. If the listing with this ID cannot be found (or is not an auction), the `error` property will be set.\n *\n * @returns\n * The hook's `data` property, once loaded, will be an `EnglishAuction` object, containing the following properties:\n *\n * ```ts\n * {\n * // The id of the auction\n * id: string;\n * // The address of the creator of auction.\n * creatorAddress: string;\n * // The address of the asset being auctioned.\n * assetContractAddress: string;\n * // The ID of the token to auction.\n * tokenId: string;\n * // The quantity of tokens to include in the auction.\n * // For ERC721s, this value should always be 1 (and will be forced internally regardless of what is passed here).\n * quantity: string;\n * // The address of the currency to accept for the auction.\n * currencyContractAddress: string;\n * // The minimum price that a bid must be in order to be accepted.\n * minimumBidAmount: string;\n * // The `CurrencyValue` of the minimum bid amount.\n * // Useful for displaying the price information.\n * minimumBidCurrencyValue: CurrencyValue;\n * // The buyout price of the auction.\n * buyoutBidAmount: string;\n * // The `CurrencyValue` of the buyout price.\n * // Useful for displaying the price information.\n * buyoutCurrencyValue: CurrencyValue;\n * // This is a buffer e.g. x seconds.\n * // If a new winning bid is made less than x seconds before expirationTimestamp, the\n * // expirationTimestamp is increased by x seconds.\n * timeBufferInSeconds: number;\n * // This is a buffer in basis points e.g. x%.\n * // To be considered as a new winning bid, a bid must be at least x% greater than\n * // the current winning bid.\n * bidBufferBps: number;\n * // The start time of the auction.\n * startTimeInSeconds: number;\n * // The end time of the auction.\n * endTimeInSeconds: number;\n * // The asset being auctioned.\n * asset: NFTMetadata;\n * // Whether the listing is CREATED, COMPLETED, or CANCELLED.\n * status: Status;\n * }\n * ```\n *\n * @twfeature EnglishAuctions\n * @marketplace\n */\nfunction useEnglishAuction(contract, auctionId) {\n const contractAddress = contract?.getAddress();\n return useQueryWithNetwork(cacheKeys.contract.marketplace.englishAuctions.getAuction(contractAddress, auctionId), () => {\n requiredParamInvariant(contract, \"No Contract instance provided\");\n requiredParamInvariant(auctionId, \"No auction id provided\");\n return contract.englishAuctions.getAuction(auctionId);\n }, {\n enabled: !!contract,\n keepPreviousData: true\n });\n}\n\n/**\n * Hook for getting all listings (including expired ones) from a `Marketplace` contract.\n *\n * __This hook is only available for `Marketplace` contracts__\n *\n * If you are using [Marketplace V3](https://thirdweb.com/thirdweb.eth/MarketplaceV3),\n * use `useDirectListings` or `useEnglishAuctions` instead.\n *\n * @example\n * ```jsx\n * import { useContract, useListings } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress, \"marketplace\");\n * const { data, isLoading, error } = useListings(contract);\n * }\n * ```\n *\n * @param contract - Instance of a marketplace contract\n *\n * @param filter - filter to pass to the query for the sake of pagination & filtering\n * ```jsx\n * import { useContract, useListings } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress, \"marketplace\");\n * const { data, isLoading, error } = useListings(\n * contract,\n * {\n * count: 100, // number of listings to fetch\n * offeror: \"{{offeror_address}}\", // only show listings with offers from this address\n * seller: \"{{seller_address}}\", // only show listings where this address is the seller\n * start: 0, // start at this listing index (pagination)\n * tokenContract: \"{{token_contract_address}}\", // only show listings from this collection\n * tokenId: \"{{token_id}}\", // only show listings for this token\n * },\n * );\n * }\n * ```\n *\n * @returns Query result object that includes an array of listings\n *\n * The hook's `data` property, once loaded, is an array of listing objects.\n *\n * The exact shape of each object depends on the type of listing.\n *\n * For auctions, it will be a\n * `AuctionListing` object.\n * For direct listings, it will be a `DirectListing` object.\n *\n * ```ts\n * (AuctionListing | DirectListing)[] | undefined;\n * ```\n *\n * You can use the shared `type` property to determine which type of listing is being returned.\n *\n * ```ts\n * interface AuctionListing {\n *\n * // The id of the listing\n * id: string;\n *\n * // The address of the asset being listed.\n * assetContractAddress: string;\n *\n * // The ID of the token to list.\n * tokenId: BigNumberish;\n *\n * // The asset being listed.\n * asset: NFTMetadata;\n *\n * // The start time of the listing.\n * startTimeInEpochSeconds: BigNumberish;\n *\n * // Number of seconds until the auction expires.\n * endTimeInEpochSeconds: BigNumberish;\n *\n * // The quantity of tokens to include in the listing.\n * // For ERC721s, this value should always be 1 (and will be forced internally regardless of what is passed here).\n * quantity: BigNumberish;\n *\n * // The address of the currency to accept for the listing.\n * currencyContractAddress: string;\n *\n * // The reserve price is the minimum price that a bid must be in order to be accepted.\n * reservePrice: BigNumber;\n *\n * // The buyout price of the listing.\n * buyoutPrice: BigNumber;\n *\n * // The `CurrencyValue` of the buyout price listing.\n * // Useful for displaying the price information.\n * buyoutCurrencyValuePerToken: CurrencyValue;\n *\n * // The `CurrencyValue` of the reserve price.\n * // Useful for displaying the price information.\n * reservePriceCurrencyValuePerToken: CurrencyValue;\n *\n * // The address of the seller.\n * sellerAddress: string;\n *\n * // type of listing\n * type: ListingType.Auction;\n * }\n *\n * interface DirectListing {\n *\n * // The id of the listing.\n * id: string;\n *\n * // The address of the asset being listed.\n * assetContractAddress: string;\n *\n * // The ID of the token to list.\n * tokenId: BigNumberish;\n *\n * // The asset being listed.\n * asset: NFTMetadata;\n *\n * // The start time of the listing.\n * startTimeInSeconds: BigNumberish;\n *\n * // Number of seconds until the listing expires.\n * secondsUntilEnd: BigNumberish;\n *\n * // The quantity of tokens to include in the listing.\n * // For ERC721s, this value should always be 1 (and will be forced internally regardless of what is passed here).\n * quantity: BigNumberish;\n *\n * // The address of the currency to accept for the listing.\n * currencyContractAddress: string;\n *\n * // The `CurrencyValue` of the listing. Useful for displaying the price information.\n * buyoutCurrencyValuePerToken: CurrencyValue;\n *\n * // The buyout price of the listing.\n * buyoutPrice: BigNumber;\n *\n * // The address of the seller.\n * sellerAddress: string;\n *\n * // type of listing\n * type: ListingType.Direct;\n * ```\n *\n * @marketplace\n */\nfunction useListings(contract, filter) {\n const contractAddress = contract?.getAddress();\n return useQueryWithNetwork(cacheKeys.contract.marketplace.getAllListings(contractAddress, filter), () => {\n requiredParamInvariant(contract, \"No Contract instance provided\");\n return contract.getAllListings(filter);\n }, {\n enabled: !!contract,\n keepPreviousData: true\n });\n}\n\n/**\n * Hook to get all the direct listings from a [Marketplace V3](https://thirdweb.com/thirdweb.eth/MarketplaceV3) contract.\n *\n * __This hook is only for [Marketplace V3](https://thirdweb.com/thirdweb.eth/MarketplaceV3) contracts.__\n *\n * For `Marketplace` contracts, use `useListings` instead.\n *\n * @example\n * ```jsx\n * import { useDirectListings, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress, \"marketplace-v3\");\n * const {\n * data: directListings,\n * isLoading,\n * error,\n * } = useDirectListings(contract);\n * }\n * ```\n *\n *\n * @param contract - Instance of a `MarketplaceV3` contract\n *\n * @param filter -\n * filter to pass to the query for the sake of pagination & filtering\n *\n * ```tsx\n * import { useDirectListings, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress, \"marketplace-v3\");\n * const {\n * data: directListings,\n * isLoading,\n * error,\n * } = useDirectListings(\n * contract,\n * {\n * count: 100, // Number of listings to fetch\n * offeror: \"{{offeror_address}}\", // Has offers from this address\n * seller: \"{{seller_address}}\", // Being sold by this address\n * start: 0, // Start from this index (pagination)\n * tokenContract: \"{{token_contract_address}}\", // Only show listings for NFTs from this collection\n * tokenId: \"{{token_id}}\", // Only show listings with this NFT ID\n * },\n * );\n * }\n * ```\n *\n * @returns\n * The hook's data property, once loaded, is a `DirectListingV3` object, containing the following properties:\n *\n * ```ts\n * {\n * // The id of the listing.\n * id: string;\n * // The address of the creator of listing.\n * creatorAddress: string;\n * // The address of the asset being listed.\n * assetContractAddress: string;\n * // The ID of the token to list.\n * tokenId: string;\n * // The quantity of tokens to include in the listing.\n * // For ERC721s, this value should always be 1 (and will be forced internally regardless of what is passed here).\n * quantity: string;\n * // The address of the currency to accept for the listing.\n * currencyContractAddress: string;\n * // The `CurrencyValue` of the listing. Useful for displaying the price information.\n * currencyValuePerToken: CurrencyValue;\n * // The price to pay per unit of NFTs listed.\n * pricePerToken: string;\n * // The asset being listed.\n * asset: NFTMetadata;\n * // The start time of the listing.\n * startTimeInSeconds: number;\n * // The end time of the listing.\n * endTimeInSeconds: number;\n * // Whether the listing is reserved to be bought from a specific set of buyers.\n * isReservedListing: boolean;\n * // Whether the listing is CREATED, COMPLETED, or CANCELLED.\n * status: Status;\n * }\n * ```\n *\n * @twfeature DirectListings\n * @marketplace\n */\nfunction useDirectListings(contract, filter) {\n const contractAddress = contract?.getAddress();\n return useQueryWithNetwork(cacheKeys.contract.marketplace.directListings.getAll(contractAddress, filter), () => {\n requiredParamInvariant(contract, \"No Contract instance provided\");\n return contract.directListings.getAll(filter);\n }, {\n enabled: !!contract,\n keepPreviousData: true\n });\n}\n\n/**\n * Hook to get a list of valid direct listings from a [Marketplace V3](https://thirdweb.com/thirdweb.eth/MarketplaceV3) contract.\n *\n * A listing is considered valid if the:\n *\n * - Seller still owns the NFT\n * - Listing has not expired (time is before `endTimeInSeconds`)\n * - Listing has not been canceled\n * - Listing has not been bought out (all `quantity` of the NFTs have not been purchased)\n *\n *\n * **Note: This hook is only for [Marketplace V3](https://thirdweb.com/thirdweb.eth/MarketplaceV3) contracts.**\n *\n * For `Marketplace` contracts, use `useActiveListings` instead.\n *\n * @example\n * ```jsx\n * import { useValidDirectListings, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress, \"marketplace-v3\");\n * const {\n * data: directListings,\n * isLoading,\n * error,\n * } = useValidDirectListings(contract);\n * }\n * ```\n *\n * @param contract - Instance of a marketplace v3 contract\n *\n * @param filter - filter to pass to the query for the sake of pagination & filtering\n * ```jsx\n * import { useValidDirectListings, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress, \"marketplace-v3\");\n * const {\n * data: directListings,\n * isLoading,\n * error,\n * } = useValidDirectListings(\n * contract,\n * {\n * count: 100, // Number of listings to fetch\n * offeror: \"{{offeror_address}}\", // Has offers from this address\n * seller: \"{{seller_address}}\", // Being sold by this address\n * start: 0, // Start from this index (pagination)\n * tokenContract: \"{{token_contract_address}}\", // Only show NFTs from this collection\n * tokenId: \"{{token_id}}\", // Only show NFTs with this token ID\n * },\n * );\n * }\n * ```\n *\n * @returns\n * The hook's `data` property, once loaded, is an array of `DirectListingV3` objects, each containing the following properties:\n *\n * ```ts\n * Array<{\n * // The id of the listing.\n * id: string;\n *\n * // The address of the creator of listing.\n * creatorAddress: string;\n *\n * // The address of the asset being listed.\n * assetContractAddress: string;\n *\n * // The ID of the token to list.\n * tokenId: string;\n *\n * // The quantity of tokens to include in the listing.\n * // For ERC721s, this value should always be 1 (and will be forced internally regardless of what is passed here).\n * quantity: string;\n *\n * // The address of the currency to accept for the listing.\n * currencyContractAddress: string;\n *\n * // The `CurrencyValue` of the listing. Useful for displaying the price information.\n * currencyValuePerToken: CurrencyValue;\n *\n * // The price to pay per unit of NFTs listed.\n * pricePerToken: string;\n *\n * // The asset being listed.\n * asset: NFTMetadata;\n *\n * // The start time of the listing.\n * startTimeInSeconds: number;\n *\n * // The end time of the listing.\n * endTimeInSeconds: number;\n *\n * // Whether the listing is reserved to be bought from a specific set of buyers.\n * isReservedListing: boolean;\n *\n * // Whether the listing is CREATED, COMPLETED, or CANCELLED.\n * status: Status;\n * }>;\n * ```\n *\n * @twfeature DirectListings\n * @marketplace\n */\nfunction useValidDirectListings(contract, filter) {\n const contractAddress = contract?.getAddress();\n return useQueryWithNetwork(cacheKeys.contract.marketplace.directListings.getAllValid(contractAddress, filter), () => {\n requiredParamInvariant(contract, \"No Contract instance provided\");\n return contract.directListings.getAllValid(filter);\n }, {\n enabled: !!contract,\n keepPreviousData: true\n });\n}\n\n/**\n * Hook to get a list of all English auctions from a [Marketplace V3](https://thirdweb.com/thirdweb.eth/MarketplaceV3) contract.\n *\n * **Note: This hook is only for [Marketplace V3](https://thirdweb.com/thirdweb.eth/MarketplaceV3) contracts.**\n *\n * For `Marketplace` contracts, use `useListings` instead.\n *\n * @example\n *\n * ```jsx\n * import { useEnglishAuctions, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress, \"marketplace-v3\");\n * const {\n * data: englishAuctions,\n * isLoading,\n * error,\n * } = useEnglishAuctions(contract);\n * }\n * ```\n *\n * @param contract - Instance of a marketplace v3 contract\n *\n * @param filter -\n * filter to pass to the query for the sake of pagination & filtering\n *\n * ```ts\n * import { useEnglishAuctions, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress, \"marketplace-v3\");\n * const {\n * data: englishAuctions,\n * isLoading,\n * error,\n * } = useEnglishAuctions(\n * contract,\n * {\n * count: 100, // Number of auctions to fetch\n * offeror: \"{{offeror_address}}\", // Has offers from this address\n * seller: \"{{seller_address}}\", // Being sold by this address\n * start: 0, // Start from this index (pagination)\n * tokenContract: \"{{token_contract_address}}\", // Only show NFTs from this collection\n * tokenId: \"{{token_id}}\", // Only show NFTs with this ID\n * },\n * );\n * }\n * ```\n *\n * @returns\n * The hook's data property, once loaded, is an array of EnglishAuction objects, each containing the following properties:\n *\n * ```ts\n * Array<{\n * // The id of the auction\n * id: string;\n *\n * // The address of the creator of auction.\n * creatorAddress: string;\n *\n * // The address of the asset being auctioned.\n * assetContractAddress: string;\n *\n * // The ID of the token to auction.\n * tokenId: string;\n *\n * // The quantity of tokens to include in the auction.\n * // For ERC721s, this value should always be 1 (and will be forced internally regardless of what is passed here).\n * quantity: string;\n *\n * // The address of the currency to accept for the auction.\n * currencyContractAddress: string;\n *\n * // The minimum price that a bid must be in order to be accepted.\n * minimumBidAmount: string;\n *\n * // The `CurrencyValue` of the minimum bid amount.\n * // Useful for displaying the price information.\n * minimumBidCurrencyValue: CurrencyValue;\n *\n * // The buyout price of the auction.\n * buyoutBidAmount: string;\n *\n * // The `CurrencyValue` of the buyout price.\n * // Useful for displaying the price information.\n * buyoutCurrencyValue: CurrencyValue;\n *\n * // This is a buffer e.g. x seconds.\n * // If a new winning bid is made less than x seconds before expirationTimestamp, the\n * // expirationTimestamp is increased by x seconds.\n * timeBufferInSeconds: number;\n *\n * // This is a buffer in basis points e.g. x%.\n * // To be considered as a new winning bid, a bid must be at least x% greater than\n * // the current winning bid.\n * bidBufferBps: number;\n *\n * // The start time of the auction.\n * startTimeInSeconds: number;\n *\n * // The end time of the auction.\n * endTimeInSeconds: number;\n *\n * // The asset being auctioned.\n * asset: NFTMetadata;\n *\n * // Whether the listing is CREATED, COMPLETED, or CANCELLED.\n * status: Status;\n * }>;\n * ```\n * @twfeature EnglishAuctions\n * @marketplace\n */\nfunction useEnglishAuctions(contract, filter) {\n const contractAddress = contract?.getAddress();\n return useQueryWithNetwork(cacheKeys.contract.marketplace.englishAuctions.getAll(contractAddress, filter), () => {\n requiredParamInvariant(contract, \"No Contract instance provided\");\n return contract.englishAuctions.getAll(filter);\n }, {\n enabled: !!contract,\n keepPreviousData: true\n });\n}\n\n/**\n * Hook to get all valid English auctions from a [Marketplace V3](https://thirdweb.com/thirdweb.eth/MarketplaceV3) contract.\n *\n * A listing is considered valid if the:\n *\n * - Auction has not expired (i.e. current time is before the end time of the auction)\n * - Auction has not been canceled\n * - Auction has not been bought out (all quantity has been sold)\n *\n * __This hook is only for [Marketplace V3](https://thirdweb.com/thirdweb.eth/MarketplaceV3) contracts.__\n *\n * For [Marketplace](https://thirdweb.com/thirdweb.eth/Marketplace)\n * contracts, use [useActiveListings](/react/react.useactivelistings) instead.\n *\n * @example\n *\n * ```jsx\n * import { useValidEnglishAuctions, useContract } from \"@thirdweb-dev/react\";\n *\n * // Your smart contract address\n * const contractAddress = \"{{contract_address}}\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress, \"marketplace-v3\");\n * const {\n * data: englishAuctions,\n * isLoading,\n * error,\n * } = useValidEnglishAuctions(contract);\n * }\n * ```\n *\n * @param contract - Instance of a marketplace v3 contract\n *\n * @param filter -\n * The `filter` object allows you to filter the auctions returned by the hook.\n *\n * ```jsx\n * import { useEnglishAuctions, useContract } from \"@thirdweb-dev/react\";\n *\n * // Your smart contract address\n * const contractAddress = \"{{contract_address}}\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress, \"marketplace-v3\");\n * const {\n * data: englishAuctions,\n * isLoading,\n * error,\n * } = useEnglishAuctions(\n * contract,\n * // highlight-start\n * {\n * count: 100, // Number of auctions to fetch\n * offeror: \"{{offeror_address}}\", // Has offers from this address\n * seller: \"{{seller_address}}\", // Being sold by this address\n * start: 0, // Start from this index (pagination)\n * tokenContract: \"{{token_contract_address}}\", // Only show NFTs from this collection\n * tokenId: \"{{token_id}}\", // Only show NFTs with this ID\n * },\n * // highlight-end\n * );\n * }\n * ```\n *\n * @returns A Query Result object that includes an array of english auctions\n * The hook's `data` property, once loaded, is an\n * array of `EnglishAuction` objects, each containing the following properties:\n *\n * ```ts\n * Array<{\n * // The id of the auction\n * id: string;\n *\n * // The address of the creator of auction.\n * creatorAddress: string;\n *\n * // The address of the asset being auctioned.\n * assetContractAddress: string;\n *\n * // The ID of the token to auction.\n * tokenId: string;\n *\n * // The quantity of tokens to include in the auction.\n * // For ERC721s, this value should always be 1 (and will be forced internally regardless of what is passed here).\n * quantity: string;\n *\n * // The address of the currency to accept for the auction.\n * currencyContractAddress: string;\n *\n * // The minimum price that a bid must be in order to be accepted.\n * minimumBidAmount: string;\n *\n * // The `CurrencyValue` of the minimum bid amount.\n * // Useful for displaying the price information.\n * minimumBidCurrencyValue: CurrencyValue;\n *\n * // The buyout price of the auction.\n * buyoutBidAmount: string;\n *\n * // The `CurrencyValue` of the buyout price.\n * // Useful for displaying the price information.\n * buyoutCurrencyValue: CurrencyValue;\n *\n * // This is a buffer e.g. x seconds.\n * // If a new winning bid is made less than x seconds before expirationTimestamp, the\n * // expirationTimestamp is increased by x seconds.\n * timeBufferInSeconds: number;\n *\n * // This is a buffer in basis points e.g. x%.\n * // To be considered as a new winning bid, a bid must be at least x% greater than\n * // the current winning bid.\n * bidBufferBps: number;\n *\n * // The start time of the auction.\n * startTimeInSeconds: number;\n *\n * // The end time of the auction.\n * endTimeInSeconds: number;\n *\n * // The asset being auctioned.\n * asset: NFTMetadata;\n *\n * // Whether the listing is CREATED, COMPLETED, or CANCELLED.\n * status: Status;\n * }>;\n * ```\n *\n * @twfeature EnglishAuctions\n * @marketplace\n */\nfunction useValidEnglishAuctions(contract, filter) {\n const contractAddress = contract?.getAddress();\n return useQueryWithNetwork(cacheKeys.contract.marketplace.englishAuctions.getAllValid(contractAddress, filter), () => {\n requiredParamInvariant(contract, \"No Contract instance provided\");\n return contract.englishAuctions.getAllValid(filter);\n }, {\n enabled: !!contract,\n keepPreviousData: true\n });\n}\n\n/**\n * Hook for getting the total number of listings on a `Marketplace` contract.\n *\n * __This hook is only available for `Marketplace` contracts__\n *\n * If you are using [Marketplace V3](https://thirdweb.com/thirdweb.eth/MarketplaceV3),\n * use `useDirectListingsCount` or `useEnglishAuctionsCount` instead.\n *\n * @example\n * ```jsx\n * import { useContract, useListingsCount } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress, \"marketplace\");\n * const { data: listingsCount, isLoading, error } = useListingsCount(contract);\n * }\n * ```\n *\n * @param contract - Instance of a marketplace contract\n *\n * @returns\n * The hook's `data` property, once loaded, is a `BigNumber` containing the total number of listings on the contract.\n *\n * @marketplace\n */\nfunction useListingsCount(contract) {\n const contractAddress = contract?.getAddress();\n return useQueryWithNetwork(cacheKeys.contract.marketplace.getTotalCount(contractAddress), () => {\n requiredParamInvariant(contract, \"No Contract instance provided\");\n return contract.getTotalCount();\n }, {\n enabled: !!contract\n });\n}\n\n/**\n * Hook to get the total number of direct listings on a [Marketplace V3](https://thirdweb.com/thirdweb.eth/MarketplaceV3) contract.\n *\n * __This hook is only for [Marketplace V3](https://thirdweb.com/thirdweb.eth/MarketplaceV3) contracts.__\n *\n * For `Marketplace` contracts, use `useListingsCount` instead.\n *\n * @example\n * ```jsx\n * import { useDirectListingsCount, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress, \"marketplace-v3\");\n * const {\n * data: listingsCount,\n * isLoading,\n * error,\n * } = useDirectListingsCount(contract);\n * }\n * ```\n *\n * @param contract - Instance of a `MarketplaceV3` contract\n *\n * @returns\n * The hook's `data` property, once loaded, is a `BigNumber` containing the number of direct listings on the Marketplace V3 contract.\n *\n * @twfeature DirectListings\n * @marketplace\n */\nfunction useDirectListingsCount(contract) {\n const contractAddress = contract?.getAddress();\n return useQueryWithNetwork(cacheKeys.contract.marketplace.directListings.getTotalCount(contractAddress), () => {\n requiredParamInvariant(contract, \"No Contract instance provided\");\n return contract.directListings.getTotalCount();\n }, {\n enabled: !!contract\n });\n}\n\n/**\n * Hook to get the total number of direct listings on a [Marketplace V3](https://thirdweb.com/thirdweb.eth/MarketplaceV3) contract.\n *\n * __This hook is only for [Marketplace V3](https://thirdweb.com/thirdweb.eth/MarketplaceV3) contracts.__\n *\n * For `Marketplace` contracts, use `useListingsCount` instead.\n *\n * @example\n * ```jsx\n * import { useEnglishAuctionsCount, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress, \"marketplace-v3\");\n * const {\n * data: englishAuctionsCount,\n * isLoading,\n * error,\n * } = useEnglishAuctionsCount(contract);\n * }\n * ```\n *\n * @param contract - Instance of a `MarketplaceV3` contract\n *\n * @returns\n * The hook's `data` property, once loaded, is a `BigNumber` representing the number of direct listings on the Marketplace V3 contract.\n *\n * @twfeature EnglishAuctions\n * @marketplace\n */\nfunction useEnglishAuctionsCount(contract) {\n const contractAddress = contract?.getAddress();\n return useQueryWithNetwork(cacheKeys.contract.marketplace.englishAuctions.getTotalCount(contractAddress), () => {\n requiredParamInvariant(contract, \"No Contract instance provided\");\n return contract.englishAuctions.getTotalCount();\n }, {\n enabled: !!contract\n });\n}\n\n/**\n * Hook for fetching all active listings from a `Marketplace` contract.\n *\n * __Note: This hook is only for Marketplace contracts. For Marketplace V3 contracts, use `useValidDirectListings` or `useValidEnglishAuctions` instead__\n *\n *\n * @example\n * ```javascript\n * import { useActiveListings, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress, \"marketplace\");\n * const { data, isLoading, error } = useActiveListings(contract);\n * }\n * ```\n *\n * @param contract - Instance of a `Marketplace` contract\n * @param filter -\n * By default, the hook returns all active listings from the marketplace.\n *\n * You can filter the results by providing a filter object as the second argument for the sake of pagination & filtering\n *\n * ```tsx\n * import { useActiveListings, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress, \"marketplace\");\n *\n * const { data, isLoading, error } = useActiveListings(\n * contract,\n * {\n * seller: \"{{wallet_address}}\", // Filter by seller\n * tokenContract: \"{{contract_address}}\", // Filter by token contract\n * offeror: \"{{wallet_address}}\", // Filter by offeror\n * tokenId: \"{{token_id}}\", // Filter by token ID\n * count: 10, // Limit the number of results\n * start: 0, // Start from the nth result (useful for pagination)\n * },\n * );\n * }\n * ```\n *\n * @returns\n * The hook's `data` property, once loaded, returns an array containing both `AuctionListing` and `DirectListing` objects.\n *\n * Use the `type` property to determine which type of listing each one is.\n *\n * #### AuctionListing\n *\n * ```ts\n * {\n * // The id of the listing\n * id: string;\n *\n * // The address of the asset being listed.\n * assetContractAddress: string;\n *\n * // The ID of the token to list.\n * tokenId: BigNumberish;\n *\n * // The asset being listed.\n * asset: NFTMetadata;\n *\n * // The start time of the listing.\n * startTimeInEpochSeconds: BigNumberish;\n *\n * // Number of seconds until the auction expires.\n * endTimeInEpochSeconds: BigNumberish;\n *\n * // The quantity of tokens in the listing.\n * // For ERC721s, this value should always be 1\n * quantity: BigNumberish;\n *\n * // The address of the currency to accept for the listing.\n * currencyContractAddress: string;\n *\n * // The reserve price is the minimum price that a bid must be in order to be accepted.\n * reservePrice: BigNumber;\n *\n * // The buyout price of the listing.\n * buyoutPrice: BigNumber;\n *\n * // The `CurrencyValue` of the buyout price listing.\n * // Useful for displaying the price information.\n * buyoutCurrencyValuePerToken: CurrencyValue;\n *\n * // The `CurrencyValue` of the reserve price.\n * // Useful for displaying the price information.\n * reservePriceCurrencyValuePerToken: CurrencyValue;\n *\n * // The address of the seller.\n * sellerAddress: string;\n *\n * // Listing type Enum\n * type: ListingType.Auction;\n * }\n * ```\n *\n * ### DirectListing\n *\n * ```ts\n * {\n * // The id of the listing.\n * id: string;\n *\n * //The address of the asset being listed.\n * assetContractAddress: string;\n *\n * // The ID of the token to list.\n * tokenId: BigNumberish;\n *\n * //The asset being listed.\n * asset: NFTMetadata;\n *\n * //The start time of the listing.\n * startTimeInSeconds: BigNumberish;\n *\n * //Number of seconds until the listing expires.\n * secondsUntilEnd: BigNumberish;\n *\n * // The quantity of tokens to include in the listing.\n * // For ERC721s, this value should always be 1\n * quantity: BigNumberish;\n *\n * // The address of the currency to accept for the listing.\n * currencyContractAddress: string;\n *\n * // The `CurrencyValue` of the listing. Useful for displaying the price information.\n * buyoutCurrencyValuePerToken: CurrencyValue;\n *\n * // The buyout price of the listing.\n * buyoutPrice: BigNumber;\n *\n * // The address of the seller.\n * sellerAddress: string;\n *\n * // Listing type Enum\n * type: ListingType.Direct;\n * }\n * ```\n *\n * @marketplace\n */\nfunction useActiveListings(contract, filter) {\n const contractAddress = contract?.getAddress();\n return useQueryWithNetwork(cacheKeys.contract.marketplace.getActiveListings(contractAddress, filter), () => {\n requiredParamInvariant(contract, \"No Contract instance provided\");\n return contract.getActiveListings(filter);\n }, {\n enabled: !!contract,\n keepPreviousData: true\n });\n}\n\n/**\n * Hook for getting the winning bid of an auction listing on a `Marketplace` contract.\n *\n * @example\n *\n * ```jsx\n * import { useContract, useWinningBid } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress, \"marketplace\");\n * const { data, isLoading, error } = useWinningBid(contract, listingId);\n * }\n * ```\n *\n * @param contract - Instance of a marketplace contract\n *\n * @param listingId -\n * The ID of the listing to get the winning bid for.\n * If the listing cannot be found, is not an auction listing, or is not active, the `error` property will be set.\n *\n * @returns\n * Query result object that includes the `Offer` that is winning the auction\n * The hook's `data` property, once loaded, is an object of type `Offer`, or `undefined` if no winning bid exists.\n *\n * ```ts\n * {\n * // The id of the listing.\n * listingId: BigNumberish;\n *\n * // The address of the buyer who made the offer.\n * buyerAddress: string;\n *\n * // The quantity of tokens to be bought.\n * quantityDesired: BigNumberish;\n *\n * // The amount of coins offered per token.\n * pricePerToken: BigNumber;\n *\n * // The `CurrencyValue` of the listing. Useful for displaying the price information.\n * currencyValue: CurrencyValue;\n *\n * // The currency contract address of the offer token.\n * currencyContractAddress: string;\n * } | undefined;\n * ```\n *\n * @marketplace\n */\nfunction useWinningBid(contract, listingId) {\n const contractAddress = contract?.getAddress();\n return useQueryWithNetwork(cacheKeys.contract.marketplace.auction.getWinningBid(contractAddress, listingId), () => {\n requiredParamInvariant(contract, \"No Contract instance provided\");\n requiredParamInvariant(listingId, \"No listing id provided\");\n invariant(contract.auction.getWinningBid, \"contract does not support auction.getWinningBid\");\n return contract.auction.getWinningBid(listingId);\n }, {\n enabled: !!contract && listingId !== undefined\n });\n}\n\n/**\n * Hook to get the winning bid for an English auction listing from a\n * [Marketplace V3](https://thirdweb.com/thirdweb.eth/MarketplaceV3) contract.\n *\n * @example\n * ```jsx\n * import { useEnglishAuctionWinningBid, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress, \"marketplace-v3\");\n * const {\n * data: winningBid,\n * isLoading,\n * error,\n * } = useEnglishAuctionWinningBid(contract, listingId);\n * }\n * ```\n *\n * @param contract - Instance of a marketplace contract\n *\n * @param auctionId - The auction id to check\n * If the listing cannot be found, or is not an English auction, the `error` property will be set.\n *\n * @returns\n * If there are no bids, the `data` property will be `undefined`. Use the `isLoading` property to differentiate between\n * the loading state and the no bids state.\n *\n * If there is a bid, the hook's `data` property, once loaded, will be an object of type `Bid`, containing the following properties:\n *\n * ```ts\n * {\n * // The id of the auction.\n * auctionId: string;\n * // The address of the buyer who made the offer.\n * bidderAddress: string;\n * // The currency contract address of the offer token.\n * currencyContractAddress: string;\n * // The amount of coins offered per token.\n * bidAmount: string;\n * // The `CurrencyValue` of the listing. Useful for displaying the price information.\n * bidAmountCurrencyValue: {\n * symbol: string;\n * value: BigNumber;\n * name: string;\n * decimals: number;\n * displayValue: string;\n * }\n * }\n * ```\n *\n * @twfeature EnglishAuctions\n * @marketplace\n */\nfunction useEnglishAuctionWinningBid(contract, auctionId) {\n const contractAddress = contract?.getAddress();\n return useQueryWithNetwork(cacheKeys.contract.marketplace.englishAuctions.getWinningBid(contractAddress, auctionId), () => {\n requiredParamInvariant(contract, \"No Contract instance provided\");\n requiredParamInvariant(auctionId, \"No auction id provided\");\n invariant(contract.englishAuctions.getWinningBid, \"contract does not support englishAuctions.getWinningBid\");\n return contract.englishAuctions.getWinningBid(auctionId);\n }, {\n enabled: !!contract && auctionId !== undefined\n });\n}\n\n/**\n * Hook for getting the winner of an auction (or english auction) on a `Marketplace` or [MarketplaceV3](https://thirdweb.com/thirdweb.eth/MarketplaceV3) contract.\n *\n * @example\n * ```javascript\n * import { useAuctionWinner, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress, \"marketplace\");\n * const { data, isLoading, error } = useAuctionWinner(\n * contract,\n * listingId, // The listing id of the item that you want to get the auction winner for\n * );\n * }\n * ```\n *\n * @param contract - Instance of a `Marketplace` or `MarketplaceV3` contract\n *\n * @param listingId -\n * The listing ID of the item that you want to get the auction winner for.\n *\n * The listing must be an auction (or english auction) listing, the hook will populate the error property if it is not.\n *\n * @returns\n * The hook's `data` property, once loaded, contains a `string` representing the address of the auction winner, or `undefined` if there is no winner.\n *\n * @twfeature EnglishAuctions\n * @marketplace\n */\nfunction useAuctionWinner(contract, listingId) {\n const contractAddress = contract?.getAddress();\n return useQueryWithNetwork(cacheKeys.contract.marketplace.auction.getWinner(contractAddress, listingId), () => {\n requiredParamInvariant(contract, \"No Contract instance provided\");\n requiredParamInvariant(listingId, \"No listing id provided\");\n const isV1 = isMarketplaceV1(contract);\n if (isV1) {\n invariant(contract.auction.getWinner, \"contract does not support auction.getWinner\");\n return contract.auction.getWinner(listingId);\n } else if (!isV1) {\n invariant(contract.englishAuctions.getWinner, \"contract does not support englishAuctions.getWinner\");\n return contract.englishAuctions.getWinner(listingId);\n }\n invariant(false, \"Contract is not a valid marketplace contract\");\n }, {\n enabled: !!contract && listingId !== undefined\n });\n}\n\n/**\n * Hook for determining the current bid buffer on a `Marketplace` or [Marketplace V3](https://thirdweb.com/thirdweb.eth/MarketplaceV3) contract.\n *\n * The bid buffer is what percentage higher the next bid must be than the current highest bid, or the starting price if there are no bids.\n *\n * @example\n * ```javascript\n * import { useBidBuffer, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress, \"marketplace\");\n * const {\n * data: bidBuffer,\n * isLoading,\n * error,\n * } = useBidBuffer(contract, listingId);\n * ```\n *\n * @param contract - Instance of a `Marketplace` or `MarketplaceV3` contract\n *\n * @param listingId -\n * The listing ID of the item that you want to get the bid buffer for.\n * The listing must be an auction (or english auction) listing, the hook will populate the `error` property if it is not.\n *\n * @returns\n * The hook's `data` property, once loaded, returns a `BigNumber` value representing the current bid buffer.\n *\n * The `bidBuffer` value returned is in percentage format.\n * For example, a value of `500` means that the next bid must be 5% higher than the current highest bid.\n *\n * @twfeature EnglishAuctions\n * @marketplace\n */\nfunction useBidBuffer(contract, listingId) {\n const contractAddress = contract?.getAddress();\n return useQueryWithNetwork(cacheKeys.contract.marketplace.auction.getBidBufferBps(contractAddress, listingId), () => {\n requiredParamInvariant(contract, \"No Contract instance provided\");\n const isV1 = isMarketplaceV1(contract);\n if (isV1) {\n invariant(contract.getBidBufferBps, \"contract does not support getBidBufferBps\");\n return contract.getBidBufferBps();\n } else if (!isV1) {\n invariant(contract.englishAuctions.getBidBufferBps, \"contract does not support englishAuctions.getBidBufferBps\");\n requiredParamInvariant(listingId, \"No listing id provided\");\n return BigNumber.from(contract.englishAuctions.getBidBufferBps(listingId));\n }\n invariant(false, \"Contract is not a valid marketplace contract\");\n }, {\n enabled: !!contract\n });\n}\n\n/**\n * Hook for getting the minimum value a bid must be to be valid\n * in an auction listing on a `Marketplace` or\n * [MarketplaceV3](https://thirdweb.com/thirdweb.eth/MarketplaceV3) contract.\n *\n * Takes into account the current highest bid, or the reserve price if there is no bid,\n * and increments it by the bid buffer to calculate the minimum next bid.\n *\n * @example\n * ```jsx\n * import { useContract, useMinimumNextBid } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress, \"marketplace\");\n * const { data, isLoading, error } = useMinimumNextBid(contract, listingId);\n * }\n * ```\n *\n * @param contract - Instance of a marketplace contract\n *\n * @param listingId -\n * The ID of the listing to get the minimum next bid for.\n *\n * If the listing cannot be found, is not an auction listing, or is not active, the `error` property will be set.\n *\n * @returns Query result object that includes the minimum next bid for the auction listing\n * @twfeature EnglishAuction\n * @marketplace\n */\nfunction useMinimumNextBid(contract, listingId) {\n const contractAddress = contract?.getAddress();\n return useQueryWithNetwork(cacheKeys.contract.marketplace.auction.getMinimumNextBid(contractAddress, listingId), async () => {\n requiredParamInvariant(contract, \"No Contract instance provided\");\n requiredParamInvariant(listingId, \"No listing id provided\");\n const isV1 = isMarketplaceV1(contract);\n if (isV1) {\n invariant(contract.auction.getMinimumNextBid, \"contract does not support auction.getMinimumNextBid\");\n return contract.auction.getMinimumNextBid(listingId);\n } else if (!isV1) {\n invariant(contract.englishAuctions.getMinimumNextBid, \"contract does not support englishAuctions.getMinimumNextBid\");\n return contract.englishAuctions.getMinimumNextBid(listingId);\n }\n invariant(false, \"Contract is not a valid marketplace contract\");\n }, {\n enabled: !!contract && listingId !== undefined\n });\n}\n\n/**\n * Hook for getting all of the offers made on a\n * direct listing on a `Marketplace` contract.\n *\n * @example\n * ```jsx\n * import { useOffers, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress, \"marketplace\");\n * const { data: offers, isLoading, error } = useOffers(contract, listingId);\n * }\n * ```\n *\n * @param contract - Instance of a Marketplace contract\n *\n * @param listingId - The id of the listing to fetch offers for\n * If the listing cannot be found, is not a direct listing, or is not active, the `error` property will be set.\n *\n * @returns\n * This hook uses the `useEvents` hook under the hood to fetch `NewOffer` events for the given listing ID.\n *\n * The return value is an array of `NewOffer` event objects. Each event object has the following properties:\n *\n * ```ts\n * {\n * offeror: string;\n * offerId: BigNumber;\n * assetContract: string;\n * offer: {\n * offerId: BigNumber;\n * offeror: string;\n * assetContract: string;\n * tokenId: BigNumber;\n * quantity: BigNumber;\n * currency: string;\n * totalPrice: BigNumber;\n * expirationTimestamp: BigNumber;\n * tokenType: \"ERC721\" | \"ERC1155\";\n * status: \"UNSET\" | \"CREATED\" | \"COMPLETED\" | \"CANCELLED\";\n * }\n * }\n * ```\n *\n * @marketplace\n */\nfunction useOffers(contract, listingId) {\n const result = useContractEvents(contract, \"NewOffer\");\n return {\n ...result,\n data: result.data?.filter(ev => ev.data.listingId.eq(listingId))?.map(ev => ev.data)\n };\n}\n\n/** **********************/\n/** WRITE HOOKS **/\n/** **********************/\n\n/**\n * Hook for creating a new direct listing on a `Marketplace`\n * or [MarketplaceV3](https://thirdweb.com/thirdweb.eth/MarketplaceV3) smart contract.\n *\n * Direct listings require the user to approve the marketplace to transfer the NFTs on their behalf as part of the listing creation process.\n * This is because the marketplace needs permission to execute sales and transfer the NFTs to the buyer when a sale is made.\n *\n * @example\n * ```jsx\n * import {\n * useCreateDirectListing,\n * useContract,\n * Web3Button,\n * } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress, \"marketplace-v3\");\n * const {\n * mutateAsync: createDirectListing,\n * isLoading,\n * error,\n * } = useCreateDirectListing(contract);\n *\n * return (\n * \n * createDirectListing({\n * assetContractAddress: \"{{asset_contract_address}}\",\n * tokenId: \"{{token_id}}\",\n * pricePerToken: \"{{price_per_token}}\",\n * currencyContractAddress: \"{{currency_contract_address}}\",\n * isReservedListing: false,\n * quantity: \"{{quantity}}\",\n * startTimestamp: new Date(),\n * endTimestamp: new Date(\n * new Date().getTime() + 7 * 24 * 60 * 60 * 1000,\n * ),\n * })\n * }\n * >\n * Create Direct Listing\n * \n * );\n * }\n * ```\n *\n * @param contract - Instance of a Marketplace contract\n *\n * @returns Mutation object to create a new direct listing\n *\n * ```ts\n * const { mutateAsync, isLoading, error } = useCreateDirectListing(contract);\n * ```\n *\n * ### options\n * The mutation function takes an object as an argument with the following properties:\n *\n * #### assetContractAddress (required)\n * The address of the NFT smart contract that you want to list.\n *\n * #### tokenId (required)\n * The token ID of the NFT that you want to list.\n *\n * #### pricePerToken (required)\n * The price to **buy** each token in the listing.\n *\n * - For ERC721 NFTs, this is the price to buy the NFT outright.\n * - For ERC1155 NFTs, this is the price to `1` quantity of the NFT.\n *\n * #### currencyContractAddress (optional)\n * The address of the currency you want users to pay with and make bids in.\n *\n * You likely want to use the token native to the chain you are on, e.g. Ether on Ethereum.\n *\n * To do that, you can import the `NATIVE_TOKEN_ADDRESS` constant from `@thirdweb-dev/sdk`.\n *\n * The default value is `NATIVE_TOKEN_ADDRESS`.\n *\n * #### isReservedListing (optional)\n * When set to true, the seller must explicitly approve which wallet addresses can buy the NFT.\n *\n * #### quantity (optional)\n * How many tokens to include in the listing.\n *\n * - For ERC721 NFTs, this is always `1`.\n * - For ERC1155 NFTs, this is the quantity of tokens to include in the listing.\n *\n * #### startTimestamp (optional)\n * A `Date` object for the start time of the listing.\n *\n * The default value is `new Date()`, which is the current time.\n *\n * #### endTimestamp (optional)\n * A `Date` object for the end time of the listing (when the listing will expire).\n *\n * @twfeature DirectListings\n * @marketplace\n */\nfunction useCreateDirectListing(contract) {\n const activeChainId = useSDKChainId();\n const contractAddress = contract?.getAddress();\n const queryClient = useQueryClient();\n const walletAddress = useAddress();\n return useMutation(async data => {\n invariant(walletAddress, \"No wallet connected, cannot create listing\");\n requiredParamInvariant(contract, \"No Contract instance provided\");\n const isV1 = isMarketplaceV1(contract);\n if (isV1) {\n invariant(contract.direct.createListing, \"contract does not support direct.createListing\");\n return await contract.direct.createListing(data);\n } else if (!isV1) {\n invariant(contract.directListings.createListing, \"contract does not support directListings.createListing\");\n return await contract.directListings.createListing(data);\n }\n invariant(false, \"Contract is not a valid marketplace contract\");\n }, {\n onSettled: () => invalidateContractAndBalances(queryClient, contractAddress, activeChainId)\n });\n}\n\n/**\n * Create multiple direct listings in one batch\n *\n * @example\n * ```jsx\n * const Component = () => {\n * const { contract } = useContract(\"{{contract_address}}\");\n * const {\n * mutate: createDirectListingBatch,\n * isLoading,\n * error,\n * } = useCreateDirectListingBatch(contract);\n *\n * if (error) {\n * console.error(\"failed to create direct listing batch\", error);\n * }\n * \n * // Sample data\n * const directListingData = [\n * {\n * assetContractAddress: \"nft-contract-address\",\n * tokenId: \"token-id-1\",\n * quantity: \"quantity-1\",\n * currencyContractAddress: \"currency-address\",\n * pricePerToken: 1\n * },\n * {\n * assetContractAddress: \"nft-contract-address\",\n * tokenId: \"token-id-2\",\n * quantity: 1,\n * currencyContractAddress: \"currency-address\",\n * pricePerToken: 0\n * },\n * ];\n * return (\n * createDirectListingBatch(directListingData)}\n * >\n * Create batch Direct Listing!\n * \n * );\n * };\n * ```\n *\n * @param contract - an instance of a Marketplace contract\n * @returns a mutation object that can be used to create a new batch of direct listings\n * @twfeature DirectListings\n */\nfunction useCreateDirectListingBatch(contract) {\n const contractAddress = contract?.getAddress();\n const activeChainId = useSDKChainId();\n const queryClient = useQueryClient();\n const walletAddress = useAddress();\n return useMutation(async data => {\n requiredParamInvariant(contract, \"No Contract instance provided\");\n invariant(walletAddress, \"No wallet connected, cannot create listing\");\n invariant(contract.directListings.createListingsBatch, \"contract does not support directListings.createListingsBatch\");\n return await contract.directListings.createListingsBatch(data);\n }, {\n onSettled: () => invalidateContractAndBalances(queryClient, contractAddress, activeChainId)\n });\n}\n\n/**\n * Hook for creating an auction listing on a `Marketplace` or\n * [MarketplaceV3](https://thirdweb.com/thirdweb.eth/MarketplaceV3) smart contract.\n *\n * Auction listings hold the NFTs in escrow; requiring the seller to transfer the NFTs to the marketplace contract\n * as part of the listing creation process.\n *\n * Provide your `Marketplace`\n * or\n * [MarketplaceV3](https://thirdweb.com/thirdweb.eth/MarketplaceV3)\n * contract as the argument to the hook.\n *\n * Then, provide the information about the listing you want to create as the argument to the mutation.\n *\n * @example\n * ```jsx\n * import {\n * useCreateAuctionListing,\n * useContract,\n * Web3Button,\n * } from \"@thirdweb-dev/react\";\n * import { NATIVE_TOKEN_ADDRESS } from \"@thirdweb-dev/sdk\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress, \"marketplace-v3\");\n * const {\n * mutateAsync: createAuctionListing,\n * isLoading,\n * error,\n * } = useCreateAuctionListing(contract);\n *\n * return (\n * \n * createAuctionListing({\n * tokenId: \"{{token_id}}\", // The ID of the token to list.\n * assetContractAddress: \"{{asset_contract_address}}\", // The contract address of the asset being listed.\n * currencyContractAddress: NATIVE_TOKEN_ADDRESS, // The address of the currency to accept for the listing.\n * quantity: \"{{quantity}}\",\n * startTimestamp: new Date(),\n * buyoutBidAmount: \"{{buyout_bid_amount}}\",\n * minimumBidAmount: \"{{minimum_bid_amount}}\",\n * endTimestamp: new Date(),\n * bidBufferBps: \"{{bid_buffer_bps}}\",\n * timeBufferInSeconds: \"{{time_buffer_in_seconds}}\",\n * })\n * }\n * >\n * Create Auction Listing\n * \n * );\n * }\n * ```\n *\n * @param contract - Instance of a `Marketplace` contract\n *\n * @returns\n * A mutation object to create a new auction listing.\n *\n * ```ts\n * const { mutateAsync, isLoading, error } = useCreateAuctionListing(contract);\n * ```\n *\n * ### options\n *\n * The mutation function takes an object of type `NewAuctionListing` or `EnglishAuctionInputParams` as its argument which contains the following properties:\n *\n * #### tokenId (required)\n * The token ID of the NFT you are listing for auction.\n *\n * #### assetContractAddress (required)\n * The smart contract address of the NFT you are listing for auction.\n *\n * #### buyoutBidAmount (required)\n * The price to **buy** each token in the listing.\n *\n * - For ERC721 NFTs, this is the price to buy the NFT outright.\n * - For ERC1155 NFTs, this is the price to `1` quantity of the NFT.\n *\n * #### currencyContractAddress (optional)\n * The address of the currency you want users to pay with and make bids in.\n *\n * You likely want to use the token native to the chain you are on, e.g. Ether on Ethereum.\n *\n * To do that, you can import the `NATIVE_TOKEN_ADDRESS` constant from `@thirdweb-dev/sdk`.\n *\n * The default value is `NATIVE_TOKEN_ADDRESS`.\n *\n *\n * #### quantity (optional)\n * How many tokens to include in the listing.\n *\n * - For ERC721 NFTs, this is always `1`.\n * - For ERC1155 NFTs, this is the quantity of tokens to include in the listing.\n *\n * The default value is `1`.\n *\n * #### minimumBidAmount (required)\n * The minimum price that a bid must be in order to be placed on the listing, per token.\n *\n * Bids that are lower than the reserve price will be rejected by the contract.\n *\n * The default value is `0`.\n *\n *\n * #### startTimestamp (optional)\n * A `Date` object for the start time of the listing.\n *\n * The default value is `new Date()`, which is the current time.\n *\n *\n * #### endTimestamp (optional)\n * A `Date` object for the end time of the listing (when the listing will expire).\n *\n * #### bidBufferBps (optional)\n * Bid buffer in basis points (1/100th of a percent).\n *\n * The bid buffer is what percentage higher the next bid must be than the current highest bid.\n *\n * For example, if you set a bid buffer of `100`, then the next bid must be at least `1%` higher than the current highest bid.\n *\n * #### timeBufferInSeconds (optional)\n * Time buffer in seconds.\n *\n * The time buffer is how much time is added to the listing when a new bid is placed.\n *\n * This is to prevent users from placing a bid at the last second and winning the auction.\n *\n * @twfeature EnglishAuctions\n * @marketplace\n */\nfunction useCreateAuctionListing(contract) {\n const activeChainId = useSDKChainId();\n const contractAddress = contract?.getAddress();\n const queryClient = useQueryClient();\n const walletAddress = useAddress();\n return useMutation(async data => {\n invariant(walletAddress, \"no wallet connected, cannot create listing\");\n requiredParamInvariant(contract, \"No Contract instance provided\");\n const isV1 = isMarketplaceV1(contract);\n if (isV1) {\n invariant(contract.auction.createListing, \"contract does not support auction.createListing\");\n return await contract.auction.createListing(data);\n } else if (!isV1) {\n invariant(contract.englishAuctions.createAuction, \"contract does not support englishAuctions.createAuction\");\n return await contract.englishAuctions.createAuction(data);\n }\n invariant(false, \"Contract is not a valid marketplace contract\");\n }, {\n onSettled: () => invalidateContractAndBalances(queryClient, contractAddress, activeChainId)\n });\n}\n\n/**\n * Hook for canceling an existing auction or listing on a `Marketplace` contract.\n *\n * __Auction listings cannot be canceled if a bid has been placed__\n *\n * __This hook is only for `Marketplace` contracts.__\n *\n * For [Marketplace V3](https://thirdweb.com/thirdweb.eth/MarketplaceV3)\n * contracts, use `useCancelDirectListing` or `useCancelEnglishAuction` instead.\n *\n * @example\n * ```jsx\n * import { useCancelListing, useContract, Web3Button } from \"@thirdweb-dev/react\";\n * import { ListingType } from \"@thirdweb-dev/sdk\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress, \"marketplace\");\n * const {\n * mutateAsync: cancelListing,\n * isLoading,\n * error,\n * } = useCancelListing(contract);\n *\n * return (\n * \n * cancelListing({\n * id: \"{{listing_id}}\",\n * type: ListingType.Direct, // Direct (0) or Auction (1)\n * })\n * }\n * >\n * Cancel Listing\n * \n * );\n * }\n * ```\n *\n * @param contract - Instance of a Marketplace contract\n * @returns\n * Mutation object to cancel a listing.\n *\n * ```ts\n * const { mutateAsync, isLoading, error } = useCancelListing(contract);\n * ```\n *\n * The `error` property is set if the listing is not active, or was not created by the wallet.\n *\n * ### options\n *\n * The mutation function takes an object with the following properties as an argument:\n *\n * #### listingId\n * The ID of the listing you want to cancel.\n *\n * #### listingType\n * The type of listing you are canceling. Either `ListingType.Direct` (0) or `ListingType.Auction` (1).\n *\n * @marketplace\n */\nfunction useCancelListing(contract) {\n const activeChainId = useSDKChainId();\n const contractAddress = contract?.getAddress();\n const queryClient = useQueryClient();\n const walletAddress = useAddress();\n return useMutation(async data => {\n invariant(walletAddress, \"no wallet connected, cannot create listing\");\n requiredParamInvariant(contract, \"No Contract instance provided\");\n if (data.type === ListingType.Auction) {\n invariant(contract.auction.cancelListing, \"contract does not support auction.cancelListing\");\n return await contract.auction.cancelListing(data.id);\n } else {\n invariant(contract.direct.cancelListing, \"contract does not support direct.cancelListing\");\n return await contract.direct.cancelListing(data.id);\n }\n }, {\n onSettled: () => invalidateContractAndBalances(queryClient, contractAddress, activeChainId)\n });\n}\n\n/**\n * Hook for canceling a direct listing on a [MarketplaceV3](https://thirdweb.com/thirdweb.eth/MarketplaceV3) contract.\n *\n * Direct listings can be canceled at any time, (unless the listing has already been sold).\n * Only the creator of the listing can cancel it.\n *\n * __Note: This hook is only for [Marketplace V3](https://thirdweb.com/thirdweb.eth/MarketplaceV3) contracts.__\n *\n * For `Marketplace` contracts, use `useCancelListing` instead.\n *\n * @example\n * ```jsx\n * import {\n * useCancelDirectListing,\n * useContract,\n * Web3Button,\n * } from \"@thirdweb-dev/react\";\n * import { ListingType } from \"@thirdweb-dev/sdk\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress, \"marketplace-v3\");\n * const {\n * mutateAsync: cancelDirectListing,\n * isLoading,\n * error,\n * } = useCancelDirectListing(contract);\n *\n * return (\n * cancelDirectListing(listingId)}\n * >\n * Cancel Direct Listing\n * \n * );\n * }\n * ```\n *\n * @param contract - Instance of a `MarketplaceV3` contract\n * @returns Mutation object to cancel a direct listing by passing the ID of the listing you want to cancel.\n *\n * ```ts\n * const { mutateAsync, isLoading, error } = useCancelDirectListing(contract);\n * ```\n *\n * The mutation function takes the `listingId` as an argument.\n *\n * The `error` property is set if the listing is not active, or was not created by the wallet\n *\n * ### listingId\n *\n * The ID of the listing you want to cancel.\n *\n * @twfeature DirectListings\n * @marketplace\n */\nfunction useCancelDirectListing(contract) {\n const activeChainId = useSDKChainId();\n const contractAddress = contract?.getAddress();\n const queryClient = useQueryClient();\n const walletAddress = useAddress();\n return useMutation(async listingId => {\n invariant(walletAddress, \"no wallet connected, cannot create listing\");\n requiredParamInvariant(contract, \"No Contract instance provided\");\n requiredParamInvariant(listingId, \"No listing id provided\");\n invariant(contract.directListings.cancelListing, \"contract does not support directListings.cancelListing\");\n return await contract.directListings.cancelListing(listingId);\n }, {\n onSettled: () => invalidateContractAndBalances(queryClient, contractAddress, activeChainId)\n });\n}\n\n/**\n * Hook for canceling an english auction on a [MarketplaceV3](https://thirdweb.com/thirdweb.eth/MarketplaceV3) contract.\n *\n * __English auctions cannot be canceled if a bid has been placed__\n *\n * __This hook is only for [Marketplace V3](https://thirdweb.com/thirdweb.eth/MarketplaceV3) contracts.__\n *\n * For `Marketplace` contracts, use `useCancelListing` instead.\n *\n * @example\n * ```jsx\n * import {\n * useCancelEnglishAuction,\n * useContract,\n * Web3Button,\n * } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress, \"marketplace-v3\");\n * const {\n * mutateAsync: cancelEnglishAuction,\n * isLoading,\n * error,\n * } = useCancelEnglishAuction(contract);\n *\n * return (\n * cancelEnglishAuction(listingId)}\n * >\n * Cancel English Auction\n * \n * );\n * }\n * ```\n *\n * @param contract - Instance of a `MarketplaceV3` contract\n *\n * @returns\n * Mutation object to cancel an english auction\n *\n * ```ts\n * const { mutateAsync, isLoading, error } = useCancelEnglishAuction(contract);\n * ```\n *\n * The mutation function takes the `listingId` as an argument.\n *\n * The `error` property is set if the listing is not active, cannot be canceled, or was not created by the wallet.\n *\n * ### listingId\n *\n * The ID of the listing you want to cancel.\n *\n * @twfeature EnglishAuctions\n * @marketplace\n */\nfunction useCancelEnglishAuction(contract) {\n const activeChainId = useSDKChainId();\n const contractAddress = contract?.getAddress();\n const queryClient = useQueryClient();\n const walletAddress = useAddress();\n return useMutation(async auctionId => {\n invariant(walletAddress, \"no wallet connected, cannot create listing\");\n requiredParamInvariant(contract, \"No Contract instance provided\");\n requiredParamInvariant(auctionId, \"No auction id provided\");\n invariant(contract.englishAuctions.cancelAuction, \"contract does not support englishAuctions.cancelAuction\");\n return await contract.englishAuctions.cancelAuction(auctionId);\n }, {\n onSettled: () => invalidateContractAndBalances(queryClient, contractAddress, activeChainId)\n });\n}\n\n/**\n * Hook for placing a bid on a `Marketplace` auction listing.\n *\n * Bids have several important properties:\n *\n * - Cannot be canceled once placed.\n * - Are automatically refunded if they are outbid.\n * - Must be higher than the current highest bid by the percentage defined in the bid buffer.\n * - Must be higher than the reserve price (if there is no bid yet).\n *\n * @example\n * ```jsx\n * import { useMakeBid, useContract, Web3Button } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress, \"marketplace\");\n * const { mutateAsync: makeBid, isLoading, error } = useMakeBid(contract);\n *\n * return (\n * \n * makeBid({\n * listingId: \"1\", // ID of the listing to bid on. Must be an auction.\n * bid: \"1\", // Uses the currencyContractAddress of the listing.\n * })\n * }\n * >\n * Make Bid\n * \n * );\n * }\n * ```\n *\n * @param contract - Instance of a `Marketplace` contract\n *\n * @returns\n * Mutation object to make a bid on an auction listing\n *\n * ```ts\n * const { mutateAsync, isLoading, error } = useMakeBid(contract);\n * ```\n *\n * ### options\n * The mutation function takes an object as an argument with the following properties:\n *\n * #### listingId\n * The ID of the listing to bid on. Must be an auction type listing.\n * (Use `useMakeOffer` for direct listings).\n *\n * If the listing cannot be found, is not an auction, or is not active, the `error` property will be set.\n *\n * #### bid\n * The amount to bid on the listing. Uses the `currencyContractAddress` of the listing.\n *\n * For example, if the listing uses the `NATIVE_TOKEN_ADDRESS` on Ethereum, the bid amount is the amount of ETH to bid. Can be\n * in the form of a number, string, or BigNumber.\n *\n * The bid value **must** be either:\n *\n * - Greater than or equal to the reserve price if there is no current bid.\n * - Greater than the current highest bid by the percentage defined in the bid buffer.\n *\n * Use the `useNextMinimumBid` hook to get the next minimum bid amount required.\n *\n * @marketplace\n */\nfunction useMakeBid(contract) {\n const activeChainId = useSDKChainId();\n const contractAddress = contract?.getAddress();\n const queryClient = useQueryClient();\n const walletAddress = useAddress();\n return useMutation(async data => {\n invariant(walletAddress, \"no wallet connected, cannot make bid\");\n requiredParamInvariant(contract, \"No Contract instance provided\");\n invariant(contract.auction.makeBid, \"contract does not support auction.makeBid\");\n return await contract.auction.makeBid(data.listingId, data.bid);\n }, {\n onSettled: () => invalidateContractAndBalances(queryClient, contractAddress, activeChainId)\n });\n}\n\n/**\n * Hook for placing an offer on a `Marketplace` direct listing.\n *\n * @example\n *\n * ```jsx\n * import { useMakeOffer, useContract, Web3Button } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress, \"marketplace\");\n * const { mutateAsync: makeOffer, isLoading, error } = useMakeOffer(contract);\n *\n * return (\n * \n * makeOffer({\n * listingId: 1, // ID of the listing to make an offer on\n * pricePerToken: 1, // Price per token to offer (in the listing's currency)\n * quantity: 1, // Number of NFTs you want to buy (used for ERC1155 NFTs)\n * })\n * }\n * >\n * Make Bid\n * \n * );\n * }\n * ```\n *\n * @param contract - Instance of a `Marketplace` contract\n *\n * @returns Mutation object to make a bid on an auction listing\n *\n * ```ts\n * const { mutateAsync, isLoading, error } = useMakeOffer(contract);\n * ```\n *\n * ### options\n * The mutation function takes an object as an argument with the following properties:\n *\n * #### listingId (required)\n * The ID of the listing to make an offer on.\n *\n * If the listing cannot be found, is not a direct listing, or is not active, the `error` property will be set.\n *\n * #### pricePerToken (required)\n * The price to offer per token.\n *\n * - For ERC1155, this is the price to offer per quantity of the NFT (see [`quantity`](#quantity) below).\n * - For ERC721, this is the price to offer to buy the NFT.\n *\n * #### quantity (optional)\n * Used for ERC1155 NFTs, where multiple quantity of the same NFT can be bought at once.\n *\n * This field works with the `pricePerToken` field to calculate the total price of the offer.\n * For example, if you want to buy 5 NFTs at a price of 1 ETH each, you would set `pricePerToken` to `1` and `quantity` to `5`, for a total of `5` ETH as the offer.\n *\n * For ERC721 NFTs, this value is ignored and `1` is used instead.\n *\n * The default value is `1`.\n *\n * @marketplace\n */\nfunction useMakeOffer(contract) {\n const activeChainId = useSDKChainId();\n const contractAddress = contract?.getAddress();\n const queryClient = useQueryClient();\n const walletAddress = useAddress();\n return useMutation(async data => {\n invariant(walletAddress, \"no wallet connected, cannot make bid\");\n requiredParamInvariant(contract, \"No Contract instance provided\");\n return await contract.makeOffer(data.listingId, data.pricePerToken, data.quantity);\n }, {\n onSettled: () => invalidateContractAndBalances(queryClient, contractAddress, activeChainId)\n });\n}\n\n/**\n * Hook for accepting an offer from a direct listing on a `Marketplace` contract.\n *\n * Allows the seller (the user who listed the NFT for sale) to accept an offer on their listing, triggering a sale event, meaning the:\n * - NFT(s) are transferred from the seller to the buyer.\n * - Funds from the offeror are sent to the seller.\n *\n * @example\n * ```tsx\n * import {\n * useAcceptDirectListingOffer,\n * useContract,\n * Web3Button,\n * } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress, \"marketplace\");\n * const {\n * mutateAsync: acceptDirectOffer,\n * isLoading,\n * error,\n * } = useAcceptDirectListingOffer(contract);\n *\n * return (\n * \n * acceptDirectOffer({\n * listingId: \"{{listing_id}}\",\n * addressOfOfferor: \"{{offeror_address}}\",\n * })\n * }\n * >\n * Accept Offer\n * \n * );\n * }\n * ```\n *\n * @param contract - Instance of a `Marketplace` contract\n * @returns Mutation object to accept an offer on a direct listing\n * ```ts\n * const { mutateAsync, isLoading, error } = useAcceptDirectListingOffer(contract);\n * ```\n *\n * ### options\n *\n * The mutation function accepts an object as argument with the following properties:\n *\n * #### listingId\n * The `listingId` of the listing you wish to accept.\n *\n * #### addressOfOfferor\n * The wallet address of the user who made the offer you wish to accept.\n *\n * The `useContractEvents` hook can be used to read all `NewOffer` events on your `Marketplace` contract.\n *\n * @marketplace\n */\nfunction useAcceptDirectListingOffer(contract) {\n const activeChainId = useSDKChainId();\n const contractAddress = contract?.getAddress();\n const queryClient = useQueryClient();\n const walletAddress = useAddress();\n return useMutation(async data => {\n invariant(walletAddress, \"no wallet connected, cannot make bid\");\n requiredParamInvariant(contract?.direct, \"No Direct instance provided\");\n return await contract.direct.acceptOffer(data.listingId, data.addressOfOfferor);\n }, {\n onSettled: () => invalidateContractAndBalances(queryClient, contractAddress, activeChainId)\n });\n}\n\n/**\n * Hook for executing a sale of an auction listing on a `Marketplace` contract.\n *\n * Triggers a new sale, transferring the NFT(s) to the buyer and the funds to the seller.\n *\n * A sale must be executed when an auction ends, and the auction has a winning bid that was below the buyout price. This means the\n * auction has finished, and the highest bidder has won the auction. **Any wallet** can now execute the sale, transferring the NFT(s)\n * to the buyer and the funds to the seller.\n *\n * @example\n * ```jsx\n * import {\n * useExecuteAuctionSale,\n * useContract,\n * Web3Button,\n * } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress, \"marketplace\");\n * const {\n * mutateAsync: executeAuctionSale,\n * isLoading,\n * error,\n * } = useExecuteAuctionSale(contract);\n *\n * return (\n * \n * executeAuctionSale({\n * // The listingId of the auction to execute\n * listingId: \"{{listing_id}}\",\n * })\n * }\n * >\n * Execute Auction Sale\n * \n * );\n * }\n * ```\n *\n * @param contract - Instance of a `Marketplace` contract\n *\n * @returns Mutation object to accept an offer on a direct listing\n *\n * ```ts\n * const { mutateAsync, isLoading, error } = useExecuteAuctionSale(contract);\n * ```\n *\n * ### options\n * The mutation function accepts an object as argument with the following properties:\n *\n * #### listingId\n * The ID of the auction listing to execute the sale on. If the listing cannot be found, is not an auction, or is not ready to be executed, the `error` property will be set.\n *\n * @marketplace\n */\nfunction useExecuteAuctionSale(contract) {\n const activeChainId = useSDKChainId();\n const contractAddress = contract?.getAddress();\n const queryClient = useQueryClient();\n const walletAddress = useAddress();\n return useMutation(async data => {\n invariant(walletAddress, \"no wallet connected, cannot make bid\");\n requiredParamInvariant(contract?.auction, \"No Auction marketplace instance provided\");\n return await contract.auction.executeSale(data.listingId);\n }, {\n onSettled: () => invalidateContractAndBalances(queryClient, contractAddress, activeChainId)\n });\n}\n\n/**\n * Hook for buying a listing on a `Marketplace` smart contract.\n *\n * If the listing is in a currency that is not native to the chain (e.g. not Ether on Ethereum), the hook will prompt the user\n * to approve the marketplace contract to spend the currency on their behalf before performing the buy.\n *\n * __This hook is only for `Marketplace` contracts. Not for `MarketplaceV3`__\n *\n * @example\n * ```jsx\n * import { useBuyNow, useContract, Web3Button } from \"@thirdweb-dev/react\";\n * import { ListingType } from \"@thirdweb-dev/sdk\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress, \"marketplace\");\n * const { mutateAsync: buyNow, isLoading, error } = useBuyNow(contract);\n *\n * return (\n * \n * buyNow({\n * id: \"{{listing_id}}\", // ID of the listing to buy\n * type: ListingType.Direct, // Direct (0) or Auction (1)\n * buyAmount: \"{{buy_amount}}\", // Amount to buy\n * buyForWallet: \"{{wallet_address}}\", // Wallet to buy for, defaults to current wallet\n * })\n * }\n * >\n * Buy Now\n * \n * );\n * }\n * ```\n *\n * @param contract - Instance of a `Marketplace` contract\n * @returns Mutation object to buy out an auction listing\n * ```ts\n * const { mutateAsync, isLoading, error } = useBuyNow(contract);\n * ```\n *\n * ## Options\n *\n * The mutation function accepts an object as argument with the following properties:\n *\n * ### id\n *\n * The ID of the listing you want to buy.\n *\n * ### type\n *\n * The type of listing. Either `ListingType.Direct` (0) or `ListingType.Auction` (1).\n *\n * ### buyAmount\n *\n * The amount of tokens you want to buy from the listing.\n *\n * Applicable for ERC1155 listings only, should always be 1 for ERC721 listings.\n *\n * ### buyForWallet (optional)\n *\n * Optionally, specify a different wallet address to buy the listing for.\n *\n * @marketplace\n */\nfunction useBuyNow(contract) {\n const activeChainId = useSDKChainId();\n const contractAddress = contract?.getAddress();\n const queryClient = useQueryClient();\n const walletAddress = useAddress();\n return useMutation(async data => {\n invariant(walletAddress, \"no wallet connected, cannot make bid\");\n requiredParamInvariant(contract, \"No Contract instance provided\");\n if (data.type === ListingType.Direct) {\n invariant(contract.direct.buyoutListing, \"contract does not support direct.buyoutListing\");\n return await contract.direct.buyoutListing(data.id, data.buyAmount, data.buyForWallet);\n }\n invariant(contract.auction.buyoutListing, \"contract does not support auction.buyoutListing\");\n return await contract.auction.buyoutListing(data.id);\n }, {\n onSettled: () => invalidateContractAndBalances(queryClient, contractAddress, activeChainId)\n });\n}\n\n/**\n * Hook for buying a direct listing on a [Marketplace V3](https://thirdweb.com/thirdweb.eth/MarketplaceV3) smart contract.\n *\n * If the listing is in a currency that is not native to the chain (e.g. not Ether on Ethereum), the hook will prompt the user\n * to approve the marketplace contract to spend the currency on their behalf before performing the buy.\n *\n * ```jsx\n * import { useBuyDirectListing } from \"@thirdweb-dev/react\";\n *\n * const { mutateAsync, isLoading, error } = useBuyDirectListing(contract);\n * ```\n *\n * @example\n * ```jsx\n * import {\n * useBuyDirectListing,\n * useContract,\n * Web3Button,\n * } from \"@thirdweb-dev/react\";\n * import { ListingType } from \"@thirdweb-dev/sdk\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress, \"marketplace-v3\");\n * const {\n * mutateAsync: buyDirectListing,\n * isLoading,\n * error,\n * } = useBuyDirectListing(contract);\n *\n * return (\n * \n * buyDirectListing({\n * listingId: \"{{listing_id}}\", // ID of the listing to buy\n * quantity: \"1\",\n * buyer: \"{{wallet_address}}\", // Wallet to buy for\n * })\n * }\n * >\n * Buy Now\n * \n * );\n * }\n * ```\n *\n * @param contract - Instance of a `MarketplaceV3` contract\n * @returns Mutation object to buy out a direct listing\n * ```ts\n * const { mutateAsync, isLoading, error } = useBuyDirectListing(contract);\n * ```\n *\n * ## Options\n *\n * The mutation function accepts an object as argument with the following properties:\n *\n * ### listingId\n *\n * The ID of the direct listing you want to buy.\n *\n * ### quantity\n *\n * The amount of tokens you want to buy from the listing.\n *\n * Applicable for ERC1155 listings only, should always be `1` for ERC721 listings.\n *\n * ### buyer\n *\n * Specify a different wallet address to buy the listing for.\n *\n * @marketplace\n */\nfunction useBuyDirectListing(contract) {\n const activeChainId = useSDKChainId();\n const contractAddress = contract?.getAddress();\n const queryClient = useQueryClient();\n const walletAddress = useAddress();\n return useMutation(async data => {\n invariant(walletAddress, \"no wallet connected, cannot buy from listing\");\n requiredParamInvariant(contract, \"No Contract instance provided\");\n invariant(contract.directListings.buyFromListing, \"contract does not support directListings.buyFromListing\");\n return await contract.directListings.buyFromListing(data.listingId, data.quantity, data.buyer);\n }, {\n onSettled: () => invalidateContractAndBalances(queryClient, contractAddress, activeChainId)\n });\n}\nfunction isMarketplaceV1(contract) {\n return contract.getAllListings !== undefined;\n}\n\n/** **********************/\n/** READ HOOKS **/\n/** **********************/\n\n/**\n * Hook for fetching information about an NFT from a smart contract.\n *\n * Available to use on smart contracts that implement the [`ERC721`](https://portal.thirdweb.com/contracts/build/extensions/erc-721/ERC721)\n * or [`ERC1155`](https://portal.thirdweb.com/contracts/build/extensions/erc-1155/ERC1155) standard.\n *\n * NFT metadata is automatically fetched from where the `tokenUri` is hosted (e.g. IPFS), and makes the `image`\n * property available as a URL through our IPFS gateway (if the image is hosted on IPFS).\n *\n * @example\n *\n * Provide your NFT collection contract object and the token ID of the NFT you want to fetch as\n * arguments.\n *\n * ```jsx\n * import { useContract, useNFT } from \"@thirdweb-dev/react\";\n *\n * // The token ID of the NFT you want to fetch\n * const tokenId = 0;\n *\n * function App() {\n * const { contract } = useContract(\"{{contract_address}}\");\n * const { data: nft, isLoading, error } = useNFT(contract, tokenId);\n *\n * if (isLoading) return
Fetching NFT…
;\n * if (error) return
Error fetching NFT
;\n * if (!nft) return
NFT not found
;\n * return
NFT: {nft.metadata.name}
;\n * }\n * ```\n *\n * @param contract - Instance of a `NFTContract`\n *\n * @param tokenId - The token ID of the NFT you want to fetch.\n * ```jsx\n * import { useContract, useNFT } from \"@thirdweb-dev/react\";\n *\n * // The token ID of the NFT you want to fetch\n * const tokenId = 0;\n *\n * function App() {\n * const { contract } = useContract(\"{{contract_address}}\");\n * const {\n * data: nft,\n * isLoading,\n * error,\n * } = useNFT(\n * contract,\n * tokenId,\n * );\n * }\n * ```\n *\n * @returns Query result object that includes the metadata for the given tokenId in `data` property\n * @twfeature ERC721 | ERC1155\n * @nft\n */\nfunction useNFT(contract, tokenId) {\n const contractAddress = contract?.getAddress();\n const {\n erc721,\n erc1155\n } = getErcs(contract);\n return useQueryWithNetwork(cacheKeys.contract.nft.get(contractAddress, tokenId), async () => {\n requiredParamInvariant(contract, \"No Contract instance provided\");\n if (erc1155) {\n invariant(erc1155.get, \"Contract instance does not support get\");\n return await erc1155.get(BigNumber.from(tokenId || 0));\n }\n if (erc721) {\n invariant(erc721.get, \"Contract instance does not support get\");\n return await erc721.get(BigNumber.from(tokenId || 0));\n }\n invariant(false, \"Unknown NFT type\");\n }, {\n enabled: !!erc721 || !!erc1155 && tokenId !== undefined\n });\n}\n\n/**\n * Hook to query all NFTs associated with a smart contract.\n *\n * Available to use on smart contracts that implement the [`ERC721`](https://portal.thirdweb.com/contracts/build/extensions/erc-721/ERC721)\n * or [`ERC1155`](https://portal.thirdweb.com/contracts/build/extensions/erc-1155/ERC1155) standard.\n *\n * NFT metadata is automatically fetched from where the `tokenUri` is hosted (e.g. IPFS), and makes the `image`\n * property available as a URL through our IPFS gateway (if the image is hosted on IPFS).\n *\n * By default, only returns the first `100` NFTs in the collection. You can use the `queryParams` argument to\n * filter the NFTs that are returned or to paginate through the collection.\n *\n * @example\n *\n * ```jsx\n * import { useNFTs, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const { data, isLoading, error } = useNFTs(contract);\n * }\n * ```\n *\n * @param contract - Instance of a `NFTContract`\n *\n * @param queryParams -\n * By default, the hook will return the first 100 NFTs associated with the contract.\n *\n * You can use the `queryParams` argument to paginate the NFTs that are returned.\n *\n * @returns Query result object that includes an array of `NFT` objects\n * @twfeature ERC721Supply | ERC721Enumerable | ERC1155Enumerable\n * @nft\n */\nfunction useNFTs(contract, queryParams) {\n const contractAddress = contract?.getAddress();\n const {\n erc721,\n erc1155\n } = getErcs(contract);\n return useQueryWithNetwork(cacheKeys.contract.nft.query.all(contractAddress, queryParams), async () => {\n requiredParamInvariant(contract, \"No Contract instance provided\");\n if (erc721) {\n invariant(erc721.getAll, \"Contract instance does not support getAll\");\n return await erc721.getAll(queryParams);\n }\n if (erc1155) {\n invariant(erc1155.getAll, \"Contract instance does not support getAll\");\n return await erc1155.getAll(queryParams);\n }\n invariant(false, \"Unknown NFT type\");\n }, {\n enabled: !!erc721 || !!erc1155\n });\n}\n\n/**\n * Hook to get the total count of **unique** NFTs minted on a smart contract.\n *\n * Available to use on smart contracts that implement the [`ERC721`](https://portal.thirdweb.com/contracts/build/extensions/erc-721/ERC721)\n * or [`ERC1155`](https://portal.thirdweb.com/contracts/build/extensions/erc-1155/ERC1155) standard.\n *\n * When used for ERC1155 contracts, the total count is the number of unique token IDs minted, _not_ the total supply of all tokens in circulation.\n *\n * @example\n * ```jsx\n * import { useTotalCount, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const { data: totalCount, isLoading, error } = useTotalCount(contract);\n * }\n * ```\n *\n * @param contract - Instance of a `NFTContract`\n * @returns A `BigNumber` that includes the total count of NFTs\n * @twfeature ERC721Supply | ERC1155Enumerable\n * @nft\n */\nfunction useTotalCount(contract) {\n const contractAddress = contract?.getAddress();\n const {\n erc721,\n erc1155\n } = getErcs(contract);\n return useQueryWithNetwork(cacheKeys.contract.nft.query.totalCount(contractAddress), async () => {\n requiredParamInvariant(contract, \"No Contract instance provided\");\n if (erc1155) {\n invariant(erc1155.totalCount, \"Contract instance does not support totalCount\");\n return await erc1155.totalCount();\n }\n if (erc721) {\n invariant(erc721.totalCount, \"Contract instance does not support totalCount\");\n return await erc721.totalCount();\n }\n invariant(false, \"Unknown NFT type\");\n }, {\n enabled: !!erc721 || !!erc1155\n });\n}\n\n/**\n * Hook for fetching the total number of NFTs in circulation for a given smart contract.\n *\n * This takes into account the increase in supply due to minting and the decrease in supply due to burning.\n *\n * Available to use on contracts that implement either the [ERC721](https://portal.thirdweb.com/contracts/build/extensions/erc-721/ERC721)\n * or [ERC1155](https://portal.thirdweb.com/contracts/build/extensions/erc-1155/ERC1155) standard.\n *\n * @example\n *\n * ```jsx\n * import { useTotalCirculatingSupply, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const { data, isLoading, error } = useTotalCirculatingSupply(contract);\n * }\n * ```\n *\n * @param contract - Instance of a `NFTContract`\n *\n * @param tokenId - Required for ERC1155, the tokenId to look up. This will return the total quantity of the given token ID in circulation.\n * ```ts\n * import { useTotalCirculatingSupply, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const { data, isLoading, error } = useTotalCirculatingSupply(\n * contract,\n * \"{{token_id}}\",\n * );\n * }\n * ```\n *\n * @returns A `BigNumber` representing the total circulating supply.\n *\n * @twfeature ERC721Supply | ERC1155Enumerable\n * @nft\n */\nfunction useTotalCirculatingSupply(contract, tokenId) {\n const contractAddress = contract?.getAddress();\n const {\n erc721,\n erc1155\n } = getErcs(contract);\n return useQueryWithNetwork(cacheKeys.contract.nft.query.totalCirculatingSupply(contractAddress, tokenId ?? undefined), async () => {\n requiredParamInvariant(contract, \"No Contract instance provided\");\n if (erc1155) {\n invariant(erc1155.totalCirculatingSupply, \"Contract instance does not support totalCirculatingSupply\");\n requiredParamInvariant(tokenId, \"No tokenId provided\");\n return await erc1155.totalCirculatingSupply(tokenId);\n }\n if (erc721) {\n invariant(erc721.totalCirculatingSupply, \"Contract instance does not support totalCirculatingSupply\");\n return await erc721.totalCirculatingSupply();\n }\n invariant(false, \"Unknown NFT type\");\n }, {\n enabled: !!erc721 || !!erc1155 && tokenId !== undefined\n });\n}\n\n/**\n * Hook for accessing a list of NFTs owned by a single wallet address.\n *\n * Available to use on smart contracts that implement either ERC721Enumerable, ERC1155Enumerable, or ERC721Supply extensions.\n *\n * @example\n *\n * ```jsx\n * import { useOwnedNFTs, useContract, useAddress } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const address = useAddress();\n * const { contract } = useContract(contractAddress);\n * const { data, isLoading, error } = useOwnedNFTs(contract, address);\n * }\n * ```\n *\n * @param contract - Instance of a `NFTContract`\n * @param ownerWalletAddress -\n * The wallet address to get owned tokens for. Likely, you will want to view the connected wallet’s NFTs. use the `useAddress` hook to get this value.\n *\n * @param queryParams - Query params to pass to the query for pagination\n *\n * @returns Query result object that includes the list of owned `NFT` objects\n *\n * @twfeature ERC721Enumerable | ERC1155Enumerable | ERC721Supply\n * @nft\n */\nfunction useOwnedNFTs(contract, ownerWalletAddress, queryParams) {\n const contractAddress = contract?.getAddress();\n const {\n erc721,\n erc1155\n } = getErcs(contract);\n return useQueryWithNetwork(cacheKeys.contract.nft.query.owned.all(contractAddress, ownerWalletAddress), async () => {\n requiredParamInvariant(contract, \"No Contract instance provided\");\n invariant(ownerWalletAddress, \"No wallet address provided\");\n if (erc721) {\n return await erc721.getOwned(ownerWalletAddress, queryParams);\n }\n if (erc1155) {\n return await erc1155.getOwned(ownerWalletAddress, queryParams);\n }\n invariant(false, \"Unknown NFT type\");\n }, {\n enabled: (!!erc721 || !!erc1155) && !!ownerWalletAddress\n });\n}\n\n/**\n * Hook to get the quantity a user owns of a specific [ERC1155](https://portal.thirdweb.com/contracts/build/extensions/erc-1155/ERC1155) NFT.\n *\n * Available to use on smart contracts that implement the [`ERC1155`](https://portal.thirdweb.com/contracts/build/extensions/erc-1155/ERC1155) standard.\n *\n * @example\n * ```jsx\n * import { useNFTBalance, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const { isLoading, data, error } = useNFTBalance(\n * contract,\n * \"{{wallet_address}}\",\n * \"{{token_id}}\",\n * );\n * }\n * ```\n *\n * @param contract - Instance of a `NFTContract`\n * @param ownerWalletAddress - The wallet address to check the balance of. Use the `useAddress` hook to get the current wallet address.\n * @param tokenId - Required for ERC1155, the tokenId to look up\n * @returns The hook's `data` property, once loaded, returns a `BigNumber` representing the quantity of the NFT owned by the wallet.\n * @twfeature ERC721 | ERC1155\n * @nft\n */\nfunction useNFTBalance(contract, ownerWalletAddress, tokenId) {\n const contractAddress = contract?.getAddress();\n const {\n erc721,\n erc1155\n } = getErcs(contract);\n return useQueryWithNetwork(cacheKeys.contract.nft.balanceOf(contractAddress, ownerWalletAddress, tokenId), () => {\n requiredParamInvariant(contract, \"No Contract instance provided\");\n invariant(ownerWalletAddress, \"No owner wallet address provided\");\n if (erc1155) {\n requiredParamInvariant(tokenId, \"No tokenId provided\");\n invariant(erc1155.balanceOf, \"Contract instance does not support balanceOf\");\n return erc1155.balanceOf(ownerWalletAddress, tokenId);\n }\n if (erc721) {\n invariant(erc721.balanceOf, \"Contract instance does not support balanceOf\");\n return erc721.balanceOf(ownerWalletAddress);\n }\n invariant(false, \"Unknown NFT type\");\n }, {\n enabled: !!erc721 || !!erc1155 && !!ownerWalletAddress\n });\n}\n\n/**\n * Get the shared metadata of an Open Edition NFT contract\n *\n * @example\n * ```javascript\n * const { data: sharedMetadata, isLoading, error } = useSharedMetadata(contract);\n * ```\n *\n * @param contract - Instance of a `NFTContract`\n * @returns Query result object that includes the shared metadata of the contract\n * @twfeature ERC721SharedMetadata\n * @nft\n */\nfunction useSharedMetadata(contract) {\n const contractAddress = contract?.getAddress();\n const {\n erc721\n } = getErcs(contract);\n return useQueryWithNetwork(cacheKeys.contract.nft.sharedMetadata.get(contractAddress), () => {\n requiredParamInvariant(contract, \"No Contract instance provided\");\n if (erc721) {\n invariant(erc721.sharedMetadata.get, \"Contract instance does not support sharedMetadata.get\");\n return erc721.sharedMetadata.get();\n }\n invariant(false, \"Unknown NFT type\");\n }, {\n enabled: !!contract\n });\n}\n\n/** **********************/\n/** WRITE HOOKS **/\n/** **********************/\n\n/**\n * Hook for minting a new NFT on a smart contract.\n *\n * Available to use on smart contracts that implement the [`ERC721`](https://portal.thirdweb.com/contracts/build/extensions/erc-721/ERC721)\n * or [`ERC1155`](https://portal.thirdweb.com/contracts/build/extensions/erc-1155/ERC1155) standard.\n *\n * By default, the process uploads and pins the NFT metadata to IPFS before minting.\n *\n * @example\n * ```jsx\n * import { useMintNFT, useContract, Web3Button } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const { mutateAsync: mintNft, isLoading, error } = useMintNFT(contract);\n *\n * return (\n * \n * mintNft({\n * metadata: {\n * name: \"My NFT\",\n * description: \"This is my NFT\",\n * image: \"ipfs://example.com/my-nft.png\", // Accepts any URL or File type\n * },\n * to: \"{{wallet_address}}\", // Use useAddress hook to get current wallet address\n * })\n * }\n * >\n * Mint NFT\n * \n * );\n * }\n * ```\n *\n * @param contract - Instance of a `NFTContract`\n * @returns Mutation object that to mint a new NFT token to the connected wallet\n *\n * ```ts\n * const { mutateAsync, isLoading, error } = useMintNFT(contract);\n * ```\n *\n * ### options\n * The mutation function takes an object with the following properties:\n *\n * #### metadata\n * The metadata of the NFT to mint.\n *\n * By default, the `metadata` object is uploaded and pinned to IPFS before minting.\n *\n * You can override this behavior by providing a `string` to the metadata property. The string must be a URL that points to a valid JSON object containing [standard metadata properties](https://docs.opensea.io/docs/metadata-standards)\n *\n * ```jsx\n * import { useMintNFT, useContract, Web3Button } from \"@thirdweb-dev/react\";\n *\n * // Your smart contract address\n * const contractAddress = \"{{contract_address}}\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const { mutateAsync: mintNft, isLoading, error } = useMintNFT(contract);\n *\n * return (\n * \n * mintNft({\n * // Any valid IPFS or HTTP URL that points to a JSON object\n * metadata: \"https://///.json\",\n * to: \"{{wallet_address}}\",\n * })\n * }\n * >\n * Mint NFT\n * \n * );\n * }\n * ```\n *\n * #### to (required)\n * The wallet address to mint the NFT to.\n *\n * Likely, you will want to mint the NFT to the currently connected wallet address.\n * Use the `useAddress` hook to get this value.\n *\n * @twfeature ERC721Mintable | ERC1155Mintable\n * @nft\n */\nfunction useMintNFT(contract) {\n const activeChainId = useSDKChainId();\n const contractAddress = contract?.getAddress();\n const queryClient = useQueryClient();\n const {\n erc1155,\n erc721\n } = getErcs(contract);\n return useMutation(async data => {\n invariant(data.to, 'No \"to\" address provided');\n requiredParamInvariant(contract, \"contract is undefined\");\n if (erc1155) {\n invariant(\"supply\" in data, \"supply not provided\");\n const {\n to,\n metadata,\n supply\n } = data;\n return await erc1155.mintTo(to, {\n metadata,\n supply: BigNumber.from(supply || 1)\n });\n }\n if (erc721) {\n return await erc721.mintTo(data.to, data.metadata);\n }\n invariant(false, \"Unknown NFT type\");\n }, {\n onSettled: () => invalidateContractAndBalances(queryClient, contractAddress, activeChainId)\n });\n}\n\n/**\n * Hook for minting additional supply to an _existing_ ERC-1155 token.\n *\n * Available to use on contracts that implement the\n * [ERC1155Mintable](https://portal.thirdweb.com/contracts/build/extensions/erc-1155/ERC1155Mintable)\n * interface, such as the [Edition](https://thirdweb.com/thirdweb.eth/TokenERC1155) or [Edition Drop](https://thirdweb.com/thirdweb.eth/DropERC1155).\n *\n * The wallet address that initiates this transaction must have minting permissions on the contract.\n *\n * @example\n *\n * ```jsx\n * import { useContract, useMintNFTSupply, Web3Button } from \"@thirdweb-dev/react\";\n *\n * const contractAddress = \"{{contract_address}}\";\n * const walletAddress = \"{{wallet_address}}\";\n * const tokenId = \"{{token_id}}\";\n * const additionalSupply = \"{{additional_supply}}\";\n *\n * function App() {\n * // Contract must be an ERC-1155 contract that implements the ERC1155Mintable interface\n * const { contract } = useContract(contractAddress);\n * const {\n * mutateAsync: mintNftSupply,\n * isLoading,\n * error,\n * } = useMintNFTSupply(contract);\n *\n * return (\n * \n * mintNftSupply({\n * additionalSupply: additionalSupply, // Quantity to mint\n * to: walletAddress, // Address to mint to\n * tokenId: tokenId, // Token ID to add supply to\n * })\n * }\n * >\n * Mint NFT Supply\n * \n * );\n * }\n * ```\n *\n * @param contract - Instance of a `Erc1155`\n *\n * @returns Mutation object to mint a more supply of a token id to the provided wallet\n *\n * ```ts\n * const { mutateAsync, isLoading, error } = useMintNFTSupply(contract);\n * ```\n *\n * ### options\n *\n * The mutation function takes an object with the following properties:\n *\n * #### additionalSupply\n * The quantity of additional supply to mint.\n *\n * For example, if you have 10 quantity so far, and you want to mint 5 more, set `additionalSupply` to `5`.\n *\n * Can be a `string` or `number`.\n *\n *\n * #### to\n * The wallet address to mint the new supply to.\n *\n * To use the connected wallet address, use the `useAddress` hook.\n *\n *\n * #### tokenId\n * The token ID of the NFT to mint additional supply to.\n *\n * Can be a `string` or `number`.\n *\n * @twfeature ERC1155Mintable\n * @nft\n */\nfunction useMintNFTSupply(contract) {\n const activeChainId = useSDKChainId();\n const contractAddress = contract?.getAddress();\n const queryClient = useQueryClient();\n return useMutation(async data => {\n invariant(data.to, 'No \"to\" address provided');\n requiredParamInvariant(contract, \"contract is undefined\");\n requiredParamInvariant(data.tokenId, \"tokenId not provided\");\n invariant(\"additionalSupply\" in data, \"additionalSupply not provided\");\n const {\n to,\n tokenId,\n additionalSupply\n } = data;\n return await contract.mintAdditionalSupplyTo(to, tokenId, additionalSupply);\n }, {\n onSettled: () => invalidateContractAndBalances(queryClient, contractAddress, activeChainId)\n });\n}\n\n/**\n * Hook for transferring ERC721 or ERC1155 NFTs to another wallet address.\n *\n * Available to use on contracts that implement either the\n * [ERC721](https://portal.thirdweb.com/contracts/build/extensions/erc-721/ERC721)\n * and [ERC1155](https://portal.thirdweb.com/contracts/build/extensions/erc-1155/ERC1155)\n * interfaces, such as the [Edition](https://thirdweb.com/thirdweb.eth/TokenERC1155)\n * or [NFT Collection](https://thirdweb.com/thirdweb.eth/TokenERC721).\n *\n * The wallet address that initiates this transaction must have transfer permissions on the contract (i.e. the tokens are not soulbound).\n * It also must have the required amount of token(s) available to transfer.\n *\n * @example\n *\n * ```jsx\n * import { useContract, useTransferNFT, Web3Button } from \"@thirdweb-dev/react\";\n *\n * // Your NFT collection contract address\n * const contractAddress = \"{{contract_address}}\";\n * const walletAddress = \"{{wallet_address}}\";\n * const tokenId = \"{{token_id}}\";\n *\n * function App() {\n * // Contract must be an ERC-721 or ERC-1155 contract\n * const { contract } = useContract(contractAddress);\n * const {\n * mutateAsync: transferNFT,\n * isLoading,\n * error,\n * } = useTransferNFT(contract);\n *\n * return (\n * \n * transferNFT({\n * to: walletAddress, // Address to transfer the token to\n * tokenId: tokenId, // Token ID to transfer\n * })\n * }\n * >\n * Transfer\n * \n * );\n * }\n * ```\n *\n * @param contract - Instance of a `NFTContract`\n *\n * @returns Mutation object to transfer NFTs\n *\n * ```ts\n * const { mutateAsync, isLoading, error } = useTransferNFT(contract);\n * ```\n *\n * ### options\n * The mutation function takes an object with the following properties:\n *\n * #### to\n * The wallet address to transfer the token(s) to.\n *\n * To use the connected wallet address, use the `useAddress` hook.\n *\n *\n * #### tokenId\n * The token ID of the NFT to transfer.\n *\n * Can be a `string` or `number`.\n *\n * #### amount (ERC1155 only)\n * If you are using an ERC1155 contract, specify the amount of tokens to transfer.\n *\n * @twfeature ERC721 | ERC1155\n * @nft\n */\nfunction useTransferNFT(contract) {\n const activeChainId = useSDKChainId();\n const contractAddress = contract?.getAddress();\n const queryClient = useQueryClient();\n const {\n erc1155,\n erc721\n } = getErcs(contract);\n return useMutation(data => {\n invariant(\"to\" in data, \"to not provided\");\n if (erc1155) {\n invariant(erc1155.transfer, \"contract does not support transfer\");\n requiredParamInvariant(data.tokenId, \"tokenId not provided\");\n invariant(\"amount\" in data, \"amount not provided\");\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return erc1155.transfer(data.to, data.tokenId, data.amount);\n }\n if (erc721) {\n return erc721.transfer(data.to, data.tokenId);\n }\n invariant(false, \"Unknown NFT type\");\n }, {\n onSettled: () => invalidateContractAndBalances(queryClient, contractAddress, activeChainId)\n });\n}\n\n/**\n * Hook for airdropping [`ERC1155`](https://portal.thirdweb.com/contracts/build/extensions/erc-1155/ERC1155) NFT tokens to multiple wallet addresses at once.\n *\n * Available to use on smart contracts that implement the `ERC1155` standard.\n *\n * Performs a batch transfer from the connected wallet to the specified addresses.\n * This means you need to have the total number of tokens you wish to airdrop available in the wallet that performs this transaction.\n *\n * @example\n * ```jsx\n * import { useAirdropNFT, useContract, Web3Button } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const { mutateAsync: airdropNft, isLoading, error } = useAirdropNFT(contract);\n *\n * return (\n * \n * airdropNft({\n * addresses: [\n * {\n * address: \"0x123\",\n * quantity: 1,\n * },\n * ],\n * tokenId: tokenId,\n * })\n * }\n * >\n * Airdrop NFT\n * \n * );\n * }\n * ```\n *\n * @param contract - Instance of a `Erc1155`\n * @returns Mutation object that to transfer batch NFTs\n *\n * ```ts\n * const { mutateAsync, isLoading, error } = useAirdropNFT(contract);\n * ```\n *\n * ### options\n * The mutation function takes an object with the following properties:\n *\n * #### tokenId\n * The token ID of the NFT to airdrop.\n *\n * #### addresses\n * An array of objects containing an `address` and `quantity` of NFTs to airdrop to each address.\n *\n * @twfeature ERC1155\n * @nft\n */\nfunction useAirdropNFT(contract) {\n const activeChainId = useSDKChainId();\n const contractAddress = contract?.getAddress();\n const queryClient = useQueryClient();\n return useMutation(_ref => {\n let {\n tokenId,\n addresses\n } = _ref;\n requiredParamInvariant(contract, \"contract is undefined\");\n invariant(contract.airdrop, \"contract does not support airdrop\");\n return contract.airdrop(tokenId, addresses);\n }, {\n onSettled: () => invalidateContractAndBalances(queryClient, contractAddress, activeChainId)\n });\n}\n\n/**\n * Hook for burning a NFT on a smart contract.\n *\n * Available to use on smart contracts that implement the [`ERC721`](https://portal.thirdweb.com/contracts/build/extensions/erc-721/ERC721)\n * or [`ERC1155`](https://portal.thirdweb.com/contracts/build/extensions/erc-1155/ERC1155) standard.\n *\n * @example\n *\n * ```jsx\n * import { useBurnNFT, useContract, Web3Button } from \"@thirdweb-dev/react\";\n *\n * const contractAddress = \"{{contract_address}}\";\n * // The tokenId of the NFT you want to burn\n * const tokenIdToBurn = \"{{tokenId}}}}\";\n * const amount = 1;\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const { mutateAsync: burnNft, isLoading, error } = useBurnNFT(contract);\n *\n * return (\n * \n * burnNft({\n * tokenId: tokenIdToBurn,\n * amount: amount,\n * })\n * }\n * >\n * Burn NFT\n * \n * );\n * }\n * ```\n *\n * @param contract - Instance of a `NFTContract`\n * @returns Mutation object that to burn an NFT token from the connected wallet\n *\n * ```ts\n * const { mutateAsync, isLoading, error } = useBurnNFT(contract);\n * ```\n *\n * ### options\n * The mutation function takes an object with the following properties:\n *\n * #### tokenId\n * The token ID of the NFT you want to burn.\n *\n * #### amount (optional)\n * When using ERC1155 NFTs, you can specify the quantity you want to burn.\n *\n * Defaults value is `1`\n *\n * @twfeature ERC721Burnable | ERC1155Burnable\n * @nft\n */\nfunction useBurnNFT(contract) {\n const activeChainId = useSDKChainId();\n const contractAddress = contract?.getAddress();\n const queryClient = useQueryClient();\n const {\n erc1155,\n erc721\n } = getErcs(contract);\n return useMutation(async data => {\n requiredParamInvariant(data.tokenId, \"No tokenId provided\");\n requiredParamInvariant(contract, \"contract is undefined\");\n if (erc1155) {\n invariant(\"amount\" in data, \"amount not provided\");\n const {\n tokenId,\n amount\n } = data;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return await erc1155.burn(tokenId, amount);\n }\n if (erc721) {\n const {\n tokenId\n } = data;\n return await erc721.burn(tokenId);\n }\n invariant(false, \"Unknown NFT type\");\n }, {\n onSettled: () => invalidateContractAndBalances(queryClient, contractAddress, activeChainId)\n });\n}\n\n/**\n * Set shared metadata\n * TODO add docs\n * @internal\n */\nfunction useSetSharedMetadata(contract) {\n const activeChainId = useSDKChainId();\n const contractAddress = contract?.getAddress();\n const queryClient = useQueryClient();\n const {\n erc721\n } = getErcs(contract);\n return useMutation(async data => {\n if (erc721) {\n return await erc721.sharedMetadata.set(data);\n }\n invariant(false, \"Unknown NFT type\");\n }, {\n onSettled: () => invalidateContractAndBalances(queryClient, contractAddress, activeChainId)\n });\n}\n\n/** **********************/\n/** UTILS **/\n/** **********************/\n\n/**\n * @internal\n */\n\n/**\n * @permissionControl\n */\n\n/**\n * @internal\n */\n\n/** **********************/\n/** READ HOOKS **/\n/** **********************/\n\n/**\n * Hook for getting all wallet addresses that have a role in a smart contract.\n *\n * Available to use on contracts that implement [`Permissions`](https://portal.thirdweb.com/contracts/build/extensions/general/Permissions).\n *\n * @example\n *\n * ```jsx\n * import { useAllRoleMembers, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const { data, isLoading, error } = useAllRoleMembers(contract);\n * }\n * ```\n *\n * @param contract - Instance of a `SmartContract`\n *\n * @returns\n * The hook's `data` property, once loaded, is an object, where the keys are the role names and the values are arrays of wallet addresses that have that role.\n *\n * For example, if the contract has two roles, `admin` and `transfer`, and the `admin` role has two members, the `data` property will look like this:\n *\n * ```ts\n * {\n * admin: [\"0x1234\", \"0x5678\"],\n * transfer: [],\n * }\n * ```\n *\n * #### Type\n *\n * ```ts\n * Record<\n * | \"admin\"\n * | \"transfer\"\n * | \"minter\"\n * | \"pauser\"\n * | \"lister\"\n * | \"asset\"\n * | \"unwrap\"\n * | \"factory\"\n * | (string & {}),\n * string[]\n * > | undefined;\n * ```\n *\n * @twfeature PermissionsEnumerable\n * @permissionControl\n */\nfunction useAllRoleMembers(contract) {\n const contractAddress = contract?.getAddress();\n return useQueryWithNetwork(cacheKeys.extensions.roles.getAll(contractAddress), () => {\n requiredParamInvariant(contract, \"No contract provided\");\n invariant(contract.roles, \"Contract does not support roles\");\n // have to cast to any because of role bs, type is defined in the useQueryWithNetwork definition above\n return contract.roles.getAll();\n }, {\n enabled: !!contract && !!contractAddress\n });\n}\n\n/**\n * Hook for getting all wallet addresses that have a specific role in a smart contract.\n *\n * Available to use on contracts that implement the [`Permissions`](https://portal.thirdweb.com/contracts/build/extensions/general/Permissions) interface.\n *\n * @example\n * ```jsx\n * import { useContract, useRoleMembers } from \"@thirdweb-dev/react\";\n *\n * // Your smart contract address (must implement permission controls)\n * const contractAddress = \"{{contract_address}}\";\n *\n * const roleName = \"admin\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const { data, isLoading, error } = useRoleMembers(contract, roleName);\n * }\n * ```\n *\n * @param contract - Instance of a `SmartContract`\n * @param role -\n * The name of the role to get the members of\n *\n * Can be any custom role, or a built-in role, such as:\n * - `\"admin\"`\n * - `\"transfer\"`\n * - `\"minter\"`\n * - `\"pauser\"`\n * - `\"lister\"`\n * - `\"asset\"`\n * - `\"unwrap\"`\n * - `\"factory\"`\n *\n * @returns The hook's `data` property, once loaded, is an array of wallet addresses that have the specified role\n *\n * @twfeature Permissions\n * @permissionControl\n */\nfunction useRoleMembers(contract, role) {\n const contractAddress = contract?.getAddress();\n return useQueryWithNetwork(cacheKeys.extensions.roles.get(contractAddress, role), () => {\n requiredParamInvariant(contract, \"No contract provided\");\n invariant(contract.roles, \"Contract does not support roles\");\n return contract.roles.get(role);\n }, {\n enabled: !!contract && !!contractAddress && !!role\n });\n}\n\n/**\n * Hook to check if an address is a member of a role on a smart contract.\n *\n * Available to use on contracts that implement [`Permissions`](https://portal.thirdweb.com/contracts/build/extensions/general/Permissions) interface\n *\n * Provide the following arguments to the hook:\n *\n * 1. `contract` - The contract instance to check the role on.\n * 2. `roleName` - The name of the role to check.\n * 3. `address` - The wallet address to see if it is a member of the role.\n *\n * @example\n *\n * ```jsx\n * import { useIsAddressRole, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const isMember = useIsAddressRole(contract, roleName, walletAddress);\n * }\n * ```\n *\n * @param contract - Instance of a `SmartContract`\n *\n * @param role - The name of the role to check. Can be any custom role, or a built-in role, such as:\n * - `\"admin\"`\n * - `\"transfer\"`\n * - `\"minter\"`\n * - `\"pauser\"`\n * - `\"lister\"`\n * - `\"asset\"`\n * - `\"unwrap\"`\n * - `\"factory\"`\n *\n * @param walletAddress -\n * The wallet address to check if it is a member of the role.\n * Use the `useAddress` hook to get the current wallet address.\n *\n * @returns `true` if the address is a member of the role, or `false` if not\n *\n * @twfeature PermissionsEnumerable\n * @permissionControl\n */\nfunction useIsAddressRole(contract, role, walletAddress) {\n // TODO this might be possible to do with `verify` fn instead?\n const contractHasRoles = !!(contract && contract.roles);\n const {\n data\n } = useRoleMembers(contractHasRoles ? contract : undefined, role);\n\n // if the contract does not have roles then everything is allowed === true\n if (contractHasRoles === false) {\n return true;\n }\n\n // switch logic (if address 0 is in the role list then anyone has permissions to it)\n if (data?.includes(constants.AddressZero)) {\n return true;\n }\n\n // actual role check logic\n return !!(walletAddress && data?.includes(walletAddress));\n}\n\n/** **********************/\n/** WRITE HOOKS **/\n/** **********************/\n\n/**\n * Overwrite the list of members for specific roles\n *\n * @example\n * ```jsx\n * const Component = () => {\n * const { contract } = useContract(\"{{contract_address}}\");\n * const {\n * mutate: overwriteRoles,\n * isLoading,\n * error,\n * } = useSetAllRoleMembers(contract);\n *\n * if (error) {\n * console.error(\"failed to overwrite roles\", error);\n * }\n *\n * return (\n * overwriteRoles({ rolesWithAddresses: { minter: [\"{{wallet_address}\"] } })}\n * >\n * Overwrite Roles\n * \n * );\n * };\n * ```\n *\n * @param contract - Instance of a `SmartContract`\n * @returns A mutation object to overwrite all roles on the contract\n * @twfeature Permissions\n * @permissionControl\n */\nfunction useSetAllRoleMembers(contract) {\n const activeChainId = useSDKChainId();\n const contractAddress = contract?.getAddress();\n const queryClient = useQueryClient();\n return useMutation(async rolesWithAddresses => {\n requiredParamInvariant(contract, \"No contract provided\");\n invariant(contract.roles, \"Contract does not support roles\");\n await contract.roles.setAll(rolesWithAddresses);\n }, {\n onSettled: () => invalidateContractAndBalances(queryClient, contractAddress, activeChainId)\n });\n}\n\n/**\n * Hook for granting a role on a smart contract.\n *\n * Available to use on smart contracts that implement the [`Permissions`](https://portal.thirdweb.com/contracts/build/extensions/general/Permissions) interface.\n *\n * @example\n * ```jsx\n * import { useGrantRole, useContract, Web3Button } from \"@thirdweb-dev/react\";\n *\n * const contractAddress = \"{{contract_address}}\";\n * const roleToGrant = \"{{role}}\";\n * const walletAddressToGrant = \"{{wallet_address}}\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const { mutateAsync: grantRole, isLoading, error } = useGrantRole(contract);\n *\n * return (\n * \n * grantRole({\n * role: roleToGrant, // name of your role.\n * address: walletAddressToGrant, // address to grant the role to.\n * })\n * }\n * >\n * Grant Role\n * \n * );\n * }\n * ```\n *\n * @param contract - Instance of a `SmartContract`\n *\n * @returns A mutation object to grant a member of a role on the contract\n *\n * ```ts\n * const { mutateAsync, isLoading, error } = useGrantRole(contract);\n * ```\n *\n * ### options\n * The mutation function accepts an object with the following properties:\n *\n * #### role\n * The name of the role to grant the address.\n *\n * Accepts any `string` value to include custom-defined roles.\n *\n * Also accepts the default roles available on the [prebuilt contracts](https://portal.thirdweb.com/pre-built-contracts):\n *\n * ```ts\n * string |\n * \"admin\" |\n * \"minter\" |\n * \"transfer\" |\n * \"lister\" |\n * \"asset\" |\n * \"unwrap\" |\n * \"pauser\" |\n * \"factory\";\n * ```\n *\n * #### address\n * The address to grant the role to.\n *\n * To use the address of the connected wallet, use the `useAddress` hook.\n *\n * @twfeature Permissions | PermissionsEnumerable\n * @permissionControl\n */\nfunction useGrantRole(contract) {\n const activeChainId = useSDKChainId();\n const contractAddress = contract?.getAddress();\n const queryClient = useQueryClient();\n return useMutation(async params => {\n requiredParamInvariant(contract, \"No contract provided\");\n invariant(contract.roles, \"Contract does not support roles\");\n await contract.roles.grant(params.role, params.address);\n }, {\n onSettled: () => invalidateContractAndBalances(queryClient, contractAddress, activeChainId)\n });\n}\n\n/**\n * Hook for revoking a wallet address from a role on a smart contract.\n *\n * Available to use on contracts that implement [`Permissions`](https://portal.thirdweb.com/contracts/build/extensions/general/Permissions) interface\n *\n * The wallet address that initiates this transaction must have the relevant permissions on the contract to remove the role from the wallet address (typically `\"admin\"` level required).\n *\n * ```jsx\n * import { useContract, useRevokeRole, Web3Button } from \"@thirdweb-dev/react\";\n *\n * // Your smart contract address (must implement permission controls)\n * const contractAddress = \"{{contract_address}}\";\n * const walletAddress = \"{{wallet_address}}\";\n *\n * function App() {\n * // Contract must be a contract that implements the Permission Controls interface\n * const { contract } = useContract(contractAddress);\n * const { mutateAsync: revokeRole, isLoading, error } = useRevokeRole(contract);\n *\n * return (\n * \n * revokeRole({\n * role: \"admin\",\n * address: walletAddress,\n * })\n * }\n * >\n * Revoke Role\n * \n * );\n * }\n * ```\n *\n * @param contract - Instance of a `SmartContract`\n *\n * @returns A mutation object to revoke a role from a member on the contract\n * #### role (required)\n *\n * The role to revoke from the wallet address.\n *\n * Can be any custom role, or a built-in role, such as:\n * - `\"admin\"`\n * - `\"transfer\"`\n * - `\"minter\"`\n * - `\"pauser\"`\n * - `\"lister\"`\n * - `\"asset\"`\n * - `\"unwrap\"`\n * - `\"factory\"`\n *\n * #### address\n *\n * The wallet address to revoke the role from.\n *\n * To use the connected wallet address, use the `useAddress` hook.\n *\n * @twfeature Permissions | PermissionsEnumerable\n * @permissionControl\n */\nfunction useRevokeRole(contract) {\n const activeChainId = useSDKChainId();\n const contractAddress = contract?.getAddress();\n const queryClient = useQueryClient();\n return useMutation(async params => {\n requiredParamInvariant(contract, \"No contract provided\");\n invariant(contract.roles, \"Contract does not support roles\");\n await contract.roles.revoke(params.role, params.address);\n }, {\n onSettled: () => invalidateContractAndBalances(queryClient, contractAddress, activeChainId)\n });\n}\n\n/** **********************/\n/** READ HOOKS **/\n/** **********************/\n\n/**\n * Hook for fetching the total supply of an ERC20 token.\n *\n * This takes into account the increase and decrease in supply when tokens are minted and burned.\n *\n * @example\n * ```jsx\n * import { useTokenSupply } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { data, isLoading, error } = useTokenSupply(contractAddress);\n * }\n * ```\n *\n * @param contract - Instance of a `TokenContract`\n *\n * @returns Hook's `data` object includes the total supply of the token in the `value` property as a `BigNumber` object.\n *\n * @twfeature ERC20\n * @token\n */\nfunction useTokenSupply(contract) {\n const contractAddress = contract?.getAddress();\n return useQueryWithNetwork(cacheKeys.contract.token.totalSupply(contractAddress), () => {\n requiredParamInvariant(contract, \"No Contract instance provided\");\n const erc20 = getErc20(contract);\n if (erc20) {\n return erc20.totalSupply();\n }\n invariant(false, \"Smart contract is not a valid erc20 contract\");\n }, {\n enabled: !!contract || !!contractAddress\n });\n}\n\n/**\n * Hook for fetching the balance a wallet has for a specific ERC20 token.\n *\n * __This hook is for _custom_ ERC20 tokens. For native tokens such as Ether, use `useBalance` or `useBalanceForAddress`__\n *\n * Available to use on contracts that implement the ERC20 interface.\n *\n * @example\n * ```jsx\n * import { useTokenBalance, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress, \"token\");\n * const { data, isLoading, error } = useTokenBalance(contract, walletAddress);\n * }\n * ```\n *\n * @param contract - Instance of a `TokenContract`\n *\n * @returns Hook's `data` object includes the token balance for given wallet address\n *\n * @twfeature ERC20\n * @token\n */\nfunction useTokenBalance(contract, walletAddress) {\n const contractAddress = contract?.getAddress();\n const erc20 = getErc20(contract);\n return useQueryWithNetwork(cacheKeys.contract.token.balanceOf(contractAddress, walletAddress), async () => {\n requiredParamInvariant(contract, \"No Contract instance provided\");\n invariant(walletAddress, \"No address provided\");\n if (erc20) {\n return await erc20.balanceOf(walletAddress);\n }\n invariant(false, \"Smart contract is not a valid erc20 contract\");\n }, {\n enabled: !!walletAddress && !!contract\n });\n}\n\n/**\n * Hook for fetching the [decimals](https://docs.openzeppelin.com/contracts/3.x/erc20#a-note-on-decimals)\n * of an [ERC20](https://portal.thirdweb.com/contracts/build/extensions/erc-20/ERC20) token.\n *\n * Tokens usually opt for a value of `18`, imitating the relationship between Ether and Wei.\n * Therefore, `18` is the default value returned by this function, unless your ERC20 contract explicitly overrides it.\n *\n * @example\n *\n * ```jsx\n * import { useTokenDecimals, useContract } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress, \"token\");\n * const { data, isLoading, error } = useTokenDecimals(contract);\n * }\n * ```\n *\n * @param contract - Instance of a `TokenContract`\n *\n * @returns The hook's `data` property, once loaded, contains the `number` that represents the number of decimals of the ERC20 token.\n *\n * @twfeature ERC20\n * @token\n */\nfunction useTokenDecimals(contract) {\n const contractAddress = contract?.getAddress();\n const erc20 = getErc20(contract);\n return useQueryWithNetwork(cacheKeys.contract.token.decimals(contractAddress), async () => {\n requiredParamInvariant(contract, \"No Contract instance provided\");\n if (erc20) {\n return (await erc20.get()).decimals;\n }\n invariant(false, \"Smart contract is not a valid erc20 contract\");\n }, {\n enabled: !!contract\n });\n}\n\n/** **********************/\n/** WRITE HOOKS **/\n/** **********************/\n\n/**\n * Hook for minting new tokens in an ERC20 smart contract.\n *\n * Available to use on contracts that implement the [ERC20Mintable](https://portal.thirdweb.com/contracts/build/extensions/erc-20/ERC20BatchMintable)\n * interface, such as the [Token](https://thirdweb.com/thirdweb.eth/TokenERC20) contract.\n *\n * The wallet address that initiates this transaction must have minting permissions on the contract.\n *\n * @example\n *\n * ```jsx\n * import { useContract, useMintToken, Web3Button } from \"@thirdweb-dev/react\";\n *\n * const contractAddress = \"{{contract_address}}\";\n * const walletAddress = \"{{wallet_address}}\";\n * const tokenAmount = \"{{token_amount}}\";\n *\n * function App() {\n * // Contract must be an ERC-20 contract that implements the ERC20Mintable interface\n * const { contract } = useContract(contractAddress, \"token\");\n * const { mutateAsync: mintToken, isLoading, error } = useMintToken(contract);\n *\n * return (\n * \n * mintToken({\n * amount: tokenAmount, // Quantity to mint\n * to: walletAddress, // Address to mint to\n * })\n * }\n * >\n * Mint Token\n * \n * );\n * }\n * ```\n *\n * @param contract - Instance of a `TokenContract`\n *\n * @returns A mutation object to mint new tokens to the connected wallet\n *\n * ```ts\n * const { mutateAsync, isLoading, error } = useMintToken(contract);\n * ```\n *\n * ### options\n * The mutation function takes an object as an argument with the following properties:\n *\n * #### amount\n * The quantity of tokens to mint. Can be a `string` or `number`.\n *\n * #### to\n * The wallet address to mint the new tokens to.\n *\n * To use the connected wallet address, use the `useAddress` hook.\n *\n * @twfeature ERC20Mintable\n * @token\n */\nfunction useMintToken(contract) {\n const activeChainId = useSDKChainId();\n const contractAddress = contract?.getAddress();\n const queryClient = useQueryClient();\n const erc20 = getErc20(contract);\n return useMutation(data => {\n const {\n to,\n amount\n } = data;\n requiredParamInvariant(contract, \"contract is undefined\");\n if (erc20) {\n return erc20.mintTo(to, amount);\n }\n invariant(false, \"Smart contract is not a valid erc20 contract\");\n }, {\n onSettled: () => invalidateContractAndBalances(queryClient, contractAddress, activeChainId)\n });\n}\n\n/**\n * Hook for claiming a ERC20 tokens from a smart contract.\n *\n * Available to use on smart contracts that implement both the [ERC20](https://portal.thirdweb.com/contracts/build/extensions/erc-20/ERC20) interface\n * and the [`claim`](https://portal.thirdweb.com/contracts/build/extensions/erc-721/ERC721Claimable) function,\n * such as the [Token Drop](https://thirdweb.com/thirdweb.eth/DropERC20).\n *\n * @example\n *\n * ```jsx\n * import { useClaimToken, useContract, Web3Button } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const { mutateAsync: claimToken, isLoading, error } = useClaimToken(contract);\n *\n * return (\n * \n * claimToken({\n * to: \"{{wallet_address}}\", // Use useAddress hook to get current wallet address\n * amount: 100, // Amount of token to claim\n * })\n * }\n * >\n * Claim Token\n * \n * );\n * }\n * ```\n *\n * @param contract - Instance of a `TokenContract`\n *\n * @returns A mutation object to tokens to the wallet specified in the params\n *\n * ```ts\n * const { mutateAsync, isLoading, error } = useClaimToken(contract);\n * ```\n *\n * ### options\n * The mutation function takes an object as an argument with the following properties:\n *\n * #### to (required)\n * Likely, you will want to claim the token to the currently connected wallet address.\n *\n * You can use the `useAddress` hook to get this value.\n *\n * #### amount (required)\n * The amount of tokens to be claimed.\n *\n * #### checkERC20Allowance (optional)\n * Boolean value to check whether the current wallet has enough allowance to pay for claiming the tokens before\n * attempting to claim the tokens.\n *\n * Defaults to `true`.\n *\n * @twfeature ERC20ClaimPhasesV2 | ERC20ClaimPhasesV1 | ERC20ClaimConditionsV2 | ERC20ClaimConditionsV1\n * @token\n */\nfunction useClaimToken(contract) {\n const activeChainId = useSDKChainId();\n const contractAddress = contract?.getAddress();\n const queryClient = useQueryClient();\n const erc20 = getErc20(contract);\n return useMutation(async data => {\n invariant(data.to, 'No \"to\" address provided');\n if (erc20) {\n invariant(erc20?.claimTo, \"contract does not support claimTo\");\n return await erc20.claimTo(data.to, data.amount, {\n checkERC20Allowance: data.checkERC20Allowance\n });\n }\n invariant(false, \"Smart contract is not a valid erc20 contract\");\n }, {\n onSettled: () => invalidateContractAndBalances(queryClient, contractAddress, activeChainId)\n });\n}\n\n/**\n * Hook for transferring tokens on an ERC20 contract.\n *\n * Available to use on contracts that implement the [ERC20](https://portal.thirdweb.com/contracts/build/extensions/erc-20/ERC20)\n * interface, such as the [Token](https://thirdweb.com/thirdweb.eth/TokenERC20) contract.\n *\n * The wallet address that initiates this transaction must have a balance of tokens\n * greater than or equal to the amount being transferred.\n *\n * @example\n * ```jsx\n * import { useContract, useTransferToken, Web3Button } from \"@thirdweb-dev/react\";\n *\n * const contractAddress = \"{{contract_address}}\";\n * const toAddress = \"{{to_address}}\";\n * const amount = \"{{amount}}\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const {\n * mutate: transferTokens,\n * isLoading,\n * error,\n * } = useTransferToken(contract);\n *\n * return (\n * \n * transferTokens({\n * to: toAddress, // Address to transfer to\n * amount: amount, // Amount to transfer\n * })\n * }\n * >\n * Transfer\n * \n * );\n * }\n * ```\n *\n * @param contract - Instance of a `TokenContract`\n *\n * @returns A mutation object to transfer tokens\n *\n * ```ts\n * const { mutateAsync, isLoading, error } = useTransferToken(contract);\n * ```\n *\n * ### options\n * The mutation function takes an object as an argument with the following properties:\n *\n * #### to\n * The wallet address to transfer tokens to.\n *\n * #### amount\n * The quantity of tokens to transfer. Can be a `string` or `number`.\n *\n * @twfeature ERC20\n * @token\n */\nfunction useTransferToken(contract) {\n const activeChainId = useSDKChainId();\n const contractAddress = contract?.getAddress();\n const queryClient = useQueryClient();\n const erc20 = getErc20(contract);\n return useMutation(data => {\n const {\n to,\n amount\n } = data;\n if (erc20) {\n invariant(erc20?.transfer, \"contract does not support transfer\");\n return erc20.transfer(to, amount);\n }\n invariant(false, \"Smart contract is not a valid erc20 contract\");\n }, {\n onSettled: () => invalidateContractAndBalances(queryClient, contractAddress, activeChainId)\n });\n}\n\n/**\n * A hook to transfer native token (of the active chain) to another wallet\n *\n * @example\n * ```jsx\n * const Component = () => {\n * const {\n * mutate: transferNativeToken,\n * isLoading,\n * error,\n * } = useTransferNativeToken();\n *\n * if (error) {\n * console.error(\"failed to transfer tokens\", error);\n * }\n *\n * return (\n * transferNativeToken({ to: \"{{wallet_address}}\", amount: \"0.1\" })}\n * >\n * Transfer\n * \n * );\n * };\n * ```\n *\n * @returns A Mutation object to transfer native tokens\n *\n * ```ts\n * const { mutateAsync, isLoading, error } = useTransferNativeToken();\n * ```\n *\n * ### options\n * The mutation function takes an object containing `to` and `amount` properties.\n *\n * - `to` - The wallet address to transfer tokens to. Must be a `string`.\n * - `amount` - The amount of tokens to transfer. Must be a `number`.\n *\n * @token\n */\nfunction useTransferNativeToken() {\n const sdk = useSDK();\n const activeChainId = useSDKChainId();\n const queryClient = useQueryClient();\n return useMutation(data => {\n const {\n to,\n amount\n } = data;\n invariant(sdk, \"SDK is not initialized\");\n return sdk.wallet.transfer(to, amount);\n }, {\n onSettled: () => invalidateBalances(queryClient, activeChainId)\n });\n}\n\n/**\n * Hook for transferring ERC20 tokens to multiple recipients in a single transaction (i.e. airdrop).\n *\n * Available to use on contracts that implement the [ERC20](https://portal.thirdweb.com/contracts/build/extensions/erc-20/ERC20) interface.\n *\n * The wallet that initiates this transaction must have sufficient balance to cover the total amount of tokens being transferred\n * and must have transfer permissions on the contract, i.e. tokens are not soulbound.\n *\n * @example\n *\n * Provide your token contract instance from the `useContract` hook to the hook.\n *\n * Then, provide an array of objects with the `to` and `amount` properties to the function.\n *\n * ```jsx\n * import {\n * useTransferBatchToken,\n * useContract,\n * Web3Button,\n * } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress, \"token\");\n * const {\n * mutateAsync: transferBatchToken,\n * isLoading,\n * error,\n * } = useTransferBatchToken(contract);\n *\n * return (\n * \n * transferBatchToken([\n * {\n * to: \"{{wallet_address}}\", // Transfer 10 tokens to a wallet\n * amount: 10,\n * },\n * {\n * to: \"{{wallet_address}}\", // Transfer 20 tokens to another wallet\n * amount: 20,\n * },\n * ])\n * }\n * >\n * Transfer Batch Tokens\n * \n * );\n * }\n * ```\n *\n * @param contract - Instance of a `TokenContract`\n *\n * @returns A Mutation object to transfer batch tokens\n *\n * ```ts\n * const { mutateAsync, isLoading, error } = useTransferBatchToken(contract);\n * ```\n *\n * ### options\n *\n * The mutation function takes an array of objects containing `to` and `amount` properties.\n *\n * - `to` - The wallet address to transfer tokens to. Must be a `string`.\n * - `amount` - The amount of tokens to transfer. Must be a `number`.\n *\n * @twfeature ERC20\n * @token\n */\nfunction useTransferBatchToken(contract) {\n const activeChainId = useSDKChainId();\n const contractAddress = contract?.getAddress();\n const queryClient = useQueryClient();\n const erc20 = getErc20(contract);\n return useMutation(data => {\n if (erc20) {\n invariant(erc20.transferBatch, \"contract does not support transferBatch\");\n const convertedData = data.map(token => ({\n toAddress: token.to,\n amount: token.amount\n }));\n return erc20.transferBatch(convertedData);\n }\n invariant(false, \"Smart contract is not a valid erc20 contract\");\n }, {\n onSettled: () => invalidateContractAndBalances(queryClient, contractAddress, activeChainId)\n });\n}\n\n/**\n * Hook for burning ERC20 tokens on a smart contract.\n *\n * Available to use on smart contracts that implement the [ERC20](https://portal.thirdweb.com/contracts/build/extensions/erc-20/ERC20) standard.\n *\n * @example\n *\n * ```jsx\n * import { useBurnToken, useContract, Web3Button } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { contract } = useContract(contractAddress);\n * const { mutateAsync: burnToken, isLoading, error } = useBurnToken(contract);\n *\n * return (\n * \n * burnToken({\n * amount: \"10\", // Amount of tokens to burn\n * })\n * }\n * >\n * Burn Token\n * \n * );\n * }\n * ```\n *\n * @param contract - Instance of a `TokenContract`\n *\n * @returns\n * A mutation object to burn tokens from the connected wallet\n * ```ts\n * const { mutateAsync, isLoading, error } = useBurnToken(contract);\n * ```\n *\n * ### options\n * The mutation function takes an object as an argument with the following properties:\n *\n * #### amount (required)\n * The amount of tokens to burn.\n *\n * The wallet initiating this transaction must have at least this amount of tokens.\n *\n * @twfeature ERC20Burnable\n * @token\n */\nfunction useBurnToken(contract) {\n const activeChainId = useSDKChainId();\n const contractAddress = contract?.getAddress();\n const queryClient = useQueryClient();\n const erc20 = getErc20(contract);\n return useMutation(data => {\n const {\n amount\n } = data;\n requiredParamInvariant(contract, \"contract is undefined\");\n if (erc20) {\n invariant(erc20.burn, \"contract does not support burn\");\n return erc20.burn(amount);\n }\n invariant(false, \"Smart contract is not a valid erc20 contract\");\n }, {\n onSettled: () => invalidateContractAndBalances(queryClient, contractAddress, activeChainId)\n });\n}\n\n/** **********************/\n/** READ HOOKS **/\n/** **********************/\n\n/**\n * Get all accounts\n *\n * @example\n * ```javascript\n * const { data: accounts, isLoading, error } = useAccounts(contract);\n * ```\n *\n * @param contract - Instance of a account factory contract\n * @returns Query result object that includes an array of all accounts with their associated admin\n * @twfeature AccountFactory\n * @smartWallet\n */\nfunction useAccounts(contract) {\n const contractAddress = contract?.getAddress();\n return useQueryWithNetwork(cacheKeys.contract.accountFactory.getAll(contractAddress), () => {\n requiredParamInvariant(contract, \"No Contract instance provided\");\n invariant(contract.accountFactory.getAllAccounts, \"Contract instance does not support contract.accountFactory.getAllAccounts\");\n return contract.accountFactory.getAllAccounts();\n }, {\n enabled: !!contract\n });\n}\n\n/**\n * Get all accounts associated with the provided address\n *\n * @example\n * ```javascript\n * const { data: accountsForAddress, isLoading, error } = useAccountsForAddress(contract, \"{{account_address}}\");\n * ```\n *\n * @param contract - Instance of a account factory contract\n * @param address - The address to get associated accounts for\n * @returns Query result object that includes an array of all accounts associated with the address\n *\n * @twfeature AccountFactory\n * @smartWallet\n */\nfunction useAccountsForAddress(contract, address) {\n const contractAddress = contract?.getAddress();\n return useQueryWithNetwork(cacheKeys.contract.accountFactory.getAllForAddress(contractAddress, address), () => {\n requiredParamInvariant(contract, \"No Contract instance provided\");\n invariant(contract.accountFactory.getAssociatedAccounts, \"Contract instance does not support contract.accountFactory.getAssociatedAccounts\");\n return contract.accountFactory.getAssociatedAccounts(address || \"\");\n }, {\n enabled: !!contract\n });\n}\n\n/**\n * Check if a account has been deployed for the given admin in the account factory contract\n *\n * @example\n * ```javascript\n * const { data: isAccountDeployed, isLoading, error } = useIsAccountDeployed(contract);\n * ```\n *\n * @param contract - Instance of a account factory contract\n * @returns A boolean indicating if a account has been deployed for the given admin\n * @twfeature AccountFactory\n * @smartWallet\n */\nfunction useIsAccountDeployed(contract, admin, extraData) {\n const contractAddress = contract?.getAddress();\n return useQueryWithNetwork(cacheKeys.contract.accountFactory.isAccountDeployed(contractAddress, admin), () => {\n requiredParamInvariant(contract, \"No Contract instance provided\");\n invariant(contract.accountFactory.isAccountDeployed, \"Contract instance does not support contract.accountFactory.getAllAccounts\");\n invariant(admin, \"No account address provided\");\n return contract.accountFactory.isAccountDeployed(admin, extraData);\n }, {\n enabled: !!contract\n });\n}\n\n/** **********************/\n/** WRITE HOOKS **/\n/** **********************/\n/**\n * Create a account in the account factory contract\n *\n * @example\n * ```jsx\n * const Component = () => {\n * const { contract } = useContract(\"{{contract_address}}\");\n * const {\n * mutate: createAccount,\n * isLoading,\n * error,\n * } = useCreateAccount(contract);\n *\n * if (error) {\n * console.error(\"failed to create account\", error);\n * }\n *\n * return (\n * createAccount(\"0x...\")}\n * >\n * Create Account\n * \n * );\n * };\n * ```\n *\n * @param contract - Instance of a account factory contract\n * @returns A mutation object to create a account\n * @twfeature AccountFactory\n * @smartWallet\n */\nfunction useCreateAccount(contract) {\n const activeChainId = useSDKChainId();\n const contractAddress = contract?.getAddress();\n const queryClient = useQueryClient();\n return useMutation(async (admin, extraData) => {\n requiredParamInvariant(contract, \"contract is undefined\");\n return contract.accountFactory.createAccount(admin, extraData);\n }, {\n onSettled: () => invalidateContractAndBalances(queryClient, contractAddress, activeChainId)\n });\n}\n\n/** **********************/\n/** READ HOOKS **/\n/** **********************/\n\n/**\n * Get all signers of account\n *\n * @example\n * ```javascript\n * const { data: accounts, isLoading, error } = useAccountSigners(contract);\n * ```\n *\n * @param contract - Instance of a `SmartContract`\n * @returns hook's `data` property contains an array of all signers\n * @twfeature Account\n * @smartWallet\n */\nfunction useAccountSigners(contract) {\n const contractAddress = contract?.getAddress();\n return useQueryWithNetwork(cacheKeys.contract.account.signers(contractAddress), () => {\n requiredParamInvariant(contract, \"No Contract instance provided\");\n invariant(contract.account.getAllSigners, \"Contract instance does not support contract.account.getAllSigners\");\n return contract.account.getAllSigners();\n }, {\n enabled: !!contract\n });\n}\n\n/**\n * Get all the admins on a smart wallet account\n *\n * @example\n * ```javascript\n * const { data: accounts, isLoading, error } = useAccountAdmins(contract);\n * ```\n *\n * @param contract - Instance of `SmartContract`\n * @returns The hook's `data` property, once loaded, contains an array of all admins of the provided account\n * @twfeature Account\n * @smartWallet\n */\nfunction useAccountAdmins(contract) {\n const contractAddress = contract?.getAddress();\n return useQueryWithNetwork(cacheKeys.contract.account.signers(contractAddress), () => {\n requiredParamInvariant(contract, \"No Contract instance provided\");\n invariant(contract.account.getAllAdmins, \"Contract instance does not support contract.account.getAllAdmins\");\n return contract.account.getAllAdmins();\n }, {\n enabled: !!contract\n });\n}\n\n/**\n * Get all signers and admins on a smart wallet account.\n *\n * ```jsx\n * import { useAccountAdminsAndSigners } from \"@thirdweb-dev/react\";\n *\n * const { data: accounts, isLoading, error } = useAccountAdminsAndSigners(contract);\n * ```\n *\n * @param contract - Instance of `SmartContract`\n * @returns hook's `data` property containing an array of all admins and signers\n *\n * @twfeature Account\n * @smartWallet\n */\nfunction useAccountAdminsAndSigners(contract) {\n const contractAddress = contract?.getAddress();\n return useQueryWithNetwork(cacheKeys.contract.account.signers(contractAddress), () => {\n requiredParamInvariant(contract, \"No Contract instance provided\");\n invariant(contract.account.getAllAdminsAndSigners, \"Contract instance does not support contract.account.getAllAdminsAndSigners\");\n return contract.account.getAllAdminsAndSigners();\n }, {\n enabled: !!contract\n });\n}\n\n/** **********************/\n/** WRITE HOOKS **/\n/** **********************/\n\n/**\n * Create and add a session key for the smart wallet account\n *\n * @example\n * ```jsx\n * const Component = () => {\n * const {\n * mutate: createSessionKey,\n * isLoading,\n * error,\n * } = useCreateSessionKey();\n *\n * if (error) {\n * console.error(\"failed to create session key\", error);\n * }\n *\n * return (\n * createSessionKey(\n * keyAddress,\n * {\n * approvedCallTargets: [\"0x...\"], // the addresses of contracts that the session key can call\n * nativeTokenLimitPerTransaction: 0.1, // the maximum amount of native token (in ETH) that the session key can spend per transaction\n * startDate: new Date(), // the date when the session key becomes active\n * expirationDate = new Date(Date.now() + 24 * 60 * 60 * 1000); // the date when the session key expires\n * }\n * )}\n * >\n * Create Session Key\n * \n * );\n * };\n * ```\n *\n * @twfeature Account\n *\n * @returns Mutation object to create and add a session key for the smart wallet\n *\n * ```ts\n * const { mutateAsync, isLoading, error } = useCreateSessionKey();\n * ```\n *\n * ### options\n * The mutation function takes an object with the following properties as argument:\n *\n * #### address\n * The address to add as an admin on the account as a `string`.\n *\n * #### approvedCallTargets\n * An array of addresses that the session key can call as a `string[]`.\n *\n * #### nativeTokenLimitPerTransaction\n * The maximum amount of native token (in ETH) that the session key can spend per transaction as a `number`.\n *\n * #### startDate\n * The date when the session key becomes active as a `Date`.\n *\n * #### startDate\n * The date when the session key expires as a `Date`.\n *\n * @smartWallet\n */\nfunction useCreateSessionKey() {\n const smartWallet = useWallet(\"smartWallet\");\n return useMutation(async args => {\n requiredParamInvariant(smartWallet, \"wallet is not connected\");\n return smartWallet.createSessionKey(args.keyAddress, args.permissions);\n });\n}\n\n/**\n * Revoke a session key (or signer) on the smart wallet account\n *\n * @example\n * ```jsx\n * import { useRevokeSessionKey } from \"@thirdweb-dev/react\";\n *\n * // Your ERC20 token smart contract address\n * const keyAddress = \"{{key_address}}\";\n *\n * const Component = () => {\n * const { mutate: revokeSessionKey, isLoading, error } = useRevokeSessionKey();\n *\n * if (error) {\n * console.error(\"failed to revoke session key\", error);\n * }\n *\n * return (\n * \n * );\n * };\n * ```\n *\n * @twfeature Account\n * @returns\n * Mutation object to revoke a session key (or signer) on the smart wallet\n *\n * ```ts\n * const { mutateAsync, isLoading, error } = useRevokeSessionKey();\n * ```\n *\n * The mutation function takes an address of type `string` to remove as an admin.\n *\n * @smartWallet\n */\nfunction useRevokeSessionKey() {\n const smartWallet = useWallet(\"smartWallet\");\n return useMutation(async keyAddress => {\n requiredParamInvariant(smartWallet, \"wallet is not connected\");\n return smartWallet.revokeSessionKey(keyAddress);\n });\n}\n\n/**\n * Add an additional admin on the smart wallet account\n *\n * @example\n * ```jsx\n * import { useAddAdmin } from \"@thirdweb-dev/react\";\n *\n * const adminAddress = \"{{admin_address}}\";\n *\n * const Component = () => {\n * const { mutate: addAdmin, isLoading, error } = useAddAdmin();\n *\n * if (error) {\n * console.error(\"failed to add admin\", error);\n * }\n *\n * return (\n * \n * );\n * };\n * ```\n *\n * @returns mutation object to add given address as an admin\n *\n * @twfeature Account\n * @smartWallet\n */\nfunction useAddAdmin() {\n const smartWallet = useWallet(\"smartWallet\");\n return useMutation(async adminAddress => {\n requiredParamInvariant(smartWallet, \"wallet is not connected\");\n return smartWallet.addAdmin(adminAddress);\n });\n}\n\n/**\n * Remove an admin on the smart wallet account. This action has to be performed by an admin on the account.\n *\n * ```jsx\n * import { useRemoveAdmin } from \"@thirdweb-dev/react\";\n *\n * const adminAddress = \"{{admin_address}}\";\n *\n * const Component = () => {\n * const { mutate: removeAdmin, isLoading, error } = useRemoveAdmin();\n *\n * if (error) {\n * console.error(\"failed to remove admin\", error);\n * }\n *\n * return (\n * \n * );\n * };\n * ```\n *\n * @twfeature Account\n * @returns mutation object to remove given address as an admin\n * @smartWallet\n */\nfunction useRemoveAdmin() {\n const smartWallet = useWallet(\"smartWallet\");\n return useMutation(async adminAddress => {\n requiredParamInvariant(smartWallet, \"wallet is not connected\");\n return smartWallet.removeAdmin(adminAddress);\n });\n}\n\n/**\n * Hook to get `ThirdwebAuth` instance\n * @auth\n */\nfunction useAuth() {\n const wallet = useWallet();\n const authConfig = useThirdwebAuthContext();\n return useMemo(() => {\n if (!authConfig?.domain) {\n return undefined;\n }\n if (!wallet) {\n return undefined;\n }\n return new ThirdwebAuth(wallet, authConfig.domain);\n }, [wallet, authConfig?.domain]);\n}\n\n/**\n * Hook to prompt the user to sign in with their wallet using [auth](https://portal.thirdweb.com/wallets/auth)\n *\n * Requires the `authConfig` prop to be configured on the `ThirdwebProvider`\n *\n * @example\n *\n * ```jsx\n * import { useLogin } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { isLoading, login } = useLogin();\n *\n * return (\n * \n * );\n * }\n * ```\n *\n * @returns A function to invoke to login with the connected wallet, and an `isLoading` state that indicates if the login request is in progress\n *\n * ### login\n *\n * The `login` function accepts an optional `LoginOptions` object as an argument.\n *\n * This configuration follows the [EIP-4361](https://eips.ethereum.org/EIPS/eip-4361) Sign in with Ethereum standard.\n *\n * ```jsx\n * import { useLogin, Web3Button } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { login, isLoading } = useLogin();\n *\n * const loginOptions = {\n * domain: \"https://your-domain.com\", // Your dapp domain\n * statement: \"My statement\", // Text that the user will sign\n * uri: \"https://your-domain.com/login\", // RFC 3986 URI referring to the resource that is the subject of the signing\n * version: \"1.0\", // The current version of the message, which MUST be 1 for this specification.\n * chainId: \"mainnet\", // Chain ID to which the session is bound\n * nonce: \"my-nonce\", // randomized token typically used to prevent replay attacks\n * expirationTime: new Date(2021, 1, 1), // When this message expires\n * invalidBefore: new Date(2020, 12, 1), // When this message becomes valid\n * resources: [\"balance\", \"history\", \"info\"], // A list of information or references to information the user wishes to have resolved\n * };\n *\n * return login(loginOptions)}>Login;\n * }\n * ```\n *\n * @auth\n */\nfunction useLogin() {\n const queryClient = useQueryClient();\n const authConfig = useThirdwebAuthContext();\n const wallet = useWallet();\n const login = useMutation({\n mutationFn: async () => {\n invariant(authConfig, \"Please specify an authConfig in the ThirdwebProvider\");\n invariant(wallet, \"You need a connected wallet to login.\");\n invariant(authConfig.authUrl, \"Please specify an authUrl in the authConfig.\");\n const address = await wallet.getAddress();\n const chainId = await wallet.getChainId();\n let res = await fetch(`${authConfig.authUrl}/payload`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n address,\n chainId: chainId.toString()\n })\n });\n if (!res.ok) {\n throw new Error(`Failed to get payload with status code ${res.status}`);\n }\n let payloadData;\n try {\n ({\n payload: payloadData\n } = await res.json());\n } catch {\n throw new Error(`Failed to get payload`);\n }\n const payload = await signLoginPayload({\n wallet,\n payload: payloadData\n });\n res = await fetch(`${authConfig.authUrl}/login`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n payload\n }),\n credentials: \"include\"\n });\n if (!res.ok) {\n const data = await res.json();\n if (data.error) {\n throw new Error(data.error);\n }\n throw new Error(`Login request failed with status code ${res.status}`);\n }\n const {\n token\n } = await res.json();\n await authConfig.secureStorage?.setItem(AUTH_TOKEN_STORAGE_KEY, token);\n queryClient.invalidateQueries(cacheKeys.auth.user());\n return token;\n }\n });\n return {\n login: () => login.mutateAsync(),\n isLoading: login.isLoading\n };\n}\n\n/**\n * @auth\n */\n\n/**\n * Hook for retrieving information about the currently signed-in user using [auth](https://portal.thirdweb.com/wallets/auth).\n *\n * Useful to get the user's address and session data, or `undefined` if no user is signed in.\n *\n * ```jsx\n * import { useUser } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { user, isLoggedIn, isLoading } = useUser();\n * }\n * ```\n *\n * @auth\n *\n */\nfunction useUser() {\n const authConfig = useThirdwebAuthContext();\n const {\n data: user,\n isLoading\n } = useQuery(cacheKeys.auth.user(), async () => {\n invariant(authConfig, \"Please specify an authConfig in the ThirdwebProvider\");\n invariant(authConfig.authUrl, \"Please specify an authUrl in the authConfig.\");\n const token = await authConfig.secureStorage?.getItem(AUTH_TOKEN_STORAGE_KEY);\n // We include credentials so we can getUser even if API is on different URL\n const params = {\n credentials: \"include\",\n ...(token ? {\n headers: {\n Authorization: `Bearer ${token}`\n }\n } : {})\n };\n const res = await fetch(`${authConfig.authUrl}/user`, params);\n return await res.json();\n }, {\n enabled: !!authConfig\n });\n return {\n user,\n isLoggedIn: !!user,\n isLoading\n };\n}\n\nconst warnSet = new Set();\nfunction showDeprecationWarning(deprecated, replacement) {\n // deprecation warnings only in dev only in dev\n if (__DEV__) {\n if (warnSet.has(`${deprecated}:${replacement}`)) {\n return;\n }\n warnSet.add(`${deprecated}:${replacement}`);\n console.warn(`\\`${deprecated}\\` is deprecated and will be removed in a future major version. Please use \\`${replacement}\\` instead.`);\n }\n}\n\n/**\n * Hook for getting an instance of an `EditionDrop` contract. This contract is used to interface with ERC1155 compliant NFTs that can be lazily minted.\n * @param contractAddress - The address of the Edition Drop contract, found in your thirdweb dashboard\n *\n * @example\n * ```javascript\n * import { useContract } from '@thirdweb-dev/react'\n *\n * export default function Component() {\n * const { contract } = useContract(\"\", \"edition-drop\")\n *\n * // Now you can use the edition drop contract in the rest of the component\n *\n * // For example, this function will let the connected wallet claim a new NFT\n * async function claim(tokenId, quantity) {\n * await contract.claim(tokenId, quantity)\n * }\n *\n * ...\n * }\n * ```\n * @public\n * @deprecated\n * This hook is deprecated and will be removed in a future major version. You should use {@link useContract} instead.\n * ```diff\n * - const editionDrop = useEditionDrop(\"0x1234...\");\n * + const editionDrop = useContract(\"0x1234...\", \"edition-drop\").contract;\n * ```\n * @internal\n */\nfunction useEditionDrop(contractAddress) {\n showDeprecationWarning(`useEditionDrop(\"${contractAddress || \"0x...\"}\")`, `useContract(\"${contractAddress || \"0x...\"}\", \"edition-drop\")`);\n return useContract(contractAddress, \"edition-drop\").contract;\n}\n\n/**\n *\n * Hook for getting an instance of an `Edition` contract. This contract is used to interface with ERC1155 compliant NFTs.\n * @param contractAddress - The address of the Edition contract, found in your thirdweb dashboard\n *\n * @example\n * ```javascript\n * import { useContract } from '@thirdweb-dev/react'\n *\n * export default function Component() {\n * const { contract } = useContract(\"\", \"edition\")\n *\n * // Now you can use the edition contract in the rest of the component\n *\n * // For example, this function will return all the NFTs on this contract\n * async function getNFTs() {\n * const nfts = await contract.getAll()\n * return nfts\n * }\n *\n * ...\n * }\n * ```\n * @public\n * @deprecated\n * This hook is deprecated and will be removed in a future major version. You should use {@link useContract} instead.\n * ```diff\n * - const edition = useEdition(\"0x1234...\");\n * + const edition = useContract(\"0x1234...\", \"edition\").contract;\n * ```\n * @internal\n */\nfunction useEdition(contractAddress) {\n showDeprecationWarning(`useEdition(\"${contractAddress || \"0x...\"}\")`, `useContract(\"${contractAddress || \"0x...\"}\", \"edition\")`);\n return useContract(contractAddress, \"edition\").contract;\n}\n\n/**\n * Hook for getting an instance of an `NFTDrop` contract. This contract is meant to interface with ERC721 compliant NFTs that can be lazily minted.\n * @param contractAddress - The address of the NFT Drop contract, found in your thirdweb dashboard\n *\n * @example\n * ```javascript\n * import { useContract } from '@thirdweb-dev/react'\n *\n * export default function Component() {\n * const { contract } = useContract(\"\", \"nft-drop\")\n *\n * // Now you can use the nft drop contract in the rest of the component\n *\n * // For example, this function will let the connected wallet claim a new NFT\n * async function claim(quantity) {\n * await contract.claim(quantity)\n * }\n *\n * ...\n * }\n * ```\n * @public\n * @deprecated\n * This hook is deprecated and will be removed in a future major version. You should use {@link useContract} instead.\n * ```diff\n * - const nftDrop = useNFTDrop(\"0x1234...\");\n * + const nftDrop = useContract(\"0x1234...\", \"nft-drop\").contract;\n * ```\n * @internal\n */\nfunction useNFTDrop(contractAddress) {\n showDeprecationWarning(`useNFTDrop(\"${contractAddress || \"0x...\"}\")`, `useContract(\"${contractAddress || \"0x...\"}\", \"nft-drop\")`);\n return useContract(contractAddress, \"nft-drop\").contract;\n}\n\n/**\n * Hook for getting an instance of a `Marketplace` contract. This contract is used to support marketplace for purchase and sale of on-chain assets.\n * @param contractAddress - The address of the Marketplace contract, found in your thirdweb dashboard\n *\n * @example\n * ```javascript\n * import { useContract } from '@thirdweb-dev/react'\n *\n * export default function Component() {\n * const { contract } = useContract(\"\", \"marketplace\")\n *\n * // Now you can use the marketplace contract in the rest of the component\n *\n * // For example, this function will return all the listings on the marketplace\n * async function getListings() {\n * const listings = await contract.getAll()\n * return listings\n * }\n *\n * ...\n * }\n * ```\n * @public\n * @deprecated\n * This hook is deprecated and will be removed in a future major version. You should use {@link useContract} instead.\n * ```diff\n * - const marketplace = useMarketplace(\"0x1234...\");\n * + const marketplace = useContract(\"0x1234...\", \"marketplace\").contract;\n * ```\n * @internal\n */\nfunction useMarketplace(contractAddress) {\n showDeprecationWarning(`useMarketplace(\"${contractAddress || \"0x...\"}\")`, `useContract(\"${contractAddress || \"0x...\"}\", \"marketplace\")`);\n return useContract(contractAddress, \"marketplace\").contract;\n}\n\n/**\n * Hook for getting an instance of an `NFTCollection` contract. This contract is meant to interface with ERC721 compliant NFTs.\n * @param contractAddress - The address of the NFT Collection contract, found in your thirdweb dashboard\n *\n * @example\n * ```javascript\n * import { useContract } from '@thirdweb-dev/react'\n *\n * export default function Component() {\n * const { contract, isLoading, error } = useContract(\"\", \"nft-collection\")\n *\n * // Now you can use the nftCollection contract in the rest of the component\n *\n * // For example, this function will return all the NFTs on this contract\n * async function getNFTs() {\n * const nfts = await contract.getAll()\n * return nfts\n * }\n *\n * ...\n * }\n * ```\n * @public\n * @deprecated\n * This hook is deprecated and will be removed in a future major version. You should use {@link useContract} instead.\n * ```diff\n * - const nftCollection = useNFTCollection(\"0x1234...\");\n * + const nftCollection = useContract(\"0x1234...\", \"nft-collection\").contract;\n * ```\n * @internal\n */\nfunction useNFTCollection(contractAddress) {\n showDeprecationWarning(`useNFTCollection(\"${contractAddress || \"0x...\"}\")`, `useContract(\"${contractAddress || \"0x...\"}\", \"nft-collection\")`);\n return useContract(contractAddress, \"nft-collection\").contract;\n}\n\n/**\n * Hook for getting an instance of a `Pack` contract. This contract supports the creation of on-chain luck-based lootboxes.\n * @param contractAddress - The address of the Pack contract, found in your thirdweb dashboard\n *\n * @example\n * ```javascript\n * import { useContract } from '@thirdweb-dev/react'\n *\n * export default function Component() {\n * const { contract } = usePack(\"\", \"pack\")\n *\n * // Now you can use the pack contract in the rest of the component\n *\n * // For example, this function will get all the packs on this contract\n * async function getPacks() {\n * const packs = await contract.getAll()\n * return packs\n * }\n *\n * ...\n * }\n * ```\n * @public\n * @deprecated\n * This hook is deprecated and will be removed in a future major version. You should use {@link useContract} instead.\n * ```diff\n * - const pack = usePack(\"0x1234...\");\n * + const pack = useContract(\"0x1234...\", \"pack\").contract;\n * ```\n *\n * @internal\n */\nfunction usePack(contractAddress) {\n showDeprecationWarning(`usePack(\"${contractAddress || \"0x...\"}\")`, `useContract(\"${contractAddress || \"0x...\"}\", \"pack\")`);\n return useContract(contractAddress, \"pack\").contract;\n}\n\n/**\n * Hook for getting an instance of a `Token` contract. This contract supports ERC20 compliant tokens.\n * @param contractAddress - The address of the Token contract, found in your thirdweb dashboard\n *\n * @example\n * ```javascript\n * import { useContract } from '@thirdweb-dev/react'\n *\n * export default function Component() {\n * const { contract } = useContract(\"\", \"token\")\n *\n * // Now you can use the token contract in the rest of the component\n *\n * // For example, this function will get the connected wallets token balance\n * async function balance() {\n * const balance = await contract.balance()\n * return balance\n * }\n *\n * ...\n * }\n * ```\n * @public\n * @deprecated\n * This hook is deprecated and will be removed in a future major version. You should use {@link useContract} instead.\n * ```diff\n * - const token = useToken(\"0x1234...\");\n * + const token = useContract(\"0x1234...\", \"token\").contract;\n * ```\n *\n * @internal\n */\nfunction useToken(contractAddress) {\n showDeprecationWarning(`useToken(\"${contractAddress || \"0x...\"}\")`, `useContract(\"${contractAddress || \"0x...\"}\", \"token\")`);\n return useContract(contractAddress, \"token\").contract;\n}\n\n/**\n * Hook for getting an instance of a `Token Drop` contract.\n * @param contractAddress - The address of the Token Drop contract, found in your thirdweb dashboard\n *\n * @example\n * ```javascript\n * import { useContract } from '@thirdweb-dev/react'\n *\n * export default function Component() {\n * const { contract } = useContract(\"\", \"token-drop\")\n *\n * // Now you can use the token drop contract in the rest of the component\n *\n * // For example, this function will get the connected wallets token balance\n * async function balance() {\n * const balance = await contract.balance()\n * return balance\n * }\n *\n * ...\n * }\n * ```\n * @public\n * @deprecated\n * This hook is deprecated and will be removed in a future major version. You should use {@link useContract} instead.\n * ```diff\n * - const token = useTokenDrop(\"0x1234...\");\n * + const token = useContract(\"0x1234...\", \"token-drop\").contract;\n * ```\n *\n * @token\n * @internal\n */\nfunction useTokenDrop(contractAddress) {\n showDeprecationWarning(`useTokenDrop(\"${contractAddress || \"0x...\"}\")`, `useContract(\"${contractAddress || \"0x...\"}\", \"token-drop\")`);\n return useContract(contractAddress, \"token-drop\").contract;\n}\n\n/**\n * Hook for getting an instance of an `Vote` contract. This contract enables fully featured voting-based decentralized governance systems.\n * @param contractAddress - The address of the Vote contract, found in your thirdweb dashboard\n *\n * @example\n * ```javascript\n * import { useContract } from '@thirdweb-dev/react'\n *\n * export default function Component() {\n * const { contract } = useContract(\"\", \"vote\")\n *\n * // Now you can use the vote contract in the rest of the component\n *\n * // For example, this function will get all the proposals on this contract\n * async function getProposals() {\n * const proposals = await contract.getAll()\n * return proposals\n * }\n *\n * ...\n * }\n * ```\n * @public\n * @deprecated\n * This hook is deprecated and will be removed in a future major version. You should use {@link useContract} instead.\n * ```diff\n * - const vote = useVote(\"0x1234...\");\n * + const vote = useContract(\"0x1234...\", \"vote\").contract;\n * ```\n *\n * @internal\n */\nfunction useVote(contractAddress) {\n showDeprecationWarning(`useVote(\"${contractAddress || \"0x...\"}\")`, `useContract(\"${contractAddress || \"0x...\"}\", \"vote\")`);\n return useContract(contractAddress, \"vote\").contract;\n}\n\n/**\n * Hook for getting an instance of a `Split` contract. This contract supports fund distribution to multiple parties.\n * @param contractAddress - The address of the Split contract, found in your thirdweb dashboard\n *\n * @example\n * ```javascript\n * import { useContract } from '@thirdweb-dev/react'\n *\n * export default function Component() {\n * const { contract } = useContract(\"\", \"split\")\n *\n * // Now you can use the split contract in the rest of the component\n *\n * // For example, this function will return all the recipients of the split\n * async function getRecipients() {\n * const recipients = await contract.getAllRecipients()\n * return recipients\n * }\n *\n * ...\n * }\n * ```\n * @public\n * @deprecated\n * This hook is deprecated and will be removed in a future major version. You should use {@link useContract} instead.\n * ```diff\n * - const split = useSplit(\"0x1234...\");\n * + const split = useContract(\"0x1234...\", \"split\").contract;\n * ```\n * @internal\n */\nfunction useSplit(contractAddress) {\n showDeprecationWarning(`useSplit(\"${contractAddress || \"0x...\"}\")`, `useContract(\"${contractAddress || \"0x...\"}\", \"split\")`);\n return useContract(contractAddress, \"split\").contract;\n}\n\n/**\n * Hook for getting an instance of an `Multiwrap` contract. This contract is an ERC721 in which you can wrap ERC721, ERC1155 and ERC20 tokens.\n * @param contractAddress - The address of the Multiwrap contract, found in your thirdweb dashboard\n *\n * @example\n * ```javascript\n * import { useContract } from '@thirdweb-dev/react'\n *\n * export default function Component() {\n * const { contract } = useContract(\"\", \"multiwrap\")\n *\n * // Now you can use the multiwrap contract in the rest of the component\n *\n * // For example, this function will let the connected wallet wrap tokens\n * async function wrap(tokensToWrap, wrappedNFTMetadata) {\n * await contract.wrap(tokensToWrap, wrappedNFTMetadata)\n * }\n *\n * ...\n * }\n * ```\n * @public\n * @deprecated\n * This hook is deprecated and will be removed in a future major version. You should use {@link useContract} instead.\n * ```diff\n * - const multiwrap = useMultiwrap(\"0x1234...\");\n * + const multiwrap = useContract(\"0x1234...\", \"multiwrap\").contract;\n * ```\n * @internal\n */\nfunction useMultiwrap(contractAddress) {\n showDeprecationWarning(`useMultiwrap(\"${contractAddress || \"0x...\"}\")`, `useContract(\"${contractAddress || \"0x...\"}\", \"multiwrap\")`);\n return useContract(contractAddress, \"multiwrap\").contract;\n}\n\n/**\n * Hook for getting an instance of an `SignatureDrop` contract. This contract is meant to interface with ERC721 compliant NFTs that can be lazily minted.\n * @param contractAddress - The address of the NFT Drop contract, found in your thirdweb dashboard\n *\n * @example\n * ```javascript\n * import { useContract } from '@thirdweb-dev/react'\n *\n * export default function Component() {\n * const { contract } = useContract(\"\", \"signature-drop\")\n *\n * // Now you can use the Signature drop contract in the rest of the component\n *\n * // For example, this function will let the connected wallet claim a new NFT\n * async function claim(quantity) {\n * await contract.claim(quantity)\n * }\n *\n * ...\n * }\n * ```\n * @public\n * @deprecated\n * This hook is deprecated and will be removed in a future major version. You should use {@link useContract} instead.\n * ```diff\n * - const signatureDrop = useSignatureDrop(\"0x1234...\");\n * + const signatureDrop = useContract(\"0x1234...\", \"signature-drop\").contract;\n * ```\n * @internal\n */\nfunction useSignatureDrop(contractAddress) {\n showDeprecationWarning(`useSignatureDrop(\"${contractAddress || \"0x...\"}\")`, `useContract(\"${contractAddress || \"0x...\"}\", \"signature-drop\")`);\n return useContract(contractAddress, \"signature-drop\").contract;\n}\n\n/**\n * Get the instance of the `ThirdwebStorage` class being used by the `ThirdwebProvider`\n *\n * Allows you to use the TypeScript SDK functionality of [Storage](https://portal.thirdweb.com/infrastructure/storage/overview) in your React app.\n *\n * @example\n *\n * ```jsx\n * import { useStorage } from \"@thirdweb-dev/react\";\n *\n * export default function Component() {\n * const storage = useStorage();\n *\n * // Now you can use the functionality of the ThirdwebStorage class:\n * storage?.download(); // Download a file from IPFS\n * storage?.upload(); // Upload a file to IPFS\n * }\n * ```\n *\n * @remarks\n *\n * ### API Key\n *\n * You will require an API key to use thirdweb’s storage services with the SDK. If you haven’t created a key yet you can do so for free from the [**thirdweb dashboard**](https://thirdweb.com/create-api-key).\n *\n * You can then obtain a `clientId` from the API key which you will need to pass to the `ThirdwebProvider` component:\n *\n *\n * ```jsx\n * import { ThirdwebProvider } from \"@thirdweb-dev/react\";\n *\n * const App = () => {\n * return (\n * \n * \n * \n * );\n * };\n * ```\n *\n * Storage can also be configured using the `storageInterface` prop on `ThirdwebProvider`\n *\n * @storage\n */\nfunction useStorage() {\n const sdk = useSDK();\n return sdk?.storage;\n}\n\n/**\n * Hook for uploading files to IPFS and retrieving the IPFS URI.\n *\n * @example\n * ```jsx\n * import { useStorageUpload } from \"@thirdweb-dev/react\";\n *\n * export default function Component() {\n * const { mutateAsync: upload, isLoading } = useStorageUpload();\n *\n * async function uploadData() {\n * const filesToUpload = [...];\n * const uris = await upload({ data: files });\n * console.log(uris);\n * }\n *\n * return (\n * \n * )\n * }\n * ```\n *\n * @remarks\n * ### API key\n *\n * You will require an API key to use thirdweb’s storage services with the SDK. If you haven’t created a key yet you can do so for free from the [**thirdweb dashboard**](https://thirdweb.com/create-api-key).\n *\n * You can then obtain a `clientId` from the API key which you will need to pass to the [`ThirdwebProvider`](/react/react.thirdwebprovider) component:\n *\n * ```jsx\n * import { ThirdwebProvider } from \"@thirdweb/react\";\n *\n * const App = () => {\n * return (\n * \n * \n * \n * );\n * };\n * ```\n *\n * @param options - Configure the options for your upload\n * ### rewriteFileNames (optional)\n *\n * If specified, will rewrite file names to numbers for use on-chain.\n *\n * Useful to use with NFT contracts that map token IDs to files.\n *\n * ```jsx\n * import { useStorageUpload } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { mutateAsync: upload } = useStorageUpload({\n * rewriteFileNames: {\n * fileStartNumber: 1,\n * },\n * });\n * }\n * ```\n *\n * ### uploadWithGatewayUrl (optional)\n *\n * If specified, any URLs with schemes will be replaced with resolved URLs before upload.\n *\n * ```jsx\n * import { useStorageUpload } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { mutateAsync: upload } = useStorageUpload({\n * uploadWithGatewayUrl: true,\n * });\n * }\n * ```\n *\n * ### onProgress (optional)\n *\n * Callback that gets triggered when file upload progresses.\n *\n * ```jsx\n * import { useStorageUpload } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { mutateAsync: upload } = useStorageUpload({\n * onProgress: (progress) => {\n * console.log(progress);\n * },\n * });\n * }\n * ```\n *\n * ### uploadWithoutDirectory (optional)\n *\n * If specified, will upload a single file without wrapping it in a directory.\n *\n * ```jsx\n * import { useStorageUpload } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { mutateAsync: upload } = useStorageUpload({\n * uploadWithoutDirectory: true,\n * });\n * }\n * ```\n *\n * @storage\n */\nfunction useStorageUpload(uploadOptions) {\n const sdk = useSDK();\n return useMutation(async _ref => {\n let {\n data,\n options\n } = _ref;\n invariant(sdk, \"sdk must be defined\");\n return await sdk.storage.uploadBatch(data, options || uploadOptions);\n });\n}\n\n/**\n * Hook for checking whether the connected wallet is currently on the correct chain,\n * i.e. the chain specified in the `activeChain` on the `ThirdwebProvider`.\n *\n * @example\n *\n * ```jsx\n * import { useNetworkMismatch } from \"@thirdweb-dev/react\";\n *\n * const App = () => {\n * const isMismatched = useNetworkMismatch();\n * };\n * ```\n *\n * Using this value, you can prompt users to switch their network using the `useSwitchChain` hook.\n *\n * @returns\n * Returns `true` if the `chainId` of the connected wallet is different from the `chainId` of the `activeChain` on the `ThirdwebProvider` component\n *\n * @networkConnection\n */\nfunction useNetworkMismatch() {\n const walletChainId = useChainId();\n const sdkChainId = useSDKChainId();\n if (!sdkChainId) {\n // we don't know yet\n return false;\n }\n if (sdkChainId === -1) {\n // means no network is set in the , so we don't care about the network mismatch\n return false;\n }\n if (!walletChainId) {\n // means no wallet is connected yet, so we don't care about the network mismatch\n return false;\n }\n // check if the chainIds are different\n return sdkChainId !== walletChainId;\n}\n\n/**\n * @internal\n */\nfunction useReadonlySDK(readonlyRpcUrl, sdkOptions, storageInterface) {\n return useMemo(() => {\n return new ThirdwebSDK$1(readonlyRpcUrl, sdkOptions, storageInterface);\n // storageInterface should be constant!\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [readonlyRpcUrl, sdkOptions]);\n}\n\n/**\n * Hook for getting the [ethers signer](https://docs.ethers.org/v5/api/signer/) of the connected wallet.\n *\n * @example\n *\n * ```jsx\n * import { useSigner, Web3Button } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const signer = useSigner();\n * }\n * ```\n *\n * @returns\n *\n * `Signer` if wallet is connected, otherwise `undefined`.\n *\n * @walletConnection\n */\nfunction useSigner() {\n const context = useContext(ThirdwebConnectedWalletContext);\n invariant(context, \"useSigner() hook must be used within a \");\n return context.signer;\n}\n\n/**\n * @deprecated use `useWallet` instead\n * @internal\n */\nfunction useSupportedWallet(id) {\n const context = useWalletContext();\n const wallet = context?.wallets.find(_wallet => _wallet.id === id);\n if (!wallet) {\n throw new Error(`Wallet with id \"${id}\" is not supported`);\n }\n return wallet;\n}\n\n/**\n * Get App URI of the contract\n *\n * @example\n * ```javascript\n * const { data: contractMetadata, isLoading, error } = useAppURI(contract);\n * ```\n *\n * @param contract - The `SmartContract` instance of the contract to get the appURI of\n * @returns Query result object that includes the appURI of the contract\n * @twfeature AppURI\n * @appURI\n */\nfunction useAppURI(contract) {\n return useQueryWithNetwork(cacheKeys.contract.app.get(contract?.getAddress()), async () => {\n requiredParamInvariant(contract, \"Contract is required\");\n invariant(contract.app, \"Contract does not support app\");\n return await contract.app.get();\n }, {\n enabled: !!contract\n });\n}\n\n/**\n * Set App URI of the contract\n *\n * @example\n * ```jsx\n * const Component = () => {\n * const {\n * mutate: useSetAppURI,\n * isLoading,\n * error,\n * } = useSetAppURI(contract);\n *\n * if (error) {\n * console.error(\"failed to update appURI\", error);\n * }\n *\n * return (\n * useSetAppURI({ uri })}\n * >\n * Update App URI\n * \n * );\n * };\n * ```\n * @param contract - Instance of a `SmartContract`\n * @returns A mutation object to update the appURI of a contract\n *\n * @twfeature AppURI\n * @appURI\n */\nfunction useSetAppURI(contract) {\n const queryClient = useQueryClient();\n const contractAddress = contract?.getAddress();\n const activeChainId = useSDKChainId();\n return useMutation(params => {\n requiredParamInvariant(contract, \"Contract is required\");\n invariant(contract.app, \"Contract does not support app\");\n return contract.app.set(params.uri);\n }, {\n onSettled: () => invalidateContractAndBalances(queryClient, contractAddress, activeChainId)\n });\n}\n\n/**\n *\n * @internal\n */\nfunction useENS() {\n const address = useAddress();\n const supportedChains = useSupportedChains();\n const {\n clientId\n } = useWalletContext();\n const ethereum = supportedChains.find(chain => chain.chainId === 1);\n return useQuery({\n queryKey: [\"ens\", address, ethereum?.rpc],\n cacheTime: 60 * 60 * 24 * 1000,\n // 24h\n staleTime: 60 * 60 * 1000,\n // 1h\n retry: false,\n enabled: !!address,\n queryFn: async () => {\n if (!address) {\n return null;\n }\n const provider = getChainProvider(1, {\n clientId,\n supportedChains: ethereum ? [{\n chainId: 1,\n rpc: [...ethereum.rpc],\n nativeCurrency: ethereum.nativeCurrency,\n slug: ethereum.slug\n }] : undefined\n });\n if (provider instanceof providers.JsonRpcProvider) {\n const [ens, avatarUrl] = await Promise.all([provider.lookupAddress(address), provider.getAvatar(address)]);\n return {\n ens,\n avatarUrl\n };\n }\n return {\n ens: await provider.lookupAddress(address),\n avatarUrl: null\n };\n }\n });\n}\n\n/**\n * @internal\n */\nfunction shortenString(str) {\n let extraShort = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n return `${str.substring(0, extraShort ? 4 : 6)}...${str.substring(str.length - (extraShort ? 3 : 4))}`;\n}\n\n/**\n * This function shortens an address if it is a valid EVM address.\n *\n * @param address - The address to shorten\n * @param extraShort - If true, show the first 4 and last 3 characters\n * @returns The shortened address\n *\n * @remarks\n * Note that this function will not check if the address is an ENS.\n *\n * @example Calling shortenAddress with extraShort set to true\n * ```ts\n * const address = shortenIfAddress(\"0x1234567890123456789012345678901234567890\", true); // result will be \"0x1234...890\"\n * ```\n *\n */\nfunction shortenAddress(address) {\n let extraShort = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (!address) {\n return \"\";\n }\n try {\n const formattedAddress = utils.getAddress(address);\n return shortenString(formattedAddress, extraShort);\n } catch {\n return address;\n }\n}\n\n/**\n * @internal\n */\nfunction shortenIfAddress(address) {\n let extraShort = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (address && utils.isAddress(address)) {\n return shortenAddress(address, extraShort);\n }\n return address || \"\";\n}\n\n/**\n * @internal\n */\nfunction isEnsName(name) {\n return name?.endsWith(\".eth\");\n}\n\n/**\n * @internal\n */\nfunction isPossibleEVMAddress(address, ignoreEns) {\n if (!address) {\n return false;\n }\n if (isEnsName(address) && !ignoreEns) {\n return true;\n }\n return utils.isAddress(address);\n}\n\n/**\n * Hook that listens to transactions on a given chain for a given address.\n *\n * ```javascript\n * import { useWatchTransactions } from \"@thirdweb-dev/react\"\n * ```\n *\n * @example\n * ```js\n * const transactions = useWatchTransactions({\n * address: \"0x1234\",\n * network: \"ethereum\",\n * });\n * ```\n *\n * @param watchTransactionParams - Options for watching transactions\n *\n * #### address\n * The address to watch transactions for\n *\n * #### network\n * The network to watch transactions on\n *\n * #### sdkOptions\n * Options to pass to the thirdweb SDK\n *\n * @returns An array of `Transaction` objects\n */\nfunction useWatchTransactions(watchTransactionParams) {\n const {\n address,\n network,\n sdkOptions,\n // default to 1000, max 10k\n limit: paramLimit = 1000\n } = watchTransactionParams;\n // max limit of 10k transactions to let the array grow to, then we'll start dropping the oldest ones\n const limit = Math.min(paramLimit, 10000);\n const [transactions, setTransactions] = useState([]);\n useEffect(() => {\n if (!address || !network) {\n // cant run yet\n return;\n }\n // since this already returns a function to unsubscribe, we can just return it\n return watchTransactions({\n address,\n network,\n sdkOptions,\n onTransactions: newTransactions => {\n setTransactions(prevTransactions => {\n const mergedTxns = [...newTransactions, ...prevTransactions];\n // only keep the latest transactions\n return mergedTxns.slice(0, limit);\n });\n }\n });\n }, [address, limit, network, sdkOptions]);\n return transactions;\n}\n\nexport { useContractMetadataUpdate as $, ThirdwebConfigProvider as A, useThirdwebConfigContext as B, ThirdwebConnectedWalletProvider as C, useThirdwebConnectedWalletContext as D, useActiveClaimCondition as E, useClaimerProofs as F, useClaimConditions as G, useClaimIneligibilityReasons as H, useActiveClaimConditionForWallet as I, useSetClaimConditions as J, useResetClaimConditions as K, usePrimarySaleRecipient as L, useUpdatePrimarySaleRecipient as M, useRoyaltySettings as N, useUpdateRoyaltySettings as O, usePlatformFees as P, useUpdatePlatformFees as Q, useMetadata as R, useUpdateMetadata as S, ThirdwebThemeContext as T, useContractType as U, contractType as V, useCompilerMetadata as W, compilerMetadata as X, useContract as Y, useContractMetadata as Z, __DEV__ as _, ThirdwebProviderCore as a, useTokenDecimals as a$, useContractEvents as a0, useContractRead as a1, useContractWrite as a2, useUnclaimedNFTs as a3, useClaimedNFTs as a4, useUnclaimedNFTSupply as a5, useClaimedNFTSupply as a6, useBatchesToReveal as a7, useClaimNFT as a8, useLazyMint as a9, useAcceptDirectListingOffer as aA, useExecuteAuctionSale as aB, useOffers as aC, useBuyNow as aD, useBuyDirectListing as aE, useCreateDirectListingBatch as aF, useNFT as aG, useNFTs as aH, useTotalCount as aI, useTotalCirculatingSupply as aJ, useOwnedNFTs as aK, useNFTBalance as aL, useMintNFT as aM, useMintNFTSupply as aN, useTransferNFT as aO, useAirdropNFT as aP, useBurnNFT as aQ, useSharedMetadata as aR, useSetSharedMetadata as aS, useAllRoleMembers as aT, useRoleMembers as aU, useIsAddressRole as aV, useSetAllRoleMembers as aW, useGrantRole as aX, useRevokeRole as aY, useTokenSupply as aZ, useTokenBalance as a_, useDelayedRevealLazyMint as aa, useRevealLazyMint as ab, useListing as ac, useDirectListing as ad, useEnglishAuction as ae, useListings as af, useDirectListings as ag, useValidDirectListings as ah, useEnglishAuctions as ai, useValidEnglishAuctions as aj, useListingsCount as ak, useDirectListingsCount as al, useEnglishAuctionsCount as am, useActiveListings as an, useWinningBid as ao, useEnglishAuctionWinningBid as ap, useAuctionWinner as aq, useBidBuffer as ar, useMinimumNextBid as as, useCreateDirectListing as at, useCreateAuctionListing as au, useCancelListing as av, useCancelDirectListing as aw, useCancelEnglishAuction as ax, useMakeBid as ay, useMakeOffer as az, useConnect as b, useMintToken as b0, useClaimToken as b1, useTransferToken as b2, useTransferBatchToken as b3, useBurnToken as b4, useTransferNativeToken as b5, useIsAccountDeployed as b6, useAccounts as b7, useCreateAccount as b8, useAccountsForAddress as b9, useNetworkMismatch as bA, useReadonlySDK as bB, useSigner as bC, useSupportedChains as bD, useSupportedWallet as bE, useAppURI as bF, useSetAppURI as bG, useENS as bH, ThirdwebSDKProvider as bI, useSDK as bJ, useSDKChainId as bK, invalidateContractAndBalances as bL, isEnsName as bM, isPossibleEVMAddress as bN, shortenAddress as bO, shortenIfAddress as bP, shortenString as bQ, getErcs as bR, getErc1155 as bS, getErc721 as bT, getErc20 as bU, useWatchTransactions as bV, useAccountSigners as ba, useAddAdmin as bb, useRemoveAdmin as bc, useCreateSessionKey as bd, useRevokeSessionKey as be, useAccountAdmins as bf, useAccountAdminsAndSigners as bg, useAuth as bh, useLogin as bi, useLogout as bj, useUser as bk, useSwitchAccount as bl, useEditionDrop as bm, useEdition as bn, useNFTDrop as bo, useMarketplace as bp, useNFTCollection as bq, usePack as br, useToken as bs, useTokenDrop as bt, useVote as bu, useSplit as bv, useMultiwrap as bw, useSignatureDrop as bx, useStorage as by, useStorageUpload as bz, useConnectionStatus as c, useCreateWalletInstance as d, useDisconnect as e, useSwitchChain as f, useWallets as g, useWalletConfig as h, useSetConnectionStatus as i, useSetConnectedWallet as j, useNetwork as k, useWalletContext as l, usePersonalWalletAddress as m, useWalletConnectHandler as n, useBalance as o, useConnectedWallet as p, useAddress as q, resolveMimeType as r, useChainId as s, useActiveChain as t, useWallet as u, useChain as v, useBalanceForAddress as w, shouldNeverPersistQuery as x, useThirdwebAuthContext as y, ThirdwebAuthProvider as z };\n","import { _ as hasMatchingAbi, bj as AbiSchema, cv as AmountSchema, ax as getCreate2FactoryAddress, aE as computeDeploymentInfo, av as isContractDeployed, az as getInitBytecodeWithSalt, b7 as BigNumberTransformSchema, b5 as BigNumberSchema, b6 as BigNumberishSchema, b9 as AddressOrEnsSchema } from './index-b2a8262b.browser.esm.js';\nimport { utils, BigNumber } from 'ethers';\nimport invariant from 'tiny-invariant';\nimport { GENERATED_ABI } from '@thirdweb-dev/generated-abis';\nimport { z } from 'zod';\nimport { C as CommonNFTOutput, a as CommonNFTInput, N as NFTInputOrUriSchema } from './setErc20Allowance-f2f77863.browser.esm.js';\n\n/**\n * @internal\n * @param contractWrapper - The contract wrapper to check\n * @param abi - The abi to check\n * @returns\n */\nfunction matchesPrebuiltAbi(contractWrapper, abi) {\n return hasMatchingAbi(AbiSchema.parse(contractWrapper.abi || []), [abi]);\n}\n\nfunction toEther(amount) {\n return utils.formatEther(amount);\n}\n\nfunction toUnits(amount, decimals) {\n return utils.parseUnits(AmountSchema.parse(amount), decimals);\n}\n\nfunction toDisplayValue(amount, decimals) {\n return utils.formatUnits(amount, decimals);\n}\n\n/**\n *\n * @internal\n * @param provider - The provider to use\n * @param storage - The storage to use\n * @param create2Factory - The create2 factory to use\n */\nasync function computeNativeTokenAddress(provider, storage, create2Factory, clientId, secretKey) {\n if (!create2Factory || create2Factory === \"\") {\n create2Factory = await getCreate2FactoryAddress(provider);\n }\n return (await computeDeploymentInfo(\"infra\", provider, storage, create2Factory, {\n contractName: \"WETH9\"\n }, clientId, secretKey)).transaction.predictedAddress;\n}\n\n/**\n * Deploy a contract at a deterministic address, using Create2 method\n * Address depends on the Create2 factory address.\n *\n * @internal\n *\n * @param signer - The signer to use\n * @param bytecode - The bytecode to deploy\n * @param encodedArgs - The encoded constructor args to use\n * @param create2FactoryAddress - The create2 factory address to use\n */\nasync function deployContractDeterministicRaw(signer, bytecode, encodedArgs, create2FactoryAddress, options, predictedAddress) {\n let gasLimit = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : 7000000;\n // Check if the implementation contract is already deployed\n invariant(signer.provider, \"Provider required\");\n const contractDeployed = predictedAddress ? await isContractDeployed(predictedAddress, signer.provider) : false;\n if (!contractDeployed) {\n console.debug(`deploying contract via create2 factory at: ${predictedAddress}`);\n const initBytecodeWithSalt = getInitBytecodeWithSalt(bytecode, encodedArgs);\n const tx = {\n to: create2FactoryAddress,\n data: initBytecodeWithSalt\n };\n try {\n await signer.estimateGas(tx);\n } catch (e) {\n console.debug(\"error estimating gas while deploying prebuilt: \", e);\n tx.gasLimit = BigNumber.from(gasLimit);\n }\n await (await signer.sendTransaction(tx)).wait();\n }\n}\n\n/**\n * @internal\n */\nfunction getCachedAbiForContract(address) {\n if (address in GENERATED_ABI) {\n return GENERATED_ABI[address];\n }\n return undefined;\n}\n\nlet ProposalState = /*#__PURE__*/function (ProposalState) {\n ProposalState[ProposalState[\"Pending\"] = 0] = \"Pending\";\n ProposalState[ProposalState[\"Active\"] = 1] = \"Active\";\n ProposalState[ProposalState[\"Canceled\"] = 2] = \"Canceled\";\n ProposalState[ProposalState[\"Defeated\"] = 3] = \"Defeated\";\n ProposalState[ProposalState[\"Succeeded\"] = 4] = \"Succeeded\";\n ProposalState[ProposalState[\"Queued\"] = 5] = \"Queued\";\n ProposalState[ProposalState[\"Expired\"] = 6] = \"Expired\";\n ProposalState[ProposalState[\"Executed\"] = 7] = \"Executed\";\n return ProposalState;\n}({});\n\nconst PropertiesInput = /* @__PURE__ */(() => z.object({}).catchall(z.union([BigNumberTransformSchema, z.unknown()])))();\n\n/**\n * @internal\n */\nconst OptionalPropertiesInput = /* @__PURE__ */(() => z.union([z.array(PropertiesInput), PropertiesInput]).optional())();\n\n/**\n * @internal\n */\nconst EditionMetadataOutputSchema = /* @__PURE__ */(() => z.object({\n supply: BigNumberSchema,\n metadata: CommonNFTOutput\n}))();\n\n/**\n * @internal\n */\nconst EditionMetadataWithOwnerOutputSchema = /* @__PURE__ */(() => EditionMetadataOutputSchema.extend({\n owner: z.string(),\n quantityOwned: BigNumberSchema\n}))();\n\n/**\n * @internal\n */\nconst EditionMetadataInputSchema = /* @__PURE__ */(() => z.object({\n supply: BigNumberishSchema,\n metadata: CommonNFTInput\n}))();\n\n/**\n * @internal\n */\nconst EditionMetadataInputOrUriSchema = /* @__PURE__ */(() => z.object({\n supply: BigNumberishSchema,\n metadata: NFTInputOrUriSchema\n}))();\n\n/**\n * @public\n */\n\n/**\n * @public\n */\n\n/**\n * @internal\n */\nconst TokenMintInputSchema = /* @__PURE__ */(() => z.object({\n toAddress: AddressOrEnsSchema,\n amount: AmountSchema\n}))();\n\n/**\n * @public\n */\n\nexport { EditionMetadataOutputSchema as E, OptionalPropertiesInput as O, ProposalState as P, TokenMintInputSchema as T, toUnits as a, toDisplayValue as b, computeNativeTokenAddress as c, deployContractDeterministicRaw as d, EditionMetadataWithOwnerOutputSchema as e, EditionMetadataInputSchema as f, getCachedAbiForContract as g, EditionMetadataInputOrUriSchema as h, matchesPrebuiltAbi as m, toEther as t };\n","import * as React from 'react';\nimport { Primitive } from '@radix-ui/react-primitive';\n\nimport type * as Radix from '@radix-ui/react-primitive';\n\n/* -------------------------------------------------------------------------------------------------\n * VisuallyHidden\n * -----------------------------------------------------------------------------------------------*/\n\nconst NAME = 'VisuallyHidden';\n\ntype VisuallyHiddenElement = React.ElementRef;\ntype PrimitiveSpanProps = Radix.ComponentPropsWithoutRef;\ninterface VisuallyHiddenProps extends PrimitiveSpanProps {}\n\nconst VisuallyHidden = React.forwardRef(\n (props, forwardedRef) => {\n return (\n \n );\n }\n);\n\nVisuallyHidden.displayName = NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = VisuallyHidden;\n\nexport {\n VisuallyHidden,\n //\n Root,\n};\nexport type { VisuallyHiddenProps };\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\nimport { useId } from '@radix-ui/react-id';\nimport * as PopperPrimitive from '@radix-ui/react-popper';\nimport { createPopperScope } from '@radix-ui/react-popper';\nimport { Portal as PortalPrimitive } from '@radix-ui/react-portal';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slottable } from '@radix-ui/react-slot';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport * as VisuallyHiddenPrimitive from '@radix-ui/react-visually-hidden';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\ntype ScopedProps

= P & { __scopeTooltip?: Scope };\nconst [createTooltipContext, createTooltipScope] = createContextScope('Tooltip', [\n createPopperScope,\n]);\nconst usePopperScope = createPopperScope();\n\n/* -------------------------------------------------------------------------------------------------\n * TooltipProvider\n * -----------------------------------------------------------------------------------------------*/\n\nconst PROVIDER_NAME = 'TooltipProvider';\nconst DEFAULT_DELAY_DURATION = 700;\nconst TOOLTIP_OPEN = 'tooltip.open';\n\ntype TooltipProviderContextValue = {\n isOpenDelayed: boolean;\n delayDuration: number;\n onOpen(): void;\n onClose(): void;\n onPointerInTransitChange(inTransit: boolean): void;\n isPointerInTransitRef: React.MutableRefObject;\n disableHoverableContent: boolean;\n};\n\nconst [TooltipProviderContextProvider, useTooltipProviderContext] =\n createTooltipContext(PROVIDER_NAME);\n\ninterface TooltipProviderProps {\n children: React.ReactNode;\n /**\n * The duration from when the pointer enters the trigger until the tooltip gets opened.\n * @defaultValue 700\n */\n delayDuration?: number;\n /**\n * How much time a user has to enter another trigger without incurring a delay again.\n * @defaultValue 300\n */\n skipDelayDuration?: number;\n /**\n * When `true`, trying to hover the content will result in the tooltip closing as the pointer leaves the trigger.\n * @defaultValue false\n */\n disableHoverableContent?: boolean;\n}\n\nconst TooltipProvider: React.FC = (\n props: ScopedProps\n) => {\n const {\n __scopeTooltip,\n delayDuration = DEFAULT_DELAY_DURATION,\n skipDelayDuration = 300,\n disableHoverableContent = false,\n children,\n } = props;\n const [isOpenDelayed, setIsOpenDelayed] = React.useState(true);\n const isPointerInTransitRef = React.useRef(false);\n const skipDelayTimerRef = React.useRef(0);\n\n React.useEffect(() => {\n const skipDelayTimer = skipDelayTimerRef.current;\n return () => window.clearTimeout(skipDelayTimer);\n }, []);\n\n return (\n {\n window.clearTimeout(skipDelayTimerRef.current);\n setIsOpenDelayed(false);\n }, [])}\n onClose={React.useCallback(() => {\n window.clearTimeout(skipDelayTimerRef.current);\n skipDelayTimerRef.current = window.setTimeout(\n () => setIsOpenDelayed(true),\n skipDelayDuration\n );\n }, [skipDelayDuration])}\n isPointerInTransitRef={isPointerInTransitRef}\n onPointerInTransitChange={React.useCallback((inTransit: boolean) => {\n isPointerInTransitRef.current = inTransit;\n }, [])}\n disableHoverableContent={disableHoverableContent}\n >\n {children}\n \n );\n};\n\nTooltipProvider.displayName = PROVIDER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * Tooltip\n * -----------------------------------------------------------------------------------------------*/\n\nconst TOOLTIP_NAME = 'Tooltip';\n\ntype TooltipContextValue = {\n contentId: string;\n open: boolean;\n stateAttribute: 'closed' | 'delayed-open' | 'instant-open';\n trigger: TooltipTriggerElement | null;\n onTriggerChange(trigger: TooltipTriggerElement | null): void;\n onTriggerEnter(): void;\n onTriggerLeave(): void;\n onOpen(): void;\n onClose(): void;\n disableHoverableContent: boolean;\n};\n\nconst [TooltipContextProvider, useTooltipContext] =\n createTooltipContext(TOOLTIP_NAME);\n\ninterface TooltipProps {\n children?: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n /**\n * The duration from when the pointer enters the trigger until the tooltip gets opened. This will\n * override the prop with the same name passed to Provider.\n * @defaultValue 700\n */\n delayDuration?: number;\n /**\n * When `true`, trying to hover the content will result in the tooltip closing as the pointer leaves the trigger.\n * @defaultValue false\n */\n disableHoverableContent?: boolean;\n}\n\nconst Tooltip: React.FC = (props: ScopedProps) => {\n const {\n __scopeTooltip,\n children,\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n disableHoverableContent: disableHoverableContentProp,\n delayDuration: delayDurationProp,\n } = props;\n const providerContext = useTooltipProviderContext(TOOLTIP_NAME, props.__scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const [trigger, setTrigger] = React.useState(null);\n const contentId = useId();\n const openTimerRef = React.useRef(0);\n const disableHoverableContent =\n disableHoverableContentProp ?? providerContext.disableHoverableContent;\n const delayDuration = delayDurationProp ?? providerContext.delayDuration;\n const wasOpenDelayedRef = React.useRef(false);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: (open) => {\n if (open) {\n providerContext.onOpen();\n\n // as `onChange` is called within a lifecycle method we\n // avoid dispatching via `dispatchDiscreteCustomEvent`.\n document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN));\n } else {\n providerContext.onClose();\n }\n onOpenChange?.(open);\n },\n });\n const stateAttribute = React.useMemo(() => {\n return open ? (wasOpenDelayedRef.current ? 'delayed-open' : 'instant-open') : 'closed';\n }, [open]);\n\n const handleOpen = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n wasOpenDelayedRef.current = false;\n setOpen(true);\n }, [setOpen]);\n\n const handleClose = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n setOpen(false);\n }, [setOpen]);\n\n const handleDelayedOpen = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = window.setTimeout(() => {\n wasOpenDelayedRef.current = true;\n setOpen(true);\n }, delayDuration);\n }, [delayDuration, setOpen]);\n\n React.useEffect(() => {\n return () => window.clearTimeout(openTimerRef.current);\n }, []);\n\n return (\n \n {\n if (providerContext.isOpenDelayed) handleDelayedOpen();\n else handleOpen();\n }, [providerContext.isOpenDelayed, handleDelayedOpen, handleOpen])}\n onTriggerLeave={React.useCallback(() => {\n if (disableHoverableContent) {\n handleClose();\n } else {\n // Clear the timer in case the pointer leaves the trigger before the tooltip is opened.\n window.clearTimeout(openTimerRef.current);\n }\n }, [handleClose, disableHoverableContent])}\n onOpen={handleOpen}\n onClose={handleClose}\n disableHoverableContent={disableHoverableContent}\n >\n {children}\n \n \n );\n};\n\nTooltip.displayName = TOOLTIP_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * TooltipTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'TooltipTrigger';\n\ntype TooltipTriggerElement = React.ElementRef;\ntype PrimitiveButtonProps = Radix.ComponentPropsWithoutRef;\ninterface TooltipTriggerProps extends PrimitiveButtonProps {}\n\nconst TooltipTrigger = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeTooltip, ...triggerProps } = props;\n const context = useTooltipContext(TRIGGER_NAME, __scopeTooltip);\n const providerContext = useTooltipProviderContext(TRIGGER_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref, context.onTriggerChange);\n const isPointerDownRef = React.useRef(false);\n const hasPointerMoveOpenedRef = React.useRef(false);\n const handlePointerUp = React.useCallback(() => (isPointerDownRef.current = false), []);\n\n React.useEffect(() => {\n return () => document.removeEventListener('pointerup', handlePointerUp);\n }, [handlePointerUp]);\n\n return (\n \n {\n if (event.pointerType === 'touch') return;\n if (\n !hasPointerMoveOpenedRef.current &&\n !providerContext.isPointerInTransitRef.current\n ) {\n context.onTriggerEnter();\n hasPointerMoveOpenedRef.current = true;\n }\n })}\n onPointerLeave={composeEventHandlers(props.onPointerLeave, () => {\n context.onTriggerLeave();\n hasPointerMoveOpenedRef.current = false;\n })}\n onPointerDown={composeEventHandlers(props.onPointerDown, () => {\n isPointerDownRef.current = true;\n document.addEventListener('pointerup', handlePointerUp, { once: true });\n })}\n onFocus={composeEventHandlers(props.onFocus, () => {\n if (!isPointerDownRef.current) context.onOpen();\n })}\n onBlur={composeEventHandlers(props.onBlur, context.onClose)}\n onClick={composeEventHandlers(props.onClick, context.onClose)}\n />\n \n );\n }\n);\n\nTooltipTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * TooltipPortal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'TooltipPortal';\n\ntype PortalContextValue = { forceMount?: true };\nconst [PortalProvider, usePortalContext] = createTooltipContext(PORTAL_NAME, {\n forceMount: undefined,\n});\n\ntype PortalProps = React.ComponentPropsWithoutRef;\ninterface TooltipPortalProps {\n children?: React.ReactNode;\n /**\n * Specify a container element to portal the content into.\n */\n container?: PortalProps['container'];\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst TooltipPortal: React.FC = (props: ScopedProps) => {\n const { __scopeTooltip, forceMount, children, container } = props;\n const context = useTooltipContext(PORTAL_NAME, __scopeTooltip);\n return (\n \n \n \n {children}\n \n \n \n );\n};\n\nTooltipPortal.displayName = PORTAL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * TooltipContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'TooltipContent';\n\ntype TooltipContentElement = TooltipContentImplElement;\ninterface TooltipContentProps extends TooltipContentImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst TooltipContent = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeTooltip);\n const { forceMount = portalContext.forceMount, side = 'top', ...contentProps } = props;\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n\n return (\n \n {context.disableHoverableContent ? (\n \n ) : (\n \n )}\n \n );\n }\n);\n\ntype Point = { x: number; y: number };\ntype Polygon = Point[];\n\ntype TooltipContentHoverableElement = TooltipContentImplElement;\ninterface TooltipContentHoverableProps extends TooltipContentImplProps {}\n\nconst TooltipContentHoverable = React.forwardRef<\n TooltipContentHoverableElement,\n TooltipContentHoverableProps\n>((props: ScopedProps, forwardedRef) => {\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n const providerContext = useTooltipProviderContext(CONTENT_NAME, props.__scopeTooltip);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const [pointerGraceArea, setPointerGraceArea] = React.useState(null);\n\n const { trigger, onClose } = context;\n const content = ref.current;\n\n const { onPointerInTransitChange } = providerContext;\n\n const handleRemoveGraceArea = React.useCallback(() => {\n setPointerGraceArea(null);\n onPointerInTransitChange(false);\n }, [onPointerInTransitChange]);\n\n const handleCreateGraceArea = React.useCallback(\n (event: PointerEvent, hoverTarget: HTMLElement) => {\n const currentTarget = event.currentTarget as HTMLElement;\n const exitPoint = { x: event.clientX, y: event.clientY };\n const exitSide = getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect());\n const paddedExitPoints = getPaddedExitPoints(exitPoint, exitSide);\n const hoverTargetPoints = getPointsFromRect(hoverTarget.getBoundingClientRect());\n const graceArea = getHull([...paddedExitPoints, ...hoverTargetPoints]);\n setPointerGraceArea(graceArea);\n onPointerInTransitChange(true);\n },\n [onPointerInTransitChange]\n );\n\n React.useEffect(() => {\n return () => handleRemoveGraceArea();\n }, [handleRemoveGraceArea]);\n\n React.useEffect(() => {\n if (trigger && content) {\n const handleTriggerLeave = (event: PointerEvent) => handleCreateGraceArea(event, content);\n const handleContentLeave = (event: PointerEvent) => handleCreateGraceArea(event, trigger);\n\n trigger.addEventListener('pointerleave', handleTriggerLeave);\n content.addEventListener('pointerleave', handleContentLeave);\n return () => {\n trigger.removeEventListener('pointerleave', handleTriggerLeave);\n content.removeEventListener('pointerleave', handleContentLeave);\n };\n }\n }, [trigger, content, handleCreateGraceArea, handleRemoveGraceArea]);\n\n React.useEffect(() => {\n if (pointerGraceArea) {\n const handleTrackPointerGrace = (event: PointerEvent) => {\n const target = event.target as HTMLElement;\n const pointerPosition = { x: event.clientX, y: event.clientY };\n const hasEnteredTarget = trigger?.contains(target) || content?.contains(target);\n const isPointerOutsideGraceArea = !isPointInPolygon(pointerPosition, pointerGraceArea);\n\n if (hasEnteredTarget) {\n handleRemoveGraceArea();\n } else if (isPointerOutsideGraceArea) {\n handleRemoveGraceArea();\n onClose();\n }\n };\n document.addEventListener('pointermove', handleTrackPointerGrace);\n return () => document.removeEventListener('pointermove', handleTrackPointerGrace);\n }\n }, [trigger, content, pointerGraceArea, onClose, handleRemoveGraceArea]);\n\n return ;\n});\n\nconst [VisuallyHiddenContentContextProvider, useVisuallyHiddenContentContext] =\n createTooltipContext(TOOLTIP_NAME, { isInside: false });\n\ntype TooltipContentImplElement = React.ElementRef;\ntype DismissableLayerProps = Radix.ComponentPropsWithoutRef;\ntype PopperContentProps = Radix.ComponentPropsWithoutRef;\ninterface TooltipContentImplProps extends Omit {\n /**\n * A more descriptive label for accessibility purpose\n */\n 'aria-label'?: string;\n\n /**\n * Event handler called when the escape key is down.\n * Can be prevented.\n */\n onEscapeKeyDown?: DismissableLayerProps['onEscapeKeyDown'];\n /**\n * Event handler called when the a `pointerdown` event happens outside of the `Tooltip`.\n * Can be prevented.\n */\n onPointerDownOutside?: DismissableLayerProps['onPointerDownOutside'];\n}\n\nconst TooltipContentImpl = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const {\n __scopeTooltip,\n children,\n 'aria-label': ariaLabel,\n onEscapeKeyDown,\n onPointerDownOutside,\n ...contentProps\n } = props;\n const context = useTooltipContext(CONTENT_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const { onClose } = context;\n\n // Close this tooltip if another one opens\n React.useEffect(() => {\n document.addEventListener(TOOLTIP_OPEN, onClose);\n return () => document.removeEventListener(TOOLTIP_OPEN, onClose);\n }, [onClose]);\n\n // Close the tooltip if the trigger is scrolled\n React.useEffect(() => {\n if (context.trigger) {\n const handleScroll = (event: Event) => {\n const target = event.target as HTMLElement;\n if (target?.contains(context.trigger)) onClose();\n };\n window.addEventListener('scroll', handleScroll, { capture: true });\n return () => window.removeEventListener('scroll', handleScroll, { capture: true });\n }\n }, [context.trigger, onClose]);\n\n return (\n event.preventDefault()}\n onDismiss={onClose}\n >\n \n {children}\n \n \n {ariaLabel || children}\n \n \n \n \n );\n }\n);\n\nTooltipContent.displayName = CONTENT_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * TooltipArrow\n * -----------------------------------------------------------------------------------------------*/\n\nconst ARROW_NAME = 'TooltipArrow';\n\ntype TooltipArrowElement = React.ElementRef;\ntype PopperArrowProps = Radix.ComponentPropsWithoutRef;\ninterface TooltipArrowProps extends PopperArrowProps {}\n\nconst TooltipArrow = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeTooltip, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeTooltip);\n const visuallyHiddenContentContext = useVisuallyHiddenContentContext(\n ARROW_NAME,\n __scopeTooltip\n );\n // if the arrow is inside the `VisuallyHidden`, we don't want to render it all to\n // prevent issues in positioning the arrow due to the duplicate\n return visuallyHiddenContentContext.isInside ? null : (\n \n );\n }\n);\n\nTooltipArrow.displayName = ARROW_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype Side = NonNullable;\n\nfunction getExitSideFromRect(point: Point, rect: DOMRect): Side {\n const top = Math.abs(rect.top - point.y);\n const bottom = Math.abs(rect.bottom - point.y);\n const right = Math.abs(rect.right - point.x);\n const left = Math.abs(rect.left - point.x);\n\n switch (Math.min(top, bottom, right, left)) {\n case left:\n return 'left';\n case right:\n return 'right';\n case top:\n return 'top';\n case bottom:\n return 'bottom';\n default:\n throw new Error('unreachable');\n }\n}\n\nfunction getPaddedExitPoints(exitPoint: Point, exitSide: Side, padding = 5) {\n const paddedExitPoints: Point[] = [];\n switch (exitSide) {\n case 'top':\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y + padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding }\n );\n break;\n case 'bottom':\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y - padding }\n );\n break;\n case 'left':\n paddedExitPoints.push(\n { x: exitPoint.x + padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding }\n );\n break;\n case 'right':\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x - padding, y: exitPoint.y + padding }\n );\n break;\n }\n return paddedExitPoints;\n}\n\nfunction getPointsFromRect(rect: DOMRect) {\n const { top, right, bottom, left } = rect;\n return [\n { x: left, y: top },\n { x: right, y: top },\n { x: right, y: bottom },\n { x: left, y: bottom },\n ];\n}\n\n// Determine if a point is inside of a polygon.\n// Based on https://github.com/substack/point-in-polygon\nfunction isPointInPolygon(point: Point, polygon: Polygon) {\n const { x, y } = point;\n let inside = false;\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const xi = polygon[i].x;\n const yi = polygon[i].y;\n const xj = polygon[j].x;\n const yj = polygon[j].y;\n\n // prettier-ignore\n const intersect = ((yi > y) !== (yj > y)) && (x < (xj - xi) * (y - yi) / (yj - yi) + xi);\n if (intersect) inside = !inside;\n }\n\n return inside;\n}\n\n// Returns a new array of points representing the convex hull of the given set of points.\n// https://www.nayuki.io/page/convex-hull-algorithm\nfunction getHull

(points: Readonly>): Array

{\n const newPoints: Array

= points.slice();\n newPoints.sort((a: Point, b: Point) => {\n if (a.x < b.x) return -1;\n else if (a.x > b.x) return +1;\n else if (a.y < b.y) return -1;\n else if (a.y > b.y) return +1;\n else return 0;\n });\n return getHullPresorted(newPoints);\n}\n\n// Returns the convex hull, assuming that each points[i] <= points[i + 1]. Runs in O(n) time.\nfunction getHullPresorted

(points: Readonly>): Array

{\n if (points.length <= 1) return points.slice();\n\n const upperHull: Array

= [];\n for (let i = 0; i < points.length; i++) {\n const p = points[i];\n while (upperHull.length >= 2) {\n const q = upperHull[upperHull.length - 1];\n const r = upperHull[upperHull.length - 2];\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) upperHull.pop();\n else break;\n }\n upperHull.push(p);\n }\n upperHull.pop();\n\n const lowerHull: Array

= [];\n for (let i = points.length - 1; i >= 0; i--) {\n const p = points[i];\n while (lowerHull.length >= 2) {\n const q = lowerHull[lowerHull.length - 1];\n const r = lowerHull[lowerHull.length - 2];\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) lowerHull.pop();\n else break;\n }\n lowerHull.push(p);\n }\n lowerHull.pop();\n\n if (\n upperHull.length === 1 &&\n lowerHull.length === 1 &&\n upperHull[0].x === lowerHull[0].x &&\n upperHull[0].y === lowerHull[0].y\n ) {\n return upperHull;\n } else {\n return upperHull.concat(lowerHull);\n }\n}\n\nconst Provider = TooltipProvider;\nconst Root = Tooltip;\nconst Trigger = TooltipTrigger;\nconst Portal = TooltipPortal;\nconst Content = TooltipContent;\nconst Arrow = TooltipArrow;\n\nexport {\n createTooltipScope,\n //\n TooltipProvider,\n Tooltip,\n TooltipTrigger,\n TooltipPortal,\n TooltipContent,\n TooltipArrow,\n //\n Provider,\n Root,\n Trigger,\n Portal,\n Content,\n Arrow,\n};\nexport type {\n TooltipProps,\n TooltipTriggerProps,\n TooltipPortalProps,\n TooltipContentProps,\n TooltipArrowProps,\n};\n","import { useWallets, useWallet } from '@thirdweb-dev/react-core';\nimport { useState, useRef, useEffect, useContext, createContext } from 'react';\nimport { t as Input, S as Spacer, T as Text, B as Button, u as useCustomTheme, r as radius, s as spacing, h as fontSize, E as shadow } from './formElements-7f371201.browser.esm.js';\nimport { jsxs, jsx, Fragment } from 'react/jsx-runtime';\nimport { keyframes } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport * as RadixTooltip from '@radix-ui/react-tooltip';\n\nconst reservedScreens = {\n main: \"main\",\n getStarted: \"getStarted\",\n signIn: \"signIn\"\n};\nconst modalMaxWidthCompact = \"360px\";\nconst modalMaxWidthWide = \"730px\";\nconst wideModalMaxHeight = \"570px\";\nconst compactModalMaxHeight = \"600px\";\nconst defaultTheme = \"dark\";\nconst modalCloseFadeOutDuration = 250;\nfunction onModalUnmount(cb) {\n setTimeout(cb, modalCloseFadeOutDuration + 100);\n}\n\nconst ScreenContext = /* @__PURE__ */createContext(undefined);\nfunction useScreen() {\n const walletConfigs = useWallets();\n const initialScreen = (walletConfigs.length === 1 && !walletConfigs[0]?.selectUI ? walletConfigs[0] : reservedScreens.main) || reservedScreens.main;\n const [screen, setScreen] = useState(initialScreen);\n const prevInitialScreen = useRef(initialScreen);\n const wallet = useWallet();\n\n // when the initial screen changes, reset the screen to the initial screen ( if the modal is closed )\n useEffect(() => {\n if (initialScreen !== prevInitialScreen.current) {\n prevInitialScreen.current = initialScreen;\n setScreen(initialScreen);\n }\n }, [initialScreen]);\n\n // if on signature screen and suddenly the wallet is disconnected, go back to the main screen\n useEffect(() => {\n if (!wallet && screen === reservedScreens.signIn) {\n setScreen(reservedScreens.main);\n }\n }, [wallet, screen]);\n return {\n screen,\n setScreen,\n initialScreen\n };\n}\nfunction useScreenContext() {\n const screen = useContext(ScreenContext);\n if (!screen) {\n throw new Error(\"useScreenContext must be used within a \");\n }\n return screen;\n}\n\nconst emailIcon = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzM1ODlfODY0OSkiPgo8cmVjdCB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHJ4PSI4IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfMzU4OV84NjQ5KSIvPgo8cmVjdCB4PSItMSIgeT0iLTEiIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIgcng9IjkuOCIgZmlsbD0idXJsKCNwYWludDFfbGluZWFyXzM1ODlfODY0OSkiLz4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAxXzM1ODlfODY0OSkiPgo8cGF0aCBkPSJNMjQgMTQuMjVDMTguNjE3MiAxNC4yNSAxNC4yNSAxOC42MTcyIDE0LjI1IDI0QzE0LjI1IDI5LjM4MjggMTguNjE3MiAzMy43NSAyNCAzMy43NUMyNC44OTg4IDMzLjc1IDI1LjYyNSAzNC40NzYyIDI1LjYyNSAzNS4zNzVDMjUuNjI1IDM2LjI3MzggMjQuODk4OCAzNyAyNCAzN0MxNi44MTk1IDM3IDExIDMxLjE4MDUgMTEgMjRDMTEgMTYuODE5NSAxNi44MTk1IDExIDI0IDExQzMxLjE4MDUgMTEgMzcgMTYuODE5NSAzNyAyNFYyNS42MjVDMzcgMjguMzE2NCAzNC44MTY0IDMwLjUgMzIuMTI1IDMwLjVDMzAuNjM3MSAzMC41IDI5LjMwMTYgMjkuODI5NyAyOC40MDc4IDI4Ljc3ODVDMjcuMjUgMjkuODQ0OSAyNS43MDEyIDMwLjUgMjQgMzAuNUMyMC40MDk4IDMwLjUgMTcuNSAyNy41OTAyIDE3LjUgMjRDMTcuNSAyMC40MDk4IDIwLjQwOTggMTcuNSAyNCAxNy41QzI1LjQxNjggMTcuNSAyNi43MjcgMTcuOTUyIDI3Ljc5MzQgMTguNzIzOEMyOC4wODI4IDE4LjQ2OTkgMjguNDU4NiAxOC4zMTI1IDI4Ljg3NSAxOC4zMTI1QzI5Ljc3MzggMTguMzEyNSAzMC41IDE5LjAzODcgMzAuNSAxOS45Mzc1VjI1LjYyNUMzMC41IDI2LjUyMzggMzEuMjI2MiAyNy4yNSAzMi4xMjUgMjcuMjVDMzMuMDIzOCAyNy4yNSAzMy43NSAyNi41MjM4IDMzLjc1IDI1LjYyNVYyNEMzMy43NSAxOC42MTcyIDI5LjM4MjggMTQuMjUgMjQgMTQuMjVaTTI3LjI1IDI0QzI3LjI1IDIzLjEzOCAyNi45MDc2IDIyLjMxMTQgMjYuMjk4MSAyMS43MDE5QzI1LjY4ODYgMjEuMDkyNCAyNC44NjIgMjAuNzUgMjQgMjAuNzVDMjMuMTM4IDIwLjc1IDIyLjMxMTQgMjEuMDkyNCAyMS43MDE5IDIxLjcwMTlDMjEuMDkyNCAyMi4zMTE0IDIwLjc1IDIzLjEzOCAyMC43NSAyNEMyMC43NSAyNC44NjIgMjEuMDkyNCAyNS42ODg2IDIxLjcwMTkgMjYuMjk4MUMyMi4zMTE0IDI2LjkwNzYgMjMuMTM4IDI3LjI1IDI0IDI3LjI1QzI0Ljg2MiAyNy4yNSAyNS42ODg2IDI2LjkwNzYgMjYuMjk4MSAyNi4yOTgxQzI2LjkwNzYgMjUuNjg4NiAyNy4yNSAyNC44NjIgMjcuMjUgMjRaIiBmaWxsPSJ3aGl0ZSIvPgo8L2c+CjwvZz4KPGRlZnM+CjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQwX2xpbmVhcl8zNTg5Xzg2NDkiIHgxPSIyNS41IiB5MT0iLTYuMjk1NzJlLTA2IiB4Mj0iMzAuMjAxNiIgeTI9IjQ3LjUzNSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjODM1OEJBIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzdCMUNGNyIvPgo8L2xpbmVhckdyYWRpZW50Pgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MV9saW5lYXJfMzU4OV84NjQ5IiB4MT0iMjUuNTYyNSIgeTE9Ii0xLjAwMDAxIiB4Mj0iMzAuNDYiIHkyPSI0OC41MTU2IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiM4MzU4QkEiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjN0IxQ0Y3Ii8+CjwvbGluZWFyR3JhZGllbnQ+CjxjbGlwUGF0aCBpZD0iY2xpcDBfMzU4OV84NjQ5Ij4KPHJlY3Qgd2lkdGg9IjQ4IiBoZWlnaHQ9IjQ4IiByeD0iOCIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPGNsaXBQYXRoIGlkPSJjbGlwMV8zNTg5Xzg2NDkiPgo8cmVjdCB3aWR0aD0iMjYiIGhlaWdodD0iMjYiIGZpbGw9IndoaXRlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMSAxMSkiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K\";\nconst phoneIcon = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzM1ODlfODYwMikiPgo8cmVjdCB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHJ4PSI4IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfMzU4OV84NjAyKSIvPgo8cmVjdCB4PSItMSIgeT0iLTEiIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIgcng9IjkuOCIgZmlsbD0idXJsKCNwYWludDFfbGluZWFyXzM1ODlfODYwMikiLz4KPHBhdGggZD0iTTE4Ljg2MjIgMjYuODY0NkwxOS41MTk0IDI3LjUxODlDMTkuNTE5NCAyNy41MTg5IDIxLjA4MzcgMjkuMDczMSAyNS4zNTIxIDI0LjgyOTNDMjkuNjIwNSAyMC41ODU1IDI4LjA1NjEgMTkuMDMxMyAyOC4wNTYxIDE5LjAzMTNMMjcuNjQzIDE4LjYxODFDMjYuNjIxOCAxNy42MDQxIDI2LjUyNSAxNS45NzQ4IDI3LjQxNjIgMTQuNzg0NkwyOS4yMzYyIDEyLjM1MzVDMzAuMzM5OCAxMC44ODAyIDMyLjQ3MDQgMTAuNjg1MiAzMy43MzQzIDExLjk0MTlMMzYuMDAyMSAxNC4xOTUyQzM2LjYyNzUgMTQuODE5MiAzNy4wNDY0IDE1LjYyNTIgMzYuOTk1OSAxNi41MjA4QzM2Ljg2NTkgMTguODEzMSAzNS44Mjg4IDIzLjc0MzEgMzAuMDQ1MSAyOS40OTQ5QzIzLjkxMDUgMzUuNTkzNCAxOC4xNTQ0IDM1LjgzNjEgMTUuODAxNCAzNS42MTY1QzE1LjA1NiAzNS41NDcyIDE0LjQwODkgMzUuMTY4NyAxMy44ODc0IDM0LjY0ODdMMTEuODM2MyAzMi42MDkyQzEwLjQ0OTYgMzEuMjMyNiAxMC44Mzk2IDI4Ljg3MDkgMTIuNjEzNCAyNy45MDc0TDE1LjM3MjMgMjYuNDA2N0MxNi41MzY2IDI1Ljc3NCAxNy45NTIxIDI1Ljk2MDMgMTguODYyMiAyNi44NjQ2WiIgZmlsbD0id2hpdGUiLz4KPC9nPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzM1ODlfODYwMiIgeDE9IjI1LjUiIHkxPSItNi4yOTU3MmUtMDYiIHgyPSIzMC4yMDE2IiB5Mj0iNDcuNTM1IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiM4MzU4QkEiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjN0IxQ0Y3Ii8+CjwvbGluZWFyR3JhZGllbnQ+CjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQxX2xpbmVhcl8zNTg5Xzg2MDIiIHgxPSIyNS41NjI1IiB5MT0iLTEuMDAwMDEiIHgyPSIzMC40NiIgeTI9IjQ4LjUxNTYiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0iIzgzNThCQSIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM3QjFDRjciLz4KPC9saW5lYXJHcmFkaWVudD4KPGNsaXBQYXRoIGlkPSJjbGlwMF8zNTg5Xzg2MDIiPgo8cmVjdCB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHJ4PSI4IiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=\";\nconst emailAndPhoneIcon = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzM2ODVfNjcwMikiPgo8cmVjdCB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHJ4PSI4IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfMzY4NV82NzAyKSIvPgo8cmVjdCB4PSItMSIgeT0iLTEiIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIgcng9IjkuOCIgZmlsbD0idXJsKCNwYWludDFfbGluZWFyXzM2ODVfNjcwMikiLz4KPHBhdGggZD0iTTE3IDExQzEzLjY4NzUgMTEgMTEgMTMuNjg3NSAxMSAxN0MxMSAyMC4zMTI1IDEzLjY4NzUgMjMgMTcgMjNDMTcuNTUzMSAyMyAxOCAyMy40NDY5IDE4IDI0QzE4IDI0LjU1MzEgMTcuNTUzMSAyNSAxNyAyNUMxMi41ODEzIDI1IDkgMjEuNDE4NyA5IDE3QzkgMTIuNTgxMyAxMi41ODEzIDkgMTcgOUMyMS40MTg3IDkgMjUgMTIuNTgxMyAyNSAxN1YxOEMyNSAxOS42NTYyIDIzLjY1NjIgMjEgMjIgMjFDMjEuMDg0NCAyMSAyMC4yNjI1IDIwLjU4NzUgMTkuNzEyNSAxOS45NDA2QzE5IDIwLjU5NjkgMTguMDQ2OSAyMSAxNyAyMUMxNC43OTA2IDIxIDEzIDE5LjIwOTQgMTMgMTdDMTMgMTQuNzkwNiAxNC43OTA2IDEzIDE3IDEzQzE3Ljg3MTkgMTMgMTguNjc4MSAxMy4yNzgxIDE5LjMzNDQgMTMuNzUzMUMxOS41MTI1IDEzLjU5NjkgMTkuNzQzOCAxMy41IDIwIDEzLjVDMjAuNTUzMSAxMy41IDIxIDEzLjk0NjkgMjEgMTQuNVYxOEMyMSAxOC41NTMxIDIxLjQ0NjkgMTkgMjIgMTlDMjIuNTUzMSAxOSAyMyAxOC41NTMxIDIzIDE4VjE3QzIzIDEzLjY4NzUgMjAuMzEyNSAxMSAxNyAxMVpNMTkgMTdDMTkgMTYuNDY5NiAxOC43ODkzIDE1Ljk2MDkgMTguNDE0MiAxNS41ODU4QzE4LjAzOTEgMTUuMjEwNyAxNy41MzA0IDE1IDE3IDE1QzE2LjQ2OTYgMTUgMTUuOTYwOSAxNS4yMTA3IDE1LjU4NTggMTUuNTg1OEMxNS4yMTA3IDE1Ljk2MDkgMTUgMTYuNDY5NiAxNSAxN0MxNSAxNy41MzA0IDE1LjIxMDcgMTguMDM5MSAxNS41ODU4IDE4LjQxNDJDMTUuOTYwOSAxOC43ODkzIDE2LjQ2OTYgMTkgMTcgMTlDMTcuNTMwNCAxOSAxOC4wMzkxIDE4Ljc4OTMgMTguNDE0MiAxOC40MTQyQzE4Ljc4OTMgMTguMDM5MSAxOSAxNy41MzA0IDE5IDE3WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTI3LjgzODQgMzMuMjY0NEwyOC4yNDI5IDMzLjY5MDdDMjguMjQyOSAzMy42OTA3IDI5LjIwNTUgMzQuNzAzNCAzMS44MzIyIDMxLjkzODNDMzQuNDU4OCAyOS4xNzMxIDMzLjQ5NjIgMjguMTYwNCAzMy40OTYyIDI4LjE2MDRMMzMuMjQxOSAyNy44OTEyQzMyLjYxMzUgMjcuMjMwNSAzMi41NTM5IDI2LjE2ODkgMzMuMTAyNCAyNS4zOTM0TDM0LjIyMjQgMjMuODA5NEMzNC45MDE1IDIyLjg0OTQgMzYuMjEyNiAyMi43MjIzIDM2Ljk5MDQgMjMuNTQxMkwzOC4zODU5IDI1LjAwOTRDMzguNzcwOCAyNS40MTYgMzkuMDI4NiAyNS45NDExIDM4Ljk5NzUgMjYuNTI0N0MzOC45MTc1IDI4LjAxODMgMzguMjc5MiAzMS4yMzA1IDM0LjcyMDIgMzQuOTc4M0MzMC45NDUxIDM4Ljk1MTkgMjcuNDAyOSAzOS4xMSAyNS45NTQ5IDM4Ljk2NjlDMjUuNDk2MiAzOC45MjE4IDI1LjA5OCAzOC42NzUyIDI0Ljc3NzEgMzguMzM2M0wyMy41MTQ5IDM3LjAwNzRDMjIuNjYxNiAzNi4xMTA1IDIyLjkwMTYgMzQuNTcxNyAyMy45OTMxIDMzLjk0MzlMMjUuNjkwOSAzMi45NjZDMjYuNDA3MyAzMi41NTM4IDI3LjI3ODQgMzIuNjc1MiAyNy44Mzg0IDMzLjI2NDRaIiBmaWxsPSJ3aGl0ZSIvPgo8L2c+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMzY4NV82NzAyIiB4MT0iMjUuNSIgeTE9Ii02LjI5NTcyZS0wNiIgeDI9IjMwLjIwMTYiIHkyPSI0Ny41MzUiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0iIzgzNThCQSIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM3QjFDRjciLz4KPC9saW5lYXJHcmFkaWVudD4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDFfbGluZWFyXzM2ODVfNjcwMiIgeDE9IjI1LjU2MjUiIHkxPSItMS4wMDAwMSIgeDI9IjMwLjQ2IiB5Mj0iNDguNTE1NiIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjODM1OEJBIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzdCMUNGNyIvPgo8L2xpbmVhckdyYWRpZW50Pgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzM2ODVfNjcwMiI+CjxyZWN0IHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCIgcng9IjgiIGZpbGw9IndoaXRlIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==\";\nconst smartWalletIcon = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODAiIGhlaWdodD0iODAiIHZpZXdCb3g9IjAgMCA4MCA4MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjgwIiBoZWlnaHQ9IjgwIiByeD0iMTIiIGZpbGw9InVybCgjcGFpbnQwX2xpbmVhcl8xXzkxKSIvPgo8cGF0aCBkPSJNMzkuOTk2OSAxOEw0MC4yMzMzIDE4LjAxNTZMNDAuMzUxMyAxOC4wMzMzTDQwLjQ3MzYgMTguMDYyMkw0MC42OTU4IDE4LjEzNzhDNDAuODQ5NCAxOC4yMDA2IDQwLjk5NTQgMTguMjg0MiA0MS4xMzA1IDE4LjM4NjdMNDEuMzM4NyAxOC41Njg5TDQxLjg0OTMgMTkuMDUzM0M0NS44ODkxIDIyLjc3NjggNTAuOTk0NyAyNC43NzYyIDU2LjI0NTggMjQuNjkxMUw1Ni45MzA3IDI0LjY2ODlDNTcuMzc4MyAyNC42NDYyIDU3LjgyIDI0Ljc5MDkgNTguMTg0OSAyNS4wNzk4QzU4LjU0OTggMjUuMzY4NyA1OC44MTY3IDI1Ljc4NSA1OC45NDMxIDI2LjI2MjJDNTkuOTI3MSAyOS45NzY5IDYwLjIyODMgMzMuODczMSA1OS44Mjg3IDM3LjcxOTRDNTkuNDI4OSA0MS41NjU4IDU4LjMzNjcgNDUuMjgzNiA1Ni42MTY1IDQ4LjY1MjNDNTQuODk2NSA1Mi4wMjA3IDUyLjU4MzYgNTQuOTcxNCA0OS44MTU2IDU3LjMyODVDNDcuMDQ3NiA1OS42ODU2IDQzLjg4MDkgNjEuNDAxMiA0MC41MDM2IDYyLjM3MzRDNDAuMTc0IDYyLjQ2ODMgMzkuODI4IDYyLjQ2ODMgMzkuNDk4MiA2Mi4zNzM0QzM2LjEyMDkgNjEuNDAxNCAzMi45NTM4IDU5LjY4NiAzMC4xODU2IDU3LjMyODlDMjcuNDE3NiA1NC45NzE4IDI1LjEwNDUgNTIuMDIxNCAyMy4zODQyIDQ4LjY1MjlDMjEuNjYzOCA0NS4yODQzIDIwLjU3MTMgNDEuNTY2MiAyMC4xNzE1IDM3LjcxOThDMTkuNzcxNyAzMy44NzM0IDIwLjA3MjcgMjkuOTc2OSAyMS4wNTY3IDI2LjI2MjJDMjEuMTgzMSAyNS43ODUgMjEuNDUwMSAyNS4zNjg3IDIxLjgxNSAyNS4wNzk4QzIyLjE3OTkgMjQuNzkwOSAyMi42MjE1IDI0LjY0NjIgMjMuMDY5MyAyNC42Njg5QzI4LjU1MTMgMjQuOTQ3IDMzLjkyOTMgMjIuOTQ0NCAzOC4xNTA3IDE5LjA1MzNMMzguNjc3MyAxOC41NTMzTDM4Ljg2OTYgMTguMzg2N0MzOS4wMDQ3IDE4LjI4NDIgMzkuMTUwNSAxOC4yMDA2IDM5LjMwNCAxOC4xMzc4TDM5LjUyODIgMTguMDYyMkMzOS42MDY5IDE4LjA0MTIgMzkuNjg2NSAxOC4wMjU2IDM5Ljc2NjcgMTguMDE1NkwzOS45OTY5IDE4Wk00MC4wMDA5IDMzLjU1NTZDMzguOTkwNSAzMy41NTUxIDM4LjAxNzMgMzMuOTc4NyAzNy4yNzY1IDM0Ljc0MTFDMzYuNTM1NiAzNS41MDM2IDM2LjA4MTYgMzYuNTQ4NSAzNi4wMDU4IDM3LjY2NjdMMzUuOTk1OCAzOEwzNi4wMDU4IDM4LjMzMzRDMzYuMDU1MSAzOS4wNTQ3IDM2LjI2MjUgMzkuNzUxOCAzNi42MDk4IDQwLjM2NEMzNi45NTY5IDQwLjk3NjIgMzcuNDMzNiA0MS40ODUxIDM3Ljk5ODUgNDEuODQ2N1Y0NS43Nzc4TDM4LjAxMjUgNDYuMDM3OEMzOC4wNzI3IDQ2LjYwMDMgMzguMzI0MiA0Ny4xMTU4IDM4LjcxNTYgNDcuNDc5NEMzOS4xMDcxIDQ3Ljg0MjkgMzkuNjA4NyA0OC4wMjY5IDQwLjExODIgNDcuOTkzOEM0MC42Mjc4IDQ3Ljk2MDUgNDEuMTA2NyA0Ny43MTI3IDQxLjQ1NzEgNDcuMzAwOUM0MS44MDc2IDQ2Ljg4ODkgNDIuMDAyOSA0Ni4zNDQzIDQyLjAwMzYgNDUuNzc3OEw0Mi4wMDU2IDQxLjg0ODlDNDIuNzY5MSA0MS4zNTk2IDQzLjM2NiA0MC42MDQyIDQzLjcwMzQgMzkuNzAwMkM0NC4wNDA3IDM4Ljc5NiA0NC4wOTk2IDM3Ljc5MzggNDMuODcxMSAzNi44NDg3QzQzLjY0MjcgMzUuOTAzNiA0My4xMzk2IDM1LjA2ODUgNDIuNDM5OCAzNC40NzMxQzQxLjc0IDMzLjg3NzYgNDAuODgyNyAzMy41NTUxIDQwLjAwMDkgMzMuNTU1NloiIGZpbGw9InVybCgjcGFpbnQxX2xpbmVhcl8xXzkxKSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzFfOTEiIHgxPSI0MCIgeTE9IjAiIHgyPSI0MCIgeTI9IjgwIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiM4MzU2QkQiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjN0MyMEY0Ii8+CjwvbGluZWFyR3JhZGllbnQ+CjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQxX2xpbmVhcl8xXzkxIiB4MT0iNDAiIHkxPSIxOCIgeDI9IjQwIiB5Mj0iNjIuNDQ0NSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSJ3aGl0ZSIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNFMUQ4RkIiLz4KPC9saW5lYXJHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K\";\n\nfunction InputSelectionUI(props) {\n const [input, setInput] = useState(\"\");\n const [error, setError] = useState();\n const [showError, setShowError] = useState(false);\n const handleSelect = () => {\n setShowError(true);\n if (!input || !!error) {\n return;\n }\n props.onSelect(input);\n };\n const renderingError = showError && !!error || !input && !!props.emptyErrorMessage && showError;\n return /*#__PURE__*/jsxs(\"div\", {\n children: [/*#__PURE__*/jsx(\"div\", {\n style: {\n position: \"relative\"\n },\n children: /*#__PURE__*/jsx(Input, {\n tabIndex: -1,\n placeholder: props.placeholder,\n variant: \"outline\",\n type: props.type,\n name: props.name,\n value: input,\n \"data-error\": renderingError,\n onChange: e => {\n setInput(e.target.value);\n if (props.errorMessage) {\n setError(props.errorMessage(e.target.value));\n } else {\n setError(undefined);\n }\n },\n onKeyDown: e => {\n if (e.key === \"Enter\") {\n handleSelect();\n }\n }\n })\n }), showError && error && /*#__PURE__*/jsxs(Fragment, {\n children: [/*#__PURE__*/jsx(Spacer, {\n y: \"xs\"\n }), /*#__PURE__*/jsx(Text, {\n color: \"danger\",\n size: \"sm\",\n children: error\n })]\n }), !(showError && error) && !input && props.emptyErrorMessage && showError && /*#__PURE__*/jsxs(Fragment, {\n children: [/*#__PURE__*/jsx(Spacer, {\n y: \"xs\"\n }), /*#__PURE__*/jsx(Text, {\n color: \"danger\",\n size: \"sm\",\n children: props.emptyErrorMessage\n })]\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"md\"\n }), /*#__PURE__*/jsx(Button, {\n variant: \"accent\",\n onClick: handleSelect,\n fullWidth: true,\n children: props.submitButtonText\n })]\n });\n}\n\nconst googleIconUri = \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI3MDUuNiIgaGVpZ2h0PSI3MjAiIHZpZXdCb3g9IjAgMCAxODYuNjkgMTkwLjUiIHhtbG5zOnY9Imh0dHBzOi8vdmVjdGEuaW8vbmFubyI+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTE4NC41ODMgNzY1LjE3MSkiPjxwYXRoIGNsaXAtcGF0aD0ibm9uZSIgbWFzaz0ibm9uZSIgZD0iTS0xMDg5LjMzMy02ODcuMjM5djM2Ljg4OGg1MS4yNjJjLTIuMjUxIDExLjg2My05LjAwNiAyMS45MDgtMTkuMTM3IDI4LjY2MmwzMC45MTMgMjMuOTg2YzE4LjAxMS0xNi42MjUgMjguNDAyLTQxLjA0NCAyOC40MDItNzAuMDUyIDAtNi43NTQtLjYwNi0xMy4yNDktMS43MzItMTkuNDgzeiIgZmlsbD0iIzQyODVmNCIvPjxwYXRoIGNsaXAtcGF0aD0ibm9uZSIgbWFzaz0ibm9uZSIgZD0iTS0xMTQyLjcxNC02NTEuNzkxbC02Ljk3MiA1LjMzNy0yNC42NzkgMTkuMjIzaDBjMTUuNjczIDMxLjA4NiA0Ny43OTYgNTIuNTYxIDg1LjAzIDUyLjU2MSAyNS43MTcgMCA0Ny4yNzgtOC40ODYgNjMuMDM4LTIzLjAzM2wtMzAuOTEzLTIzLjk4NmMtOC40ODYgNS43MTUtMTkuMzEgOS4xNzktMzIuMTI1IDkuMTc5LTI0Ljc2NSAwLTQ1LjgwNi0xNi43MTItNTMuMzQtMzkuMjI2eiIgZmlsbD0iIzM0YTg1MyIvPjxwYXRoIGNsaXAtcGF0aD0ibm9uZSIgbWFzaz0ibm9uZSIgZD0iTS0xMTc0LjM2NS03MTIuNjFjLTYuNDk0IDEyLjgxNS0xMC4yMTcgMjcuMjc2LTEwLjIxNyA0Mi42ODlzMy43MjMgMjkuODc0IDEwLjIxNyA0Mi42ODljMCAuMDg2IDMxLjY5My0yNC41OTIgMzEuNjkzLTI0LjU5Mi0xLjkwNS01LjcxNS0zLjAzMS0xMS43NzYtMy4wMzEtMTguMDk4czEuMTI2LTEyLjM4MyAzLjAzMS0xOC4wOTh6IiBmaWxsPSIjZmJiYzA1Ii8+PHBhdGggZD0iTS0xMDg5LjMzMy03MjcuMjQ0YzE0LjAyOCAwIDI2LjQ5NyA0Ljg0OSAzNi40NTUgMTQuMjAxbDI3LjI3Ni0yNy4yNzZjLTE2LjUzOS0xNS40MTMtMzguMDEzLTI0Ljg1Mi02My43MzEtMjQuODUyLTM3LjIzNCAwLTY5LjM1OSAyMS4zODgtODUuMDMyIDUyLjU2MWwzMS42OTIgMjQuNTkyYzcuNTMzLTIyLjUxNCAyOC41NzUtMzkuMjI2IDUzLjM0LTM5LjIyNnoiIGZpbGw9IiNlYTQzMzUiIGNsaXAtcGF0aD0ibm9uZSIgbWFzaz0ibm9uZSIvPjwvZz48L3N2Zz4=\";\nconst facebookIconUri = \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGRhdGEtbmFtZT0iRWJlbmUgMSIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgaWQ9ImZhY2Vib29rLWxvZ28tMjAxOSI+PHBhdGggZmlsbD0iIzE4NzdmMiIgZD0iTTEwMjQsNTEyQzEwMjQsMjI5LjIzMDE2LDc5NC43Njk3OCwwLDUxMiwwUzAsMjI5LjIzMDE2LDAsNTEyYzAsMjU1LjU1NCwxODcuMjMxLDQ2Ny4zNzAxMiw0MzIsNTA1Ljc3Nzc3VjY2MEgzMDJWNTEySDQzMlYzOTkuMkM0MzIsMjcwLjg3OTgyLDUwOC40Mzg1NCwyMDAsNjI1LjM4OTIyLDIwMCw2ODEuNDA3NjUsMjAwLDc0MCwyMTAsNzQwLDIxMFYzMzZINjc1LjQzNzEzQzYxMS44MzUwOCwzMzYsNTkyLDM3NS40NjY2Nyw1OTIsNDE1Ljk1NzI4VjUxMkg3MzRMNzExLjMsNjYwSDU5MnYzNTcuNzc3NzdDODM2Ljc2OSw5NzkuMzcwMTIsMTAyNCw3NjcuNTU0LDEwMjQsNTEyWiI+PC9wYXRoPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik03MTEuMyw2NjAsNzM0LDUxMkg1OTJWNDE1Ljk1NzI4QzU5MiwzNzUuNDY2NjcsNjExLjgzNTA4LDMzNiw2NzUuNDM3MTMsMzM2SDc0MFYyMTBzLTU4LjU5MjM1LTEwLTExNC42MTA3OC0xMEM1MDguNDM4NTQsMjAwLDQzMiwyNzAuODc5ODIsNDMyLDM5OS4yVjUxMkgzMDJWNjYwSDQzMnYzNTcuNzc3NzdhNTE3LjM5NjE5LDUxNy4zOTYxOSwwLDAsMCwxNjAsMFY2NjBaIj48L3BhdGg+PC9zdmc+\";\nconst twitterIconUri = \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiIgaWQ9InR3aXR0ZXIiPjxwYXRoIGZpbGw9IiMwM0E5RjQiIGQ9Ik0xNiAzLjUzOWE2LjgzOSA2LjgzOSAwIDAgMS0xLjg5LjUxOCAzLjI2MiAzLjI2MiAwIDAgMCAxLjQ0My0xLjgxMyA2LjU1NSA2LjU1NSAwIDAgMS0yLjA4Ljc5NCAzLjI4IDMuMjggMCAwIDAtNS42NzQgMi4yNDNjMCAuMjYuMDIyLjUxLjA3Ni43NDhhOS4yODQgOS4yODQgMCAwIDEtNi43NjEtMy40MzEgMy4yODUgMy4yODUgMCAwIDAgMS4wMDggNC4zODRBMy4yNCAzLjI0IDAgMCAxIC42NCA2LjU3OHYuMDM2YTMuMjk1IDMuMjk1IDAgMCAwIDIuNjI4IDMuMjIzIDMuMjc0IDMuMjc0IDAgMCAxLS44Ni4xMDggMi45IDIuOSAwIDAgMS0uNjIxLS4wNTYgMy4zMTEgMy4zMTEgMCAwIDAgMy4wNjUgMi4yODUgNi41OSA2LjU5IDAgMCAxLTQuMDY3IDEuMzk5Yy0uMjY5IDAtLjUyNy0uMDEyLS43ODUtLjA0NUE5LjIzNCA5LjIzNCAwIDAgMCA1LjAzMiAxNWM2LjAzNiAwIDkuMzM2LTUgOS4zMzYtOS4zMzQgMC0uMTQ1LS4wMDUtLjI4NS0uMDEyLS40MjRBNi41NDQgNi41NDQgMCAwIDAgMTYgMy41Mzl6Ij48L3BhdGg+PC9zdmc+\";\nconst githubIconUri = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzEwXzIpIj4KPHBhdGggZD0iTTcuOTk5IDBDMy41ODIwMSAwIDQuNjE2NDhlLTA2IDMuNTk2IDQuNjE2NDhlLTA2IDguMDMyQy0wLjAwMTggOS43MTU1NSAwLjUyNTUxOSAxMS4zNTcxIDEuNTA3NDQgMTIuNzI0NkMyLjQ4OTM1IDE0LjA5MjIgMy44NzYyMSAxNS4xMTY2IDUuNDcyIDE1LjY1M0M1Ljg3MiAxNS43MjcgNi4wMTggMTUuNDc5IDYuMDE4IDE1LjI2NkM2LjAxOCAxNS4wNzUgNi4wMTEgMTQuNTcgNi4wMDcgMTMuOUMzLjc4MiAxNC4zODUgMy4zMTIgMTIuODIzIDMuMzEyIDEyLjgyM0MyLjk0OSAxMS44OTUgMi40MjQgMTEuNjQ4IDIuNDI0IDExLjY0OEMxLjY5NyAxMS4xNSAyLjQ3OCAxMS4xNiAyLjQ3OCAxMS4xNkMzLjI4MSAxMS4yMTcgMy43MDMgMTEuOTg4IDMuNzAzIDExLjk4OEM0LjQxNyAxMy4yMTUgNS41NzYgMTIuODYxIDYuMDMyIDEyLjY1NUM2LjEwNCAxMi4xMzYgNi4zMTEgMTEuNzgyIDYuNTQgMTEuNTgxQzQuNzY0IDExLjM3OCAyLjg5NiAxMC42ODkgMi44OTYgNy42MTJDMi44OTYgNi43MzUgMy4yMDggNi4wMTggMy43MiA1LjQ1NkMzLjYzNyA1LjI1MyAzLjM2MyA0LjQzNiAzLjc5OCAzLjMzMUMzLjc5OCAzLjMzMSA0LjQ3IDMuMTE1IDUuOTk4IDQuMTU0QzYuNjUwNzUgMy45NzU2MSA3LjMyNDMyIDMuODg0ODIgOC4wMDEwMSAzLjg4NEM4LjY3NzcyIDMuODg1MzQgOS4zNTEyNiAzLjk3NjQ3IDEwLjAwNCA0LjE1NUMxMS41MzEgMy4xMTYgMTIuMjAyIDMuMzMyIDEyLjIwMiAzLjMzMkMxMi42MzggNC40MzggMTIuMzY0IDUuMjU0IDEyLjI4MiA1LjQ1N0MxMi43OTUgNi4wMTkgMTMuMTA0IDYuNzM2IDEzLjEwNCA3LjYxM0MxMy4xMDQgMTAuNjk4IDExLjIzNCAxMS4zNzcgOS40NTIgMTEuNTc2QzkuNzM5IDExLjgyNCA5Ljk5NSAxMi4zMTQgOS45OTUgMTMuMDYzQzkuOTk1IDE0LjEzNyA5Ljk4NSAxNS4wMDMgOS45ODUgMTUuMjY2QzkuOTg1IDE1LjQ4MSAxMC4xMjkgMTUuNzMxIDEwLjUzNSAxNS42NTJDMTIuMTI5MiAxNS4xMTQzIDEzLjUxNDQgMTQuMDg5NSAxNC40OTQ5IDEyLjcyMjNDMTUuNDc1NSAxMS4zNTUxIDE2LjAwMTkgOS43MTQ0OCAxNiA4LjAzMkMxNiAzLjU5NiAxMi40MTggMCA3Ljk5OSAwWiIgZmlsbD0iIzhCOEI4QiIvPgo8L2c+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzEwXzIiPgo8cmVjdCB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9IndoaXRlIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==\";\nconst appleIconUri = \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMDM4IiBoZWlnaHQ9IjI1MDAiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIGlkPSJhcHBsZSI+PHBhdGggZmlsbD0iIzk5OSIgZD0iTTI3My44MSA1Mi45NzNDMzEzLjgwNi4yNTcgMzY5LjQxIDAgMzY5LjQxIDBzOC4yNzEgNDkuNTYyLTMxLjQ2MyA5Ny4zMDZjLTQyLjQyNiA1MC45OC05MC42NDkgNDIuNjM4LTkwLjY0OSA0Mi42MzhzLTkuMDU1LTQwLjA5NCAyNi41MTItODYuOTcxek0yNTIuMzg1IDE3NC42NjJjMjAuNTc2IDAgNTguNzY0LTI4LjI4NCAxMDguNDcxLTI4LjI4NCA4NS41NjIgMCAxMTkuMjIyIDYwLjg4MyAxMTkuMjIyIDYwLjg4M3MtNjUuODMzIDMzLjY1OS02NS44MzMgMTE1LjMzMWMwIDkyLjEzMyA4Mi4wMSAxMjMuODg1IDgyLjAxIDEyMy44ODVzLTU3LjMyOCAxNjEuMzU3LTEzNC43NjIgMTYxLjM1N2MtMzUuNTY1IDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2Ny0zOC4xODggMC03Ni4wODQgMjQuODYxLTEwMC43NjYgMjQuODYxQzg5LjMzIDYwOC43MyAwIDQ1NS42NjYgMCAzMzIuNjI4YzAtMTIxLjA1MiA3NS42MTItMTg0LjU1NCAxNDYuNTMzLTE4NC41NTQgNDYuMTA1IDAgODEuODgzIDI2LjU4OCAxMDUuODUyIDI2LjU4OHoiPjwvcGF0aD48L3N2Zz4=\";\nconst linkedinIconUri = \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NCIgaGVpZ2h0PSI0MCIgaWQ9ImxpbmtlZGluIj48cGF0aCBmaWxsPSIjMDA3RUJCIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00NCA0MGgtOS43MjVWMjUuOTM4YzAtMy42OC0xLjUyLTYuMTkzLTQuODY2LTYuMTkzLTIuNTU4IDAtMy45ODEgMS42OTYtNC42NDMgMy4zMy0uMjQ5LjU4Ni0uMjEgMS40MDMtLjIxIDIuMjJWNDBoLTkuNjM0cy4xMjQtMjQuOTA5IDAtMjcuMTczaDkuNjM0djQuMjY1Yy41Ny0xLjg2NSAzLjY0OC00LjUyNiA4LjU2LTQuNTI2QzM5LjIxMSAxMi41NjYgNDQgMTYuNDc0IDQ0IDI0Ljg5MVY0MHpNNS4xOCA5LjQyOGgtLjA2M0MyLjAxMyA5LjQyOCAwIDcuMzUxIDAgNC43MTggMCAyLjAzNCAyLjA3MiAwIDUuMjM5IDBjMy4xNjQgMCA1LjExIDIuMDI5IDUuMTcxIDQuNzEgMCAyLjYzMy0yLjAwNyA0LjcxOC01LjIzIDQuNzE4em0tNC4wNyAzLjM5OWg4LjU3NlY0MEgxLjExVjEyLjgyN3oiPjwvcGF0aD48L3N2Zz4=\";\nconst bitbucketIconUri = \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgaWQ9ImJpdGJ1Y2tldCI+PHBhdGggZmlsbD0iIzI2ODBGOCIgZD0iTTQuMjk3IDIzaDE1LjY1OWEuNzc2Ljc3NiAwIDAgMCAuNzY5LS42NTdMMjMuOTkgMS45MTZhLjc4Ljc4IDAgMCAwLS42MzUtLjg5NyAxLjEzIDEuMTMgMCAwIDAtLjEzNC0uMDA5TC43NzkgMUEuNzc1Ljc3NSAwIDAgMCAwIDEuNzc1YzAgLjA0NC4wMDUuMDkzLjAwOS4xMzdsMy4yNjUgMjAuMTk2Yy4wODIuNTA5LjUxNS44ODcgMS4wMjMuODkyek0xNS43MzYgOC4zOTFsLTEuMjExIDcuMjA1aC01TDguMTczIDguMzkxaDcuNTYzeiI+PC9wYXRoPjwvc3ZnPg==\";\nconst gitlabIconUri = \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTAwIiBoZWlnaHQ9IjIzMDUiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaW5ZTWluIG1lZXQiIHZpZXdCb3g9IjAgMCAyNTYgMjM2IiBpZD0iZ2l0bGFiIj48cGF0aCBmaWxsPSIjRTI0MzI5IiBkPSJNMTI4LjA3NSAyMzYuMDc1bDQ3LjEwNC0xNDQuOTdIODAuOTdsNDcuMTA0IDE0NC45N3oiPjwvcGF0aD48cGF0aCBmaWxsPSIjRkM2RDI2IiBkPSJNMTI4LjA3NSAyMzYuMDc0TDgwLjk3IDkxLjEwNEgxNC45NTZsMTEzLjExOSAxNDQuOTd6Ij48L3BhdGg+PHBhdGggZmlsbD0iI0ZDQTMyNiIgZD0iTTE0Ljk1NiA5MS4xMDRMLjY0MiAxMzUuMTZhOS43NTIgOS43NTIgMCAwIDAgMy41NDIgMTAuOTAzbDEyMy44OTEgOTAuMDEyLTExMy4xMi0xNDQuOTd6Ij48L3BhdGg+PHBhdGggZmlsbD0iI0UyNDMyOSIgZD0iTTE0Ljk1NiA5MS4xMDVIODAuOTdMNTIuNjAxIDMuNzljLTEuNDYtNC40OTMtNy44MTYtNC40OTItOS4yNzUgMGwtMjguMzcgODcuMzE1eiI+PC9wYXRoPjxwYXRoIGZpbGw9IiNGQzZEMjYiIGQ9Ik0xMjguMDc1IDIzNi4wNzRsNDcuMTA0LTE0NC45N2g2Ni4wMTVsLTExMy4xMiAxNDQuOTd6Ij48L3BhdGg+PHBhdGggZmlsbD0iI0ZDQTMyNiIgZD0iTTI0MS4xOTQgOTEuMTA0bDE0LjMxNCA0NC4wNTZhOS43NTIgOS43NTIgMCAwIDEtMy41NDMgMTAuOTAzbC0xMjMuODkgOTAuMDEyIDExMy4xMTktMTQ0Ljk3eiI+PC9wYXRoPjxwYXRoIGZpbGw9IiNFMjQzMjkiIGQ9Ik0yNDEuMTk0IDkxLjEwNWgtNjYuMDE1bDI4LjM3LTg3LjMxNWMxLjQ2LTQuNDkzIDcuODE2LTQuNDkyIDkuMjc1IDBsMjguMzcgODcuMzE1eiI+PC9wYXRoPjwvc3ZnPg==\";\nconst twitchIconUri = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgdmlld0JveD0iMCAwIDExMS43ODY2NyAxMjcuMzg2NjciCiAgIGhlaWdodD0iMTI3LjM4NjY3IgogICB3aWR0aD0iMTExLjc4NjY3IgogICB4bWw6c3BhY2U9InByZXNlcnZlIgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmczMzU1IgogICBzb2RpcG9kaTpkb2NuYW1lPSJUd2l0Y2hfbG9nby5zdmciCiAgIGlua3NjYXBlOnZlcnNpb249IjEuMS4xICgzYmY1YWUwZDI1LCAyMDIxLTA5LTIwKSIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZGVmcwogICBpZD0iZGVmczI5Ij4KICAgIAogICAgCiAgPC9kZWZzPjxzb2RpcG9kaTpuYW1lZHZpZXcKICAgaWQ9Im5hbWVkdmlldzI3IgogICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgIGlua3NjYXBlOnBhZ2VjaGVja2VyYm9hcmQ9IjAiCiAgIHNob3dncmlkPSJmYWxzZSIKICAgaW5rc2NhcGU6em9vbT0iNC4xOTkyMjg0IgogICBpbmtzY2FwZTpjeD0iLTUwLjYwNDUzNSIKICAgaW5rc2NhcGU6Y3k9IjE0MC4zODI5MyIKICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIyNTYwIgogICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxMzg3IgogICBpbmtzY2FwZTp3aW5kb3cteD0iMTkxMiIKICAgaW5rc2NhcGU6d2luZG93LXk9Ii04IgogICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIgogICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJzdmczMzU1IiAvPgogIDxnCiAgIHRyYW5zZm9ybT0ibWF0cml4KDEuMzMzMzMzMywwLDAsLTEuMzMzMzMzMywxMDEuMzkzMzMsNjcuNTg5MzMyKSIKICAgaWQ9ImczMzY1Ij4KICAgICAgPHBhdGgKICAgaWQ9InBhdGgzMzY3IgogICBzdHlsZT0iZmlsbDojNjQ0MWE1O2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpub25lIgogICBkPSJtIDAsMCAtMTMuNjUyLC0xMy42NTEgaCAtMjEuNDQ1IGwgLTExLjY5OSwtMTEuNjk3IHYgMTEuNjk3IEggLTY0LjM0NCBWIDQyLjg5MyBIIDAgWiBtIC03Mi4xNDYsNTAuNjkyIC0zLjg5OSwtMTUuNTk5IHYgLTcwLjE5IGggMTcuNTUgdiAtOS43NTEgaCA5Ljc0NiBsIDkuNzUyLDkuNzUxIGggMTUuNTk2IEwgNy43OTUsLTMuOTA1IHYgNTQuNTk3IHoiIC8+CiAgICA8L2c+PHBhdGgKICAgaWQ9InBhdGgzMzY5IgogICBzdHlsZT0iZmlsbDojNjQ0MWE1O2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDoxLjMzMzMzIgogICBkPSJtIDQ0LjE5NzMzMSw2Mi4zOTQyNjYgaCAxMC4zOTg2NyBWIDMxLjE5MjkzMyBoIC0xMC4zOTg2NyB6IG0gMjguNTk0NjcsMCBoIDEwLjM5ODY2IFYgMzEuMTkyOTMzIGggLTEwLjM5ODY2IHoiIC8+Cjwvc3ZnPgo=\";\nconst discordIconUri = \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDEwMCAxMDAiIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiBpZD0iZGlzY29yZCI+PHBhdGggZmlsbD0iIzY2NjVkMiIgZD0iTTg1LjIyLDI0Ljk1OGMtMTEuNDU5LTguNTc1LTIyLjQzOC04LjMzNC0yMi40MzgtOC4zMzRsLTEuMTIyLDEuMjgyCgkJCQljMTMuNjIzLDQuMDg3LDE5Ljk1NCwxMC4wOTcsMTkuOTU0LDEwLjA5N2MtMTkuNDkxLTEwLjczMS00NC4zMTctMTAuNjU0LTY0LjU5LDBjMCwwLDYuNTcxLTYuMzMxLDIwLjk5Ni0xMC40MThsLTAuODAxLTAuOTYyCgkJCQljMCwwLTEwLjg5OS0wLjI0LTIyLjQzOCw4LjMzNGMwLDAtMTEuNTQsMjAuNzU1LTExLjU0LDQ2LjMxOWMwLDAsNi43MzIsMTEuNTQsMjQuNDQyLDEyLjEwMWMwLDAsMi45NjUtMy41MjYsNS4zNjktNi41NzEKCQkJCWMtMTAuMTc3LTMuMDQ1LTE0LjAyNC05LjM3Ni0xNC4wMjQtOS4zNzZjNi4zOTQsNC4wMDEsMTIuODU5LDYuNTA1LDIwLjkxNiw4LjA5NGMxMy4xMDgsMi42OTgsMjkuNDEzLTAuMDc2LDQxLjU5MS04LjA5NAoJCQkJYzAsMC00LjAwNyw2LjQ5MS0xNC41MDUsOS40NTZjMi40MDQsMi45NjUsNS4yODksNi40MTEsNS4yODksNi40MTFjMTcuNzEtMC41NjEsMjQuNDQxLTEyLjEwMSwyNC40NDEtMTIuMDIKCQkJCUM5Ni43NTksNDUuNzEzLDg1LjIyLDI0Ljk1OCw4NS4yMiwyNC45NTh6IE0zNS4wNTUsNjMuODI0Yy00LjQ4OCwwLTguMTc0LTMuOTI3LTguMTc0LTguODE1CgkJCQljMC4zMjgtMTEuNzA3LDE2LjEwMi0xMS42NzEsMTYuMzQ4LDBDNDMuMjI5LDU5Ljg5NywzOS42MjIsNjMuODI0LDM1LjA1NSw2My44MjR6IE02NC4zMDQsNjMuODI0CgkJCQljLTQuNDg4LDAtOC4xNzQtMy45MjctOC4xNzQtOC44MTVjMC4zNi0xMS42ODQsMTUuOTM3LTExLjY4OSwxNi4zNDgsMEM3Mi40NzgsNTkuODk3LDY4Ljg3Miw2My44MjQsNjQuMzA0LDYzLjgyNHoiPjwvcGF0aD48L3N2Zz4=\";\nconst microsoftIconUri = \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciICB2aWV3Qm94PSIwIDAgNDggNDgiIHdpZHRoPSI0OHB4IiBoZWlnaHQ9IjQ4cHgiPjxwYXRoIGZpbGw9IiNmZjU3MjIiIGQ9Ik02IDZIMjJWMjJINnoiIHRyYW5zZm9ybT0icm90YXRlKC0xODAgMTQgMTQpIi8+PHBhdGggZmlsbD0iIzRjYWY1MCIgZD0iTTI2IDZINDJWMjJIMjZ6IiB0cmFuc2Zvcm09InJvdGF0ZSgtMTgwIDM0IDE0KSIvPjxwYXRoIGZpbGw9IiNmZmMxMDciIGQ9Ik0yNiAyNkg0MlY0MkgyNnoiIHRyYW5zZm9ybT0icm90YXRlKC0xODAgMzQgMzQpIi8+PHBhdGggZmlsbD0iIzAzYTlmNCIgZD0iTTYgMjZIMjJWNDJINnoiIHRyYW5zZm9ybT0icm90YXRlKC0xODAgMTQgMzQpIi8+PC9zdmc+\";\n\nconst ToolTip = props => {\n return /*#__PURE__*/jsx(RadixTooltip.Provider, {\n delayDuration: 200,\n children: /*#__PURE__*/jsxs(RadixTooltip.Root, {\n children: [/*#__PURE__*/jsx(RadixTooltip.Trigger, {\n asChild: true,\n children: props.children\n }), /*#__PURE__*/jsx(RadixTooltip.Portal, {\n children: /*#__PURE__*/jsxs(TooltipContent, {\n sideOffset: props.sideOffset || 6,\n align: props.align,\n side: props.side,\n children: [props.tip, /*#__PURE__*/jsx(TooltipArrow, {})]\n })\n })]\n })\n });\n};\nconst slideUpAndFade = keyframes`\nfrom {\n opacity: 0;\n transform: translateY(2px);\n}\nto {\n opacity: 1;\n transform: translateY(0);\n}\n`;\nconst TooltipContent = /* @__PURE__ */(() => styled(RadixTooltip.Content)(() => {\n const theme = useCustomTheme();\n return {\n background: theme.colors.tooltipBg,\n color: theme.colors.tooltipText,\n borderRadius: radius.sm,\n padding: `${spacing.sm} ${spacing.md}`,\n fontSize: fontSize.sm,\n boxShadow: shadow.sm,\n userSelect: \"none\",\n willChange: \"transform, opacity\",\n animation: `${slideUpAndFade} 200ms cubic-bezier(0.16, 1, 0.3, 1)`,\n zIndex: 999999999999999,\n maxWidth: \"300px\",\n lineHeight: 1.5\n };\n}))();\nconst TooltipArrow = /* @__PURE__ */(() => styled(RadixTooltip.Arrow)(() => {\n const theme = useCustomTheme();\n return {\n fill: theme.colors.tooltipBg\n };\n}))();\n\nexport { InputSelectionUI as I, ScreenContext as S, ToolTip as T, appleIconUri as a, modalMaxWidthCompact as b, modalMaxWidthWide as c, compactModalMaxHeight as d, emailIcon as e, facebookIconUri as f, googleIconUri as g, useScreen as h, defaultTheme as i, githubIconUri as j, bitbucketIconUri as k, linkedinIconUri as l, modalCloseFadeOutDuration as m, gitlabIconUri as n, onModalUnmount as o, twitchIconUri as p, discordIconUri as q, reservedScreens as r, smartWalletIcon as s, twitterIconUri as t, useScreenContext as u, microsoftIconUri as v, wideModalMaxHeight as w, emailAndPhoneIcon as x, phoneIcon as y };\n","const amber$1 = {\n amber1: 'hsl(36, 100%, 6.1%)',\n amber2: 'hsl(35, 100%, 7.6%)',\n amber3: 'hsl(32, 100%, 10.2%)',\n amber4: 'hsl(32, 100%, 12.4%)',\n amber5: 'hsl(33, 100%, 14.6%)',\n amber6: 'hsl(35, 100%, 17.1%)',\n amber7: 'hsl(35, 91.0%, 21.6%)',\n amber8: 'hsl(36, 100%, 25.5%)',\n amber9: 'hsl(39, 100%, 57.0%)',\n amber10: 'hsl(43, 100%, 64.0%)',\n amber11: 'hsl(39, 90.0%, 49.8%)',\n amber12: 'hsl(39, 97.0%, 93.2%)',\n};\n\nconst blue$1 = {\n blue1: 'hsl(212, 35.0%, 9.2%)',\n blue2: 'hsl(216, 50.0%, 11.8%)',\n blue3: 'hsl(214, 59.4%, 15.3%)',\n blue4: 'hsl(214, 65.8%, 17.9%)',\n blue5: 'hsl(213, 71.2%, 20.2%)',\n blue6: 'hsl(212, 77.4%, 23.1%)',\n blue7: 'hsl(211, 85.1%, 27.4%)',\n blue8: 'hsl(211, 89.7%, 34.1%)',\n blue9: 'hsl(206, 100%, 50.0%)',\n blue10: 'hsl(209, 100%, 60.6%)',\n blue11: 'hsl(210, 100%, 66.1%)',\n blue12: 'hsl(206, 98.0%, 95.8%)',\n};\n\nconst bronze$1 = {\n bronze1: 'hsl(17, 10.0%, 8.8%)',\n bronze2: 'hsl(15, 14.8%, 10.6%)',\n bronze3: 'hsl(15, 16.3%, 14.3%)',\n bronze4: 'hsl(16, 17.1%, 17.2%)',\n bronze5: 'hsl(16, 17.6%, 19.6%)',\n bronze6: 'hsl(16, 18.1%, 22.9%)',\n bronze7: 'hsl(17, 18.8%, 28.8%)',\n bronze8: 'hsl(17, 19.6%, 38.0%)',\n bronze9: 'hsl(17, 20.0%, 54.0%)',\n bronze10: 'hsl(18, 24.0%, 59.0%)',\n bronze11: 'hsl(18, 35.0%, 68.5%)',\n bronze12: 'hsl(18, 57.0%, 94.1%)',\n};\n\nconst brown$1 = {\n brown1: 'hsl(22, 15.0%, 8.7%)',\n brown2: 'hsl(20, 28.3%, 10.4%)',\n brown3: 'hsl(20, 28.0%, 14.0%)',\n brown4: 'hsl(21, 28.4%, 16.5%)',\n brown5: 'hsl(22, 28.7%, 18.9%)',\n brown6: 'hsl(23, 29.0%, 22.3%)',\n brown7: 'hsl(25, 29.5%, 27.8%)',\n brown8: 'hsl(27, 30.1%, 35.9%)',\n brown9: 'hsl(28, 34.0%, 51.0%)',\n brown10: 'hsl(28, 41.4%, 55.8%)',\n brown11: 'hsl(28, 60.0%, 64.5%)',\n brown12: 'hsl(30, 67.0%, 94.0%)',\n};\n\nconst crimson$1 = {\n crimson1: 'hsl(335, 20.0%, 9.6%)',\n crimson2: 'hsl(335, 32.2%, 11.6%)',\n crimson3: 'hsl(335, 42.5%, 16.5%)',\n crimson4: 'hsl(335, 47.2%, 19.3%)',\n crimson5: 'hsl(335, 50.9%, 21.8%)',\n crimson6: 'hsl(335, 55.7%, 25.3%)',\n crimson7: 'hsl(336, 62.9%, 30.8%)',\n crimson8: 'hsl(336, 74.9%, 39.0%)',\n crimson9: 'hsl(336, 80.0%, 57.8%)',\n crimson10: 'hsl(339, 84.1%, 62.6%)',\n crimson11: 'hsl(341, 90.0%, 67.3%)',\n crimson12: 'hsl(332, 87.0%, 96.0%)',\n};\n\nconst cyan$1 = {\n cyan1: 'hsl(192, 60.0%, 7.2%)',\n cyan2: 'hsl(192, 71.4%, 8.2%)',\n cyan3: 'hsl(192, 75.9%, 10.8%)',\n cyan4: 'hsl(192, 79.3%, 12.8%)',\n cyan5: 'hsl(192, 82.5%, 14.6%)',\n cyan6: 'hsl(192, 86.6%, 16.9%)',\n cyan7: 'hsl(192, 92.6%, 20.1%)',\n cyan8: 'hsl(192, 100%, 24.5%)',\n cyan9: 'hsl(190, 95.0%, 39.0%)',\n cyan10: 'hsl(188, 100%, 40.0%)',\n cyan11: 'hsl(186, 100%, 42.2%)',\n cyan12: 'hsl(185, 73.0%, 93.2%)',\n};\n\nconst gold$1 = {\n gold1: 'hsl(44, 9.0%, 8.3%)',\n gold2: 'hsl(43, 14.3%, 9.6%)',\n gold3: 'hsl(42, 15.5%, 13.0%)',\n gold4: 'hsl(41, 16.4%, 15.6%)',\n gold5: 'hsl(41, 16.9%, 17.8%)',\n gold6: 'hsl(40, 17.6%, 20.8%)',\n gold7: 'hsl(38, 18.5%, 26.4%)',\n gold8: 'hsl(36, 19.6%, 35.1%)',\n gold9: 'hsl(36, 20.0%, 49.5%)',\n gold10: 'hsl(36, 22.3%, 54.5%)',\n gold11: 'hsl(35, 30.0%, 64.0%)',\n gold12: 'hsl(49, 52.0%, 93.8%)',\n};\n\nconst grass$1 = {\n grass1: 'hsl(146, 30.0%, 7.4%)',\n grass2: 'hsl(136, 33.3%, 8.8%)',\n grass3: 'hsl(137, 36.0%, 11.4%)',\n grass4: 'hsl(137, 37.6%, 13.7%)',\n grass5: 'hsl(136, 38.7%, 16.0%)',\n grass6: 'hsl(135, 39.6%, 19.1%)',\n grass7: 'hsl(134, 40.3%, 23.8%)',\n grass8: 'hsl(131, 40.1%, 30.8%)',\n grass9: 'hsl(131, 41.0%, 46.5%)',\n grass10: 'hsl(131, 39.0%, 52.1%)',\n grass11: 'hsl(131, 43.0%, 57.2%)',\n grass12: 'hsl(137, 72.0%, 94.0%)',\n};\n\nconst gray$1 = {\n gray1: 'hsl(0, 0%, 8.5%)',\n gray2: 'hsl(0, 0%, 11.0%)',\n gray3: 'hsl(0, 0%, 13.6%)',\n gray4: 'hsl(0, 0%, 15.8%)',\n gray5: 'hsl(0, 0%, 17.9%)',\n gray6: 'hsl(0, 0%, 20.5%)',\n gray7: 'hsl(0, 0%, 24.3%)',\n gray8: 'hsl(0, 0%, 31.2%)',\n gray9: 'hsl(0, 0%, 43.9%)',\n gray10: 'hsl(0, 0%, 49.4%)',\n gray11: 'hsl(0, 0%, 62.8%)',\n gray12: 'hsl(0, 0%, 93.0%)',\n};\n\nconst green$1 = {\n green1: 'hsl(146, 30.0%, 7.4%)',\n green2: 'hsl(155, 44.2%, 8.4%)',\n green3: 'hsl(155, 46.7%, 10.9%)',\n green4: 'hsl(154, 48.4%, 12.9%)',\n green5: 'hsl(154, 49.7%, 14.9%)',\n green6: 'hsl(154, 50.9%, 17.6%)',\n green7: 'hsl(153, 51.8%, 21.8%)',\n green8: 'hsl(151, 51.7%, 28.4%)',\n green9: 'hsl(151, 55.0%, 41.5%)',\n green10: 'hsl(151, 49.3%, 46.5%)',\n green11: 'hsl(151, 50.0%, 53.2%)',\n green12: 'hsl(137, 72.0%, 94.0%)',\n};\n\nconst indigo$1 = {\n indigo1: 'hsl(229, 24.0%, 10.0%)',\n indigo2: 'hsl(230, 36.4%, 12.9%)',\n indigo3: 'hsl(228, 43.3%, 17.5%)',\n indigo4: 'hsl(227, 47.2%, 21.0%)',\n indigo5: 'hsl(227, 50.0%, 24.1%)',\n indigo6: 'hsl(226, 52.9%, 28.2%)',\n indigo7: 'hsl(226, 56.0%, 34.5%)',\n indigo8: 'hsl(226, 58.2%, 44.1%)',\n indigo9: 'hsl(226, 70.0%, 55.5%)',\n indigo10: 'hsl(227, 75.2%, 61.6%)',\n indigo11: 'hsl(228, 100%, 75.9%)',\n indigo12: 'hsl(226, 83.0%, 96.3%)',\n};\n\nconst lime$1 = {\n lime1: 'hsl(75, 55.0%, 6.0%)',\n lime2: 'hsl(74, 56.8%, 7.3%)',\n lime3: 'hsl(78, 50.2%, 9.9%)',\n lime4: 'hsl(79, 50.3%, 12.1%)',\n lime5: 'hsl(79, 52.6%, 14.2%)',\n lime6: 'hsl(78, 55.7%, 16.7%)',\n lime7: 'hsl(77, 59.7%, 20.1%)',\n lime8: 'hsl(75, 64.8%, 24.5%)',\n lime9: 'hsl(81, 67.0%, 50.0%)',\n lime10: 'hsl(75, 85.0%, 60.0%)',\n lime11: 'hsl(81, 70.0%, 43.8%)',\n lime12: 'hsl(84, 79.0%, 92.6%)',\n};\n\nconst mint$1 = {\n mint1: 'hsl(173, 50.0%, 6.6%)',\n mint2: 'hsl(176, 73.0%, 7.3%)',\n mint3: 'hsl(175, 79.3%, 8.9%)',\n mint4: 'hsl(174, 84.8%, 10.3%)',\n mint5: 'hsl(174, 90.2%, 11.9%)',\n mint6: 'hsl(173, 96.0%, 13.8%)',\n mint7: 'hsl(172, 100%, 16.8%)',\n mint8: 'hsl(170, 100%, 21.4%)',\n mint9: 'hsl(167, 65.0%, 66.0%)',\n mint10: 'hsl(163, 80.0%, 77.0%)',\n mint11: 'hsl(167, 70.0%, 48.0%)',\n mint12: 'hsl(165, 80.0%, 94.8%)',\n};\n\nconst olive$1 = {\n olive1: 'hsl(110, 5.0%, 8.6%)',\n olive2: 'hsl(105, 7.4%, 10.6%)',\n olive3: 'hsl(106, 6.4%, 13.1%)',\n olive4: 'hsl(106, 5.8%, 15.3%)',\n olive5: 'hsl(107, 5.3%, 17.4%)',\n olive6: 'hsl(107, 4.9%, 19.9%)',\n olive7: 'hsl(108, 4.4%, 23.6%)',\n olive8: 'hsl(110, 3.8%, 30.6%)',\n olive9: 'hsl(110, 6.0%, 42.5%)',\n olive10: 'hsl(111, 4.8%, 48.2%)',\n olive11: 'hsl(110, 5.0%, 61.8%)',\n olive12: 'hsl(110, 6.0%, 93.0%)',\n};\n\nconst orange$1 = {\n orange1: 'hsl(30, 70.0%, 7.2%)',\n orange2: 'hsl(28, 100%, 8.4%)',\n orange3: 'hsl(26, 91.1%, 11.6%)',\n orange4: 'hsl(25, 88.3%, 14.1%)',\n orange5: 'hsl(24, 87.6%, 16.6%)',\n orange6: 'hsl(24, 88.6%, 19.8%)',\n orange7: 'hsl(24, 92.4%, 24.0%)',\n orange8: 'hsl(25, 100%, 29.0%)',\n orange9: 'hsl(24, 94.0%, 50.0%)',\n orange10: 'hsl(24, 100%, 58.5%)',\n orange11: 'hsl(24, 100%, 62.2%)',\n orange12: 'hsl(24, 97.0%, 93.2%)',\n};\n\nconst pink$1 = {\n pink1: 'hsl(318, 25.0%, 9.6%)',\n pink2: 'hsl(319, 32.2%, 11.6%)',\n pink3: 'hsl(319, 41.0%, 16.0%)',\n pink4: 'hsl(320, 45.4%, 18.7%)',\n pink5: 'hsl(320, 49.0%, 21.1%)',\n pink6: 'hsl(321, 53.6%, 24.4%)',\n pink7: 'hsl(321, 61.1%, 29.7%)',\n pink8: 'hsl(322, 74.9%, 37.5%)',\n pink9: 'hsl(322, 65.0%, 54.5%)',\n pink10: 'hsl(323, 72.8%, 59.2%)',\n pink11: 'hsl(325, 90.0%, 66.4%)',\n pink12: 'hsl(322, 90.0%, 95.8%)',\n};\n\nconst plum$1 = {\n plum1: 'hsl(301, 20.0%, 9.4%)',\n plum2: 'hsl(300, 29.8%, 11.2%)',\n plum3: 'hsl(298, 34.4%, 15.3%)',\n plum4: 'hsl(297, 36.8%, 18.3%)',\n plum5: 'hsl(296, 38.5%, 21.1%)',\n plum6: 'hsl(295, 40.4%, 24.7%)',\n plum7: 'hsl(294, 42.7%, 30.6%)',\n plum8: 'hsl(292, 45.1%, 40.0%)',\n plum9: 'hsl(292, 45.0%, 51.0%)',\n plum10: 'hsl(295, 50.0%, 55.4%)',\n plum11: 'hsl(300, 60.0%, 62.0%)',\n plum12: 'hsl(296, 74.0%, 95.7%)',\n};\n\nconst purple$1 = {\n purple1: 'hsl(284, 20.0%, 9.6%)',\n purple2: 'hsl(283, 30.0%, 11.8%)',\n purple3: 'hsl(281, 37.5%, 16.5%)',\n purple4: 'hsl(280, 41.2%, 20.0%)',\n purple5: 'hsl(279, 43.8%, 23.3%)',\n purple6: 'hsl(277, 46.4%, 27.5%)',\n purple7: 'hsl(275, 49.3%, 34.6%)',\n purple8: 'hsl(272, 52.1%, 45.9%)',\n purple9: 'hsl(272, 51.0%, 54.0%)',\n purple10: 'hsl(273, 57.3%, 59.1%)',\n purple11: 'hsl(275, 80.0%, 71.0%)',\n purple12: 'hsl(279, 75.0%, 95.7%)',\n};\n\nconst mauve$1 = {\n mauve1: 'hsl(246, 6.0%, 9.0%)',\n mauve2: 'hsl(240, 5.1%, 11.6%)',\n mauve3: 'hsl(241, 5.0%, 14.3%)',\n mauve4: 'hsl(242, 4.9%, 16.5%)',\n mauve5: 'hsl(243, 4.9%, 18.8%)',\n mauve6: 'hsl(244, 4.9%, 21.5%)',\n mauve7: 'hsl(245, 4.9%, 25.4%)',\n mauve8: 'hsl(247, 4.8%, 32.5%)',\n mauve9: 'hsl(252, 4.0%, 45.2%)',\n mauve10: 'hsl(247, 3.4%, 50.7%)',\n mauve11: 'hsl(253, 4.0%, 63.7%)',\n mauve12: 'hsl(256, 6.0%, 93.2%)',\n};\n\nconst red$1 = {\n red1: 'hsl(353, 23.0%, 9.8%)',\n red2: 'hsl(357, 34.4%, 12.0%)',\n red3: 'hsl(356, 43.4%, 16.4%)',\n red4: 'hsl(356, 47.6%, 19.2%)',\n red5: 'hsl(356, 51.1%, 21.9%)',\n red6: 'hsl(356, 55.2%, 25.9%)',\n red7: 'hsl(357, 60.2%, 31.8%)',\n red8: 'hsl(358, 65.0%, 40.4%)',\n red9: 'hsl(358, 75.0%, 59.0%)',\n red10: 'hsl(358, 85.3%, 64.0%)',\n red11: 'hsl(358, 100%, 69.5%)',\n red12: 'hsl(351, 89.0%, 96.0%)',\n};\n\nconst sage$1 = {\n sage1: 'hsl(155, 7.0%, 8.4%)',\n sage2: 'hsl(150, 7.4%, 10.6%)',\n sage3: 'hsl(150, 6.7%, 13.1%)',\n sage4: 'hsl(150, 6.4%, 15.3%)',\n sage5: 'hsl(150, 6.1%, 17.4%)',\n sage6: 'hsl(150, 5.8%, 19.9%)',\n sage7: 'hsl(150, 5.5%, 23.6%)',\n sage8: 'hsl(150, 5.1%, 30.6%)',\n sage9: 'hsl(155, 6.0%, 42.5%)',\n sage10: 'hsl(153, 4.8%, 48.2%)',\n sage11: 'hsl(155, 5.0%, 61.8%)',\n sage12: 'hsl(155, 6.0%, 93.0%)',\n};\n\nconst sand$1 = {\n sand1: 'hsl(61, 2.0%, 8.3%)',\n sand2: 'hsl(60, 3.7%, 10.6%)',\n sand3: 'hsl(58, 3.7%, 13.1%)',\n sand4: 'hsl(57, 3.6%, 15.3%)',\n sand5: 'hsl(56, 3.7%, 17.4%)',\n sand6: 'hsl(55, 3.7%, 19.9%)',\n sand7: 'hsl(53, 3.7%, 23.6%)',\n sand8: 'hsl(50, 3.8%, 30.6%)',\n sand9: 'hsl(50, 4.0%, 42.7%)',\n sand10: 'hsl(52, 3.1%, 48.3%)',\n sand11: 'hsl(50, 4.0%, 61.8%)',\n sand12: 'hsl(56, 4.0%, 92.8%)',\n};\n\nconst sky$1 = {\n sky1: 'hsl(205, 45.0%, 8.6%)',\n sky2: 'hsl(202, 71.4%, 9.6%)',\n sky3: 'hsl(201, 74.6%, 12.2%)',\n sky4: 'hsl(201, 77.4%, 14.4%)',\n sky5: 'hsl(200, 80.3%, 16.5%)',\n sky6: 'hsl(200, 84.1%, 18.9%)',\n sky7: 'hsl(199, 90.2%, 22.1%)',\n sky8: 'hsl(198, 100%, 26.1%)',\n sky9: 'hsl(193, 98.0%, 70.0%)',\n sky10: 'hsl(192, 100%, 77.0%)',\n sky11: 'hsl(192, 85.0%, 55.8%)',\n sky12: 'hsl(198, 98.0%, 95.8%)',\n};\n\nconst slate$1 = {\n slate1: 'hsl(200, 7.0%, 8.8%)',\n slate2: 'hsl(195, 7.1%, 11.0%)',\n slate3: 'hsl(197, 6.8%, 13.6%)',\n slate4: 'hsl(198, 6.6%, 15.8%)',\n slate5: 'hsl(199, 6.4%, 17.9%)',\n slate6: 'hsl(201, 6.2%, 20.5%)',\n slate7: 'hsl(203, 6.0%, 24.3%)',\n slate8: 'hsl(207, 5.6%, 31.6%)',\n slate9: 'hsl(206, 6.0%, 43.9%)',\n slate10: 'hsl(206, 5.2%, 49.5%)',\n slate11: 'hsl(206, 6.0%, 63.0%)',\n slate12: 'hsl(210, 6.0%, 93.0%)',\n};\n\nconst teal$1 = {\n teal1: 'hsl(168, 48.0%, 6.5%)',\n teal2: 'hsl(169, 77.8%, 7.1%)',\n teal3: 'hsl(170, 76.1%, 9.2%)',\n teal4: 'hsl(171, 75.8%, 11.0%)',\n teal5: 'hsl(171, 75.7%, 12.8%)',\n teal6: 'hsl(172, 75.8%, 15.1%)',\n teal7: 'hsl(172, 76.7%, 18.6%)',\n teal8: 'hsl(173, 80.2%, 23.7%)',\n teal9: 'hsl(173, 80.0%, 36.0%)',\n teal10: 'hsl(174, 83.9%, 38.2%)',\n teal11: 'hsl(174, 90.0%, 40.7%)',\n teal12: 'hsl(166, 73.0%, 93.1%)',\n};\n\nconst tomato$1 = {\n tomato1: 'hsl(10, 23.0%, 9.4%)',\n tomato2: 'hsl(9, 44.8%, 11.4%)',\n tomato3: 'hsl(8, 52.0%, 15.3%)',\n tomato4: 'hsl(7, 56.3%, 18.0%)',\n tomato5: 'hsl(7, 60.1%, 20.6%)',\n tomato6: 'hsl(8, 64.8%, 24.0%)',\n tomato7: 'hsl(8, 71.2%, 29.1%)',\n tomato8: 'hsl(10, 80.2%, 35.7%)',\n tomato9: 'hsl(10, 78.0%, 54.0%)',\n tomato10: 'hsl(10, 81.7%, 59.0%)',\n tomato11: 'hsl(10, 85.0%, 62.8%)',\n tomato12: 'hsl(10, 89.0%, 96.0%)',\n};\n\nconst violet$1 = {\n violet1: 'hsl(250, 20.0%, 10.2%)',\n violet2: 'hsl(255, 30.3%, 12.9%)',\n violet3: 'hsl(253, 37.0%, 18.4%)',\n violet4: 'hsl(252, 40.1%, 22.5%)',\n violet5: 'hsl(252, 42.2%, 26.2%)',\n violet6: 'hsl(251, 44.3%, 31.1%)',\n violet7: 'hsl(250, 46.8%, 38.9%)',\n violet8: 'hsl(250, 51.8%, 51.2%)',\n violet9: 'hsl(252, 56.0%, 57.5%)',\n violet10: 'hsl(251, 63.2%, 63.2%)',\n violet11: 'hsl(250, 95.0%, 76.8%)',\n violet12: 'hsl(252, 87.0%, 96.4%)',\n};\n\nconst yellow$1 = {\n yellow1: 'hsl(45, 100%, 5.5%)',\n yellow2: 'hsl(46, 100%, 6.7%)',\n yellow3: 'hsl(45, 100%, 8.7%)',\n yellow4: 'hsl(45, 100%, 10.4%)',\n yellow5: 'hsl(47, 100%, 12.1%)',\n yellow6: 'hsl(49, 100%, 14.3%)',\n yellow7: 'hsl(49, 90.3%, 18.4%)',\n yellow8: 'hsl(50, 100%, 22.0%)',\n yellow9: 'hsl(53, 92.0%, 50.0%)',\n yellow10: 'hsl(54, 100%, 68.0%)',\n yellow11: 'hsl(48, 100%, 47.0%)',\n yellow12: 'hsl(53, 100%, 91.0%)',\n};\n\nconst amberA$1 = {\n amberA1: 'hsla(0, 0%, 0%, 0)',\n amberA2: 'hsla(31, 100%, 49.7%, 0.036)',\n amberA3: 'hsla(27, 100%, 49.9%, 0.094)',\n amberA4: 'hsla(29, 100%, 50.0%, 0.143)',\n amberA5: 'hsla(31, 100%, 50.0%, 0.192)',\n amberA6: 'hsla(35, 100%, 50.0%, 0.250)',\n amberA7: 'hsla(34, 99.6%, 52.9%, 0.331)',\n amberA8: 'hsla(36, 100%, 50.0%, 0.442)',\n amberA9: 'hsla(40, 100%, 57.2%, 0.980)',\n amberA10: 'hsla(44, 100%, 64.2%, 0.980)',\n amberA11: 'hsla(39, 99.9%, 52.7%, 0.938)',\n amberA12: 'hsla(45, 100%, 94.2%, 0.980)',\n};\n\nconst blueA$1 = {\n blueA1: 'hsla(0, 0%, 0%, 0)',\n blueA2: 'hsla(221, 97.8%, 52.4%, 0.059)',\n blueA3: 'hsla(215, 99.3%, 54.2%, 0.135)',\n blueA4: 'hsla(215, 99.3%, 53.8%, 0.198)',\n blueA5: 'hsla(213, 99.4%, 52.8%, 0.252)',\n blueA6: 'hsla(212, 99.9%, 51.7%, 0.323)',\n blueA7: 'hsla(211, 100%, 50.7%, 0.435)',\n blueA8: 'hsla(211, 99.8%, 50.9%, 0.597)',\n blueA9: 'hsla(205, 100%, 50.0%, 0.980)',\n blueA10: 'hsla(208, 100%, 60.7%, 0.980)',\n blueA11: 'hsla(209, 100%, 66.3%, 0.980)',\n blueA12: 'hsla(196, 100%, 96.8%, 0.980)',\n};\n\nconst bronzeA$1 = {\n bronzeA1: 'hsla(0, 0%, 0%, 0)',\n bronzeA2: 'hsla(20, 88.2%, 74.2%, 0.027)',\n bronzeA3: 'hsla(10, 99.4%, 83.0%, 0.074)',\n bronzeA4: 'hsla(18, 96.0%, 81.1%, 0.114)',\n bronzeA5: 'hsla(18, 99.4%, 81.7%, 0.148)',\n bronzeA6: 'hsla(15, 98.1%, 82.4%, 0.192)',\n bronzeA7: 'hsla(16, 99.2%, 82.9%, 0.270)',\n bronzeA8: 'hsla(18, 99.5%, 82.6%, 0.396)',\n bronzeA9: 'hsla(18, 99.3%, 85.0%, 0.592)',\n bronzeA10: 'hsla(18, 99.6%, 85.2%, 0.657)',\n bronzeA11: 'hsla(17, 99.9%, 86.1%, 0.774)',\n bronzeA12: 'hsla(20, 99.8%, 96.4%, 0.974)',\n};\n\nconst brownA$1 = {\n brownA1: 'hsla(0, 0%, 0%, 0)',\n brownA2: 'hsla(22, 99.6%, 53.6%, 0.035)',\n brownA3: 'hsla(18, 97.8%, 69.0%, 0.088)',\n brownA4: 'hsla(21, 98.2%, 71.0%, 0.123)',\n brownA5: 'hsla(25, 98.4%, 72.1%, 0.158)',\n brownA6: 'hsla(25, 98.7%, 73.5%, 0.206)',\n brownA7: 'hsla(25, 99.0%, 74.6%, 0.289)',\n brownA8: 'hsla(28, 99.2%, 75.3%, 0.407)',\n brownA9: 'hsla(28, 100%, 74.8%, 0.642)',\n brownA10: 'hsla(28, 99.9%, 74.9%, 0.712)',\n brownA11: 'hsla(28, 99.9%, 74.9%, 0.843)',\n brownA12: 'hsla(32, 98.2%, 95.7%, 0.979)',\n};\n\nconst crimsonA$1 = {\n crimsonA1: 'hsla(0, 0%, 0%, 0)',\n crimsonA2: 'hsla(336, 96.8%, 53.2%, 0.045)',\n crimsonA3: 'hsla(335, 98.7%, 59.3%, 0.138)',\n crimsonA4: 'hsla(336, 99.1%, 59.9%, 0.191)',\n crimsonA5: 'hsla(335, 99.4%, 59.4%, 0.244)',\n crimsonA6: 'hsla(335, 99.4%, 59.4%, 0.315)',\n crimsonA7: 'hsla(336, 99.5%, 57.8%, 0.439)',\n crimsonA8: 'hsla(336, 99.9%, 55.4%, 0.642)',\n crimsonA9: 'hsla(336, 99.9%, 62.8%, 0.903)',\n crimsonA10: 'hsla(339, 99.9%, 66.3%, 0.934)',\n crimsonA11: 'hsla(341, 99.9%, 69.5%, 0.965)',\n crimsonA12: 'hsla(327, 100%, 97.1%, 0.980)',\n};\n\nconst cyanA$1 = {\n cyanA1: 'hsla(0, 0%, 0%, 0)',\n cyanA2: 'hsla(196, 100%, 50.0%, 0.031)',\n cyanA3: 'hsla(192, 98.0%, 50.9%, 0.085)',\n cyanA4: 'hsla(194, 99.6%, 51.3%, 0.133)',\n cyanA5: 'hsla(192, 99.5%, 51.3%, 0.173)',\n cyanA6: 'hsla(193, 99.7%, 50.4%, 0.226)',\n cyanA7: 'hsla(192, 100%, 50.0%, 0.310)',\n cyanA8: 'hsla(193, 100%, 50.0%, 0.425)',\n cyanA9: 'hsla(190, 99.8%, 50.8%, 0.731)',\n cyanA10: 'hsla(188, 100%, 50.0%, 0.775)',\n cyanA11: 'hsla(186, 100%, 49.9%, 0.824)',\n cyanA12: 'hsla(185, 99.8%, 95.1%, 0.978)',\n};\n\nconst goldA$1 = {\n goldA1: 'hsla(0, 0%, 0%, 0)',\n goldA2: 'hsla(40, 93.7%, 70.6%, 0.022)',\n goldA3: 'hsla(40, 97.5%, 80.6%, 0.065)',\n goldA4: 'hsla(40, 95.9%, 80.8%, 0.100)',\n goldA5: 'hsla(38, 97.3%, 82.1%, 0.130)',\n goldA6: 'hsla(39, 97.2%, 82.5%, 0.169)',\n goldA7: 'hsla(37, 99.3%, 82.4%, 0.246)',\n goldA8: 'hsla(35, 98.7%, 82.2%, 0.363)',\n goldA9: 'hsla(36, 99.7%, 82.8%, 0.552)',\n goldA10: 'hsla(35, 99.2%, 83.7%, 0.613)',\n goldA11: 'hsla(35, 99.3%, 85.3%, 0.725)',\n goldA12: 'hsla(49, 98.6%, 96.7%, 0.966)',\n};\n\nconst grassA$1 = {\n grassA1: 'hsla(0, 0%, 0%, 0)',\n grassA2: 'hsla(107, 97.2%, 61.9%, 0.022)',\n grassA3: 'hsla(128, 96.5%, 69.8%, 0.066)',\n grassA4: 'hsla(130, 100%, 70.2%, 0.100)',\n grassA5: 'hsla(130, 98.2%, 69.1%, 0.140)',\n grassA6: 'hsla(132, 99.9%, 69.3%, 0.187)',\n grassA7: 'hsla(132, 99.9%, 69.8%, 0.261)',\n grassA8: 'hsla(130, 99.6%, 70.5%, 0.370)',\n grassA9: 'hsla(130, 99.7%, 70.6%, 0.618)',\n grassA10: 'hsla(131, 100%, 73.5%, 0.674)',\n grassA11: 'hsla(130, 99.7%, 75.6%, 0.731)',\n grassA12: 'hsla(137, 100%, 95.8%, 0.980)',\n};\n\nconst grayA$1 = {\n grayA1: 'hsla(0, 0%, 100%, 0)',\n grayA2: 'hsla(0, 0%, 100%, 0.026)',\n grayA3: 'hsla(0, 0%, 100%, 0.056)',\n grayA4: 'hsla(0, 0%, 100%, 0.077)',\n grayA5: 'hsla(0, 0%, 100%, 0.103)',\n grayA6: 'hsla(0, 0%, 100%, 0.129)',\n grayA7: 'hsla(0, 0%, 100%, 0.172)',\n grayA8: 'hsla(0, 0%, 100%, 0.249)',\n grayA9: 'hsla(0, 0%, 100%, 0.386)',\n grayA10: 'hsla(0, 0%, 100%, 0.446)',\n grayA11: 'hsla(0, 0%, 100%, 0.592)',\n grayA12: 'hsla(0, 0%, 100%, 0.923)',\n};\n\nconst greenA$1 = {\n greenA1: 'hsla(0, 0%, 0%, 0)',\n greenA2: 'hsla(169, 100%, 48.5%, 0.027)',\n greenA3: 'hsla(162, 98.7%, 57.9%, 0.070)',\n greenA4: 'hsla(158, 98.6%, 59.7%, 0.105)',\n greenA5: 'hsla(158, 98.6%, 60.7%, 0.140)',\n greenA6: 'hsla(156, 99.9%, 62.0%, 0.187)',\n greenA7: 'hsla(154, 99.5%, 63.1%, 0.257)',\n greenA8: 'hsla(152, 99.7%, 64.2%, 0.370)',\n greenA9: 'hsla(151, 99.7%, 63.8%, 0.605)',\n greenA10: 'hsla(152, 99.9%, 66.5%, 0.661)',\n greenA11: 'hsla(151, 99.7%, 69.2%, 0.740)',\n greenA12: 'hsla(137, 100%, 95.8%, 0.980)',\n};\n\nconst indigoA$1 = {\n indigoA1: 'hsla(0, 0%, 0%, 0)',\n indigoA2: 'hsla(234, 97.4%, 59.9%, 0.059)',\n indigoA3: 'hsla(228, 99.2%, 61.7%, 0.144)',\n indigoA4: 'hsla(227, 99.7%, 62.0%, 0.211)',\n indigoA5: 'hsla(227, 99.2%, 62.3%, 0.270)',\n indigoA6: 'hsla(226, 99.9%, 62.1%, 0.350)',\n indigoA7: 'hsla(226, 99.9%, 62.0%, 0.471)',\n indigoA8: 'hsla(226, 99.9%, 62.1%, 0.655)',\n indigoA9: 'hsla(226, 99.9%, 63.6%, 0.848)',\n indigoA10: 'hsla(227, 99.8%, 67.7%, 0.893)',\n indigoA11: 'hsla(227, 100%, 76.3%, 0.980)',\n indigoA12: 'hsla(226, 100%, 97.5%, 0.980)',\n};\n\nconst limeA$1 = {\n limeA1: 'hsla(0, 0%, 0%, 0)',\n limeA2: 'hsla(75, 96.4%, 59.6%, 0.022)',\n limeA3: 'hsla(88, 98.0%, 70.4%, 0.061)',\n limeA4: 'hsla(81, 97.8%, 67.4%, 0.096)',\n limeA5: 'hsla(82, 98.4%, 65.6%, 0.135)',\n limeA6: 'hsla(79, 99.7%, 64.3%, 0.182)',\n limeA7: 'hsla(77, 99.1%, 62.1%, 0.252)',\n limeA8: 'hsla(75, 100%, 60.0%, 0.342)',\n limeA9: 'hsla(81, 99.8%, 59.7%, 0.819)',\n limeA10: 'hsla(75, 99.8%, 63.7%, 0.936)',\n limeA11: 'hsla(81, 99.9%, 58.7%, 0.719)',\n limeA12: 'hsla(83, 100%, 94.2%, 0.980)',\n};\n\nconst mintA$1 = {\n mintA1: 'hsla(0, 0%, 0%, 0)',\n mintA2: 'hsla(180, 100%, 49.2%, 0.031)',\n mintA3: 'hsla(176, 100%, 49.7%, 0.070)',\n mintA4: 'hsla(173, 100%, 49.7%, 0.105)',\n mintA5: 'hsla(173, 100%, 49.8%, 0.144)',\n mintA6: 'hsla(172, 100%, 49.8%, 0.192)',\n mintA7: 'hsla(171, 100%, 49.9%, 0.266)',\n mintA8: 'hsla(169, 100%, 49.9%, 0.366)',\n mintA9: 'hsla(167, 99.8%, 75.0%, 0.870)',\n mintA10: 'hsla(163, 99.9%, 80.7%, 0.948)',\n mintA11: 'hsla(167, 99.9%, 58.7%, 0.796)',\n mintA12: 'hsla(169, 100%, 96.2%, 0.980)',\n};\n\nconst oliveA$1 = {\n oliveA1: 'hsla(0, 0%, 0%, 0)',\n oliveA2: 'hsla(91, 97.0%, 84.0%, 0.026)',\n oliveA3: 'hsla(101, 87.4%, 87.7%, 0.057)',\n oliveA4: 'hsla(92, 91.8%, 94.1%, 0.078)',\n oliveA5: 'hsla(101, 92.6%, 93.5%, 0.104)',\n oliveA6: 'hsla(102, 91.1%, 94.6%, 0.130)',\n oliveA7: 'hsla(102, 92.5%, 95.9%, 0.173)',\n oliveA8: 'hsla(107, 100%, 96.5%, 0.250)',\n oliveA9: 'hsla(110, 98.3%, 94.1%, 0.397)',\n oliveA10: 'hsla(109, 99.6%, 95.3%, 0.457)',\n oliveA11: 'hsla(113, 95.3%, 97.2%, 0.600)',\n oliveA12: 'hsla(120, 93.5%, 99.6%, 0.927)',\n};\n\nconst orangeA$1 = {\n orangeA1: 'hsla(0, 0%, 0%, 0)',\n orangeA2: 'hsla(13, 100%, 49.7%, 0.054)',\n orangeA3: 'hsla(20, 100%, 49.7%, 0.117)',\n orangeA4: 'hsla(23, 100%, 49.8%, 0.166)',\n orangeA5: 'hsla(23, 99.4%, 50.1%, 0.215)',\n orangeA6: 'hsla(23, 99.8%, 51.1%, 0.286)',\n orangeA7: 'hsla(23, 99.7%, 50.6%, 0.389)',\n orangeA8: 'hsla(24, 100%, 49.9%, 0.523)',\n orangeA9: 'hsla(24, 99.9%, 51.6%, 0.965)',\n orangeA10: 'hsla(25, 100%, 58.6%, 0.980)',\n orangeA11: 'hsla(24, 100%, 62.4%, 0.980)',\n orangeA12: 'hsla(26, 100%, 94.2%, 0.980)',\n};\n\nconst pinkA$1 = {\n pinkA1: 'hsla(0, 0%, 0%, 0)',\n pinkA2: 'hsla(320, 98.1%, 64.1%, 0.036)',\n pinkA3: 'hsla(320, 99.1%, 63.1%, 0.121)',\n pinkA4: 'hsla(320, 99.5%, 62.7%, 0.170)',\n pinkA5: 'hsla(319, 99.7%, 61.5%, 0.219)',\n pinkA6: 'hsla(322, 99.4%, 60.8%, 0.291)',\n pinkA7: 'hsla(321, 99.6%, 58.7%, 0.407)',\n pinkA8: 'hsla(322, 99.7%, 55.4%, 0.608)',\n pinkA9: 'hsla(322, 100%, 64.6%, 0.817)',\n pinkA10: 'hsla(323, 100%, 66.3%, 0.875)',\n pinkA11: 'hsla(325, 99.9%, 68.6%, 0.960)',\n pinkA12: 'hsla(314, 100%, 96.9%, 0.980)',\n};\n\nconst plumA$1 = {\n plumA1: 'hsla(0, 0%, 0%, 0)',\n plumA2: 'hsla(300, 96.4%, 58.4%, 0.036)',\n plumA3: 'hsla(300, 99.4%, 67.1%, 0.102)',\n plumA4: 'hsla(295, 99.8%, 66.3%, 0.155)',\n plumA5: 'hsla(295, 99.4%, 67.1%, 0.204)',\n plumA6: 'hsla(294, 99.0%, 67.8%, 0.262)',\n plumA7: 'hsla(294, 99.9%, 67.7%, 0.363)',\n plumA8: 'hsla(292, 99.8%, 67.5%, 0.527)',\n plumA9: 'hsla(292, 99.9%, 69.2%, 0.695)',\n plumA10: 'hsla(295, 99.9%, 70.8%, 0.748)',\n plumA11: 'hsla(300, 99.8%, 72.9%, 0.828)',\n plumA12: 'hsla(300, 100%, 97.1%, 0.980)',\n};\n\nconst purpleA$1 = {\n purpleA1: 'hsla(0, 0%, 0%, 0)',\n purpleA2: 'hsla(280, 96.5%, 57.5%, 0.045)',\n purpleA3: 'hsla(279, 98.7%, 62.8%, 0.129)',\n purpleA4: 'hsla(279, 99.1%, 64.0%, 0.191)',\n purpleA5: 'hsla(278, 99.8%, 64.2%, 0.248)',\n purpleA6: 'hsla(276, 99.6%, 64.6%, 0.328)',\n purpleA7: 'hsla(274, 99.9%, 64.6%, 0.456)',\n purpleA8: 'hsla(272, 99.7%, 64.6%, 0.660)',\n purpleA9: 'hsla(272, 99.9%, 69.1%, 0.748)',\n purpleA10: 'hsla(273, 100%, 71.3%, 0.801)',\n purpleA11: 'hsla(275, 99.9%, 75.3%, 0.934)',\n purpleA12: 'hsla(286, 100%, 97.1%, 0.980)',\n};\n\nconst mauveA$1 = {\n mauveA1: 'hsla(0, 0%, 0%, 0)',\n mauveA2: 'hsla(240, 76.7%, 91.2%, 0.031)',\n mauveA3: 'hsla(240, 86.0%, 95.8%, 0.061)',\n mauveA4: 'hsla(240, 91.8%, 94.7%, 0.087)',\n mauveA5: 'hsla(240, 91.5%, 95.8%, 0.113)',\n mauveA6: 'hsla(240, 92.0%, 93.8%, 0.148)',\n mauveA7: 'hsla(240, 94.8%, 95.3%, 0.191)',\n mauveA8: 'hsla(249, 98.1%, 95.2%, 0.273)',\n mauveA9: 'hsla(248, 97.6%, 96.2%, 0.416)',\n mauveA10: 'hsla(248, 95.5%, 96.6%, 0.477)',\n mauveA11: 'hsla(250, 98.0%, 98.0%, 0.615)',\n mauveA12: 'hsla(240, 93.9%, 99.6%, 0.931)',\n};\n\nconst redA$1 = {\n redA1: 'hsla(0, 0%, 0%, 0)',\n redA2: 'hsla(5, 98.5%, 53.8%, 0.045)',\n redA3: 'hsla(359, 99.1%, 61.1%, 0.130)',\n redA4: 'hsla(358, 98.8%, 61.0%, 0.184)',\n redA5: 'hsla(357, 99.6%, 60.3%, 0.237)',\n redA6: 'hsla(358, 99.6%, 60.3%, 0.322)',\n redA7: 'hsla(357, 100%, 59.5%, 0.442)',\n redA8: 'hsla(358, 99.8%, 59.1%, 0.621)',\n redA9: 'hsla(358, 100%, 65.5%, 0.884)',\n redA10: 'hsla(358, 100%, 67.5%, 0.942)',\n redA11: 'hsla(358, 100%, 69.7%, 0.980)',\n redA12: 'hsla(352, 100%, 97.1%, 0.980)',\n};\n\nconst sageA$1 = {\n sageA1: 'hsla(0, 0%, 0%, 0)',\n sageA2: 'hsla(123, 94.4%, 91.4%, 0.026)',\n sageA3: 'hsla(123, 82.9%, 91.0%, 0.057)',\n sageA4: 'hsla(124, 97.9%, 94.5%, 0.082)',\n sageA5: 'hsla(125, 90.0%, 95.2%, 0.104)',\n sageA6: 'hsla(142, 95.1%, 94.8%, 0.134)',\n sageA7: 'hsla(143, 92.8%, 95.7%, 0.173)',\n sageA8: 'hsla(146, 94.7%, 95.3%, 0.255)',\n sageA9: 'hsla(151, 98.2%, 94.4%, 0.397)',\n sageA10: 'hsla(148, 99.5%, 95.5%, 0.457)',\n sageA11: 'hsla(152, 95.1%, 97.3%, 0.600)',\n sageA12: 'hsla(149, 93.3%, 99.6%, 0.927)',\n};\n\nconst sandA$1 = {\n sandA1: 'hsla(0, 0%, 0%, 0)',\n sandA2: 'hsla(60, 89.8%, 91.4%, 0.026)',\n sandA3: 'hsla(60, 95.5%, 92.5%, 0.056)',\n sandA4: 'hsla(60, 75.6%, 96.4%, 0.078)',\n sandA5: 'hsla(60, 81.9%, 95.2%, 0.104)',\n sandA6: 'hsla(41, 87.6%, 94.8%, 0.134)',\n sandA7: 'hsla(60, 95.4%, 96.2%, 0.172)',\n sandA8: 'hsla(49, 93.5%, 95.7%, 0.254)',\n sandA9: 'hsla(52, 97.3%, 96.2%, 0.391)',\n sandA10: 'hsla(52, 97.8%, 96.7%, 0.451)',\n sandA11: 'hsla(51, 97.0%, 97.8%, 0.597)',\n sandA12: 'hsla(60, 88.7%, 99.8%, 0.923)',\n};\n\nconst skyA$1 = {\n skyA1: 'hsla(0, 0%, 0%, 0)',\n skyA2: 'hsla(208, 100%, 49.8%, 0.045)',\n skyA3: 'hsla(201, 100%, 49.8%, 0.099)',\n skyA4: 'hsla(201, 100%, 50.0%, 0.148)',\n skyA5: 'hsla(200, 100%, 49.8%, 0.198)',\n skyA6: 'hsla(199, 100%, 49.9%, 0.256)',\n skyA7: 'hsla(199, 100%, 49.9%, 0.337)',\n skyA8: 'hsla(199, 100%, 50.0%, 0.453)',\n skyA9: 'hsla(192, 100%, 70.8%, 0.980)',\n skyA10: 'hsla(190, 100%, 77.6%, 0.980)',\n skyA11: 'hsla(192, 99.9%, 59.6%, 0.924)',\n skyA12: 'hsla(189, 100%, 96.8%, 0.980)',\n};\n\nconst slateA$1 = {\n slateA1: 'hsla(0, 0%, 0%, 0)',\n slateA2: 'hsla(181, 98.9%, 91.8%, 0.026)',\n slateA3: 'hsla(182, 86.7%, 91.4%, 0.057)',\n slateA4: 'hsla(209, 86.7%, 93.9%, 0.083)',\n slateA5: 'hsla(200, 90.3%, 93.4%, 0.109)',\n slateA6: 'hsla(209, 95.3%, 93.5%, 0.139)',\n slateA7: 'hsla(204, 98.5%, 93.9%, 0.182)',\n slateA8: 'hsla(209, 94.0%, 94.7%, 0.265)',\n slateA9: 'hsla(207, 97.3%, 94.0%, 0.412)',\n slateA10: 'hsla(209, 99.4%, 95.2%, 0.472)',\n slateA11: 'hsla(208, 98.7%, 96.8%, 0.615)',\n slateA12: 'hsla(211, 86.7%, 99.6%, 0.927)',\n};\n\nconst tealA$1 = {\n tealA1: 'hsla(0, 0%, 0%, 0)',\n tealA2: 'hsla(171, 100%, 49.2%, 0.031)',\n tealA3: 'hsla(172, 100%, 49.7%, 0.070)',\n tealA4: 'hsla(175, 100%, 49.7%, 0.105)',\n tealA5: 'hsla(174, 98.9%, 50.1%, 0.140)',\n tealA6: 'hsla(174, 100%, 51.8%, 0.187)',\n tealA7: 'hsla(173, 99.6%, 53.2%, 0.257)',\n tealA8: 'hsla(174, 99.6%, 53.3%, 0.366)',\n tealA9: 'hsla(173, 99.9%, 54.6%, 0.609)',\n tealA10: 'hsla(174, 99.9%, 53.8%, 0.670)',\n tealA11: 'hsla(174, 100%, 52.0%, 0.748)',\n tealA12: 'hsla(166, 98.6%, 95.0%, 0.979)',\n};\n\nconst tomatoA$1 = {\n tomatoA1: 'hsla(0, 0%, 0%, 0)',\n tomatoA2: 'hsla(5, 100%, 49.6%, 0.058)',\n tomatoA3: 'hsla(6, 99.6%, 54.9%, 0.133)',\n tomatoA4: 'hsla(6, 99.2%, 55.4%, 0.191)',\n tomatoA5: 'hsla(6, 99.5%, 55.8%, 0.244)',\n tomatoA6: 'hsla(7, 99.7%, 55.9%, 0.319)',\n tomatoA7: 'hsla(8, 99.8%, 54.8%, 0.434)',\n tomatoA8: 'hsla(10, 99.8%, 53.5%, 0.598)',\n tomatoA9: 'hsla(10, 100%, 59.7%, 0.885)',\n tomatoA10: 'hsla(10, 100%, 63.6%, 0.916)',\n tomatoA11: 'hsla(10, 99.7%, 66.4%, 0.939)',\n tomatoA12: 'hsla(12, 100%, 97.1%, 0.980)',\n};\n\nconst violetA$1 = {\n violetA1: 'hsla(0, 0%, 0%, 0)',\n violetA2: 'hsla(258, 98.2%, 61.0%, 0.054)',\n violetA3: 'hsla(252, 98.8%, 65.8%, 0.148)',\n violetA4: 'hsla(253, 99.7%, 65.7%, 0.219)',\n violetA5: 'hsla(252, 99.7%, 66.4%, 0.286)',\n violetA6: 'hsla(251, 99.7%, 66.2%, 0.371)',\n violetA7: 'hsla(250, 99.7%, 66.3%, 0.514)',\n violetA8: 'hsla(250, 99.7%, 66.1%, 0.733)',\n violetA9: 'hsla(252, 99.9%, 70.3%, 0.786)',\n violetA10: 'hsla(251, 99.9%, 72.9%, 0.844)',\n violetA11: 'hsla(250, 100%, 77.9%, 0.980)',\n violetA12: 'hsla(254, 100%, 97.5%, 0.980)',\n};\n\nconst yellowA$1 = {\n yellowA1: 'hsla(0, 0%, 0%, 0)',\n yellowA2: 'hsla(49, 100%, 49.1%, 0.027)',\n yellowA3: 'hsla(45, 100%, 49.7%, 0.071)',\n yellowA4: 'hsla(46, 100%, 49.7%, 0.111)',\n yellowA5: 'hsla(47, 100%, 49.9%, 0.150)',\n yellowA6: 'hsla(51, 100%, 49.8%, 0.199)',\n yellowA7: 'hsla(51, 99.8%, 53.6%, 0.269)',\n yellowA8: 'hsla(51, 100%, 49.9%, 0.371)',\n yellowA9: 'hsla(53, 100%, 52.0%, 0.956)',\n yellowA10: 'hsla(56, 100%, 68.4%, 0.980)',\n yellowA11: 'hsla(48, 100%, 50.0%, 0.934)',\n yellowA12: 'hsla(60, 100%, 91.8%, 0.980)',\n};\n\nconst amber = {\n amber1: 'hsl(39, 70.0%, 99.0%)',\n amber2: 'hsl(40, 100%, 96.5%)',\n amber3: 'hsl(44, 100%, 91.7%)',\n amber4: 'hsl(43, 100%, 86.8%)',\n amber5: 'hsl(42, 100%, 81.8%)',\n amber6: 'hsl(38, 99.7%, 76.3%)',\n amber7: 'hsl(36, 86.1%, 67.1%)',\n amber8: 'hsl(35, 85.2%, 55.1%)',\n amber9: 'hsl(39, 100%, 57.0%)',\n amber10: 'hsl(35, 100%, 55.5%)',\n amber11: 'hsl(30, 100%, 34.0%)',\n amber12: 'hsl(20, 80.0%, 17.0%)',\n};\n\nconst blue = {\n blue1: 'hsl(206, 100%, 99.2%)',\n blue2: 'hsl(210, 100%, 98.0%)',\n blue3: 'hsl(209, 100%, 96.5%)',\n blue4: 'hsl(210, 98.8%, 94.0%)',\n blue5: 'hsl(209, 95.0%, 90.1%)',\n blue6: 'hsl(209, 81.2%, 84.5%)',\n blue7: 'hsl(208, 77.5%, 76.9%)',\n blue8: 'hsl(206, 81.9%, 65.3%)',\n blue9: 'hsl(206, 100%, 50.0%)',\n blue10: 'hsl(208, 100%, 47.3%)',\n blue11: 'hsl(211, 100%, 43.2%)',\n blue12: 'hsl(211, 100%, 15.0%)',\n};\n\nconst bronze = {\n bronze1: 'hsl(15, 30.0%, 99.1%)',\n bronze2: 'hsl(17, 63.6%, 97.8%)',\n bronze3: 'hsl(17, 42.1%, 95.2%)',\n bronze4: 'hsl(17, 35.2%, 92.1%)',\n bronze5: 'hsl(17, 31.5%, 88.2%)',\n bronze6: 'hsl(17, 29.0%, 83.0%)',\n bronze7: 'hsl(17, 26.9%, 75.6%)',\n bronze8: 'hsl(17, 25.1%, 66.5%)',\n bronze9: 'hsl(17, 20.0%, 54.0%)',\n bronze10: 'hsl(17, 18.1%, 50.1%)',\n bronze11: 'hsl(15, 20.0%, 43.1%)',\n bronze12: 'hsl(12, 22.0%, 21.5%)',\n};\n\nconst brown = {\n brown1: 'hsl(30, 40.0%, 99.1%)',\n brown2: 'hsl(30, 50.0%, 97.6%)',\n brown3: 'hsl(30, 52.5%, 94.6%)',\n brown4: 'hsl(30, 53.0%, 91.2%)',\n brown5: 'hsl(29, 52.9%, 86.8%)',\n brown6: 'hsl(29, 52.5%, 80.9%)',\n brown7: 'hsl(29, 51.5%, 72.8%)',\n brown8: 'hsl(28, 50.0%, 63.1%)',\n brown9: 'hsl(28, 34.0%, 51.0%)',\n brown10: 'hsl(27, 31.8%, 47.6%)',\n brown11: 'hsl(25, 30.0%, 41.0%)',\n brown12: 'hsl(20, 30.0%, 19.0%)',\n};\n\nconst crimson = {\n crimson1: 'hsl(332, 100%, 99.4%)',\n crimson2: 'hsl(330, 100%, 98.4%)',\n crimson3: 'hsl(331, 85.6%, 96.6%)',\n crimson4: 'hsl(331, 78.1%, 94.2%)',\n crimson5: 'hsl(332, 72.1%, 91.1%)',\n crimson6: 'hsl(333, 67.0%, 86.7%)',\n crimson7: 'hsl(335, 63.5%, 80.4%)',\n crimson8: 'hsl(336, 62.3%, 72.9%)',\n crimson9: 'hsl(336, 80.0%, 57.8%)',\n crimson10: 'hsl(336, 73.7%, 53.5%)',\n crimson11: 'hsl(336, 75.0%, 47.2%)',\n crimson12: 'hsl(340, 65.0%, 14.5%)',\n};\n\nconst cyan = {\n cyan1: 'hsl(185, 60.0%, 98.7%)',\n cyan2: 'hsl(185, 73.3%, 97.1%)',\n cyan3: 'hsl(186, 70.2%, 94.4%)',\n cyan4: 'hsl(186, 63.8%, 90.6%)',\n cyan5: 'hsl(187, 58.3%, 85.4%)',\n cyan6: 'hsl(188, 54.6%, 78.4%)',\n cyan7: 'hsl(189, 53.7%, 68.7%)',\n cyan8: 'hsl(189, 60.3%, 52.5%)',\n cyan9: 'hsl(190, 95.0%, 39.0%)',\n cyan10: 'hsl(191, 91.2%, 36.8%)',\n cyan11: 'hsl(192, 85.0%, 31.0%)',\n cyan12: 'hsl(192, 88.0%, 12.5%)',\n};\n\nconst gold = {\n gold1: 'hsl(50, 20.0%, 99.1%)',\n gold2: 'hsl(47, 52.9%, 96.7%)',\n gold3: 'hsl(46, 38.2%, 93.7%)',\n gold4: 'hsl(44, 32.7%, 90.1%)',\n gold5: 'hsl(43, 29.9%, 85.7%)',\n gold6: 'hsl(41, 28.3%, 79.8%)',\n gold7: 'hsl(39, 27.6%, 71.9%)',\n gold8: 'hsl(36, 27.2%, 61.8%)',\n gold9: 'hsl(36, 20.0%, 49.5%)',\n gold10: 'hsl(36, 19.8%, 45.7%)',\n gold11: 'hsl(36, 20.0%, 39.0%)',\n gold12: 'hsl(36, 16.0%, 20.0%)',\n};\n\nconst grass = {\n grass1: 'hsl(116, 50.0%, 98.9%)',\n grass2: 'hsl(120, 60.0%, 97.1%)',\n grass3: 'hsl(120, 53.6%, 94.8%)',\n grass4: 'hsl(121, 47.5%, 91.4%)',\n grass5: 'hsl(122, 42.6%, 86.5%)',\n grass6: 'hsl(124, 39.0%, 79.7%)',\n grass7: 'hsl(126, 37.1%, 70.2%)',\n grass8: 'hsl(131, 38.1%, 56.3%)',\n grass9: 'hsl(131, 41.0%, 46.5%)',\n grass10: 'hsl(132, 43.1%, 42.2%)',\n grass11: 'hsl(133, 50.0%, 32.5%)',\n grass12: 'hsl(130, 30.0%, 14.9%)',\n};\n\nconst gray = {\n gray1: 'hsl(0, 0%, 99.0%)',\n gray2: 'hsl(0, 0%, 97.3%)',\n gray3: 'hsl(0, 0%, 95.1%)',\n gray4: 'hsl(0, 0%, 93.0%)',\n gray5: 'hsl(0, 0%, 90.9%)',\n gray6: 'hsl(0, 0%, 88.7%)',\n gray7: 'hsl(0, 0%, 85.8%)',\n gray8: 'hsl(0, 0%, 78.0%)',\n gray9: 'hsl(0, 0%, 56.1%)',\n gray10: 'hsl(0, 0%, 52.3%)',\n gray11: 'hsl(0, 0%, 43.5%)',\n gray12: 'hsl(0, 0%, 9.0%)',\n};\n\nconst green = {\n green1: 'hsl(136, 50.0%, 98.9%)',\n green2: 'hsl(138, 62.5%, 96.9%)',\n green3: 'hsl(139, 55.2%, 94.5%)',\n green4: 'hsl(140, 48.7%, 91.0%)',\n green5: 'hsl(141, 43.7%, 86.0%)',\n green6: 'hsl(143, 40.3%, 79.0%)',\n green7: 'hsl(146, 38.5%, 69.0%)',\n green8: 'hsl(151, 40.2%, 54.1%)',\n green9: 'hsl(151, 55.0%, 41.5%)',\n green10: 'hsl(152, 57.5%, 37.6%)',\n green11: 'hsl(153, 67.0%, 28.5%)',\n green12: 'hsl(155, 40.0%, 14.0%)',\n};\n\nconst indigo = {\n indigo1: 'hsl(225, 60.0%, 99.4%)',\n indigo2: 'hsl(223, 100%, 98.6%)',\n indigo3: 'hsl(223, 98.4%, 97.1%)',\n indigo4: 'hsl(223, 92.9%, 95.0%)',\n indigo5: 'hsl(224, 87.1%, 92.0%)',\n indigo6: 'hsl(224, 81.9%, 87.8%)',\n indigo7: 'hsl(225, 77.4%, 82.1%)',\n indigo8: 'hsl(226, 75.4%, 74.5%)',\n indigo9: 'hsl(226, 70.0%, 55.5%)',\n indigo10: 'hsl(226, 58.6%, 51.3%)',\n indigo11: 'hsl(226, 55.0%, 45.0%)',\n indigo12: 'hsl(226, 62.0%, 17.0%)',\n};\n\nconst lime = {\n lime1: 'hsl(85, 50.0%, 98.7%)',\n lime2: 'hsl(85, 66.7%, 96.5%)',\n lime3: 'hsl(85, 76.0%, 92.3%)',\n lime4: 'hsl(84, 75.3%, 87.5%)',\n lime5: 'hsl(84, 71.5%, 81.9%)',\n lime6: 'hsl(82, 65.0%, 74.6%)',\n lime7: 'hsl(79, 53.2%, 61.8%)',\n lime8: 'hsl(76, 61.7%, 45.1%)',\n lime9: 'hsl(81, 67.0%, 50.0%)',\n lime10: 'hsl(80, 68.3%, 46.9%)',\n lime11: 'hsl(75, 80.0%, 26.0%)',\n lime12: 'hsl(78, 70.0%, 11.5%)',\n};\n\nconst mint = {\n mint1: 'hsl(165, 80.0%, 98.8%)',\n mint2: 'hsl(164, 88.2%, 96.7%)',\n mint3: 'hsl(164, 76.6%, 93.3%)',\n mint4: 'hsl(165, 68.8%, 89.5%)',\n mint5: 'hsl(165, 60.6%, 84.5%)',\n mint6: 'hsl(165, 53.5%, 76.9%)',\n mint7: 'hsl(166, 50.7%, 66.1%)',\n mint8: 'hsl(168, 52.8%, 51.0%)',\n mint9: 'hsl(167, 65.0%, 66.0%)',\n mint10: 'hsl(167, 59.3%, 63.1%)',\n mint11: 'hsl(172, 72.0%, 28.5%)',\n mint12: 'hsl(172, 70.0%, 12.0%)',\n};\n\nconst olive = {\n olive1: 'hsl(110, 20.0%, 99.0%)',\n olive2: 'hsl(120, 16.7%, 97.6%)',\n olive3: 'hsl(119, 10.1%, 95.2%)',\n olive4: 'hsl(118, 8.1%, 93.0%)',\n olive5: 'hsl(117, 7.1%, 90.8%)',\n olive6: 'hsl(115, 6.4%, 88.5%)',\n olive7: 'hsl(114, 5.9%, 85.4%)',\n olive8: 'hsl(110, 5.2%, 77.3%)',\n olive9: 'hsl(110, 3.5%, 55.5%)',\n olive10: 'hsl(111, 2.8%, 51.7%)',\n olive11: 'hsl(110, 3.0%, 43.0%)',\n olive12: 'hsl(110, 25.0%, 9.5%)',\n};\n\nconst orange = {\n orange1: 'hsl(24, 70.0%, 99.0%)',\n orange2: 'hsl(24, 83.3%, 97.6%)',\n orange3: 'hsl(24, 100%, 95.3%)',\n orange4: 'hsl(25, 100%, 92.2%)',\n orange5: 'hsl(25, 100%, 88.2%)',\n orange6: 'hsl(25, 100%, 82.8%)',\n orange7: 'hsl(24, 100%, 75.3%)',\n orange8: 'hsl(24, 94.5%, 64.3%)',\n orange9: 'hsl(24, 94.0%, 50.0%)',\n orange10: 'hsl(24, 100%, 46.5%)',\n orange11: 'hsl(24, 100%, 37.0%)',\n orange12: 'hsl(15, 60.0%, 17.0%)',\n};\n\nconst pink = {\n pink1: 'hsl(322, 100%, 99.4%)',\n pink2: 'hsl(323, 100%, 98.4%)',\n pink3: 'hsl(323, 86.3%, 96.5%)',\n pink4: 'hsl(323, 78.7%, 94.2%)',\n pink5: 'hsl(323, 72.2%, 91.1%)',\n pink6: 'hsl(323, 66.3%, 86.6%)',\n pink7: 'hsl(323, 62.0%, 80.1%)',\n pink8: 'hsl(323, 60.3%, 72.4%)',\n pink9: 'hsl(322, 65.0%, 54.5%)',\n pink10: 'hsl(322, 63.9%, 50.7%)',\n pink11: 'hsl(322, 75.0%, 46.0%)',\n pink12: 'hsl(320, 70.0%, 13.5%)',\n};\n\nconst plum = {\n plum1: 'hsl(292, 90.0%, 99.4%)',\n plum2: 'hsl(300, 100%, 98.6%)',\n plum3: 'hsl(299, 71.2%, 96.4%)',\n plum4: 'hsl(299, 62.0%, 93.8%)',\n plum5: 'hsl(298, 56.1%, 90.5%)',\n plum6: 'hsl(296, 51.3%, 85.8%)',\n plum7: 'hsl(295, 48.2%, 78.9%)',\n plum8: 'hsl(292, 47.7%, 70.8%)',\n plum9: 'hsl(292, 45.0%, 51.0%)',\n plum10: 'hsl(292, 50.2%, 46.9%)',\n plum11: 'hsl(292, 60.0%, 42.5%)',\n plum12: 'hsl(291, 66.0%, 14.0%)',\n};\n\nconst purple = {\n purple1: 'hsl(280, 65.0%, 99.4%)',\n purple2: 'hsl(276, 100%, 99.0%)',\n purple3: 'hsl(276, 83.1%, 97.0%)',\n purple4: 'hsl(275, 76.4%, 94.7%)',\n purple5: 'hsl(275, 70.8%, 91.8%)',\n purple6: 'hsl(274, 65.4%, 87.8%)',\n purple7: 'hsl(273, 61.0%, 81.7%)',\n purple8: 'hsl(272, 60.0%, 73.5%)',\n purple9: 'hsl(272, 51.0%, 54.0%)',\n purple10: 'hsl(272, 46.8%, 50.3%)',\n purple11: 'hsl(272, 50.0%, 45.8%)',\n purple12: 'hsl(272, 66.0%, 16.0%)',\n};\n\nconst mauve = {\n mauve1: 'hsl(300, 20.0%, 99.0%)',\n mauve2: 'hsl(300, 7.7%, 97.5%)',\n mauve3: 'hsl(294, 5.5%, 95.3%)',\n mauve4: 'hsl(289, 4.7%, 93.3%)',\n mauve5: 'hsl(283, 4.4%, 91.3%)',\n mauve6: 'hsl(278, 4.1%, 89.1%)',\n mauve7: 'hsl(271, 3.9%, 86.3%)',\n mauve8: 'hsl(255, 3.7%, 78.8%)',\n mauve9: 'hsl(252, 4.0%, 57.3%)',\n mauve10: 'hsl(253, 3.5%, 53.5%)',\n mauve11: 'hsl(252, 4.0%, 44.8%)',\n mauve12: 'hsl(260, 25.0%, 11.0%)',\n};\n\nconst red = {\n red1: 'hsl(359, 100%, 99.4%)',\n red2: 'hsl(359, 100%, 98.6%)',\n red3: 'hsl(360, 100%, 96.8%)',\n red4: 'hsl(360, 97.9%, 94.8%)',\n red5: 'hsl(360, 90.2%, 91.9%)',\n red6: 'hsl(360, 81.7%, 87.8%)',\n red7: 'hsl(359, 74.2%, 81.7%)',\n red8: 'hsl(359, 69.5%, 74.3%)',\n red9: 'hsl(358, 75.0%, 59.0%)',\n red10: 'hsl(358, 69.4%, 55.2%)',\n red11: 'hsl(358, 65.0%, 48.7%)',\n red12: 'hsl(354, 50.0%, 14.6%)',\n};\n\nconst sage = {\n sage1: 'hsl(155, 30.0%, 98.8%)',\n sage2: 'hsl(150, 16.7%, 97.6%)',\n sage3: 'hsl(151, 10.6%, 95.2%)',\n sage4: 'hsl(151, 8.8%, 93.0%)',\n sage5: 'hsl(151, 7.8%, 90.8%)',\n sage6: 'hsl(152, 7.2%, 88.4%)',\n sage7: 'hsl(153, 6.7%, 85.3%)',\n sage8: 'hsl(154, 6.1%, 77.5%)',\n sage9: 'hsl(155, 3.5%, 55.5%)',\n sage10: 'hsl(154, 2.8%, 51.7%)',\n sage11: 'hsl(155, 3.0%, 43.0%)',\n sage12: 'hsl(155, 24.0%, 9.0%)',\n};\n\nconst sand = {\n sand1: 'hsl(50, 20.0%, 99.0%)',\n sand2: 'hsl(60, 7.7%, 97.5%)',\n sand3: 'hsl(59, 6.5%, 95.1%)',\n sand4: 'hsl(58, 6.1%, 92.9%)',\n sand5: 'hsl(57, 6.0%, 90.7%)',\n sand6: 'hsl(56, 5.9%, 88.4%)',\n sand7: 'hsl(55, 5.9%, 85.2%)',\n sand8: 'hsl(51, 6.0%, 77.1%)',\n sand9: 'hsl(50, 2.0%, 55.7%)',\n sand10: 'hsl(55, 1.7%, 51.9%)',\n sand11: 'hsl(50, 2.0%, 43.1%)',\n sand12: 'hsl(50, 6.0%, 10.0%)',\n};\n\nconst sky = {\n sky1: 'hsl(193, 100%, 98.8%)',\n sky2: 'hsl(193, 100%, 97.3%)',\n sky3: 'hsl(193, 99.0%, 94.7%)',\n sky4: 'hsl(193, 91.4%, 91.4%)',\n sky5: 'hsl(194, 82.0%, 86.6%)',\n sky6: 'hsl(194, 74.1%, 79.5%)',\n sky7: 'hsl(194, 72.3%, 69.6%)',\n sky8: 'hsl(193, 77.9%, 53.9%)',\n sky9: 'hsl(193, 98.0%, 70.0%)',\n sky10: 'hsl(193, 87.0%, 66.5%)',\n sky11: 'hsl(195, 100%, 31.5%)',\n sky12: 'hsl(195, 100%, 13.0%)',\n};\n\nconst slate = {\n slate1: 'hsl(206, 30.0%, 98.8%)',\n slate2: 'hsl(210, 16.7%, 97.6%)',\n slate3: 'hsl(209, 13.3%, 95.3%)',\n slate4: 'hsl(209, 12.2%, 93.2%)',\n slate5: 'hsl(208, 11.7%, 91.1%)',\n slate6: 'hsl(208, 11.3%, 88.9%)',\n slate7: 'hsl(207, 11.1%, 85.9%)',\n slate8: 'hsl(205, 10.7%, 78.0%)',\n slate9: 'hsl(206, 6.0%, 56.1%)',\n slate10: 'hsl(206, 5.8%, 52.3%)',\n slate11: 'hsl(206, 6.0%, 43.5%)',\n slate12: 'hsl(206, 24.0%, 9.0%)',\n};\n\nconst teal = {\n teal1: 'hsl(165, 60.0%, 98.8%)',\n teal2: 'hsl(169, 64.7%, 96.7%)',\n teal3: 'hsl(169, 59.8%, 94.0%)',\n teal4: 'hsl(169, 53.1%, 90.2%)',\n teal5: 'hsl(170, 47.1%, 85.0%)',\n teal6: 'hsl(170, 42.6%, 77.9%)',\n teal7: 'hsl(170, 39.9%, 68.1%)',\n teal8: 'hsl(172, 42.1%, 52.5%)',\n teal9: 'hsl(173, 80.0%, 36.0%)',\n teal10: 'hsl(173, 83.4%, 32.5%)',\n teal11: 'hsl(174, 90.0%, 25.2%)',\n teal12: 'hsl(170, 50.0%, 12.5%)',\n};\n\nconst tomato = {\n tomato1: 'hsl(10, 100%, 99.4%)',\n tomato2: 'hsl(8, 100%, 98.4%)',\n tomato3: 'hsl(8, 100%, 96.6%)',\n tomato4: 'hsl(8, 100%, 94.3%)',\n tomato5: 'hsl(8, 92.8%, 91.0%)',\n tomato6: 'hsl(9, 84.7%, 86.3%)',\n tomato7: 'hsl(10, 77.3%, 79.5%)',\n tomato8: 'hsl(10, 71.6%, 71.0%)',\n tomato9: 'hsl(10, 78.0%, 54.0%)',\n tomato10: 'hsl(10, 71.5%, 50.0%)',\n tomato11: 'hsl(10, 82.0%, 43.5%)',\n tomato12: 'hsl(10, 50.0%, 13.5%)',\n};\n\nconst violet = {\n violet1: 'hsl(255, 65.0%, 99.4%)',\n violet2: 'hsl(252, 100%, 99.0%)',\n violet3: 'hsl(252, 96.9%, 97.4%)',\n violet4: 'hsl(252, 91.5%, 95.5%)',\n violet5: 'hsl(252, 85.1%, 93.0%)',\n violet6: 'hsl(252, 77.8%, 89.4%)',\n violet7: 'hsl(252, 71.0%, 83.7%)',\n violet8: 'hsl(252, 68.6%, 76.3%)',\n violet9: 'hsl(252, 56.0%, 57.5%)',\n violet10: 'hsl(251, 48.1%, 53.5%)',\n violet11: 'hsl(250, 43.0%, 48.0%)',\n violet12: 'hsl(254, 60.0%, 18.5%)',\n};\n\nconst yellow = {\n yellow1: 'hsl(60, 54.0%, 98.5%)',\n yellow2: 'hsl(52, 100%, 95.5%)',\n yellow3: 'hsl(55, 100%, 90.9%)',\n yellow4: 'hsl(54, 100%, 86.6%)',\n yellow5: 'hsl(52, 97.9%, 82.0%)',\n yellow6: 'hsl(50, 89.4%, 76.1%)',\n yellow7: 'hsl(47, 80.4%, 68.0%)',\n yellow8: 'hsl(48, 100%, 46.1%)',\n yellow9: 'hsl(53, 92.0%, 50.0%)',\n yellow10: 'hsl(50, 100%, 48.5%)',\n yellow11: 'hsl(42, 100%, 29.0%)',\n yellow12: 'hsl(40, 55.0%, 13.5%)',\n};\n\nconst amberA = {\n amberA1: 'hsla(40, 94.9%, 38.7%, 0.016)',\n amberA2: 'hsla(40, 100%, 50.3%, 0.071)',\n amberA3: 'hsla(44, 100%, 50.1%, 0.165)',\n amberA4: 'hsla(43, 100%, 50.0%, 0.263)',\n amberA5: 'hsla(42, 100%, 50.0%, 0.365)',\n amberA6: 'hsla(38, 100%, 50.1%, 0.475)',\n amberA7: 'hsla(36, 99.9%, 46.2%, 0.612)',\n amberA8: 'hsla(35, 99.8%, 46.0%, 0.832)',\n amberA9: 'hsla(39, 100%, 50.0%, 0.859)',\n amberA10: 'hsla(35, 100%, 50.0%, 0.891)',\n amberA11: 'hsla(29, 100%, 33.6%, 0.980)',\n amberA12: 'hsla(20, 99.8%, 14.1%, 0.965)',\n};\n\nconst blueA = {\n blueA1: 'hsla(210, 100%, 51.0%, 0.016)',\n blueA2: 'hsla(210, 100%, 51.0%, 0.040)',\n blueA3: 'hsla(210, 100%, 50.3%, 0.071)',\n blueA4: 'hsla(210, 100%, 50.1%, 0.118)',\n blueA5: 'hsla(208, 99.1%, 47.1%, 0.189)',\n blueA6: 'hsla(209, 99.5%, 45.3%, 0.283)',\n blueA7: 'hsla(208, 99.9%, 43.8%, 0.412)',\n blueA8: 'hsla(206, 99.8%, 45.1%, 0.632)',\n blueA9: 'hsla(206, 100%, 50.0%, 0.980)',\n blueA10: 'hsla(208, 100%, 47.2%, 0.980)',\n blueA11: 'hsla(212, 100%, 43.0%, 0.980)',\n blueA12: 'hsla(213, 100%, 14.4%, 0.980)',\n};\n\nconst bronzeA = {\n bronzeA1: 'hsla(0, 89.3%, 18.3%, 0.012)',\n bronzeA2: 'hsla(17, 95.1%, 40.1%, 0.036)',\n bronzeA3: 'hsla(18, 98.3%, 29.8%, 0.067)',\n bronzeA4: 'hsla(17, 99.6%, 26.0%, 0.106)',\n bronzeA5: 'hsla(19, 99.6%, 23.8%, 0.157)',\n bronzeA6: 'hsla(17, 99.2%, 22.5%, 0.220)',\n bronzeA7: 'hsla(18, 99.7%, 21.6%, 0.310)',\n bronzeA8: 'hsla(17, 99.5%, 20.2%, 0.420)',\n bronzeA9: 'hsla(18, 99.9%, 16.7%, 0.553)',\n bronzeA10: 'hsla(17, 99.2%, 15.4%, 0.589)',\n bronzeA11: 'hsla(15, 99.9%, 13.2%, 0.655)',\n bronzeA12: 'hsla(12, 98.7%, 5.7%, 0.832)',\n};\n\nconst brownA = {\n brownA1: 'hsla(30, 94.3%, 34.6%, 0.012)',\n brownA2: 'hsla(30, 94.3%, 34.6%, 0.036)',\n brownA3: 'hsla(30, 97.7%, 33.9%, 0.083)',\n brownA4: 'hsla(31, 98.5%, 34.2%, 0.134)',\n brownA5: 'hsla(29, 100%, 34.3%, 0.200)',\n brownA6: 'hsla(28, 99.2%, 34.6%, 0.291)',\n brownA7: 'hsla(29, 99.8%, 33.8%, 0.412)',\n brownA8: 'hsla(28, 100%, 33.3%, 0.553)',\n brownA9: 'hsla(28, 99.9%, 25.5%, 0.655)',\n brownA10: 'hsla(27, 99.7%, 22.4%, 0.675)',\n brownA11: 'hsla(25, 99.8%, 17.3%, 0.714)',\n brownA12: 'hsla(21, 99.4%, 6.6%, 0.867)',\n};\n\nconst crimsonA = {\n crimsonA1: 'hsla(340, 100%, 51.0%, 0.012)',\n crimsonA2: 'hsla(330, 100%, 51.0%, 0.032)',\n crimsonA3: 'hsla(332, 99.1%, 47.1%, 0.063)',\n crimsonA4: 'hsla(331, 99.9%, 44.3%, 0.102)',\n crimsonA5: 'hsla(333, 99.9%, 42.3%, 0.153)',\n crimsonA6: 'hsla(333, 99.5%, 40.5%, 0.224)',\n crimsonA7: 'hsla(335, 99.7%, 39.1%, 0.322)',\n crimsonA8: 'hsla(336, 99.5%, 38.5%, 0.440)',\n crimsonA9: 'hsla(336, 99.9%, 44.3%, 0.761)',\n crimsonA10: 'hsla(336, 100%, 42.5%, 0.808)',\n crimsonA11: 'hsla(336, 99.8%, 40.3%, 0.883)',\n crimsonA12: 'hsla(340, 99.0%, 10.0%, 0.950)',\n};\n\nconst cyanA = {\n cyanA1: 'hsla(195, 95.2%, 41.2%, 0.020)',\n cyanA2: 'hsla(185, 99.9%, 42.3%, 0.051)',\n cyanA3: 'hsla(186, 97.8%, 42.2%, 0.095)',\n cyanA4: 'hsla(186, 99.9%, 38.5%, 0.153)',\n cyanA5: 'hsla(187, 99.3%, 36.6%, 0.232)',\n cyanA6: 'hsla(188, 99.4%, 35.4%, 0.334)',\n cyanA7: 'hsla(189, 99.6%, 35.0%, 0.483)',\n cyanA8: 'hsla(189, 99.9%, 37.6%, 0.761)',\n cyanA9: 'hsla(190, 100%, 37.8%, 0.980)',\n cyanA10: 'hsla(191, 99.9%, 34.6%, 0.969)',\n cyanA11: 'hsla(192, 100%, 27.6%, 0.953)',\n cyanA12: 'hsla(192, 100%, 11.0%, 0.980)',\n};\n\nconst goldA = {\n goldA1: 'hsla(60, 89.3%, 18.3%, 0.012)',\n goldA2: 'hsla(47, 99.9%, 34.6%, 0.051)',\n goldA3: 'hsla(45, 97.0%, 27.9%, 0.087)',\n goldA4: 'hsla(46, 98.0%, 25.4%, 0.134)',\n goldA5: 'hsla(43, 98.4%, 22.6%, 0.185)',\n goldA6: 'hsla(41, 99.7%, 22.0%, 0.259)',\n goldA7: 'hsla(38, 99.8%, 21.5%, 0.357)',\n goldA8: 'hsla(36, 99.3%, 21.5%, 0.487)',\n goldA9: 'hsla(36, 99.9%, 16.2%, 0.604)',\n goldA10: 'hsla(36, 99.2%, 14.6%, 0.636)',\n goldA11: 'hsla(35, 99.1%, 11.2%, 0.687)',\n goldA12: 'hsla(38, 98.0%, 3.8%, 0.832)',\n};\n\nconst grassA = {\n grassA1: 'hsla(120, 94.9%, 38.7%, 0.016)',\n grassA2: 'hsla(120, 94.9%, 38.7%, 0.048)',\n grassA3: 'hsla(120, 98.0%, 35.5%, 0.079)',\n grassA4: 'hsla(120, 98.7%, 31.5%, 0.126)',\n grassA5: 'hsla(122, 98.5%, 29.9%, 0.193)',\n grassA6: 'hsla(125, 99.2%, 27.9%, 0.283)',\n grassA7: 'hsla(125, 99.9%, 27.0%, 0.408)',\n grassA8: 'hsla(131, 100%, 27.6%, 0.604)',\n grassA9: 'hsla(131, 99.7%, 26.3%, 0.726)',\n grassA10: 'hsla(132, 99.9%, 24.0%, 0.761)',\n grassA11: 'hsla(133, 99.5%, 19.5%, 0.840)',\n grassA12: 'hsla(128, 98.0%, 4.9%, 0.895)',\n};\n\nconst grayA = {\n grayA1: 'hsla(0, 0%, 0%, 0.012)',\n grayA2: 'hsla(0, 0%, 0%, 0.027)',\n grayA3: 'hsla(0, 0%, 0%, 0.047)',\n grayA4: 'hsla(0, 0%, 0%, 0.071)',\n grayA5: 'hsla(0, 0%, 0%, 0.090)',\n grayA6: 'hsla(0, 0%, 0%, 0.114)',\n grayA7: 'hsla(0, 0%, 0%, 0.141)',\n grayA8: 'hsla(0, 0%, 0%, 0.220)',\n grayA9: 'hsla(0, 0%, 0%, 0.439)',\n grayA10: 'hsla(0, 0%, 0%, 0.478)',\n grayA11: 'hsla(0, 0%, 0%, 0.565)',\n grayA12: 'hsla(0, 0%, 0%, 0.910)',\n};\n\nconst greenA = {\n greenA1: 'hsla(140, 94.9%, 38.7%, 0.016)',\n greenA2: 'hsla(138, 99.9%, 38.5%, 0.051)',\n greenA3: 'hsla(139, 97.7%, 36.9%, 0.087)',\n greenA4: 'hsla(139, 98.5%, 32.7%, 0.134)',\n greenA5: 'hsla(141, 100%, 30.4%, 0.200)',\n greenA6: 'hsla(142, 99.0%, 28.9%, 0.295)',\n greenA7: 'hsla(146, 99.5%, 27.6%, 0.428)',\n greenA8: 'hsla(151, 99.5%, 28.8%, 0.644)',\n greenA9: 'hsla(151, 99.9%, 28.0%, 0.812)',\n greenA10: 'hsla(152, 99.6%, 25.8%, 0.840)',\n greenA11: 'hsla(153, 99.9%, 21.0%, 0.906)',\n greenA12: 'hsla(155, 99.4%, 6.2%, 0.918)',\n};\n\nconst indigoA = {\n indigoA1: 'hsla(240, 92.6%, 26.5%, 0.008)',\n indigoA2: 'hsla(223, 100%, 51.0%, 0.028)',\n indigoA3: 'hsla(224, 100%, 50.1%, 0.059)',\n indigoA4: 'hsla(223, 98.0%, 48.5%, 0.099)',\n indigoA5: 'hsla(225, 98.6%, 46.4%, 0.150)',\n indigoA6: 'hsla(224, 99.5%, 44.9%, 0.224)',\n indigoA7: 'hsla(225, 99.7%, 43.9%, 0.318)',\n indigoA8: 'hsla(226, 99.5%, 43.1%, 0.448)',\n indigoA9: 'hsla(226, 100%, 41.2%, 0.757)',\n indigoA10: 'hsla(226, 99.8%, 37.1%, 0.773)',\n indigoA11: 'hsla(226, 99.6%, 31.1%, 0.797)',\n indigoA12: 'hsla(226, 99.3%, 11.4%, 0.938)',\n};\n\nconst limeA = {\n limeA1: 'hsla(80, 93.8%, 31.4%, 0.020)',\n limeA2: 'hsla(85, 99.3%, 40.2%, 0.059)',\n limeA3: 'hsla(84, 98.7%, 43.2%, 0.138)',\n limeA4: 'hsla(84, 99.6%, 43.0%, 0.220)',\n limeA5: 'hsla(85, 99.8%, 41.8%, 0.310)',\n limeA6: 'hsla(82, 99.8%, 39.3%, 0.420)',\n limeA7: 'hsla(79, 99.7%, 34.6%, 0.585)',\n limeA8: 'hsla(76, 99.8%, 33.7%, 0.828)',\n limeA9: 'hsla(81, 99.8%, 40.2%, 0.836)',\n limeA10: 'hsla(80, 100%, 37.6%, 0.851)',\n limeA11: 'hsla(75, 99.5%, 22.0%, 0.950)',\n limeA12: 'hsla(78, 99.6%, 8.4%, 0.965)',\n};\n\nconst mintA = {\n mintA1: 'hsla(168, 95.4%, 42.8%, 0.024)',\n mintA2: 'hsla(164, 99.1%, 47.1%, 0.063)',\n mintA3: 'hsla(164, 99.3%, 43.5%, 0.118)',\n mintA4: 'hsla(164, 99.3%, 41.3%, 0.177)',\n mintA5: 'hsla(165, 99.0%, 37.5%, 0.248)',\n mintA6: 'hsla(165, 100%, 35.0%, 0.353)',\n mintA7: 'hsla(166, 99.9%, 33.5%, 0.510)',\n mintA8: 'hsla(168, 99.6%, 34.6%, 0.750)',\n mintA9: 'hsla(167, 99.9%, 39.5%, 0.561)',\n mintA10: 'hsla(167, 99.7%, 37.4%, 0.589)',\n mintA11: 'hsla(172, 99.8%, 22.4%, 0.922)',\n mintA12: 'hsla(172, 99.7%, 8.8%, 0.965)',\n};\n\nconst oliveA = {\n oliveA1: 'hsla(120, 89.3%, 18.3%, 0.012)',\n oliveA2: 'hsla(120, 87.7%, 16.0%, 0.028)',\n oliveA3: 'hsla(120, 99.5%, 7.7%, 0.051)',\n oliveA4: 'hsla(120, 92.3%, 8.5%, 0.075)',\n oliveA5: 'hsla(120, 86.0%, 6.9%, 0.099)',\n oliveA6: 'hsla(120, 94.8%, 6.8%, 0.122)',\n oliveA7: 'hsla(120, 99.3%, 5.2%, 0.153)',\n oliveA8: 'hsla(110, 93.8%, 5.2%, 0.240)',\n oliveA9: 'hsla(111, 98.7%, 3.0%, 0.459)',\n oliveA10: 'hsla(111, 93.5%, 2.9%, 0.499)',\n oliveA11: 'hsla(111, 95.2%, 2.5%, 0.585)',\n oliveA12: 'hsla(110, 97.6%, 2.6%, 0.930)',\n};\n\nconst orangeA = {\n orangeA1: 'hsla(20, 94.9%, 38.7%, 0.016)',\n orangeA2: 'hsla(24, 95.8%, 46.5%, 0.044)',\n orangeA3: 'hsla(25, 100%, 50.5%, 0.095)',\n orangeA4: 'hsla(26, 100%, 50.0%, 0.157)',\n orangeA5: 'hsla(25, 100%, 50.1%, 0.236)',\n orangeA6: 'hsla(25, 100%, 50.1%, 0.346)',\n orangeA7: 'hsla(24, 100%, 50.1%, 0.495)',\n orangeA8: 'hsla(24, 99.7%, 48.7%, 0.695)',\n orangeA9: 'hsla(24, 99.9%, 48.4%, 0.969)',\n orangeA10: 'hsla(23, 100%, 46.4%, 0.980)',\n orangeA11: 'hsla(23, 100%, 36.8%, 0.980)',\n orangeA12: 'hsla(15, 99.4%, 11.0%, 0.934)',\n};\n\nconst pinkA = {\n pinkA1: 'hsla(320, 100%, 51.0%, 0.012)',\n pinkA2: 'hsla(323, 100%, 51.0%, 0.032)',\n pinkA3: 'hsla(323, 98.9%, 47.3%, 0.067)',\n pinkA4: 'hsla(323, 99.9%, 44.3%, 0.102)',\n pinkA5: 'hsla(324, 99.9%, 42.3%, 0.153)',\n pinkA6: 'hsla(323, 99.5%, 39.6%, 0.224)',\n pinkA7: 'hsla(323, 99.7%, 38.5%, 0.322)',\n pinkA8: 'hsla(323, 99.5%, 37.7%, 0.444)',\n pinkA9: 'hsla(322, 99.7%, 39.3%, 0.750)',\n pinkA10: 'hsla(322, 100%, 39.1%, 0.808)',\n pinkA11: 'hsla(322, 99.8%, 39.0%, 0.887)',\n pinkA12: 'hsla(321, 99.8%, 10.0%, 0.961)',\n};\n\nconst plumA = {\n plumA1: 'hsla(280, 100%, 51.0%, 0.012)',\n plumA2: 'hsla(300, 100%, 51.0%, 0.028)',\n plumA3: 'hsla(300, 99.0%, 40.9%, 0.063)',\n plumA4: 'hsla(300, 99.9%, 38.5%, 0.102)',\n plumA5: 'hsla(298, 98.2%, 35.9%, 0.150)',\n plumA6: 'hsla(297, 99.6%, 33.7%, 0.216)',\n plumA7: 'hsla(295, 99.7%, 32.6%, 0.314)',\n plumA8: 'hsla(292, 99.6%, 32.4%, 0.432)',\n plumA9: 'hsla(292, 99.9%, 31.0%, 0.710)',\n plumA10: 'hsla(292, 99.9%, 30.8%, 0.765)',\n plumA11: 'hsla(292, 99.8%, 30.7%, 0.832)',\n plumA12: 'hsla(291, 99.9%, 9.7%, 0.953)',\n};\n\nconst purpleA = {\n purpleA1: 'hsla(300, 94.3%, 34.6%, 0.012)',\n purpleA2: 'hsla(276, 100%, 51.0%, 0.020)',\n purpleA3: 'hsla(277, 99.6%, 46.5%, 0.055)',\n purpleA4: 'hsla(274, 97.9%, 44.3%, 0.095)',\n purpleA5: 'hsla(276, 98.6%, 42.0%, 0.142)',\n purpleA6: 'hsla(275, 100%, 39.2%, 0.200)',\n purpleA7: 'hsla(273, 99.2%, 38.2%, 0.295)',\n purpleA8: 'hsla(272, 99.7%, 37.6%, 0.424)',\n purpleA9: 'hsla(272, 99.6%, 34.0%, 0.695)',\n purpleA10: 'hsla(272, 99.7%, 32.0%, 0.730)',\n purpleA11: 'hsla(272, 99.8%, 29.7%, 0.773)',\n purpleA12: 'hsla(272, 99.2%, 11.3%, 0.946)',\n};\n\nconst mauveA = {\n mauveA1: 'hsla(300, 89.3%, 18.3%, 0.012)',\n mauveA2: 'hsla(300, 78.1%, 9.0%, 0.028)',\n mauveA3: 'hsla(300, 99.5%, 7.7%, 0.051)',\n mauveA4: 'hsla(270, 90.5%, 6.1%, 0.071)',\n mauveA5: 'hsla(270, 83.0%, 5.2%, 0.091)',\n mauveA6: 'hsla(300, 93.5%, 3.7%, 0.114)',\n mauveA7: 'hsla(270, 82.6%, 3.3%, 0.142)',\n mauveA8: 'hsla(255, 95.2%, 3.7%, 0.220)',\n mauveA9: 'hsla(255, 94.8%, 3.7%, 0.444)',\n mauveA10: 'hsla(253, 96.5%, 3.8%, 0.483)',\n mauveA11: 'hsla(247, 97.9%, 3.2%, 0.569)',\n mauveA12: 'hsla(261, 98.7%, 3.0%, 0.918)',\n};\n\nconst redA = {\n redA1: 'hsla(0, 100%, 51.0%, 0.012)',\n redA2: 'hsla(0, 100%, 51.0%, 0.032)',\n redA3: 'hsla(0, 100%, 50.2%, 0.063)',\n redA4: 'hsla(0, 100%, 50.0%, 0.102)',\n redA5: 'hsla(0, 99.9%, 47.5%, 0.153)',\n redA6: 'hsla(0, 99.5%, 44.9%, 0.224)',\n redA7: 'hsla(359, 99.7%, 42.7%, 0.318)',\n redA8: 'hsla(359, 99.6%, 41.1%, 0.436)',\n redA9: 'hsla(358, 99.9%, 42.9%, 0.718)',\n redA10: 'hsla(358, 99.9%, 41.0%, 0.761)',\n redA11: 'hsla(358, 99.8%, 38.3%, 0.832)',\n redA12: 'hsla(355, 99.3%, 7.9%, 0.926)',\n};\n\nconst sageA = {\n sageA1: 'hsla(150, 92.6%, 26.5%, 0.016)',\n sageA2: 'hsla(150, 87.7%, 16.0%, 0.028)',\n sageA3: 'hsla(160, 98.4%, 10.9%, 0.055)',\n sageA4: 'hsla(140, 92.3%, 8.5%, 0.075)',\n sageA5: 'hsla(160, 86.0%, 6.9%, 0.099)',\n sageA6: 'hsla(156, 95.1%, 8.2%, 0.126)',\n sageA7: 'hsla(156, 98.6%, 6.3%, 0.157)',\n sageA8: 'hsla(154, 94.6%, 6.0%, 0.240)',\n sageA9: 'hsla(154, 98.7%, 3.0%, 0.459)',\n sageA10: 'hsla(154, 93.5%, 2.9%, 0.499)',\n sageA11: 'hsla(154, 95.2%, 2.5%, 0.585)',\n sageA12: 'hsla(158, 97.0%, 2.4%, 0.934)',\n};\n\nconst sandA = {\n sandA1: 'hsla(60, 89.3%, 18.3%, 0.012)',\n sandA2: 'hsla(60, 78.1%, 9.0%, 0.028)',\n sandA3: 'hsla(60, 99.0%, 3.9%, 0.051)',\n sandA4: 'hsla(60, 88.9%, 5.9%, 0.075)',\n sandA5: 'hsla(60, 86.0%, 6.9%, 0.099)',\n sandA6: 'hsla(60, 93.2%, 5.2%, 0.122)',\n sandA7: 'hsla(60, 98.3%, 5.1%, 0.157)',\n sandA8: 'hsla(51, 94.1%, 6.0%, 0.244)',\n sandA9: 'hsla(60, 99.8%, 1.7%, 0.451)',\n sandA10: 'hsla(60, 90.7%, 1.8%, 0.491)',\n sandA11: 'hsla(45, 93.7%, 1.5%, 0.577)',\n sandA12: 'hsla(60, 98.0%, 0.7%, 0.906)',\n};\n\nconst skyA = {\n skyA1: 'hsla(190, 100%, 51.0%, 0.024)',\n skyA2: 'hsla(193, 100%, 50.1%, 0.055)',\n skyA3: 'hsla(193, 100%, 50.1%, 0.106)',\n skyA4: 'hsla(194, 99.6%, 47.7%, 0.165)',\n skyA5: 'hsla(194, 99.2%, 45.4%, 0.244)',\n skyA6: 'hsla(194, 99.9%, 42.3%, 0.357)',\n skyA7: 'hsla(194, 99.8%, 42.2%, 0.526)',\n skyA8: 'hsla(193, 99.9%, 43.8%, 0.820)',\n skyA9: 'hsla(193, 99.7%, 49.4%, 0.593)',\n skyA10: 'hsla(193, 99.8%, 46.6%, 0.628)',\n skyA11: 'hsla(196, 100%, 31.2%, 0.980)',\n skyA12: 'hsla(196, 100%, 12.2%, 0.980)',\n};\n\nconst slateA = {\n slateA1: 'hsla(210, 92.6%, 26.5%, 0.016)',\n slateA2: 'hsla(210, 87.7%, 16.0%, 0.028)',\n slateA3: 'hsla(210, 98.8%, 14.4%, 0.055)',\n slateA4: 'hsla(210, 94.1%, 11.1%, 0.075)',\n slateA5: 'hsla(216, 91.1%, 10.9%, 0.099)',\n slateA6: 'hsla(206, 96.4%, 11.3%, 0.126)',\n slateA7: 'hsla(210, 99.1%, 10.1%, 0.157)',\n slateA8: 'hsla(205, 96.5%, 10.0%, 0.244)',\n slateA9: 'hsla(206, 98.8%, 5.9%, 0.467)',\n slateA10: 'hsla(206, 99.6%, 5.4%, 0.506)',\n slateA11: 'hsla(206, 97.0%, 4.8%, 0.593)',\n slateA12: 'hsla(202, 97.0%, 2.4%, 0.934)',\n};\n\nconst tealA = {\n tealA1: 'hsla(165, 95.2%, 41.2%, 0.020)',\n tealA2: 'hsla(169, 99.5%, 39.4%, 0.055)',\n tealA3: 'hsla(167, 97.6%, 38.1%, 0.095)',\n tealA4: 'hsla(168, 98.1%, 34.6%, 0.150)',\n tealA5: 'hsla(170, 99.4%, 32.3%, 0.220)',\n tealA6: 'hsla(170, 99.7%, 30.1%, 0.314)',\n tealA7: 'hsla(170, 99.3%, 28.7%, 0.448)',\n tealA8: 'hsla(172, 99.8%, 29.7%, 0.675)',\n tealA9: 'hsla(173, 99.8%, 31.1%, 0.930)',\n tealA10: 'hsla(173, 99.7%, 28.7%, 0.946)',\n tealA11: 'hsla(174, 99.8%, 23.3%, 0.977)',\n tealA12: 'hsla(171, 98.8%, 6.8%, 0.938)',\n};\n\nconst tomatoA = {\n tomatoA1: 'hsla(0, 100%, 51.0%, 0.012)',\n tomatoA2: 'hsla(8, 100%, 51.0%, 0.032)',\n tomatoA3: 'hsla(7, 100%, 50.2%, 0.067)',\n tomatoA4: 'hsla(8, 100%, 50.1%, 0.114)',\n tomatoA5: 'hsla(7, 99.5%, 47.9%, 0.173)',\n tomatoA6: 'hsla(9, 99.9%, 46.2%, 0.255)',\n tomatoA7: 'hsla(10, 99.8%, 43.6%, 0.365)',\n tomatoA8: 'hsla(10, 99.5%, 41.8%, 0.499)',\n tomatoA9: 'hsla(10, 99.9%, 43.8%, 0.820)',\n tomatoA10: 'hsla(10, 100%, 41.8%, 0.859)',\n tomatoA11: 'hsla(10, 99.9%, 38.8%, 0.922)',\n tomatoA12: 'hsla(10, 99.0%, 7.4%, 0.934)',\n};\n\nconst violetA = {\n violetA1: 'hsla(270, 94.3%, 34.6%, 0.012)',\n violetA2: 'hsla(252, 100%, 51.0%, 0.020)',\n violetA3: 'hsla(254, 100%, 50.0%, 0.051)',\n violetA4: 'hsla(251, 98.3%, 48.2%, 0.087)',\n violetA5: 'hsla(252, 99.0%, 45.7%, 0.130)',\n violetA6: 'hsla(251, 99.1%, 44.0%, 0.189)',\n violetA7: 'hsla(252, 99.5%, 41.7%, 0.279)',\n violetA8: 'hsla(252, 100%, 40.7%, 0.400)',\n violetA9: 'hsla(252, 99.9%, 35.8%, 0.663)',\n violetA10: 'hsla(251, 99.6%, 32.5%, 0.691)',\n violetA11: 'hsla(250, 99.8%, 28.4%, 0.726)',\n violetA12: 'hsla(254, 99.5%, 11.9%, 0.926)',\n};\n\nconst yellowA = {\n yellowA1: 'hsla(60, 94.3%, 34.6%, 0.024)',\n yellowA2: 'hsla(52, 100%, 50.4%, 0.091)',\n yellowA3: 'hsla(55, 100%, 50.2%, 0.181)',\n yellowA4: 'hsla(54, 100%, 50.1%, 0.267)',\n yellowA5: 'hsla(52, 99.9%, 49.5%, 0.357)',\n yellowA6: 'hsla(50, 100%, 47.4%, 0.451)',\n yellowA7: 'hsla(47, 99.8%, 44.6%, 0.577)',\n yellowA8: 'hsla(48, 100%, 46.0%, 0.980)',\n yellowA9: 'hsla(53, 100%, 48.0%, 0.961)',\n yellowA10: 'hsla(50, 100%, 48.4%, 0.980)',\n yellowA11: 'hsla(42, 100%, 28.6%, 0.980)',\n yellowA12: 'hsla(41, 98.9%, 8.0%, 0.942)',\n};\n\nconst blackA = {\n blackA1: 'hsla(0, 0%, 0%, 0.012)',\n blackA2: 'hsla(0, 0%, 0%, 0.027)',\n blackA3: 'hsla(0, 0%, 0%, 0.047)',\n blackA4: 'hsla(0, 0%, 0%, 0.071)',\n blackA5: 'hsla(0, 0%, 0%, 0.090)',\n blackA6: 'hsla(0, 0%, 0%, 0.114)',\n blackA7: 'hsla(0, 0%, 0%, 0.141)',\n blackA8: 'hsla(0, 0%, 0%, 0.220)',\n blackA9: 'hsla(0, 0%, 0%, 0.439)',\n blackA10: 'hsla(0, 0%, 0%, 0.478)',\n blackA11: 'hsla(0, 0%, 0%, 0.565)',\n blackA12: 'hsla(0, 0%, 0%, 0.910)',\n};\n\nconst whiteA = {\n whiteA1: 'hsla(0, 0%, 100%, 0)',\n whiteA2: 'hsla(0, 0%, 100%, 0.013)',\n whiteA3: 'hsla(0, 0%, 100%, 0.034)',\n whiteA4: 'hsla(0, 0%, 100%, 0.056)',\n whiteA5: 'hsla(0, 0%, 100%, 0.086)',\n whiteA6: 'hsla(0, 0%, 100%, 0.124)',\n whiteA7: 'hsla(0, 0%, 100%, 0.176)',\n whiteA8: 'hsla(0, 0%, 100%, 0.249)',\n whiteA9: 'hsla(0, 0%, 100%, 0.386)',\n whiteA10: 'hsla(0, 0%, 100%, 0.446)',\n whiteA11: 'hsla(0, 0%, 100%, 0.592)',\n whiteA12: 'hsla(0, 0%, 100%, 0.923)',\n};\n\nexport { amber, amberA, amber$1 as amberDark, amberA$1 as amberDarkA, blackA, blue, blueA, blue$1 as blueDark, blueA$1 as blueDarkA, bronze, bronzeA, bronze$1 as bronzeDark, bronzeA$1 as bronzeDarkA, brown, brownA, brown$1 as brownDark, brownA$1 as brownDarkA, crimson, crimsonA, crimson$1 as crimsonDark, crimsonA$1 as crimsonDarkA, cyan, cyanA, cyan$1 as cyanDark, cyanA$1 as cyanDarkA, gold, goldA, gold$1 as goldDark, goldA$1 as goldDarkA, grass, grassA, grass$1 as grassDark, grassA$1 as grassDarkA, gray, grayA, gray$1 as grayDark, grayA$1 as grayDarkA, green, greenA, green$1 as greenDark, greenA$1 as greenDarkA, indigo, indigoA, indigo$1 as indigoDark, indigoA$1 as indigoDarkA, lime, limeA, lime$1 as limeDark, limeA$1 as limeDarkA, mauve, mauveA, mauve$1 as mauveDark, mauveA$1 as mauveDarkA, mint, mintA, mint$1 as mintDark, mintA$1 as mintDarkA, olive, oliveA, olive$1 as oliveDark, oliveA$1 as oliveDarkA, orange, orangeA, orange$1 as orangeDark, orangeA$1 as orangeDarkA, pink, pinkA, pink$1 as pinkDark, pinkA$1 as pinkDarkA, plum, plumA, plum$1 as plumDark, plumA$1 as plumDarkA, purple, purpleA, purple$1 as purpleDark, purpleA$1 as purpleDarkA, red, redA, red$1 as redDark, redA$1 as redDarkA, sage, sageA, sage$1 as sageDark, sageA$1 as sageDarkA, sand, sandA, sand$1 as sandDark, sandA$1 as sandDarkA, sky, skyA, sky$1 as skyDark, skyA$1 as skyDarkA, slate, slateA, slate$1 as slateDark, slateA$1 as slateDarkA, teal, tealA, teal$1 as tealDark, tealA$1 as tealDarkA, tomato, tomatoA, tomato$1 as tomatoDark, tomatoA$1 as tomatoDarkA, violet, violetA, violet$1 as violetDark, violetA$1 as violetDarkA, whiteA, yellow, yellowA, yellow$1 as yellowDark, yellowA$1 as yellowDarkA };\n","import { keyframes } from '@emotion/react';\nimport { jsx, jsxs, Fragment } from 'react/jsx-runtime';\nimport { useContext, createContext, useState, useRef, useEffect } from 'react';\nimport { useStorage, useDisconnect, useConnectionStatus } from '@thirdweb-dev/react-core';\nimport { ChevronLeftIcon } from '@radix-ui/react-icons';\nimport { walletIds } from '@thirdweb-dev/wallets';\nimport { detect } from 'detect-browser';\nimport { mauveDark, tomato, green, mauve } from '@radix-ui/colors';\nimport styled from '@emotion/styled';\n\nconst darkColors = {\n base1: \"hsl(230deg 11.63% 8.43%)\",\n base2: \"hsl(230deg 11.63% 12%)\",\n base3: \"hsl(230deg 11.63% 15%)\",\n base4: \"hsl(230deg 11.63% 17%)\",\n primaryText: mauveDark.mauve12,\n secondaryText: mauveDark.mauve10,\n danger: tomato.tomato9,\n success: green.green8,\n overlay: \"rgba(0, 0, 0, 0.7)\",\n accentText: \"#3385FF\",\n accentBg: \"hsl(216 100% 50%)\",\n textOnAccent: mauveDark.mauve12\n};\nconst lightColors = {\n base1: mauve.mauve1,\n base2: mauve.mauve3,\n base3: mauve.mauve5,\n base4: mauve.mauve6,\n primaryText: mauve.mauve12,\n secondaryText: mauveDark.mauve9,\n accentText: \"hsl(216 100% 45%)\",\n success: green.green9,\n danger: tomato.tomato9,\n overlay: \"rgba(0, 0, 0, 0.7)\",\n accentBg: \"hsl(216 100% 50%)\",\n textOnAccent: mauve.mauve1\n};\n\n/**\n * @theme\n */\n\nfunction createThemeObj(colors) {\n return {\n type: \"dark\",\n colors: {\n primaryText: colors.primaryText,\n secondaryText: colors.secondaryText,\n accentText: colors.accentText,\n danger: colors.danger,\n success: colors.success,\n modalOverlayBg: colors.overlay,\n accentButtonBg: colors.accentBg,\n accentButtonText: colors.textOnAccent,\n primaryButtonBg: colors.primaryText,\n primaryButtonText: colors.base1,\n secondaryButtonBg: colors.base3,\n secondaryButtonText: colors.primaryText,\n secondaryButtonHoverBg: colors.base4,\n modalBg: colors.base1,\n dropdownBg: colors.base1,\n tooltipBg: colors.primaryText,\n tooltipText: colors.base1,\n inputAutofillBg: colors.base2,\n scrollbarBg: colors.base2,\n walletSelectorButtonHoverBg: colors.base2,\n separatorLine: colors.base4,\n secondaryIconColor: colors.secondaryText,\n secondaryIconHoverBg: colors.base3,\n secondaryIconHoverColor: colors.primaryText,\n borderColor: colors.base4,\n skeletonBg: colors.base3,\n selectedTextColor: colors.base1,\n selectedTextBg: colors.primaryText,\n connectedButtonBg: colors.base1,\n connectedButtonBgHover: colors.base2\n },\n fontFamily: \"inherit\"\n };\n}\nconst darkThemeObj = /* @__PURE__ */createThemeObj(darkColors);\nconst lightThemeObj = /* @__PURE__ */createThemeObj(lightColors);\n\n/**\n * @theme\n */\n\nconst fontSize = {\n xs: \"12px\",\n sm: \"14px\",\n md: \"16px\",\n lg: \"20px\",\n xl: \"24px\"\n};\nconst spacing = {\n xxs: \"6px\",\n xs: \"8px\",\n sm: \"12px\",\n md: \"16px\",\n lg: \"24px\",\n xl: \"32px\",\n xxl: \"48px\",\n \"3xl\": \"64px\"\n};\nconst radius = {\n sm: \"6px\",\n md: \"8px\",\n lg: \"12px\",\n xl: \"20px\",\n xxl: \"32px\"\n};\nconst iconSize = {\n xs: \"12\",\n sm: \"16\",\n md: \"24\",\n lg: \"32\",\n xl: \"48\",\n xxl: \"64\"\n};\n\n// desktop first style media query\nconst media = {\n mobile: `@media (max-width: 640px)`\n};\n\n// TODO - move to theme\nconst shadow = {\n sm: \"0 1px 2px 0 rgb(0 0 0 / 0.05)\",\n md: \"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)\",\n lg: \"0 10px 15px -3px rgb(0 0 0 / 0.07), 0 4px 6px -4px rgb(0 0 0 / 0.1)\",\n xl: \"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)\"\n};\n\n/**\n * Create a custom light theme object by using the default dark theme as a base and applying overrides.\n *\n * @example\n * ### Get the default light theme\n * ```ts\n * const defaultLightTheme = lightTheme()\n * ```\n *\n * ### Create a custom light theme\n * ```ts\n * const customTheme = lightTheme({\n * colors: {\n * modalBg: \"red\",\n * },\n * });\n * ```\n *\n * @param overrides - The overrides to apply to the default light theme.\n * @theme\n */\nfunction lightTheme(overrides) {\n if (!overrides) {\n return lightThemeObj;\n }\n return applyThemeOverrides(lightThemeObj, overrides);\n}\n\n/**\n * Create a custom dark theme object by using the default dark theme as a base and applying overrides.\n *\n * @example\n * ### Get the default dark theme\n * ```ts\n * const defaultDarkTheme = darkTheme()\n * ```\n *\n * ### Create a custom dark theme\n * ```ts\n * const customTheme = darkTheme({\n * colors: {\n * modalBg: \"red\",\n * },\n * });\n * ```\n *\n * @param overrides - The overrides to apply to the default dark theme.\n * @theme\n */\nfunction darkTheme(overrides) {\n if (!overrides) {\n return darkThemeObj;\n }\n return applyThemeOverrides(darkThemeObj, overrides);\n}\nfunction applyThemeOverrides(baseTheme, themeOverrides) {\n const theme = {\n ...baseTheme\n };\n if (themeOverrides.colors) {\n theme.colors = {\n ...theme.colors,\n ...themeOverrides.colors\n };\n }\n if (themeOverrides.fontFamily) {\n theme.fontFamily = themeOverrides.fontFamily;\n }\n return theme;\n}\n\nconst Spacer = _ref => {\n let {\n y\n } = _ref;\n return /*#__PURE__*/jsx(\"div\", {\n style: {\n height: spacing[y]\n }\n });\n};\n\nconst CustomThemeCtx = /* @__PURE__ */createContext(darkThemeObj);\nfunction CustomThemeProvider(props) {\n const {\n theme,\n children\n } = props;\n let themeObj;\n if (typeof theme === \"string\") {\n themeObj = theme === \"light\" ? lightThemeObj : darkThemeObj;\n } else {\n themeObj = theme;\n }\n return /*#__PURE__*/jsx(CustomThemeCtx.Provider, {\n value: themeObj,\n children: children\n });\n}\nfunction useCustomTheme() {\n return useContext(CustomThemeCtx);\n}\n\nconst StyledDiv = styled.div;\nconst StyledSvg = styled.svg;\nconst StyledCircle = styled.circle;\nconst StyledSpan = styled.span;\nconst StyledAnchor = styled.a;\nconst StyledButton = styled.button;\nconst StyledLabel = styled.label;\nconst StyledInput = styled.input;\nconst StyledH2 = styled.h2;\nconst StyledP = styled.p;\nconst StyledUl = styled.ul;\nconst StyledSelect = styled.select;\n\nconst Button = /* @__PURE__ */StyledButton(props => {\n const theme = useCustomTheme();\n return {\n all: \"unset\",\n cursor: \"pointer\",\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n borderRadius: radius.md,\n padding: `${fontSize.sm} ${fontSize.sm}`,\n fontSize: fontSize.md,\n fontWeight: 500,\n boxSizing: \"border-box\",\n WebkitTapHighlightColor: \"transparent\",\n lineHeight: \"normal\",\n flexShrink: 0,\n transition: \"border 200ms ease\",\n gap: props.gap && spacing[props.gap] || 0,\n width: props.fullWidth ? \"100%\" : undefined,\n background: (() => {\n switch (props.variant) {\n case \"primary\":\n return theme.colors.primaryButtonBg;\n case \"accent\":\n return theme.colors.accentButtonBg;\n case \"secondary\":\n return theme.colors.secondaryButtonBg;\n default:\n return \"none\";\n }\n })(),\n color: (() => {\n switch (props.variant) {\n case \"primary\":\n return theme.colors.primaryButtonText;\n case \"accent\":\n return theme.colors.accentButtonText;\n case \"secondary\":\n return theme.colors.secondaryButtonText;\n case \"outline\":\n return theme.colors.secondaryButtonText;\n case \"link\":\n return theme.colors.accentText;\n default:\n return theme.colors.primaryButtonText;\n }\n })(),\n \"&:active\": {\n transform: \"translateY(1px)\"\n },\n \"&[disabled]\": {\n cursor: \"not-allowed\"\n },\n ...(() => {\n if (props.variant === \"outline\") {\n return {\n border: `1.5px solid ${theme.colors.borderColor}`,\n \"&:hover\": {\n borderColor: theme.colors.accentText\n }\n };\n }\n if (props.variant === \"secondary\") {\n return {\n \"&:hover\": {\n background: theme.colors.secondaryButtonHoverBg\n }\n };\n }\n if (props.variant === \"link\") {\n return {\n padding: 0,\n \"&:hover\": {\n color: theme.colors.primaryText\n }\n };\n }\n })()\n };\n});\nconst IconButton = /* @__PURE__ */StyledButton(() => {\n const theme = useCustomTheme();\n return {\n all: \"unset\",\n cursor: \"pointer\",\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n borderRadius: radius.sm,\n WebkitTapHighlightColor: \"transparent\",\n color: theme.colors.secondaryIconColor,\n padding: \"2px\",\n transition: \"background 200ms ease, color 200ms ease\",\n \"&:hover\": {\n background: theme.colors.secondaryIconHoverBg,\n color: theme.colors.secondaryIconHoverColor\n }\n };\n});\nconst InputButton = /* @__PURE__ */StyledButton(() => {\n const theme = useCustomTheme();\n return {\n all: \"unset\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n borderRadius: radius.sm,\n padding: spacing.sm,\n cursor: \"pointer\",\n WebkitTapHighlightColor: \"transparent\",\n color: theme.colors.secondaryText,\n \"&:hover\": {\n color: theme.colors.primaryText\n },\n \"&[disabled]\": {\n cursor: \"not-allowed\"\n }\n };\n});\n\nconst ModalTitle = /* @__PURE__ */StyledH2(props => {\n const theme = useCustomTheme();\n return {\n margin: 0,\n fontWeight: 600,\n fontSize: fontSize.lg,\n color: theme.colors.primaryText,\n lineHeight: 1.3,\n textAlign: \"left\",\n [media.mobile]: {\n textAlign: props.centerOnMobile ? \"center\" : \"left\"\n }\n };\n});\nconst ModalDescription = /* @__PURE__ */StyledP(props => {\n const theme = useCustomTheme();\n return {\n all: \"unset\",\n display: \"block\",\n fontSize: props.sm ? fontSize.sm : fontSize.md,\n color: theme.colors.secondaryText,\n lineHeight: 1.5,\n [media.mobile]: {\n textAlign: props.centerOnMobile ? \"center\" : \"left\"\n }\n };\n});\nconst BackButton = props => {\n return /*#__PURE__*/jsx(IconButton, {\n onClick: props.onClick,\n style: {\n transform: \"translateX(-25%)\",\n ...props.style\n },\n type: \"button\",\n children: /*#__PURE__*/jsx(ChevronLeftIcon, {\n width: iconSize.md,\n height: iconSize.md\n })\n });\n};\nconst HelperLink = /* @__PURE__ */StyledAnchor(props => {\n const theme = useCustomTheme();\n return {\n all: \"unset\",\n cursor: \"pointer\",\n color: theme.colors.accentText,\n fontSize: props.md ? fontSize.md : fontSize.sm,\n textDecoration: \"none\",\n display: \"block\",\n lineHeight: 1.5,\n [media.mobile]: {\n textAlign: \"center\"\n },\n \"&:hover\": {\n color: theme.colors.primaryText,\n textDecoration: \"none\"\n }\n };\n});\n\nconst Img = props => {\n const storage = useStorage();\n const getSrc = () => {\n try {\n return storage ? storage.resolveScheme(props.src) : props.src.replace(\"ipfs://\", \"https://ipfs.io/ipfs/\");\n } catch {\n return props.src;\n }\n };\n return /*#__PURE__*/jsx(\"img\", {\n width: props.width,\n height: props.height,\n src: getSrc(),\n alt: props.alt || \"\",\n loading: props.loading,\n decoding: \"async\",\n style: {\n height: props.height ? props.height + \"px\" : undefined,\n width: props.width ? props.width + \"px\" : undefined,\n userSelect: \"none\",\n ...props.style\n },\n draggable: false,\n className: props.className\n });\n};\n\nconst floatUpAnimation = keyframes`\n from {\n opacity: 0;\n transform: translateY(20%) scale(0.8) ;\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n`;\nconst floatDownAnimation = keyframes`\n from {\n opacity: 0;\n transform: translateY(-20%) scale(0.8) ;\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n`;\nconst fadeInAnimation = keyframes`\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n`;\n\nconst ScreenBottomContainer = /* @__PURE__ */StyledDiv(() => {\n const theme = useCustomTheme();\n return {\n borderTop: `1px solid ${theme.colors.separatorLine}`,\n display: \"flex\",\n flexDirection: \"column\",\n gap: spacing.lg,\n padding: spacing.lg\n };\n});\nconst noScrollBar = {\n scrollbarWidth: \"none\",\n \"&::-webkit-scrollbar\": {\n width: 0,\n display: \"none\"\n }\n};\nfunction ModalHeader(props) {\n const {\n onBack,\n title,\n imgSrc\n } = props;\n return /*#__PURE__*/jsxs(\"div\", {\n style: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n position: \"relative\"\n },\n children: [onBack && /*#__PURE__*/jsx(BackButton, {\n onClick: onBack,\n style: {\n position: \"absolute\",\n left: 0,\n top: 0\n }\n }), /*#__PURE__*/jsxs(Container, {\n flex: \"row\",\n gap: \"xs\",\n center: \"both\",\n children: [imgSrc && /*#__PURE__*/jsx(Img, {\n src: imgSrc,\n width: iconSize.md,\n height: iconSize.md\n }), typeof title === \"string\" ? /*#__PURE__*/jsx(ModalTitle, {\n children: title\n }) : title]\n })]\n });\n}\nconst Line = /* @__PURE__ */StyledDiv(() => {\n const theme = useCustomTheme();\n return {\n height: \"1px\",\n background: theme.colors.separatorLine\n };\n});\nfunction Container(props) {\n const styles = {};\n if (props.relative) {\n styles.position = \"relative\";\n }\n if (props.fullHeight) {\n styles.height = \"100%\";\n }\n if (props.expand) {\n styles.flex = \"1 1 0%\";\n }\n if (props.flex) {\n styles.display = \"flex\";\n styles.flexDirection = props.flex;\n if (props.flex === \"row\") {\n styles.flexWrap = \"wrap\";\n }\n if (props.gap) {\n styles.gap = spacing[props.gap];\n }\n if (props.center) {\n if (props.center === \"both\") {\n styles.justifyContent = \"center\";\n styles.alignItems = \"center\";\n }\n if (props.center === \"x\" && props.flex === \"row\" || props.center === \"y\" && props.flex === \"column\") {\n styles.justifyContent = \"center\";\n }\n if (props.center === \"x\" && props.flex === \"column\" || props.center === \"y\" && props.flex === \"row\") {\n styles.alignItems = \"center\";\n }\n }\n }\n if (props.p) {\n styles.padding = spacing[props.p];\n }\n if (props.px) {\n styles.paddingLeft = spacing[props.px];\n styles.paddingRight = spacing[props.px];\n }\n if (props.py) {\n styles.paddingTop = spacing[props.py];\n styles.paddingBottom = spacing[props.py];\n }\n if (props.debug) {\n styles.outline = \"1px solid red\";\n styles.outlineOffset = \"-1px\";\n }\n return /*#__PURE__*/jsx(Box, {\n \"data-scrolly\": props.scrollY,\n \"data-animate\": props.animate,\n color: props.color,\n style: {\n ...styles,\n ...props.style\n },\n children: props.children\n });\n}\nconst Box = /* @__PURE__ */StyledDiv(props => {\n const theme = useCustomTheme();\n return {\n color: props.color ? theme.colors[props.color] : \"inherit\",\n \"&[data-animate='fadein']\": {\n opacity: 0,\n animation: `${fadeInAnimation} 350ms ease forwards`\n },\n \"&[data-animate='floatup']\": {\n opacity: 0,\n animation: `${floatUpAnimation} 350ms ease forwards`\n },\n \"&[data-animate='floatdown']\": {\n opacity: 0,\n animation: `${floatDownAnimation} 350ms ease forwards`\n },\n \"&[data-scrolly='true']\": {\n overflowY: \"auto\",\n ...noScrollBar\n }\n };\n});\n\nconst Text = /* @__PURE__ */StyledSpan(p => {\n const theme = useCustomTheme();\n return {\n fontSize: fontSize[p.size || \"md\"],\n color: theme.colors[p.color || \"secondaryText\"],\n margin: 0,\n display: p.inline ? \"inline\" : \"block\",\n fontWeight: p.weight || 500,\n lineHeight: p.multiline ? 1.5 : \"normal\",\n textAlign: p.center ? \"center\" : \"left\",\n textWrap: p.balance ? \"balance\" : \"inherit\",\n maxWidth: \"100%\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\"\n };\n});\nconst Link = /* @__PURE__ */StyledAnchor(p => {\n const theme = useCustomTheme();\n return {\n all: \"unset\",\n cursor: \"pointer\",\n color: theme.colors[p.color || \"accentText\"],\n fontSize: fontSize[p.size || \"md\"],\n textDecoration: \"none\",\n textAlign: p.center ? \"center\" : \"left\",\n display: p.inline ? \"inline\" : \"block\",\n fontWeight: p.weight || 500,\n lineHeight: \"normal\",\n transition: \"color 0.2s ease\",\n \"&:hover\": {\n color: theme.colors[p.hoverColor || \"primaryText\"],\n textDecoration: \"none\"\n }\n };\n});\n\nfunction detectEnv(userAgent) {\n return detect(userAgent);\n}\n\n/**\n * @internal\n */\nfunction isAndroid() {\n const os = detectOS();\n return os ? os.toLowerCase().includes(\"android\") : false;\n}\n\n/**\n * @internal\n */\nfunction isIOS() {\n const os = detectOS();\n return os ? os.toLowerCase().includes(\"ios\") || os.toLowerCase().includes(\"mac\") && navigator.maxTouchPoints > 1 : false;\n}\n\n/**\n * @internal\n */\nfunction detectOS() {\n const env = detectEnv();\n return env?.os ? env.os : undefined;\n}\n\n/**\n * @internal\n */\nfunction isMobile() {\n const os = detectOS();\n return os ? isAndroid() || isIOS() : false;\n}\n\n/**\n * Create a new object with given overrides object applied on top of given base object without mutating the base and overrides object\n *\n * @param defaultObj - The object to use as the base object\n * @param overrides - The object to use as the overrides\n */\nfunction immutableOverride(defaultObj, overrides) {\n const output = {\n ...defaultObj\n };\n for (const key in overrides) {\n const value = overrides[key];\n // only apply overrides if it is not undefined\n if (value !== undefined) {\n // partially apply overrides object\n if (typeof value === \"object\" && value !== null) {\n output[key] = immutableOverride(defaultObj[key], value);\n }\n // completely override non-object values\n else {\n output[key] = value;\n }\n }\n }\n return output;\n}\n\n// wallets that connect via extension and QR scan\nfunction extensionAndQRScanScreens(walletName) {\n return {\n connectionScreen: {\n inProgress: \"Awaiting Confirmation\",\n failed: \"Connection failed\",\n instruction: `Accept the connection request in ${walletName} wallet`,\n retry: \"Try Again\"\n },\n getStartedScreen: {\n instruction: `Scan the QR code to download ${walletName} app`\n },\n scanScreen: {\n instruction: `Scan the QR code with ${walletName} wallet app to connect`\n },\n getStartedLink: `Don't have ${walletName} wallet?`\n };\n}\nfunction enDefault() {\n return {\n connectWallet: {\n signIn: \"Sign in\",\n defaultButtonTitle: \"Connect Wallet\",\n connecting: \"Connecting\",\n switchNetwork: \"Switch Network\",\n switchingNetwork: \"Switching Network\",\n defaultModalTitle: \"Connect\",\n recommended: \"Recommended\",\n installed: \"Installed\",\n continueAsGuest: \"Continue as guest\",\n connectAWallet: \"Connect a wallet\",\n newToWallets: \"New to wallets?\",\n getStarted: \"Get started\",\n guest: \"Guest\",\n send: \"Send\",\n receive: \"Receive\",\n currentNetwork: \"Current network\",\n switchAccount: \"Switch Account\",\n requestTestnetFunds: \"Request Testnet Funds\",\n transactionHistory: \"Transaction History\",\n backupWallet: \"Backup Wallet\",\n guestWalletWarning: \"This is a temporary guest wallet. Backup if you don't want to lose access to it\",\n switchTo: \"Switch to\",\n // Used in \"Switch to \"\n connectedToSmartWallet: \"Connected To Smart Wallet\",\n confirmInWallet: \"Confirm in wallet\",\n disconnectWallet: \"Disconnect Wallet\",\n copyAddress: \"Copy Address\",\n personalWallet: \"Personal Wallet\",\n smartWallet: \"Smart Wallet\",\n or: \"OR\",\n goBackButton: \"Back\",\n download: {\n chrome: \"Download Chrome Extension\",\n android: \"Download on Google Play\",\n iOS: \"Download on App Store\"\n },\n welcomeScreen: {\n defaultTitle: \"Your gateway to the decentralized world\",\n defaultSubtitle: \"Connect a wallet to get started\"\n },\n agreement: {\n prefix: \"By connecting, you agree to the\",\n termsOfService: \"Terms of Service\",\n and: \"&\",\n privacyPolicy: \"Privacy Policy\"\n },\n networkSelector: {\n title: \"Select Network\",\n mainnets: \"Mainnets\",\n testnets: \"Testnets\",\n allNetworks: \"All\",\n addCustomNetwork: \"Add Custom Network\",\n inputPlaceholder: \"Search Network or Chain ID\",\n categoryLabel: {\n recentlyUsed: \"Recently Used\",\n popular: \"Popular\",\n others: \"All Networks\"\n },\n loading: \"Loading\",\n failedToSwitch: \"Failed to switch network\"\n },\n receiveFundsScreen: {\n title: \"Receive Funds\",\n instruction: \"Copy the wallet address to send funds to this wallet\"\n },\n sendFundsScreen: {\n title: \"Send Funds\",\n submitButton: \"Send\",\n token: \"Token\",\n sendTo: \"Send to\",\n amount: \"Amount\",\n successMessage: \"Transaction Successful\",\n invalidAddress: \"Invalid Address\",\n noTokensFound: \"No Tokens Found\",\n searchToken: \"Search or Paste token address\",\n transactionFailed: \"Transaction Failed\",\n transactionRejected: \"Transaction Rejected\",\n insufficientFunds: \"Insufficient Funds\",\n selectTokenTitle: \"Select a Token\",\n sending: \"Sending\"\n },\n signatureScreen: {\n instructionScreen: {\n title: \"Sign in\",\n instruction: \"Please sign the message request in your wallet to continue\",\n signInButton: \"Sign in\",\n disconnectWallet: \"Disconnect Wallet\"\n },\n signingScreen: {\n title: \"Signing In\",\n prompt: \"Sign the signature request in your wallet\",\n promptForSafe: \"Sign signature request in your wallet & approve transaction in Safe\",\n approveTransactionInSafe: \"Approve transaction in Safe\",\n tryAgain: \"Try Again\",\n failedToSignIn: \"Failed to Sign in\",\n inProgress: \"Awaiting Confirmation\"\n }\n }\n },\n wallets: {\n walletConnect: {\n scanInstruction: \"Scan this with your wallet app to connect\"\n },\n smartWallet: {\n connecting: \"Connecting to Smart Wallet\",\n failedToConnect: \"Failed to connect to Smart Wallet\",\n wrongNetworkScreen: {\n title: \"Wrong Network\",\n subtitle: \"Your wallet is not connected to the required network\",\n failedToSwitch: \"Failed to switch network\"\n }\n },\n safeWallet: {\n connectWalletScreen: {\n title: \"Link personal wallet\",\n subtitle: \"Connect your personal wallet to use Safe.\",\n learnMoreLink: \"Learn more\"\n },\n accountDetailsScreen: {\n title: \"Enter your safe details\",\n findSafeAddressIn: \"You can find your safe address in\",\n // You can find your safe address in + \n dashboardLink: \"Safe Dashboard\",\n // \n network: \"Safe Network\",\n selectNetworkPlaceholder: \"Network your safe is deployed to\",\n invalidChainConfig: \"Can not use Safe: No Safe supported chains are configured in App\",\n failedToConnect: \"Could not connect to Safe. Make sure safe address and network are correct.\",\n failedToSwitch: \"Failed to switch network\",\n switchNetwork: \"Switch Network\",\n switchingNetwork: \"Switching Network\",\n connectToSafe: \"Connect to Safe\",\n connecting: \"Connecting\",\n mainnets: \"Mainnets\",\n testnets: \"Testnets\",\n safeAddress: \"Safe Address\"\n }\n },\n coinbaseWallet: extensionAndQRScanScreens(\"Coinbase\"),\n metamaskWallet: extensionAndQRScanScreens(\"MetaMask\"),\n okxWallet: extensionAndQRScanScreens(\"OKX\"),\n phantomWallet: extensionAndQRScanScreens(\"Phantom\"),\n rainbowWallet: extensionAndQRScanScreens(\"Rainbow\"),\n trustWallet: extensionAndQRScanScreens(\"Trust\"),\n zerionWallet: extensionAndQRScanScreens(\"Zerion\"),\n coreWallet: extensionAndQRScanScreens(\"Core\"),\n oneKeyWallet: extensionAndQRScanScreens(\"OneKey\"),\n cryptoDefiWallet: extensionAndQRScanScreens(\"Crypto Defi\"),\n rabbyWallet: extensionAndQRScanScreens(\"Rabby\"),\n coin98Wallet: extensionAndQRScanScreens(\"Coin98\"),\n paperWallet: {\n signIn: \"Sign in\",\n signInWithGoogle: \"Sign in with Google\",\n emailPlaceholder: \"Enter your email address\",\n submitEmail: \"Continue\",\n invalidEmail: \"Invalid email address\",\n emailRequired: \"Email address is required\",\n googleLoginScreen: {\n title: \"Sign in\",\n instruction: \"Select your Google account in the pop-up\",\n failed: \"Failed to sign in\",\n retry: \"Retry\"\n },\n emailLoginScreen: {\n title: \"Sign in\",\n enterCodeSendTo: \"Enter the verification code sent to\",\n // Enter the verification code sent to + \n newDeviceDetected: \"New device detected\",\n enterRecoveryCode: \"Enter the recovery code emailed to you when you first signed up\",\n invalidCode: \"Invalid verification code\",\n invalidCodeOrRecoveryCode: \"Invalid verification code or Recovery code\",\n verify: \"Verify\",\n failedToSendCode: \"Failed to send verification code\",\n sendingCode: \"Sending verification code\",\n resendCode: \"Resend verification code\"\n }\n },\n embeddedWallet: {\n signInWithGoogle: \"Sign in with Google\",\n signInWithFacebook: \"Sign in with Facebook\",\n signInWithApple: \"Sign in with Apple\",\n emailPlaceholder: \"Enter your email address\",\n submitEmail: \"Continue\",\n signIn: \"Sign in\",\n emailRequired: \"Email address is required\",\n invalidEmail: \"Invalid email address\",\n socialLoginScreen: {\n title: \"Sign in\",\n instruction: \"Sign into your account in the pop-up\",\n failed: \"Failed to sign in\",\n retry: \"Retry\"\n },\n emailLoginScreen: {\n title: \"Sign in\",\n enterCodeSendTo: \"Enter the verification code sent to\",\n newDeviceDetected: \"New device detected\",\n enterRecoveryCode: \"Enter the recovery code emailed to you when you first signed up\",\n invalidCode: \"Invalid verification code\",\n invalidCodeOrRecoveryCode: \"Invalid verification code or Recovery code\",\n verify: \"Verify\",\n failedToSendCode: \"Failed to send verification code\",\n sendingCode: \"Sending verification code\",\n resendCode: \"Resend verification code\"\n },\n createPassword: {\n title: \"Create Password\",\n instruction: \"Set a password for your account. You will need this password when connecting from a new device.\",\n saveInstruction: \"Make sure to save it\",\n inputPlaceholder: \"Enter your password\",\n confirmation: \"I have saved my password\",\n submitButton: \"Set Password\",\n failedToSetPassword: \"Failed to set password\"\n },\n enterPassword: {\n title: \"Enter Password\",\n instruction: \"Enter the password for your account\",\n inputPlaceholder: \"Enter your password\",\n submitButton: \"Verify\",\n wrongPassword: \"Wrong password\"\n }\n },\n magicLink: {\n signIn: \"Sign in\",\n loginWith: \"Login with\",\n submitEmail: \"Continue\",\n loginWithEmailOrPhone: \"Login with email or phone number\",\n emailOrPhoneRequired: \"email or phone number is required\",\n loginWithPhone: \"Login with phone number\",\n phoneRequired: \"phone number is required\",\n invalidEmail: \"Invalid email address\",\n invalidPhone: \"Invalid phone number\",\n invalidEmailOrPhone: \"Invalid email address or phone number\",\n countryCodeMissing: \"Phone number must start with a country code\",\n emailPlaceholder: \"Enter your email address\",\n emailRequired: \"Email address is required\"\n },\n localWallet: {\n passwordLabel: \"Password\",\n confirmPasswordLabel: \"Confirm Password\",\n enterYourPassword: \"Enter your password\",\n warningScreen: {\n title: \"Warning\",\n warning: \"Your current wallet will be deleted if you create a new wallet. Backup wallet to your device before creating a new wallet\",\n backupWallet: \"Backup Wallet\"\n },\n reconnectScreen: {\n title: \"Connect to saved wallet\",\n savedWallet: \"Saved Wallet\",\n continue: \"Continue\",\n createNewWallet: \"Create a new wallet\"\n },\n createScreen: {\n instruction: \"Choose a password for your wallet. You'll be able to access and export this wallet with the same password\",\n importWallet: \"Import Wallet\",\n createNewWallet: \"Create new wallet\",\n connecting: \"Connecting\"\n },\n exportScreen: {\n description1: \"This will download a JSON file containing the wallet information onto your device encrypted with the password\",\n description2: \"You can use this JSON file to import the account in MetaMask using the same password\",\n walletAddress: \"Wallet Address\",\n download: \"Download\",\n title: \"Backup Wallet\"\n },\n importScreen: {\n title: \"Import Wallet\",\n description1: \"The application can authorize any transactions on behalf of the wallet without any approvals\",\n description2: \"We recommend only connecting to trusted applications\",\n import: \"Import\",\n uploadJSON: \"Please upload a JSON file\",\n uploadedSuccessfully: \"Uploaded successfully\"\n }\n },\n frameWallet: {\n ...extensionAndQRScanScreens(\"Frame\"),\n connectionFailedScreen: {\n title: \"Failed to connect to Frame\",\n description: \"Make sure the desktop app is installed and running. You can download Frame from the link below. Make sure to refresh this page once Frame is running.\",\n downloadFrame: \"Download Frame\",\n supportLink: \"Still having troubles connecting?\"\n }\n }\n }\n };\n}\n\n/**\n * Calling this function will return the default English locale object to be set on [`ThirdwebProvider`](https://portal.thirdweb.com/react/v4/ThirdwebProvider) to localize the thirdweb components.\n *\n * You can also overrides parts of the default locale object by passing an object with the same structure as the default locale object and only those parts will be overridden.\n *\n * @example\n * ### Use default Locale\n * ```tsx\n * const english = en();\n * ```\n *\n * ### Override Locale\n * ```ts\n * const english = en({\n * connectWallet: {\n * signIn: \"Sign in!\"\n * }\n * })\n * ```\n *\n * Pass it to [`ThirdwebProvider`](https://portal.thirdweb.com/react/v4/ThirdwebProvider)'s `locale` prop to localize the thirdweb components.\n *\n * ```tsx\n * function Example() {\n * return (\n * \n * \n * \n * )\n * }\n * ```\n *\n * @locale\n */\nfunction en(overrides) {\n const defaultObj = enDefault();\n if (!overrides) {\n return defaultObj;\n }\n return immutableOverride(defaultObj, overrides);\n}\n\nconst ThirdwebLocaleContext = /* @__PURE__ */(() => /*#__PURE__*/createContext(enDefault()))();\nfunction useTWLocale() {\n return useContext(ThirdwebLocaleContext);\n}\n\nconst WalletModalOpen = /* @__PURE__ */createContext(false);\nconst SetWalletModalOpen = /* @__PURE__ */createContext(undefined);\nconst ModalConfigCtx = /* @__PURE__ */createContext({\n title: \"\",\n theme: \"dark\",\n data: undefined,\n modalSize: \"wide\"\n});\nconst SetModalConfigCtx = /* @__PURE__ */createContext(() => {});\nconst WalletUIStatesProvider = props => {\n const [isWalletModalOpen, setIsWalletModalOpen] = useState(false);\n const _isMobile = isMobile();\n const locale = useTWLocale();\n const [modalConfig, setModalConfig] = useState({\n title: props.title || locale.connectWallet.defaultModalTitle,\n theme: props.theme || \"dark\",\n data: undefined,\n modalSize: (_isMobile ? \"compact\" : props.modalSize) || \"wide\",\n termsOfServiceUrl: props.termsOfServiceUrl,\n privacyPolicyUrl: props.privacyPolicyUrl,\n welcomeScreen: props.welcomeScreen,\n titleIconUrl: props.titleIconUrl,\n isEmbed: props.isEmbed,\n auth: props.auth,\n onConnect: props.onConnect\n });\n return /*#__PURE__*/jsx(WalletModalOpen.Provider, {\n value: isWalletModalOpen,\n children: /*#__PURE__*/jsx(SetWalletModalOpen.Provider, {\n value: setIsWalletModalOpen,\n children: /*#__PURE__*/jsx(ModalConfigCtx.Provider, {\n value: modalConfig,\n children: /*#__PURE__*/jsx(SetModalConfigCtx.Provider, {\n value: setModalConfig,\n children: props.children\n })\n })\n })\n });\n};\n\n/**\n * Check if the [`ConnectWallet`](https://portal.thirdweb.com/react/v4/components/ConnectWallet) Modal is open or not\n *\n * @example\n * ```tsx\n * const isOpen = useIsWalletModalOpen();\n * ```\n *\n * @returns `true` if the [`ConnectWallet`](https://portal.thirdweb.com/react/v4/components/ConnectWallet) modal is open, `false` otherwise\n * @connectWallet\n */\nconst useIsWalletModalOpen = () => {\n return useContext(WalletModalOpen);\n};\n\n/**\n * Open or close the [`ConnectWallet`](https://portal.thirdweb.com/react/v4/components/ConnectWallet) Modal\n *\n * @example\n * ```tsx\n * const setIsWalletModalOpen = useSetIsWalletModalOpen();\n *\n * function openModal() {\n * setIsWalletModalOpen(true);\n * }\n *\n * function closeModal() {\n * setIsWalletModalOpen(false);\n * }\n *\n * return (\n *

\n * \n * \n *
\n * )\n * ```\n *\n * @returns Function to open or close the modal\n * @connectWallet\n */\nconst useSetIsWalletModalOpen = () => {\n const context = useContext(SetWalletModalOpen);\n if (context === undefined) {\n throw new Error(\"useSetWalletModalOpen must be used within a ThirdwebProvider\");\n }\n return context;\n};\n\nconst Spinner = props => {\n const theme = useCustomTheme();\n return /*#__PURE__*/jsx(Svg, {\n style: {\n width: iconSize[props.size] + \"px\",\n height: iconSize[props.size] + \"px\"\n },\n viewBox: \"0 0 50 50\",\n children: /*#__PURE__*/jsx(Circle, {\n cx: \"25\",\n cy: \"25\",\n r: \"20\",\n fill: \"none\",\n stroke: theme.colors[props.color],\n strokeWidth: \"4\"\n })\n });\n};\n\n// animations\nconst dashAnimation = keyframes`\n 0% {\n stroke-dasharray: 1, 150;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 90, 150;\n stroke-dashoffset: -35;\n }\n 100% {\n stroke-dasharray: 90, 150;\n stroke-dashoffset: -124;\n }\n`;\nconst rotateAnimation = keyframes`\n 100% {\n transform: rotate(360deg);\n }\n`;\nconst Svg = /* @__PURE__ */StyledSvg({\n animation: `${rotateAnimation} 2s linear infinite`,\n width: \"1em\",\n height: \"1em\"\n});\nconst Circle = /* @__PURE__ */StyledCircle({\n strokeLinecap: \"round\",\n animation: `${dashAnimation} 1.5s ease-in-out infinite`\n});\n\nconst TWIcon = props => {\n return /*#__PURE__*/jsxs(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: props.size,\n height: props.size,\n viewBox: \"0 0 27 16\",\n fill: \"none\",\n children: [/*#__PURE__*/jsx(\"path\", {\n d: \"M13.6891 0C13.8482 0.0317795 13.9983 0.0957213 14.1292 0.1875C14.2768 0.297724 14.39 0.444328 14.4563 0.611413C14.8718 1.60272 15.2885 2.59348 15.7064 3.5837L17.0986 6.89022C17.3418 7.46902 17.5832 8.0462 17.8298 8.62337C17.8823 8.74121 17.9094 8.86791 17.9094 8.99592C17.9094 9.12393 17.8823 9.25064 17.8298 9.36848C17.1243 11.0446 16.4182 12.7217 15.7115 14.4C15.654 14.5572 15.5516 14.696 15.4157 14.8009C15.2799 14.9057 15.1161 14.9724 14.9426 14.9935C14.7283 15.0315 14.5068 14.9982 14.3153 14.899C14.1238 14.7998 13.9741 14.6409 13.8912 14.4489C13.4939 13.5196 13.1052 12.587 12.713 11.6543C12.0463 10.075 11.3813 8.49456 10.718 6.91304C10.1255 5.50543 9.5336 4.09891 8.94223 2.69348C8.7453 2.22717 8.55522 1.75761 8.34973 1.29293C8.29321 1.16705 8.26644 1.03087 8.27132 0.894047C8.27619 0.757221 8.31259 0.623087 8.37794 0.501137C8.44329 0.379187 8.53599 0.272402 8.64948 0.188339C8.76297 0.104275 8.89448 0.0449885 9.03471 0.0146733C9.05183 0.0146733 9.06724 0.0048913 9.08437 0H13.6891Z\",\n fill: \"currentColor\"\n }), /*#__PURE__*/jsx(\"path\", {\n d: \"M5.42129 0C5.47438 0.0146739 5.52575 0.0260873 5.57712 0.0423917C5.71022 0.0819151 5.83236 0.14928 5.93458 0.239555C6.0368 0.329829 6.11653 0.440727 6.16791 0.56413C6.62457 1.63913 7.07779 2.71413 7.52759 3.78913C7.97739 4.86413 8.43404 5.95109 8.89755 7.05L9.57053 8.64456C9.62093 8.75806 9.6469 8.88004 9.6469 9.00326C9.6469 9.12648 9.62093 9.24846 9.57053 9.36196C9.32052 9.9587 9.06936 10.5565 8.81706 11.1554L7.43512 14.431C7.36255 14.6012 7.23853 14.7471 7.07879 14.8501C6.91904 14.9532 6.73075 15.0087 6.5378 15.0098C6.33426 15.0125 6.13478 14.9554 5.96654 14.8463C5.7983 14.7372 5.6695 14.5814 5.59767 14.4C5.16956 13.3712 4.74145 12.344 4.30307 11.3168L2.54781 7.14946L0.763448 2.91033C0.539118 2.37554 0.314789 1.83913 0.0784718 1.30435C-0.0212674 1.08161 -0.026107 0.830668 0.0649731 0.604591C0.156053 0.378515 0.335913 0.195028 0.566519 0.0929347C0.650596 0.0604572 0.73701 0.0337587 0.825096 0.0130438L5.42129 0Z\",\n fill: \"currentColor\"\n }), /*#__PURE__*/jsx(\"path\", {\n d: \"M26.0098 9.14348C25.8865 9.54782 25.7067 9.92935 25.5355 10.3239C25.0708 11.4315 24.6033 12.5397 24.133 13.6484C24.0251 13.9109 23.9155 14.1554 23.811 14.4114C23.7364 14.591 23.605 14.744 23.4351 14.8495C23.2651 14.9549 23.065 15.0075 22.8623 15C22.6689 14.995 22.4813 14.9353 22.3237 14.8284C22.166 14.7216 22.0453 14.5724 21.977 14.4C21.2989 12.7848 20.6196 11.1696 19.9392 9.55435C19.3524 8.16522 18.7633 6.77283 18.172 5.37717C17.6011 4.01087 17.0303 2.64456 16.4595 1.27826C16.4042 1.15338 16.3784 1.01844 16.3839 0.882999C16.3895 0.747561 16.4262 0.614939 16.4916 0.494528C16.5569 0.374117 16.6493 0.268861 16.7621 0.186219C16.875 0.103577 17.0055 0.0455688 17.1445 0.0163041L17.201 0H21.8023L21.8451 0.0130438C22.0073 0.0455066 22.158 0.116718 22.2833 0.219974C22.4085 0.32323 22.504 0.455132 22.5609 0.60326C22.8281 1.23913 23.0964 1.87554 23.3658 2.5125C24.0679 4.18206 24.77 5.85163 25.4721 7.52119C25.657 7.96141 25.8625 8.39348 26.0132 8.84511L26.0098 9.14348Z\",\n fill: \"currentColor\"\n })]\n });\n};\n\nconst TextDivider = props => {\n return /*#__PURE__*/jsx(TextDividerEl, {\n style: {\n paddingBlock: props.py ? spacing[props.py] : 0\n },\n children: /*#__PURE__*/jsxs(\"span\", {\n children: [\" \", props.text]\n })\n });\n};\nconst TextDividerEl = /* @__PURE__ */StyledDiv(() => {\n const theme = useCustomTheme();\n return {\n display: \"flex\",\n alignItems: \"center\",\n color: theme.colors.secondaryText,\n fontSize: fontSize.sm,\n \"&::before, &::after\": {\n content: '\"\"',\n flex: 1,\n borderBottom: `1px solid ${theme.colors.separatorLine}`\n },\n span: {\n margin: \"0 16px\"\n }\n };\n});\n\nfunction TOS(props) {\n const {\n termsOfServiceUrl,\n privacyPolicyUrl\n } = props;\n const locale = useTWLocale().connectWallet.agreement;\n if (!termsOfServiceUrl && !privacyPolicyUrl) {\n return null;\n }\n const bothGiven = termsOfServiceUrl && privacyPolicyUrl;\n return /*#__PURE__*/jsx(Container, {\n flex: \"row\",\n center: \"x\",\n children: /*#__PURE__*/jsxs(Text, {\n size: \"xs\",\n multiline: true,\n balance: true,\n inline: true,\n center: true,\n style: {\n maxWidth: \"250px\"\n },\n children: [locale.prefix, \" \", termsOfServiceUrl && /*#__PURE__*/jsxs(Link, {\n inline: true,\n size: \"xs\",\n href: termsOfServiceUrl,\n target: \"_blank\",\n style: {\n whiteSpace: \"nowrap\"\n },\n children: [\" \", locale.termsOfService, \" \"]\n }), bothGiven && locale.and + \" \", privacyPolicyUrl && /*#__PURE__*/jsx(Link, {\n inline: true,\n size: \"xs\",\n href: privacyPolicyUrl,\n target: \"_blank\",\n children: locale.privacyPolicy\n })]\n })\n });\n}\n\nconst WalletSelector = props => {\n const modalConfig = useContext(ModalConfigCtx);\n const isCompact = modalConfig.modalSize === \"compact\";\n const {\n termsOfServiceUrl,\n privacyPolicyUrl\n } = modalConfig;\n const [isWalletGroupExpanded, setIsWalletGroupExpanded] = useState(false);\n const disconnect = useDisconnect();\n const connectionStatus = useConnectionStatus();\n const locale = useTWLocale().connectWallet;\n const localWalletConfig = props.walletConfigs.find(w => w.id === walletIds.localWallet);\n const nonLocalWalletConfigs = props.walletConfigs.filter(w => w.id !== walletIds.localWallet);\n const socialWallets = nonLocalWalletConfigs.filter(w => w.category === \"socialLogin\");\n const eoaWallets = sortWalletConfigs(nonLocalWalletConfigs.filter(w => w.category !== \"socialLogin\"));\n const continueAsGuest = localWalletConfig && /*#__PURE__*/jsx(Button, {\n fullWidth: true,\n variant: isCompact ? \"outline\" : \"link\",\n style: !isCompact ? {\n textAlign: \"left\",\n justifyContent: \"flex-start\"\n } : undefined,\n onClick: () => {\n props.selectWallet(localWalletConfig);\n },\n \"data-test\": \"continue-as-guest-button\",\n children: locale.continueAsGuest\n });\n\n // prevent accidental clicks on the TW icon when clicking on back icon from previous screen\n const enableTWIconLink = useRef(false);\n useEffect(() => {\n setTimeout(() => {\n enableTWIconLink.current = true;\n }, 1000);\n }, []);\n const twTitle = /*#__PURE__*/jsxs(Container, {\n gap: \"xxs\",\n center: \"y\",\n flex: \"row\",\n children: [modalConfig.titleIconUrl === undefined ? /*#__PURE__*/jsx(Link, {\n color: \"primaryText\",\n hoverColor: \"accentText\",\n target: \"_blank\",\n href: \"https://thirdweb.com/connect?utm_source=cw\",\n style: {\n display: \"flex\",\n alignItems: \"center\"\n },\n onClick: e => {\n if (!enableTWIconLink.current) {\n e.preventDefault();\n }\n },\n children: /*#__PURE__*/jsx(TWIcon, {\n size: iconSize.md\n })\n }) : modalConfig.titleIconUrl === \"\" ? null : /*#__PURE__*/jsx(Img, {\n src: modalConfig.titleIconUrl,\n width: iconSize.md,\n height: iconSize.md\n }), /*#__PURE__*/jsxs(ModalTitle, {\n children: [\" \", props.title, \" \"]\n })]\n });\n const handleSelect = async wallet => {\n if (connectionStatus !== \"disconnected\") {\n await disconnect();\n }\n props.selectWallet(wallet);\n };\n const connectAWallet = /*#__PURE__*/jsxs(Button, {\n fullWidth: true,\n variant: \"outline\",\n style: {\n display: \"flex\",\n justifyContent: \"center\",\n gap: spacing.sm,\n padding: spacing.md\n },\n onClick: () => {\n setIsWalletGroupExpanded(true);\n },\n children: [/*#__PURE__*/jsx(Container, {\n flex: \"row\",\n gap: \"xxs\",\n children: eoaWallets.slice(0, 2).map(w => /*#__PURE__*/jsx(Img, {\n width: iconSize.sm,\n height: iconSize.sm,\n src: w.meta.iconURL\n }, w.id))\n }), locale.connectAWallet]\n });\n const newToWallets = /*#__PURE__*/jsxs(Container, {\n flex: \"row\",\n style: {\n justifyContent: \"space-between\"\n },\n children: [/*#__PURE__*/jsx(Text, {\n color: \"secondaryText\",\n size: \"sm\",\n weight: 500,\n children: locale.newToWallets\n }), /*#__PURE__*/jsx(Link, {\n weight: 500,\n size: \"sm\",\n target: \"_blank\",\n href: \"https://blog.thirdweb.com/web3-wallet/\",\n children: locale.getStarted\n })]\n });\n const tos = termsOfServiceUrl || privacyPolicyUrl ? /*#__PURE__*/jsx(TOS, {\n termsOfServiceUrl: termsOfServiceUrl,\n privacyPolicyUrl: privacyPolicyUrl\n }) : undefined;\n let topSection;\n let bottomSection;\n\n // wide modal\n if (!isCompact) {\n topSection = /*#__PURE__*/jsx(WalletSelection, {\n walletConfigs: nonLocalWalletConfigs,\n selectWallet: handleSelect,\n selectUIProps: props.selectUIProps\n });\n if (continueAsGuest) {\n bottomSection = /*#__PURE__*/jsx(ScreenBottomContainer, {\n children: continueAsGuest\n });\n }\n }\n\n // compact\n else {\n // no social logins\n if (socialWallets.length === 0) {\n topSection = /*#__PURE__*/jsx(WalletSelection, {\n walletConfigs: nonLocalWalletConfigs,\n selectWallet: handleSelect,\n selectUIProps: props.selectUIProps\n });\n bottomSection = /*#__PURE__*/jsxs(Fragment, {\n children: [/*#__PURE__*/jsx(Line, {}), /*#__PURE__*/jsxs(Container, {\n flex: \"column\",\n p: \"lg\",\n gap: \"lg\",\n children: [newToWallets, continueAsGuest]\n }), !continueAsGuest && /*#__PURE__*/jsx(Line, {}), tos && /*#__PURE__*/jsx(Container, {\n px: \"md\",\n style: {\n paddingBottom: spacing.md,\n paddingTop: continueAsGuest ? 0 : spacing.md\n },\n children: tos\n })]\n });\n }\n\n // social logins\n else {\n // not expanded state\n if (!isWalletGroupExpanded) {\n topSection = /*#__PURE__*/jsxs(Container, {\n px: \"xs\",\n children: [/*#__PURE__*/jsx(WalletSelection, {\n walletConfigs: socialWallets,\n selectWallet: handleSelect,\n selectUIProps: props.selectUIProps\n }), eoaWallets.length > 0 && /*#__PURE__*/jsxs(Fragment, {\n children: [/*#__PURE__*/jsx(TextDivider, {\n text: locale.or\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"lg\"\n })]\n })]\n });\n\n // only social login - no eoa wallets\n if (eoaWallets.length === 0) {\n bottomSection = tos || continueAsGuest ? /*#__PURE__*/jsxs(Fragment, {\n children: [/*#__PURE__*/jsx(Spacer, {\n y: \"md\"\n }), /*#__PURE__*/jsx(Line, {}), continueAsGuest && /*#__PURE__*/jsxs(Container, {\n p: \"lg\",\n children: [\" \", continueAsGuest]\n }), tos && /*#__PURE__*/jsxs(Container, {\n p: \"md\",\n children: [\" \", tos, \" \"]\n })]\n }) : /*#__PURE__*/jsx(Spacer, {\n y: \"sm\"\n });\n }\n\n // social login + eoa wallets\n else {\n // social login + More than 1 eoa wallets\n if (eoaWallets.length > 1) {\n bottomSection = /*#__PURE__*/jsxs(Container, {\n flex: \"column\",\n gap: \"sm\",\n children: [/*#__PURE__*/jsxs(Container, {\n px: \"lg\",\n flex: \"column\",\n gap: \"md\",\n children: [connectAWallet, continueAsGuest]\n }), tos ? /*#__PURE__*/jsxs(Container, {\n p: \"md\",\n children: [\" \", tos, \" \"]\n }) : /*#__PURE__*/jsx(Spacer, {\n y: \"md\"\n })]\n });\n }\n\n // social login + single eoa wallet\n else {\n bottomSection = /*#__PURE__*/jsxs(Fragment, {\n children: [/*#__PURE__*/jsx(Container, {\n px: \"lg\",\n children: /*#__PURE__*/jsx(WalletSelection, {\n walletConfigs: eoaWallets,\n selectWallet: handleSelect,\n selectUIProps: props.selectUIProps\n })\n }), continueAsGuest && /*#__PURE__*/jsx(Container, {\n flex: \"column\",\n px: \"lg\",\n gap: \"lg\",\n children: continueAsGuest\n }), tos ? /*#__PURE__*/jsxs(Fragment, {\n children: [continueAsGuest ? /*#__PURE__*/jsx(Spacer, {\n y: \"md\"\n }) : /*#__PURE__*/jsx(Line, {}), /*#__PURE__*/jsxs(Container, {\n p: \"md\",\n children: [\" \", tos, \" \"]\n })]\n }) : /*#__PURE__*/jsx(Fragment, {\n children: continueAsGuest && /*#__PURE__*/jsx(Spacer, {\n y: \"xl\"\n })\n })]\n });\n }\n }\n }\n\n // expanded state\n else {\n topSection = /*#__PURE__*/jsx(WalletSelection, {\n walletConfigs: eoaWallets,\n selectWallet: handleSelect,\n selectUIProps: props.selectUIProps\n });\n bottomSection = /*#__PURE__*/jsx(ScreenBottomContainer, {\n children: newToWallets\n });\n }\n }\n }\n return /*#__PURE__*/jsxs(Container, {\n scrollY: true,\n flex: \"column\",\n animate: \"fadein\",\n fullHeight: true,\n children: [!modalConfig.isEmbed && /*#__PURE__*/jsx(Container, {\n p: \"lg\",\n children: isWalletGroupExpanded ? /*#__PURE__*/jsx(ModalHeader, {\n title: twTitle,\n onBack: () => {\n setIsWalletGroupExpanded(false);\n }\n }) : twTitle\n }), /*#__PURE__*/jsxs(Container, {\n expand: true,\n scrollY: true,\n px: \"md\",\n style: modalConfig.isEmbed ? {\n paddingTop: spacing.lg\n } : {\n paddingTop: \"2px\"\n },\n children: [modalConfig.isEmbed && isWalletGroupExpanded && /*#__PURE__*/jsx(Container, {\n flex: \"row\",\n center: \"y\",\n style: {\n padding: spacing.sm,\n paddingTop: 0\n },\n children: /*#__PURE__*/jsxs(IconButton, {\n onClick: () => {\n setIsWalletGroupExpanded(false);\n },\n style: {\n gap: spacing.xxs,\n transform: `translateX(-${spacing.xs})`,\n paddingBlock: spacing.xxs,\n paddingRight: spacing.xs\n },\n children: [/*#__PURE__*/jsx(ChevronLeftIcon, {\n width: iconSize.sm,\n height: iconSize.sm\n }), locale.goBackButton]\n })\n }), topSection]\n }), bottomSection]\n });\n};\nconst WalletSelection = props => {\n const modalConfig = useContext(ModalConfigCtx);\n const setModalConfig = useContext(SetModalConfigCtx);\n const walletConfigs = sortWalletConfigs(props.walletConfigs);\n return /*#__PURE__*/jsx(WalletList, {\n children: walletConfigs.map(walletConfig => {\n return /*#__PURE__*/jsx(\"li\", {\n \"data-full-width\": !!walletConfig.selectUI,\n children: walletConfig.selectUI ? /*#__PURE__*/jsx(walletConfig.selectUI, {\n modalSize: modalConfig.modalSize,\n theme: typeof modalConfig.theme === \"string\" ? modalConfig.theme : modalConfig.theme.type,\n supportedWallets: props.walletConfigs,\n onSelect: data => {\n props.selectWallet(walletConfig);\n setModalConfig(config => ({\n ...config,\n data\n }));\n },\n walletConfig: walletConfig,\n connect: options => props.selectUIProps.connect(walletConfig, options),\n connectionStatus: props.selectUIProps.connectionStatus,\n createWalletInstance: () => props.selectUIProps.createWalletInstance(walletConfig),\n setConnectedWallet: props.selectUIProps.setConnectedWallet,\n setConnectionStatus: props.selectUIProps.setConnectionStatus,\n connectedWallet: props.selectUIProps.connectedWallet,\n connectedWalletAddress: props.selectUIProps.connectedWalletAddress\n }) : /*#__PURE__*/jsx(WalletEntryButton, {\n walletConfig: walletConfig,\n selectWallet: () => {\n props.selectWallet(walletConfig);\n }\n })\n }, walletConfig.id);\n })\n });\n};\nfunction WalletEntryButton(props) {\n const {\n walletConfig,\n selectWallet\n } = props;\n const isRecommended = walletConfig.recommended;\n const locale = useTWLocale().connectWallet;\n return /*#__PURE__*/jsxs(WalletButton, {\n type: \"button\",\n onClick: () => {\n selectWallet();\n },\n children: [/*#__PURE__*/jsx(Img, {\n src: walletConfig.meta.iconURL,\n width: iconSize.xl,\n height: iconSize.xl,\n loading: \"eager\"\n }), /*#__PURE__*/jsxs(Container, {\n flex: \"column\",\n gap: \"xxs\",\n expand: true,\n children: [/*#__PURE__*/jsx(Text, {\n color: \"primaryText\",\n weight: 600,\n children: walletConfig.meta.name\n }), isRecommended && /*#__PURE__*/jsx(Text, {\n size: \"sm\",\n children: locale.recommended\n }), !isRecommended && walletConfig.isInstalled && walletConfig.isInstalled() && /*#__PURE__*/jsx(Text, {\n size: \"sm\",\n children: locale.installed\n })]\n })]\n });\n}\nconst WalletList = /* @__PURE__ */StyledUl({\n all: \"unset\",\n listStyleType: \"none\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"2px\",\n boxSizing: \"border-box\",\n overflowY: \"auto\",\n flex: 1,\n ...noScrollBar,\n // to show the box-shadow of inputs that overflows\n padding: \"2px\",\n margin: \"-2px\",\n marginBottom: 0,\n paddingBottom: spacing.lg\n});\nconst WalletButton = /* @__PURE__ */StyledButton(() => {\n const theme = useCustomTheme();\n return {\n all: \"unset\",\n display: \"flex\",\n alignItems: \"center\",\n gap: spacing.sm,\n cursor: \"pointer\",\n boxSizing: \"border-box\",\n width: \"100%\",\n color: theme.colors.secondaryText,\n position: \"relative\",\n borderRadius: radius.md,\n padding: `${spacing.xs} ${spacing.xs}`,\n \"&:hover\": {\n backgroundColor: theme.colors.walletSelectorButtonHoverBg,\n transform: \"scale(1.01)\"\n },\n transition: \"background-color 200ms ease, transform 200ms ease\"\n };\n});\nfunction sortWalletConfigs(walletConfigs) {\n return walletConfigs\n // show the installed wallets first\n .sort((a, b) => {\n const aInstalled = a.isInstalled ? a.isInstalled() : false;\n const bInstalled = b.isInstalled ? b.isInstalled() : false;\n if (aInstalled && !bInstalled) {\n return -1;\n }\n if (!aInstalled && bInstalled) {\n return 1;\n }\n return 0;\n })\n // show the recommended wallets even before that\n .sort((a, b) => {\n if (a.recommended && !b.recommended) {\n return -1;\n }\n if (!a.recommended && b.recommended) {\n return 1;\n }\n return 0;\n })\n // show the wallets with selectUI first before others\n .sort((a, b) => {\n if (a.selectUI && !b.selectUI) {\n return -1;\n }\n if (!a.selectUI && b.selectUI) {\n return 1;\n }\n return 0;\n });\n}\n\nconst Label = /* @__PURE__ */StyledLabel(props => {\n const theme = useCustomTheme();\n return {\n fontSize: fontSize.sm,\n color: theme.colors[props.color || \"primaryText\"],\n display: \"block\",\n fontWeight: 500\n };\n});\nconst Input = /* @__PURE__ */StyledInput(props => {\n const theme = useCustomTheme();\n return {\n fontSize: fontSize.md,\n display: \"block\",\n padding: props.sm ? spacing.sm : fontSize.sm,\n boxSizing: \"border-box\",\n width: \"100%\",\n outline: \"none\",\n border: \"none\",\n borderRadius: \"6px\",\n color: theme.colors.primaryText,\n WebkitAppearance: \"none\",\n appearance: \"none\",\n background: \"transparent\",\n \"&::placeholder\": {\n color: theme.colors.secondaryText\n },\n boxShadow: `0 0 0 1.5px ${props.variant === \"outline\" ? theme.colors.borderColor : \"transparent\"}`,\n \"&:-webkit-autofill\": {\n WebkitTextFillColor: theme.colors.primaryText,\n WebkitBoxShadow: `0 0 0px 1000px ${theme.colors.inputAutofillBg} inset !important`,\n boxShadow: `0 0 0px 1000px ${theme.colors.inputAutofillBg} inset !important`,\n transition: \"background-color 5000s ease-in-out 0s\"\n },\n \"&:-webkit-autofill:focus\": {\n WebkitBoxShadow: `0 0 0px 1000px ${theme.colors.inputAutofillBg} inset, 0 0 0 2px ${theme.colors.accentText} !important`,\n boxShadow: `0 0 0px 1000px ${theme.colors.inputAutofillBg} inset, 0 0 0 2px ${theme.colors.accentText} !important`\n },\n \"&:focus\": {\n boxShadow: `0 0 0 2px ${theme.colors.accentText}`\n },\n \"&:not([type='password'])\": {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\"\n },\n \"&[data-error='true']\": {\n boxShadow: `0 0 0 2px ${theme.colors.danger} !important`\n },\n \"&[disabled]\": {\n cursor: \"not-allowed\"\n },\n \"&[type='number']::-webkit-outer-spin-button, &[type='number']::-webkit-inner-spin-button\": {\n WebkitAppearance: \"none\",\n margin: 0\n },\n \"&[type='number']\": {\n appearance: \"none\",\n MozAppearance: \"textfield\"\n }\n };\n});\n\n// for rendering a input and a button side by side\nconst InputContainer = /* @__PURE__ */StyledDiv(() => {\n const theme = useCustomTheme();\n return {\n display: \"flex\",\n borderRadius: radius.sm,\n boxShadow: `0 0 0px 1.5px ${theme.colors.borderColor}`,\n \"&:focus-within\": {\n boxShadow: `0 0 0px 2px ${theme.colors.accentText}`\n },\n \"input:focus\": {\n boxShadow: \"none\"\n },\n // show error ring on container instead of input\n \"&[data-error='true']\": {\n boxShadow: `0 0 0px 2px ${theme.colors.danger}`\n }\n };\n});\n\nexport { ScreenBottomContainer as A, Button as B, Container as C, StyledP as D, shadow as E, noScrollBar as F, CustomThemeProvider as G, ModalTitle as H, Img as I, StyledUl as J, StyledLabel as K, Line as L, ModalHeader as M, Link as N, TOS as O, SetModalConfigCtx as P, WalletSelector as Q, WalletUIStatesProvider as R, Spacer as S, Text as T, ThirdwebLocaleContext as U, isAndroid as V, WalletEntryButton as W, isIOS as X, HelperLink as Y, WalletSelection as Z, StyledSelect as _, iconSize as a, StyledDiv as b, useTWLocale as c, ModalDescription as d, Spinner as e, Label as f, ModalConfigCtx as g, fontSize as h, isMobile as i, immutableOverride as j, darkTheme as k, lightTheme as l, en as m, useIsWalletModalOpen as n, useSetIsWalletModalOpen as o, TextDivider as p, fadeInAnimation as q, radius as r, spacing as s, Input as t, useCustomTheme as u, media as v, InputContainer as w, InputButton as x, IconButton as y, StyledButton as z };\n","import { FrameWallet, assertWindowEthereum } from '@thirdweb-dev/wallets';\nimport { o as openWindow, C as ConnectingScreen, G as GetStartedScreen, B as ButtonLink } from './safeChainSlug-403963ed.browser.esm.js';\nimport { c as useTWLocale, i as isMobile, C as Container, M as ModalHeader, S as Spacer, H as ModalTitle, d as ModalDescription, I as Img, a as iconSize, Y as HelperLink } from './formElements-7f371201.browser.esm.js';\nimport { useState, useRef, useEffect } from 'react';\nimport { jsx, jsxs, Fragment } from 'react/jsx-runtime';\nimport '@emotion/react';\nimport '@radix-ui/react-icons';\nimport 'qrcode';\nimport '@thirdweb-dev/react-core';\nimport 'detect-browser';\nimport '@radix-ui/colors';\nimport '@emotion/styled';\n\nconst FrameFailedConnect = props => {\n const locale = useTWLocale().wallets.frameWallet.connectionFailedScreen;\n return /*#__PURE__*/jsxs(Container, {\n p: \"lg\",\n children: [/*#__PURE__*/jsx(ModalHeader, {\n onBack: () => props.onBack(),\n title: \"Frame\"\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"xl\"\n }), /*#__PURE__*/jsxs(Fragment, {\n children: [/*#__PURE__*/jsxs(ModalTitle, {\n children: [\" \", locale.title, \" \"]\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"sm\"\n }), /*#__PURE__*/jsx(ModalDescription, {\n children: locale.description\n })]\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"lg\"\n }), /*#__PURE__*/jsxs(ButtonLink, {\n onClick: () => {\n openWindow(\"https://frame.sh\");\n },\n children: [/*#__PURE__*/jsx(Img, {\n width: iconSize.lg,\n height: iconSize.lg,\n src: props.walletIconURL\n }), /*#__PURE__*/jsx(\"span\", {\n children: locale.downloadFrame\n })]\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"lg\"\n }), /*#__PURE__*/jsx(HelperLink, {\n target: \"_blank\",\n href: props.supportLink,\n children: locale.supportLink\n })]\n });\n};\nconst FrameConnectUI = props => {\n const [screen, setScreen] = useState(\"connecting\");\n const locale = useTWLocale().wallets.frameWallet;\n const {\n connect\n } = props;\n const connectPrompted = useRef(false);\n const {\n walletConfig,\n connected,\n goBack\n } = props;\n const downloadLink = \"https://frame.sh\";\n const supportLink = \"https://docs.frame.sh\";\n const hideBackButton = props.supportedWallets.length === 1;\n useEffect(() => {\n if (connectPrompted.current) {\n return;\n }\n\n // if loading\n (async () => {\n // if not mobile we connect\n if (!isMobile()) {\n try {\n connectPrompted.current = true;\n setScreen(\"connecting\");\n await connect();\n connected();\n } catch (e) {\n setScreen(\"connect-failed\");\n }\n }\n\n // on mobile we open the website\n else if (isMobile()) {\n openWindow(downloadLink);\n }\n })();\n }, [connect, goBack, connected]);\n if (screen === \"connecting\") {\n return /*#__PURE__*/jsx(ConnectingScreen, {\n locale: {\n getStartedLink: locale.getStartedLink,\n instruction: locale.connectionScreen.instruction,\n tryAgain: locale.connectionScreen.retry,\n inProgress: locale.connectionScreen.inProgress,\n failed: locale.connectionScreen.failed\n },\n errorConnecting: false,\n onRetry: () => {\n // NOOP\n },\n onGetStarted: () => {\n setScreen(\"get-started\");\n },\n hideBackButton: hideBackButton,\n onBack: goBack,\n walletName: walletConfig.meta.name,\n walletIconURL: walletConfig.meta.iconURL\n });\n }\n if (screen === \"connect-failed\") {\n return /*#__PURE__*/jsx(FrameFailedConnect, {\n onBack: goBack,\n walletIconURL: walletConfig.meta.iconURL,\n supportLink: supportLink\n });\n }\n if (screen === \"get-started\") {\n return /*#__PURE__*/jsx(GetStartedScreen, {\n locale: {\n scanToDownload: locale.getStartedScreen.instruction\n },\n walletIconURL: walletConfig.meta.iconURL,\n walletName: walletConfig.meta.name,\n chromeExtensionLink: walletConfig.meta.urls?.chrome,\n googlePlayStoreLink: walletConfig.meta.urls?.android,\n appleStoreLink: walletConfig.meta.urls?.ios,\n onBack: props.goBack\n });\n }\n return null;\n};\n\n/**\n * @wallet\n */\n\n/**\n * A wallet configurator for [Frame Wallet](https://frame.sh/) which allows integrating the wallet with React.\n *\n * It returns a [`WalletConfig`](https://portal.thirdweb.com/references/react/v4/WalletConfig) object which can be used to connect the wallet to via [`ConnectWallet`](https://portal.thirdweb.com/react/v4/components/ConnectWallet) component or [`useConnect`](https://portal.thirdweb.com/references/react/v4/useConnect) hook as mentioned in [Connecting Wallets](https://portal.thirdweb.com/react/v4/connecting-wallets) guide\n *\n * @example\n * ```ts\n * frameWallet({\n * recommended: true,\n * })\n * ```\n *\n * @param config -\n * Optional object containing the following properties to configure the wallet\n *\n * ### recommended (optional)\n * If true, the wallet will be tagged as \"recommended\" in [`ConnectWallet`](https://portal.thirdweb.com/react/v4/components/ConnectWallet) Modal UI\n *\n * @wallet\n */\nconst frameWallet = config => ({\n id: FrameWallet.id,\n recommended: config?.recommended,\n meta: {\n name: \"Frame\",\n iconURL: \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODAiIGhlaWdodD0iODAiIHZpZXdCb3g9IjAgMCA4MCA4MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTAgMjEuNDE3NEMwIDEzLjkyMDYgMCAxMC4xNzIyIDEuNDUzNiA3LjMwODc4QzIuNzMyMjQgNC43OTAwOCA0Ljc3MjQ3IDIuNzQyMzIgNy4yODE5MSAxLjQ1ODk3QzEwLjEzNDggMCAxMy44Njk0IDAgMjEuMzM4NyAwSDU4LjY2MTNDNjYuMTMwNiAwIDY5Ljg2NTIgMCA3Mi43MTgxIDEuNDU4OTdDNzUuMjI3NiAyLjc0MjMyIDc3LjI2NzcgNC43OTAwOCA3OC41NDY0IDcuMzA4NzhDODAgMTAuMTcyMiA4MCAxMy45MjA2IDgwIDIxLjQxNzRWNTguNTgyNkM4MCA2Ni4wNzk0IDgwIDY5LjgyNzggNzguNTQ2NCA3Mi42OTEyQzc3LjI2NzcgNzUuMjEgNzUuMjI3NiA3Ny4yNTc2IDcyLjcxODEgNzguNTQxQzY5Ljg2NTIgODAgNjYuMTMwNiA4MCA1OC42NjEzIDgwSDIxLjMzODdDMTMuODY5NCA4MCAxMC4xMzQ4IDgwIDcuMjgxOTEgNzguNTQxQzQuNzcyNDcgNzcuMjU3NiAyLjczMjI0IDc1LjIxIDEuNDUzNiA3Mi42OTEyQzAgNjkuODI3OCAwIDY2LjA3OTQgMCA1OC41ODI2VjIxLjQxNzRaIiBmaWxsPSIjMjYyRDM0Ii8+CjxtYXNrIGlkPSJtYXNrMF8yNF83OCIgc3R5bGU9Im1hc2stdHlwZTpsdW1pbmFuY2UiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjE3IiB5PSIxNyIgd2lkdGg9IjQ3IiBoZWlnaHQ9IjQ3Ij4KPHBhdGggZD0iTTYzLjY2NjcgMTdIMTdWNjMuNjY2N0g2My42NjY3VjE3WiIgZmlsbD0id2hpdGUiLz4KPC9tYXNrPgo8ZyBtYXNrPSJ1cmwoI21hc2swXzI0Xzc4KSI+CjxwYXRoIGQ9Ik02MS4xNDE3IDQwLjA3MzhWMjIuMzcxN0M2MS4xNDE3IDIwLjgxNTIgNTkuODY0IDE5LjUzMzIgNTguMzEyNSAxOS41MzMySDQwLjYzNzVDNDAuNDU1IDE5LjUzMzIgNDAuMzAyOCAxOS40NzIyIDQwLjE1MDggMTkuMzUwMkwzOC4wMjEzIDE3LjIxMzdDMzcuODk5NyAxNy4wOTE1IDM3LjcxNyAxNyAzNy41MzQ1IDE3SDE5LjgyOTJDMTguMjc3NyAxNyAxNyAxOC4yNTEzIDE3IDE5LjgzODVWMzcuNTQwN0MxNyAzNy43MjM4IDE3LjA2MDggMzcuODc2MyAxNy4xODI1IDM4LjAyOUwxOS4zMTIgNDAuMTY1NUMxOS40MzM3IDQwLjI4NzUgMTkuNTI1IDQwLjQ3MDcgMTkuNTI1IDQwLjY1MzhWNTguMzU2QzE5LjUyNSA1OS45MTI1IDIwLjgwMjcgNjEuMTk0NSAyMi4zNTQyIDYxLjE5NDVINDAuMDU5NUM0MC4yNDIgNjEuMTk0NSA0MC4zOTQyIDYxLjI1NTUgNDAuNTQ2MyA2MS4zNzc3TDQyLjY3NTggNjMuNTE0QzQyLjc5NzUgNjMuNjM2MiA0Mi45OCA2My42OTcyIDQzLjE2MjUgNjMuNjk3Mkg2MC44Njc4QzYyLjQxOTMgNjMuNjk3MiA2My42OTcyIDYyLjQ0NTggNjMuNjk3MiA2MC44NTg3VjQzLjE1NjVDNjMuNjk3MiA0Mi45NzMzIDYzLjYzNjIgNDIuODIwOCA2My41MTQ1IDQyLjY2ODJMNjEuMzg1IDQwLjUzMTdDNjEuMjMzIDQwLjQwOTcgNjEuMTQxNyA0MC4yNTcgNjEuMTQxNyA0MC4wNzM4Wk00OS4xMjUyIDQ5LjUzNTVIMzEuNTcyQzMxLjM1OSA0OS41MzU1IDMxLjE3NjUgNDkuMzUyMyAzMS4xNzY1IDQ5LjEzODdWMzEuNTU4NUMzMS4xNzY1IDMxLjM0NDggMzEuMzU5IDMxLjE2MTggMzEuNTcyIDMxLjE2MThINDkuMTI1MkM0OS4zMzgyIDMxLjE2MTggNDkuNTIwNyAzMS4zNDQ4IDQ5LjUyMDcgMzEuNTU4NVY0OS4xMzg3QzQ5LjU1MSA0OS4zNTIzIDQ5LjM2ODUgNDkuNTM1NSA0OS4xMjUyIDQ5LjUzNTVaIiBmaWxsPSIjRDZGOUY4Ii8+CjwvZz4KPC9zdmc+Cg==\",\n urls: {\n chrome: \"https://chrome.google.com/webstore/detail/frame-companion/ldcoohedfbjoobcadoglnnmmfbdlmmhf\",\n firefox: \"https://addons.mozilla.org/en-US/firefox/addon/frame-extension\"\n }\n },\n create(options) {\n return new FrameWallet(options);\n },\n connectUI: FrameConnectUI,\n isInstalled() {\n const window_ = globalThis?.window;\n if (assertWindowEthereum(window_)) {\n return window_.ethereum?.isFrame || window_.ethereum?.providers?.some(p => p.isFrame) || false;\n }\n return false;\n }\n});\n\nexport { frameWallet };\n","import { MagicLink } from '@thirdweb-dev/wallets';\nimport { useWalletContext } from '@thirdweb-dev/react-core';\nimport { useRef, useEffect, useCallback } from 'react';\nimport { W as WalletEntryButton, c as useTWLocale, C as Container, I as Img, a as iconSize, p as TextDivider, e as Spinner, M as ModalHeader, S as Spacer, B as Button, u as useCustomTheme, s as spacing, h as fontSize, y as IconButton } from './formElements-7f371201.browser.esm.js';\nimport { u as useScreenContext, r as reservedScreens, T as ToolTip, I as InputSelectionUI, g as googleIconUri, f as facebookIconUri, t as twitterIconUri, j as githubIconUri, a as appleIconUri, l as linkedinIconUri, k as bitbucketIconUri, n as gitlabIconUri, p as twitchIconUri, q as discordIconUri, v as microsoftIconUri, x as emailAndPhoneIcon, e as emailIcon, y as phoneIcon } from './Tooltip-69afad67.browser.esm.js';\nimport styled from '@emotion/styled';\nimport { jsx, jsxs, Fragment } from 'react/jsx-runtime';\nimport '@emotion/react';\nimport '@radix-ui/react-icons';\nimport 'detect-browser';\nimport '@radix-ui/colors';\nimport '@radix-ui/react-tooltip';\n\n/**\n * A wallet configurator for [Magic Link](https://magic.link/) which allows integrating the wallet with React.\n *\n * It returns a [`WalletConfig`](https://portal.thirdweb.com/references/react/v4/WalletConfig) object which can be used to connect the wallet to via [`ConnectWallet`](https://portal.thirdweb.com/react/v4/components/ConnectWallet) component or [`useConnect`](https://portal.thirdweb.com/references/react/v4/useConnect) hook as mentioned in [Connecting Wallets](https://portal.thirdweb.com/react/v4/connecting-wallets) guide\n *\n * @example\n * ```ts\n * magicLink({\n * apiKey: \"pk_test_123\",\n * emailLogin: true,\n * smsLogin: true,\n * oauthOptions: {\n * providers: [\"google\", \"facebook\"],\n * redirectURI: \"https://example.com/foo/bar\",\n * },\n * type: \"auth\", // or 'connect'\n * });\n * ```\n *\n * @param config -\n * Object containing the following properties to configure the wallet\n *\n * ### apiKey\n * Your Magic Link apiKey\n *\n * You can get an API key by signing up for an account on [Magic Link's website](https://magic.link/).\n *\n * Must be a `string`\n *\n * ### magicSdkConfiguration (optional)\n * Configuration for [Magic Auth](https://magic.link/docs/auth/overview) SDK\n *\n * This is only relevant if you are using `type: 'auth'` in your config\n *\n * ```ts\n * {\n * locale?: string;\n * endpoint?: string;\n * testMode?: boolean;\n * }\n * ```\n *\n * * `locale` - Customize the language of Magic's modal, email and confirmation screen. See [Localization](https://magic.link/docs/auth/more/customization/localization) for more.\n *\n * * `endpoint` - A URL pointing to the Magic iframe application\n *\n * * `testMode` - Enable [testMode](https://magic.link/docs/auth/introduction/test-mode) to assert the desired behavior through the email address you provide to `loginWithMagicLink` without having to go through the auth flow.\n *\n * ### smsLogin (optional)\n * Specify whether you want to allow users to login with their phone number or not. It is `true` by default\n *\n * This is only relevant if you are using `type: 'auth'`\n *\n * Must be a `boolean`\n *\n * ### emailLogin (optional)\n * Specify whether you want to allow users to login with their email or not. It is `true` by default\n *\n * This is only relevant if you are using `type: 'auth'`\n *\n * Must be a `boolean`\n *\n * ### oauthOptions (optional)\n * Specify which oauth providers you support in `providers` array.\n *\n * Specify which URI to redirect to after the oauth flow is complete in `redirectURI` option. If no `redirectURI` is specified, the user will be redirected to the current page.\n *\n * You must pass full URL and not just a relative path. For example, `\"https://example.com/foo\"` is valid but `\"/foo\"` is not.\n * You can use `new URL(\"/foo\", window.location.origin).href` to get the full URL from a relative path based on the current origin.\n *\n * This is only relevant if you are using `type: 'auth'`\n *\n * You also need to enable the oauth providers for your apiKey from [Magic dashboard](https://dashboard.magic.link/).\n *\n * ```ts\n * type OauthOptions = {\n * redirectURI?: string;\n * providers: OauthProvider[];\n * };\n *\n * type OauthProvider =\n * | \"google\"\n * | \"facebook\"\n * | \"apple\"\n * | \"github\"\n * | \"bitbucket\"\n * | \"gitlab\"\n * | \"linkedin\"\n * | \"twitter\"\n * | \"discord\"\n * | \"twitch\"\n * | \"microsoft\";\n * ```\n *\n * ### recommended (optional)\n * Show this wallet as \"recommended\" in the [`ConnectWallet`](https://portal.thirdweb.com/react/v4/components/ConnectWallet) Modal UI\n *\n * @wallet\n */\nfunction magicLink(config) {\n const emailLoginEnabled = config.emailLogin !== false;\n const smsLoginEnabled = config.smsLogin !== false;\n const oauthProviders = config.oauthOptions?.providers;\n const type = config.type || \"auth\";\n let icon = emailAndPhoneIcon;\n let iconText = \"Email or phone\";\n if (emailLoginEnabled && !smsLoginEnabled) {\n icon = emailIcon;\n iconText = \"Email\";\n }\n if (!emailLoginEnabled && smsLoginEnabled) {\n icon = phoneIcon;\n iconText = \"Phone number\";\n }\n if (!emailLoginEnabled && !smsLoginEnabled) {\n iconText = \"Social login\";\n }\n return {\n category: \"socialLogin\",\n id: MagicLink.id,\n recommended: config?.recommended,\n isHeadless: true,\n meta: {\n ...MagicLink.meta,\n name: iconText,\n iconURL: icon\n },\n create: options => new MagicLink({\n ...options,\n ...config\n }),\n connectUI(props) {\n if (props.modalSize === \"wide\") {\n return /*#__PURE__*/jsx(MagicConnectionUIScreen, {\n ...props,\n type: type,\n emailLogin: emailLoginEnabled,\n smsLogin: smsLoginEnabled,\n oauthProviders: oauthProviders\n });\n }\n if (props.selectionData === undefined) {\n return /*#__PURE__*/jsx(MagicConnectionUIScreen, {\n ...props,\n type: type,\n emailLogin: emailLoginEnabled,\n smsLogin: smsLoginEnabled,\n oauthProviders: oauthProviders\n });\n }\n return /*#__PURE__*/jsx(MagicConnectingUI, {\n ...props,\n type: type\n });\n },\n // select UI only for auth\n selectUI: config.type === \"connect\" ? undefined : props => {\n return /*#__PURE__*/jsx(MagicSelectUI, {\n ...props,\n emailLoginEnabled: emailLoginEnabled,\n smsLoginEnabled: smsLoginEnabled,\n oauthProviders: oauthProviders\n });\n },\n isInstalled() {\n return false;\n }\n };\n}\nconst MagicSelectUI = props => {\n const screen = useScreenContext();\n if (props.modalSize === \"wide\" || screen !== reservedScreens.main && props.modalSize === \"compact\") {\n return /*#__PURE__*/jsx(WalletEntryButton, {\n walletConfig: props.walletConfig,\n selectWallet: () => props.onSelect(undefined)\n });\n }\n return /*#__PURE__*/jsx(MagicUI, {\n ...props,\n emailLogin: props.emailLoginEnabled,\n smsLogin: props.smsLoginEnabled,\n oauthProviders: props.oauthProviders\n });\n};\nconst MagicUI = props => {\n const cwLocale = useTWLocale().connectWallet;\n const locale = useTWLocale().wallets.magicLink;\n const isEmailEnabled = props.emailLogin !== false;\n const isSMSEnabled = props.smsLogin !== false;\n let placeholder = locale.loginWithEmailOrPhone;\n let type = \"text\";\n let emptyErrorMessage = locale.emailOrPhoneRequired;\n if (isEmailEnabled && !isSMSEnabled) {\n placeholder = locale.emailPlaceholder;\n emptyErrorMessage = locale.emailRequired;\n type = \"email\";\n } else if (!isEmailEnabled && isSMSEnabled) {\n placeholder = locale.loginWithPhone;\n emptyErrorMessage = locale.phoneRequired;\n type = \"tel\";\n }\n if (!isEmailEnabled && !isSMSEnabled && !props.oauthProviders) {\n throw new Error('MagicLink must have either \"emailLogin\" or \"smsLogin\" or social login enabled');\n }\n const showInputUI = isEmailEnabled || isSMSEnabled;\n const screen = useScreenContext();\n const showSeparator = props.modalSize === \"wide\" || screen !== reservedScreens.main && props.modalSize === \"compact\";\n return /*#__PURE__*/jsxs(Container, {\n flex: \"column\",\n animate: \"fadein\",\n gap: props.modalSize === \"compact\" ? \"lg\" : \"xl\",\n style: {\n width: \"100%\"\n },\n children: [props.oauthProviders && /*#__PURE__*/jsx(Fragment, {\n children: props.oauthProviders.length > 1 ? /*#__PURE__*/jsx(Container, {\n gap: \"md\",\n flex: \"row\",\n style: {\n justifyContent: \"space-between\"\n },\n center: \"x\",\n children: props.oauthProviders.map(provider => {\n return /*#__PURE__*/jsx(SocialIconButton, {\n onClick: () => {\n props.onSelect({\n provider\n });\n },\n children: /*#__PURE__*/jsx(ToolTip, {\n tip: `${locale.loginWith} ${upperCaseFirstLetter(provider)}`,\n sideOffset: 15,\n children: /*#__PURE__*/jsx(Container, {\n flex: \"row\",\n center: \"both\",\n children: /*#__PURE__*/jsx(Img, {\n src: providerImages[provider],\n width: iconSize.lg,\n height: iconSize.lg,\n alt: \"\"\n })\n })\n })\n }, provider);\n })\n }) : /*#__PURE__*/jsx(Container, {\n gap: \"xs\",\n flex: \"column\",\n children: props.oauthProviders.map(provider => {\n return /*#__PURE__*/jsxs(SocialButtonLarge, {\n variant: \"secondary\",\n onClick: () => {\n props.onSelect({\n provider\n });\n },\n children: [/*#__PURE__*/jsx(Img, {\n src: providerImages[provider],\n width: iconSize.md,\n height: iconSize.md,\n alt: \"\"\n }), /*#__PURE__*/jsxs(\"span\", {\n children: [locale.loginWith, \" \", upperCaseFirstLetter(provider)]\n })]\n }, provider);\n })\n })\n }), showInputUI && /*#__PURE__*/jsxs(Fragment, {\n children: [showSeparator && /*#__PURE__*/jsx(TextDivider, {\n text: cwLocale.or\n }), /*#__PURE__*/jsx(InputSelectionUI, {\n submitButtonText: locale.submitEmail,\n onSelect: props.onSelect,\n placeholder: placeholder,\n name: \"magic-input\",\n type: type,\n emptyErrorMessage: emptyErrorMessage,\n errorMessage: input => {\n const isEmail = input.includes(\"@\");\n const isPhone = Number.isInteger(Number(input[input.length - 1]));\n if (isEmail && isEmailEnabled) {\n const emailRegex = /^([a-z0-9_\\.-]+)@([\\da-z\\.-]+)\\.([a-z\\.]{2,})$/g;\n const isValidEmail = emailRegex.test(input.replace(/\\+/g, \"\"));\n if (!isValidEmail) {\n return locale.invalidEmail;\n }\n } else if (isPhone && isSMSEnabled) {\n if (!input.startsWith(\"+\")) {\n return locale.countryCodeMissing;\n }\n } else {\n if (isEmailEnabled && isSMSEnabled) {\n return locale.invalidEmailOrPhone;\n }\n if (isEmailEnabled) {\n return locale.invalidEmail;\n }\n if (isSMSEnabled) {\n return locale.invalidPhone;\n }\n }\n }\n })]\n })]\n });\n};\nfunction useConnectMagic() {\n const {\n activeChain\n } = useWalletContext();\n const connector = useCallback(async data => {\n const {\n selectionData,\n connected,\n show,\n hide,\n connect\n } = data;\n\n // oauth\n if (typeof selectionData === \"object\") {\n try {\n hide();\n (async () => {\n await connect({\n oauthProvider: selectionData.provider,\n chainId: activeChain.chainId\n });\n })();\n connected();\n } catch (e) {\n console.error(e);\n }\n show();\n }\n\n // email or phone\n else {\n const isEmail = selectionData ? selectionData.includes(\"@\") : false;\n hide();\n try {\n await connect(data.type === \"connect\" ? {} : isEmail ? {\n email: selectionData,\n chainId: activeChain.chainId\n } : {\n phoneNumber: selectionData,\n chainId: activeChain.chainId\n });\n connected();\n } catch (e) {\n console.error(e);\n }\n show();\n }\n }, [activeChain.chainId]);\n return connector;\n}\nconst MagicConnectingUI = _ref => {\n let {\n connected,\n walletConfig,\n show,\n selectionData,\n supportedWallets,\n type,\n hide,\n connect\n } = _ref;\n const connectPrompted = useRef(false);\n const singleWallet = supportedWallets.length === 1;\n const connectMagic = useConnectMagic();\n useEffect(() => {\n if (connectPrompted.current) {\n return;\n }\n connectPrompted.current = true;\n connectMagic({\n selectionData: selectionData,\n singleWallet,\n type,\n connect,\n show,\n connected,\n hide\n });\n }, [connectMagic, connected, selectionData, show, singleWallet, type, walletConfig, hide, connect]);\n return /*#__PURE__*/jsx(Container, {\n flex: \"row\",\n center: \"both\",\n style: {\n minHeight: \"350px\"\n },\n children: /*#__PURE__*/jsx(Spinner, {\n size: \"xl\",\n color: \"accentText\"\n })\n });\n};\nconst MagicConnectionUIScreen = props => {\n const locale = useTWLocale().wallets.magicLink;\n const connectMagic = useConnectMagic();\n return /*#__PURE__*/jsxs(Container, {\n p: \"lg\",\n fullHeight: true,\n flex: \"column\",\n style: {\n minHeight: \"300px\"\n },\n children: [/*#__PURE__*/jsx(ModalHeader, {\n onBack: props.goBack,\n title: locale.signIn\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"xl\"\n }), /*#__PURE__*/jsx(Container, {\n expand: true,\n flex: \"column\",\n center: \"both\",\n px: props.modalSize === \"wide\" ? \"lg\" : undefined,\n children: /*#__PURE__*/jsx(MagicUI, {\n ...props,\n onSelect: data => {\n connectMagic({\n selectionData: data,\n connected: props.connected,\n show: props.show,\n singleWallet: props.supportedWallets.length === 1,\n type: props.type,\n connect: props.connect,\n hide: props.hide\n });\n }\n })\n })]\n });\n};\nconst providerImages = {\n google: googleIconUri,\n facebook: facebookIconUri,\n twitter: twitterIconUri,\n github: githubIconUri,\n apple: appleIconUri,\n linkedin: linkedinIconUri,\n bitbucket: bitbucketIconUri,\n gitlab: gitlabIconUri,\n twitch: twitchIconUri,\n discord: discordIconUri,\n microsoft: microsoftIconUri\n};\nfunction upperCaseFirstLetter(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\nconst SocialButtonLarge = /* @__PURE__ */styled(Button)(() => {\n const theme = useCustomTheme();\n return {\n display: \"flex\",\n justifyContent: \"center\",\n gap: spacing.md,\n fontSize: fontSize.md,\n transition: \"background-color 0.2s ease\",\n \"&:hover\": {\n backgroundColor: theme.colors.secondaryButtonBg\n },\n \"&:active\": {\n boxShadow: \"none\"\n }\n };\n});\nconst SocialIconButton = /* @__PURE__ */styled(IconButton)(() => {\n const theme = useCustomTheme();\n return {\n border: `1px solid ${theme.colors.borderColor}`,\n padding: spacing.sm,\n transition: \"border-color 0.2s ease\",\n \"&:hover\": {\n borderColor: theme.colors.accentText,\n background: \"transparent\"\n },\n flexGrow: 1\n };\n});\n\nexport { magicLink };\n","import React from 'react';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { Slot } from '@radix-ui/react-slot';\n\nimport type * as Radix from '@radix-ui/react-primitive';\n\ntype SlotProps = Radix.ComponentPropsWithoutRef;\ntype CollectionElement = HTMLElement;\ninterface CollectionProps extends SlotProps {\n scope: any;\n}\n\n// We have resorted to returning slots directly rather than exposing primitives that can then\n// be slotted like ``.\n// This is because we encountered issues with generic types that cannot be statically analysed\n// due to creating them dynamically via createCollection.\n\nfunction createCollection(name: string) {\n /* -----------------------------------------------------------------------------------------------\n * CollectionProvider\n * ---------------------------------------------------------------------------------------------*/\n\n const PROVIDER_NAME = name + 'CollectionProvider';\n const [createCollectionContext, createCollectionScope] = createContextScope(PROVIDER_NAME);\n\n type ContextValue = {\n collectionRef: React.RefObject;\n itemMap: Map, { ref: React.RefObject } & ItemData>;\n };\n\n const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(\n PROVIDER_NAME,\n { collectionRef: { current: null }, itemMap: new Map() }\n );\n\n const CollectionProvider: React.FC<{ children?: React.ReactNode; scope: any }> = (props) => {\n const { scope, children } = props;\n const ref = React.useRef(null);\n const itemMap = React.useRef(new Map()).current;\n return (\n \n {children}\n \n );\n };\n\n CollectionProvider.displayName = PROVIDER_NAME;\n\n /* -----------------------------------------------------------------------------------------------\n * CollectionSlot\n * ---------------------------------------------------------------------------------------------*/\n\n const COLLECTION_SLOT_NAME = name + 'CollectionSlot';\n\n const CollectionSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = useComposedRefs(forwardedRef, context.collectionRef);\n return {children};\n }\n );\n\n CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n\n /* -----------------------------------------------------------------------------------------------\n * CollectionItem\n * ---------------------------------------------------------------------------------------------*/\n\n const ITEM_SLOT_NAME = name + 'CollectionItemSlot';\n const ITEM_DATA_ATTR = 'data-radix-collection-item';\n\n type CollectionItemSlotProps = ItemData & {\n children: React.ReactNode;\n scope: any;\n };\n\n const CollectionItemSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children, ...itemData } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n\n React.useEffect(() => {\n context.itemMap.set(ref, { ref, ...(itemData as unknown as ItemData) });\n return () => void context.itemMap.delete(ref);\n });\n\n return (\n \n {children}\n \n );\n }\n );\n\n CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n\n /* -----------------------------------------------------------------------------------------------\n * useCollection\n * ---------------------------------------------------------------------------------------------*/\n\n function useCollection(scope: any) {\n const context = useCollectionContext(name + 'CollectionConsumer', scope);\n\n const getItems = React.useCallback(() => {\n const collectionNode = context.collectionRef.current;\n if (!collectionNode) return [];\n const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));\n const items = Array.from(context.itemMap.values());\n const orderedItems = items.sort(\n (a, b) => orderedNodes.indexOf(a.ref.current!) - orderedNodes.indexOf(b.ref.current!)\n );\n return orderedItems;\n }, [context.collectionRef, context.itemMap]);\n\n return getItems;\n }\n\n return [\n { Provider: CollectionProvider, Slot: CollectionSlot, ItemSlot: CollectionItemSlot },\n useCollection,\n createCollectionScope,\n ] as const;\n}\n\nexport { createCollection };\nexport type { CollectionProps };\n","import * as React from 'react';\n\ntype Direction = 'ltr' | 'rtl';\nconst DirectionContext = React.createContext(undefined);\n\n/* -------------------------------------------------------------------------------------------------\n * Direction\n * -----------------------------------------------------------------------------------------------*/\n\ninterface DirectionProviderProps {\n children?: React.ReactNode;\n dir: Direction;\n}\nconst DirectionProvider: React.FC = (props) => {\n const { dir, children } = props;\n return {children};\n};\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction useDirection(localDir?: Direction) {\n const globalDir = React.useContext(DirectionContext);\n return localDir || globalDir || 'ltr';\n}\n\nconst Provider = DirectionProvider;\n\nexport {\n useDirection,\n //\n Provider,\n //\n DirectionProvider,\n};\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { createCollection } from '@radix-ui/react-collection';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useId } from '@radix-ui/react-id';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useCallbackRef } from '@radix-ui/react-use-callback-ref';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { useDirection } from '@radix-ui/react-direction';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\nconst ENTRY_FOCUS = 'rovingFocusGroup.onEntryFocus';\nconst EVENT_OPTIONS = { bubbles: false, cancelable: true };\n\n/* -------------------------------------------------------------------------------------------------\n * RovingFocusGroup\n * -----------------------------------------------------------------------------------------------*/\n\nconst GROUP_NAME = 'RovingFocusGroup';\n\ntype ItemData = { id: string; focusable: boolean; active: boolean };\nconst [Collection, useCollection, createCollectionScope] = createCollection<\n HTMLSpanElement,\n ItemData\n>(GROUP_NAME);\n\ntype ScopedProps

= P & { __scopeRovingFocusGroup?: Scope };\nconst [createRovingFocusGroupContext, createRovingFocusGroupScope] = createContextScope(\n GROUP_NAME,\n [createCollectionScope]\n);\n\ntype Orientation = React.AriaAttributes['aria-orientation'];\ntype Direction = 'ltr' | 'rtl';\n\ninterface RovingFocusGroupOptions {\n /**\n * The orientation of the group.\n * Mainly so arrow navigation is done accordingly (left & right vs. up & down)\n */\n orientation?: Orientation;\n /**\n * The direction of navigation between items.\n */\n dir?: Direction;\n /**\n * Whether keyboard navigation should loop around\n * @defaultValue false\n */\n loop?: boolean;\n}\n\ntype RovingContextValue = RovingFocusGroupOptions & {\n currentTabStopId: string | null;\n onItemFocus(tabStopId: string): void;\n onItemShiftTab(): void;\n onFocusableItemAdd(): void;\n onFocusableItemRemove(): void;\n};\n\nconst [RovingFocusProvider, useRovingFocusContext] =\n createRovingFocusGroupContext(GROUP_NAME);\n\ntype RovingFocusGroupElement = RovingFocusGroupImplElement;\ninterface RovingFocusGroupProps extends RovingFocusGroupImplProps {}\n\nconst RovingFocusGroup = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n return (\n \n \n \n \n \n );\n }\n);\n\nRovingFocusGroup.displayName = GROUP_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype RovingFocusGroupImplElement = React.ElementRef;\ntype PrimitiveDivProps = Radix.ComponentPropsWithoutRef;\ninterface RovingFocusGroupImplProps\n extends Omit,\n RovingFocusGroupOptions {\n currentTabStopId?: string | null;\n defaultCurrentTabStopId?: string;\n onCurrentTabStopIdChange?: (tabStopId: string | null) => void;\n onEntryFocus?: (event: Event) => void;\n}\n\nconst RovingFocusGroupImpl = React.forwardRef<\n RovingFocusGroupImplElement,\n RovingFocusGroupImplProps\n>((props: ScopedProps, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n orientation,\n loop = false,\n dir,\n currentTabStopId: currentTabStopIdProp,\n defaultCurrentTabStopId,\n onCurrentTabStopIdChange,\n onEntryFocus,\n ...groupProps\n } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const direction = useDirection(dir);\n const [currentTabStopId = null, setCurrentTabStopId] = useControllableState({\n prop: currentTabStopIdProp,\n defaultProp: defaultCurrentTabStopId,\n onChange: onCurrentTabStopIdChange,\n });\n const [isTabbingBackOut, setIsTabbingBackOut] = React.useState(false);\n const handleEntryFocus = useCallbackRef(onEntryFocus);\n const getItems = useCollection(__scopeRovingFocusGroup);\n const isClickFocusRef = React.useRef(false);\n const [focusableItemsCount, setFocusableItemsCount] = React.useState(0);\n\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n node.addEventListener(ENTRY_FOCUS, handleEntryFocus);\n return () => node.removeEventListener(ENTRY_FOCUS, handleEntryFocus);\n }\n }, [handleEntryFocus]);\n\n return (\n setCurrentTabStopId(tabStopId),\n [setCurrentTabStopId]\n )}\n onItemShiftTab={React.useCallback(() => setIsTabbingBackOut(true), [])}\n onFocusableItemAdd={React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount + 1),\n []\n )}\n onFocusableItemRemove={React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount - 1),\n []\n )}\n >\n {\n isClickFocusRef.current = true;\n })}\n onFocus={composeEventHandlers(props.onFocus, (event) => {\n // We normally wouldn't need this check, because we already check\n // that the focus is on the current target and not bubbling to it.\n // We do this because Safari doesn't focus buttons when clicked, and\n // instead, the wrapper will get focused and not through a bubbling event.\n const isKeyboardFocus = !isClickFocusRef.current;\n\n if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) {\n const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS);\n event.currentTarget.dispatchEvent(entryFocusEvent);\n\n if (!entryFocusEvent.defaultPrevented) {\n const items = getItems().filter((item) => item.focusable);\n const activeItem = items.find((item) => item.active);\n const currentItem = items.find((item) => item.id === currentTabStopId);\n const candidateItems = [activeItem, currentItem, ...items].filter(\n Boolean\n ) as typeof items;\n const candidateNodes = candidateItems.map((item) => item.ref.current!);\n focusFirst(candidateNodes);\n }\n }\n\n isClickFocusRef.current = false;\n })}\n onBlur={composeEventHandlers(props.onBlur, () => setIsTabbingBackOut(false))}\n />\n \n );\n});\n\n/* -------------------------------------------------------------------------------------------------\n * RovingFocusGroupItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst ITEM_NAME = 'RovingFocusGroupItem';\n\ntype RovingFocusItemElement = React.ElementRef;\ntype PrimitiveSpanProps = Radix.ComponentPropsWithoutRef;\ninterface RovingFocusItemProps extends PrimitiveSpanProps {\n tabStopId?: string;\n focusable?: boolean;\n active?: boolean;\n}\n\nconst RovingFocusGroupItem = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n focusable = true,\n active = false,\n tabStopId,\n ...itemProps\n } = props;\n const autoId = useId();\n const id = tabStopId || autoId;\n const context = useRovingFocusContext(ITEM_NAME, __scopeRovingFocusGroup);\n const isCurrentTabStop = context.currentTabStopId === id;\n const getItems = useCollection(__scopeRovingFocusGroup);\n\n const { onFocusableItemAdd, onFocusableItemRemove } = context;\n\n React.useEffect(() => {\n if (focusable) {\n onFocusableItemAdd();\n return () => onFocusableItemRemove();\n }\n }, [focusable, onFocusableItemAdd, onFocusableItemRemove]);\n\n return (\n \n {\n // We prevent focusing non-focusable items on `mousedown`.\n // Even though the item has tabIndex={-1}, that only means take it out of the tab order.\n if (!focusable) event.preventDefault();\n // Safari doesn't focus a button when clicked so we run our logic on mousedown also\n else context.onItemFocus(id);\n })}\n onFocus={composeEventHandlers(props.onFocus, () => context.onItemFocus(id))}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === 'Tab' && event.shiftKey) {\n context.onItemShiftTab();\n return;\n }\n\n if (event.target !== event.currentTarget) return;\n\n const focusIntent = getFocusIntent(event, context.orientation, context.dir);\n\n if (focusIntent !== undefined) {\n event.preventDefault();\n const items = getItems().filter((item) => item.focusable);\n let candidateNodes = items.map((item) => item.ref.current!);\n\n if (focusIntent === 'last') candidateNodes.reverse();\n else if (focusIntent === 'prev' || focusIntent === 'next') {\n if (focusIntent === 'prev') candidateNodes.reverse();\n const currentIndex = candidateNodes.indexOf(event.currentTarget);\n candidateNodes = context.loop\n ? wrapArray(candidateNodes, currentIndex + 1)\n : candidateNodes.slice(currentIndex + 1);\n }\n\n /**\n * Imperative focus during keydown is risky so we prevent React's batching updates\n * to avoid potential bugs. See: https://github.com/facebook/react/issues/20332\n */\n setTimeout(() => focusFirst(candidateNodes));\n }\n })}\n />\n \n );\n }\n);\n\nRovingFocusGroupItem.displayName = ITEM_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\n// prettier-ignore\nconst MAP_KEY_TO_FOCUS_INTENT: Record = {\n ArrowLeft: 'prev', ArrowUp: 'prev',\n ArrowRight: 'next', ArrowDown: 'next',\n PageUp: 'first', Home: 'first',\n PageDown: 'last', End: 'last',\n};\n\nfunction getDirectionAwareKey(key: string, dir?: Direction) {\n if (dir !== 'rtl') return key;\n return key === 'ArrowLeft' ? 'ArrowRight' : key === 'ArrowRight' ? 'ArrowLeft' : key;\n}\n\ntype FocusIntent = 'first' | 'last' | 'prev' | 'next';\n\nfunction getFocusIntent(event: React.KeyboardEvent, orientation?: Orientation, dir?: Direction) {\n const key = getDirectionAwareKey(event.key, dir);\n if (orientation === 'vertical' && ['ArrowLeft', 'ArrowRight'].includes(key)) return undefined;\n if (orientation === 'horizontal' && ['ArrowUp', 'ArrowDown'].includes(key)) return undefined;\n return MAP_KEY_TO_FOCUS_INTENT[key];\n}\n\nfunction focusFirst(candidates: HTMLElement[]) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n // if focus is already where we want to go, we don't want to keep going through the candidates\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus();\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\n\n/**\n * Wraps an array around itself at a given start index\n * Example: `wrapArray(['a', 'b', 'c', 'd'], 2) === ['c', 'd', 'a', 'b']`\n */\nfunction wrapArray(array: T[], startIndex: number) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\n\nconst Root = RovingFocusGroup;\nconst Item = RovingFocusGroupItem;\n\nexport {\n createRovingFocusGroupScope,\n //\n RovingFocusGroup,\n RovingFocusGroupItem,\n //\n Root,\n Item,\n};\nexport type { RovingFocusGroupProps, RovingFocusItemProps };\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { createRovingFocusGroupScope } from '@radix-ui/react-roving-focus';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport * as RovingFocusGroup from '@radix-ui/react-roving-focus';\nimport { useDirection } from '@radix-ui/react-direction';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { useId } from '@radix-ui/react-id';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Tabs\n * -----------------------------------------------------------------------------------------------*/\n\nconst TABS_NAME = 'Tabs';\n\ntype ScopedProps

= P & { __scopeTabs?: Scope };\nconst [createTabsContext, createTabsScope] = createContextScope(TABS_NAME, [\n createRovingFocusGroupScope,\n]);\nconst useRovingFocusGroupScope = createRovingFocusGroupScope();\n\ntype TabsContextValue = {\n baseId: string;\n value?: string;\n onValueChange: (value: string) => void;\n orientation?: TabsProps['orientation'];\n dir?: TabsProps['dir'];\n activationMode?: TabsProps['activationMode'];\n};\n\nconst [TabsProvider, useTabsContext] = createTabsContext(TABS_NAME);\n\ntype TabsElement = React.ElementRef;\ntype RovingFocusGroupProps = Radix.ComponentPropsWithoutRef;\ntype PrimitiveDivProps = Radix.ComponentPropsWithoutRef;\ninterface TabsProps extends PrimitiveDivProps {\n /** The value for the selected tab, if controlled */\n value?: string;\n /** The value of the tab to select by default, if uncontrolled */\n defaultValue?: string;\n /** A function called when a new tab is selected */\n onValueChange?: (value: string) => void;\n /**\n * The orientation the tabs are layed out.\n * Mainly so arrow navigation is done accordingly (left & right vs. up & down)\n * @defaultValue horizontal\n */\n orientation?: RovingFocusGroupProps['orientation'];\n /**\n * The direction of navigation between toolbar items.\n */\n dir?: RovingFocusGroupProps['dir'];\n /**\n * Whether a tab is activated automatically or manually.\n * @defaultValue automatic\n * */\n activationMode?: 'automatic' | 'manual';\n}\n\nconst Tabs = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const {\n __scopeTabs,\n value: valueProp,\n onValueChange,\n defaultValue,\n orientation = 'horizontal',\n dir,\n activationMode = 'automatic',\n ...tabsProps\n } = props;\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n onChange: onValueChange,\n defaultProp: defaultValue,\n });\n\n return (\n \n \n \n );\n }\n);\n\nTabs.displayName = TABS_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * TabsList\n * -----------------------------------------------------------------------------------------------*/\n\nconst TAB_LIST_NAME = 'TabsList';\n\ntype TabsListElement = React.ElementRef;\ninterface TabsListProps extends PrimitiveDivProps {\n loop?: RovingFocusGroupProps['loop'];\n}\n\nconst TabsList = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeTabs, loop = true, ...listProps } = props;\n const context = useTabsContext(TAB_LIST_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n return (\n \n \n \n );\n }\n);\n\nTabsList.displayName = TAB_LIST_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * TabsTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'TabsTrigger';\n\ntype TabsTriggerElement = React.ElementRef;\ntype PrimitiveButtonProps = Radix.ComponentPropsWithoutRef;\ninterface TabsTriggerProps extends PrimitiveButtonProps {\n value: string;\n}\n\nconst TabsTrigger = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeTabs, value, disabled = false, ...triggerProps } = props;\n const context = useTabsContext(TRIGGER_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n return (\n \n {\n // only call handler if it's the left button (mousedown gets triggered by all mouse buttons)\n // but not when the control key is pressed (avoiding MacOS right click)\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onValueChange(value);\n } else {\n // prevent focus to avoid accidental activation\n event.preventDefault();\n }\n })}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n if ([' ', 'Enter'].includes(event.key)) context.onValueChange(value);\n })}\n onFocus={composeEventHandlers(props.onFocus, () => {\n // handle \"automatic\" activation if necessary\n // ie. activate tab following focus\n const isAutomaticActivation = context.activationMode !== 'manual';\n if (!isSelected && !disabled && isAutomaticActivation) {\n context.onValueChange(value);\n }\n })}\n />\n \n );\n }\n);\n\nTabsTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * TabsContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'TabsContent';\n\ntype TabsContentElement = React.ElementRef;\ninterface TabsContentProps extends PrimitiveDivProps {\n value: string;\n\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst TabsContent = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeTabs, value, forceMount, children, ...contentProps } = props;\n const context = useTabsContext(CONTENT_NAME, __scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n const isMountAnimationPreventedRef = React.useRef(isSelected);\n\n React.useEffect(() => {\n const rAF = requestAnimationFrame(() => (isMountAnimationPreventedRef.current = false));\n return () => cancelAnimationFrame(rAF);\n }, []);\n\n return (\n \n {({ present }) => (\n \n );\n }\n);\n\nTabsContent.displayName = CONTENT_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\nfunction makeTriggerId(baseId: string, value: string) {\n return `${baseId}-trigger-${value}`;\n}\n\nfunction makeContentId(baseId: string, value: string) {\n return `${baseId}-content-${value}`;\n}\n\nconst Root = Tabs;\nconst List = TabsList;\nconst Trigger = TabsTrigger;\nconst Content = TabsContent;\n\nexport {\n createTabsScope,\n //\n Tabs,\n TabsList,\n TabsTrigger,\n TabsContent,\n //\n Root,\n List,\n Trigger,\n Content,\n};\nexport type { TabsProps, TabsListProps, TabsTriggerProps, TabsContentProps };\n","/**\n * Fuse.js v6.6.2 - Lightweight fuzzy-search (http://fusejs.io)\n *\n * Copyright (c) 2022 Kiro Risk (http://kiro.me)\n * All Rights Reserved. Apache Software License 2.0\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nfunction isArray(value) {\n return !Array.isArray\n ? getTag(value) === '[object Array]'\n : Array.isArray(value)\n}\n\n// Adapted from: https://github.com/lodash/lodash/blob/master/.internal/baseToString.js\nconst INFINITY = 1 / 0;\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value\n }\n let result = value + '';\n return result == '0' && 1 / value == -INFINITY ? '-0' : result\n}\n\nfunction toString(value) {\n return value == null ? '' : baseToString(value)\n}\n\nfunction isString(value) {\n return typeof value === 'string'\n}\n\nfunction isNumber(value) {\n return typeof value === 'number'\n}\n\n// Adapted from: https://github.com/lodash/lodash/blob/master/isBoolean.js\nfunction isBoolean(value) {\n return (\n value === true ||\n value === false ||\n (isObjectLike(value) && getTag(value) == '[object Boolean]')\n )\n}\n\nfunction isObject(value) {\n return typeof value === 'object'\n}\n\n// Checks if `value` is object-like.\nfunction isObjectLike(value) {\n return isObject(value) && value !== null\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null\n}\n\nfunction isBlank(value) {\n return !value.trim().length\n}\n\n// Gets the `toStringTag` of `value`.\n// Adapted from: https://github.com/lodash/lodash/blob/master/.internal/getTag.js\nfunction getTag(value) {\n return value == null\n ? value === undefined\n ? '[object Undefined]'\n : '[object Null]'\n : Object.prototype.toString.call(value)\n}\n\nconst EXTENDED_SEARCH_UNAVAILABLE = 'Extended search is not available';\n\nconst INCORRECT_INDEX_TYPE = \"Incorrect 'index' type\";\n\nconst LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY = (key) =>\n `Invalid value for key ${key}`;\n\nconst PATTERN_LENGTH_TOO_LARGE = (max) =>\n `Pattern length exceeds max of ${max}.`;\n\nconst MISSING_KEY_PROPERTY = (name) => `Missing ${name} property in key`;\n\nconst INVALID_KEY_WEIGHT_VALUE = (key) =>\n `Property 'weight' in key '${key}' must be a positive integer`;\n\nconst hasOwn = Object.prototype.hasOwnProperty;\n\nclass KeyStore {\n constructor(keys) {\n this._keys = [];\n this._keyMap = {};\n\n let totalWeight = 0;\n\n keys.forEach((key) => {\n let obj = createKey(key);\n\n totalWeight += obj.weight;\n\n this._keys.push(obj);\n this._keyMap[obj.id] = obj;\n\n totalWeight += obj.weight;\n });\n\n // Normalize weights so that their sum is equal to 1\n this._keys.forEach((key) => {\n key.weight /= totalWeight;\n });\n }\n get(keyId) {\n return this._keyMap[keyId]\n }\n keys() {\n return this._keys\n }\n toJSON() {\n return JSON.stringify(this._keys)\n }\n}\n\nfunction createKey(key) {\n let path = null;\n let id = null;\n let src = null;\n let weight = 1;\n let getFn = null;\n\n if (isString(key) || isArray(key)) {\n src = key;\n path = createKeyPath(key);\n id = createKeyId(key);\n } else {\n if (!hasOwn.call(key, 'name')) {\n throw new Error(MISSING_KEY_PROPERTY('name'))\n }\n\n const name = key.name;\n src = name;\n\n if (hasOwn.call(key, 'weight')) {\n weight = key.weight;\n\n if (weight <= 0) {\n throw new Error(INVALID_KEY_WEIGHT_VALUE(name))\n }\n }\n\n path = createKeyPath(name);\n id = createKeyId(name);\n getFn = key.getFn;\n }\n\n return { path, id, weight, src, getFn }\n}\n\nfunction createKeyPath(key) {\n return isArray(key) ? key : key.split('.')\n}\n\nfunction createKeyId(key) {\n return isArray(key) ? key.join('.') : key\n}\n\nfunction get(obj, path) {\n let list = [];\n let arr = false;\n\n const deepGet = (obj, path, index) => {\n if (!isDefined(obj)) {\n return\n }\n if (!path[index]) {\n // If there's no path left, we've arrived at the object we care about.\n list.push(obj);\n } else {\n let key = path[index];\n\n const value = obj[key];\n\n if (!isDefined(value)) {\n return\n }\n\n // If we're at the last value in the path, and if it's a string/number/bool,\n // add it to the list\n if (\n index === path.length - 1 &&\n (isString(value) || isNumber(value) || isBoolean(value))\n ) {\n list.push(toString(value));\n } else if (isArray(value)) {\n arr = true;\n // Search each item in the array.\n for (let i = 0, len = value.length; i < len; i += 1) {\n deepGet(value[i], path, index + 1);\n }\n } else if (path.length) {\n // An object. Recurse further.\n deepGet(value, path, index + 1);\n }\n }\n };\n\n // Backwards compatibility (since path used to be a string)\n deepGet(obj, isString(path) ? path.split('.') : path, 0);\n\n return arr ? list : list[0]\n}\n\nconst MatchOptions = {\n // Whether the matches should be included in the result set. When `true`, each record in the result\n // set will include the indices of the matched characters.\n // These can consequently be used for highlighting purposes.\n includeMatches: false,\n // When `true`, the matching function will continue to the end of a search pattern even if\n // a perfect match has already been located in the string.\n findAllMatches: false,\n // Minimum number of characters that must be matched before a result is considered a match\n minMatchCharLength: 1\n};\n\nconst BasicOptions = {\n // When `true`, the algorithm continues searching to the end of the input even if a perfect\n // match is found before the end of the same input.\n isCaseSensitive: false,\n // When true, the matching function will continue to the end of a search pattern even if\n includeScore: false,\n // List of properties that will be searched. This also supports nested properties.\n keys: [],\n // Whether to sort the result list, by score\n shouldSort: true,\n // Default sort function: sort by ascending score, ascending index\n sortFn: (a, b) =>\n a.score === b.score ? (a.idx < b.idx ? -1 : 1) : a.score < b.score ? -1 : 1\n};\n\nconst FuzzyOptions = {\n // Approximately where in the text is the pattern expected to be found?\n location: 0,\n // At what point does the match algorithm give up. A threshold of '0.0' requires a perfect match\n // (of both letters and location), a threshold of '1.0' would match anything.\n threshold: 0.6,\n // Determines how close the match must be to the fuzzy location (specified above).\n // An exact letter match which is 'distance' characters away from the fuzzy location\n // would score as a complete mismatch. A distance of '0' requires the match be at\n // the exact location specified, a threshold of '1000' would require a perfect match\n // to be within 800 characters of the fuzzy location to be found using a 0.8 threshold.\n distance: 100\n};\n\nconst AdvancedOptions = {\n // When `true`, it enables the use of unix-like search commands\n useExtendedSearch: false,\n // The get function to use when fetching an object's properties.\n // The default will search nested paths *ie foo.bar.baz*\n getFn: get,\n // When `true`, search will ignore `location` and `distance`, so it won't matter\n // where in the string the pattern appears.\n // More info: https://fusejs.io/concepts/scoring-theory.html#fuzziness-score\n ignoreLocation: false,\n // When `true`, the calculation for the relevance score (used for sorting) will\n // ignore the field-length norm.\n // More info: https://fusejs.io/concepts/scoring-theory.html#field-length-norm\n ignoreFieldNorm: false,\n // The weight to determine how much field length norm effects scoring.\n fieldNormWeight: 1\n};\n\nvar Config = {\n ...BasicOptions,\n ...MatchOptions,\n ...FuzzyOptions,\n ...AdvancedOptions\n};\n\nconst SPACE = /[^ ]+/g;\n\n// Field-length norm: the shorter the field, the higher the weight.\n// Set to 3 decimals to reduce index size.\nfunction norm(weight = 1, mantissa = 3) {\n const cache = new Map();\n const m = Math.pow(10, mantissa);\n\n return {\n get(value) {\n const numTokens = value.match(SPACE).length;\n\n if (cache.has(numTokens)) {\n return cache.get(numTokens)\n }\n\n // Default function is 1/sqrt(x), weight makes that variable\n const norm = 1 / Math.pow(numTokens, 0.5 * weight);\n\n // In place of `toFixed(mantissa)`, for faster computation\n const n = parseFloat(Math.round(norm * m) / m);\n\n cache.set(numTokens, n);\n\n return n\n },\n clear() {\n cache.clear();\n }\n }\n}\n\nclass FuseIndex {\n constructor({\n getFn = Config.getFn,\n fieldNormWeight = Config.fieldNormWeight\n } = {}) {\n this.norm = norm(fieldNormWeight, 3);\n this.getFn = getFn;\n this.isCreated = false;\n\n this.setIndexRecords();\n }\n setSources(docs = []) {\n this.docs = docs;\n }\n setIndexRecords(records = []) {\n this.records = records;\n }\n setKeys(keys = []) {\n this.keys = keys;\n this._keysMap = {};\n keys.forEach((key, idx) => {\n this._keysMap[key.id] = idx;\n });\n }\n create() {\n if (this.isCreated || !this.docs.length) {\n return\n }\n\n this.isCreated = true;\n\n // List is Array\n if (isString(this.docs[0])) {\n this.docs.forEach((doc, docIndex) => {\n this._addString(doc, docIndex);\n });\n } else {\n // List is Array\n this.docs.forEach((doc, docIndex) => {\n this._addObject(doc, docIndex);\n });\n }\n\n this.norm.clear();\n }\n // Adds a doc to the end of the index\n add(doc) {\n const idx = this.size();\n\n if (isString(doc)) {\n this._addString(doc, idx);\n } else {\n this._addObject(doc, idx);\n }\n }\n // Removes the doc at the specified index of the index\n removeAt(idx) {\n this.records.splice(idx, 1);\n\n // Change ref index of every subsquent doc\n for (let i = idx, len = this.size(); i < len; i += 1) {\n this.records[i].i -= 1;\n }\n }\n getValueForItemAtKeyId(item, keyId) {\n return item[this._keysMap[keyId]]\n }\n size() {\n return this.records.length\n }\n _addString(doc, docIndex) {\n if (!isDefined(doc) || isBlank(doc)) {\n return\n }\n\n let record = {\n v: doc,\n i: docIndex,\n n: this.norm.get(doc)\n };\n\n this.records.push(record);\n }\n _addObject(doc, docIndex) {\n let record = { i: docIndex, $: {} };\n\n // Iterate over every key (i.e, path), and fetch the value at that key\n this.keys.forEach((key, keyIndex) => {\n let value = key.getFn ? key.getFn(doc) : this.getFn(doc, key.path);\n\n if (!isDefined(value)) {\n return\n }\n\n if (isArray(value)) {\n let subRecords = [];\n const stack = [{ nestedArrIndex: -1, value }];\n\n while (stack.length) {\n const { nestedArrIndex, value } = stack.pop();\n\n if (!isDefined(value)) {\n continue\n }\n\n if (isString(value) && !isBlank(value)) {\n let subRecord = {\n v: value,\n i: nestedArrIndex,\n n: this.norm.get(value)\n };\n\n subRecords.push(subRecord);\n } else if (isArray(value)) {\n value.forEach((item, k) => {\n stack.push({\n nestedArrIndex: k,\n value: item\n });\n });\n } else ;\n }\n record.$[keyIndex] = subRecords;\n } else if (isString(value) && !isBlank(value)) {\n let subRecord = {\n v: value,\n n: this.norm.get(value)\n };\n\n record.$[keyIndex] = subRecord;\n }\n });\n\n this.records.push(record);\n }\n toJSON() {\n return {\n keys: this.keys,\n records: this.records\n }\n }\n}\n\nfunction createIndex(\n keys,\n docs,\n { getFn = Config.getFn, fieldNormWeight = Config.fieldNormWeight } = {}\n) {\n const myIndex = new FuseIndex({ getFn, fieldNormWeight });\n myIndex.setKeys(keys.map(createKey));\n myIndex.setSources(docs);\n myIndex.create();\n return myIndex\n}\n\nfunction parseIndex(\n data,\n { getFn = Config.getFn, fieldNormWeight = Config.fieldNormWeight } = {}\n) {\n const { keys, records } = data;\n const myIndex = new FuseIndex({ getFn, fieldNormWeight });\n myIndex.setKeys(keys);\n myIndex.setIndexRecords(records);\n return myIndex\n}\n\nfunction computeScore$1(\n pattern,\n {\n errors = 0,\n currentLocation = 0,\n expectedLocation = 0,\n distance = Config.distance,\n ignoreLocation = Config.ignoreLocation\n } = {}\n) {\n const accuracy = errors / pattern.length;\n\n if (ignoreLocation) {\n return accuracy\n }\n\n const proximity = Math.abs(expectedLocation - currentLocation);\n\n if (!distance) {\n // Dodge divide by zero error.\n return proximity ? 1.0 : accuracy\n }\n\n return accuracy + proximity / distance\n}\n\nfunction convertMaskToIndices(\n matchmask = [],\n minMatchCharLength = Config.minMatchCharLength\n) {\n let indices = [];\n let start = -1;\n let end = -1;\n let i = 0;\n\n for (let len = matchmask.length; i < len; i += 1) {\n let match = matchmask[i];\n if (match && start === -1) {\n start = i;\n } else if (!match && start !== -1) {\n end = i - 1;\n if (end - start + 1 >= minMatchCharLength) {\n indices.push([start, end]);\n }\n start = -1;\n }\n }\n\n // (i-1 - start) + 1 => i - start\n if (matchmask[i - 1] && i - start >= minMatchCharLength) {\n indices.push([start, i - 1]);\n }\n\n return indices\n}\n\n// Machine word size\nconst MAX_BITS = 32;\n\nfunction search(\n text,\n pattern,\n patternAlphabet,\n {\n location = Config.location,\n distance = Config.distance,\n threshold = Config.threshold,\n findAllMatches = Config.findAllMatches,\n minMatchCharLength = Config.minMatchCharLength,\n includeMatches = Config.includeMatches,\n ignoreLocation = Config.ignoreLocation\n } = {}\n) {\n if (pattern.length > MAX_BITS) {\n throw new Error(PATTERN_LENGTH_TOO_LARGE(MAX_BITS))\n }\n\n const patternLen = pattern.length;\n // Set starting location at beginning text and initialize the alphabet.\n const textLen = text.length;\n // Handle the case when location > text.length\n const expectedLocation = Math.max(0, Math.min(location, textLen));\n // Highest score beyond which we give up.\n let currentThreshold = threshold;\n // Is there a nearby exact match? (speedup)\n let bestLocation = expectedLocation;\n\n // Performance: only computer matches when the minMatchCharLength > 1\n // OR if `includeMatches` is true.\n const computeMatches = minMatchCharLength > 1 || includeMatches;\n // A mask of the matches, used for building the indices\n const matchMask = computeMatches ? Array(textLen) : [];\n\n let index;\n\n // Get all exact matches, here for speed up\n while ((index = text.indexOf(pattern, bestLocation)) > -1) {\n let score = computeScore$1(pattern, {\n currentLocation: index,\n expectedLocation,\n distance,\n ignoreLocation\n });\n\n currentThreshold = Math.min(score, currentThreshold);\n bestLocation = index + patternLen;\n\n if (computeMatches) {\n let i = 0;\n while (i < patternLen) {\n matchMask[index + i] = 1;\n i += 1;\n }\n }\n }\n\n // Reset the best location\n bestLocation = -1;\n\n let lastBitArr = [];\n let finalScore = 1;\n let binMax = patternLen + textLen;\n\n const mask = 1 << (patternLen - 1);\n\n for (let i = 0; i < patternLen; i += 1) {\n // Scan for the best match; each iteration allows for one more error.\n // Run a binary search to determine how far from the match location we can stray\n // at this error level.\n let binMin = 0;\n let binMid = binMax;\n\n while (binMin < binMid) {\n const score = computeScore$1(pattern, {\n errors: i,\n currentLocation: expectedLocation + binMid,\n expectedLocation,\n distance,\n ignoreLocation\n });\n\n if (score <= currentThreshold) {\n binMin = binMid;\n } else {\n binMax = binMid;\n }\n\n binMid = Math.floor((binMax - binMin) / 2 + binMin);\n }\n\n // Use the result from this iteration as the maximum for the next.\n binMax = binMid;\n\n let start = Math.max(1, expectedLocation - binMid + 1);\n let finish = findAllMatches\n ? textLen\n : Math.min(expectedLocation + binMid, textLen) + patternLen;\n\n // Initialize the bit array\n let bitArr = Array(finish + 2);\n\n bitArr[finish + 1] = (1 << i) - 1;\n\n for (let j = finish; j >= start; j -= 1) {\n let currentLocation = j - 1;\n let charMatch = patternAlphabet[text.charAt(currentLocation)];\n\n if (computeMatches) {\n // Speed up: quick bool to int conversion (i.e, `charMatch ? 1 : 0`)\n matchMask[currentLocation] = +!!charMatch;\n }\n\n // First pass: exact match\n bitArr[j] = ((bitArr[j + 1] << 1) | 1) & charMatch;\n\n // Subsequent passes: fuzzy match\n if (i) {\n bitArr[j] |=\n ((lastBitArr[j + 1] | lastBitArr[j]) << 1) | 1 | lastBitArr[j + 1];\n }\n\n if (bitArr[j] & mask) {\n finalScore = computeScore$1(pattern, {\n errors: i,\n currentLocation,\n expectedLocation,\n distance,\n ignoreLocation\n });\n\n // This match will almost certainly be better than any existing match.\n // But check anyway.\n if (finalScore <= currentThreshold) {\n // Indeed it is\n currentThreshold = finalScore;\n bestLocation = currentLocation;\n\n // Already passed `loc`, downhill from here on in.\n if (bestLocation <= expectedLocation) {\n break\n }\n\n // When passing `bestLocation`, don't exceed our current distance from `expectedLocation`.\n start = Math.max(1, 2 * expectedLocation - bestLocation);\n }\n }\n }\n\n // No hope for a (better) match at greater error levels.\n const score = computeScore$1(pattern, {\n errors: i + 1,\n currentLocation: expectedLocation,\n expectedLocation,\n distance,\n ignoreLocation\n });\n\n if (score > currentThreshold) {\n break\n }\n\n lastBitArr = bitArr;\n }\n\n const result = {\n isMatch: bestLocation >= 0,\n // Count exact matches (those with a score of 0) to be \"almost\" exact\n score: Math.max(0.001, finalScore)\n };\n\n if (computeMatches) {\n const indices = convertMaskToIndices(matchMask, minMatchCharLength);\n if (!indices.length) {\n result.isMatch = false;\n } else if (includeMatches) {\n result.indices = indices;\n }\n }\n\n return result\n}\n\nfunction createPatternAlphabet(pattern) {\n let mask = {};\n\n for (let i = 0, len = pattern.length; i < len; i += 1) {\n const char = pattern.charAt(i);\n mask[char] = (mask[char] || 0) | (1 << (len - i - 1));\n }\n\n return mask\n}\n\nclass BitapSearch {\n constructor(\n pattern,\n {\n location = Config.location,\n threshold = Config.threshold,\n distance = Config.distance,\n includeMatches = Config.includeMatches,\n findAllMatches = Config.findAllMatches,\n minMatchCharLength = Config.minMatchCharLength,\n isCaseSensitive = Config.isCaseSensitive,\n ignoreLocation = Config.ignoreLocation\n } = {}\n ) {\n this.options = {\n location,\n threshold,\n distance,\n includeMatches,\n findAllMatches,\n minMatchCharLength,\n isCaseSensitive,\n ignoreLocation\n };\n\n this.pattern = isCaseSensitive ? pattern : pattern.toLowerCase();\n\n this.chunks = [];\n\n if (!this.pattern.length) {\n return\n }\n\n const addChunk = (pattern, startIndex) => {\n this.chunks.push({\n pattern,\n alphabet: createPatternAlphabet(pattern),\n startIndex\n });\n };\n\n const len = this.pattern.length;\n\n if (len > MAX_BITS) {\n let i = 0;\n const remainder = len % MAX_BITS;\n const end = len - remainder;\n\n while (i < end) {\n addChunk(this.pattern.substr(i, MAX_BITS), i);\n i += MAX_BITS;\n }\n\n if (remainder) {\n const startIndex = len - MAX_BITS;\n addChunk(this.pattern.substr(startIndex), startIndex);\n }\n } else {\n addChunk(this.pattern, 0);\n }\n }\n\n searchIn(text) {\n const { isCaseSensitive, includeMatches } = this.options;\n\n if (!isCaseSensitive) {\n text = text.toLowerCase();\n }\n\n // Exact match\n if (this.pattern === text) {\n let result = {\n isMatch: true,\n score: 0\n };\n\n if (includeMatches) {\n result.indices = [[0, text.length - 1]];\n }\n\n return result\n }\n\n // Otherwise, use Bitap algorithm\n const {\n location,\n distance,\n threshold,\n findAllMatches,\n minMatchCharLength,\n ignoreLocation\n } = this.options;\n\n let allIndices = [];\n let totalScore = 0;\n let hasMatches = false;\n\n this.chunks.forEach(({ pattern, alphabet, startIndex }) => {\n const { isMatch, score, indices } = search(text, pattern, alphabet, {\n location: location + startIndex,\n distance,\n threshold,\n findAllMatches,\n minMatchCharLength,\n includeMatches,\n ignoreLocation\n });\n\n if (isMatch) {\n hasMatches = true;\n }\n\n totalScore += score;\n\n if (isMatch && indices) {\n allIndices = [...allIndices, ...indices];\n }\n });\n\n let result = {\n isMatch: hasMatches,\n score: hasMatches ? totalScore / this.chunks.length : 1\n };\n\n if (hasMatches && includeMatches) {\n result.indices = allIndices;\n }\n\n return result\n }\n}\n\nclass BaseMatch {\n constructor(pattern) {\n this.pattern = pattern;\n }\n static isMultiMatch(pattern) {\n return getMatch(pattern, this.multiRegex)\n }\n static isSingleMatch(pattern) {\n return getMatch(pattern, this.singleRegex)\n }\n search(/*text*/) {}\n}\n\nfunction getMatch(pattern, exp) {\n const matches = pattern.match(exp);\n return matches ? matches[1] : null\n}\n\n// Token: 'file\n\nclass ExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'exact'\n }\n static get multiRegex() {\n return /^=\"(.*)\"$/\n }\n static get singleRegex() {\n return /^=(.*)$/\n }\n search(text) {\n const isMatch = text === this.pattern;\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, this.pattern.length - 1]\n }\n }\n}\n\n// Token: !fire\n\nclass InverseExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'inverse-exact'\n }\n static get multiRegex() {\n return /^!\"(.*)\"$/\n }\n static get singleRegex() {\n return /^!(.*)$/\n }\n search(text) {\n const index = text.indexOf(this.pattern);\n const isMatch = index === -1;\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, text.length - 1]\n }\n }\n}\n\n// Token: ^file\n\nclass PrefixExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'prefix-exact'\n }\n static get multiRegex() {\n return /^\\^\"(.*)\"$/\n }\n static get singleRegex() {\n return /^\\^(.*)$/\n }\n search(text) {\n const isMatch = text.startsWith(this.pattern);\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, this.pattern.length - 1]\n }\n }\n}\n\n// Token: !^fire\n\nclass InversePrefixExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'inverse-prefix-exact'\n }\n static get multiRegex() {\n return /^!\\^\"(.*)\"$/\n }\n static get singleRegex() {\n return /^!\\^(.*)$/\n }\n search(text) {\n const isMatch = !text.startsWith(this.pattern);\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, text.length - 1]\n }\n }\n}\n\n// Token: .file$\n\nclass SuffixExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'suffix-exact'\n }\n static get multiRegex() {\n return /^\"(.*)\"\\$$/\n }\n static get singleRegex() {\n return /^(.*)\\$$/\n }\n search(text) {\n const isMatch = text.endsWith(this.pattern);\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [text.length - this.pattern.length, text.length - 1]\n }\n }\n}\n\n// Token: !.file$\n\nclass InverseSuffixExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'inverse-suffix-exact'\n }\n static get multiRegex() {\n return /^!\"(.*)\"\\$$/\n }\n static get singleRegex() {\n return /^!(.*)\\$$/\n }\n search(text) {\n const isMatch = !text.endsWith(this.pattern);\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, text.length - 1]\n }\n }\n}\n\nclass FuzzyMatch extends BaseMatch {\n constructor(\n pattern,\n {\n location = Config.location,\n threshold = Config.threshold,\n distance = Config.distance,\n includeMatches = Config.includeMatches,\n findAllMatches = Config.findAllMatches,\n minMatchCharLength = Config.minMatchCharLength,\n isCaseSensitive = Config.isCaseSensitive,\n ignoreLocation = Config.ignoreLocation\n } = {}\n ) {\n super(pattern);\n this._bitapSearch = new BitapSearch(pattern, {\n location,\n threshold,\n distance,\n includeMatches,\n findAllMatches,\n minMatchCharLength,\n isCaseSensitive,\n ignoreLocation\n });\n }\n static get type() {\n return 'fuzzy'\n }\n static get multiRegex() {\n return /^\"(.*)\"$/\n }\n static get singleRegex() {\n return /^(.*)$/\n }\n search(text) {\n return this._bitapSearch.searchIn(text)\n }\n}\n\n// Token: 'file\n\nclass IncludeMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'include'\n }\n static get multiRegex() {\n return /^'\"(.*)\"$/\n }\n static get singleRegex() {\n return /^'(.*)$/\n }\n search(text) {\n let location = 0;\n let index;\n\n const indices = [];\n const patternLen = this.pattern.length;\n\n // Get all exact matches\n while ((index = text.indexOf(this.pattern, location)) > -1) {\n location = index + patternLen;\n indices.push([index, location - 1]);\n }\n\n const isMatch = !!indices.length;\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices\n }\n }\n}\n\n// ❗Order is important. DO NOT CHANGE.\nconst searchers = [\n ExactMatch,\n IncludeMatch,\n PrefixExactMatch,\n InversePrefixExactMatch,\n InverseSuffixExactMatch,\n SuffixExactMatch,\n InverseExactMatch,\n FuzzyMatch\n];\n\nconst searchersLen = searchers.length;\n\n// Regex to split by spaces, but keep anything in quotes together\nconst SPACE_RE = / +(?=(?:[^\\\"]*\\\"[^\\\"]*\\\")*[^\\\"]*$)/;\nconst OR_TOKEN = '|';\n\n// Return a 2D array representation of the query, for simpler parsing.\n// Example:\n// \"^core go$ | rb$ | py$ xy$\" => [[\"^core\", \"go$\"], [\"rb$\"], [\"py$\", \"xy$\"]]\nfunction parseQuery(pattern, options = {}) {\n return pattern.split(OR_TOKEN).map((item) => {\n let query = item\n .trim()\n .split(SPACE_RE)\n .filter((item) => item && !!item.trim());\n\n let results = [];\n for (let i = 0, len = query.length; i < len; i += 1) {\n const queryItem = query[i];\n\n // 1. Handle multiple query match (i.e, once that are quoted, like `\"hello world\"`)\n let found = false;\n let idx = -1;\n while (!found && ++idx < searchersLen) {\n const searcher = searchers[idx];\n let token = searcher.isMultiMatch(queryItem);\n if (token) {\n results.push(new searcher(token, options));\n found = true;\n }\n }\n\n if (found) {\n continue\n }\n\n // 2. Handle single query matches (i.e, once that are *not* quoted)\n idx = -1;\n while (++idx < searchersLen) {\n const searcher = searchers[idx];\n let token = searcher.isSingleMatch(queryItem);\n if (token) {\n results.push(new searcher(token, options));\n break\n }\n }\n }\n\n return results\n })\n}\n\n// These extended matchers can return an array of matches, as opposed\n// to a singl match\nconst MultiMatchSet = new Set([FuzzyMatch.type, IncludeMatch.type]);\n\n/**\n * Command-like searching\n * ======================\n *\n * Given multiple search terms delimited by spaces.e.g. `^jscript .python$ ruby !java`,\n * search in a given text.\n *\n * Search syntax:\n *\n * | Token | Match type | Description |\n * | ----------- | -------------------------- | -------------------------------------- |\n * | `jscript` | fuzzy-match | Items that fuzzy match `jscript` |\n * | `=scheme` | exact-match | Items that are `scheme` |\n * | `'python` | include-match | Items that include `python` |\n * | `!ruby` | inverse-exact-match | Items that do not include `ruby` |\n * | `^java` | prefix-exact-match | Items that start with `java` |\n * | `!^earlang` | inverse-prefix-exact-match | Items that do not start with `earlang` |\n * | `.js$` | suffix-exact-match | Items that end with `.js` |\n * | `!.go$` | inverse-suffix-exact-match | Items that do not end with `.go` |\n *\n * A single pipe character acts as an OR operator. For example, the following\n * query matches entries that start with `core` and end with either`go`, `rb`,\n * or`py`.\n *\n * ```\n * ^core go$ | rb$ | py$\n * ```\n */\nclass ExtendedSearch {\n constructor(\n pattern,\n {\n isCaseSensitive = Config.isCaseSensitive,\n includeMatches = Config.includeMatches,\n minMatchCharLength = Config.minMatchCharLength,\n ignoreLocation = Config.ignoreLocation,\n findAllMatches = Config.findAllMatches,\n location = Config.location,\n threshold = Config.threshold,\n distance = Config.distance\n } = {}\n ) {\n this.query = null;\n this.options = {\n isCaseSensitive,\n includeMatches,\n minMatchCharLength,\n findAllMatches,\n ignoreLocation,\n location,\n threshold,\n distance\n };\n\n this.pattern = isCaseSensitive ? pattern : pattern.toLowerCase();\n this.query = parseQuery(this.pattern, this.options);\n }\n\n static condition(_, options) {\n return options.useExtendedSearch\n }\n\n searchIn(text) {\n const query = this.query;\n\n if (!query) {\n return {\n isMatch: false,\n score: 1\n }\n }\n\n const { includeMatches, isCaseSensitive } = this.options;\n\n text = isCaseSensitive ? text : text.toLowerCase();\n\n let numMatches = 0;\n let allIndices = [];\n let totalScore = 0;\n\n // ORs\n for (let i = 0, qLen = query.length; i < qLen; i += 1) {\n const searchers = query[i];\n\n // Reset indices\n allIndices.length = 0;\n numMatches = 0;\n\n // ANDs\n for (let j = 0, pLen = searchers.length; j < pLen; j += 1) {\n const searcher = searchers[j];\n const { isMatch, indices, score } = searcher.search(text);\n\n if (isMatch) {\n numMatches += 1;\n totalScore += score;\n if (includeMatches) {\n const type = searcher.constructor.type;\n if (MultiMatchSet.has(type)) {\n allIndices = [...allIndices, ...indices];\n } else {\n allIndices.push(indices);\n }\n }\n } else {\n totalScore = 0;\n numMatches = 0;\n allIndices.length = 0;\n break\n }\n }\n\n // OR condition, so if TRUE, return\n if (numMatches) {\n let result = {\n isMatch: true,\n score: totalScore / numMatches\n };\n\n if (includeMatches) {\n result.indices = allIndices;\n }\n\n return result\n }\n }\n\n // Nothing was matched\n return {\n isMatch: false,\n score: 1\n }\n }\n}\n\nconst registeredSearchers = [];\n\nfunction register(...args) {\n registeredSearchers.push(...args);\n}\n\nfunction createSearcher(pattern, options) {\n for (let i = 0, len = registeredSearchers.length; i < len; i += 1) {\n let searcherClass = registeredSearchers[i];\n if (searcherClass.condition(pattern, options)) {\n return new searcherClass(pattern, options)\n }\n }\n\n return new BitapSearch(pattern, options)\n}\n\nconst LogicalOperator = {\n AND: '$and',\n OR: '$or'\n};\n\nconst KeyType = {\n PATH: '$path',\n PATTERN: '$val'\n};\n\nconst isExpression = (query) =>\n !!(query[LogicalOperator.AND] || query[LogicalOperator.OR]);\n\nconst isPath = (query) => !!query[KeyType.PATH];\n\nconst isLeaf = (query) =>\n !isArray(query) && isObject(query) && !isExpression(query);\n\nconst convertToExplicit = (query) => ({\n [LogicalOperator.AND]: Object.keys(query).map((key) => ({\n [key]: query[key]\n }))\n});\n\n// When `auto` is `true`, the parse function will infer and initialize and add\n// the appropriate `Searcher` instance\nfunction parse(query, options, { auto = true } = {}) {\n const next = (query) => {\n let keys = Object.keys(query);\n\n const isQueryPath = isPath(query);\n\n if (!isQueryPath && keys.length > 1 && !isExpression(query)) {\n return next(convertToExplicit(query))\n }\n\n if (isLeaf(query)) {\n const key = isQueryPath ? query[KeyType.PATH] : keys[0];\n\n const pattern = isQueryPath ? query[KeyType.PATTERN] : query[key];\n\n if (!isString(pattern)) {\n throw new Error(LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY(key))\n }\n\n const obj = {\n keyId: createKeyId(key),\n pattern\n };\n\n if (auto) {\n obj.searcher = createSearcher(pattern, options);\n }\n\n return obj\n }\n\n let node = {\n children: [],\n operator: keys[0]\n };\n\n keys.forEach((key) => {\n const value = query[key];\n\n if (isArray(value)) {\n value.forEach((item) => {\n node.children.push(next(item));\n });\n }\n });\n\n return node\n };\n\n if (!isExpression(query)) {\n query = convertToExplicit(query);\n }\n\n return next(query)\n}\n\n// Practical scoring function\nfunction computeScore(\n results,\n { ignoreFieldNorm = Config.ignoreFieldNorm }\n) {\n results.forEach((result) => {\n let totalScore = 1;\n\n result.matches.forEach(({ key, norm, score }) => {\n const weight = key ? key.weight : null;\n\n totalScore *= Math.pow(\n score === 0 && weight ? Number.EPSILON : score,\n (weight || 1) * (ignoreFieldNorm ? 1 : norm)\n );\n });\n\n result.score = totalScore;\n });\n}\n\nfunction transformMatches(result, data) {\n const matches = result.matches;\n data.matches = [];\n\n if (!isDefined(matches)) {\n return\n }\n\n matches.forEach((match) => {\n if (!isDefined(match.indices) || !match.indices.length) {\n return\n }\n\n const { indices, value } = match;\n\n let obj = {\n indices,\n value\n };\n\n if (match.key) {\n obj.key = match.key.src;\n }\n\n if (match.idx > -1) {\n obj.refIndex = match.idx;\n }\n\n data.matches.push(obj);\n });\n}\n\nfunction transformScore(result, data) {\n data.score = result.score;\n}\n\nfunction format(\n results,\n docs,\n {\n includeMatches = Config.includeMatches,\n includeScore = Config.includeScore\n } = {}\n) {\n const transformers = [];\n\n if (includeMatches) transformers.push(transformMatches);\n if (includeScore) transformers.push(transformScore);\n\n return results.map((result) => {\n const { idx } = result;\n\n const data = {\n item: docs[idx],\n refIndex: idx\n };\n\n if (transformers.length) {\n transformers.forEach((transformer) => {\n transformer(result, data);\n });\n }\n\n return data\n })\n}\n\nclass Fuse {\n constructor(docs, options = {}, index) {\n this.options = { ...Config, ...options };\n\n if (\n this.options.useExtendedSearch &&\n !true\n ) {\n throw new Error(EXTENDED_SEARCH_UNAVAILABLE)\n }\n\n this._keyStore = new KeyStore(this.options.keys);\n\n this.setCollection(docs, index);\n }\n\n setCollection(docs, index) {\n this._docs = docs;\n\n if (index && !(index instanceof FuseIndex)) {\n throw new Error(INCORRECT_INDEX_TYPE)\n }\n\n this._myIndex =\n index ||\n createIndex(this.options.keys, this._docs, {\n getFn: this.options.getFn,\n fieldNormWeight: this.options.fieldNormWeight\n });\n }\n\n add(doc) {\n if (!isDefined(doc)) {\n return\n }\n\n this._docs.push(doc);\n this._myIndex.add(doc);\n }\n\n remove(predicate = (/* doc, idx */) => false) {\n const results = [];\n\n for (let i = 0, len = this._docs.length; i < len; i += 1) {\n const doc = this._docs[i];\n if (predicate(doc, i)) {\n this.removeAt(i);\n i -= 1;\n len -= 1;\n\n results.push(doc);\n }\n }\n\n return results\n }\n\n removeAt(idx) {\n this._docs.splice(idx, 1);\n this._myIndex.removeAt(idx);\n }\n\n getIndex() {\n return this._myIndex\n }\n\n search(query, { limit = -1 } = {}) {\n const {\n includeMatches,\n includeScore,\n shouldSort,\n sortFn,\n ignoreFieldNorm\n } = this.options;\n\n let results = isString(query)\n ? isString(this._docs[0])\n ? this._searchStringList(query)\n : this._searchObjectList(query)\n : this._searchLogical(query);\n\n computeScore(results, { ignoreFieldNorm });\n\n if (shouldSort) {\n results.sort(sortFn);\n }\n\n if (isNumber(limit) && limit > -1) {\n results = results.slice(0, limit);\n }\n\n return format(results, this._docs, {\n includeMatches,\n includeScore\n })\n }\n\n _searchStringList(query) {\n const searcher = createSearcher(query, this.options);\n const { records } = this._myIndex;\n const results = [];\n\n // Iterate over every string in the index\n records.forEach(({ v: text, i: idx, n: norm }) => {\n if (!isDefined(text)) {\n return\n }\n\n const { isMatch, score, indices } = searcher.searchIn(text);\n\n if (isMatch) {\n results.push({\n item: text,\n idx,\n matches: [{ score, value: text, norm, indices }]\n });\n }\n });\n\n return results\n }\n\n _searchLogical(query) {\n\n const expression = parse(query, this.options);\n\n const evaluate = (node, item, idx) => {\n if (!node.children) {\n const { keyId, searcher } = node;\n\n const matches = this._findMatches({\n key: this._keyStore.get(keyId),\n value: this._myIndex.getValueForItemAtKeyId(item, keyId),\n searcher\n });\n\n if (matches && matches.length) {\n return [\n {\n idx,\n item,\n matches\n }\n ]\n }\n\n return []\n }\n\n const res = [];\n for (let i = 0, len = node.children.length; i < len; i += 1) {\n const child = node.children[i];\n const result = evaluate(child, item, idx);\n if (result.length) {\n res.push(...result);\n } else if (node.operator === LogicalOperator.AND) {\n return []\n }\n }\n return res\n };\n\n const records = this._myIndex.records;\n const resultMap = {};\n const results = [];\n\n records.forEach(({ $: item, i: idx }) => {\n if (isDefined(item)) {\n let expResults = evaluate(expression, item, idx);\n\n if (expResults.length) {\n // Dedupe when adding\n if (!resultMap[idx]) {\n resultMap[idx] = { idx, item, matches: [] };\n results.push(resultMap[idx]);\n }\n expResults.forEach(({ matches }) => {\n resultMap[idx].matches.push(...matches);\n });\n }\n }\n });\n\n return results\n }\n\n _searchObjectList(query) {\n const searcher = createSearcher(query, this.options);\n const { keys, records } = this._myIndex;\n const results = [];\n\n // List is Array\n records.forEach(({ $: item, i: idx }) => {\n if (!isDefined(item)) {\n return\n }\n\n let matches = [];\n\n // Iterate over every key (i.e, path), and fetch the value at that key\n keys.forEach((key, keyIndex) => {\n matches.push(\n ...this._findMatches({\n key,\n value: item[keyIndex],\n searcher\n })\n );\n });\n\n if (matches.length) {\n results.push({\n idx,\n item,\n matches\n });\n }\n });\n\n return results\n }\n _findMatches({ key, value, searcher }) {\n if (!isDefined(value)) {\n return []\n }\n\n let matches = [];\n\n if (isArray(value)) {\n value.forEach(({ v: text, i: idx, n: norm }) => {\n if (!isDefined(text)) {\n return\n }\n\n const { isMatch, score, indices } = searcher.searchIn(text);\n\n if (isMatch) {\n matches.push({\n score,\n key,\n value: text,\n idx,\n norm,\n indices\n });\n }\n });\n } else {\n const { v: text, n: norm } = value;\n\n const { isMatch, score, indices } = searcher.searchIn(text);\n\n if (isMatch) {\n matches.push({ score, key, value: text, norm, indices });\n }\n }\n\n return matches\n }\n}\n\nFuse.version = '6.6.2';\nFuse.createIndex = createIndex;\nFuse.parseIndex = parseIndex;\nFuse.config = Config;\n\n{\n Fuse.parseQuery = parse;\n}\n\n{\n register(ExtendedSearch);\n}\n\nexport { Fuse as default };\n","import * as React from 'react';\n\n/** Number of components which have requested interest to have focus guards */\nlet count = 0;\n\nfunction FocusGuards(props: any) {\n useFocusGuards();\n return props.children;\n}\n\n/**\n * Injects a pair of focus guards at the edges of the whole DOM tree\n * to ensure `focusin` & `focusout` events can be caught consistently.\n */\nfunction useFocusGuards() {\n React.useEffect(() => {\n const edgeGuards = document.querySelectorAll('[data-radix-focus-guard]');\n document.body.insertAdjacentElement('afterbegin', edgeGuards[0] ?? createFocusGuard());\n document.body.insertAdjacentElement('beforeend', edgeGuards[1] ?? createFocusGuard());\n count++;\n\n return () => {\n if (count === 1) {\n document.querySelectorAll('[data-radix-focus-guard]').forEach((node) => node.remove());\n }\n count--;\n };\n }, []);\n}\n\nfunction createFocusGuard() {\n const element = document.createElement('span');\n element.setAttribute('data-radix-focus-guard', '');\n element.tabIndex = 0;\n element.style.cssText = 'outline: none; opacity: 0; position: fixed; pointer-events: none';\n return element;\n}\n\nconst Root = FocusGuards;\n\nexport {\n FocusGuards,\n //\n Root,\n //\n useFocusGuards,\n};\n","import * as React from 'react';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useCallbackRef } from '@radix-ui/react-use-callback-ref';\n\nimport type * as Radix from '@radix-ui/react-primitive';\n\nconst AUTOFOCUS_ON_MOUNT = 'focusScope.autoFocusOnMount';\nconst AUTOFOCUS_ON_UNMOUNT = 'focusScope.autoFocusOnUnmount';\nconst EVENT_OPTIONS = { bubbles: false, cancelable: true };\n\ntype FocusableTarget = HTMLElement | { focus(): void };\n\n/* -------------------------------------------------------------------------------------------------\n * FocusScope\n * -----------------------------------------------------------------------------------------------*/\n\nconst FOCUS_SCOPE_NAME = 'FocusScope';\n\ntype FocusScopeElement = React.ElementRef;\ntype PrimitiveDivProps = Radix.ComponentPropsWithoutRef;\ninterface FocusScopeProps extends PrimitiveDivProps {\n /**\n * When `true`, tabbing from last item will focus first tabbable\n * and shift+tab from first item will focus last tababble.\n * @defaultValue false\n */\n loop?: boolean;\n\n /**\n * When `true`, focus cannot escape the focus scope via keyboard,\n * pointer, or a programmatic focus.\n * @defaultValue false\n */\n trapped?: boolean;\n\n /**\n * Event handler called when auto-focusing on mount.\n * Can be prevented.\n */\n onMountAutoFocus?: (event: Event) => void;\n\n /**\n * Event handler called when auto-focusing on unmount.\n * Can be prevented.\n */\n onUnmountAutoFocus?: (event: Event) => void;\n}\n\nconst FocusScope = React.forwardRef((props, forwardedRef) => {\n const {\n loop = false,\n trapped = false,\n onMountAutoFocus: onMountAutoFocusProp,\n onUnmountAutoFocus: onUnmountAutoFocusProp,\n ...scopeProps\n } = props;\n const [container, setContainer] = React.useState(null);\n const onMountAutoFocus = useCallbackRef(onMountAutoFocusProp);\n const onUnmountAutoFocus = useCallbackRef(onUnmountAutoFocusProp);\n const lastFocusedElementRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContainer(node));\n\n const focusScope = React.useRef({\n paused: false,\n pause() {\n this.paused = true;\n },\n resume() {\n this.paused = false;\n },\n }).current;\n\n // Takes care of trapping focus if focus is moved outside programmatically for example\n React.useEffect(() => {\n if (trapped) {\n function handleFocusIn(event: FocusEvent) {\n if (focusScope.paused || !container) return;\n const target = event.target as HTMLElement | null;\n if (container.contains(target)) {\n lastFocusedElementRef.current = target;\n } else {\n focus(lastFocusedElementRef.current, { select: true });\n }\n }\n\n function handleFocusOut(event: FocusEvent) {\n if (focusScope.paused || !container) return;\n const relatedTarget = event.relatedTarget as HTMLElement | null;\n\n // A `focusout` event with a `null` `relatedTarget` will happen in at least two cases:\n //\n // 1. When the user switches app/tabs/windows/the browser itself loses focus.\n // 2. In Google Chrome, when the focused element is removed from the DOM.\n //\n // We let the browser do its thing here because:\n //\n // 1. The browser already keeps a memory of what's focused for when the page gets refocused.\n // 2. In Google Chrome, if we try to focus the deleted focused element (as per below), it\n // throws the CPU to 100%, so we avoid doing anything for this reason here too.\n if (relatedTarget === null) return;\n\n // If the focus has moved to an actual legitimate element (`relatedTarget !== null`)\n // that is outside the container, we move focus to the last valid focused element inside.\n if (!container.contains(relatedTarget)) {\n focus(lastFocusedElementRef.current, { select: true });\n }\n }\n\n // When the focused element gets removed from the DOM, browsers move focus\n // back to the document.body. In this case, we move focus to the container\n // to keep focus trapped correctly.\n function handleMutations(mutations: MutationRecord[]) {\n const focusedElement = document.activeElement as HTMLElement | null;\n if (focusedElement !== document.body) return;\n for (const mutation of mutations) {\n if (mutation.removedNodes.length > 0) focus(container);\n }\n }\n\n document.addEventListener('focusin', handleFocusIn);\n document.addEventListener('focusout', handleFocusOut);\n const mutationObserver = new MutationObserver(handleMutations);\n if (container) mutationObserver.observe(container, { childList: true, subtree: true });\n\n return () => {\n document.removeEventListener('focusin', handleFocusIn);\n document.removeEventListener('focusout', handleFocusOut);\n mutationObserver.disconnect();\n };\n }\n }, [trapped, container, focusScope.paused]);\n\n React.useEffect(() => {\n if (container) {\n focusScopesStack.add(focusScope);\n const previouslyFocusedElement = document.activeElement as HTMLElement | null;\n const hasFocusedCandidate = container.contains(previouslyFocusedElement);\n\n if (!hasFocusedCandidate) {\n const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n container.dispatchEvent(mountEvent);\n if (!mountEvent.defaultPrevented) {\n focusFirst(removeLinks(getTabbableCandidates(container)), { select: true });\n if (document.activeElement === previouslyFocusedElement) {\n focus(container);\n }\n }\n }\n\n return () => {\n container.removeEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n\n // We hit a react bug (fixed in v17) with focusing in unmount.\n // We need to delay the focus a little to get around it for now.\n // See: https://github.com/facebook/react/issues/17894\n setTimeout(() => {\n const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n container.dispatchEvent(unmountEvent);\n if (!unmountEvent.defaultPrevented) {\n focus(previouslyFocusedElement ?? document.body, { select: true });\n }\n // we need to remove the listener after we `dispatchEvent`\n container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n\n focusScopesStack.remove(focusScope);\n }, 0);\n };\n }\n }, [container, onMountAutoFocus, onUnmountAutoFocus, focusScope]);\n\n // Takes care of looping focus (when tabbing whilst at the edges)\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (!loop && !trapped) return;\n if (focusScope.paused) return;\n\n const isTabKey = event.key === 'Tab' && !event.altKey && !event.ctrlKey && !event.metaKey;\n const focusedElement = document.activeElement as HTMLElement | null;\n\n if (isTabKey && focusedElement) {\n const container = event.currentTarget as HTMLElement;\n const [first, last] = getTabbableEdges(container);\n const hasTabbableElementsInside = first && last;\n\n // we can only wrap focus if we have tabbable edges\n if (!hasTabbableElementsInside) {\n if (focusedElement === container) event.preventDefault();\n } else {\n if (!event.shiftKey && focusedElement === last) {\n event.preventDefault();\n if (loop) focus(first, { select: true });\n } else if (event.shiftKey && focusedElement === first) {\n event.preventDefault();\n if (loop) focus(last, { select: true });\n }\n }\n }\n },\n [loop, trapped, focusScope.paused]\n );\n\n return (\n \n );\n});\n\nFocusScope.displayName = FOCUS_SCOPE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * Utils\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * Attempts focusing the first element in a list of candidates.\n * Stops when focus has actually moved.\n */\nfunction focusFirst(candidates: HTMLElement[], { select = false } = {}) {\n const previouslyFocusedElement = document.activeElement;\n for (const candidate of candidates) {\n focus(candidate, { select });\n if (document.activeElement !== previouslyFocusedElement) return;\n }\n}\n\n/**\n * Returns the first and last tabbable elements inside a container.\n */\nfunction getTabbableEdges(container: HTMLElement) {\n const candidates = getTabbableCandidates(container);\n const first = findVisible(candidates, container);\n const last = findVisible(candidates.reverse(), container);\n return [first, last] as const;\n}\n\n/**\n * Returns a list of potential tabbable candidates.\n *\n * NOTE: This is only a close approximation. For example it doesn't take into account cases like when\n * elements are not visible. This cannot be worked out easily by just reading a property, but rather\n * necessitate runtime knowledge (computed styles, etc). We deal with these cases separately.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker\n * Credit: https://github.com/discord/focus-layers/blob/master/src/util/wrapFocus.tsx#L1\n */\nfunction getTabbableCandidates(container: HTMLElement) {\n const nodes: HTMLElement[] = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node: any) => {\n const isHiddenInput = node.tagName === 'INPUT' && node.type === 'hidden';\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n // `.tabIndex` is not the same as the `tabindex` attribute. It works on the\n // runtime's understanding of tabbability, so this automatically accounts\n // for any kind of element that could be tabbed to.\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n },\n });\n while (walker.nextNode()) nodes.push(walker.currentNode as HTMLElement);\n // we do not take into account the order of nodes with positive `tabIndex` as it\n // hinders accessibility to have tab order different from visual order.\n return nodes;\n}\n\n/**\n * Returns the first visible element in a list.\n * NOTE: Only checks visibility up to the `container`.\n */\nfunction findVisible(elements: HTMLElement[], container: HTMLElement) {\n for (const element of elements) {\n // we stop checking if it's hidden at the `container` level (excluding)\n if (!isHidden(element, { upTo: container })) return element;\n }\n}\n\nfunction isHidden(node: HTMLElement, { upTo }: { upTo?: HTMLElement }) {\n if (getComputedStyle(node).visibility === 'hidden') return true;\n while (node) {\n // we stop at `upTo` (excluding it)\n if (upTo !== undefined && node === upTo) return false;\n if (getComputedStyle(node).display === 'none') return true;\n node = node.parentElement as HTMLElement;\n }\n return false;\n}\n\nfunction isSelectableInput(element: any): element is FocusableTarget & { select: () => void } {\n return element instanceof HTMLInputElement && 'select' in element;\n}\n\nfunction focus(element?: FocusableTarget | null, { select = false } = {}) {\n // only focus if that element is focusable\n if (element && element.focus) {\n const previouslyFocusedElement = document.activeElement;\n // NOTE: we prevent scrolling on focus, to minimize jarring transitions for users\n element.focus({ preventScroll: true });\n // only select if its not the same element, it supports selection and we need to select\n if (element !== previouslyFocusedElement && isSelectableInput(element) && select)\n element.select();\n }\n}\n\n/* -------------------------------------------------------------------------------------------------\n * FocusScope stack\n * -----------------------------------------------------------------------------------------------*/\n\ntype FocusScopeAPI = { paused: boolean; pause(): void; resume(): void };\nconst focusScopesStack = createFocusScopesStack();\n\nfunction createFocusScopesStack() {\n /** A stack of focus scopes, with the active one at the top */\n let stack: FocusScopeAPI[] = [];\n\n return {\n add(focusScope: FocusScopeAPI) {\n // pause the currently active focus scope (at the top of the stack)\n const activeFocusScope = stack[0];\n if (focusScope !== activeFocusScope) {\n activeFocusScope?.pause();\n }\n // remove in case it already exists (because we'll re-add it at the top of the stack)\n stack = arrayRemove(stack, focusScope);\n stack.unshift(focusScope);\n },\n\n remove(focusScope: FocusScopeAPI) {\n stack = arrayRemove(stack, focusScope);\n stack[0]?.resume();\n },\n };\n}\n\nfunction arrayRemove(array: T[], item: T) {\n const updatedArray = [...array];\n const index = updatedArray.indexOf(item);\n if (index !== -1) {\n updatedArray.splice(index, 1);\n }\n return updatedArray;\n}\n\nfunction removeLinks(items: HTMLElement[]) {\n return items.filter((item) => item.tagName !== 'A');\n}\n\nconst Root = FocusScope;\n\nexport {\n FocusScope,\n //\n Root,\n};\nexport type { FocusScopeProps };\n","var getDefaultParent = function (originalTarget) {\n if (typeof document === 'undefined') {\n return null;\n }\n var sampleTarget = Array.isArray(originalTarget) ? originalTarget[0] : originalTarget;\n return sampleTarget.ownerDocument.body;\n};\nvar counterMap = new WeakMap();\nvar uncontrolledNodes = new WeakMap();\nvar markerMap = {};\nvar lockCount = 0;\nvar unwrapHost = function (node) {\n return node && (node.host || unwrapHost(node.parentNode));\n};\nvar correctTargets = function (parent, targets) {\n return targets\n .map(function (target) {\n if (parent.contains(target)) {\n return target;\n }\n var correctedTarget = unwrapHost(target);\n if (correctedTarget && parent.contains(correctedTarget)) {\n return correctedTarget;\n }\n console.error('aria-hidden', target, 'in not contained inside', parent, '. Doing nothing');\n return null;\n })\n .filter(function (x) { return Boolean(x); });\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @param {String} [controlAttribute] - html Attribute to control\n * @return {Undo} undo command\n */\nvar applyAttributeToOthers = function (originalTarget, parentNode, markerName, controlAttribute) {\n var targets = correctTargets(parentNode, Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n if (!markerMap[markerName]) {\n markerMap[markerName] = new WeakMap();\n }\n var markerCounter = markerMap[markerName];\n var hiddenNodes = [];\n var elementsToKeep = new Set();\n var elementsToStop = new Set(targets);\n var keep = function (el) {\n if (!el || elementsToKeep.has(el)) {\n return;\n }\n elementsToKeep.add(el);\n keep(el.parentNode);\n };\n targets.forEach(keep);\n var deep = function (parent) {\n if (!parent || elementsToStop.has(parent)) {\n return;\n }\n Array.prototype.forEach.call(parent.children, function (node) {\n if (elementsToKeep.has(node)) {\n deep(node);\n }\n else {\n var attr = node.getAttribute(controlAttribute);\n var alreadyHidden = attr !== null && attr !== 'false';\n var counterValue = (counterMap.get(node) || 0) + 1;\n var markerValue = (markerCounter.get(node) || 0) + 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n hiddenNodes.push(node);\n if (counterValue === 1 && alreadyHidden) {\n uncontrolledNodes.set(node, true);\n }\n if (markerValue === 1) {\n node.setAttribute(markerName, 'true');\n }\n if (!alreadyHidden) {\n node.setAttribute(controlAttribute, 'true');\n }\n }\n });\n };\n deep(parentNode);\n elementsToKeep.clear();\n lockCount++;\n return function () {\n hiddenNodes.forEach(function (node) {\n var counterValue = counterMap.get(node) - 1;\n var markerValue = markerCounter.get(node) - 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n if (!counterValue) {\n if (!uncontrolledNodes.has(node)) {\n node.removeAttribute(controlAttribute);\n }\n uncontrolledNodes.delete(node);\n }\n if (!markerValue) {\n node.removeAttribute(markerName);\n }\n });\n lockCount--;\n if (!lockCount) {\n // clear\n counterMap = new WeakMap();\n counterMap = new WeakMap();\n uncontrolledNodes = new WeakMap();\n markerMap = {};\n }\n };\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var hideOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-aria-hidden'; }\n var targets = Array.from(Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n // we should not hide ariaLive elements - https://github.com/theKashey/aria-hidden/issues/10\n targets.push.apply(targets, Array.from(activeParentNode.querySelectorAll('[aria-live]')));\n return applyAttributeToOthers(targets, activeParentNode, markerName, 'aria-hidden');\n};\n/**\n * Marks everything except given node(or nodes) as inert\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var inertOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-inert-ed'; }\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n return applyAttributeToOthers(originalTarget, activeParentNode, markerName, 'inert');\n};\n/**\n * @returns if current browser supports inert\n */\nexport var supportsInert = function () {\n return typeof HTMLElement !== 'undefined' && HTMLElement.prototype.hasOwnProperty('inert');\n};\n/**\n * Automatic function to \"suppress\" DOM elements - _hide_ or _inert_ in the best possible way\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var suppressOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-suppressed'; }\n return (supportsInert() ? inertOthers : hideOthers)(originalTarget, parentNode, markerName);\n};\n","export var zeroRightClassName = 'right-scroll-bar-position';\nexport var fullWidthClassName = 'width-before-scroll-bar';\nexport var noScrollbarsClassName = 'with-scroll-bars-hidden';\n/**\n * Name of a CSS variable containing the amount of \"hidden\" scrollbar\n * ! might be undefined ! use will fallback!\n */\nexport var removedBarSizeVariable = '--removed-body-scroll-bar-size';\n","/**\n * Assigns a value for a given ref, no matter of the ref format\n * @param {RefObject} ref - a callback function or ref object\n * @param value - a new value\n *\n * @see https://github.com/theKashey/use-callback-ref#assignref\n * @example\n * const refObject = useRef();\n * const refFn = (ref) => {....}\n *\n * assignRef(refObject, \"refValue\");\n * assignRef(refFn, \"refValue\");\n */\nexport function assignRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n }\n else if (ref) {\n ref.current = value;\n }\n return ref;\n}\n","import * as React from 'react';\nimport { assignRef } from './assignRef';\nimport { useCallbackRef } from './useRef';\nvar currentValues = new WeakMap();\n/**\n * Merges two or more refs together providing a single interface to set their value\n * @param {RefObject|Ref} refs\n * @returns {MutableRefObject} - a new ref, which translates all changes to {refs}\n *\n * @see {@link mergeRefs} a version without buit-in memoization\n * @see https://github.com/theKashey/use-callback-ref#usemergerefs\n * @example\n * const Component = React.forwardRef((props, ref) => {\n * const ownRef = useRef();\n * const domRef = useMergeRefs([ref, ownRef]); // 👈 merge together\n * return
...
\n * }\n */\nexport function useMergeRefs(refs, defaultValue) {\n var callbackRef = useCallbackRef(defaultValue || null, function (newValue) {\n return refs.forEach(function (ref) { return assignRef(ref, newValue); });\n });\n // handle refs changes - added or removed\n React.useLayoutEffect(function () {\n var oldValue = currentValues.get(callbackRef);\n if (oldValue) {\n var prevRefs_1 = new Set(oldValue);\n var nextRefs_1 = new Set(refs);\n var current_1 = callbackRef.current;\n prevRefs_1.forEach(function (ref) {\n if (!nextRefs_1.has(ref)) {\n assignRef(ref, null);\n }\n });\n nextRefs_1.forEach(function (ref) {\n if (!prevRefs_1.has(ref)) {\n assignRef(ref, current_1);\n }\n });\n }\n currentValues.set(callbackRef, refs);\n }, [refs]);\n return callbackRef;\n}\n","import { useState } from 'react';\n/**\n * creates a MutableRef with ref change callback\n * @param initialValue - initial ref value\n * @param {Function} callback - a callback to run when value changes\n *\n * @example\n * const ref = useCallbackRef(0, (newValue, oldValue) => console.log(oldValue, '->', newValue);\n * ref.current = 1;\n * // prints 0 -> 1\n *\n * @see https://reactjs.org/docs/hooks-reference.html#useref\n * @see https://github.com/theKashey/use-callback-ref#usecallbackref---to-replace-reactuseref\n * @returns {MutableRefObject}\n */\nexport function useCallbackRef(initialValue, callback) {\n var ref = useState(function () { return ({\n // value\n value: initialValue,\n // last callback\n callback: callback,\n // \"memoized\" public interface\n facade: {\n get current() {\n return ref.value;\n },\n set current(value) {\n var last = ref.value;\n if (last !== value) {\n ref.value = value;\n ref.callback(value, last);\n }\n },\n },\n }); })[0];\n // update callback\n ref.callback = callback;\n return ref.facade;\n}\n","import { __assign } from \"tslib\";\nfunction ItoI(a) {\n return a;\n}\nfunction innerCreateMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n var buffer = [];\n var assigned = false;\n var medium = {\n read: function () {\n if (assigned) {\n throw new Error('Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.');\n }\n if (buffer.length) {\n return buffer[buffer.length - 1];\n }\n return defaults;\n },\n useMedium: function (data) {\n var item = middleware(data, assigned);\n buffer.push(item);\n return function () {\n buffer = buffer.filter(function (x) { return x !== item; });\n };\n },\n assignSyncMedium: function (cb) {\n assigned = true;\n while (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n }\n buffer = {\n push: function (x) { return cb(x); },\n filter: function () { return buffer; },\n };\n },\n assignMedium: function (cb) {\n assigned = true;\n var pendingQueue = [];\n if (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n pendingQueue = buffer;\n }\n var executeQueue = function () {\n var cbs = pendingQueue;\n pendingQueue = [];\n cbs.forEach(cb);\n };\n var cycle = function () { return Promise.resolve().then(executeQueue); };\n cycle();\n buffer = {\n push: function (x) {\n pendingQueue.push(x);\n cycle();\n },\n filter: function (filter) {\n pendingQueue = pendingQueue.filter(filter);\n return buffer;\n },\n };\n },\n };\n return medium;\n}\nexport function createMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n return innerCreateMedium(defaults, middleware);\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function createSidecarMedium(options) {\n if (options === void 0) { options = {}; }\n var medium = innerCreateMedium(null);\n medium.options = __assign({ async: true, ssr: false }, options);\n return medium;\n}\n","import { createSidecarMedium } from 'use-sidecar';\nexport var effectCar = createSidecarMedium();\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { fullWidthClassName, zeroRightClassName } from 'react-remove-scroll-bar/constants';\nimport { useMergeRefs } from 'use-callback-ref';\nimport { effectCar } from './medium';\nvar nothing = function () {\n return;\n};\n/**\n * Removes scrollbar from the page and contain the scroll within the Lock\n */\nvar RemoveScroll = React.forwardRef(function (props, parentRef) {\n var ref = React.useRef(null);\n var _a = React.useState({\n onScrollCapture: nothing,\n onWheelCapture: nothing,\n onTouchMoveCapture: nothing,\n }), callbacks = _a[0], setCallbacks = _a[1];\n var forwardProps = props.forwardProps, children = props.children, className = props.className, removeScrollBar = props.removeScrollBar, enabled = props.enabled, shards = props.shards, sideCar = props.sideCar, noIsolation = props.noIsolation, inert = props.inert, allowPinchZoom = props.allowPinchZoom, _b = props.as, Container = _b === void 0 ? 'div' : _b, rest = __rest(props, [\"forwardProps\", \"children\", \"className\", \"removeScrollBar\", \"enabled\", \"shards\", \"sideCar\", \"noIsolation\", \"inert\", \"allowPinchZoom\", \"as\"]);\n var SideCar = sideCar;\n var containerRef = useMergeRefs([ref, parentRef]);\n var containerProps = __assign(__assign({}, rest), callbacks);\n return (React.createElement(React.Fragment, null,\n enabled && (React.createElement(SideCar, { sideCar: effectCar, removeScrollBar: removeScrollBar, shards: shards, noIsolation: noIsolation, inert: inert, setCallbacks: setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref })),\n forwardProps ? (React.cloneElement(React.Children.only(children), __assign(__assign({}, containerProps), { ref: containerRef }))) : (React.createElement(Container, __assign({}, containerProps, { className: className, ref: containerRef }), children))));\n});\nRemoveScroll.defaultProps = {\n enabled: true,\n removeScrollBar: true,\n inert: false,\n};\nRemoveScroll.classNames = {\n fullWidth: fullWidthClassName,\n zeroRight: zeroRightClassName,\n};\nexport { RemoveScroll };\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nvar SideCar = function (_a) {\n var sideCar = _a.sideCar, rest = __rest(_a, [\"sideCar\"]);\n if (!sideCar) {\n throw new Error('Sidecar: please provide `sideCar` property to import the right car');\n }\n var Target = sideCar.read();\n if (!Target) {\n throw new Error('Sidecar medium not found');\n }\n return React.createElement(Target, __assign({}, rest));\n};\nSideCar.isSideCarExport = true;\nexport function exportSidecar(medium, exported) {\n medium.useMedium(exported);\n return SideCar;\n}\n","var currentNonce;\nexport var setNonce = function (nonce) {\n currentNonce = nonce;\n};\nexport var getNonce = function () {\n if (currentNonce) {\n return currentNonce;\n }\n if (typeof __webpack_nonce__ !== 'undefined') {\n return __webpack_nonce__;\n }\n return undefined;\n};\n","import { getNonce } from 'get-nonce';\nfunction makeStyleTag() {\n if (!document)\n return null;\n var tag = document.createElement('style');\n tag.type = 'text/css';\n var nonce = getNonce();\n if (nonce) {\n tag.setAttribute('nonce', nonce);\n }\n return tag;\n}\nfunction injectStyles(tag, css) {\n // @ts-ignore\n if (tag.styleSheet) {\n // @ts-ignore\n tag.styleSheet.cssText = css;\n }\n else {\n tag.appendChild(document.createTextNode(css));\n }\n}\nfunction insertStyleTag(tag) {\n var head = document.head || document.getElementsByTagName('head')[0];\n head.appendChild(tag);\n}\nexport var stylesheetSingleton = function () {\n var counter = 0;\n var stylesheet = null;\n return {\n add: function (style) {\n if (counter == 0) {\n if ((stylesheet = makeStyleTag())) {\n injectStyles(stylesheet, style);\n insertStyleTag(stylesheet);\n }\n }\n counter++;\n },\n remove: function () {\n counter--;\n if (!counter && stylesheet) {\n stylesheet.parentNode && stylesheet.parentNode.removeChild(stylesheet);\n stylesheet = null;\n }\n },\n };\n};\n","import { styleHookSingleton } from './hook';\n/**\n * create a Component to add styles on demand\n * - styles are added when first instance is mounted\n * - styles are removed when the last instance is unmounted\n * - changing styles in runtime does nothing unless dynamic is set. But with multiple components that can lead to the undefined behavior\n */\nexport var styleSingleton = function () {\n var useStyle = styleHookSingleton();\n var Sheet = function (_a) {\n var styles = _a.styles, dynamic = _a.dynamic;\n useStyle(styles, dynamic);\n return null;\n };\n return Sheet;\n};\n","import * as React from 'react';\nimport { stylesheetSingleton } from './singleton';\n/**\n * creates a hook to control style singleton\n * @see {@link styleSingleton} for a safer component version\n * @example\n * ```tsx\n * const useStyle = styleHookSingleton();\n * ///\n * useStyle('body { overflow: hidden}');\n */\nexport var styleHookSingleton = function () {\n var sheet = stylesheetSingleton();\n return function (styles, isDynamic) {\n React.useEffect(function () {\n sheet.add(styles);\n return function () {\n sheet.remove();\n };\n }, [styles && isDynamic]);\n };\n};\n","export var zeroGap = {\n left: 0,\n top: 0,\n right: 0,\n gap: 0,\n};\nvar parse = function (x) { return parseInt(x || '', 10) || 0; };\nvar getOffset = function (gapMode) {\n var cs = window.getComputedStyle(document.body);\n var left = cs[gapMode === 'padding' ? 'paddingLeft' : 'marginLeft'];\n var top = cs[gapMode === 'padding' ? 'paddingTop' : 'marginTop'];\n var right = cs[gapMode === 'padding' ? 'paddingRight' : 'marginRight'];\n return [parse(left), parse(top), parse(right)];\n};\nexport var getGapWidth = function (gapMode) {\n if (gapMode === void 0) { gapMode = 'margin'; }\n if (typeof window === 'undefined') {\n return zeroGap;\n }\n var offsets = getOffset(gapMode);\n var documentWidth = document.documentElement.clientWidth;\n var windowWidth = window.innerWidth;\n return {\n left: offsets[0],\n top: offsets[1],\n right: offsets[2],\n gap: Math.max(0, windowWidth - documentWidth + offsets[2] - offsets[0]),\n };\n};\n","import * as React from 'react';\nimport { styleSingleton } from 'react-style-singleton';\nimport { fullWidthClassName, zeroRightClassName, noScrollbarsClassName, removedBarSizeVariable } from './constants';\nimport { getGapWidth } from './utils';\nvar Style = styleSingleton();\n// important tip - once we measure scrollBar width and remove them\n// we could not repeat this operation\n// thus we are using style-singleton - only the first \"yet correct\" style will be applied.\nvar getStyles = function (_a, allowRelative, gapMode, important) {\n var left = _a.left, top = _a.top, right = _a.right, gap = _a.gap;\n if (gapMode === void 0) { gapMode = 'margin'; }\n return \"\\n .\".concat(noScrollbarsClassName, \" {\\n overflow: hidden \").concat(important, \";\\n padding-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n body {\\n overflow: hidden \").concat(important, \";\\n overscroll-behavior: contain;\\n \").concat([\n allowRelative && \"position: relative \".concat(important, \";\"),\n gapMode === 'margin' &&\n \"\\n padding-left: \".concat(left, \"px;\\n padding-top: \").concat(top, \"px;\\n padding-right: \").concat(right, \"px;\\n margin-left:0;\\n margin-top:0;\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n \"),\n gapMode === 'padding' && \"padding-right: \".concat(gap, \"px \").concat(important, \";\"),\n ]\n .filter(Boolean)\n .join(''), \"\\n }\\n \\n .\").concat(zeroRightClassName, \" {\\n right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" {\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(zeroRightClassName, \" .\").concat(zeroRightClassName, \" {\\n right: 0 \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" .\").concat(fullWidthClassName, \" {\\n margin-right: 0 \").concat(important, \";\\n }\\n \\n body {\\n \").concat(removedBarSizeVariable, \": \").concat(gap, \"px;\\n }\\n\");\n};\n/**\n * Removes page scrollbar and blocks page scroll when mounted\n */\nexport var RemoveScrollBar = function (props) {\n var noRelative = props.noRelative, noImportant = props.noImportant, _a = props.gapMode, gapMode = _a === void 0 ? 'margin' : _a;\n /*\n gap will be measured on every component mount\n however it will be used only by the \"first\" invocation\n due to singleton nature of d) {\n return true;\n }\n }\n current = current.parentNode;\n } while (current && current !== document.body);\n return false;\n};\nvar getVScrollVariables = function (_a) {\n var scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight, clientHeight = _a.clientHeight;\n return [\n scrollTop,\n scrollHeight,\n clientHeight,\n ];\n};\nvar getHScrollVariables = function (_a) {\n var scrollLeft = _a.scrollLeft, scrollWidth = _a.scrollWidth, clientWidth = _a.clientWidth;\n return [\n scrollLeft,\n scrollWidth,\n clientWidth,\n ];\n};\nvar elementCouldBeScrolled = function (axis, node) {\n return axis === 'v' ? elementCouldBeVScrolled(node) : elementCouldBeHScrolled(node);\n};\nvar getScrollVariables = function (axis, node) {\n return axis === 'v' ? getVScrollVariables(node) : getHScrollVariables(node);\n};\nvar getDirectionFactor = function (axis, direction) {\n /**\n * If the element's direction is rtl (right-to-left), then scrollLeft is 0 when the scrollbar is at its rightmost position,\n * and then increasingly negative as you scroll towards the end of the content.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollLeft\n */\n return axis === 'h' && direction === 'rtl' ? -1 : 1;\n};\nexport var handleScroll = function (axis, endTarget, event, sourceDelta, noOverscroll) {\n var directionFactor = getDirectionFactor(axis, window.getComputedStyle(endTarget).direction);\n var delta = directionFactor * sourceDelta;\n // find scrollable target\n var target = event.target;\n var targetInLock = endTarget.contains(target);\n var shouldCancelScroll = false;\n var isDeltaPositive = delta > 0;\n var availableScroll = 0;\n var availableScrollTop = 0;\n do {\n var _a = getScrollVariables(axis, target), position = _a[0], scroll_1 = _a[1], capacity = _a[2];\n var elementScroll = scroll_1 - capacity - directionFactor * position;\n if (position || elementScroll) {\n if (elementCouldBeScrolled(axis, target)) {\n availableScroll += elementScroll;\n availableScrollTop += position;\n }\n }\n target = target.parentNode;\n } while (\n // portaled content\n (!targetInLock && target !== document.body) ||\n // self content\n (targetInLock && (endTarget.contains(target) || endTarget === target)));\n if (isDeltaPositive && ((noOverscroll && availableScroll === 0) || (!noOverscroll && delta > availableScroll))) {\n shouldCancelScroll = true;\n }\n else if (!isDeltaPositive &&\n ((noOverscroll && availableScrollTop === 0) || (!noOverscroll && -delta > availableScrollTop))) {\n shouldCancelScroll = true;\n }\n return shouldCancelScroll;\n};\n","import { __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScrollBar } from 'react-remove-scroll-bar';\nimport { styleSingleton } from 'react-style-singleton';\nimport { nonPassive } from './aggresiveCapture';\nimport { handleScroll, locationCouldBeScrolled } from './handleScroll';\nexport var getTouchXY = function (event) {\n return 'changedTouches' in event ? [event.changedTouches[0].clientX, event.changedTouches[0].clientY] : [0, 0];\n};\nexport var getDeltaXY = function (event) { return [event.deltaX, event.deltaY]; };\nvar extractRef = function (ref) {\n return ref && 'current' in ref ? ref.current : ref;\n};\nvar deltaCompare = function (x, y) { return x[0] === y[0] && x[1] === y[1]; };\nvar generateStyle = function (id) { return \"\\n .block-interactivity-\".concat(id, \" {pointer-events: none;}\\n .allow-interactivity-\").concat(id, \" {pointer-events: all;}\\n\"); };\nvar idCounter = 0;\nvar lockStack = [];\nexport function RemoveScrollSideCar(props) {\n var shouldPreventQueue = React.useRef([]);\n var touchStartRef = React.useRef([0, 0]);\n var activeAxis = React.useRef();\n var id = React.useState(idCounter++)[0];\n var Style = React.useState(function () { return styleSingleton(); })[0];\n var lastProps = React.useRef(props);\n React.useEffect(function () {\n lastProps.current = props;\n }, [props]);\n React.useEffect(function () {\n if (props.inert) {\n document.body.classList.add(\"block-interactivity-\".concat(id));\n var allow_1 = __spreadArray([props.lockRef.current], (props.shards || []).map(extractRef), true).filter(Boolean);\n allow_1.forEach(function (el) { return el.classList.add(\"allow-interactivity-\".concat(id)); });\n return function () {\n document.body.classList.remove(\"block-interactivity-\".concat(id));\n allow_1.forEach(function (el) { return el.classList.remove(\"allow-interactivity-\".concat(id)); });\n };\n }\n return;\n }, [props.inert, props.lockRef.current, props.shards]);\n var shouldCancelEvent = React.useCallback(function (event, parent) {\n if ('touches' in event && event.touches.length === 2) {\n return !lastProps.current.allowPinchZoom;\n }\n var touch = getTouchXY(event);\n var touchStart = touchStartRef.current;\n var deltaX = 'deltaX' in event ? event.deltaX : touchStart[0] - touch[0];\n var deltaY = 'deltaY' in event ? event.deltaY : touchStart[1] - touch[1];\n var currentAxis;\n var target = event.target;\n var moveDirection = Math.abs(deltaX) > Math.abs(deltaY) ? 'h' : 'v';\n // allow horizontal touch move on Range inputs. They will not cause any scroll\n if ('touches' in event && moveDirection === 'h' && target.type === 'range') {\n return false;\n }\n var canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n if (!canBeScrolledInMainDirection) {\n return true;\n }\n if (canBeScrolledInMainDirection) {\n currentAxis = moveDirection;\n }\n else {\n currentAxis = moveDirection === 'v' ? 'h' : 'v';\n canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n // other axis might be not scrollable\n }\n if (!canBeScrolledInMainDirection) {\n return false;\n }\n if (!activeAxis.current && 'changedTouches' in event && (deltaX || deltaY)) {\n activeAxis.current = currentAxis;\n }\n if (!currentAxis) {\n return true;\n }\n var cancelingAxis = activeAxis.current || currentAxis;\n return handleScroll(cancelingAxis, parent, event, cancelingAxis === 'h' ? deltaX : deltaY, true);\n }, []);\n var shouldPrevent = React.useCallback(function (_event) {\n var event = _event;\n if (!lockStack.length || lockStack[lockStack.length - 1] !== Style) {\n // not the last active\n return;\n }\n var delta = 'deltaY' in event ? getDeltaXY(event) : getTouchXY(event);\n var sourceEvent = shouldPreventQueue.current.filter(function (e) { return e.name === event.type && e.target === event.target && deltaCompare(e.delta, delta); })[0];\n // self event, and should be canceled\n if (sourceEvent && sourceEvent.should) {\n if (event.cancelable) {\n event.preventDefault();\n }\n return;\n }\n // outside or shard event\n if (!sourceEvent) {\n var shardNodes = (lastProps.current.shards || [])\n .map(extractRef)\n .filter(Boolean)\n .filter(function (node) { return node.contains(event.target); });\n var shouldStop = shardNodes.length > 0 ? shouldCancelEvent(event, shardNodes[0]) : !lastProps.current.noIsolation;\n if (shouldStop) {\n if (event.cancelable) {\n event.preventDefault();\n }\n }\n }\n }, []);\n var shouldCancel = React.useCallback(function (name, delta, target, should) {\n var event = { name: name, delta: delta, target: target, should: should };\n shouldPreventQueue.current.push(event);\n setTimeout(function () {\n shouldPreventQueue.current = shouldPreventQueue.current.filter(function (e) { return e !== event; });\n }, 1);\n }, []);\n var scrollTouchStart = React.useCallback(function (event) {\n touchStartRef.current = getTouchXY(event);\n activeAxis.current = undefined;\n }, []);\n var scrollWheel = React.useCallback(function (event) {\n shouldCancel(event.type, getDeltaXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n var scrollTouchMove = React.useCallback(function (event) {\n shouldCancel(event.type, getTouchXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n React.useEffect(function () {\n lockStack.push(Style);\n props.setCallbacks({\n onScrollCapture: scrollWheel,\n onWheelCapture: scrollWheel,\n onTouchMoveCapture: scrollTouchMove,\n });\n document.addEventListener('wheel', shouldPrevent, nonPassive);\n document.addEventListener('touchmove', shouldPrevent, nonPassive);\n document.addEventListener('touchstart', scrollTouchStart, nonPassive);\n return function () {\n lockStack = lockStack.filter(function (inst) { return inst !== Style; });\n document.removeEventListener('wheel', shouldPrevent, nonPassive);\n document.removeEventListener('touchmove', shouldPrevent, nonPassive);\n document.removeEventListener('touchstart', scrollTouchStart, nonPassive);\n };\n }, []);\n var removeScrollBar = props.removeScrollBar, inert = props.inert;\n return (React.createElement(React.Fragment, null,\n inert ? React.createElement(Style, { styles: generateStyle(id) }) : null,\n removeScrollBar ? React.createElement(RemoveScrollBar, { gapMode: \"margin\" }) : null));\n}\n","import { exportSidecar } from 'use-sidecar';\nimport { RemoveScrollSideCar } from './SideEffect';\nimport { effectCar } from './medium';\nexport default exportSidecar(effectCar, RemoveScrollSideCar);\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScroll } from './UI';\nimport SideCar from './sidecar';\nvar ReactRemoveScroll = React.forwardRef(function (props, ref) { return (React.createElement(RemoveScroll, __assign({}, props, { ref: ref, sideCar: SideCar }))); });\nReactRemoveScroll.classNames = RemoveScroll.classNames;\nexport default ReactRemoveScroll;\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { createCollection } from '@radix-ui/react-collection';\nimport { useComposedRefs, composeRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useDirection } from '@radix-ui/react-direction';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\nimport { useFocusGuards } from '@radix-ui/react-focus-guards';\nimport { FocusScope } from '@radix-ui/react-focus-scope';\nimport { useId } from '@radix-ui/react-id';\nimport * as PopperPrimitive from '@radix-ui/react-popper';\nimport { createPopperScope } from '@radix-ui/react-popper';\nimport { Portal as PortalPrimitive } from '@radix-ui/react-portal';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive, dispatchDiscreteCustomEvent } from '@radix-ui/react-primitive';\nimport * as RovingFocusGroup from '@radix-ui/react-roving-focus';\nimport { createRovingFocusGroupScope } from '@radix-ui/react-roving-focus';\nimport { Slot } from '@radix-ui/react-slot';\nimport { useCallbackRef } from '@radix-ui/react-use-callback-ref';\nimport { hideOthers } from 'aria-hidden';\nimport { RemoveScroll } from 'react-remove-scroll';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\ntype Direction = 'ltr' | 'rtl';\n\nconst SELECTION_KEYS = ['Enter', ' '];\nconst FIRST_KEYS = ['ArrowDown', 'PageUp', 'Home'];\nconst LAST_KEYS = ['ArrowUp', 'PageDown', 'End'];\nconst FIRST_LAST_KEYS = [...FIRST_KEYS, ...LAST_KEYS];\nconst SUB_OPEN_KEYS: Record = {\n ltr: [...SELECTION_KEYS, 'ArrowRight'],\n rtl: [...SELECTION_KEYS, 'ArrowLeft'],\n};\nconst SUB_CLOSE_KEYS: Record = {\n ltr: ['ArrowLeft'],\n rtl: ['ArrowRight'],\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Menu\n * -----------------------------------------------------------------------------------------------*/\n\nconst MENU_NAME = 'Menu';\n\ntype ItemData = { disabled: boolean; textValue: string };\nconst [Collection, useCollection, createCollectionScope] = createCollection<\n MenuItemElement,\n ItemData\n>(MENU_NAME);\n\ntype ScopedProps

= P & { __scopeMenu?: Scope };\nconst [createMenuContext, createMenuScope] = createContextScope(MENU_NAME, [\n createCollectionScope,\n createPopperScope,\n createRovingFocusGroupScope,\n]);\nconst usePopperScope = createPopperScope();\nconst useRovingFocusGroupScope = createRovingFocusGroupScope();\n\ntype MenuContextValue = {\n open: boolean;\n onOpenChange(open: boolean): void;\n content: MenuContentElement | null;\n onContentChange(content: MenuContentElement | null): void;\n};\n\nconst [MenuProvider, useMenuContext] = createMenuContext(MENU_NAME);\n\ntype MenuRootContextValue = {\n onClose(): void;\n isUsingKeyboardRef: React.RefObject;\n dir: Direction;\n modal: boolean;\n};\n\nconst [MenuRootProvider, useMenuRootContext] = createMenuContext(MENU_NAME);\n\ninterface MenuProps {\n children?: React.ReactNode;\n open?: boolean;\n onOpenChange?(open: boolean): void;\n dir?: Direction;\n modal?: boolean;\n}\n\nconst Menu: React.FC = (props: ScopedProps) => {\n const { __scopeMenu, open = false, children, dir, onOpenChange, modal = true } = props;\n const popperScope = usePopperScope(__scopeMenu);\n const [content, setContent] = React.useState(null);\n const isUsingKeyboardRef = React.useRef(false);\n const handleOpenChange = useCallbackRef(onOpenChange);\n const direction = useDirection(dir);\n\n React.useEffect(() => {\n // Capture phase ensures we set the boolean before any side effects execute\n // in response to the key or pointer event as they might depend on this value.\n const handleKeyDown = () => {\n isUsingKeyboardRef.current = true;\n document.addEventListener('pointerdown', handlePointer, { capture: true, once: true });\n document.addEventListener('pointermove', handlePointer, { capture: true, once: true });\n };\n const handlePointer = () => (isUsingKeyboardRef.current = false);\n document.addEventListener('keydown', handleKeyDown, { capture: true });\n return () => {\n document.removeEventListener('keydown', handleKeyDown, { capture: true });\n document.removeEventListener('pointerdown', handlePointer, { capture: true });\n document.removeEventListener('pointermove', handlePointer, { capture: true });\n };\n }, []);\n\n return (\n \n \n handleOpenChange(false), [handleOpenChange])}\n isUsingKeyboardRef={isUsingKeyboardRef}\n dir={direction}\n modal={modal}\n >\n {children}\n \n \n \n );\n};\n\nMenu.displayName = MENU_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenuAnchor\n * -----------------------------------------------------------------------------------------------*/\n\nconst ANCHOR_NAME = 'MenuAnchor';\n\ntype MenuAnchorElement = React.ElementRef;\ntype PopperAnchorProps = Radix.ComponentPropsWithoutRef;\ninterface MenuAnchorProps extends PopperAnchorProps {}\n\nconst MenuAnchor = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeMenu, ...anchorProps } = props;\n const popperScope = usePopperScope(__scopeMenu);\n return ;\n }\n);\n\nMenuAnchor.displayName = ANCHOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenuPortal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'MenuPortal';\n\ntype PortalContextValue = { forceMount?: true };\nconst [PortalProvider, usePortalContext] = createMenuContext(PORTAL_NAME, {\n forceMount: undefined,\n});\n\ntype PortalProps = React.ComponentPropsWithoutRef;\ninterface MenuPortalProps {\n children?: React.ReactNode;\n /**\n * Specify a container element to portal the content into.\n */\n container?: PortalProps['container'];\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst MenuPortal: React.FC = (props: ScopedProps) => {\n const { __scopeMenu, forceMount, children, container } = props;\n const context = useMenuContext(PORTAL_NAME, __scopeMenu);\n return (\n \n \n \n {children}\n \n \n \n );\n};\n\nMenuPortal.displayName = PORTAL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenuContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'MenuContent';\n\ntype MenuContentContextValue = {\n onItemEnter(event: React.PointerEvent): void;\n onItemLeave(event: React.PointerEvent): void;\n onTriggerLeave(event: React.PointerEvent): void;\n searchRef: React.RefObject;\n pointerGraceTimerRef: React.MutableRefObject;\n onPointerGraceIntentChange(intent: GraceIntent | null): void;\n};\nconst [MenuContentProvider, useMenuContentContext] =\n createMenuContext(CONTENT_NAME);\n\ntype MenuContentElement = MenuRootContentTypeElement;\n/**\n * We purposefully don't union MenuRootContent and MenuSubContent props here because\n * they have conflicting prop types. We agreed that we would allow MenuSubContent to\n * accept props that it would just ignore.\n */\ninterface MenuContentProps extends MenuRootContentTypeProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst MenuContent = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeMenu);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, props.__scopeMenu);\n\n return (\n \n \n \n {rootContext.modal ? (\n \n ) : (\n \n )}\n \n \n \n );\n }\n);\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype MenuRootContentTypeElement = MenuContentImplElement;\ninterface MenuRootContentTypeProps\n extends Omit {}\n\nconst MenuRootContentModal = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n\n // Hide everything from ARIA except the `MenuContent`\n React.useEffect(() => {\n const content = ref.current;\n if (content) return hideOthers(content);\n }, []);\n\n return (\n event.preventDefault(),\n { checkForDefaultPrevented: false }\n )}\n onDismiss={() => context.onOpenChange(false)}\n />\n );\n }\n);\n\nconst MenuRootContentNonModal = React.forwardRef<\n MenuRootContentTypeElement,\n MenuRootContentTypeProps\n>((props: ScopedProps, forwardedRef) => {\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n return (\n context.onOpenChange(false)}\n />\n );\n});\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype MenuContentImplElement = React.ElementRef;\ntype FocusScopeProps = Radix.ComponentPropsWithoutRef;\ntype DismissableLayerProps = Radix.ComponentPropsWithoutRef;\ntype RovingFocusGroupProps = Radix.ComponentPropsWithoutRef;\ntype PopperContentProps = Radix.ComponentPropsWithoutRef;\ntype MenuContentImplPrivateProps = {\n onOpenAutoFocus?: FocusScopeProps['onMountAutoFocus'];\n onDismiss?: DismissableLayerProps['onDismiss'];\n disableOutsidePointerEvents?: DismissableLayerProps['disableOutsidePointerEvents'];\n\n /**\n * Whether scrolling outside the `MenuContent` should be prevented\n * (default: `false`)\n */\n disableOutsideScroll?: boolean;\n\n /**\n * Whether focus should be trapped within the `MenuContent`\n * (default: false)\n */\n trapFocus?: FocusScopeProps['trapped'];\n};\ninterface MenuContentImplProps\n extends MenuContentImplPrivateProps,\n Omit {\n /**\n * Event handler called when auto-focusing on close.\n * Can be prevented.\n */\n onCloseAutoFocus?: FocusScopeProps['onUnmountAutoFocus'];\n\n /**\n * Whether keyboard navigation should loop around\n * @defaultValue false\n */\n loop?: RovingFocusGroupProps['loop'];\n\n onEntryFocus?: RovingFocusGroupProps['onEntryFocus'];\n onEscapeKeyDown?: DismissableLayerProps['onEscapeKeyDown'];\n onPointerDownOutside?: DismissableLayerProps['onPointerDownOutside'];\n onFocusOutside?: DismissableLayerProps['onFocusOutside'];\n onInteractOutside?: DismissableLayerProps['onInteractOutside'];\n}\n\nconst MenuContentImpl = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const {\n __scopeMenu,\n loop = false,\n trapFocus,\n onOpenAutoFocus,\n onCloseAutoFocus,\n disableOutsidePointerEvents,\n onEntryFocus,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n disableOutsideScroll,\n ...contentProps\n } = props;\n const context = useMenuContext(CONTENT_NAME, __scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, __scopeMenu);\n const popperScope = usePopperScope(__scopeMenu);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenu);\n const getItems = useCollection(__scopeMenu);\n const [currentItemId, setCurrentItemId] = React.useState(null);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef, context.onContentChange);\n const timerRef = React.useRef(0);\n const searchRef = React.useRef('');\n const pointerGraceTimerRef = React.useRef(0);\n const pointerGraceIntentRef = React.useRef(null);\n const pointerDirRef = React.useRef('right');\n const lastPointerXRef = React.useRef(0);\n\n const ScrollLockWrapper = disableOutsideScroll ? RemoveScroll : React.Fragment;\n const scrollLockWrapperProps = disableOutsideScroll\n ? { as: Slot, allowPinchZoom: true }\n : undefined;\n\n const handleTypeaheadSearch = (key: string) => {\n const search = searchRef.current + key;\n const items = getItems().filter((item) => !item.disabled);\n const currentItem = document.activeElement;\n const currentMatch = items.find((item) => item.ref.current === currentItem)?.textValue;\n const values = items.map((item) => item.textValue);\n const nextMatch = getNextMatch(values, search, currentMatch);\n const newItem = items.find((item) => item.textValue === nextMatch)?.ref.current;\n\n // Reset `searchRef` 1 second after it was last updated\n (function updateSearch(value: string) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n if (value !== '') timerRef.current = window.setTimeout(() => updateSearch(''), 1000);\n })(search);\n\n if (newItem) {\n /**\n * Imperative focus during keydown is risky so we prevent React's batching updates\n * to avoid potential bugs. See: https://github.com/facebook/react/issues/20332\n */\n setTimeout(() => (newItem as HTMLElement).focus());\n }\n };\n\n React.useEffect(() => {\n return () => window.clearTimeout(timerRef.current);\n }, []);\n\n // Make sure the whole tree has focus guards as our `MenuContent` may be\n // the last element in the DOM (beacuse of the `Portal`)\n useFocusGuards();\n\n const isPointerMovingToSubmenu = React.useCallback((event: React.PointerEvent) => {\n const isMovingTowards = pointerDirRef.current === pointerGraceIntentRef.current?.side;\n return isMovingTowards && isPointerInGraceArea(event, pointerGraceIntentRef.current?.area);\n }, []);\n\n return (\n {\n if (isPointerMovingToSubmenu(event)) event.preventDefault();\n },\n [isPointerMovingToSubmenu]\n )}\n onItemLeave={React.useCallback(\n (event) => {\n if (isPointerMovingToSubmenu(event)) return;\n contentRef.current?.focus();\n setCurrentItemId(null);\n },\n [isPointerMovingToSubmenu]\n )}\n onTriggerLeave={React.useCallback(\n (event) => {\n if (isPointerMovingToSubmenu(event)) event.preventDefault();\n },\n [isPointerMovingToSubmenu]\n )}\n pointerGraceTimerRef={pointerGraceTimerRef}\n onPointerGraceIntentChange={React.useCallback((intent) => {\n pointerGraceIntentRef.current = intent;\n }, [])}\n >\n \n {\n // when opening, explicitly focus the content area only and leave\n // `onEntryFocus` in control of focusing first item\n event.preventDefault();\n contentRef.current?.focus();\n })}\n onUnmountAutoFocus={onCloseAutoFocus}\n >\n \n {\n // only focus first item when using keyboard\n if (!rootContext.isUsingKeyboardRef.current) event.preventDefault();\n })}\n >\n {\n // submenu key events bubble through portals. We only care about keys in this menu.\n const target = event.target as HTMLElement;\n const isKeyDownInside =\n target.closest('[data-radix-menu-content]') === event.currentTarget;\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n const isCharacterKey = event.key.length === 1;\n if (isKeyDownInside) {\n // menus should not be navigated using tab key so we prevent it\n if (event.key === 'Tab') event.preventDefault();\n if (!isModifierKey && isCharacterKey) handleTypeaheadSearch(event.key);\n }\n // focus first/last item based on key pressed\n const content = contentRef.current;\n if (event.target !== content) return;\n if (!FIRST_LAST_KEYS.includes(event.key)) return;\n event.preventDefault();\n const items = getItems().filter((item) => !item.disabled);\n const candidateNodes = items.map((item) => item.ref.current!);\n if (LAST_KEYS.includes(event.key)) candidateNodes.reverse();\n focusFirst(candidateNodes);\n })}\n onBlur={composeEventHandlers(props.onBlur, (event) => {\n // clear search buffer when leaving the menu\n if (!event.currentTarget.contains(event.target)) {\n window.clearTimeout(timerRef.current);\n searchRef.current = '';\n }\n })}\n onPointerMove={composeEventHandlers(\n props.onPointerMove,\n whenMouse((event) => {\n const target = event.target as HTMLElement;\n const pointerXHasChanged = lastPointerXRef.current !== event.clientX;\n\n // We don't use `event.movementX` for this check because Safari will\n // always return `0` on a pointer event.\n if (event.currentTarget.contains(target) && pointerXHasChanged) {\n const newDir = event.clientX > lastPointerXRef.current ? 'right' : 'left';\n pointerDirRef.current = newDir;\n lastPointerXRef.current = event.clientX;\n }\n })\n )}\n />\n \n \n \n \n \n );\n }\n);\n\nMenuContent.displayName = CONTENT_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenuGroup\n * -----------------------------------------------------------------------------------------------*/\n\nconst GROUP_NAME = 'MenuGroup';\n\ntype MenuGroupElement = React.ElementRef;\ntype PrimitiveDivProps = Radix.ComponentPropsWithoutRef;\ninterface MenuGroupProps extends PrimitiveDivProps {}\n\nconst MenuGroup = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeMenu, ...groupProps } = props;\n return ;\n }\n);\n\nMenuGroup.displayName = GROUP_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenuLabel\n * -----------------------------------------------------------------------------------------------*/\n\nconst LABEL_NAME = 'MenuLabel';\n\ntype MenuLabelElement = React.ElementRef;\ninterface MenuLabelProps extends PrimitiveDivProps {}\n\nconst MenuLabel = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeMenu, ...labelProps } = props;\n return ;\n }\n);\n\nMenuLabel.displayName = LABEL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenuItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst ITEM_NAME = 'MenuItem';\nconst ITEM_SELECT = 'menu.itemSelect';\n\ntype MenuItemElement = MenuItemImplElement;\ninterface MenuItemProps extends Omit {\n onSelect?: (event: Event) => void;\n}\n\nconst MenuItem = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { disabled = false, onSelect, ...itemProps } = props;\n const ref = React.useRef(null);\n const rootContext = useMenuRootContext(ITEM_NAME, props.__scopeMenu);\n const contentContext = useMenuContentContext(ITEM_NAME, props.__scopeMenu);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const isPointerDownRef = React.useRef(false);\n\n const handleSelect = () => {\n const menuItem = ref.current;\n if (!disabled && menuItem) {\n const itemSelectEvent = new CustomEvent(ITEM_SELECT, { bubbles: true, cancelable: true });\n menuItem.addEventListener(ITEM_SELECT, (event) => onSelect?.(event), { once: true });\n dispatchDiscreteCustomEvent(menuItem, itemSelectEvent);\n if (itemSelectEvent.defaultPrevented) {\n isPointerDownRef.current = false;\n } else {\n rootContext.onClose();\n }\n }\n };\n\n return (\n {\n props.onPointerDown?.(event);\n isPointerDownRef.current = true;\n }}\n onPointerUp={composeEventHandlers(props.onPointerUp, (event) => {\n // Pointer down can move to a different menu item which should activate it on pointer up.\n // We dispatch a click for selection to allow composition with click based triggers and to\n // prevent Firefox from getting stuck in text selection mode when the menu closes.\n if (!isPointerDownRef.current) event.currentTarget?.click();\n })}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n const isTypingAhead = contentContext.searchRef.current !== '';\n if (disabled || (isTypingAhead && event.key === ' ')) return;\n if (SELECTION_KEYS.includes(event.key)) {\n event.currentTarget.click();\n /**\n * We prevent default browser behaviour for selection keys as they should trigger\n * a selection only:\n * - prevents space from scrolling the page.\n * - if keydown causes focus to move, prevents keydown from firing on the new target.\n */\n event.preventDefault();\n }\n })}\n />\n );\n }\n);\n\nMenuItem.displayName = ITEM_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype MenuItemImplElement = React.ElementRef;\ninterface MenuItemImplProps extends PrimitiveDivProps {\n disabled?: boolean;\n textValue?: string;\n}\n\nconst MenuItemImpl = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeMenu, disabled = false, textValue, ...itemProps } = props;\n const contentContext = useMenuContentContext(ITEM_NAME, __scopeMenu);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const [isFocused, setIsFocused] = React.useState(false);\n\n // get the item's `.textContent` as default strategy for typeahead `textValue`\n const [textContent, setTextContent] = React.useState('');\n React.useEffect(() => {\n const menuItem = ref.current;\n if (menuItem) {\n setTextContent((menuItem.textContent ?? '').trim());\n }\n }, [itemProps.children]);\n\n return (\n \n \n {\n if (disabled) {\n contentContext.onItemLeave(event);\n } else {\n contentContext.onItemEnter(event);\n if (!event.defaultPrevented) {\n const item = event.currentTarget;\n item.focus();\n }\n }\n })\n )}\n onPointerLeave={composeEventHandlers(\n props.onPointerLeave,\n whenMouse((event) => contentContext.onItemLeave(event))\n )}\n onFocus={composeEventHandlers(props.onFocus, () => setIsFocused(true))}\n onBlur={composeEventHandlers(props.onBlur, () => setIsFocused(false))}\n />\n \n \n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * MenuCheckboxItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst CHECKBOX_ITEM_NAME = 'MenuCheckboxItem';\n\ntype MenuCheckboxItemElement = MenuItemElement;\n\ntype CheckedState = boolean | 'indeterminate';\n\ninterface MenuCheckboxItemProps extends MenuItemProps {\n checked?: CheckedState;\n // `onCheckedChange` can never be called with `\"indeterminate\"` from the inside\n onCheckedChange?: (checked: boolean) => void;\n}\n\nconst MenuCheckboxItem = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { checked = false, onCheckedChange, ...checkboxItemProps } = props;\n return (\n \n onCheckedChange?.(isIndeterminate(checked) ? true : !checked),\n { checkForDefaultPrevented: false }\n )}\n />\n \n );\n }\n);\n\nMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenuRadioGroup\n * -----------------------------------------------------------------------------------------------*/\n\nconst RADIO_GROUP_NAME = 'MenuRadioGroup';\n\nconst [RadioGroupProvider, useRadioGroupContext] = createMenuContext(\n RADIO_GROUP_NAME,\n { value: undefined, onValueChange: () => {} }\n);\n\ntype MenuRadioGroupElement = React.ElementRef;\ninterface MenuRadioGroupProps extends MenuGroupProps {\n value?: string;\n onValueChange?: (value: string) => void;\n}\n\nconst MenuRadioGroup = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { value, onValueChange, ...groupProps } = props;\n const handleValueChange = useCallbackRef(onValueChange);\n return (\n \n \n \n );\n }\n);\n\nMenuRadioGroup.displayName = RADIO_GROUP_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenuRadioItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst RADIO_ITEM_NAME = 'MenuRadioItem';\n\ntype MenuRadioItemElement = React.ElementRef;\ninterface MenuRadioItemProps extends MenuItemProps {\n value: string;\n}\n\nconst MenuRadioItem = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { value, ...radioItemProps } = props;\n const context = useRadioGroupContext(RADIO_ITEM_NAME, props.__scopeMenu);\n const checked = value === context.value;\n return (\n \n context.onValueChange?.(value),\n { checkForDefaultPrevented: false }\n )}\n />\n \n );\n }\n);\n\nMenuRadioItem.displayName = RADIO_ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenuItemIndicator\n * -----------------------------------------------------------------------------------------------*/\n\nconst ITEM_INDICATOR_NAME = 'MenuItemIndicator';\n\ntype CheckboxContextValue = { checked: CheckedState };\n\nconst [ItemIndicatorProvider, useItemIndicatorContext] = createMenuContext(\n ITEM_INDICATOR_NAME,\n { checked: false }\n);\n\ntype MenuItemIndicatorElement = React.ElementRef;\ntype PrimitiveSpanProps = Radix.ComponentPropsWithoutRef;\ninterface MenuItemIndicatorProps extends PrimitiveSpanProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst MenuItemIndicator = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeMenu, forceMount, ...itemIndicatorProps } = props;\n const indicatorContext = useItemIndicatorContext(ITEM_INDICATOR_NAME, __scopeMenu);\n return (\n \n \n \n );\n }\n);\n\nMenuItemIndicator.displayName = ITEM_INDICATOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenuSeparator\n * -----------------------------------------------------------------------------------------------*/\n\nconst SEPARATOR_NAME = 'MenuSeparator';\n\ntype MenuSeparatorElement = React.ElementRef;\ninterface MenuSeparatorProps extends PrimitiveDivProps {}\n\nconst MenuSeparator = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeMenu, ...separatorProps } = props;\n return (\n \n );\n }\n);\n\nMenuSeparator.displayName = SEPARATOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenuArrow\n * -----------------------------------------------------------------------------------------------*/\n\nconst ARROW_NAME = 'MenuArrow';\n\ntype MenuArrowElement = React.ElementRef;\ntype PopperArrowProps = Radix.ComponentPropsWithoutRef;\ninterface MenuArrowProps extends PopperArrowProps {}\n\nconst MenuArrow = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeMenu, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeMenu);\n return ;\n }\n);\n\nMenuArrow.displayName = ARROW_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenuSub\n * -----------------------------------------------------------------------------------------------*/\n\nconst SUB_NAME = 'MenuSub';\n\ntype MenuSubContextValue = {\n contentId: string;\n triggerId: string;\n trigger: MenuSubTriggerElement | null;\n onTriggerChange(trigger: MenuSubTriggerElement | null): void;\n};\n\nconst [MenuSubProvider, useMenuSubContext] = createMenuContext(SUB_NAME);\n\ninterface MenuSubProps {\n children?: React.ReactNode;\n open?: boolean;\n onOpenChange?(open: boolean): void;\n}\n\nconst MenuSub: React.FC = (props: ScopedProps) => {\n const { __scopeMenu, children, open = false, onOpenChange } = props;\n const parentMenuContext = useMenuContext(SUB_NAME, __scopeMenu);\n const popperScope = usePopperScope(__scopeMenu);\n const [trigger, setTrigger] = React.useState(null);\n const [content, setContent] = React.useState(null);\n const handleOpenChange = useCallbackRef(onOpenChange);\n\n // Prevent the parent menu from reopening with open submenus.\n React.useEffect(() => {\n if (parentMenuContext.open === false) handleOpenChange(false);\n return () => handleOpenChange(false);\n }, [parentMenuContext.open, handleOpenChange]);\n\n return (\n \n \n \n {children}\n \n \n \n );\n};\n\nMenuSub.displayName = SUB_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenuSubTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst SUB_TRIGGER_NAME = 'MenuSubTrigger';\n\ntype MenuSubTriggerElement = MenuItemImplElement;\ninterface MenuSubTriggerProps extends MenuItemImplProps {}\n\nconst MenuSubTrigger = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const context = useMenuContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const subContext = useMenuSubContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const contentContext = useMenuContentContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const openTimerRef = React.useRef(null);\n const { pointerGraceTimerRef, onPointerGraceIntentChange } = contentContext;\n const scope = { __scopeMenu: props.__scopeMenu };\n\n const clearOpenTimer = React.useCallback(() => {\n if (openTimerRef.current) window.clearTimeout(openTimerRef.current);\n openTimerRef.current = null;\n }, []);\n\n React.useEffect(() => clearOpenTimer, [clearOpenTimer]);\n\n React.useEffect(() => {\n const pointerGraceTimer = pointerGraceTimerRef.current;\n return () => {\n window.clearTimeout(pointerGraceTimer);\n onPointerGraceIntentChange(null);\n };\n }, [pointerGraceTimerRef, onPointerGraceIntentChange]);\n\n return (\n \n {\n props.onClick?.(event);\n if (props.disabled || event.defaultPrevented) return;\n /**\n * We manually focus because iOS Safari doesn't always focus on click (e.g. buttons)\n * and we rely heavily on `onFocusOutside` for submenus to close when switching\n * between separate submenus.\n */\n event.currentTarget.focus();\n if (!context.open) context.onOpenChange(true);\n }}\n onPointerMove={composeEventHandlers(\n props.onPointerMove,\n whenMouse((event) => {\n contentContext.onItemEnter(event);\n if (event.defaultPrevented) return;\n if (!props.disabled && !context.open && !openTimerRef.current) {\n contentContext.onPointerGraceIntentChange(null);\n openTimerRef.current = window.setTimeout(() => {\n context.onOpenChange(true);\n clearOpenTimer();\n }, 100);\n }\n })\n )}\n onPointerLeave={composeEventHandlers(\n props.onPointerLeave,\n whenMouse((event) => {\n clearOpenTimer();\n\n const contentRect = context.content?.getBoundingClientRect();\n if (contentRect) {\n // TODO: make sure to update this when we change positioning logic\n const side = context.content?.dataset.side as Side;\n const rightSide = side === 'right';\n const bleed = rightSide ? -5 : +5;\n const contentNearEdge = contentRect[rightSide ? 'left' : 'right'];\n const contentFarEdge = contentRect[rightSide ? 'right' : 'left'];\n\n contentContext.onPointerGraceIntentChange({\n area: [\n // Apply a bleed on clientX to ensure that our exit point is\n // consistently within polygon bounds\n { x: event.clientX + bleed, y: event.clientY },\n { x: contentNearEdge, y: contentRect.top },\n { x: contentFarEdge, y: contentRect.top },\n { x: contentFarEdge, y: contentRect.bottom },\n { x: contentNearEdge, y: contentRect.bottom },\n ],\n side,\n });\n\n window.clearTimeout(pointerGraceTimerRef.current);\n pointerGraceTimerRef.current = window.setTimeout(\n () => contentContext.onPointerGraceIntentChange(null),\n 300\n );\n } else {\n contentContext.onTriggerLeave(event);\n if (event.defaultPrevented) return;\n\n // There's 100ms where the user may leave an item before the submenu was opened.\n contentContext.onPointerGraceIntentChange(null);\n }\n })\n )}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n const isTypingAhead = contentContext.searchRef.current !== '';\n if (props.disabled || (isTypingAhead && event.key === ' ')) return;\n if (SUB_OPEN_KEYS[rootContext.dir].includes(event.key)) {\n context.onOpenChange(true);\n // The trigger may hold focus if opened via pointer interaction\n // so we ensure content is given focus again when switching to keyboard.\n context.content?.focus();\n // prevent window from scrolling\n event.preventDefault();\n }\n })}\n />\n \n );\n }\n);\n\nMenuSubTrigger.displayName = SUB_TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenuSubContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst SUB_CONTENT_NAME = 'MenuSubContent';\n\ntype MenuSubContentElement = MenuContentImplElement;\ninterface MenuSubContentProps\n extends Omit<\n MenuContentImplProps,\n keyof MenuContentImplPrivateProps | 'onCloseAutoFocus' | 'onEntryFocus' | 'side' | 'align'\n > {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst MenuSubContent = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeMenu);\n const { forceMount = portalContext.forceMount, ...subContentProps } = props;\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, props.__scopeMenu);\n const subContext = useMenuSubContext(SUB_CONTENT_NAME, props.__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n return (\n \n \n \n {\n // when opening a submenu, focus content for keyboard users only\n if (rootContext.isUsingKeyboardRef.current) ref.current?.focus();\n event.preventDefault();\n }}\n // The menu might close because of focusing another menu item in the parent menu. We\n // don't want it to refocus the trigger in that case so we handle trigger focus ourselves.\n onCloseAutoFocus={(event) => event.preventDefault()}\n onFocusOutside={composeEventHandlers(props.onFocusOutside, (event) => {\n // We prevent closing when the trigger is focused to avoid triggering a re-open animation\n // on pointer interaction.\n if (event.target !== subContext.trigger) context.onOpenChange(false);\n })}\n onEscapeKeyDown={composeEventHandlers(props.onEscapeKeyDown, (event) => {\n rootContext.onClose();\n // ensure pressing escape in submenu doesn't escape full screen mode\n event.preventDefault();\n })}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n // Submenu key events bubble through portals. We only care about keys in this menu.\n const isKeyDownInside = event.currentTarget.contains(event.target as HTMLElement);\n const isCloseKey = SUB_CLOSE_KEYS[rootContext.dir].includes(event.key);\n if (isKeyDownInside && isCloseKey) {\n context.onOpenChange(false);\n // We focus manually because we prevented it in `onCloseAutoFocus`\n subContext.trigger?.focus();\n // prevent window from scrolling\n event.preventDefault();\n }\n })}\n />\n \n \n \n );\n }\n);\n\nMenuSubContent.displayName = SUB_CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getOpenState(open: boolean) {\n return open ? 'open' : 'closed';\n}\n\nfunction isIndeterminate(checked?: CheckedState): checked is 'indeterminate' {\n return checked === 'indeterminate';\n}\n\nfunction getCheckedState(checked: CheckedState) {\n return isIndeterminate(checked) ? 'indeterminate' : checked ? 'checked' : 'unchecked';\n}\n\nfunction focusFirst(candidates: HTMLElement[]) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n // if focus is already where we want to go, we don't want to keep going through the candidates\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus();\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\n\n/**\n * Wraps an array around itself at a given start index\n * Example: `wrapArray(['a', 'b', 'c', 'd'], 2) === ['c', 'd', 'a', 'b']`\n */\nfunction wrapArray(array: T[], startIndex: number) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\n\n/**\n * This is the \"meat\" of the typeahead matching logic. It takes in all the values,\n * the search and the current match, and returns the next match (or `undefined`).\n *\n * We normalize the search because if a user has repeatedly pressed a character,\n * we want the exact same behavior as if we only had that one character\n * (ie. cycle through options starting with that character)\n *\n * We also reorder the values by wrapping the array around the current match.\n * This is so we always look forward from the current match, and picking the first\n * match will always be the correct one.\n *\n * Finally, if the normalized search is exactly one character, we exclude the\n * current match from the values because otherwise it would be the first to match always\n * and focus would never move. This is as opposed to the regular case, where we\n * don't want focus to move if the current match still matches.\n */\nfunction getNextMatch(values: string[], search: string, currentMatch?: string) {\n const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);\n const normalizedSearch = isRepeated ? search[0] : search;\n const currentMatchIndex = currentMatch ? values.indexOf(currentMatch) : -1;\n let wrappedValues = wrapArray(values, Math.max(currentMatchIndex, 0));\n const excludeCurrentMatch = normalizedSearch.length === 1;\n if (excludeCurrentMatch) wrappedValues = wrappedValues.filter((v) => v !== currentMatch);\n const nextMatch = wrappedValues.find((value) =>\n value.toLowerCase().startsWith(normalizedSearch.toLowerCase())\n );\n return nextMatch !== currentMatch ? nextMatch : undefined;\n}\n\ntype Point = { x: number; y: number };\ntype Polygon = Point[];\ntype Side = 'left' | 'right';\ntype GraceIntent = { area: Polygon; side: Side };\n\n// Determine if a point is inside of a polygon.\n// Based on https://github.com/substack/point-in-polygon\nfunction isPointInPolygon(point: Point, polygon: Polygon) {\n const { x, y } = point;\n let inside = false;\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const xi = polygon[i].x;\n const yi = polygon[i].y;\n const xj = polygon[j].x;\n const yj = polygon[j].y;\n\n // prettier-ignore\n const intersect = ((yi > y) !== (yj > y)) && (x < (xj - xi) * (y - yi) / (yj - yi) + xi);\n if (intersect) inside = !inside;\n }\n\n return inside;\n}\n\nfunction isPointerInGraceArea(event: React.PointerEvent, area?: Polygon) {\n if (!area) return false;\n const cursorPos = { x: event.clientX, y: event.clientY };\n return isPointInPolygon(cursorPos, area);\n}\n\nfunction whenMouse(handler: React.PointerEventHandler): React.PointerEventHandler {\n return (event) => (event.pointerType === 'mouse' ? handler(event) : undefined);\n}\n\nconst Root = Menu;\nconst Anchor = MenuAnchor;\nconst Portal = MenuPortal;\nconst Content = MenuContent;\nconst Group = MenuGroup;\nconst Label = MenuLabel;\nconst Item = MenuItem;\nconst CheckboxItem = MenuCheckboxItem;\nconst RadioGroup = MenuRadioGroup;\nconst RadioItem = MenuRadioItem;\nconst ItemIndicator = MenuItemIndicator;\nconst Separator = MenuSeparator;\nconst Arrow = MenuArrow;\nconst Sub = MenuSub;\nconst SubTrigger = MenuSubTrigger;\nconst SubContent = MenuSubContent;\n\nexport {\n createMenuScope,\n //\n Menu,\n MenuAnchor,\n MenuPortal,\n MenuContent,\n MenuGroup,\n MenuLabel,\n MenuItem,\n MenuCheckboxItem,\n MenuRadioGroup,\n MenuRadioItem,\n MenuItemIndicator,\n MenuSeparator,\n MenuArrow,\n MenuSub,\n MenuSubTrigger,\n MenuSubContent,\n //\n Root,\n Anchor,\n Portal,\n Content,\n Group,\n Label,\n Item,\n CheckboxItem,\n RadioGroup,\n RadioItem,\n ItemIndicator,\n Separator,\n Arrow,\n Sub,\n SubTrigger,\n SubContent,\n};\nexport type {\n MenuProps,\n MenuAnchorProps,\n MenuPortalProps,\n MenuContentProps,\n MenuGroupProps,\n MenuLabelProps,\n MenuItemProps,\n MenuCheckboxItemProps,\n MenuRadioGroupProps,\n MenuRadioItemProps,\n MenuItemIndicatorProps,\n MenuSeparatorProps,\n MenuArrowProps,\n MenuSubProps,\n MenuSubTriggerProps,\n MenuSubContentProps,\n};\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { composeRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport * as MenuPrimitive from '@radix-ui/react-menu';\nimport { createMenuScope } from '@radix-ui/react-menu';\nimport { useId } from '@radix-ui/react-id';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\ntype Direction = 'ltr' | 'rtl';\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenu\n * -----------------------------------------------------------------------------------------------*/\n\nconst DROPDOWN_MENU_NAME = 'DropdownMenu';\n\ntype ScopedProps

= P & { __scopeDropdownMenu?: Scope };\nconst [createDropdownMenuContext, createDropdownMenuScope] = createContextScope(\n DROPDOWN_MENU_NAME,\n [createMenuScope]\n);\nconst useMenuScope = createMenuScope();\n\ntype DropdownMenuContextValue = {\n triggerId: string;\n triggerRef: React.RefObject;\n contentId: string;\n open: boolean;\n onOpenChange(open: boolean): void;\n onOpenToggle(): void;\n modal: boolean;\n};\n\nconst [DropdownMenuProvider, useDropdownMenuContext] =\n createDropdownMenuContext(DROPDOWN_MENU_NAME);\n\ninterface DropdownMenuProps {\n children?: React.ReactNode;\n dir?: Direction;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?(open: boolean): void;\n modal?: boolean;\n}\n\nconst DropdownMenu: React.FC = (props: ScopedProps) => {\n const {\n __scopeDropdownMenu,\n children,\n dir,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = true,\n } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const triggerRef = React.useRef(null);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange,\n });\n\n return (\n setOpen((prevOpen) => !prevOpen), [setOpen])}\n modal={modal}\n >\n \n {children}\n \n \n );\n};\n\nDropdownMenu.displayName = DROPDOWN_MENU_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'DropdownMenuTrigger';\n\ntype DropdownMenuTriggerElement = React.ElementRef;\ntype PrimitiveButtonProps = Radix.ComponentPropsWithoutRef;\ninterface DropdownMenuTriggerProps extends PrimitiveButtonProps {}\n\nconst DropdownMenuTrigger = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDropdownMenu, disabled = false, ...triggerProps } = props;\n const context = useDropdownMenuContext(TRIGGER_NAME, __scopeDropdownMenu);\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return (\n \n {\n // only call handler if it's the left button (mousedown gets triggered by all mouse buttons)\n // but not when the control key is pressed (avoiding MacOS right click)\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onOpenToggle();\n // prevent trigger focusing when opening\n // this allows the content to be given focus without competition\n if (!context.open) event.preventDefault();\n }\n })}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n if (disabled) return;\n if (['Enter', ' '].includes(event.key)) context.onOpenToggle();\n if (event.key === 'ArrowDown') context.onOpenChange(true);\n // prevent keydown from scrolling window / first focused item to execute\n // that keydown (inadvertently closing the menu)\n if (['Enter', ' ', 'ArrowDown'].includes(event.key)) event.preventDefault();\n })}\n />\n \n );\n }\n);\n\nDropdownMenuTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuPortal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'DropdownMenuPortal';\n\ntype MenuPortalProps = React.ComponentPropsWithoutRef;\ninterface DropdownMenuPortalProps extends MenuPortalProps {}\n\nconst DropdownMenuPortal: React.FC = (\n props: ScopedProps\n) => {\n const { __scopeDropdownMenu, ...portalProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return ;\n};\n\nDropdownMenuPortal.displayName = PORTAL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'DropdownMenuContent';\n\ntype DropdownMenuContentElement = React.ElementRef;\ntype MenuContentProps = Radix.ComponentPropsWithoutRef;\ninterface DropdownMenuContentProps extends Omit {}\n\nconst DropdownMenuContent = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDropdownMenu, ...contentProps } = props;\n const context = useDropdownMenuContext(CONTENT_NAME, __scopeDropdownMenu);\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const hasInteractedOutsideRef = React.useRef(false);\n\n return (\n {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n hasInteractedOutsideRef.current = false;\n // Always prevent auto focus because we either focus manually or want user agent focus\n event.preventDefault();\n })}\n onInteractOutside={composeEventHandlers(props.onInteractOutside, (event) => {\n const originalEvent = event.detail.originalEvent as PointerEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n if (!context.modal || isRightClick) hasInteractedOutsideRef.current = true;\n })}\n style={{\n ...props.style,\n // re-namespace exposed content custom properties\n ...{\n '--radix-dropdown-menu-content-transform-origin':\n 'var(--radix-popper-transform-origin)',\n '--radix-dropdown-menu-content-available-width': 'var(--radix-popper-available-width)',\n '--radix-dropdown-menu-content-available-height':\n 'var(--radix-popper-available-height)',\n '--radix-dropdown-menu-trigger-width': 'var(--radix-popper-anchor-width)',\n '--radix-dropdown-menu-trigger-height': 'var(--radix-popper-anchor-height)',\n },\n }}\n />\n );\n }\n);\n\nDropdownMenuContent.displayName = CONTENT_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuGroup\n * -----------------------------------------------------------------------------------------------*/\n\nconst GROUP_NAME = 'DropdownMenuGroup';\n\ntype DropdownMenuGroupElement = React.ElementRef;\ntype MenuGroupProps = Radix.ComponentPropsWithoutRef;\ninterface DropdownMenuGroupProps extends MenuGroupProps {}\n\nconst DropdownMenuGroup = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDropdownMenu, ...groupProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return ;\n }\n);\n\nDropdownMenuGroup.displayName = GROUP_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuLabel\n * -----------------------------------------------------------------------------------------------*/\n\nconst LABEL_NAME = 'DropdownMenuLabel';\n\ntype DropdownMenuLabelElement = React.ElementRef;\ntype MenuLabelProps = Radix.ComponentPropsWithoutRef;\ninterface DropdownMenuLabelProps extends MenuLabelProps {}\n\nconst DropdownMenuLabel = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDropdownMenu, ...labelProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return ;\n }\n);\n\nDropdownMenuLabel.displayName = LABEL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst ITEM_NAME = 'DropdownMenuItem';\n\ntype DropdownMenuItemElement = React.ElementRef;\ntype MenuItemProps = Radix.ComponentPropsWithoutRef;\ninterface DropdownMenuItemProps extends MenuItemProps {}\n\nconst DropdownMenuItem = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDropdownMenu, ...itemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return ;\n }\n);\n\nDropdownMenuItem.displayName = ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuCheckboxItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst CHECKBOX_ITEM_NAME = 'DropdownMenuCheckboxItem';\n\ntype DropdownMenuCheckboxItemElement = React.ElementRef;\ntype MenuCheckboxItemProps = Radix.ComponentPropsWithoutRef;\ninterface DropdownMenuCheckboxItemProps extends MenuCheckboxItemProps {}\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n DropdownMenuCheckboxItemElement,\n DropdownMenuCheckboxItemProps\n>((props: ScopedProps, forwardedRef) => {\n const { __scopeDropdownMenu, ...checkboxItemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return ;\n});\n\nDropdownMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuRadioGroup\n * -----------------------------------------------------------------------------------------------*/\n\nconst RADIO_GROUP_NAME = 'DropdownMenuRadioGroup';\n\ntype DropdownMenuRadioGroupElement = React.ElementRef;\ntype MenuRadioGroupProps = Radix.ComponentPropsWithoutRef;\ninterface DropdownMenuRadioGroupProps extends MenuRadioGroupProps {}\n\nconst DropdownMenuRadioGroup = React.forwardRef<\n DropdownMenuRadioGroupElement,\n DropdownMenuRadioGroupProps\n>((props: ScopedProps, forwardedRef) => {\n const { __scopeDropdownMenu, ...radioGroupProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return ;\n});\n\nDropdownMenuRadioGroup.displayName = RADIO_GROUP_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuRadioItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst RADIO_ITEM_NAME = 'DropdownMenuRadioItem';\n\ntype DropdownMenuRadioItemElement = React.ElementRef;\ntype MenuRadioItemProps = Radix.ComponentPropsWithoutRef;\ninterface DropdownMenuRadioItemProps extends MenuRadioItemProps {}\n\nconst DropdownMenuRadioItem = React.forwardRef<\n DropdownMenuRadioItemElement,\n DropdownMenuRadioItemProps\n>((props: ScopedProps, forwardedRef) => {\n const { __scopeDropdownMenu, ...radioItemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return ;\n});\n\nDropdownMenuRadioItem.displayName = RADIO_ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuItemIndicator\n * -----------------------------------------------------------------------------------------------*/\n\nconst INDICATOR_NAME = 'DropdownMenuItemIndicator';\n\ntype DropdownMenuItemIndicatorElement = React.ElementRef;\ntype MenuItemIndicatorProps = Radix.ComponentPropsWithoutRef;\ninterface DropdownMenuItemIndicatorProps extends MenuItemIndicatorProps {}\n\nconst DropdownMenuItemIndicator = React.forwardRef<\n DropdownMenuItemIndicatorElement,\n DropdownMenuItemIndicatorProps\n>((props: ScopedProps, forwardedRef) => {\n const { __scopeDropdownMenu, ...itemIndicatorProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return ;\n});\n\nDropdownMenuItemIndicator.displayName = INDICATOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuSeparator\n * -----------------------------------------------------------------------------------------------*/\n\nconst SEPARATOR_NAME = 'DropdownMenuSeparator';\n\ntype DropdownMenuSeparatorElement = React.ElementRef;\ntype MenuSeparatorProps = Radix.ComponentPropsWithoutRef;\ninterface DropdownMenuSeparatorProps extends MenuSeparatorProps {}\n\nconst DropdownMenuSeparator = React.forwardRef<\n DropdownMenuSeparatorElement,\n DropdownMenuSeparatorProps\n>((props: ScopedProps, forwardedRef) => {\n const { __scopeDropdownMenu, ...separatorProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return ;\n});\n\nDropdownMenuSeparator.displayName = SEPARATOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuArrow\n * -----------------------------------------------------------------------------------------------*/\n\nconst ARROW_NAME = 'DropdownMenuArrow';\n\ntype DropdownMenuArrowElement = React.ElementRef;\ntype MenuArrowProps = Radix.ComponentPropsWithoutRef;\ninterface DropdownMenuArrowProps extends MenuArrowProps {}\n\nconst DropdownMenuArrow = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDropdownMenu, ...arrowProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return ;\n }\n);\n\nDropdownMenuArrow.displayName = ARROW_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuSub\n * -----------------------------------------------------------------------------------------------*/\n\ninterface DropdownMenuSubProps {\n children?: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?(open: boolean): void;\n}\n\nconst DropdownMenuSub: React.FC = (\n props: ScopedProps\n) => {\n const { __scopeDropdownMenu, children, open: openProp, onOpenChange, defaultOpen } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange,\n });\n\n return (\n \n {children}\n \n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuSubTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst SUB_TRIGGER_NAME = 'DropdownMenuSubTrigger';\n\ntype DropdownMenuSubTriggerElement = React.ElementRef;\ntype MenuSubTriggerProps = Radix.ComponentPropsWithoutRef;\ninterface DropdownMenuSubTriggerProps extends MenuSubTriggerProps {}\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n DropdownMenuSubTriggerElement,\n DropdownMenuSubTriggerProps\n>((props: ScopedProps, forwardedRef) => {\n const { __scopeDropdownMenu, ...subTriggerProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return ;\n});\n\nDropdownMenuSubTrigger.displayName = SUB_TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuSubContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst SUB_CONTENT_NAME = 'DropdownMenuSubContent';\n\ntype DropdownMenuSubContentElement = React.ElementRef;\ntype MenuSubContentProps = Radix.ComponentPropsWithoutRef;\ninterface DropdownMenuSubContentProps extends MenuSubContentProps {}\n\nconst DropdownMenuSubContent = React.forwardRef<\n DropdownMenuSubContentElement,\n DropdownMenuSubContentProps\n>((props: ScopedProps, forwardedRef) => {\n const { __scopeDropdownMenu, ...subContentProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n\n return (\n \n );\n});\n\nDropdownMenuSubContent.displayName = SUB_CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = DropdownMenu;\nconst Trigger = DropdownMenuTrigger;\nconst Portal = DropdownMenuPortal;\nconst Content = DropdownMenuContent;\nconst Group = DropdownMenuGroup;\nconst Label = DropdownMenuLabel;\nconst Item = DropdownMenuItem;\nconst CheckboxItem = DropdownMenuCheckboxItem;\nconst RadioGroup = DropdownMenuRadioGroup;\nconst RadioItem = DropdownMenuRadioItem;\nconst ItemIndicator = DropdownMenuItemIndicator;\nconst Separator = DropdownMenuSeparator;\nconst Arrow = DropdownMenuArrow;\nconst Sub = DropdownMenuSub;\nconst SubTrigger = DropdownMenuSubTrigger;\nconst SubContent = DropdownMenuSubContent;\n\nexport {\n createDropdownMenuScope,\n //\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuPortal,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuItemIndicator,\n DropdownMenuSeparator,\n DropdownMenuArrow,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n //\n Root,\n Trigger,\n Portal,\n Content,\n Group,\n Label,\n Item,\n CheckboxItem,\n RadioGroup,\n RadioItem,\n ItemIndicator,\n Separator,\n Arrow,\n Sub,\n SubTrigger,\n SubContent,\n};\nexport type {\n DropdownMenuProps,\n DropdownMenuTriggerProps,\n DropdownMenuPortalProps,\n DropdownMenuContentProps,\n DropdownMenuGroupProps,\n DropdownMenuLabelProps,\n DropdownMenuItemProps,\n DropdownMenuCheckboxItemProps,\n DropdownMenuRadioGroupProps,\n DropdownMenuRadioItemProps,\n DropdownMenuItemIndicatorProps,\n DropdownMenuSeparatorProps,\n DropdownMenuArrowProps,\n DropdownMenuSubProps,\n DropdownMenuSubTriggerProps,\n DropdownMenuSubContentProps,\n};\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContext, createContextScope } from '@radix-ui/react-context';\nimport { useId } from '@radix-ui/react-id';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\nimport { FocusScope } from '@radix-ui/react-focus-scope';\nimport { Portal as PortalPrimitive } from '@radix-ui/react-portal';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useFocusGuards } from '@radix-ui/react-focus-guards';\nimport { RemoveScroll } from 'react-remove-scroll';\nimport { hideOthers } from 'aria-hidden';\nimport { Slot } from '@radix-ui/react-slot';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Dialog\n * -----------------------------------------------------------------------------------------------*/\n\nconst DIALOG_NAME = 'Dialog';\n\ntype ScopedProps

= P & { __scopeDialog?: Scope };\nconst [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME);\n\ntype DialogContextValue = {\n triggerRef: React.RefObject;\n contentRef: React.RefObject;\n contentId: string;\n titleId: string;\n descriptionId: string;\n open: boolean;\n onOpenChange(open: boolean): void;\n onOpenToggle(): void;\n modal: boolean;\n};\n\nconst [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);\n\ninterface DialogProps {\n children?: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?(open: boolean): void;\n modal?: boolean;\n}\n\nconst Dialog: React.FC = (props: ScopedProps) => {\n const {\n __scopeDialog,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = true,\n } = props;\n const triggerRef = React.useRef(null);\n const contentRef = React.useRef(null);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange,\n });\n\n return (\n setOpen((prevOpen) => !prevOpen), [setOpen])}\n modal={modal}\n >\n {children}\n \n );\n};\n\nDialog.displayName = DIALOG_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'DialogTrigger';\n\ntype DialogTriggerElement = React.ElementRef;\ntype PrimitiveButtonProps = Radix.ComponentPropsWithoutRef;\ninterface DialogTriggerProps extends PrimitiveButtonProps {}\n\nconst DialogTrigger = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDialog, ...triggerProps } = props;\n const context = useDialogContext(TRIGGER_NAME, __scopeDialog);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n return (\n \n );\n }\n);\n\nDialogTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogPortal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'DialogPortal';\n\ntype PortalContextValue = { forceMount?: true };\nconst [PortalProvider, usePortalContext] = createDialogContext(PORTAL_NAME, {\n forceMount: undefined,\n});\n\ntype PortalProps = React.ComponentPropsWithoutRef;\ninterface DialogPortalProps {\n children?: React.ReactNode;\n /**\n * Specify a container element to portal the content into.\n */\n container?: PortalProps['container'];\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst DialogPortal: React.FC = (props: ScopedProps) => {\n const { __scopeDialog, forceMount, children, container } = props;\n const context = useDialogContext(PORTAL_NAME, __scopeDialog);\n return (\n \n {React.Children.map(children, (child) => (\n \n \n {child}\n \n \n ))}\n \n );\n};\n\nDialogPortal.displayName = PORTAL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogOverlay\n * -----------------------------------------------------------------------------------------------*/\n\nconst OVERLAY_NAME = 'DialogOverlay';\n\ntype DialogOverlayElement = DialogOverlayImplElement;\ninterface DialogOverlayProps extends DialogOverlayImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst DialogOverlay = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);\n return context.modal ? (\n \n \n \n ) : null;\n }\n);\n\nDialogOverlay.displayName = OVERLAY_NAME;\n\ntype DialogOverlayImplElement = React.ElementRef;\ntype PrimitiveDivProps = Radix.ComponentPropsWithoutRef;\ninterface DialogOverlayImplProps extends PrimitiveDivProps {}\n\nconst DialogOverlayImpl = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDialog, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, __scopeDialog);\n return (\n // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`\n // ie. when `Overlay` and `Content` are siblings\n \n \n \n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * DialogContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'DialogContent';\n\ntype DialogContentElement = DialogContentTypeElement;\ninterface DialogContentProps extends DialogContentTypeProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst DialogContent = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n return (\n \n {context.modal ? (\n \n ) : (\n \n )}\n \n );\n }\n);\n\nDialogContent.displayName = CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype DialogContentTypeElement = DialogContentImplElement;\ninterface DialogContentTypeProps\n extends Omit {}\n\nconst DialogContentModal = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, context.contentRef, contentRef);\n\n // aria-hide everything except the content (better supported equivalent to setting aria-modal)\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n\n return (\n {\n event.preventDefault();\n context.triggerRef.current?.focus();\n })}\n onPointerDownOutside={composeEventHandlers(props.onPointerDownOutside, (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n\n // If the event is a right-click, we shouldn't close because\n // it is effectively as if we right-clicked the `Overlay`.\n if (isRightClick) event.preventDefault();\n })}\n // When focus is trapped, a `focusout` event may still happen.\n // We make sure we don't trigger our `onDismiss` in such case.\n onFocusOutside={composeEventHandlers(props.onFocusOutside, (event) =>\n event.preventDefault()\n )}\n />\n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst DialogContentNonModal = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const hasInteractedOutsideRef = React.useRef(false);\n const hasPointerDownOutsideRef = React.useRef(false);\n\n return (\n {\n props.onCloseAutoFocus?.(event);\n\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n // Always prevent auto focus because we either focus manually or want user agent focus\n event.preventDefault();\n }\n\n hasInteractedOutsideRef.current = false;\n hasPointerDownOutsideRef.current = false;\n }}\n onInteractOutside={(event) => {\n props.onInteractOutside?.(event);\n\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === 'pointerdown') {\n hasPointerDownOutsideRef.current = true;\n }\n }\n\n // Prevent dismissing when clicking the trigger.\n // As the trigger is already setup to close, without doing so would\n // cause it to close and immediately open.\n const target = event.target as HTMLElement;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n\n // On Safari if the trigger is inside a container with tabIndex={0}, when clicked\n // we will get the pointer down outside event on the trigger, but then a subsequent\n // focus outside event on the container, we ignore any focus outside event when we've\n // already had a pointer down outside event.\n if (event.detail.originalEvent.type === 'focusin' && hasPointerDownOutsideRef.current) {\n event.preventDefault();\n }\n }}\n />\n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype DialogContentImplElement = React.ElementRef;\ntype DismissableLayerProps = Radix.ComponentPropsWithoutRef;\ntype FocusScopeProps = Radix.ComponentPropsWithoutRef;\ninterface DialogContentImplProps extends Omit {\n /**\n * When `true`, focus cannot escape the `Content` via keyboard,\n * pointer, or a programmatic focus.\n * @defaultValue false\n */\n trapFocus?: FocusScopeProps['trapped'];\n\n /**\n * Event handler called when auto-focusing on open.\n * Can be prevented.\n */\n onOpenAutoFocus?: FocusScopeProps['onMountAutoFocus'];\n\n /**\n * Event handler called when auto-focusing on close.\n * Can be prevented.\n */\n onCloseAutoFocus?: FocusScopeProps['onUnmountAutoFocus'];\n}\n\nconst DialogContentImpl = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDialog, trapFocus, onOpenAutoFocus, onCloseAutoFocus, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, __scopeDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n\n // Make sure the whole tree has focus guards as our `Dialog` will be\n // the last element in the DOM (beacuse of the `Portal`)\n useFocusGuards();\n\n return (\n <>\n \n context.onOpenChange(false)}\n />\n \n {process.env.NODE_ENV !== 'production' && (\n <>\n \n \n \n )}\n \n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * DialogTitle\n * -----------------------------------------------------------------------------------------------*/\n\nconst TITLE_NAME = 'DialogTitle';\n\ntype DialogTitleElement = React.ElementRef;\ntype PrimitiveHeading2Props = Radix.ComponentPropsWithoutRef;\ninterface DialogTitleProps extends PrimitiveHeading2Props {}\n\nconst DialogTitle = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDialog, ...titleProps } = props;\n const context = useDialogContext(TITLE_NAME, __scopeDialog);\n return ;\n }\n);\n\nDialogTitle.displayName = TITLE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogDescription\n * -----------------------------------------------------------------------------------------------*/\n\nconst DESCRIPTION_NAME = 'DialogDescription';\n\ntype DialogDescriptionElement = React.ElementRef;\ntype PrimitiveParagraphProps = Radix.ComponentPropsWithoutRef;\ninterface DialogDescriptionProps extends PrimitiveParagraphProps {}\n\nconst DialogDescription = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDialog, ...descriptionProps } = props;\n const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);\n return ;\n }\n);\n\nDialogDescription.displayName = DESCRIPTION_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogClose\n * -----------------------------------------------------------------------------------------------*/\n\nconst CLOSE_NAME = 'DialogClose';\n\ntype DialogCloseElement = React.ElementRef;\ninterface DialogCloseProps extends PrimitiveButtonProps {}\n\nconst DialogClose = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDialog, ...closeProps } = props;\n const context = useDialogContext(CLOSE_NAME, __scopeDialog);\n return (\n context.onOpenChange(false))}\n />\n );\n }\n);\n\nDialogClose.displayName = CLOSE_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getState(open: boolean) {\n return open ? 'open' : 'closed';\n}\n\nconst TITLE_WARNING_NAME = 'DialogTitleWarning';\n\nconst [WarningProvider, useWarningContext] = createContext(TITLE_WARNING_NAME, {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: 'dialog',\n});\n\ntype TitleWarningProps = { titleId?: string };\n\nconst TitleWarning: React.FC = ({ titleId }) => {\n const titleWarningContext = useWarningContext(TITLE_WARNING_NAME);\n\n const MESSAGE = `\\`${titleWarningContext.contentName}\\` requires a \\`${titleWarningContext.titleName}\\` for the component to be accessible for screen reader users.\n\nIf you want to hide the \\`${titleWarningContext.titleName}\\`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/${titleWarningContext.docsSlug}`;\n\n React.useEffect(() => {\n if (titleId) {\n const hasTitle = document.getElementById(titleId);\n if (!hasTitle) throw new Error(MESSAGE);\n }\n }, [MESSAGE, titleId]);\n\n return null;\n};\n\nconst DESCRIPTION_WARNING_NAME = 'DialogDescriptionWarning';\n\ntype DescriptionWarningProps = {\n contentRef: React.RefObject;\n descriptionId?: string;\n};\n\nconst DescriptionWarning: React.FC = ({ contentRef, descriptionId }) => {\n const descriptionWarningContext = useWarningContext(DESCRIPTION_WARNING_NAME);\n const MESSAGE = `Warning: Missing \\`Description\\` or \\`aria-describedby={undefined}\\` for {${descriptionWarningContext.contentName}}.`;\n\n React.useEffect(() => {\n const describedById = contentRef.current?.getAttribute('aria-describedby');\n // if we have an id and the user hasn't set aria-describedby={undefined}\n if (descriptionId && describedById) {\n const hasDescription = document.getElementById(descriptionId);\n if (!hasDescription) console.warn(MESSAGE);\n }\n }, [MESSAGE, contentRef, descriptionId]);\n\n return null;\n};\n\nconst Root = Dialog;\nconst Trigger = DialogTrigger;\nconst Portal = DialogPortal;\nconst Overlay = DialogOverlay;\nconst Content = DialogContent;\nconst Title = DialogTitle;\nconst Description = DialogDescription;\nconst Close = DialogClose;\n\nexport {\n createDialogScope,\n //\n Dialog,\n DialogTrigger,\n DialogPortal,\n DialogOverlay,\n DialogContent,\n DialogTitle,\n DialogDescription,\n DialogClose,\n //\n Root,\n Trigger,\n Portal,\n Overlay,\n Content,\n Title,\n Description,\n Close,\n //\n WarningProvider,\n};\nexport type {\n DialogProps,\n DialogTriggerProps,\n DialogPortalProps,\n DialogOverlayProps,\n DialogContentProps,\n DialogTitleProps,\n DialogDescriptionProps,\n DialogCloseProps,\n};\n","import { LockOpen1Icon, EyeClosedIcon, EyeOpenIcon, CheckIcon, PinBottomIcon, CopyIcon as CopyIcon$1, Cross2Icon, MagnifyingGlassIcon, CrossCircledIcon, CheckCircledIcon, PaperPlaneIcon, ShuffleIcon, TextAlignLeftIcon, ChevronRightIcon, EnterIcon, ExternalLinkIcon, ReloadIcon } from '@radix-ui/react-icons';\nimport { c as useTWLocale, u as useCustomTheme, C as Container, I as Img, p as TextDivider, M as ModalHeader, S as Spacer, B as Button, s as spacing, h as fontSize, a as iconSize, T as Text, e as Spinner, b as StyledDiv, q as fadeInAnimation, t as Input, v as media, L as Line, w as InputContainer, x as InputButton, y as IconButton, z as StyledButton, W as WalletEntryButton, d as ModalDescription, f as Label, A as ScreenBottomContainer, D as StyledP, r as radius, E as shadow, F as noScrollBar, G as CustomThemeProvider, H as ModalTitle, J as StyledUl, i as isMobile, K as StyledLabel, N as Link, g as ModalConfigCtx, O as TOS, o as useSetIsWalletModalOpen, P as SetModalConfigCtx, n as useIsWalletModalOpen, Q as WalletSelector, R as WalletUIStatesProvider, U as ThirdwebLocaleContext, m as en } from './formElements-7f371201.browser.esm.js';\nimport { g as googleIconUri, a as appleIconUri, f as facebookIconUri, I as InputSelectionUI, e as emailIcon, u as useScreenContext, r as reservedScreens, T as ToolTip, m as modalCloseFadeOutDuration, w as wideModalMaxHeight, b as modalMaxWidthCompact, c as modalMaxWidthWide, d as compactModalMaxHeight, s as smartWalletIcon, o as onModalUnmount, S as ScreenContext, h as useScreen, i as defaultTheme } from './Tooltip-69afad67.browser.esm.js';\nimport { useCreateWalletInstance, shortenAddress, useStorage, useSupportedChains, useSwitchChain, useChainId, useBalance, useChain, useWallet, useAddress, shortenString, useSetConnectionStatus, useSetConnectedWallet, useWalletContext, useWallets, useDisconnect, useWalletConfig, useENS, useSDK, useLogin, useConnectionStatus, useThirdwebAuthContext, useLogout, useNetworkMismatch, useUser, useConnect, resolveMimeType, useSDKChainId, useContract, ThirdwebProviderCore } from '@thirdweb-dev/react-core';\nimport React, { useEffect, useRef, useState, useCallback, useDeferredValue, useMemo, memo, useContext, Suspense, lazy } from 'react';\nimport { jsxs, jsx, Fragment } from 'react/jsx-runtime';\nimport { useMutation, useQueryClient, useQuery } from '@tanstack/react-query';\nimport { keyframes } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport * as RXPopover from '@radix-ui/react-popover';\nimport copy from 'copy-to-clipboard';\nimport * as Tabs from '@radix-ui/react-tabs';\nimport Fuse from 'fuse.js';\nimport * as DropdownMenu from '@radix-ui/react-dropdown-menu';\nimport { Localhost } from '@thirdweb-dev/chains';\nimport { EmbeddedWallet, LocalWallet, walletIds, MetaMaskWallet, SignerWallet, assertWindowEthereum, getInjectedMetamaskProvider, getInjectedCoinbaseProvider, OneKeyWallet, getInjectedOneKeyProvider } from '@thirdweb-dev/wallets';\nimport { F as FormFieldWithIconButton, Q as QRCode, s as safeChainIdToSlug, w as wait, W as WalletLogoSpinner, H as HeadlessConnectUI, d as defaultWallets, E as ExtensionOrWCConnectionUI } from './safeChainSlug-403963ed.browser.esm.js';\nimport { utils } from 'ethers';\nimport { NATIVE_TOKEN_ADDRESS } from '@thirdweb-dev/sdk';\nimport invariant from 'tiny-invariant';\nimport * as Dialog from '@radix-ui/react-dialog';\nimport { FocusScope } from '@radix-ui/react-focus-scope';\n\nconst wrappedEthIcon = \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTAwIiBoZWlnaHQ9IjI1MDAiIHZpZXdCb3g9IjAgMCAzMiAzMiI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48Y2lyY2xlIGN4PSIxNiIgY3k9IjE2IiByPSIxNiIgZmlsbD0iIzYyN0VFQSIvPjxnIGZpbGw9IiNGRkYiIGZpbGwtcnVsZT0ibm9uemVybyI+PHBhdGggZmlsbC1vcGFjaXR5PSIuNjAyIiBkPSJNMTYuNDk4IDR2OC44N2w3LjQ5NyAzLjM1eiIvPjxwYXRoIGQ9Ik0xNi40OTggNEw5IDE2LjIybDcuNDk4LTMuMzV6Ii8+PHBhdGggZmlsbC1vcGFjaXR5PSIuNjAyIiBkPSJNMTYuNDk4IDIxLjk2OHY2LjAyN0wyNCAxNy42MTZ6Ii8+PHBhdGggZD0iTTE2LjQ5OCAyNy45OTV2LTYuMDI4TDkgMTcuNjE2eiIvPjxwYXRoIGZpbGwtb3BhY2l0eT0iLjIiIGQ9Ik0xNi40OTggMjAuNTczbDcuNDk3LTQuMzUzLTcuNDk3LTMuMzQ4eiIvPjxwYXRoIGZpbGwtb3BhY2l0eT0iLjYwMiIgZD0iTTkgMTYuMjJsNy40OTggNC4zNTN2LTcuNzAxeiIvPjwvZz48L2c+PC9zdmc+\";\nconst tetherUsdIcon = \"data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMzkuNDMgMjk1LjI3Ij48dGl0bGU+dGV0aGVyLXVzZHQtbG9nbzwvdGl0bGU+PHBhdGggZD0iTTYyLjE1LDEuNDVsLTYxLjg5LDEzMGEyLjUyLDIuNTIsMCwwLDAsLjU0LDIuOTRMMTY3Ljk1LDI5NC41NmEyLjU1LDIuNTUsMCwwLDAsMy41MywwTDMzOC42MywxMzQuNGEyLjUyLDIuNTIsMCwwLDAsLjU0LTIuOTRsLTYxLjg5LTEzMEEyLjUsMi41LDAsMCwwLDI3NSwwSDY0LjQ1YTIuNSwyLjUsMCwwLDAtMi4zLDEuNDVoMFoiIHN0eWxlPSJmaWxsOiM1MGFmOTU7ZmlsbC1ydWxlOmV2ZW5vZGQiLz48cGF0aCBkPSJNMTkxLjE5LDE0NC44djBjLTEuMi4wOS03LjQsMC40Ni0yMS4yMywwLjQ2LTExLDAtMTguODEtLjMzLTIxLjU1LTAuNDZ2MGMtNDIuNTEtMS44Ny03NC4yNC05LjI3LTc0LjI0LTE4LjEzczMxLjczLTE2LjI1LDc0LjI0LTE4LjE1djI4LjkxYzIuNzgsMC4yLDEwLjc0LjY3LDIxLjc0LDAuNjcsMTMuMiwwLDE5LjgxLS41NSwyMS0wLjY2di0yOC45YzQyLjQyLDEuODksNzQuMDgsOS4yOSw3NC4wOCwxOC4xM3MtMzEuNjUsMTYuMjQtNzQuMDgsMTguMTJoMFptMC0zOS4yNVY3OS42OGg1OS4yVjQwLjIzSDg5LjIxVjc5LjY4SDE0OC40djI1Ljg2Yy00OC4xMSwyLjIxLTg0LjI5LDExLjc0LTg0LjI5LDIzLjE2czM2LjE4LDIwLjk0LDg0LjI5LDIzLjE2djgyLjloNDIuNzhWMTUxLjgzYzQ4LTIuMjEsODQuMTItMTEuNzMsODQuMTItMjMuMTRzLTM2LjA5LTIwLjkzLTg0LjEyLTIzLjE1aDBabTAsMGgwWiIgc3R5bGU9ImZpbGw6I2ZmZjtmaWxsLXJ1bGU6ZXZlbm9kZCIvPjwvc3ZnPg==\";\nconst usdcIcon = \"data:image/svg+xml;base64,PHN2ZyBkYXRhLW5hbWU9Ijg2OTc3Njg0LTEyZGItNDg1MC04ZjMwLTIzM2E3YzI2N2QxMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjAwMCAyMDAwIj4KICA8cGF0aCBkPSJNMTAwMCAyMDAwYzU1NC4xNyAwIDEwMDAtNDQ1LjgzIDEwMDAtMTAwMFMxNTU0LjE3IDAgMTAwMCAwIDAgNDQ1LjgzIDAgMTAwMHM0NDUuODMgMTAwMCAxMDAwIDEwMDB6IiBmaWxsPSIjMjc3NWNhIi8+CiAgPHBhdGggZD0iTTEyNzUgMTE1OC4zM2MwLTE0NS44My04Ny41LTE5NS44My0yNjIuNS0yMTYuNjYtMTI1LTE2LjY3LTE1MC01MC0xNTAtMTA4LjM0czQxLjY3LTk1LjgzIDEyNS05NS44M2M3NSAwIDExNi42NyAyNSAxMzcuNSA4Ny41IDQuMTcgMTIuNSAxNi42NyAyMC44MyAyOS4xNyAyMC44M2g2Ni42NmMxNi42NyAwIDI5LjE3LTEyLjUgMjkuMTctMjkuMTZ2LTQuMTdjLTE2LjY3LTkxLjY3LTkxLjY3LTE2Mi41LTE4Ny41LTE3MC44M3YtMTAwYzAtMTYuNjctMTIuNS0yOS4xNy0zMy4zMy0zMy4zNGgtNjIuNWMtMTYuNjcgMC0yOS4xNyAxMi41LTMzLjM0IDMzLjM0djk1LjgzYy0xMjUgMTYuNjctMjA0LjE2IDEwMC0yMDQuMTYgMjA0LjE3IDAgMTM3LjUgODMuMzMgMTkxLjY2IDI1OC4zMyAyMTIuNSAxMTYuNjcgMjAuODMgMTU0LjE3IDQ1LjgzIDE1NC4xNyAxMTIuNXMtNTguMzQgMTEyLjUtMTM3LjUgMTEyLjVjLTEwOC4zNCAwLTE0NS44NC00NS44NC0xNTguMzQtMTA4LjM0LTQuMTYtMTYuNjYtMTYuNjYtMjUtMjkuMTYtMjVoLTcwLjg0Yy0xNi42NiAwLTI5LjE2IDEyLjUtMjkuMTYgMjkuMTd2NC4xN2MxNi42NiAxMDQuMTYgODMuMzMgMTc5LjE2IDIyMC44MyAyMDB2MTAwYzAgMTYuNjYgMTIuNSAyOS4xNiAzMy4zMyAzMy4zM2g2Mi41YzE2LjY3IDAgMjkuMTctMTIuNSAzMy4zNC0zMy4zM3YtMTAwYzEyNS0yMC44NCAyMDguMzMtMTA4LjM0IDIwOC4zMy0yMjAuODR6IiBmaWxsPSIjZmZmIi8+CiAgPHBhdGggZD0iTTc4Ny41IDE1OTUuODNjLTMyNS0xMTYuNjYtNDkxLjY3LTQ3OS4xNi0zNzAuODMtODAwIDYyLjUtMTc1IDIwMC0zMDguMzMgMzcwLjgzLTM3MC44MyAxNi42Ny04LjMzIDI1LTIwLjgzIDI1LTQxLjY3VjMyNWMwLTE2LjY3LTguMzMtMjkuMTctMjUtMzMuMzMtNC4xNyAwLTEyLjUgMC0xNi42NyA0LjE2LTM5NS44MyAxMjUtNjEyLjUgNTQ1Ljg0LTQ4Ny41IDk0MS42NyA3NSAyMzMuMzMgMjU0LjE3IDQxMi41IDQ4Ny41IDQ4Ny41IDE2LjY3IDguMzMgMzMuMzQgMCAzNy41LTE2LjY3IDQuMTctNC4xNiA0LjE3LTguMzMgNC4xNy0xNi42NnYtNTguMzRjMC0xMi41LTEyLjUtMjkuMTYtMjUtMzcuNXpNMTIyOS4xNyAyOTUuODNjLTE2LjY3LTguMzMtMzMuMzQgMC0zNy41IDE2LjY3LTQuMTcgNC4xNy00LjE3IDguMzMtNC4xNyAxNi42N3Y1OC4zM2MwIDE2LjY3IDEyLjUgMzMuMzMgMjUgNDEuNjcgMzI1IDExNi42NiA0OTEuNjcgNDc5LjE2IDM3MC44MyA4MDAtNjIuNSAxNzUtMjAwIDMwOC4zMy0zNzAuODMgMzcwLjgzLTE2LjY3IDguMzMtMjUgMjAuODMtMjUgNDEuNjdWMTcwMGMwIDE2LjY3IDguMzMgMjkuMTcgMjUgMzMuMzMgNC4xNyAwIDEyLjUgMCAxNi42Ny00LjE2IDM5NS44My0xMjUgNjEyLjUtNTQ1Ljg0IDQ4Ny41LTk0MS42Ny03NS0yMzcuNS0yNTguMzQtNDE2LjY3LTQ4Ny41LTQ5MS42N3oiIGZpbGw9IiNmZmYiLz4KPC9zdmc+Cg==\";\nconst wrappedBtcIcon = \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDkuMjYgMTA5LjI2Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6IzVhNTU2NDt9LmNscy0ye2ZpbGw6I2YwOTI0Mjt9LmNscy0ze2ZpbGw6IzI4MjEzODt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPndyYXBwZWQtYml0Y29pbi13YnRjPC90aXRsZT48ZyBpZD0iTGF5ZXJfMiIgZGF0YS1uYW1lPSJMYXllciAyIj48ZyBpZD0iTGF5ZXJfMS0yIiBkYXRhLW5hbWU9IkxheWVyIDEiPjxnIGlkPSJQYWdlLTEiPjxnIGlkPSJ3YnRjX2NvbG91ciIgZGF0YS1uYW1lPSJ3YnRjIGNvbG91ciI+PHBhdGggaWQ9IlNoYXBlIiBjbGFzcz0iY2xzLTEiIGQ9Ik04OS4wOSwyMi45M2wtMywzYTQyLjQ3LDQyLjQ3LDAsMCwxLDAsNTcuMzJsMywzYTQ2Ljc2LDQ2Ljc2LDAsMCwwLDAtNjMuMzlaIi8+PHBhdGggaWQ9IlNoYXBlLTIiIGRhdGEtbmFtZT0iU2hhcGUiIGNsYXNzPSJjbHMtMSIgZD0iTTI2LDIzLjE5YTQyLjQ3LDQyLjQ3LDAsMCwxLDU3LjMyLDBsMy0zYTQ2Ljc2LDQ2Ljc2LDAsMCwwLTYzLjM5LDBaIi8+PHBhdGggaWQ9IlNoYXBlLTMiIGRhdGEtbmFtZT0iU2hhcGUiIGNsYXNzPSJjbHMtMSIgZD0iTTIzLjE5LDgzLjI4YTQyLjQ3LDQyLjQ3LDAsMCwxLDAtNTcuMjlsLTMtM2E0Ni43Niw0Ni43NiwwLDAsMCwwLDYzLjM5WiIvPjxwYXRoIGlkPSJTaGFwZS00IiBkYXRhLW5hbWU9IlNoYXBlIiBjbGFzcz0iY2xzLTEiIGQ9Ik04My4yOCw4Ni4wNWE0Mi40Nyw0Mi40NywwLDAsMS01Ny4zMiwwbC0zLDNhNDYuNzYsNDYuNzYsMCwwLDAsNjMuMzksMFoiLz48cGF0aCBpZD0iU2hhcGUtNSIgZGF0YS1uYW1lPSJTaGFwZSIgY2xhc3M9ImNscy0yIiBkPSJNNzMuNTcsNDQuNjJjLS42LTYuMjYtNi04LjM2LTEyLjgzLTlWMjdINTUuNDZ2OC40NmMtMS4zOSwwLTIuODEsMC00LjIyLDBWMjdINDZ2OC42OEgzNS4yOXY1LjY1czMuOS0uMDcsMy44NCwwYTIuNzMsMi43MywwLDAsMSwzLDIuMzJWNjcuNDFhMS44NSwxLjg1LDAsMCwxLS42NCwxLjI5LDEuODMsMS44MywwLDAsMS0xLjM2LjQ2Yy4wNy4wNi0zLjg0LDAtMy44NCwwbC0xLDYuMzFINDUuOXY4LjgyaDUuMjhWNzUuNkg1NS40djguNjVoNS4yOVY3NS41M2M4LjkyLS41NCwxNS4xNC0yLjc0LDE1LjkyLTExLjA5LjYzLTYuNzItMi41My05LjcyLTcuNTgtMTAuOTNDNzIuMSw1Miw3NCw0OS4yLDczLjU3LDQ0LjYyWk02Ni4xNyw2My40YzAsNi41Ni0xMS4yNCw1LjgxLTE0LjgyLDUuODFWNTcuNTdDNTQuOTMsNTcuNTgsNjYuMTcsNTYuNTUsNjYuMTcsNjMuNFpNNjMuNzIsNDdjMCw2LTkuMzgsNS4yNy0xMi4zNiw1LjI3VjQxLjY5QzU0LjM0LDQxLjY5LDYzLjcyLDQwLjc1LDYzLjcyLDQ3WiIvPjxwYXRoIGlkPSJTaGFwZS02IiBkYXRhLW5hbWU9IlNoYXBlIiBjbGFzcz0iY2xzLTMiIGQ9Ik01NC42MiwxMDkuMjZhNTQuNjMsNTQuNjMsMCwxLDEsNTQuNjQtNTQuNjRBNTQuNjMsNTQuNjMsMCwwLDEsNTQuNjIsMTA5LjI2Wm0wLTEwNUE1MC4zNCw1MC4zNCwwLDEsMCwxMDUsNTQuNjIsNTAuMzQsNTAuMzQsMCwwLDAsNTQuNjIsNC4yNloiLz48L2c+PC9nPjwvZz48L2c+PC9zdmc+\";\nconst maticIcon = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAyNCIgaGVpZ2h0PSIxMDI0IiB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8Y2lyY2xlIGN4PSI1MTIiIGN5PSI1MTIiIHI9IjUxMiIgZmlsbD0iIzgyNDdFNSIvPgo8cGF0aCBkPSJNNjgxLjQ2OSA0MDIuNDU2QzY2OS4xODkgMzk1LjMxMiA2NTMuMjI0IDM5NS4zMTIgNjM5LjcxNiA0MDIuNDU2TDU0My45MjggNDU3LjIyOEw0NzguODQyIDQ5Mi45NDlMMzgzLjA1NSA1NDcuNzIxQzM3MC43NzQgNTU0Ljg2NSAzNTQuODEgNTU0Ljg2NSAzNDEuMzAxIDU0Ny43MjFMMjY1LjE2MiA1MDQuODU2QzI1Mi44ODIgNDk3LjcxMiAyNDQuMjg2IDQ4NC42MTQgMjQ0LjI4NiA0NzAuMzI1VjM4NS43ODZDMjQ0LjI4NiAzNzEuNDk4IDI1MS42NTQgMzU4LjQgMjY1LjE2MiAzNTEuMjU2TDM0MC4wNzMgMzA5LjU4MUMzNTIuMzUzIDMwMi40MzcgMzY4LjMxOCAzMDIuNDM3IDM4MS44MjcgMzA5LjU4MUw0NTYuNzM3IDM1MS4yNTZDNDY5LjAxOCAzNTguNCA0NzcuNjE0IDM3MS40OTggNDc3LjYxNCAzODUuNzg2VjQ0MC41NThMNTQyLjcgNDAzLjY0NlYzNDguODc0QzU0Mi43IDMzNC41ODYgNTM1LjMzMiAzMjEuNDg4IDUyMS44MjQgMzE0LjM0NEwzODMuMDU1IDIzNS43NThDMzcwLjc3NCAyMjguNjE0IDM1NC44MSAyMjguNjE0IDM0MS4zMDEgMjM1Ljc1OEwyMDAuMDc2IDMxNC4zNDRDMTg2LjU2NyAzMjEuNDg4IDE3OS4xOTkgMzM0LjU4NiAxNzkuMTk5IDM0OC44NzRWNTA3LjIzN0MxNzkuMTk5IDUyMS41MjUgMTg2LjU2NyA1MzQuNjIzIDIwMC4wNzYgNTQxLjc2N0wzNDEuMzAxIDYyMC4zNTNDMzUzLjU4MiA2MjcuNDk4IDM2OS41NDYgNjI3LjQ5OCAzODMuMDU1IDYyMC4zNTNMNDc4Ljg0MiA1NjYuNzcyTDU0My45MjggNTI5Ljg2TDYzOS43MTYgNDc2LjI3OUM2NTEuOTk2IDQ2OS4xMzUgNjY3Ljk2MSA0NjkuMTM1IDY4MS40NjkgNDc2LjI3OUw3NTYuMzggNTE3Ljk1M0M3NjguNjYgNTI1LjA5OCA3NzcuMjU3IDUzOC4xOTUgNzc3LjI1NyA1NTIuNDg0VjYzNy4wMjNDNzc3LjI1NyA2NTEuMzEyIDc2OS44ODggNjY0LjQwOSA3NTYuMzggNjcxLjU1M0w2ODEuNDY5IDcxNC40MTlDNjY5LjE4OSA3MjEuNTYzIDY1My4yMjQgNzIxLjU2MyA2MzkuNzE2IDcxNC40MTlMNTY0LjgwNSA2NzIuNzQ0QzU1Mi41MjUgNjY1LjYgNTQzLjkyOCA2NTIuNTAyIDU0My45MjggNjM4LjIxNFY1ODMuNDQyTDQ3OC44NDIgNjIwLjM1M1Y2NzUuMTI1QzQ3OC44NDIgNjg5LjQxNCA0ODYuMjEgNzAyLjUxMiA0OTkuNzE5IDcwOS42NTZMNjQwLjk0NCA3ODguMjQyQzY1My4yMjQgNzk1LjM4NiA2NjkuMTg5IDc5NS4zODYgNjgyLjY5NyA3ODguMjQyTDgyMy45MjIgNzA5LjY1NkM4MzYuMjAzIDcwMi41MTIgODQ0Ljc5OSA2ODkuNDE0IDg0NC43OTkgNjc1LjEyNVY1MTYuNzYzQzg0NC43OTkgNTAyLjQ3NCA4MzcuNDMxIDQ4OS4zNzcgODIzLjkyMiA0ODIuMjMyTDY4MS40NjkgNDAyLjQ1NloiIGZpbGw9IndoaXRlIi8+Cjwvc3ZnPgo=\";\nconst binanceCoinIcon = \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiI+PGcgZmlsbD0ibm9uZSI+PGNpcmNsZSBjeD0iMTYiIGN5PSIxNiIgcj0iMTYiIGZpbGw9IiNGM0JBMkYiLz48cGF0aCBmaWxsPSIjRkZGIiBkPSJNMTIuMTE2IDE0LjQwNEwxNiAxMC41MmwzLjg4NiAzLjg4NiAyLjI2LTIuMjZMMTYgNmwtNi4xNDQgNi4xNDQgMi4yNiAyLjI2ek02IDE2bDIuMjYtMi4yNkwxMC41MiAxNmwtMi4yNiAyLjI2TDYgMTZ6bTYuMTE2IDEuNTk2TDE2IDIxLjQ4bDMuODg2LTMuODg2IDIuMjYgMi4yNTlMMTYgMjZsLTYuMTQ0LTYuMTQ0LS4wMDMtLjAwMyAyLjI2My0yLjI1N3pNMjEuNDggMTZsMi4yNi0yLjI2TDI2IDE2bC0yLjI2IDIuMjZMMjEuNDggMTZ6bS0zLjE4OC0uMDAyaC4wMDJ2LjAwMkwxNiAxOC4yOTRsLTIuMjkxLTIuMjktLjAwNC0uMDA0LjAwNC0uMDAzLjQwMS0uNDAyLjE5NS0uMTk1TDE2IDEzLjcwNmwyLjI5MyAyLjI5M3oiLz48L2c+PC9zdmc+\";\nconst BUSDIcon = \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMzYuNDEgMzM3LjQyIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2YwYjkwYjtzdHJva2U6I2YwYjkwYjt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPkFzc2V0IDE8L3RpdGxlPjxnIGlkPSJMYXllcl8yIiBkYXRhLW5hbWU9IkxheWVyIDIiPjxnIGlkPSJMYXllcl8xLTIiIGRhdGEtbmFtZT0iTGF5ZXIgMSI+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTY4LjIuNzFsNDEuNSw0Mi41TDEwNS4yLDE0Ny43MWwtNDEuNS00MS41WiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTIzMS4yLDYzLjcxbDQxLjUsNDIuNUwxMDUuMiwyNzMuNzFsLTQxLjUtNDEuNVoiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik00Mi4yLDEyNi43MWw0MS41LDQyLjUtNDEuNSw0MS41TC43LDE2OS4yMVoiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0yOTQuMiwxMjYuNzFsNDEuNSw0Mi41TDE2OC4yLDMzNi43MWwtNDEuNS00MS41WiIvPjwvZz48L2c+PC9zdmc+\";\nconst fantomIcon = \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMzIgMzIiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojZmZmO2ZpbGwtcnVsZTpldmVub2RkO30uY2xzLTJ7ZmlsbDojMTNiNWVjO30uY2xzLTN7bWFzazp1cmwoI21hc2spO308L3N0eWxlPjxtYXNrIGlkPSJtYXNrIiB4PSIxMCIgeT0iNiIgd2lkdGg9IjkzLjEiIGhlaWdodD0iMjAiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiPjxnIGlkPSJhIj48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xMCw2aDkzLjFWMjZIMTBaIi8+PC9nPjwvbWFzaz48L2RlZnM+PHRpdGxlPmZhPC90aXRsZT48ZyBpZD0iTGF5ZXJfMiIgZGF0YS1uYW1lPSJMYXllciAyIj48ZyBpZD0iTGF5ZXJfMS0yIiBkYXRhLW5hbWU9IkxheWVyIDEiPjxjaXJjbGUgY2xhc3M9ImNscy0yIiBjeD0iMTYiIGN5PSIxNiIgcj0iMTYiLz48ZyBjbGFzcz0iY2xzLTMiPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTE3LjIsMTIuOWwzLjYtMi4xVjE1Wm0zLjYsOUwxNiwyNC43bC00LjgtMi44VjE3TDE2LDE5LjgsMjAuOCwxN1pNMTEuMiwxMC44bDMuNiwyLjFMMTEuMiwxNVptNS40LDMuMUwyMC4yLDE2bC0zLjYsMi4xWm0tMS4yLDQuMkwxMS44LDE2bDMuNi0yLjFabTQuOC04LjNMMTYsMTIuMiwxMS44LDkuOCwxNiw3LjNaTTEwLDkuNFYyMi41bDYsMy40LDYtMy40VjkuNEwxNiw2WiIvPjwvZz48L2c+PC9nPjwvc3ZnPg==\";\n/**\n * Default tokens shown in [`ConnectWallet`](https://portal.thirdweb.com/react/v4/components/ConnectWallet)'s SendFunds screen for each network.\n *\n * You can use the default tokens as a starting point for your own list of tokens and override tokens for specific networks.\n *\n * @example\n * Below example shows adding a custom token for the Ethereum mainnet at start of the list of default tokens for the Ethereum mainnet. Here the `1` represents the chainId of Ethereum mainnet.\n *\n * ```tsx\n * const ethereumChainId = 1;\n *\n * \n * ```\n */\nconst defaultTokens = {\n \"1\": [{\n address: \"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\",\n name: \"Wrapped Ether\",\n symbol: \"WETH\",\n icon: wrappedEthIcon\n }, {\n address: \"0xdAC17F958D2ee523a2206206994597C13D831ec7\",\n name: \"Tether USD\",\n symbol: \"USDT\",\n icon: tetherUsdIcon\n }, {\n address: \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n name: \"USD Coin\",\n symbol: \"USDC\",\n icon: usdcIcon\n }, {\n address: \"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599\",\n name: \"Wrapped Bitcoin\",\n symbol: \"WBTC\",\n icon: wrappedBtcIcon\n }, {\n address: \"0x7D1AfA7B718fb893dB30A3aBc0Cfc608AaCfeBB0\",\n name: \"Polygon\",\n symbol: \"WMATIC\",\n icon: maticIcon\n }],\n \"5\": [{\n address: \"0xb4fbf271143f4fbf7b91a5ded31805e42b2208d6\",\n name: \"Wrapped Ether\",\n symbol: \"WETH\",\n icon: wrappedEthIcon\n }, {\n address: \"0x07865c6E87B9F70255377e024ace6630C1Eaa37F\",\n name: \"USD Coin\",\n symbol: \"USDC\",\n icon: usdcIcon\n }],\n \"10\": [{\n address: \"0x4200000000000000000000000000000000000006\",\n name: \"Wrapped Ether\",\n symbol: \"WETH\",\n icon: wrappedEthIcon\n }],\n \"56\": [{\n address: \"0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c\",\n name: \"Wrapped Binance Chain Token\",\n symbol: \"WBNB\",\n icon: binanceCoinIcon\n }, {\n address: \"0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56\",\n name: \"Binance USD\",\n symbol: \"BUSD\",\n icon: BUSDIcon\n }],\n \"97\": [{\n address: \"0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd\",\n name: \"Wrapped Binance Chain Testnet Token\",\n symbol: \"WBNB\",\n icon: binanceCoinIcon\n }, {\n address: \"0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee\",\n name: \"Binance USD\",\n symbol: \"BUSD\",\n icon: BUSDIcon\n }],\n \"137\": [{\n address: \"0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270\",\n name: \"Wrapped Matic\",\n symbol: \"WMATIC\",\n icon: maticIcon\n }, {\n address: \"0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619\",\n name: \"Wrapped Ether\",\n symbol: \"WETH\",\n icon: wrappedEthIcon\n }, {\n address: \"0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174\",\n name: \"USD Coin\",\n symbol: \"USDC\",\n icon: usdcIcon\n }, {\n address: \"0xc2132D05D31c914a87C6611C10748AEb04B58e8F\",\n name: \"Tether USD\",\n symbol: \"USDT\",\n icon: tetherUsdIcon\n }, {\n address: \"0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6\",\n name: \"Wrapped BTC\",\n symbol: \"WBTC\",\n icon: wrappedBtcIcon\n }],\n \"250\": [{\n address: \"0x21be370D5312f44cB42ce377BC9b8a0cEF1A4C83\",\n name: \"Wrapped Fantom\",\n symbol: \"WFTM\",\n icon: fantomIcon\n }, {\n name: \"Wrapped Ether\",\n address: \"0x74b23882a30290451A17c44f4F05243b6b58C76d\",\n symbol: \"WETH\",\n icon: wrappedEthIcon\n }, {\n name: \"USD Coin\",\n address: \"0x04068DA6C83AFCFA0e13ba15A6696662335D5B75\",\n symbol: \"USDC\",\n icon: usdcIcon\n }, {\n name: \"Wrapped Bitcoin\",\n address: \"0x321162Cd933E2Be498Cd2267a90534A804051b11\",\n symbol: \"WBTC\",\n icon: wrappedBtcIcon\n }],\n \"420\": [{\n address: \"0x4200000000000000000000000000000000000006\",\n name: \"Wrapped Ether\",\n symbol: \"WETH\",\n icon: wrappedEthIcon\n }],\n \"4002\": [{\n address: \"0xf1277d1Ed8AD466beddF92ef448A132661956621\",\n name: \"Wrapped Fantom\",\n symbol: \"WFTM\",\n icon: fantomIcon\n }],\n \"42161\": [{\n address: \"0x82af49447d8a07e3bd95bd0d56f35241523fbab1\",\n name: \"Wrapped Ether\",\n symbol: \"WETH\",\n icon: wrappedEthIcon\n }, {\n address: \"0xaf88d065e77c8cC2239327C5EDb3A432268e5831\",\n name: \"USD Coin\",\n symbol: \"USDC\",\n icon: usdcIcon\n }],\n \"43113\": [{\n address: \"0xd00ae08403B9bbb9124bB305C09058E32C39A48c\",\n name: \"Wrapped AVAX\",\n symbol: \"WAVAX\",\n icon: \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUwMyIgaGVpZ2h0PSIxNTA0IiB2aWV3Qm94PSIwIDAgMTUwMyAxNTA0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cmVjdCB4PSIyODciIHk9IjI1OCIgd2lkdGg9IjkyOCIgaGVpZ2h0PSI4NDQiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTUwMi41IDc1MkMxNTAyLjUgMTE2Ni43NyAxMTY2LjI3IDE1MDMgNzUxLjUgMTUwM0MzMzYuNzM0IDE1MDMgMC41IDExNjYuNzcgMC41IDc1MkMwLjUgMzM3LjIzNCAzMzYuNzM0IDEgNzUxLjUgMUMxMTY2LjI3IDEgMTUwMi41IDMzNy4yMzQgMTUwMi41IDc1MlpNNTM4LjY4OCAxMDUwLjg2SDM5Mi45NEMzNjIuMzE0IDEwNTAuODYgMzQ3LjE4NiAxMDUwLjg2IDMzNy45NjIgMTA0NC45NkMzMjcuOTk5IDEwMzguNSAzMjEuOTExIDEwMjcuOCAzMjEuMTczIDEwMTUuOTlDMzIwLjYxOSAxMDA1LjExIDMyOC4xODQgOTkxLjgyMiAzNDMuMzEyIDk2NS4yNTVMNzAzLjE4MiAzMzAuOTM1QzcxOC40OTUgMzAzLjk5OSA3MjYuMjQzIDI5MC41MzEgNzM2LjAyMSAyODUuNTVDNzQ2LjUzNyAyODAuMiA3NTkuMDgzIDI4MC4yIDc2OS41OTkgMjg1LjU1Qzc3OS4zNzcgMjkwLjUzMSA3ODcuMTI2IDMwMy45OTkgODAyLjQzOCAzMzAuOTM1TDg3Ni40MiA0NjAuMDc5TDg3Ni43OTcgNDYwLjczOEM4OTMuMzM2IDQ4OS42MzUgOTAxLjcyMyA1MDQuMjg5IDkwNS4zODUgNTE5LjY2OUM5MDkuNDQzIDUzNi40NTggOTA5LjQ0MyA1NTQuMTY5IDkwNS4zODUgNTcwLjk1OEM5MDEuNjk1IDU4Ni40NTUgODkzLjM5MyA2MDEuMjE1IDg3Ni42MDQgNjMwLjU0OUw2ODcuNTczIDk2NC43MDJMNjg3LjA4NCA5NjUuNTU4QzY3MC40MzYgOTk0LjY5MyA2NjEuOTk5IDEwMDkuNDYgNjUwLjMwNiAxMDIwLjZDNjM3LjU3NiAxMDMyLjc4IDYyMi4yNjMgMTA0MS42MyA2MDUuNDc0IDEwNDYuNjJDNTkwLjE2MSAxMDUwLjg2IDU3My4wMDQgMTA1MC44NiA1MzguNjg4IDEwNTAuODZaTTkwNi43NSAxMDUwLjg2SDExMTUuNTlDMTE0Ni40IDEwNTAuODYgMTE2MS45IDEwNTAuODYgMTE3MS4xMyAxMDQ0Ljc4QzExODEuMDkgMTAzOC4zMiAxMTg3LjM2IDEwMjcuNDMgMTE4Ny45MiAxMDE1LjYzQzExODguNDUgMTAwNS4xIDExODEuMDUgOTkyLjMzIDExNjYuNTUgOTY3LjMwN0MxMTY2LjA1IDk2Ni40NTUgMTE2NS41NSA5NjUuNTg4IDExNjUuMDQgOTY0LjcwNkwxMDYwLjQzIDc4NS43NUwxMDU5LjI0IDc4My43MzVDMTA0NC41NCA3NTguODc3IDEwMzcuMTIgNzQ2LjMyNCAxMDI3LjU5IDc0MS40NzJDMTAxNy4wOCA3MzYuMTIxIDEwMDQuNzEgNzM2LjEyMSA5OTQuMTk5IDc0MS40NzJDOTg0LjYwNSA3NDYuNDUzIDk3Ni44NTcgNzU5LjU1MiA5NjEuNTQ0IDc4NS45MzRMODU3LjMwNiA5NjQuODkxTDg1Ni45NDkgOTY1LjUwN0M4NDEuNjkgOTkxLjg0NyA4MzQuMDY0IDEwMDUuMDEgODM0LjYxNCAxMDE1LjgxQzgzNS4zNTIgMTAyNy42MiA4NDEuNDQgMTAzOC41IDg1MS40MDIgMTA0NC45NkM4NjAuNDQzIDEwNTAuODYgODc1Ljk0IDEwNTAuODYgOTA2Ljc1IDEwNTAuODZaIiBmaWxsPSIjRTg0MTQyIi8+Cjwvc3ZnPgo=\"\n }, {\n address: \"0x5425890298aed601595a70AB815c96711a31Bc65\",\n name: \"USD Coin\",\n symbol: \"USDC\",\n icon: usdcIcon\n }],\n \"43114\": [{\n address: \"0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7\",\n name: \"Wrapped AVAX\",\n symbol: \"WAVAX\",\n icon: \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUwMyIgaGVpZ2h0PSIxNTA0IiB2aWV3Qm94PSIwIDAgMTUwMyAxNTA0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cmVjdCB4PSIyODciIHk9IjI1OCIgd2lkdGg9IjkyOCIgaGVpZ2h0PSI4NDQiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTUwMi41IDc1MkMxNTAyLjUgMTE2Ni43NyAxMTY2LjI3IDE1MDMgNzUxLjUgMTUwM0MzMzYuNzM0IDE1MDMgMC41IDExNjYuNzcgMC41IDc1MkMwLjUgMzM3LjIzNCAzMzYuNzM0IDEgNzUxLjUgMUMxMTY2LjI3IDEgMTUwMi41IDMzNy4yMzQgMTUwMi41IDc1MlpNNTM4LjY4OCAxMDUwLjg2SDM5Mi45NEMzNjIuMzE0IDEwNTAuODYgMzQ3LjE4NiAxMDUwLjg2IDMzNy45NjIgMTA0NC45NkMzMjcuOTk5IDEwMzguNSAzMjEuOTExIDEwMjcuOCAzMjEuMTczIDEwMTUuOTlDMzIwLjYxOSAxMDA1LjExIDMyOC4xODQgOTkxLjgyMiAzNDMuMzEyIDk2NS4yNTVMNzAzLjE4MiAzMzAuOTM1QzcxOC40OTUgMzAzLjk5OSA3MjYuMjQzIDI5MC41MzEgNzM2LjAyMSAyODUuNTVDNzQ2LjUzNyAyODAuMiA3NTkuMDgzIDI4MC4yIDc2OS41OTkgMjg1LjU1Qzc3OS4zNzcgMjkwLjUzMSA3ODcuMTI2IDMwMy45OTkgODAyLjQzOCAzMzAuOTM1TDg3Ni40MiA0NjAuMDc5TDg3Ni43OTcgNDYwLjczOEM4OTMuMzM2IDQ4OS42MzUgOTAxLjcyMyA1MDQuMjg5IDkwNS4zODUgNTE5LjY2OUM5MDkuNDQzIDUzNi40NTggOTA5LjQ0MyA1NTQuMTY5IDkwNS4zODUgNTcwLjk1OEM5MDEuNjk1IDU4Ni40NTUgODkzLjM5MyA2MDEuMjE1IDg3Ni42MDQgNjMwLjU0OUw2ODcuNTczIDk2NC43MDJMNjg3LjA4NCA5NjUuNTU4QzY3MC40MzYgOTk0LjY5MyA2NjEuOTk5IDEwMDkuNDYgNjUwLjMwNiAxMDIwLjZDNjM3LjU3NiAxMDMyLjc4IDYyMi4yNjMgMTA0MS42MyA2MDUuNDc0IDEwNDYuNjJDNTkwLjE2MSAxMDUwLjg2IDU3My4wMDQgMTA1MC44NiA1MzguNjg4IDEwNTAuODZaTTkwNi43NSAxMDUwLjg2SDExMTUuNTlDMTE0Ni40IDEwNTAuODYgMTE2MS45IDEwNTAuODYgMTE3MS4xMyAxMDQ0Ljc4QzExODEuMDkgMTAzOC4zMiAxMTg3LjM2IDEwMjcuNDMgMTE4Ny45MiAxMDE1LjYzQzExODguNDUgMTAwNS4xIDExODEuMDUgOTkyLjMzIDExNjYuNTUgOTY3LjMwN0MxMTY2LjA1IDk2Ni40NTUgMTE2NS41NSA5NjUuNTg4IDExNjUuMDQgOTY0LjcwNkwxMDYwLjQzIDc4NS43NUwxMDU5LjI0IDc4My43MzVDMTA0NC41NCA3NTguODc3IDEwMzcuMTIgNzQ2LjMyNCAxMDI3LjU5IDc0MS40NzJDMTAxNy4wOCA3MzYuMTIxIDEwMDQuNzEgNzM2LjEyMSA5OTQuMTk5IDc0MS40NzJDOTg0LjYwNSA3NDYuNDUzIDk3Ni44NTcgNzU5LjU1MiA5NjEuNTQ0IDc4NS45MzRMODU3LjMwNiA5NjQuODkxTDg1Ni45NDkgOTY1LjUwN0M4NDEuNjkgOTkxLjg0NyA4MzQuMDY0IDEwMDUuMDEgODM0LjYxNCAxMDE1LjgxQzgzNS4zNTIgMTAyNy42MiA4NDEuNDQgMTAzOC41IDg1MS40MDIgMTA0NC45NkM4NjAuNDQzIDEwNTAuODYgODc1Ljk0IDEwNTAuODYgOTA2Ljc1IDEwNTAuODZaIiBmaWxsPSIjRTg0MTQyIi8+Cjwvc3ZnPgo=\"\n }, {\n address: \"0x49D5c2BdFfac6CE2BFdB6640F4F80f226bc10bAB\",\n name: \"Wrapped Ether\",\n symbol: \"WETH\",\n icon: wrappedEthIcon\n }, {\n address: \"0x9702230a8ea53601f5cd2dc00fdbc13d4df4a8c7\",\n name: \"Tether USD\",\n symbol: \"USDT\",\n icon: tetherUsdIcon\n }, {\n address: \"0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E\",\n name: \"USD Coin\",\n symbol: \"USDC\",\n icon: usdcIcon\n }, {\n address: \"0x50b7545627a5162F82A992c33b87aDc75187B218\",\n name: \"Wrapped BTC\",\n symbol: \"WBTC\",\n icon: wrappedBtcIcon\n }],\n \"80001\": [{\n address: \"0x9c3C9283D3e44854697Cd22D3Faa240Cfb032889\",\n name: \"Wrapped Matic\",\n symbol: \"WMATIC\",\n icon: maticIcon\n }, {\n name: \"Wrapped Ether\",\n address: \"0xa6fa4fb5f76172d178d61b04b0ecd319c5d1c0aa\",\n symbol: \"WETH\",\n icon: wrappedEthIcon\n }, {\n address: \"0x0FA8781a83E46826621b3BC094Ea2A0212e71B23\",\n name: \"USD Coin\",\n symbol: \"USDC\",\n icon: usdcIcon\n }, {\n name: \"Tether USD\",\n address: \"0x3813e82e6f7098b9583FC0F33a962D02018B6803\",\n symbol: \"USDT\",\n icon: tetherUsdIcon\n }],\n \"421613\": [{\n address: \"0xe39Ab88f8A4777030A534146A9Ca3B52bd5D43A3\",\n name: \"Wrapped Ether\",\n symbol: \"WETH\",\n icon: wrappedEthIcon\n }, {\n address: \"0xfd064A18f3BF249cf1f87FC203E90D8f650f2d63\",\n name: \"USD Coin\",\n symbol: \"USDC\",\n icon: usdcIcon\n }]\n};\n\nfunction getBodyTitle(authOption) {\n switch (authOption) {\n case \"google\":\n return \"Sign In - Google Accounts\";\n default:\n return `Sign In - ${authOption.slice(0, 1).toUpperCase()}${authOption.slice(1)}`;\n }\n}\nfunction getWidthAndHeight(authOption) {\n switch (authOption) {\n case \"facebook\":\n return {\n width: 715,\n height: 555\n };\n default:\n return {\n width: 350,\n height: 500\n };\n }\n}\nfunction openOauthSignInWindow(authOption, themeObj) {\n // open the popup in the center of the screen\n const {\n height,\n width\n } = getWidthAndHeight(authOption);\n const top = (window.innerHeight - height) / 2;\n const left = (window.innerWidth - width) / 2;\n const win = window.open(\"\", undefined, `width=${width}, height=${height}, top=${top}, left=${left}`);\n if (win) {\n const title = getBodyTitle(authOption);\n win.document.title = title;\n win.document.body.innerHTML = spinnerWindowHtml;\n win.document.body.style.background = themeObj.colors.modalBg;\n win.document.body.style.color = themeObj.colors.accentText;\n }\n\n // close it when current window is closed or refreshed\n if (win) {\n window.addEventListener(\"beforeunload\", () => {\n win?.close();\n });\n }\n return win;\n}\nconst spinnerWindowHtml = `\n\n \n\n\n\n`;\n\nconst socialIcons = {\n google: googleIconUri,\n apple: appleIconUri,\n facebook: facebookIconUri\n};\n\nconst EmbeddedWalletFormUI = props => {\n const twLocale = useTWLocale();\n const locale = twLocale.wallets.embeddedWallet;\n const {\n createWalletInstance,\n setConnectionStatus,\n setConnectedWallet\n } = props;\n const themeObj = useCustomTheme();\n const loginMethodsLabel = {\n google: locale.signInWithGoogle,\n facebook: locale.signInWithFacebook,\n apple: locale.signInWithApple\n };\n const enableEmailLogin = props.authOptions.includes(\"email\");\n const socialLogins = props.authOptions.filter(x => x !== \"email\");\n const hasSocialLogins = socialLogins.length > 0;\n\n // Need to trigger login on button click to avoid popup from being blocked\n const socialLogin = async strategy => {\n try {\n const embeddedWallet = createWalletInstance();\n setConnectionStatus(\"connecting\");\n const socialLoginWindow = openOauthSignInWindow(strategy, themeObj);\n if (!socialLoginWindow) {\n throw new Error(\"Failed to open login window\");\n }\n const authResult = await embeddedWallet.authenticate({\n strategy: strategy,\n openedWindow: socialLoginWindow,\n closeOpenedWindow: openedWindow => {\n openedWindow.close();\n }\n });\n await embeddedWallet.connect({\n authResult\n });\n setConnectedWallet(embeddedWallet);\n } catch (e) {\n setConnectionStatus(\"disconnected\");\n console.error(e);\n }\n };\n const showOnlyIcons = socialLogins.length > 1;\n return /*#__PURE__*/jsxs(Container, {\n flex: \"column\",\n gap: \"lg\",\n children: [hasSocialLogins && /*#__PURE__*/jsx(Container, {\n flex: showOnlyIcons ? \"row\" : \"column\",\n center: \"x\",\n gap: \"sm\",\n style: {\n justifyContent: \"space-between\"\n },\n children: socialLogins.map(loginMethod => {\n const imgIconSize = showOnlyIcons ? iconSize.lg : iconSize.md;\n return /*#__PURE__*/jsxs(SocialButton, {\n \"aria-label\": `Login with ${loginMethod}`,\n \"data-variant\": showOnlyIcons ? \"icon\" : \"full\",\n variant: showOnlyIcons ? \"outline\" : \"secondary\",\n fullWidth: !showOnlyIcons,\n onClick: () => {\n socialLogin(loginMethod);\n props.onSelect(loginMethod);\n },\n children: [/*#__PURE__*/jsx(Img, {\n src: socialIcons[loginMethod],\n width: imgIconSize,\n height: imgIconSize\n }), !showOnlyIcons && loginMethodsLabel[loginMethod]]\n }, loginMethod);\n })\n }), props.modalSize === \"wide\" && hasSocialLogins && enableEmailLogin && /*#__PURE__*/jsx(TextDivider, {\n text: twLocale.connectWallet.or\n }), enableEmailLogin && /*#__PURE__*/jsx(InputSelectionUI, {\n onSelect: email => props.onSelect({\n email\n }),\n placeholder: locale.emailPlaceholder,\n name: \"email\",\n type: \"email\",\n errorMessage: _input => {\n const input = _input.replace(/\\+/g, \"\");\n const emailRegex = /^([a-z0-9_\\.-]+)@([\\da-z\\.-]+)\\.([a-z\\.]{2,})$/g;\n const isValidEmail = emailRegex.test(input);\n if (!isValidEmail) {\n return locale.invalidEmail;\n }\n },\n emptyErrorMessage: locale.emailRequired,\n submitButtonText: locale.submitEmail\n })]\n });\n};\nconst EmbeddedWalletFormUIScreen = props => {\n const locale = useTWLocale().wallets.embeddedWallet.emailLoginScreen;\n const isCompact = props.modalSize === \"compact\";\n return /*#__PURE__*/jsxs(Container, {\n fullHeight: true,\n flex: \"column\",\n p: \"lg\",\n animate: \"fadein\",\n style: {\n minHeight: \"250px\"\n },\n children: [/*#__PURE__*/jsx(ModalHeader, {\n onBack: props.onBack,\n title: locale.title\n }), isCompact ? /*#__PURE__*/jsx(Spacer, {\n y: \"xl\"\n }) : null, /*#__PURE__*/jsx(Container, {\n expand: true,\n flex: \"column\",\n center: \"y\",\n p: isCompact ? undefined : \"lg\",\n children: /*#__PURE__*/jsx(EmbeddedWalletFormUI, {\n modalSize: props.modalSize,\n authOptions: props.authOptions,\n walletConfig: props.walletConfig,\n onSelect: props.onSelect,\n createWalletInstance: props.createWalletInstance,\n setConnectionStatus: props.setConnectionStatus,\n setConnectedWallet: props.setConnectedWallet\n })\n })]\n });\n};\nconst SocialButton = /* @__PURE__ */styled(Button)({\n \"&[data-variant='full']\": {\n display: \"flex\",\n justifyContent: \"center\",\n gap: spacing.md,\n fontSize: fontSize.md,\n transition: \"background-color 0.2s ease\",\n \"&:active\": {\n boxShadow: \"none\"\n }\n },\n \"&[data-variant='icon']\": {\n padding: spacing.sm,\n flexGrow: 1\n }\n});\n\nconst EmbeddedWalletSocialLogin = props => {\n const locale = useTWLocale().wallets.embeddedWallet.socialLoginScreen;\n const {\n goBack,\n modalSize,\n createWalletInstance,\n setConnectionStatus,\n setConnectedWallet,\n connectionStatus\n } = props;\n const themeObj = useCustomTheme();\n const socialLogin = async () => {\n try {\n const embeddedWallet = createWalletInstance();\n setConnectionStatus(\"connecting\");\n const socialWindow = openOauthSignInWindow(props.strategy, themeObj);\n if (!socialWindow) {\n throw new Error(`Failed to open ${props.strategy} login window`);\n }\n const authResult = await embeddedWallet.authenticate({\n strategy: props.strategy,\n openedWindow: socialWindow,\n closeOpenedWindow: openedWindow => {\n openedWindow.close();\n }\n });\n await embeddedWallet.connect({\n authResult\n });\n setConnectedWallet(embeddedWallet);\n props.connected();\n } catch (e) {\n setConnectionStatus(\"disconnected\");\n console.error(`Error sign in with ${props.strategy}`, e);\n }\n };\n const closeModal = props.connected;\n useEffect(() => {\n if (connectionStatus === \"connected\") {\n closeModal();\n }\n }, [connectionStatus, closeModal]);\n return /*#__PURE__*/jsx(Container, {\n animate: \"fadein\",\n flex: \"column\",\n fullHeight: true,\n children: /*#__PURE__*/jsxs(Container, {\n flex: \"column\",\n expand: true,\n p: \"lg\",\n style: {\n paddingBottom: 0\n },\n children: [/*#__PURE__*/jsx(ModalHeader, {\n title: locale.title,\n onBack: goBack\n }), modalSize === \"compact\" ? /*#__PURE__*/jsx(Spacer, {\n y: \"xl\"\n }) : null, /*#__PURE__*/jsxs(Container, {\n flex: \"column\",\n center: \"both\",\n expand: true,\n style: {\n textAlign: \"center\",\n minHeight: \"250px\"\n },\n children: [connectionStatus === \"connecting\" && /*#__PURE__*/jsxs(Container, {\n animate: \"fadein\",\n children: [/*#__PURE__*/jsx(Text, {\n color: \"primaryText\",\n center: true,\n multiline: true,\n style: {\n maxWidth: \"250px\"\n },\n children: locale.instruction\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"xl\"\n }), /*#__PURE__*/jsx(Container, {\n center: \"x\",\n flex: \"row\",\n children: /*#__PURE__*/jsx(Spinner, {\n size: \"lg\",\n color: \"accentText\"\n })\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"xxl\"\n })]\n }), connectionStatus === \"disconnected\" && /*#__PURE__*/jsxs(Container, {\n animate: \"fadein\",\n children: [/*#__PURE__*/jsx(Text, {\n color: \"danger\",\n children: locale.failed\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"lg\"\n }), /*#__PURE__*/jsx(Button, {\n variant: \"primary\",\n onClick: socialLogin,\n children: locale.retry\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"xxl\"\n })]\n })]\n })]\n })\n });\n};\n\nconst FadeIn = /* @__PURE__ */StyledDiv({\n animation: `${fadeInAnimation} 0.15s ease-in`\n});\n\nfunction OTPInput(props) {\n const otp = props.value.split(\"\");\n const setOTP = newOTP => {\n props.setValue(newOTP.join(\"\"));\n };\n const inputToFocusIndex = otp.length;\n const boxEls = useRef([]);\n useEffect(() => {\n if (boxEls.current[inputToFocusIndex]) {\n requestAnimationFrame(() => {\n boxEls.current[inputToFocusIndex]?.focus();\n });\n }\n }, [inputToFocusIndex]);\n return /*#__PURE__*/jsx(Container, {\n center: \"x\",\n gap: \"sm\",\n flex: \"row\",\n children: new Array(props.digits).fill(null).map((_, i) => {\n return /*#__PURE__*/jsx(OTPInputBox, {\n \"data-error\": props.isInvalid,\n ref: e => boxEls.current[i] = e,\n value: otp[i] ?? \"\",\n type: \"text\",\n pattern: \"[a-zA-Z0-9]*\",\n variant: \"outline\",\n inputMode: \"text\",\n onPaste: e => {\n const pastedData = e.clipboardData.getData(\"text/plain\");\n const newOTP = pastedData.slice(0, props.digits).split(\"\");\n setOTP(newOTP);\n e.preventDefault();\n },\n onKeyDown: e => {\n if (e.key === \"Enter\") {\n if (props.onEnter) {\n props.onEnter();\n return;\n }\n }\n if (e.key === \"ArrowLeft\") {\n if (i === 0) {\n return;\n }\n boxEls.current[i - 1]?.focus();\n return;\n }\n if (e.key === \"ArrowRight\") {\n if (i === props.digits - 1) {\n return;\n }\n boxEls.current[i + 1]?.focus();\n return;\n }\n if (e.key === \"e\" || e.key === \".\") {\n e.preventDefault();\n return;\n }\n if (e.key === \"Backspace\") {\n if (i === 0) {\n return;\n }\n const newOTP = otp.slice(0, -1);\n setOTP(newOTP);\n }\n },\n onChange: e => {\n let value = e.target.value;\n if (value.length > 1) {\n const lastValue = value[value.length - 1];\n if (lastValue) {\n value = lastValue;\n }\n }\n if (!/\\d/.test(value) && value !== \"\") {\n e.preventDefault();\n return;\n }\n const newOTP = [...otp];\n const index = i > inputToFocusIndex - 1 ? inputToFocusIndex : i;\n newOTP[index] = value;\n setOTP(newOTP);\n }\n }, i);\n })\n });\n}\nconst OTPInputBox = /* @__PURE__ */styled(Input)(() => {\n const theme = useCustomTheme();\n return {\n appearance: \"none\",\n WebkitAppearance: \"none\",\n width: \"40px\",\n height: \"40px\",\n textAlign: \"center\",\n fontSize: fontSize.md,\n padding: spacing.xs,\n [media.mobile]: {\n width: \"35px\",\n height: \"35px\"\n },\n \"&[data-verify-status='invalid']\": {\n color: theme.colors.danger,\n borderColor: theme.colors.danger\n }\n };\n});\n\nfunction CreatePassword(props) {\n const locale = useTWLocale().wallets.embeddedWallet.createPassword;\n const [loading, setLoading] = useState(false);\n const [showPassword, setShowPassword] = useState(false);\n const [password, setPassword] = useState(\"\");\n const [error, setError] = useState(false);\n const [saved, setSaved] = useState(false);\n return /*#__PURE__*/jsxs(Container, {\n fullHeight: true,\n flex: \"column\",\n animate: \"fadein\",\n children: [/*#__PURE__*/jsx(Container, {\n p: \"lg\",\n children: /*#__PURE__*/jsx(ModalHeader, {\n title: locale.title,\n onBack: props.goBack\n })\n }), /*#__PURE__*/jsx(Line, {}), /*#__PURE__*/jsxs(Container, {\n expand: true,\n px: props.modalSize === \"wide\" ? \"xxl\" : \"lg\",\n flex: \"column\",\n center: \"y\",\n style: {\n paddingTop: 0\n },\n children: [props.modalSize === \"compact\" && /*#__PURE__*/jsx(Spacer, {\n y: \"xxl\"\n }), /*#__PURE__*/jsx(Container, {\n flex: \"row\",\n center: \"x\",\n color: \"accentText\",\n children: /*#__PURE__*/jsx(BounceContainer, {\n children: /*#__PURE__*/jsx(LockOpen1Icon, {\n width: iconSize.xxl,\n height: iconSize.xxl\n })\n })\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"xl\"\n }), /*#__PURE__*/jsxs(\"form\", {\n onSubmit: async e => {\n e.preventDefault();\n setLoading(false);\n setError(false);\n if (password) {\n try {\n setLoading(true);\n await props.onPassword(password);\n } catch (err) {\n setError(true);\n console.error(err);\n }\n setLoading(false);\n }\n },\n children: [/*#__PURE__*/jsx(Text, {\n center: true,\n multiline: true,\n children: locale.instruction\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"xs\"\n }), /*#__PURE__*/jsx(Text, {\n center: true,\n color: \"primaryText\",\n children: locale.saveInstruction\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"xl\"\n }), /*#__PURE__*/jsxs(InputContainer, {\n children: [/*#__PURE__*/jsx(Input, {\n variant: \"transparent\",\n required: true,\n name: \"new-password\",\n autoComplete: \"new-password\",\n id: \"new-password\",\n onChange: e => setPassword(e.target.value),\n value: password,\n type: showPassword ? \"text\" : \"password\",\n placeholder: locale.inputPlaceholder\n }), /*#__PURE__*/jsx(InputButton, {\n type: \"button\",\n onClick: () => setShowPassword(!showPassword),\n children: showPassword ? /*#__PURE__*/jsx(EyeClosedIcon, {}) : /*#__PURE__*/jsx(EyeOpenIcon, {})\n })]\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"lg\"\n }), /*#__PURE__*/jsxs(Container, {\n flex: \"row\",\n gap: \"sm\",\n center: \"y\",\n children: [/*#__PURE__*/jsx(CheckboxButton, {\n \"aria-checked\": saved,\n type: \"button\",\n id: \"save-checkbox\",\n onClick: () => {\n setSaved(!saved);\n },\n children: /*#__PURE__*/jsx(CheckIcon, {\n width: 20,\n height: 20,\n style: {\n opacity: saved ? 1 : 0,\n transform: saved ? \"scale(1)\" : \"scale(0)\",\n transition: \"opacity 200ms ease, transform 200ms ease\"\n }\n })\n }), /*#__PURE__*/jsx(\"label\", {\n htmlFor: \"save-checkbox\",\n style: {\n cursor: \"pointer\",\n userSelect: \"none\"\n },\n children: /*#__PURE__*/jsx(Text, {\n size: \"sm\",\n color: \"primaryText\",\n children: locale.confirmation\n })\n })]\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"md\"\n }), /*#__PURE__*/jsx(Button, {\n disabled: loading || !saved,\n variant: \"accent\",\n fullWidth: true,\n style: {\n minWidth: \"100px\"\n },\n type: \"submit\",\n children: loading ? /*#__PURE__*/jsx(Spinner, {\n size: \"md\",\n color: \"accentButtonText\"\n }) : locale.submitButton\n }), error && /*#__PURE__*/jsxs(Container, {\n children: [/*#__PURE__*/jsx(Spacer, {\n y: \"lg\"\n }), /*#__PURE__*/jsx(Text, {\n size: \"sm\",\n color: \"danger\",\n center: true,\n children: locale.failedToSetPassword\n })]\n })]\n })]\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"xl\"\n })]\n });\n}\nconst CheckboxButton = /* @__PURE__ */styled(IconButton)(() => {\n const theme = useCustomTheme();\n return {\n border: `2px solid ${theme.colors.accentText}`,\n color: `${theme.colors.accentText} !important`,\n padding: 0,\n \"&[aria-checked='true']\": {\n background: theme.colors.accentText,\n color: `${theme.colors.modalBg} !important`\n }\n };\n});\nconst bounceAnimation = keyframes`\nfrom {\n transform: translateY(-3px);\n}\nto {\n transform: translateY(3px);\n}\n`;\nconst BounceContainer = /* @__PURE__ */StyledDiv({\n animation: `${bounceAnimation} 1s ease-in-out infinite alternate`\n});\n\nfunction EnterPasswordOrRecovery(props) {\n const locale = useTWLocale().wallets.embeddedWallet.enterPassword;\n const [loading, setLoading] = useState(false);\n const [showPassword, setShowPassword] = useState(false);\n const [password, setPassword] = useState(\"\");\n const [error, setError] = useState(false);\n return /*#__PURE__*/jsxs(Container, {\n fullHeight: true,\n flex: \"column\",\n animate: \"fadein\",\n children: [/*#__PURE__*/jsx(Container, {\n p: \"lg\",\n children: /*#__PURE__*/jsx(ModalHeader, {\n title: locale.title,\n onBack: props.goBack\n })\n }), /*#__PURE__*/jsx(Line, {}), /*#__PURE__*/jsx(Spacer, {\n y: \"xxl\"\n }), /*#__PURE__*/jsx(Container, {\n expand: true,\n flex: \"column\",\n center: \"y\",\n p: props.modalSize === \"wide\" ? \"xxl\" : \"lg\",\n style: {\n paddingTop: 0\n },\n children: /*#__PURE__*/jsxs(\"form\", {\n onSubmit: async event => {\n event.preventDefault();\n setLoading(true);\n setError(false);\n try {\n await props.onVerify(password);\n } catch (e) {\n setError(true);\n console.error(e);\n }\n setLoading(false);\n },\n children: [/*#__PURE__*/jsx(Text, {\n center: true,\n children: locale.instruction\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"sm\"\n }), /*#__PURE__*/jsx(Text, {\n center: true,\n color: \"primaryText\",\n children: props.email\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"xl\"\n }), /*#__PURE__*/jsxs(InputContainer, {\n \"data-error\": !!error,\n children: [/*#__PURE__*/jsx(Input, {\n variant: \"transparent\",\n required: true,\n name: \"new-password\",\n autoComplete: \"new-password\",\n id: \"new-password\",\n onChange: e => {\n setPassword(e.target.value);\n setError(false);\n },\n value: password,\n type: showPassword ? \"text\" : \"password\",\n placeholder: locale.inputPlaceholder\n }), /*#__PURE__*/jsx(InputButton, {\n type: \"button\",\n onClick: () => setShowPassword(!showPassword),\n children: showPassword ? /*#__PURE__*/jsx(EyeClosedIcon, {}) : /*#__PURE__*/jsx(EyeOpenIcon, {})\n })]\n }), error && /*#__PURE__*/jsxs(Fragment, {\n children: [/*#__PURE__*/jsx(Spacer, {\n y: \"sm\"\n }), /*#__PURE__*/jsx(Text, {\n color: \"danger\",\n size: \"sm\",\n children: locale.wrongPassword\n })]\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"md\"\n }), /*#__PURE__*/jsx(Button, {\n fullWidth: true,\n variant: \"accent\",\n type: \"submit\",\n disabled: loading,\n children: loading ? /*#__PURE__*/jsx(Fragment, {\n children: /*#__PURE__*/jsx(Spinner, {\n size: \"md\",\n color: \"accentButtonText\"\n })\n }) : /*#__PURE__*/jsx(Fragment, {\n children: locale.submitButton\n })\n })]\n })\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"sm\"\n })]\n });\n}\n\nconst EmbeddedWalletOTPLoginUI = props => {\n const email = props.selectionData;\n const isWideModal = props.modalSize === \"wide\";\n const locale = useTWLocale().wallets.embeddedWallet;\n const [otpInput, setOtpInput] = useState(\"\");\n const {\n createWalletInstance,\n setConnectedWallet,\n setConnectionStatus\n } = props;\n const [wallet, setWallet] = useState(null);\n const [verifyStatus, setVerifyStatus] = useState(\"idle\");\n const [emailStatus, setEmailStatus] = useState(\"sending\");\n const [screen, setScreen] = useState(\"base\");\n const sendEmail = useCallback(async () => {\n setOtpInput(\"\");\n setVerifyStatus(\"idle\");\n setEmailStatus(\"sending\");\n try {\n const _wallet = createWalletInstance();\n setWallet(_wallet);\n const status = await _wallet.sendVerificationEmail({\n email\n });\n setEmailStatus(status);\n } catch (e) {\n console.error(e);\n setVerifyStatus(\"idle\");\n setEmailStatus(\"error\");\n }\n }, [createWalletInstance, email]);\n const verify = async otp => {\n if (typeof emailStatus !== \"object\" || otp.length !== 6) {\n return;\n }\n setVerifyStatus(\"idle\");\n if (typeof emailStatus !== \"object\") {\n return;\n }\n if (!wallet) {\n return;\n }\n try {\n setVerifyStatus(\"verifying\");\n setConnectionStatus(\"connecting\");\n const needsRecoveryCode = emailStatus.recoveryShareManagement === \"USER_MANAGED\" && (emailStatus.isNewUser || emailStatus.isNewDevice);\n\n // USER_MANAGED\n if (needsRecoveryCode) {\n if (emailStatus.isNewUser) {\n try {\n // verifies otp for UI feedback\n // TODO (ews) tweak the UI flow to avoid verifying otp twice - needs new endpoint or new UI\n await wallet.authenticate({\n strategy: \"email_verification\",\n email,\n verificationCode: otp\n });\n } catch (e) {\n if (e instanceof Error && e.message.includes(\"encryption key\")) {\n setScreen(\"create-password\");\n } else {\n throw e;\n }\n }\n } else {\n try {\n // verifies otp for UI feedback\n await wallet.authenticate({\n strategy: \"email_verification\",\n email,\n verificationCode: otp\n });\n } catch (e) {\n if (e instanceof Error && e.message.includes(\"encryption key\")) {\n setScreen(\"enter-password-or-recovery-code\");\n } else {\n throw e;\n }\n }\n }\n }\n\n // AWS_MANAGED\n else {\n const authResult = await wallet.authenticate({\n strategy: \"email_verification\",\n email,\n verificationCode: otp\n });\n if (!authResult) {\n throw new Error(\"Failed to verify OTP\");\n }\n await wallet.connect({\n authResult\n });\n setConnectedWallet(wallet);\n props.connected();\n }\n setVerifyStatus(\"valid\");\n } catch (e) {\n setVerifyStatus(\"invalid\");\n console.error(e);\n }\n };\n\n // send email on mount\n const emailSentOnMount = useRef(false);\n useEffect(() => {\n if (!emailSentOnMount.current) {\n emailSentOnMount.current = true;\n sendEmail();\n }\n }, [sendEmail]);\n if (screen === \"create-password\") {\n return /*#__PURE__*/jsx(CreatePassword, {\n modalSize: props.modalSize,\n email: email,\n goBack: props.goBack,\n onPassword: async password => {\n if (!wallet || typeof emailStatus !== \"object\") {\n return;\n }\n const authResult = await wallet.authenticate({\n strategy: \"email_verification\",\n email,\n verificationCode: otpInput,\n recoveryCode: password\n });\n if (!authResult) {\n throw new Error(\"Failed to verify recovery code\");\n }\n await wallet.connect({\n authResult\n });\n setConnectedWallet(wallet);\n props.connected();\n }\n });\n }\n if (screen === \"enter-password-or-recovery-code\") {\n return /*#__PURE__*/jsx(EnterPasswordOrRecovery, {\n modalSize: props.modalSize,\n goBack: props.goBack,\n email: email,\n onVerify: async passwordOrRecoveryCode => {\n if (!wallet || typeof emailStatus !== \"object\") {\n return;\n }\n const authResult = await wallet.authenticate({\n strategy: \"email_verification\",\n email,\n verificationCode: otpInput,\n recoveryCode: passwordOrRecoveryCode\n });\n if (!authResult) {\n throw new Error(\"Failed to verify recovery code\");\n }\n await wallet.connect({\n authResult\n });\n setConnectedWallet(wallet);\n props.connected();\n }\n });\n }\n if (screen === \"base\") {\n return /*#__PURE__*/jsxs(Container, {\n fullHeight: true,\n flex: \"column\",\n animate: \"fadein\",\n children: [/*#__PURE__*/jsx(Container, {\n p: \"lg\",\n children: /*#__PURE__*/jsx(ModalHeader, {\n title: locale.signIn,\n onBack: props.goBack\n })\n }), /*#__PURE__*/jsx(Container, {\n expand: true,\n flex: \"column\",\n center: \"y\",\n children: /*#__PURE__*/jsxs(\"form\", {\n onSubmit: e => {\n e.preventDefault();\n },\n children: [/*#__PURE__*/jsxs(Container, {\n flex: \"column\",\n center: \"x\",\n px: \"lg\",\n children: [!isWideModal && /*#__PURE__*/jsx(Spacer, {\n y: \"xl\"\n }), /*#__PURE__*/jsx(Text, {\n children: locale.emailLoginScreen.enterCodeSendTo\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"sm\"\n }), /*#__PURE__*/jsx(Text, {\n color: \"primaryText\",\n children: email\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"xl\"\n })]\n }), /*#__PURE__*/jsx(OTPInput, {\n isInvalid: verifyStatus === \"invalid\",\n digits: 6,\n value: otpInput,\n setValue: value => {\n setOtpInput(value);\n setVerifyStatus(\"idle\"); // reset error\n verify(value);\n },\n onEnter: () => {\n verify(otpInput);\n }\n }), verifyStatus === \"invalid\" && /*#__PURE__*/jsxs(FadeIn, {\n children: [/*#__PURE__*/jsx(Spacer, {\n y: \"md\"\n }), /*#__PURE__*/jsx(Text, {\n size: \"sm\",\n color: \"danger\",\n center: true,\n children: locale.emailLoginScreen.invalidCode\n })]\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"xl\"\n }), /*#__PURE__*/jsx(Container, {\n px: isWideModal ? \"xxl\" : \"lg\",\n children: verifyStatus === \"verifying\" ? /*#__PURE__*/jsx(Fragment, {\n children: /*#__PURE__*/jsx(Container, {\n flex: \"row\",\n center: \"x\",\n animate: \"fadein\",\n children: /*#__PURE__*/jsx(Spinner, {\n size: \"lg\",\n color: \"accentText\"\n })\n })\n }) : /*#__PURE__*/jsx(Container, {\n animate: \"fadein\",\n children: /*#__PURE__*/jsx(Button, {\n onClick: () => verify(otpInput),\n variant: \"accent\",\n type: \"submit\",\n style: {\n width: \"100%\"\n },\n children: locale.emailLoginScreen.verify\n })\n }, \"btn-container\")\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"xl\"\n }), !isWideModal && /*#__PURE__*/jsx(Line, {}), /*#__PURE__*/jsxs(Container, {\n p: isWideModal ? undefined : \"lg\",\n children: [emailStatus === \"error\" && /*#__PURE__*/jsx(Fragment, {\n children: /*#__PURE__*/jsx(Text, {\n size: \"sm\",\n center: true,\n color: \"danger\",\n children: locale.emailLoginScreen.failedToSendCode\n })\n }), emailStatus === \"sending\" && /*#__PURE__*/jsxs(Container, {\n flex: \"row\",\n center: \"both\",\n gap: \"xs\",\n style: {\n textAlign: \"center\"\n },\n children: [/*#__PURE__*/jsx(Text, {\n size: \"sm\",\n children: locale.emailLoginScreen.sendingCode\n }), /*#__PURE__*/jsx(Spinner, {\n size: \"xs\",\n color: \"secondaryText\"\n })]\n }), typeof emailStatus === \"object\" && /*#__PURE__*/jsx(LinkButton, {\n onClick: sendEmail,\n type: \"button\",\n children: locale.emailLoginScreen.resendCode\n })]\n })]\n })\n })]\n });\n }\n return null;\n};\nconst LinkButton = /* @__PURE__ */StyledButton(() => {\n const theme = useCustomTheme();\n return {\n all: \"unset\",\n color: theme.colors.accentText,\n fontSize: fontSize.sm,\n cursor: \"pointer\",\n textAlign: \"center\",\n fontWeight: 500,\n width: \"100%\",\n \"&:hover\": {\n color: theme.colors.primaryText\n }\n };\n});\n\nconst DEFAULT_AUTH_OPTIONS = [\"email\", \"google\", \"apple\", \"facebook\"];\n\n/**\n * A wallet configurator for [Embedded Wallet](https://portal.thirdweb.com/wallet/embedded-wallet) which allows integrating the wallet with React.\n *\n * It returns a [`WalletConfig`](https://portal.thirdweb.com/references/react/v4/WalletConfig) object which can be used to connect the wallet to via [`ConnectWallet`](https://portal.thirdweb.com/react/v4/components/ConnectWallet) component or [`useConnect`](https://portal.thirdweb.com/references/react/v4/useConnect) hook as mentioned in [Connecting Wallets](https://portal.thirdweb.com/react/v4/connecting-wallets) guide\n *\n * You can also connect this wallet using the [`useEmbeddedWallet`](https://portal.thirdweb.com/references/react/v4/useEmbeddedWallet) hook\n *\n * @example\n * ```ts\n * embeddedWallet({\n * auth: {\n * options: [\"email\", \"google\", \"facebook\", \"apple\"],\n * },\n * recommended: true,\n * });\n * ```\n *\n * @param options -\n * Optional object containing the following properties to configure the wallet\n *\n * ### auth (optional)\n * Choose which auth providers to show in the wallet connection UI\n *\n * By default, all auth methods are enabled, which is equivalent to setting the following:\n * ```ts\n * {\n * options: [\"email\", \"google\", \"apple\", \"facebook\"]\n * }\n * ```\n *\n * ### recommended (optional)\n * If true, the wallet will be tagged as \"recommended\" in [`ConnectWallet`](https://portal.thirdweb.com/react/v4/components/ConnectWallet) Modal UI\n *\n * ### onAuthSuccess (optional)\n * A callback function that will be called when the user successfully authenticates with the wallet. The callback is called with the `authResult` object\n *\n * @wallet\n */\nconst embeddedWallet = options => {\n const defaultConfig = {\n auth: {\n options: DEFAULT_AUTH_OPTIONS\n }\n };\n const finalOptions = options ? {\n ...defaultConfig,\n ...options\n } : defaultConfig;\n const {\n auth\n } = finalOptions;\n return {\n category: \"socialLogin\",\n isHeadless: true,\n id: EmbeddedWallet.id,\n recommended: finalOptions?.recommended,\n meta: {\n ...EmbeddedWallet.meta,\n name: \"Email\",\n iconURL: emailIcon\n },\n create(walletOptions) {\n return new EmbeddedWallet({\n ...walletOptions,\n ...finalOptions,\n clientId: walletOptions?.clientId ?? \"\"\n });\n },\n selectUI(props) {\n return /*#__PURE__*/jsx(EmbeddedWalletSelectionUI, {\n ...props,\n authOptions: auth ? auth?.options : DEFAULT_AUTH_OPTIONS\n });\n },\n connectUI(props) {\n return /*#__PURE__*/jsx(EmbeddedWalletConnectUI, {\n ...props,\n authOptions: auth ? auth?.options : DEFAULT_AUTH_OPTIONS\n });\n }\n };\n};\nconst EmbeddedWalletSelectionUI = props => {\n const screen = useScreenContext();\n\n // show the icon + text if\n // wide -\n // compact + not main screen (safe/smart wallet list screen)\n if (props.modalSize === \"wide\" || screen !== reservedScreens.main && props.modalSize === \"compact\") {\n return /*#__PURE__*/jsx(WalletEntryButton, {\n walletConfig: props.walletConfig,\n selectWallet: () => {\n props.onSelect(undefined);\n }\n });\n }\n return /*#__PURE__*/jsx(\"div\", {\n children: /*#__PURE__*/jsx(EmbeddedWalletFormUI, {\n onSelect: props.onSelect,\n walletConfig: props.walletConfig,\n authOptions: props.authOptions,\n createWalletInstance: props.createWalletInstance,\n setConnectedWallet: props.setConnectedWallet,\n setConnectionStatus: props.setConnectionStatus,\n modalSize: props.modalSize\n })\n });\n};\nconst EmbeddedWalletConnectUI = props => {\n const [loginType, setLoginType] = useState(props.selectionData);\n if (loginType) {\n const handleBack = () => {\n // go back to base screen\n if (props.modalSize === \"wide\") {\n setLoginType(undefined);\n }\n\n // go to main screen\n else {\n props.goBack();\n }\n };\n if (typeof loginType !== \"string\") {\n return /*#__PURE__*/jsx(EmbeddedWalletOTPLoginUI, {\n ...props,\n selectionData: loginType.email,\n goBack: handleBack\n });\n }\n return /*#__PURE__*/jsx(EmbeddedWalletSocialLogin, {\n ...props,\n goBack: handleBack,\n strategy: loginType\n });\n }\n return /*#__PURE__*/jsx(EmbeddedWalletFormUIScreen, {\n modalSize: props.modalSize,\n onSelect: setLoginType,\n walletConfig: props.walletConfig,\n onBack: props.goBack,\n authOptions: props.authOptions,\n createWalletInstance: props.createWalletInstance,\n setConnectedWallet: props.setConnectedWallet,\n setConnectionStatus: props.setConnectionStatus\n });\n};\n\nconst ExportLocalWallet = props => {\n const locale = useTWLocale().wallets.localWallet;\n const [password, setPassword] = useState(\"\");\n const [showPassword, setShowPassword] = useState(false);\n const [isWrongPassword, setIsWrongPassword] = useState(false);\n const [passwordIsRequired, setPasswordIsRequired] = useState(false);\n const wallet = props.walletInstance;\n const [savedAddress, setSavedAddress] = useState(\"\");\n const createWalletInstance = useCreateWalletInstance();\n const address = props.walletAddress;\n\n // set savedAddress and passwordIsRequired on mount\n const mounted = useRef(false);\n useEffect(() => {\n if (mounted.current) {\n return;\n }\n mounted.current = true;\n (async () => {\n // if local wallet is connected - show the address of the connected wallet\n if (wallet && wallet instanceof LocalWallet) {\n if (address) {\n setSavedAddress(address);\n }\n\n // if walletData of it is not already saved - password is required\n const savedData = await wallet.getSavedData();\n if (savedData?.address !== address) {\n setPasswordIsRequired(true);\n }\n }\n\n // if localWallet is not connected - get address from storage, password is not required\n else {\n const localWallet = createWalletInstance(props.localWalletConfig);\n const data = await localWallet.getSavedData();\n if (data) {\n setSavedAddress(data.address);\n }\n }\n })();\n }, [wallet, props.localWalletConfig, createWalletInstance, password, address]);\n const exportFromLocalStorage = async () => {\n // if a local wallet is connected - export it\n if (wallet && wallet instanceof LocalWallet) {\n const savedData = await wallet.getSavedData();\n\n // if already saved - no password required\n if (savedData && savedData.address === address) {\n downloadJsonWalletFile(savedData.data);\n props.onExport();\n }\n\n // if not already saved - password is required\n else {\n try {\n const dataStr = await wallet.export({\n password,\n strategy: \"encryptedJson\"\n });\n downloadJsonWalletFile(dataStr);\n props.onExport();\n } catch (e) {\n console.error(e);\n setIsWrongPassword(true);\n }\n }\n }\n\n // if local wallet is not connected - get data from storage\n else {\n const localWallet = createWalletInstance(props.localWalletConfig);\n const savedData = await localWallet.getSavedData();\n downloadJsonWalletFile(savedData.data);\n props.onExport();\n }\n };\n if (!savedAddress) {\n return /*#__PURE__*/jsx(Container, {\n animate: \"fadein\",\n flex: \"row\",\n center: \"both\",\n style: {\n height: \"300px\"\n },\n children: /*#__PURE__*/jsx(Spinner, {\n size: \"md\",\n color: \"accentText\"\n })\n });\n }\n const exportDisabled = isWrongPassword;\n return /*#__PURE__*/jsx(Container, {\n fullHeight: true,\n animate: \"fadein\",\n children: /*#__PURE__*/jsxs(\"form\", {\n style: {\n height: \"100%\",\n display: \"flex\",\n flexDirection: \"column\"\n },\n onSubmit: e => {\n e.preventDefault();\n exportFromLocalStorage();\n },\n children: [/*#__PURE__*/jsx(Container, {\n p: \"lg\",\n children: /*#__PURE__*/jsx(ModalHeader, {\n onBack: props.onBack,\n title: locale.exportScreen.title\n })\n }), /*#__PURE__*/jsx(Line, {}), /*#__PURE__*/jsxs(Container, {\n expand: true,\n p: \"lg\",\n children: [/*#__PURE__*/jsx(ModalDescription, {\n children: locale.exportScreen.description1\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"sm\"\n }), /*#__PURE__*/jsx(ModalDescription, {\n children: locale.exportScreen.description2\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"xl\"\n }), /*#__PURE__*/jsx(Label, {\n children: locale.exportScreen.walletAddress\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"sm\"\n }), /*#__PURE__*/jsx(SavedWalletAddress, {\n children: shortenAddress(savedAddress)\n }), passwordIsRequired && /*#__PURE__*/jsxs(Fragment, {\n children: [/*#__PURE__*/jsx(Spacer, {\n y: \"lg\"\n }), /*#__PURE__*/jsx(\"input\", {\n type: \"text\",\n name: \"username\",\n autoComplete: \"off\",\n value: address,\n disabled: true,\n style: {\n display: \"none\"\n }\n }), /*#__PURE__*/jsx(FormFieldWithIconButton, {\n noSave: true,\n required: true,\n name: \"current-password\",\n autocomplete: \"current-password\",\n id: \"current-password\",\n onChange: value => {\n setPassword(value);\n setIsWrongPassword(false);\n },\n right: {\n onClick: () => setShowPassword(!showPassword),\n icon: showPassword ? /*#__PURE__*/jsx(EyeClosedIcon, {}) : /*#__PURE__*/jsx(EyeOpenIcon, {})\n },\n label: locale.passwordLabel,\n type: showPassword ? \"text\" : \"password\",\n value: password,\n error: isWrongPassword ? \"Wrong Password\" : \"\",\n dataTest: \"current-password\"\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"md\"\n })]\n })]\n }), /*#__PURE__*/jsx(ScreenBottomContainer, {\n style: {\n borderTop: props.modalSize === \"wide\" ? \"none\" : undefined\n },\n children: /*#__PURE__*/jsxs(Button, {\n disabled: exportDisabled,\n variant: \"accent\",\n fullWidth: true,\n style: {\n opacity: exportDisabled ? 0.5 : 1,\n display: \"flex\",\n gap: spacing.sm\n },\n type: \"submit\",\n children: [/*#__PURE__*/jsx(PinBottomIcon, {\n width: iconSize.sm,\n height: iconSize.sm\n }), locale.exportScreen.download]\n })\n })]\n })\n });\n};\nfunction downloadJsonWalletFile(data) {\n const dataObj = JSON.parse(data);\n const blob = new Blob([JSON.stringify(dataObj, null, 2)], {\n type: \"application/json\"\n });\n const url = URL.createObjectURL(blob);\n const a = document.createElement(\"a\");\n a.href = url;\n a.download = \"wallet.json\";\n document.body.appendChild(a);\n a.style.display = \"none\";\n a.click();\n URL.revokeObjectURL(a.href);\n}\nconst SavedWalletAddress = /* @__PURE__ */StyledP(() => {\n const theme = useCustomTheme();\n return {\n fontSize: fontSize.md,\n color: theme.colors.secondaryText,\n margin: 0\n };\n});\n\nconst defaultChainIcon = \"ipfs://QmcxZHpyJa8T4i63xqjPYrZ6tKrt55tZJpbXcjSDKuKaf9/ethereum/512.png\";\nconst ChainIcon = props => {\n const url = props.chain?.icon?.url || defaultChainIcon;\n const storage = useStorage();\n const src = storage ? storage.resolveScheme(url) : url.replace(\"ipfs://\", \"https://ipfs.io/ipfs/\");\n return /*#__PURE__*/jsxs(\"div\", {\n style: {\n position: \"relative\",\n display: \"flex\",\n flexShrink: 0,\n alignItems: \"center\"\n },\n children: [/*#__PURE__*/jsx(\"img\", {\n src: src || defaultChainIcon,\n onError: e => {\n if (e.currentTarget.src !== defaultChainIcon) {\n e.currentTarget.src = defaultChainIcon;\n }\n },\n alt: \"\",\n width: props.size,\n height: props.size,\n className: props.className,\n loading: props.loading,\n style: {\n objectFit: \"contain\",\n width: props.size + \"px\",\n height: props.size + \"px\"\n }\n }), props.active && /*#__PURE__*/jsx(ActiveDot$1, {})]\n });\n};\nconst ActiveDot$1 = /* @__PURE__ */StyledDiv({\n width: \"28%\",\n height: \"28%\",\n borderRadius: \"50%\",\n position: \"absolute\",\n top: \"60%\",\n right: 0,\n backgroundColor: \"#00d395\",\n boxShadow: `0 0 0 2px var(--bg)`\n});\n\n// extracted from chakra-ui\n/**\n * React hook to copy content to clipboard\n *\n */\nfunction useClipboard(text) {\n let optionsOrTimeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const [hasCopied, setHasCopied] = useState(false);\n const {\n timeout = 1500,\n ...copyOptions\n } = typeof optionsOrTimeout === \"number\" ? {\n timeout: optionsOrTimeout\n } : optionsOrTimeout;\n const onCopy = useCallback(() => {\n const didCopy = copy(text, copyOptions);\n setHasCopied(didCopy);\n }, [text, copyOptions]);\n useEffect(() => {\n let timeoutId = null;\n if (hasCopied) {\n timeoutId = window.setTimeout(() => {\n setHasCopied(false);\n }, timeout);\n }\n return () => {\n if (timeoutId) {\n window.clearTimeout(timeoutId);\n }\n };\n }, [timeout, hasCopied]);\n return {\n value: text,\n onCopy,\n hasCopied\n };\n}\n\nconst CopyIcon = props => {\n const {\n hasCopied,\n onCopy\n } = useClipboard(props.text);\n return /*#__PURE__*/jsx(\"div\", {\n onClick: onCopy,\n style: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\"\n },\n children: /*#__PURE__*/jsx(ToolTip, {\n tip: props.tip,\n side: props.side,\n align: props.align,\n children: props.hasCopied || hasCopied ? /*#__PURE__*/jsx(CheckIconStyled, {}) : /*#__PURE__*/jsx(CopyIcon$1, {})\n })\n });\n};\nconst CheckIconStyled = /* @__PURE__ */styled(CheckIcon)(() => {\n const theme = useCustomTheme();\n return {\n color: theme.colors.success\n };\n});\n\nconst overlayEnter = keyframes`\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n`;\nconst Overlay = /* @__PURE__ */StyledDiv(() => {\n const theme = useCustomTheme();\n return {\n backgroundColor: theme.colors.modalOverlayBg,\n zIndex: 9999,\n position: \"fixed\",\n inset: 0,\n animation: `${overlayEnter} 400ms cubic-bezier(0.16, 1, 0.3, 1)`,\n backdropFilter: \"blur(10px)\"\n };\n});\n\nfunction DynamicHeight(props) {\n const {\n height,\n elementRef\n } = useHeightObserver();\n return /*#__PURE__*/jsx(\"div\", {\n style: {\n height: height ? `${height}px` : \"auto\",\n transition: \"height 210ms cubic-bezier(0.175, 0.885, 0.32, 1.1)\",\n overflow: \"hidden\",\n boxSizing: \"border-box\"\n },\n children: /*#__PURE__*/jsx(\"div\", {\n ref: elementRef,\n style: {\n maxHeight: props.maxHeight\n },\n children: props.children\n })\n });\n}\nfunction useHeightObserver() {\n const elementRef = useRef(null);\n const [height, setHeight] = useState();\n useEffect(() => {\n const element = elementRef.current;\n if (!element) {\n return;\n }\n const resizeObserver = new ResizeObserver(() => {\n setHeight(element.scrollHeight);\n });\n resizeObserver.observe(element);\n return () => {\n resizeObserver.disconnect();\n };\n }, [elementRef]);\n return {\n height,\n elementRef: elementRef\n };\n}\n\nconst Modal = props => {\n const [open, setOpen] = useState(props.open);\n const contentRef = useRef(null);\n const overlayRef = useRef(null);\n useEffect(() => {\n if (!props.open) {\n if (contentRef.current) {\n const animationConfig = {\n duration: modalCloseFadeOutDuration,\n fill: \"forwards\",\n easing: \"ease\"\n };\n contentRef.current.animate([{\n opacity: 0\n }], {\n ...animationConfig\n }).onfinish = () => {\n setOpen(false);\n };\n overlayRef.current?.animate([{\n opacity: 0\n }], {\n ...animationConfig,\n duration: modalCloseFadeOutDuration + 100\n });\n } else {\n setOpen(props.open);\n }\n } else {\n setOpen(props.open);\n }\n }, [props.open]);\n return /*#__PURE__*/jsxs(Dialog.Root, {\n open: open,\n onOpenChange: props.setOpen,\n children: [props.trigger && /*#__PURE__*/jsx(Dialog.Trigger, {\n asChild: true,\n children: props.trigger\n }), /*#__PURE__*/jsxs(Dialog.Portal, {\n children: [!props.hide && /*#__PURE__*/jsx(Dialog.Overlay, {\n asChild: true,\n children: /*#__PURE__*/jsx(Overlay, {\n ref: overlayRef\n })\n }), /*#__PURE__*/jsx(FocusScope, {\n trapped: !props.hide,\n children: /*#__PURE__*/jsx(Dialog.Content, {\n asChild: true,\n children: /*#__PURE__*/jsxs(DialogContent, {\n ref: contentRef,\n style: props.hide ? {\n width: 0,\n height: 0,\n overflow: \"hidden\",\n opacity: 0\n } : {\n height: props.size === \"compact\" ? \"auto\" : wideModalMaxHeight,\n maxWidth: props.size === \"compact\" ? modalMaxWidthCompact : modalMaxWidthWide\n },\n children: [props.size === \"compact\" ? /*#__PURE__*/jsxs(DynamicHeight, {\n maxHeight: compactModalMaxHeight,\n children: [props.children, \" \"]\n }) : props.children, !props.hideCloseIcon && /*#__PURE__*/jsx(CrossContainer, {\n children: /*#__PURE__*/jsx(Dialog.Close, {\n asChild: true,\n children: /*#__PURE__*/jsx(IconButton, {\n type: \"button\",\n \"aria-label\": \"Close\",\n children: /*#__PURE__*/jsx(Cross2Icon, {\n width: iconSize.md,\n height: iconSize.md,\n style: {\n color: \"inherit\"\n }\n })\n })\n })\n })]\n })\n })\n })]\n })]\n });\n};\nconst CrossContainer = /* @__PURE__ */StyledDiv({\n position: \"absolute\",\n top: spacing.lg,\n right: spacing.lg,\n transform: \"translateX(15%)\",\n [media.mobile]: {\n right: spacing.md\n }\n});\nconst modalAnimationDesktop = keyframes`\n from {\n opacity: 0;\n transform: translate(-50%, -48%) scale(0.96);\n }\n to {\n opacity: 1;\n transform: translate(-50%, -50%) scale(1);\n }\n`;\nconst modalAnimationMobile = keyframes`\n from {\n opacity: 0;\n transform: translate(0, 50%);\n }\n to {\n opacity: 1;\n transform: translate(0, 0);\n }\n`;\nconst DialogContent = /* @__PURE__ */StyledDiv(() => {\n const theme = useCustomTheme();\n return {\n zIndex: 10000,\n background: theme.colors.modalBg,\n \"--bg\": theme.colors.modalBg,\n color: theme.colors.primaryText,\n borderRadius: radius.xl,\n position: \"fixed\",\n top: \"50%\",\n left: \"50%\",\n transform: \"translate(-50%, -50%)\",\n width: \"calc(100vw - 40px)\",\n boxSizing: \"border-box\",\n animation: `${modalAnimationDesktop} 300ms ease`,\n boxShadow: shadow.lg,\n lineHeight: \"normal\",\n border: `1px solid ${theme.colors.borderColor}`,\n outline: \"none\",\n overflow: \"hidden\",\n fontFamily: theme.fontFamily,\n [media.mobile]: {\n top: \"auto\",\n bottom: 0,\n left: 0,\n right: 0,\n transform: \"none\",\n width: \"100vw\",\n animation: `${modalAnimationMobile} 0.35s cubic-bezier(0.15, 1.15, 0.6, 1)`,\n borderRadius: radius.xxl,\n borderBottomRightRadius: 0,\n borderBottomLeftRadius: 0,\n maxWidth: \"none !important\"\n },\n \"& *::selection\": {\n backgroundColor: theme.colors.selectedTextBg,\n color: theme.colors.selectedTextColor\n },\n ...noScrollBar\n };\n});\n\nconst Skeleton = props => {\n return /*#__PURE__*/jsx(SkeletonDiv, {\n style: {\n height: props.height,\n width: props.width || \"auto\"\n }\n });\n};\nconst skeletonAnimation = keyframes`\n0% {\n opacity: 0.5;\n }\n 100% {\n opacity: 1;\n }\n`;\nconst SkeletonDiv = /* @__PURE__ */StyledDiv(() => {\n const theme = useCustomTheme();\n return {\n backgroundSize: \"200% 200%\",\n backgroundColor: theme.colors.skeletonBg,\n animation: `${skeletonAnimation} 500ms ease-in-out infinite alternate`,\n borderRadius: radius.sm\n };\n});\n\nconst fuseConfig = {\n threshold: 0.4,\n keys: [{\n name: \"name\",\n weight: 1\n }, {\n name: \"chainId\",\n weight: 1\n }]\n};\n\n/**\n * Renders a Network Switcher Modal that allows users to switch their wallet to a different network.\n *\n * @example\n * ```tsx\n * import { NetworkSelector } from \"@thirdweb-dev/react\";\n *\n * function Example() {\n * const [open, setOpen] = useState(false);\n * return (\n *

\n * \n * setOpen(false)} />\n *
\n * )\n * }\n * ```\n *\n * @internal\n */\nfunction NetworkSelector(props) {\n const [searchTerm, setSearchTerm] = useState(\"\");\n const deferredSearchTerm = useDeferredValue(searchTerm);\n const themeFromContext = useCustomTheme();\n const theme = props.theme || themeFromContext || \"dark\";\n const supportedChains = useSupportedChains();\n const chains = props.chains || supportedChains;\n const locale = useTWLocale().connectWallet.networkSelector;\n const _recentChains = props.recentChains;\n\n // remove recent chains from popular chains\n const cleanedPopularChains = !_recentChains ? props.popularChains : props.popularChains?.filter(chain => {\n return !_recentChains.some(recentChain => recentChain.chainId === chain.chainId);\n });\n\n // fuse instances\n const fuseAllChains = useMemo(() => {\n return new Fuse(chains, fuseConfig);\n }, [chains]);\n const fusePopularChains = useMemo(() => {\n return new Fuse(cleanedPopularChains || [], fuseConfig);\n }, [cleanedPopularChains]);\n const fuseRecentChains = useMemo(() => {\n return new Fuse(props.recentChains || [], fuseConfig);\n }, [props.recentChains]);\n\n // chains filtered by search term\n const allChains = useMemo(() => {\n if (deferredSearchTerm === \"\") {\n return chains;\n }\n return fuseAllChains.search(deferredSearchTerm).map(r => r.item);\n }, [fuseAllChains, deferredSearchTerm, chains]);\n const popularChains = useMemo(() => {\n if (deferredSearchTerm === \"\") {\n return cleanedPopularChains || [];\n }\n return fusePopularChains.search(deferredSearchTerm).map(r => r.item);\n }, [fusePopularChains, deferredSearchTerm, cleanedPopularChains]);\n const recentChains = useMemo(() => {\n if (deferredSearchTerm === \"\") {\n return props.recentChains || [];\n }\n return fuseRecentChains.search(deferredSearchTerm).map(r => r.item);\n }, [fuseRecentChains, deferredSearchTerm, props.recentChains]);\n const {\n onClose,\n onSwitch,\n onCustomClick\n } = props;\n const handleSwitch = useCallback(chain => {\n if (onSwitch) {\n onSwitch(chain);\n }\n if (onClose) {\n onClose();\n }\n }, [onSwitch, onClose]);\n return /*#__PURE__*/jsx(CustomThemeProvider, {\n theme: theme,\n children: /*#__PURE__*/jsx(Modal, {\n size: \"compact\",\n open: props.open,\n setOpen: value => {\n if (!value && onClose) {\n onClose();\n }\n },\n style: {\n paddingBottom: props.onCustomClick ? spacing.md : \"0px\"\n },\n children: /*#__PURE__*/jsxs(Container, {\n children: [/*#__PURE__*/jsx(Container, {\n p: \"lg\",\n children: /*#__PURE__*/jsx(ModalTitle, {\n children: locale.title\n })\n }), /*#__PURE__*/jsxs(Tabs.Root, {\n className: \"TabsRoot\",\n defaultValue: \"all\",\n children: [/*#__PURE__*/jsx(Container, {\n px: \"lg\",\n children: /*#__PURE__*/jsxs(Tabs.List, {\n className: \"TabsList\",\n \"aria-label\": \"Manage your account\",\n style: {\n display: \"flex\",\n gap: spacing.xxs\n },\n children: [/*#__PURE__*/jsx(TabButton, {\n className: \"TabsTrigger\",\n value: \"all\",\n children: locale.allNetworks\n }), /*#__PURE__*/jsx(TabButton, {\n className: \"TabsTrigger\",\n value: \"mainnet\",\n children: locale.mainnets\n }), /*#__PURE__*/jsx(TabButton, {\n className: \"TabsTrigger\",\n value: \"testnet\",\n children: locale.testnets\n })]\n })\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"lg\"\n }), chains.length > 10 && /*#__PURE__*/jsxs(Fragment, {\n children: [/*#__PURE__*/jsx(Container, {\n px: \"lg\",\n children: /*#__PURE__*/jsxs(\"div\", {\n style: {\n display: \"flex\",\n alignItems: \"center\",\n position: \"relative\"\n },\n children: [/*#__PURE__*/jsx(StyledMagnifyingGlassIcon, {\n width: iconSize.md,\n height: iconSize.md\n }), /*#__PURE__*/jsx(Input, {\n style: {\n padding: `${spacing.sm} ${spacing.md} ${spacing.sm} ${spacing.xxl}`\n },\n tabIndex: -1,\n variant: \"outline\",\n placeholder: locale.inputPlaceholder,\n value: searchTerm,\n onChange: e => {\n setSearchTerm(e.target.value);\n }\n }), deferredSearchTerm !== searchTerm && /*#__PURE__*/jsx(\"div\", {\n style: {\n position: \"absolute\",\n right: spacing.md\n },\n children: /*#__PURE__*/jsx(Spinner, {\n size: \"md\",\n color: \"accentText\"\n })\n })]\n })\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"lg\"\n })]\n }), /*#__PURE__*/jsxs(Container, {\n px: \"md\",\n children: [/*#__PURE__*/jsx(Tabs.Content, {\n className: \"TabsContent\",\n value: \"all\",\n style: {\n outline: \"none\"\n },\n children: /*#__PURE__*/jsx(NetworkTab, {\n allChains: allChains,\n type: \"all\",\n popularChains: popularChains,\n recentChains: recentChains,\n onSwitch: handleSwitch,\n renderChain: props.renderChain,\n close: props.onClose\n })\n }), /*#__PURE__*/jsx(Tabs.Content, {\n className: \"TabsContent\",\n value: \"mainnet\",\n style: {\n outline: \"none\"\n },\n children: /*#__PURE__*/jsx(NetworkTab, {\n allChains: allChains,\n type: \"mainnet\",\n popularChains: popularChains,\n recentChains: recentChains,\n onSwitch: handleSwitch,\n renderChain: props.renderChain,\n close: props.onClose\n })\n }), /*#__PURE__*/jsx(Tabs.Content, {\n className: \"TabsContent\",\n value: \"testnet\",\n style: {\n outline: \"none\"\n },\n children: /*#__PURE__*/jsx(NetworkTab, {\n allChains: allChains,\n type: \"testnet\",\n popularChains: popularChains,\n recentChains: recentChains,\n onSwitch: handleSwitch,\n renderChain: props.renderChain,\n close: props.onClose\n })\n })]\n }), onCustomClick && /*#__PURE__*/jsxs(Fragment, {\n children: [/*#__PURE__*/jsx(Line, {}), /*#__PURE__*/jsx(Container, {\n p: \"lg\",\n children: /*#__PURE__*/jsx(Button, {\n fullWidth: true,\n variant: \"link\",\n onClick: () => {\n onCustomClick();\n if (onClose) {\n onClose();\n }\n },\n style: {\n display: \"flex\",\n fontSize: fontSize.sm,\n boxShadow: \"none\"\n },\n children: locale.addCustomNetwork\n })\n })]\n })]\n })]\n })\n })\n });\n}\nconst filterChainByType = (chains, type) => {\n if (type === \"all\") {\n return chains;\n }\n if (type === \"testnet\") {\n return chains.filter(c => c.testnet);\n }\n return chains.filter(c => !c.testnet);\n};\nconst NetworkTab = props => {\n const allChains = useMemo(() => filterChainByType(props.allChains, props.type), [props.type, props.allChains]);\n const recentChains = useMemo(() => filterChainByType(props.recentChains || [], props.type), [props.type, props.recentChains]);\n const popularChains = useMemo(() => filterChainByType(props.popularChains || [], props.type), [props.type, props.popularChains]);\n const locale = useTWLocale().connectWallet.networkSelector.categoryLabel;\n return /*#__PURE__*/jsxs(Container, {\n scrollY: true,\n animate: \"fadein\",\n style: {\n height: \"330px\",\n paddingBottom: spacing.lg\n },\n children: [recentChains.length > 0 && /*#__PURE__*/jsxs(\"div\", {\n children: [/*#__PURE__*/jsx(SectionLabel, {\n children: locale.recentlyUsed\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"sm\"\n }), /*#__PURE__*/jsx(NetworkList, {\n chains: recentChains,\n onSwitch: props.onSwitch,\n renderChain: props.renderChain,\n close: props.close\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"lg\"\n })]\n }), popularChains.length > 0 && /*#__PURE__*/jsxs(\"div\", {\n children: [/*#__PURE__*/jsx(SectionLabel, {\n children: locale.popular\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"sm\"\n }), /*#__PURE__*/jsx(NetworkList, {\n chains: popularChains,\n onSwitch: props.onSwitch,\n renderChain: props.renderChain,\n close: props.close\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"lg\"\n })]\n }), (popularChains.length > 0 || recentChains.length > 0) && /*#__PURE__*/jsxs(Fragment, {\n children: [/*#__PURE__*/jsx(SectionLabel, {\n children: locale.others\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"sm\"\n })]\n }), /*#__PURE__*/jsx(NetworkList, {\n chains: allChains,\n onSwitch: props.onSwitch,\n renderChain: props.renderChain,\n close: props.close\n })]\n });\n};\nconst NetworkList = /* @__PURE__ */memo(function NetworkList(props) {\n const switchChain = useSwitchChain();\n const activeChainId = useChainId();\n const [switchingChainId, setSwitchingChainId] = useState(-1);\n const [errorSwitchingChainId, setErrorSwitchingChainId] = useState(-1);\n const twLocale = useTWLocale();\n const locale = twLocale.connectWallet.networkSelector;\n const close = props.close;\n useEffect(() => {\n // if switching and switched successfully - close modal\n if (switchingChainId !== -1 && activeChainId === switchingChainId) {\n if (close) {\n close();\n }\n }\n }, [switchingChainId, close, activeChainId]);\n const handleSwitch = async chain => {\n setErrorSwitchingChainId(-1);\n setSwitchingChainId(chain.chainId);\n try {\n await switchChain(chain.chainId);\n props.onSwitch(chain);\n } catch (e) {\n setErrorSwitchingChainId(chain.chainId);\n console.error(e);\n } finally {\n setSwitchingChainId(-1);\n }\n };\n const RenderChain = props.renderChain;\n const [isLoading, setIsLoading] = useState(props.chains.length > 100);\n useEffect(() => {\n if (isLoading) {\n setIsLoading(false);\n }\n }, [isLoading]);\n if (isLoading) {\n return /*#__PURE__*/jsx(Container, {\n flex: \"row\",\n center: \"both\",\n style: {\n height: \"250px\"\n },\n children: /*#__PURE__*/jsx(Text, {\n children: locale.loading\n })\n });\n }\n return /*#__PURE__*/jsx(NetworkListUl, {\n children: props.chains.map(chain => {\n const confirming = switchingChainId === chain.chainId;\n const switchingFailed = errorSwitchingChainId === chain.chainId;\n const chainName = /*#__PURE__*/jsxs(\"span\", {\n children: [chain.name, \" \"]\n });\n if (RenderChain) {\n return /*#__PURE__*/jsx(\"li\", {\n children: /*#__PURE__*/jsx(RenderChain, {\n switchChain: () => {\n handleSwitch(chain);\n },\n chain: chain,\n switching: switchingChainId === chain.chainId,\n switchFailed: errorSwitchingChainId === chain.chainId,\n close: props.close\n })\n }, chain.chainId);\n }\n return /*#__PURE__*/jsx(\"li\", {\n children: /*#__PURE__*/jsxs(NetworkButton, {\n \"data-active\": activeChainId === chain.chainId,\n onClick: () => {\n handleSwitch(chain);\n },\n children: [/*#__PURE__*/jsx(ChainIcon, {\n chain: chain,\n size: iconSize.lg,\n active: activeChainId === chain.chainId,\n loading: \"lazy\"\n }), confirming || switchingFailed ? /*#__PURE__*/jsxs(\"div\", {\n style: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: spacing.xs\n },\n children: [chainName, /*#__PURE__*/jsxs(Container, {\n animate: \"fadein\",\n flex: \"row\",\n gap: \"xs\",\n children: [confirming && /*#__PURE__*/jsxs(Fragment, {\n children: [/*#__PURE__*/jsx(Text, {\n size: \"xs\",\n color: \"accentText\",\n children: twLocale.connectWallet.confirmInWallet\n }), /*#__PURE__*/jsx(Spinner, {\n size: \"xs\",\n color: \"accentText\"\n })]\n }), switchingFailed && /*#__PURE__*/jsx(Container, {\n animate: \"fadein\",\n children: /*#__PURE__*/jsx(Text, {\n size: \"xs\",\n color: \"danger\",\n children: locale.failedToSwitch\n })\n })]\n })]\n }) : chainName]\n })\n }, chain.chainId);\n })\n });\n});\nconst TabButton = /* @__PURE__ */(() => styled(Tabs.Trigger)(() => {\n const theme = useCustomTheme();\n return {\n all: \"unset\",\n fontSize: fontSize.sm,\n fontWeight: 500,\n color: theme.colors.secondaryText,\n cursor: \"pointer\",\n padding: `${spacing.sm} ${spacing.sm}`,\n WebkitTapHighlightColor: \"transparent\",\n borderRadius: radius.lg,\n transition: \"background 0.2s ease, color 0.2s ease\",\n \"&[data-state='active']\": {\n background: theme.colors.secondaryButtonBg,\n color: theme.colors.primaryText\n }\n };\n}))();\nconst SectionLabel = /* @__PURE__ */StyledP(() => {\n const theme = useCustomTheme();\n return {\n fontSize: fontSize.sm,\n color: theme.colors.secondaryText,\n margin: 0,\n display: \"block\",\n padding: `0 ${spacing.xs}`\n };\n});\nconst NetworkListUl = /* @__PURE__ */StyledUl({\n padding: 0,\n margin: 0,\n listStyle: \"none\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: spacing.xs,\n boxSizing: \"border-box\"\n});\nconst NetworkButton = /* @__PURE__ */StyledButton(() => {\n const theme = useCustomTheme();\n return {\n all: \"unset\",\n display: \"flex\",\n width: \"100%\",\n boxSizing: \"border-box\",\n alignItems: \"center\",\n gap: spacing.md,\n padding: `${spacing.xs} ${spacing.sm}`,\n borderRadius: radius.md,\n cursor: \"pointer\",\n transition: \"background 0.2s ease\",\n color: theme.colors.primaryText,\n fontWeight: 500,\n fontSize: fontSize.md,\n \"&:hover\": {\n background: theme.colors.secondaryButtonBg\n },\n [media.mobile]: {\n fontSize: fontSize.sm\n }\n };\n});\nconst StyledMagnifyingGlassIcon = /* @__PURE__ */styled(MagnifyingGlassIcon)(() => {\n const theme = useCustomTheme();\n return {\n color: theme.colors.secondaryText,\n position: \"absolute\",\n left: spacing.sm\n };\n});\n\nconst ExitIcon = _ref => {\n let {\n size\n } = _ref;\n return /*#__PURE__*/jsx(\"svg\", {\n width: size,\n height: size,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: /*#__PURE__*/jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M10.79 16.29C11.18 16.68 11.81 16.68 12.2 16.29L15.79 12.7C15.8827 12.6075 15.9563 12.4976 16.0064 12.3766C16.0566 12.2557 16.0824 12.126 16.0824 11.995C16.0824 11.864 16.0566 11.7343 16.0064 11.6134C15.9563 11.4924 15.8827 11.3825 15.79 11.29L12.2 7.7C12.013 7.51302 11.7594 7.40798 11.495 7.40798C11.2306 7.40798 10.977 7.51302 10.79 7.7C10.603 7.88698 10.498 8.14057 10.498 8.405C10.498 8.66943 10.603 8.92302 10.79 9.11L12.67 11H4C3.45 11 3 11.45 3 12C3 12.55 3.45 13 4 13H12.67L10.79 14.88C10.4 15.27 10.41 15.91 10.79 16.29ZM19 3H5C4.46957 3 3.96086 3.21071 3.58579 3.58579C3.21071 3.96086 3 4.46957 3 5V8C3 8.55 3.45 9 4 9C4.55 9 5 8.55 5 8V6C5 5.45 5.45 5 6 5H18C18.55 5 19 5.45 19 6V18C19 18.55 18.55 19 18 19H6C5.45 19 5 18.55 5 18V16C5 15.45 4.55 15 4 15C3.45 15 3 15.45 3 16V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3Z\"\n })\n });\n};\n\nconst FundsIcon = _ref => {\n let {\n size\n } = _ref;\n return /*#__PURE__*/jsxs(\"svg\", {\n width: size,\n height: size,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: [/*#__PURE__*/jsx(\"path\", {\n d: \"M14.001 8.00048C14.001 9.18726 13.649 10.3474 12.9897 11.3342C12.3304 12.3209 11.3932 13.09 10.2968 13.5442C9.20032 13.9984 7.99382 14.1172 6.82984 13.8857C5.66587 13.6541 4.59668 13.0826 3.7575 12.2435C2.91832 11.4043 2.34683 10.3351 2.1153 9.17111C1.88377 8.00713 2.0026 6.80064 2.45676 5.70419C2.91092 4.60775 3.68002 3.6706 4.66679 3.01126C5.65357 2.35192 6.8137 2 8.00048 2\",\n stroke: \"currentColor\",\n strokeWidth: \"1.2001\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/jsx(\"path\", {\n d: \"M14.0005 2L8 8.00048\",\n stroke: \"currentColor\",\n strokeWidth: \"1.2001\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/jsx(\"path\", {\n d: \"M10.3984 2H13.9987V5.60029\",\n stroke: \"currentColor\",\n strokeWidth: \"1.2001\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })]\n });\n};\n\nfunction SendFunds(props) {\n const [screen, setScreen] = useState(\"base\");\n const chainId = useChainId();\n let defaultToken = undefined;\n if (\n // if we know chainId\n chainId &&\n // if there is a list of tokens for this chain\n props.supportedTokens[chainId] &&\n // if the list of tokens is not the default list\n props.supportedTokens[chainId] !== defaultTokens[chainId]) {\n // use the first token in the list as default selected\n const tokensForChain = props.supportedTokens[chainId];\n const firstToken = tokensForChain && tokensForChain[0];\n if (firstToken) {\n defaultToken = firstToken;\n }\n }\n const [token, setToken] = useState(defaultToken);\n const [receiverAddress, setReceiverAddress] = useState(\"\");\n const [amount, setAmount] = useState(\"0\");\n if (screen === \"tokenSelector\") {\n return /*#__PURE__*/jsx(TokenSelector, {\n supportedTokens: props.supportedTokens,\n onBack: () => {\n setScreen(\"base\");\n },\n onTokenSelect: _token => {\n setToken(_token);\n setScreen(\"base\");\n }\n });\n }\n return /*#__PURE__*/jsx(SendFundsForm, {\n token: token,\n onTokenSelect: () => {\n setScreen(\"tokenSelector\");\n },\n receiverAddress: receiverAddress,\n setReceiverAddress: setReceiverAddress,\n amount: amount,\n setAmount: setAmount\n });\n}\nfunction SendFundsForm(props) {\n const locale = useTWLocale().connectWallet.sendFundsScreen;\n const tokenAddress = props.token?.address;\n const balanceQuery = useBalance(tokenAddress);\n const {\n receiverAddress,\n setReceiverAddress,\n amount,\n setAmount\n } = props;\n const chain = useChain();\n const chainId = useChainId();\n const wallet = useWallet();\n\n // Ethereum or Rinkeby or Goerli\n const isENSSupported = chainId === 1 || chainId === 5 || chainId === 4;\n const isValidReceiverAddress = useMemo(() => {\n const isENS = receiverAddress.endsWith(\".eth\");\n if (!isENSSupported && isENS) {\n return false;\n }\n return isENS || utils.isAddress(receiverAddress);\n }, [receiverAddress, isENSSupported]);\n const showInvalidAddressError = receiverAddress && !isValidReceiverAddress;\n const sendTokenMutation = useMutation(async () => {\n if (!wallet) {\n return;\n }\n return wallet.transfer(receiverAddress, amount, tokenAddress);\n });\n function getErrorMessage(error) {\n const message = error?.data?.message || error?.message;\n if (!message) {\n return locale.transactionFailed;\n }\n if (message.includes(\"user rejected\")) {\n return locale.transactionRejected;\n }\n if (message.includes(\"insufficient funds\")) {\n return locale.insufficientFunds;\n }\n return locale.transactionFailed;\n }\n if (sendTokenMutation.isError) {\n return /*#__PURE__*/jsxs(Container, {\n p: \"lg\",\n animate: \"fadein\",\n children: [/*#__PURE__*/jsx(ModalHeader, {\n title: locale.title,\n onBack: () => {\n sendTokenMutation.reset();\n }\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"xl\"\n }), /*#__PURE__*/jsxs(Container, {\n flex: \"column\",\n gap: \"lg\",\n animate: \"fadein\",\n center: \"both\",\n style: {\n minHeight: \"200px\"\n },\n color: \"danger\",\n children: [/*#__PURE__*/jsx(CrossCircledIcon, {\n width: iconSize.xl,\n height: iconSize.xl\n }), /*#__PURE__*/jsx(Text, {\n color: \"danger\",\n children: getErrorMessage(sendTokenMutation.error)\n })]\n })]\n });\n }\n if (sendTokenMutation.isSuccess) {\n return /*#__PURE__*/jsxs(Container, {\n p: \"lg\",\n animate: \"fadein\",\n children: [/*#__PURE__*/jsx(ModalHeader, {\n title: locale.title,\n onBack: () => {\n sendTokenMutation.reset();\n }\n }), /*#__PURE__*/jsxs(Container, {\n flex: \"column\",\n gap: \"lg\",\n animate: \"fadein\",\n center: \"both\",\n style: {\n minHeight: \"250px\"\n },\n color: \"success\",\n children: [/*#__PURE__*/jsx(CheckCircledIcon, {\n width: iconSize.xl,\n height: iconSize.xl\n }), /*#__PURE__*/jsxs(Text, {\n color: \"success\",\n children: [\" \", locale.successMessage, \" \"]\n })]\n })]\n });\n }\n const tokenName = props.token?.name || balanceQuery?.data?.name;\n const tokenSymbol = props.token?.symbol || balanceQuery.data?.symbol;\n return /*#__PURE__*/jsxs(Container, {\n p: \"lg\",\n animate: \"fadein\",\n children: [/*#__PURE__*/jsx(ModalTitle, {\n children: locale.title\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"xl\"\n }), /*#__PURE__*/jsxs(\"form\", {\n onSubmit: e => {\n e.preventDefault();\n },\n children: [/*#__PURE__*/jsx(Label, {\n htmlFor: \"token\",\n color: \"secondaryText\",\n children: locale.token\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"sm\"\n }), /*#__PURE__*/jsxs(Button, {\n id: \"token\",\n variant: \"outline\",\n fullWidth: true,\n style: {\n justifyContent: \"flex-start\",\n gap: spacing.sm,\n padding: spacing.sm\n },\n onClick: props.onTokenSelect,\n children: [props.token ? /*#__PURE__*/jsx(Img, {\n src: props.token.icon,\n width: iconSize.lg,\n height: iconSize.lg\n }) : /*#__PURE__*/jsx(ChainIcon, {\n chain: chain,\n size: iconSize.lg\n }), /*#__PURE__*/jsxs(Container, {\n flex: \"column\",\n gap: \"xs\",\n children: [tokenName ? /*#__PURE__*/jsx(Text, {\n size: \"sm\",\n color: \"primaryText\",\n children: tokenName\n }) : /*#__PURE__*/jsx(Skeleton, {\n height: fontSize.xs,\n width: \"150px\"\n }), balanceQuery.data ? /*#__PURE__*/jsx(Text, {\n size: \"xs\",\n children: formatBalance(balanceQuery.data)\n }) : /*#__PURE__*/jsx(Skeleton, {\n height: fontSize.xs,\n width: \"100px\"\n })]\n })]\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"lg\"\n }), /*#__PURE__*/jsx(Label, {\n htmlFor: \"receiever\",\n color: \"secondaryText\",\n children: locale.sendTo\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"sm\"\n }), /*#__PURE__*/jsx(Input, {\n \"data-error\": showInvalidAddressError,\n required: true,\n id: \"receiever\",\n placeholder: isENSSupported ? `0x... / ENS name` : \"0x...\",\n variant: \"outline\",\n value: receiverAddress,\n onChange: e => {\n setReceiverAddress(e.target.value);\n }\n }), showInvalidAddressError && /*#__PURE__*/jsxs(Fragment, {\n children: [/*#__PURE__*/jsx(Spacer, {\n y: \"xs\"\n }), /*#__PURE__*/jsx(Text, {\n color: \"danger\",\n size: \"sm\",\n children: locale.invalidAddress\n })]\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"lg\"\n }), /*#__PURE__*/jsx(Label, {\n htmlFor: \"amount\",\n color: \"secondaryText\",\n children: locale.amount\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"sm\"\n }), /*#__PURE__*/jsxs(Container, {\n relative: true,\n children: [/*#__PURE__*/jsx(Input, {\n required: true,\n type: \"number\",\n id: \"amount\",\n variant: \"outline\",\n value: amount,\n onChange: e => {\n setAmount(e.target.value);\n }\n }), /*#__PURE__*/jsx(CurrencyBadge, {\n children: /*#__PURE__*/jsxs(Text, {\n size: \"xs\",\n children: [\" \", tokenSymbol, \" \"]\n })\n })]\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"xxl\"\n }), /*#__PURE__*/jsxs(Button, {\n fullWidth: true,\n variant: \"accent\",\n type: \"submit\",\n onClick: async () => {\n if (!receiverAddress || !wallet || !amount) {\n return;\n }\n await sendTokenMutation.mutateAsync();\n },\n style: {\n alignItems: \"center\",\n gap: spacing.sm,\n padding: spacing.md\n },\n children: [sendTokenMutation.isLoading ? locale.sending : locale.submitButton, sendTokenMutation.isLoading && /*#__PURE__*/jsx(Spinner, {\n size: \"sm\",\n color: \"accentButtonText\"\n })]\n })]\n })]\n });\n}\nfunction useNativeToken() {\n const balanceQuery = useBalance();\n const chain = useChain();\n if (balanceQuery.data) {\n return {\n name: balanceQuery.data.name,\n symbol: balanceQuery.data.symbol,\n address: NATIVE_TOKEN_ADDRESS,\n icon: chain?.icon?.url || \"\"\n };\n }\n}\nfunction useToken(tokenAddress) {\n const balanceQuery = useBalance(tokenAddress);\n const chain = useChain();\n if (!utils.isAddress(tokenAddress)) {\n return {\n isLoading: false,\n data: undefined\n };\n }\n if (balanceQuery.isLoading) {\n return {\n isLoading: true,\n data: undefined\n };\n }\n if (balanceQuery.data) {\n return {\n isLoading: false,\n data: {\n name: balanceQuery.data.name,\n symbol: balanceQuery.data.symbol,\n address: tokenAddress,\n icon: chain?.icon?.url || \"\"\n }\n };\n }\n return {\n isLoading: false,\n data: undefined\n };\n}\nfunction TokenSelector(props) {\n const [input, setInput] = useState(\"\");\n const chainId = useChainId();\n const nativeTokenInfo = useNativeToken();\n const {\n data: foundToken,\n isLoading: findingToken\n } = useToken(input);\n const locale = useTWLocale().connectWallet.sendFundsScreen;\n let tokenList = (chainId ? props.supportedTokens[chainId] : undefined) || [];\n if (nativeTokenInfo) {\n tokenList = [nativeTokenInfo, ...tokenList];\n }\n if (foundToken) {\n tokenList = [foundToken, ...tokenList];\n }\n const filteredList = input ? tokenList.filter(t => {\n const inputStr = input.toLowerCase();\n return t.name.toLowerCase().includes(inputStr) || t.symbol.toLowerCase().includes(inputStr) || t.address.includes(input);\n }) : tokenList;\n return /*#__PURE__*/jsxs(Container, {\n animate: \"fadein\",\n children: [/*#__PURE__*/jsxs(Container, {\n p: \"lg\",\n children: [/*#__PURE__*/jsx(ModalHeader, {\n onBack: props.onBack,\n title: locale.selectTokenTitle\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"xl\"\n }), /*#__PURE__*/jsx(Input, {\n placeholder: locale.searchToken,\n variant: \"outline\",\n value: input,\n onChange: e => {\n setInput(e.target.value);\n }\n })]\n }), filteredList.length > 0 && /*#__PURE__*/jsx(Container, {\n flex: \"column\",\n gap: \"xs\",\n p: \"md\",\n scrollY: true,\n style: {\n paddingTop: 0,\n paddingBottom: spacing.lg,\n maxHeight: \"400px\"\n },\n children: filteredList.map(token => {\n return /*#__PURE__*/jsx(SelectTokenButton, {\n onClick: () => props.onTokenSelect(token),\n token: token\n }, token.address);\n })\n }), findingToken && /*#__PURE__*/jsx(Container, {\n animate: \"fadein\",\n p: \"lg\",\n flex: \"column\",\n gap: \"md\",\n center: \"both\",\n style: {\n minHeight: \"150px\",\n paddingTop: 0\n },\n color: \"secondaryText\",\n children: /*#__PURE__*/jsx(Spinner, {\n size: \"lg\",\n color: \"accentText\"\n })\n }), filteredList.length === 0 && !findingToken && /*#__PURE__*/jsxs(Container, {\n animate: \"fadein\",\n p: \"lg\",\n flex: \"column\",\n gap: \"md\",\n center: \"both\",\n style: {\n minHeight: \"150px\",\n paddingTop: 0\n },\n color: \"secondaryText\",\n children: [/*#__PURE__*/jsx(CrossCircledIcon, {\n width: iconSize.lg,\n height: iconSize.lg\n }), locale.noTokensFound]\n })]\n });\n}\nfunction SelectTokenButton(props) {\n const balanceQuery = useBalance(props.token?.address);\n const chain = useChain();\n const tokenName = props.token?.name || balanceQuery.data?.name;\n return /*#__PURE__*/jsxs(SelectTokenBtn, {\n fullWidth: true,\n variant: \"secondary\",\n onClick: props.onClick,\n children: [props.token?.icon ? /*#__PURE__*/jsx(Img, {\n width: iconSize.lg,\n height: iconSize.lg,\n src: props.token.icon\n }) : /*#__PURE__*/jsx(ChainIcon, {\n chain: chain,\n size: iconSize.lg\n }), /*#__PURE__*/jsxs(Container, {\n flex: \"column\",\n gap: \"xs\",\n children: [tokenName ? /*#__PURE__*/jsx(Text, {\n size: \"sm\",\n color: \"primaryText\",\n children: tokenName\n }) : /*#__PURE__*/jsx(Skeleton, {\n height: fontSize.md,\n width: \"150px\"\n }), balanceQuery.data ? /*#__PURE__*/jsxs(Text, {\n size: \"xs\",\n children: [\" \", formatBalance(balanceQuery.data)]\n }) : /*#__PURE__*/jsx(Skeleton, {\n height: fontSize.xs,\n width: \"100px\"\n })]\n })]\n });\n}\nconst SelectTokenBtn = /* @__PURE__ */styled(Button)(() => {\n const theme = useCustomTheme();\n return {\n background: \"transparent\",\n justifyContent: \"flex-start\",\n gap: spacing.sm,\n padding: spacing.sm,\n \"&:hover\": {\n background: theme.colors.secondaryButtonBg,\n transform: \"scale(1.01)\"\n },\n transition: \"background 200ms ease, transform 150ms ease\"\n };\n});\nfunction formatBalance(balanceData) {\n return Number(balanceData.displayValue).toFixed(3) + \" \" + balanceData.symbol;\n}\nconst CurrencyBadge = /* @__PURE__ */StyledDiv({\n position: \"absolute\",\n top: \"50%\",\n transform: \"translateY(-50%)\",\n right: spacing.sm\n});\n\nfunction ReceiveFunds(props) {\n const address = useAddress();\n const {\n hasCopied,\n onCopy\n } = useClipboard(address || \"\");\n const locale = useTWLocale().connectWallet.receiveFundsScreen;\n return /*#__PURE__*/jsxs(Container, {\n p: \"lg\",\n children: [/*#__PURE__*/jsx(ModalHeader, {\n title: locale.title\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"xl\"\n }), /*#__PURE__*/jsx(Container, {\n flex: \"row\",\n center: \"x\",\n children: /*#__PURE__*/jsx(QRCode, {\n qrCodeUri: address,\n size: 310,\n QRIcon: /*#__PURE__*/jsx(Img, {\n src: props.iconUrl,\n width: iconSize.xxl,\n height: iconSize.xxl\n })\n })\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"xl\"\n }), /*#__PURE__*/jsxs(WalletAddressContainer, {\n onClick: onCopy,\n children: [/*#__PURE__*/jsx(Text, {\n color: \"primaryText\",\n size: \"md\",\n children: shortenString(address || \"\")\n }), /*#__PURE__*/jsx(CopyIcon, {\n text: address || \"\",\n tip: \"Copy address\",\n hasCopied: hasCopied\n })]\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"lg\"\n }), /*#__PURE__*/jsx(Text, {\n multiline: true,\n center: true,\n balance: true,\n children: locale.instruction\n })]\n });\n}\nconst WalletAddressContainer = /* @__PURE__ */StyledButton(() => {\n const theme = useCustomTheme();\n return {\n all: \"unset\",\n width: \"100%\",\n boxSizing: \"border-box\",\n cursor: \"pointer\",\n padding: spacing.md,\n display: \"flex\",\n justifyContent: \"space-between\",\n border: `1px solid ${theme.colors.borderColor}`,\n borderRadius: radius.md,\n transition: \"border-color 200ms ease\",\n \"&:hover\": {\n borderColor: theme.colors.accentText\n }\n };\n});\n\n/**\n * Hook to connect `EmbeddedWallet` which allows users to login via Email or social logins\n *\n * The `embeddedWallet()` should be added to [`ThirdwebProvider`](https://portal.thirdweb.com/react/v4/ThirdwebProvider)'s `supportedWallets` prop to enable auto-connection on page load\n *\n * @example\n *\n * ### Social Login\n *\n * ```jsx\n * import { useEmbeddedWallet } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { connect } = useEmbeddedWallet();\n *\n * const handleLogin = async () => {\n * await connect({\n * strategy: \"google\",\n * });\n * };\n *\n * return ;\n * }\n * ```\n *\n *\n * ### Login with Email verification\n *\n * ```tsx\n * import { useEmbeddedWallet } from \"@thirdweb-dev/react\";\n *\n * function App() {\n * const { connect, sendVerificationEmail } = useEmbeddedWallet();\n *\n * const sendVerificationCode = async (email: string) => {\n * // send email verification code\n * await sendVerificationEmail({ email });\n * };\n *\n * const handleLogin = async (email: string, verificationCode: string) => {\n * // verify email and connect\n * await connect({\n * strategy: \"email_verification\",\n * email,\n * verificationCode,\n * });\n * };\n *\n * return
...
;\n * }\n * ```\n *\n *\n * ### Available connection strategies\n *\n * ```tsx\n * // email verification\n * type EmailVerificationAuthParams = {\n * strategy: \"email_verification\";\n * email: string;\n * verificationCode: string;\n * recoveryCode?: string;\n * };\n *\n * export type EmbeddedWalletOauthStrategy = \"google\" | \"apple\" | \"facebook\";\n *\n * type OauthAuthParams = {\n * strategy: EmbeddedWalletOauthStrategy;\n * openedWindow?: Window;\n * closeOpenedWindow?: (window: Window) => void;\n * };\n *\n * // bring your own authentication\n * type JwtAuthParams = {\n * strategy: \"jwt\";\n * jwt: string;\n * encryptionKey?: string;\n * };\n *\n * // open iframe to send and input the verification code only\n * type IframeOtpAuthParams = {\n * strategy: \"iframe_email_verification\";\n * email: string;\n * };\n *\n * // open iframe to enter email and verification code\n * type IframeAuthParams = {\n * strategy: \"iframe\";\n * };\n * ```\n *\n * @walletConnection\n */\nfunction useEmbeddedWallet() {\n const create = useCreateWalletInstance();\n const setStatus = useSetConnectionStatus();\n const setWallet = useSetConnectedWallet();\n const context = useWalletContext();\n const wallets = useWallets();\n const connect = useCallback(async authParams => {\n setStatus(\"connecting\");\n const config = wallets.find(w => w.id === walletIds.embeddedWallet);\n if (!config || config.personalWallets && config.personalWallets.length > 0) {\n console.warn(\"Embedded wallet not configured in ThirdwebProvider.supportedWallets - add it to enable autoconnect on page load\");\n }\n const wallet = create(embeddedWallet());\n try {\n const authResult = await wallet.authenticate(authParams);\n await wallet.connect({\n authResult\n });\n setWallet(wallet);\n setStatus(\"connected\");\n } catch (e) {\n console.error(\"Error connecting to embedded wallet\", e);\n setStatus(\"disconnected\");\n throw e;\n }\n return wallet;\n }, [setStatus, wallets, create, setWallet]);\n const sendVerificationEmail = useCallback(async _ref => {\n let {\n email\n } = _ref;\n const clientId = context.clientId;\n if (!clientId) {\n throw new Error(\"clientId not found, please add it to ThirdwebProvider\");\n }\n return EmbeddedWallet.sendVerificationEmail({\n email,\n clientId\n });\n }, [context]);\n return {\n connect,\n sendVerificationEmail\n };\n}\n\n/**\n * Hook to get the user's email from connected `EmbeddedWallet`\n *\n * @example\n * ```ts\n * const emailQuery = useEmbeddedWalletUserEmail();\n *\n * if (emailQuery.isFetching) {\n * return
Loading...
;\n * }\n *\n * if (emailQuery.data) {\n * return
Connected with {emailQuery.data}
;\n * }\n *\n * return
Not connected
;\n * ```\n *\n * @walletConnection\n * @returns Hook's `data` property contains the `string` email if `EmbeddedWallet` is connected, otherwise `undefined`\n */\nfunction useEmbeddedWalletUserEmail() {\n const wallet = useWallet();\n const queryClient = useQueryClient();\n const emailQuery = useQuery([wallet?.walletId, \"embeddedWallet-email\"], () => {\n if (wallet && wallet.walletId === walletIds.embeddedWallet) {\n return wallet.getEmail();\n }\n }, {\n retry: false,\n enabled: wallet?.walletId === walletIds.embeddedWallet\n });\n\n // Invalidate the query when the wallet changes\n useEffect(() => {\n queryClient.invalidateQueries([wallet?.walletId, \"embeddedWallet-email\"]);\n }, [wallet, queryClient]);\n return emailQuery;\n}\n\nconst TW_CONNECTED_WALLET = \"tw-connected-wallet\";\nconst ConnectedWalletDetails = props => {\n const locale = useTWLocale().connectWallet;\n const chain = useChain();\n const walletChainId = useChainId();\n const disconnect = useDisconnect();\n const chains = useSupportedChains();\n const address = useAddress();\n const token = walletChainId && props.displayBalanceToken ? props.displayBalanceToken[walletChainId] : undefined;\n const balanceQuery = useBalance(token);\n const activeWallet = useWallet();\n const activeWalletConfig = useWalletConfig();\n const ensQuery = useENS();\n const walletContext = useWalletContext();\n const wrapperWallet = activeWallet ? walletContext.getWrapperWallet(activeWallet) : undefined;\n const [overrideWalletIconUrl, setOverrideWalletIconUrl] = useState(undefined);\n\n // modals\n const [showNetworkSelector, setShowNetworkSelector] = useState(false);\n const [showExportModal, setShowExportModal] = useState(false);\n const [showSendModal, setShowSendModal] = useState(false);\n const [showReceiveModal, setShowReceiveModal] = useState(false);\n\n // dropdown\n const [isDropdownOpen, setIsDropdownOpen] = useState(false);\n const sdk = useSDK();\n const personalWallet = activeWallet?.getPersonalWallet();\n const personalWalletConfig = personalWallet && walletContext.getWalletConfig(personalWallet);\n const wrapperWalletConfig = wrapperWallet && walletContext.getWalletConfig(wrapperWallet);\n const disableSwitchChain = !!personalWallet;\n const isActuallyMetaMask = activeWallet && activeWallet instanceof MetaMaskWallet;\n const shortAddress = address ? shortenString(address) : \"\";\n const addressOrENS = ensQuery.data?.ens || shortAddress;\n const avatarUrl = ensQuery.data?.avatarUrl;\n useEffect(() => {\n if (activeWallet) {\n if (activeWallet.walletId === walletIds.embeddedWallet) {\n activeWallet.getLastUsedAuthStrategy().then(auth => {\n if (auth === \"apple\") {\n setOverrideWalletIconUrl(appleIconUri);\n } else if (auth === \"google\") {\n setOverrideWalletIconUrl(googleIconUri);\n } else if (auth === \"facebook\") {\n setOverrideWalletIconUrl(facebookIconUri);\n } else {\n setOverrideWalletIconUrl(undefined);\n }\n });\n } else if (activeWallet.walletId === walletIds.smartWallet) {\n setOverrideWalletIconUrl(smartWalletIcon);\n } else {\n setOverrideWalletIconUrl(undefined);\n }\n } else {\n setOverrideWalletIconUrl(undefined);\n }\n }, [activeWallet]);\n const walletIconUrl = overrideWalletIconUrl || activeWalletConfig?.meta.iconURL || \"\";\n const avatarOrWalletIconUrl = avatarUrl || walletIconUrl;\n const trigger = props.detailsBtn ? /*#__PURE__*/jsx(\"div\", {\n children: /*#__PURE__*/jsx(props.detailsBtn, {})\n }) : /*#__PURE__*/jsxs(WalletInfoButton, {\n type: \"button\",\n className: `${TW_CONNECTED_WALLET} ${props.className || \"\"}`,\n style: props.style,\n \"data-test\": \"connected-wallet-details\",\n children: [/*#__PURE__*/jsx(Img, {\n width: iconSize.lg,\n height: iconSize.lg,\n src: avatarOrWalletIconUrl,\n className: `${TW_CONNECTED_WALLET}__wallet-icon`,\n style: {\n borderRadius: radius.sm\n }\n }), /*#__PURE__*/jsxs(Container, {\n flex: \"column\",\n gap: \"xxs\",\n children: [activeWallet?.walletId === walletIds.localWallet ? /*#__PURE__*/jsx(Text, {\n color: \"danger\",\n size: \"xs\",\n style: {\n minWidth: \"70px\"\n },\n children: locale.guest\n }) : addressOrENS ? /*#__PURE__*/jsx(Text, {\n size: \"sm\",\n color: \"primaryText\",\n weight: 500,\n className: `${TW_CONNECTED_WALLET}__address`,\n children: addressOrENS\n }) : /*#__PURE__*/jsx(Skeleton, {\n height: fontSize.sm,\n width: \"88px\"\n }), balanceQuery.data ? /*#__PURE__*/jsxs(Text, {\n className: `${TW_CONNECTED_WALLET}__balance`,\n size: \"xs\",\n weight: 500,\n children: [Number(balanceQuery.data.displayValue).toFixed(3), \" \", balanceQuery.data.symbol]\n }) : /*#__PURE__*/jsx(Skeleton, {\n height: fontSize.xs,\n width: \"82px\"\n })]\n })]\n });\n let networkSwitcherButton = /*#__PURE__*/jsxs(MenuButton, {\n type: \"button\",\n disabled: disableSwitchChain,\n onClick: () => {\n setIsDropdownOpen(false);\n setShowNetworkSelector(true);\n },\n children: [/*#__PURE__*/jsx(\"div\", {\n style: {\n display: \"flex\",\n alignItems: \"center\",\n position: \"relative\"\n },\n children: /*#__PURE__*/jsx(ChainIcon, {\n chain: chain,\n size: iconSize.md,\n active: true\n })\n }), /*#__PURE__*/jsx(Text, {\n size: \"sm\",\n color: \"primaryText\",\n multiline: true,\n children: chain?.name || `Unknown chain #${walletChainId}`\n }), /*#__PURE__*/jsx(StyledChevronRightIcon, {\n width: iconSize.sm,\n height: iconSize.sm,\n style: {\n flexShrink: 0,\n marginLeft: \"auto\"\n }\n })]\n });\n if (!disableSwitchChain) {\n networkSwitcherButton = /*#__PURE__*/jsx(ToolTip, {\n tip: locale.switchNetwork,\n children: networkSwitcherButton\n });\n }\n const content = /*#__PURE__*/jsxs(\"div\", {\n children: [/*#__PURE__*/jsxs(Container, {\n flex: \"row\",\n gap: \"sm\",\n children: [/*#__PURE__*/jsx(Img, {\n width: iconSize.xl,\n height: iconSize.xl,\n src: avatarOrWalletIconUrl,\n alt: \"\",\n style: {\n borderRadius: radius.sm\n }\n }), /*#__PURE__*/jsxs(\"div\", {\n style: {\n flexGrow: 1\n },\n children: [/*#__PURE__*/jsxs(Container, {\n gap: \"xs\",\n flex: \"row\",\n center: \"y\",\n children: [/*#__PURE__*/jsxs(\"div\", {\n style: {\n display: \"flex\",\n gap: spacing.xs,\n alignItems: \"center\"\n },\n \"data-test\": \"connected-wallet-address\",\n \"data-address\": address,\n children: [/*#__PURE__*/jsx(Text, {\n color: \"primaryText\",\n weight: 500,\n children: addressOrENS\n }), /*#__PURE__*/jsx(IconButton, {\n style: {\n padding: \"3px\"\n },\n \"data-test\": \"copy-address\",\n children: /*#__PURE__*/jsx(CopyIcon, {\n text: address || \"\",\n tip: locale.copyAddress,\n side: \"bottom\"\n })\n })]\n }), !props.hideDisconnect && /*#__PURE__*/jsx(ToolTip, {\n tip: locale.disconnectWallet,\n side: \"bottom\",\n align: \"end\",\n sideOffset: 10,\n children: /*#__PURE__*/jsx(DisconnectIconButton, {\n type: \"button\",\n onClick: () => {\n disconnect();\n props.onDisconnect();\n },\n children: /*#__PURE__*/jsx(ExitIcon, {\n size: iconSize.md\n })\n })\n })]\n }), /*#__PURE__*/jsxs(Text, {\n weight: 500,\n size: \"sm\",\n children: [\" \", balanceQuery.data ? Number(balanceQuery.data.displayValue).toFixed(3) : /*#__PURE__*/jsx(Skeleton, {\n height: \"1em\",\n width: \"100px\"\n }), \" \", balanceQuery.data?.symbol, \" \"]\n })]\n })]\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"lg\"\n }), /*#__PURE__*/jsx(ConnectedToSmartWallet, {}), /*#__PURE__*/jsx(EmbeddedWalletEmail, {}), /*#__PURE__*/jsxs(Container, {\n style: {\n display: \"grid\",\n gridTemplateColumns: \"1fr 1fr\",\n gap: spacing.sm\n },\n children: [/*#__PURE__*/jsxs(Button, {\n variant: \"outline\",\n style: {\n fontSize: fontSize.sm,\n display: \"flex\",\n gap: spacing.xs,\n alignItems: \"center\",\n padding: spacing.sm\n },\n onClick: () => {\n setShowSendModal(true);\n setIsDropdownOpen(false);\n },\n children: [/*#__PURE__*/jsx(PaperPlaneIcon, {\n width: iconSize.sm,\n height: iconSize.sm,\n style: {\n transform: \"translateY(-10%) rotate(-45deg) \"\n }\n }), locale.send]\n }), /*#__PURE__*/jsxs(Button, {\n variant: \"outline\",\n style: {\n fontSize: fontSize.sm,\n display: \"flex\",\n gap: spacing.xs,\n alignItems: \"center\",\n padding: spacing.sm\n },\n onClick: () => {\n setShowReceiveModal(true);\n setIsDropdownOpen(false);\n },\n children: [/*#__PURE__*/jsx(PinBottomIcon, {\n width: iconSize.sm,\n height: iconSize.sm\n }), \" \", locale.receive, \" \"]\n })]\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"lg\"\n }), /*#__PURE__*/jsxs(\"div\", {\n children: [/*#__PURE__*/jsx(DropdownLabel, {\n children: locale.currentNetwork\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"xs\"\n }), networkSwitcherButton]\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"md\"\n }), /*#__PURE__*/jsxs(Container, {\n flex: \"column\",\n gap: \"sm\",\n children: [personalWallet && personalWalletConfig && !props.hideSwitchToPersonalWallet && /*#__PURE__*/jsx(WalletSwitcher, {\n wallet: personalWallet,\n name: locale.personalWallet\n }), wrapperWalletConfig && wrapperWallet && /*#__PURE__*/jsx(WalletSwitcher, {\n name: wrapperWallet.walletId === walletIds.smartWallet ? locale.smartWallet : wrapperWalletConfig.meta.name,\n wallet: wrapperWallet\n }), isActuallyMetaMask && activeWalletConfig && activeWalletConfig.isInstalled && activeWalletConfig.isInstalled() && !isMobile() && /*#__PURE__*/jsxs(MenuButton, {\n type: \"button\",\n onClick: () => {\n activeWallet.switchAccount();\n setIsDropdownOpen(false);\n },\n style: {\n fontSize: fontSize.sm\n },\n children: [/*#__PURE__*/jsx(Container, {\n color: \"secondaryText\",\n children: /*#__PURE__*/jsx(ShuffleIcon, {\n width: iconSize.sm,\n height: iconSize.sm\n })\n }), locale.switchAccount]\n }), !props.hideTestnetFaucet && (chain?.faucets && chain.faucets.length > 0 || chain?.chainId === Localhost.chainId) && /*#__PURE__*/jsxs(MenuLink, {\n href: chain?.faucets ? chain.faucets[0] : \"#\",\n target: \"_blank\",\n as: \"a\",\n onClick: async e => {\n if (chain.chainId === Localhost.chainId) {\n e.preventDefault();\n setIsDropdownOpen(false);\n await sdk?.wallet.requestFunds(10);\n await balanceQuery.refetch();\n }\n },\n style: {\n textDecoration: \"none\",\n color: \"inherit\",\n fontSize: fontSize.sm\n },\n children: [/*#__PURE__*/jsx(Container, {\n flex: \"row\",\n center: \"both\",\n color: \"secondaryText\",\n children: /*#__PURE__*/jsx(FundsIcon, {\n size: iconSize.sm\n })\n }), locale.requestTestnetFunds]\n }), chain?.explorers && chain.explorers[0]?.url && /*#__PURE__*/jsxs(MenuLink, {\n href: chain.explorers[0].url + \"/address/\" + address,\n target: \"_blank\",\n as: \"a\",\n style: {\n textDecoration: \"none\",\n color: \"inherit\",\n fontSize: fontSize.sm\n },\n children: [/*#__PURE__*/jsx(Container, {\n flex: \"row\",\n center: \"both\",\n color: \"secondaryText\",\n children: /*#__PURE__*/jsx(TextAlignLeftIcon, {\n width: iconSize.sm,\n height: iconSize.sm\n })\n }), locale.transactionHistory]\n }), activeWallet?.walletId === walletIds.localWallet && /*#__PURE__*/jsxs(\"div\", {\n children: [/*#__PURE__*/jsxs(MenuButton, {\n onClick: () => {\n setShowExportModal(true);\n setIsDropdownOpen(false);\n },\n style: {\n fontSize: fontSize.sm\n },\n children: [/*#__PURE__*/jsx(Container, {\n flex: \"row\",\n center: \"both\",\n color: \"secondaryText\",\n children: /*#__PURE__*/jsx(PinBottomIcon, {\n width: iconSize.sm,\n height: iconSize.sm\n })\n }), locale.backupWallet, \" \"]\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"md\"\n }), /*#__PURE__*/jsx(Text, {\n size: \"xs\",\n center: true,\n multiline: true,\n color: \"danger\",\n balance: true,\n children: locale.guestWalletWarning\n })]\n })]\n })]\n });\n return /*#__PURE__*/jsxs(Fragment, {\n children: [isMobile() ? /*#__PURE__*/jsx(Modal, {\n size: \"compact\",\n trigger: trigger,\n open: isDropdownOpen,\n setOpen: setIsDropdownOpen,\n hideCloseIcon: true,\n children: /*#__PURE__*/jsx(Container, {\n p: \"lg\",\n children: content\n })\n }) : /*#__PURE__*/jsxs(DropdownMenu.Root, {\n open: isDropdownOpen,\n onOpenChange: setIsDropdownOpen,\n children: [/*#__PURE__*/jsx(DropdownMenu.Trigger, {\n asChild: true,\n children: trigger\n }), /*#__PURE__*/jsx(DropdownMenu.Portal, {\n children: /*#__PURE__*/jsx(DropDownContent, {\n asChild: true,\n side: props.dropdownPosition?.side || \"bottom\",\n align: props.dropdownPosition?.align || \"end\",\n sideOffset: 10,\n children: content\n })\n })]\n }), /*#__PURE__*/jsx(NetworkSelector, {\n open: showNetworkSelector,\n theme: props.theme,\n chains: chains,\n ...props.networkSelector,\n onClose: () => setShowNetworkSelector(false)\n }), /*#__PURE__*/jsx(Modal, {\n size: \"compact\",\n open: showExportModal,\n setOpen: setShowExportModal,\n children: /*#__PURE__*/jsx(ExportLocalWallet, {\n modalSize: \"compact\",\n localWalletConfig: activeWalletConfig,\n onExport: () => {\n setShowExportModal(false);\n },\n walletAddress: address,\n walletInstance: activeWallet\n })\n }), /*#__PURE__*/jsx(Modal, {\n size: \"compact\",\n open: showSendModal,\n setOpen: setShowSendModal,\n children: /*#__PURE__*/jsx(SendFunds, {\n supportedTokens: props.supportedTokens\n })\n }), /*#__PURE__*/jsx(Modal, {\n size: \"compact\",\n open: showReceiveModal,\n setOpen: setShowReceiveModal,\n children: /*#__PURE__*/jsx(ReceiveFunds, {\n iconUrl: walletIconUrl\n })\n })]\n });\n};\nconst dropdownContentFade = keyframes`\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n`;\nconst DropDownContent = /* @__PURE__ */(() => styled(DropdownMenu.Content)(() => {\n const theme = useCustomTheme();\n return {\n width: \"360px\",\n boxSizing: \"border-box\",\n maxWidth: \"100%\",\n borderRadius: radius.lg,\n padding: spacing.lg,\n animation: `${dropdownContentFade} 400ms cubic-bezier(0.16, 1, 0.3, 1)`,\n willChange: \"transform, opacity\",\n border: `1px solid ${theme.colors.borderColor}`,\n backgroundColor: theme.colors.dropdownBg,\n \"--bg\": theme.colors.dropdownBg,\n zIndex: 1000000,\n lineHeight: \"normal\"\n };\n}))();\nconst WalletInfoButton = /* @__PURE__ */StyledButton(() => {\n const theme = useCustomTheme();\n return {\n all: \"unset\",\n background: theme.colors.connectedButtonBg,\n border: `1px solid ${theme.colors.borderColor}`,\n padding: `${spacing.sm} ${spacing.sm}`,\n borderRadius: radius.lg,\n cursor: \"pointer\",\n display: \"inline-flex\",\n alignItems: \"center\",\n minWidth: \"180px\",\n gap: spacing.sm,\n boxSizing: \"border-box\",\n WebkitTapHighlightColor: \"transparent\",\n lineHeight: \"normal\",\n animation: `${fadeInAnimation} 300ms ease`,\n [media.mobile]: {\n gap: spacing.sm,\n padding: `${spacing.xs} ${spacing.sm}`,\n img: {\n width: `${iconSize.md}px`,\n height: `${iconSize.md}px`\n }\n },\n \"&:hover\": {\n transition: \"background 250ms ease\",\n background: theme.colors.connectedButtonBgHover\n }\n };\n});\nconst DropdownLabel = /* @__PURE__ */StyledLabel(() => {\n const theme = useCustomTheme();\n return {\n fontSize: fontSize.sm,\n color: theme.colors.secondaryText,\n fontWeight: 500\n };\n});\nconst MenuButton = /* @__PURE__ */StyledButton(() => {\n const theme = useCustomTheme();\n return {\n all: \"unset\",\n padding: `${spacing.sm} ${spacing.sm}`,\n borderRadius: radius.md,\n backgroundColor: \"transparent\",\n border: `1px solid ${theme.colors.borderColor}`,\n boxSizing: \"border-box\",\n display: \"flex\",\n alignItems: \"center\",\n width: \"100%\",\n cursor: \"pointer\",\n fontSize: fontSize.md,\n fontWeight: 500,\n color: `${theme.colors.primaryText} !important`,\n gap: spacing.sm,\n WebkitTapHighlightColor: \"transparent\",\n lineHeight: 1.3,\n \"&:not([disabled]):hover\": {\n transition: \"box-shadow 250ms ease, border-color 250ms ease\",\n border: `1px solid ${theme.colors.accentText}`,\n boxShadow: `0 0 0 1px ${theme.colors.accentText}`\n },\n \"&[disabled]\": {\n cursor: \"not-allowed\",\n svg: {\n display: \"none\"\n }\n },\n \"&[disabled]:hover\": {\n transition: \"box-shadow 250ms ease, border-color 250ms ease\",\n border: `1px solid ${theme.colors.danger}`,\n boxShadow: `0 0 0 1px ${theme.colors.danger}`\n }\n };\n});\nconst MenuLink = /* @__PURE__ */(() => MenuButton.withComponent(\"a\"))();\nconst StyledChevronRightIcon = /* @__PURE__ */styled( ChevronRightIcon)(() => {\n const theme = useCustomTheme();\n return {\n color: theme.colors.secondaryText\n };\n});\nconst DisconnectIconButton = /* @__PURE__ */styled(IconButton)(() => {\n const theme = useCustomTheme();\n return {\n marginRight: `-${spacing.xxs}`,\n marginLeft: \"auto\",\n color: theme.colors.secondaryText,\n \"&:hover\": {\n color: theme.colors.danger,\n background: \"none\"\n }\n };\n});\nfunction WalletSwitcher(_ref) {\n let {\n wallet,\n name\n } = _ref;\n const walletContext = useWalletContext();\n const locale = useTWLocale().connectWallet;\n return /*#__PURE__*/jsxs(MenuButton, {\n type: \"button\",\n onClick: () => {\n walletContext.setConnectedWallet(wallet);\n },\n style: {\n fontSize: fontSize.sm\n },\n children: [/*#__PURE__*/jsx(Container, {\n color: \"secondaryText\",\n children: /*#__PURE__*/jsx(EnterIcon, {\n width: iconSize.sm,\n height: iconSize.sm\n })\n }), locale.switchTo, \" \", name]\n });\n}\nconst ActiveDot = /* @__PURE__ */StyledDiv(() => {\n const theme = useCustomTheme();\n return {\n width: \"8px\",\n height: \"8px\",\n borderRadius: \"50%\",\n backgroundColor: theme.colors.success\n };\n});\nfunction ConnectedToSmartWallet() {\n const activeWallet = useWallet();\n const chain = useChain();\n const address = useAddress();\n const locale = useTWLocale().connectWallet;\n const [isSmartWalletDeployed, setIsSmartWalletDeployed] = useState(false);\n useEffect(() => {\n if (activeWallet && activeWallet.walletId === walletIds.smartWallet) {\n const smartWallet = activeWallet;\n smartWallet.isDeployed().then(isDeployed => {\n setIsSmartWalletDeployed(isDeployed);\n });\n } else {\n setIsSmartWalletDeployed(false);\n }\n }, [activeWallet]);\n const content = /*#__PURE__*/jsxs(Container, {\n flex: \"row\",\n gap: \"xs\",\n center: \"y\",\n style: {\n width: \"100%\",\n justifyContent: \"space-between\"\n },\n children: [/*#__PURE__*/jsxs(Container, {\n flex: \"row\",\n gap: \"xs\",\n center: \"y\",\n children: [/*#__PURE__*/jsx(ActiveDot, {}), locale.connectedToSmartWallet]\n }), isSmartWalletDeployed && /*#__PURE__*/jsx(ChevronRightIcon, {\n width: iconSize.sm,\n height: iconSize.sm\n })]\n });\n if (chain && address && activeWallet?.walletId === walletIds.smartWallet) {\n return /*#__PURE__*/jsxs(Fragment, {\n children: [isSmartWalletDeployed ? /*#__PURE__*/jsx(Link, {\n color: \"secondaryText\",\n hoverColor: \"primaryText\",\n href: `https://thirdweb.com/${chain.slug}/${address}/account`,\n target: \"_blank\",\n size: \"sm\",\n children: content\n }) : /*#__PURE__*/jsxs(Text, {\n size: \"sm\",\n children: [\" \", content]\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"md\"\n })]\n });\n }\n return null;\n}\nfunction EmbeddedWalletEmail() {\n const emailQuery = useEmbeddedWalletUserEmail();\n if (emailQuery.data) {\n return /*#__PURE__*/jsx(Container, {\n style: {\n paddingBottom: spacing.md\n },\n children: /*#__PURE__*/jsx(Text, {\n color: \"primaryText\",\n children: emailQuery.data\n })\n });\n }\n return undefined;\n}\n\nconst LockIcon = props => {\n return /*#__PURE__*/jsx(\"svg\", {\n width: props.size,\n height: props.size,\n viewBox: \"0 0 16 21\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: /*#__PURE__*/jsx(\"path\", {\n d: \"M2 21C1.45 21 0.979333 20.8043 0.588 20.413C0.196 20.021 0 19.55 0 19V9C0 8.45 0.196 7.979 0.588 7.587C0.979333 7.19567 1.45 7 2 7H3V5C3 3.61667 3.48767 2.43733 4.463 1.462C5.43767 0.487333 6.61667 0 8 0C9.38333 0 10.5627 0.487333 11.538 1.462C12.5127 2.43733 13 3.61667 13 5V7H14C14.55 7 15.021 7.19567 15.413 7.587C15.8043 7.979 16 8.45 16 9V19C16 19.55 15.8043 20.021 15.413 20.413C15.021 20.8043 14.55 21 14 21H2ZM8 16C8.55 16 9.021 15.8043 9.413 15.413C9.80433 15.021 10 14.55 10 14C10 13.45 9.80433 12.979 9.413 12.587C9.021 12.1957 8.55 12 8 12C7.45 12 6.97933 12.1957 6.588 12.587C6.196 12.979 6 13.45 6 14C6 14.55 6.196 15.021 6.588 15.413C6.97933 15.8043 7.45 16 8 16ZM5 7H11V5C11 4.16667 10.7083 3.45833 10.125 2.875C9.54167 2.29167 8.83333 2 8 2C7.16667 2 6.45833 2.29167 5.875 2.875C5.29167 3.45833 5 4.16667 5 5V7Z\",\n fill: \"currentColor\"\n })\n });\n};\n\nconst SignatureScreen = _ref => {\n let {\n onDone,\n modalSize,\n termsOfServiceUrl,\n privacyPolicyUrl\n } = _ref;\n const locale = useTWLocale().connectWallet.signatureScreen;\n const walletConfig = useWalletConfig();\n const wallet = useWallet();\n const {\n auth\n } = useContext(ModalConfigCtx);\n const [status, setStatus] = useState(\"idle\");\n const {\n login\n } = useLogin();\n const [tryId, setTryId] = useState(0);\n const disconnect = useDisconnect();\n const isSafeWallet = wallet?.walletId === walletIds.safe;\n const chainId = useChainId();\n const address = useAddress();\n const safeChainSlug = chainId && chainId in safeChainIdToSlug ? safeChainIdToSlug[chainId] : undefined;\n const signIn = useCallback(async () => {\n try {\n setStatus(\"signing\");\n await wait(1000);\n const token = await login();\n auth?.onLogin?.(token);\n onDone();\n } catch (err) {\n setStatus(\"failed\");\n console.error(\"failed to log in\", err);\n }\n }, [auth, login, onDone]);\n\n // if wallet is not connected - just show spinner\n if (!walletConfig || !wallet) {\n return /*#__PURE__*/jsx(Container, {\n flex: \"row\",\n center: \"both\",\n style: {\n minHeight: \"300px\"\n },\n children: /*#__PURE__*/jsx(Spinner, {\n size: \"xl\",\n color: \"accentText\"\n })\n });\n }\n if (walletConfig?.isHeadless) {\n return /*#__PURE__*/jsx(HeadlessSignIn, {\n signIn: signIn,\n status: status\n });\n }\n const handleRetry = () => {\n signIn();\n setTryId(tryId + 1);\n };\n return /*#__PURE__*/jsxs(Container, {\n animate: \"fadein\",\n fullHeight: true,\n flex: \"column\",\n children: [/*#__PURE__*/jsx(Container, {\n p: \"lg\",\n style: {\n paddingBottom: 0\n },\n children: /*#__PURE__*/jsx(ModalHeader, {\n title: locale.instructionScreen.title\n })\n }), /*#__PURE__*/jsx(Container, {\n style: {\n paddingTop: 0,\n paddingBottom: spacing.xl\n },\n flex: \"column\",\n px: modalSize === \"compact\" ? \"lg\" : \"xxl\",\n center: \"y\",\n expand: true,\n children: status === \"idle\" ? /*#__PURE__*/jsxs(Fragment, {\n children: [walletConfig && /*#__PURE__*/jsx(Container, {\n flex: \"row\",\n center: \"x\",\n animate: \"fadein\",\n py: \"3xl\",\n children: /*#__PURE__*/jsx(PulsatingContainer, {\n children: /*#__PURE__*/jsx(Img, {\n src: walletConfig.meta.iconURL,\n width: \"80\",\n height: \"80\"\n })\n })\n }), /*#__PURE__*/jsx(Text, {\n center: true,\n multiline: true,\n balance: true,\n children: locale.instructionScreen.instruction\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"lg\"\n }), /*#__PURE__*/jsx(Button, {\n fullWidth: true,\n variant: \"accent\",\n onClick: signIn,\n style: {\n alignItems: \"center\",\n padding: spacing.md\n },\n children: locale.instructionScreen.signInButton\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"sm\"\n }), /*#__PURE__*/jsx(Button, {\n fullWidth: true,\n variant: \"secondary\",\n onClick: () => {\n disconnect();\n },\n style: {\n alignItems: \"center\",\n padding: spacing.md\n },\n children: locale.instructionScreen.disconnectWallet\n })]\n }) : /*#__PURE__*/jsxs(Fragment, {\n children: [walletConfig && /*#__PURE__*/jsx(Container, {\n py: \"3xl\",\n children: /*#__PURE__*/jsx(WalletLogoSpinner, {\n error: status === \"failed\",\n iconUrl: walletConfig.meta.iconURL\n }, String(tryId))\n }), /*#__PURE__*/jsxs(Container, {\n flex: \"column\",\n gap: \"md\",\n animate: \"fadein\",\n children: [/*#__PURE__*/jsx(Text, {\n size: \"lg\",\n center: true,\n color: \"primaryText\",\n children: status === \"failed\" ? locale.signingScreen.failedToSignIn : locale.signingScreen.inProgress\n }), status === \"signing\" && /*#__PURE__*/jsx(Text, {\n center: true,\n multiline: true,\n balance: true,\n children: isSafeWallet ? /*#__PURE__*/jsx(SafeWalletInstruction, {}) : /*#__PURE__*/jsx(Fragment, {\n children: locale.signingScreen.prompt\n })\n }), isSafeWallet && status === \"signing\" && /*#__PURE__*/jsxs(Container, {\n children: [/*#__PURE__*/jsx(Spacer, {\n y: \"sm\"\n }), /*#__PURE__*/jsxs(Button, {\n fullWidth: true,\n variant: \"accent\",\n onClick: () => {\n window.open(`https://app.safe.global/transactions/queue?safe=${safeChainSlug}:${address}`, \"_blank\");\n },\n style: {\n gap: spacing.xs,\n alignItems: \"center\"\n },\n children: [\" \", locale.signingScreen.approveTransactionInSafe, /*#__PURE__*/jsx(ExternalLinkIcon, {\n width: iconSize.sm,\n height: iconSize.sm\n })]\n })]\n }), status === \"failed\" && /*#__PURE__*/jsxs(Container, {\n children: [/*#__PURE__*/jsx(Spacer, {\n y: \"sm\"\n }), /*#__PURE__*/jsxs(Button, {\n fullWidth: true,\n variant: \"accent\",\n onClick: handleRetry,\n style: {\n gap: spacing.xs,\n alignItems: \"center\",\n padding: spacing.md\n },\n children: [/*#__PURE__*/jsx(ReloadIcon, {\n width: iconSize.sm,\n height: iconSize.sm\n }), locale.signingScreen.tryAgain]\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"sm\"\n }), /*#__PURE__*/jsx(Button, {\n fullWidth: true,\n variant: \"secondary\",\n onClick: () => {\n disconnect();\n },\n style: {\n alignItems: \"center\",\n padding: spacing.md\n },\n children: locale.instructionScreen.disconnectWallet\n })]\n })]\n }, status)]\n })\n }), (termsOfServiceUrl || privacyPolicyUrl) && /*#__PURE__*/jsx(Container, {\n p: \"md\",\n animate: \"fadein\",\n children: /*#__PURE__*/jsx(TOS, {\n termsOfServiceUrl: termsOfServiceUrl,\n privacyPolicyUrl: privacyPolicyUrl\n })\n })]\n });\n};\nfunction SafeWalletInstruction() {\n const locale = useTWLocale().connectWallet.signatureScreen.signingScreen;\n const {\n getWalletConfig\n } = useWalletContext();\n const wallet = useWallet();\n const personalWallet = wallet?.getPersonalWallet();\n const isSafePersonalWalletHeadless = personalWallet && getWalletConfig(personalWallet)?.isHeadless;\n return /*#__PURE__*/jsx(Fragment, {\n children: isSafePersonalWalletHeadless ? /*#__PURE__*/jsx(Fragment, {\n children: locale.approveTransactionInSafe\n }) : /*#__PURE__*/jsx(Fragment, {\n children: locale.promptForSafe\n })\n });\n}\nfunction HeadlessSignIn(_ref2) {\n let {\n signIn,\n status\n } = _ref2;\n const locale = useTWLocale().connectWallet.signatureScreen.signingScreen;\n const mounted = useRef(false);\n useEffect(() => {\n if (mounted.current) {\n return;\n }\n mounted.current = true;\n signIn();\n }, [signIn]);\n return /*#__PURE__*/jsxs(Container, {\n p: \"lg\",\n fullHeight: true,\n flex: \"column\",\n animate: \"fadein\",\n children: [/*#__PURE__*/jsx(ModalHeader, {\n title: locale.title\n }), /*#__PURE__*/jsx(Container, {\n expand: true,\n flex: \"row\",\n center: \"both\",\n style: {\n minHeight: \"250px\"\n },\n children: status === \"failed\" ? /*#__PURE__*/jsxs(Container, {\n flex: \"column\",\n gap: \"lg\",\n color: \"danger\",\n center: \"both\",\n animate: \"fadein\",\n children: [/*#__PURE__*/jsx(CrossCircledIcon, {\n width: iconSize.xl,\n height: iconSize.xl\n }), /*#__PURE__*/jsxs(Text, {\n color: \"danger\",\n children: [\" \", locale.failedToSignIn, \" \"]\n })]\n }) : /*#__PURE__*/jsx(Spinner, {\n size: \"xl\",\n color: \"accentText\"\n })\n })]\n });\n}\nconst plusAnimation = keyframes`\n0% {\n transform: scale(0.9);\n}\n100% {\n opacity: 0;\n transform: scale(1.4);\n}\n`;\nconst PulsatingContainer = /* @__PURE__ */StyledDiv(() => {\n const theme = useCustomTheme();\n return {\n position: \"relative\",\n \"&::before\": {\n content: '\"\"',\n display: \"block\",\n position: \"absolute\",\n left: 0,\n top: 0,\n bottom: 0,\n right: 0,\n background: theme.colors.accentText,\n animation: `${plusAnimation} 2s cubic-bezier(0.175, 0.885, 0.32, 1.1) infinite`,\n zIndex: -1,\n borderRadius: radius.xl\n }\n };\n});\n\nconst TW_CONNECT_WALLET = \"tw-connect-wallet\";\n\n/**\n * A component that allows the user to connect their wallet.\n *\n * it renders a button which when clicked opens a modal to allow users to connect to wallets specified in the [`ThirdwebProvider`](https://portal.thirdweb.com/react/v4/ThirdwebProvider)'s supportedWallets prop.\n *\n * This component must be descendant of [`ThirdwebProvider`](https://portal.thirdweb.com/react/v4/ThirdwebProvider)\n *\n * @example\n * ```tsx\n * \n * ```\n *\n * @param props -\n * Props for the ConnectWallet component\n *\n * ### btnTitle (optional)\n * set custom label for the button.\n *\n * The default is `\"Connect\"`\n *\n * ```tsx\n * \n * ```\n *\n * ### modalSize (optional)\n * Set the size of the modal - `compact` or `wide` on desktop\n *\n * Modal size is always `compact` on mobile\n *\n * By default it is `\"wide\"` for desktop.\n *\n * ### modalTitle (optional)\n * Change the title of ConnectWallet Modal\n *\n * The default is `\"Connect\"`\n *\n * ### modalTitleIconUrl (optional)\n * Replace the thirdweb icon next to modalTitle and set your own iconUrl\n *\n * Set to empty string to hide the icon\n *\n * ### auth (optional)\n * The object contains the following properties to customize the authentication\n * - `loginOptional` - specify whether signing in is optional or not. By default it is `false` ( Sign in is required ) if `authConfig` is set on [`ThirdwebProvider`](https://portal.thirdweb.com/react/v4/ThirdwebProvider)\n * - `onLogin` - Callback to be called after user signs in with their wallet\n * - `onLogout` - Callback to be called after user signs out\n *\n * ### theme (optional)\n * Set the theme for the button and modal.\n *\n * By default it is set to \"dark\" if `theme` is not set on [`ThirdwebProvider`](https://portal.thirdweb.com/react/v4/ThirdwebProvider)\n * If a `theme` is set on [`ThirdwebProvider`](https://portal.thirdweb.com/react/v4/ThirdwebProvider) then that theme will be used by default which can be overridden by setting `theme` prop on [`ConnectWallet`](https://portal.thirdweb.com/react/v4/components/ConnectWallet) component\n *\n * theme can be set to either \"dark\" or \"light\" or a custom theme object. You can also import `lightTheme` or `darkTheme` functions from `@thirdweb-dev/react` to use the default themes as base and overrides parts of it.\n *\n * ```ts\n * import { lightTheme } from \"@thirdweb-dev/react\";\n * const customTheme = lightTheme({\n * colors: {\n * modalBg: 'red'\n * }\n * })\n * ```\n *\n * ### className (optional)\n * CSS class to apply to the button element\n *\n * ### detailsBtn\n * Render a custom button to display connected wallet details instead of the default one\n *\n * ```tsx\n * const address = useAddress();\n *\n * {\n * return (\n * \n * )\n * }}\n * />\n * ```\n *\n * ### dropdownPosition (optional)\n * When user connects the wallet using ConnectWallet Modal, a \"Details Button\" is rendered. Clicking on this button opens a dropdown which opens in a certain direction relative to the Details button.\n *\n * `dropdownPosition` prop allows you to customize the direction the dropdown should open relative to the Details button.\n *\n * ```tsx\n * \n * ```\n *\n * ### style (optional)\n * CSS styles to apply to the button element\n *\n * ### networkSelector (optional)\n * Customize the Network selector shown\n *\n * ### hideTestnetFaucet (optional)\n * Hide the \"Request Testnet funds\" link in ConnectWallet dropdown which is shown when user is connected to a testnet.\n *\n * By default it is `false`\n *\n * ```tsx\n * \n * ```\n *\n * ### switchToActiveChain (optional)\n * Whether to show \"Switch Network\" button if the wallet is connected,\n * but it is not connected to the `activeChain` provided in [`ThirdwebProvider`](https://portal.thirdweb.com/react/v4/ThirdwebProvider)\n *\n * Please, note that if you support multiple networks in your app this prop should\n * be set to `false` to allow users to switch between networks.\n *\n * By default it is `false`\n *\n * For some CSS properties, you may need to use the !important to override the default styles\n *\n * ```tsx\n * \n * ```\n *\n * ### termsOfServiceUrl\n * If provided, Modal will show a Terms of Service message at the bottom with below link\n *\n * ```tsx\n * \n * ```\n *\n * ### privacyPolicyUrl\n * If provided, Modal will show a Privacy Policy message at the bottom with below link\n *\n * ```tsx\n * \n * ```\n *\n * ### welcomeScreen\n * Customize the welcome screen. This prop is only applicable when modalSize prop is set to \"wide\". On \"wide\" Modal size, a welcome screen is shown on the right side of the modal.\n *\n * This screen can be customized in two ways\n *\n * #### 1. Customize Metadata and Image\n *\n * ```tsx\n * \n * ```\n *\n * #### 2. Render Custom Component\n *\n * ```tsx\n * {\n * return \n * }}\n * />\n * ```\n *\n *\n * ### supportedTokens\n * Customize the tokens shown in the \"Send Funds\" screen for various networks.\n *\n * By default, The \"Send Funds\" screen shows a few popular tokens for default chains and the native token. For other chains it only shows the native token.\n *\n * supportedTokens prop allows you to customize this list as shown below which shows \"Dai Stablecoin\" when users wallet is connected to the \"Base\" mainnet.\n *\n * ```tsx\n * import { ConnectWallet } from '@thirdweb-dev/react';\n * import { Base } from '@thirdweb-dev/chains';\n *\n * function Example() {\n * return (\n * \t\t\n * \t);\n * }\n * ```\n *\n * ### displayBalanceToken\n * Display the balance of a token instead of the native token in ConnectWallet details button.\n *\n * ```tsx\n * import { Base } from \"@thirdweb-dev/chains\";\n *\n * \n * ```\n *\n * ### hideSwitchToPersonalWallet\n * Hide the \"Switch to Personal wallet\" option in the wallet modal which is shown when wallet is connected to either Smart Wallet or Safe.\n *\n * By default it is `false`\n *\n * ```tsx\n * \n * ```\n *\n * ### hideDisconnect\n * Hide the \"Disconnect Wallet\" button in the ConnectWallet dropdown\n *\n * By default it is `false`\n *\n * ```tsx\n * \n * ```\n */\nfunction ConnectWallet(props) {\n const activeWallet = useWallet();\n const contextTheme = useCustomTheme();\n const theme = props.theme || contextTheme || \"dark\";\n const connectionStatus = useConnectionStatus();\n const locale = useTWLocale();\n const walletConfigs = useWallets();\n const isLoading = connectionStatus === \"connecting\" || connectionStatus === \"unknown\";\n const btnTitle = props.btnTitle || locale.connectWallet.defaultButtonTitle;\n const setIsWalletModalOpen = useSetIsWalletModalOpen();\n const setModalConfig = useContext(SetModalConfigCtx);\n const authConfig = useThirdwebAuthContext();\n const {\n logout\n } = useLogout();\n const isNetworkMismatch = useNetworkMismatch();\n const {\n activeChainSetExplicitly\n } = useWalletContext();\n const [showSignatureModal, setShowSignatureModal] = useState(false);\n const address = useAddress();\n const {\n user\n } = useUser();\n const connectedButNotSignedIn = !!authConfig?.authUrl && !!address && (!user?.address || address !== user?.address);\n const requiresSignIn = props.auth?.loginOptional ? false : connectedButNotSignedIn;\n const supportedTokens = useMemo(() => {\n if (!props.supportedTokens) {\n return defaultTokens;\n }\n const tokens = {\n ...defaultTokens\n };\n for (const k in props.supportedTokens) {\n const key = Number(k);\n const tokenList = props.supportedTokens[key];\n if (tokenList) {\n tokens[key] = tokenList;\n }\n }\n return tokens;\n }, [props.supportedTokens]);\n\n // if wallet gets disconnected, close the signature modal\n useEffect(() => {\n if (!activeWallet) {\n setShowSignatureModal(false);\n }\n }, [activeWallet]);\n return /*#__PURE__*/jsxs(CustomThemeProvider, {\n theme: theme,\n children: [/*#__PURE__*/jsx(Modal, {\n size: \"compact\",\n open: showSignatureModal,\n setOpen: value => {\n if (!value) {\n setShowSignatureModal(false);\n }\n },\n children: /*#__PURE__*/jsx(SignatureScreen, {\n modalSize: \"compact\",\n termsOfServiceUrl: props.termsOfServiceUrl,\n privacyPolicyUrl: props.privacyPolicyUrl,\n onDone: () => setShowSignatureModal(false)\n })\n }), (() => {\n // wallet is not connected\n if (!activeWallet) {\n // Connect Wallet button\n return /*#__PURE__*/jsx(AnimatedButton, {\n disabled: isLoading,\n className: `${props.className || \"\"} ${TW_CONNECT_WALLET}`,\n \"data-theme\": theme,\n \"data-is-loading\": isLoading,\n variant: \"primary\",\n type: \"button\",\n style: {\n minWidth: \"140px\",\n ...props.style\n },\n \"aria-label\": connectionStatus === \"connecting\" ? locale.connectWallet.connecting : btnTitle,\n onClick: () => {\n let modalSize = props.modalSize || \"wide\";\n if (isMobile() || walletConfigs.length === 1) {\n modalSize = \"compact\";\n }\n setModalConfig({\n title: props.modalTitle || locale.connectWallet.defaultModalTitle,\n theme,\n data: undefined,\n modalSize,\n termsOfServiceUrl: props.termsOfServiceUrl,\n privacyPolicyUrl: props.privacyPolicyUrl,\n welcomeScreen: props.welcomeScreen,\n titleIconUrl: props.modalTitleIconUrl,\n auth: props.auth,\n onConnect: props.onConnect\n });\n setIsWalletModalOpen(true);\n },\n \"data-test\": \"connect-wallet-button\",\n children: isLoading ? /*#__PURE__*/jsx(Spinner, {\n size: \"sm\",\n color: \"primaryButtonText\"\n }) : btnTitle\n });\n }\n\n // switch network button\n if (props.switchToActiveChain && isNetworkMismatch && activeChainSetExplicitly) {\n return /*#__PURE__*/jsx(SwitchNetworkButton, {\n style: props.style,\n className: props.className\n });\n }\n\n // sign in button\n else if (requiresSignIn) {\n return /*#__PURE__*/jsx(Button, {\n variant: \"primary\",\n onClick: () => {\n if (activeWallet) {\n setShowSignatureModal(true);\n }\n },\n \"data-theme\": theme,\n className: `${TW_CONNECT_WALLET}--sign-in ${props.className || \"\"}`,\n style: {\n minWidth: \"140px\",\n ...props.style\n },\n \"data-test\": \"sign-in-button\",\n children: /*#__PURE__*/jsxs(Container, {\n flex: \"row\",\n center: \"y\",\n gap: \"sm\",\n children: [/*#__PURE__*/jsx(LockIcon, {\n size: iconSize.sm\n }), /*#__PURE__*/jsxs(\"span\", {\n children: [\" \", locale.connectWallet.signIn, \" \"]\n })]\n })\n });\n }\n\n // wallet details button\n return /*#__PURE__*/jsx(ConnectedWalletDetails, {\n theme: theme,\n networkSelector: props.networkSelector,\n dropdownPosition: props.dropdownPosition,\n className: props.className,\n style: props.style,\n detailsBtn: props.detailsBtn,\n hideTestnetFaucet: props.hideTestnetFaucet,\n supportedTokens: supportedTokens,\n displayBalanceToken: props.displayBalanceToken,\n onDisconnect: () => {\n if (authConfig?.authUrl) {\n logout();\n props?.auth?.onLogout?.();\n }\n },\n hideSwitchToPersonalWallet: props.hideSwitchToPersonalWallet,\n hideDisconnect: props.hideDisconnect\n });\n })()]\n });\n}\nfunction SwitchNetworkButton(props) {\n const {\n activeChain\n } = useWalletContext();\n const switchChain = useSwitchChain();\n const [switching, setSwitching] = useState(false);\n const locale = useTWLocale();\n return /*#__PURE__*/jsx(AnimatedButton, {\n className: `${TW_CONNECT_WALLET}--switch-network ${props.className || \"\"}`,\n variant: \"primary\",\n type: \"button\",\n \"data-is-loading\": switching,\n \"data-test\": \"switch-network-button\",\n disabled: switching,\n onClick: async () => {\n setSwitching(true);\n try {\n await switchChain(activeChain.chainId);\n } catch {\n // ignore\n }\n setSwitching(false);\n },\n style: {\n minWidth: \"140px\",\n ...props.style\n },\n \"aria-label\": switching ? locale.connectWallet.switchingNetwork : undefined,\n children: switching ? /*#__PURE__*/jsx(Spinner, {\n size: \"sm\",\n color: \"primaryButtonText\"\n }) : locale.connectWallet.switchNetwork\n });\n}\nconst AnimatedButton = /* @__PURE__ */styled(Button)({\n animation: `${fadeInAnimation} 300ms ease`\n});\n\nconst GlobeIcon = props => {\n return /*#__PURE__*/jsx(\"svg\", {\n width: props.size,\n height: props.size,\n viewBox: \"0 0 129 131\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: /*#__PURE__*/jsx(\"path\", {\n d: \"M59.7178 0C62.7511 0 65.788 0 68.8212 0C71.4429 0.423181 74.1011 0.679982 76.6755 1.29848C103.785 7.78725 120.277 24.7723 126.755 51.5485C127.428 54.3335 127.712 57.2089 128.175 60.0446V69.8103C127.803 72.1722 127.472 74.5449 127.057 76.8995C122.582 102.298 103.177 122.722 77.9136 128.56C74.8003 129.28 71.6104 129.67 68.457 130.213H59.3537C57.3838 129.913 55.4065 129.663 53.4475 129.305C27.0442 124.491 6.91125 104.974 1.44197 78.8526C0.841148 75.9808 0.473373 73.0656 0 70.1684C0 66.9132 0 63.6579 0 60.4027C0.371416 58.0408 0.706418 55.6718 1.11425 53.3135C5.52026 28.0493 24.9905 7.50151 50.0902 1.70719C53.2618 0.97657 56.5062 0.560624 59.7178 0ZM96.8813 10.3119C96.8959 10.2865 96.9104 10.2576 96.9286 10.2323C96.8886 10.2504 96.8522 10.2648 96.8121 10.2829C96.8085 10.2287 96.8048 10.178 96.8012 10.1238C96.8303 10.1853 96.8558 10.2504 96.8849 10.3119H96.8813ZM25.1762 115.709C25.2089 115.716 25.2454 115.72 25.2781 115.727C25.249 115.749 25.2235 115.771 25.1944 115.792C25.2053 115.767 25.2162 115.742 25.2271 115.716C25.1252 115.525 25.0196 115.333 24.9176 115.141C22.7328 113.087 21.127 110.421 18.3305 109.014C18.2977 109.032 18.2613 109.05 18.2285 109.065C18.2758 109.058 18.3232 109.054 18.3705 109.047C18.4397 109.365 18.3997 109.795 18.5926 109.984C20.3587 111.687 22.1502 113.362 23.9745 115.004C24.1675 115.177 24.5972 115.083 24.9176 115.116C25.0014 115.311 25.0851 115.51 25.1725 115.706L25.1762 115.709ZM27.594 12.4567L27.2262 12.9197C27.1898 13.1439 27.1571 13.3682 27.1206 13.5924C26.8038 13.5924 26.4871 13.596 26.1703 13.5996C26.0683 13.813 25.9663 14.0264 25.8607 14.2362L25.7661 14.2652L25.8243 14.1856C25.9336 13.9686 26.0428 13.7479 26.1557 13.5309C26.4688 13.5418 26.7856 13.5526 27.0988 13.5671C27.1243 13.332 27.1498 13.0969 27.1753 12.8618C27.2954 12.7352 27.412 12.6122 27.5321 12.4856C27.543 12.511 27.554 12.5399 27.5649 12.5652C27.5758 12.529 27.5831 12.4893 27.594 12.4531V12.4567ZM106.589 111.926C106.738 111.868 106.891 111.806 107.041 111.749C107.616 111.354 108.286 111.043 108.756 110.548C110.281 108.924 111.771 107.26 113.205 105.553C113.919 104.703 114.483 103.726 115.113 102.808C113.981 103.448 112.849 104.084 111.716 104.725C111.669 104.753 111.632 104.811 111.6 104.862C110.088 107.166 108.577 109.474 107.07 111.778L106.556 111.958L106.625 112.06L106.589 111.926ZM79.6906 2.95141C79.6906 2.92971 79.6906 2.90801 79.6906 2.88631C79.6724 2.89716 79.6505 2.91163 79.6323 2.92248C79.8253 2.9478 80.0146 2.97311 80.2076 2.99843C80.0328 2.98397 79.8617 2.96588 79.6869 2.95141H79.6906ZM95.1662 8.90488C95.1116 8.90488 95.0533 8.89764 94.9987 8.90849C94.9732 8.91211 94.955 8.94828 94.9368 8.96998C95.0242 8.93381 95.1116 8.89764 95.199 8.86147C95.301 9.07125 95.3956 9.28827 95.5194 9.49082C95.5376 9.51975 95.6796 9.47273 95.7634 9.45827C95.5668 9.2738 95.3665 9.08934 95.1699 8.90126L95.1662 8.90488ZM86.7729 124.603C85.8772 124.921 84.9778 125.229 84.0893 125.565C83.94 125.623 83.8417 125.811 83.7215 125.941C83.8562 125.988 84.031 126.111 84.1184 126.068C85.0069 125.605 85.8808 125.117 86.7584 124.636C86.8021 124.621 86.8494 124.592 86.8895 124.596C86.9259 124.6 86.9623 124.643 86.9951 124.665C86.9186 124.643 86.8458 124.621 86.7693 124.603H86.7729ZM82.2431 4.35478L82.2941 4.31138V4.32223C82.5672 4.5935 82.793 5.00583 83.1207 5.11072C85.8189 5.99325 88.5317 6.82153 91.2445 7.6498C91.4193 7.70406 91.6341 7.64257 91.8271 7.63172C91.6596 7.46896 91.514 7.25917 91.3173 7.14705C88.4844 5.599 85.4912 4.56456 82.2395 4.35116L82.2431 4.35478ZM29.9609 10.9991C30.2995 11.0135 30.6928 11.1438 30.9732 11.0208C33.8389 9.75847 36.6937 8.46361 39.5376 7.15428C39.9054 6.98429 40.2331 6.70217 40.5244 6.41643C40.7319 6.21388 40.8412 5.91729 40.9941 5.66049C40.6664 5.68943 40.2913 5.62432 40.0219 5.76177C36.6573 7.49066 33.3109 9.2521 29.9609 11.0027C29.9864 11.0461 30.0119 11.0895 30.041 11.1293C30.0701 11.1655 30.1102 11.1944 30.1466 11.2233L29.9609 10.9991ZM8.93219 95.5918C8.89213 95.628 8.84844 95.6677 8.80838 95.7039C8.85208 95.6641 8.89942 95.6243 8.94311 95.5845C8.99773 96.0801 8.91398 96.6443 9.12882 97.0566C11.7397 102.034 14.7984 106.641 19.9509 109.43C19.9436 109.437 19.9363 109.445 19.9327 109.455C19.7579 108.913 19.6413 108.345 19.401 107.828C18.4943 105.875 17.6204 103.903 16.5899 102.015C16.1347 101.18 15.4283 100.417 14.6746 99.82C12.8102 98.3479 10.8512 96.9915 8.93219 95.5918ZM23.0533 112.295C23.097 112.248 23.1407 112.201 23.1844 112.15C23.1443 112.19 23.1006 112.23 23.0606 112.269C23.279 112.472 23.5449 112.646 23.7087 112.888C27.1206 117.861 32.1275 120.35 37.7861 121.818C38.1648 121.916 38.5763 121.887 38.9732 121.919C38.813 121.608 38.6709 121.283 38.4925 120.983C37.7861 119.789 37.1525 118.541 36.3259 117.434C35.8344 116.776 35.1206 116.125 34.3669 115.843C31.1917 114.657 27.9691 113.597 24.7501 112.53C24.2149 112.353 23.6177 112.367 23.0496 112.291L23.0533 112.295ZM69.8298 86.3252C73.0378 86.3252 75.4666 86.2927 77.8917 86.3397C78.9514 86.3614 79.4029 86.025 79.4284 84.9074C79.5049 81.4134 79.6432 77.9195 79.818 74.4291C79.8763 73.25 79.4757 72.9353 78.2777 72.8919C71.4903 72.6605 64.7065 72.353 57.9227 71.9986C56.8048 71.9407 56.2804 72.1107 56.204 73.3477C55.9855 76.8344 55.7015 80.3211 55.341 83.797C55.2135 85.0267 55.665 85.3595 56.8048 85.4282C61.4074 85.7067 66.0028 86.0539 69.8262 86.3216L69.8298 86.3252ZM69.9245 72.2192C72.2076 72.2192 74.9969 72.1505 77.7789 72.2481C79.2937 72.3024 79.9527 71.9371 79.869 70.2697C79.7015 66.9638 79.6796 63.6507 79.7088 60.3412C79.7197 58.8836 79.2536 58.4315 77.7315 58.3881C71.6177 58.2217 65.5076 57.9251 59.4011 57.5779C58.1994 57.5092 57.828 57.8274 57.7224 58.9776C57.3838 62.6307 56.9832 66.2838 56.528 69.9261C56.3897 71.0401 56.8776 71.2571 57.8171 71.3222C61.6842 71.5862 65.5513 71.8937 69.9281 72.2228L69.9245 72.2192ZM55.3956 74.3749C55.4247 74.0892 55.432 73.5394 55.5412 73.0149C55.7415 72.0564 55.2936 71.7852 54.4088 71.6333C47.8471 70.5048 41.2927 69.3401 34.742 68.1429C33.9481 67.9982 33.4748 68.0019 33.3655 68.9459C32.9249 72.6496 32.4115 76.3461 32.0401 80.0571C32 80.473 32.6118 81.2905 33.0269 81.3664C39.7488 82.6396 46.4852 83.8151 53.2181 85.0267C54.2267 85.2076 54.6091 84.8531 54.671 83.8115C54.853 80.7479 55.1334 77.688 55.3956 74.3749ZM54.143 71.2065C55.4757 71.3511 55.7634 70.7073 55.8726 69.5788C56.2222 65.9294 56.6264 62.2835 57.0888 58.6449C57.2272 57.5489 56.7429 57.3645 55.8253 57.2089C49.8644 56.1926 43.9108 55.1437 37.9718 54.0297C37.0178 53.8488 36.6464 54.0731 36.4461 54.9484C35.6122 58.5798 34.7638 62.2075 33.9008 65.8317C33.6823 66.754 33.8753 67.2966 34.9131 67.4955C41.3255 68.7144 47.7342 69.9659 54.1466 71.2101L54.143 71.2065ZM68.519 99.3606C71.5449 99.3606 73.97 99.3172 76.3915 99.3787C77.564 99.4077 78.1612 99.0894 78.2595 97.8198C78.5035 94.702 78.8203 91.5879 79.1808 88.4809C79.3119 87.3524 78.9514 87.0558 77.8262 87.0161C70.8093 86.7629 63.7925 86.4554 56.7793 86.0901C55.6286 86.0286 55.1334 86.2565 55.0897 87.4646C54.9805 90.5896 54.813 93.7146 54.5981 96.836C54.518 97.9753 54.8676 98.4094 56.0656 98.4781C60.417 98.7277 64.7611 99.0857 68.5153 99.3606H68.519ZM80.5244 79.623H80.4261C80.3278 81.3664 80.2659 83.1134 80.1202 84.8531C80.0365 85.8442 80.3023 86.318 81.3947 86.2095C87.7816 85.5621 94.1721 84.9616 100.555 84.2636C101.007 84.2129 101.728 83.4968 101.739 83.0772C101.826 79.3482 101.779 75.6155 101.772 71.8864C101.772 71.1486 101.488 70.852 100.654 70.9388C94.3287 71.5935 88.0001 72.2083 81.6678 72.8015C80.8339 72.8811 80.4989 73.1849 80.5171 74.0277C80.5572 75.894 80.5281 77.7603 80.5281 79.6267L80.5244 79.623ZM80.3788 65.1156C80.437 65.1156 80.4953 65.1156 80.5536 65.1156C80.5536 66.9819 80.5936 68.8518 80.5353 70.7182C80.5062 71.6911 80.7393 72.2011 81.8389 72.089C88.0474 71.4633 94.2559 70.852 100.468 70.2624C101.418 70.172 101.699 69.7271 101.579 68.8374C101.058 65.0794 100.559 61.3178 100.057 57.5598C99.9473 56.7424 99.5795 56.5217 98.7056 56.6158C93.0433 57.2234 87.3738 57.7768 81.7006 58.2868C80.7138 58.3772 80.3096 58.6557 80.3533 59.6938C80.4297 61.4986 80.3751 63.3071 80.3751 65.1119L80.3788 65.1156ZM54.1393 91.8881C54.1393 91.8881 54.1466 91.8881 54.1503 91.8881C54.2413 90.2677 54.2959 88.6401 54.4416 87.0233C54.518 86.1805 54.2304 85.8767 53.3892 85.7357C46.6527 84.5819 39.9199 83.4027 33.198 82.173C32.1675 81.9849 31.7342 82.173 31.7379 83.2581C31.7451 86.5639 31.6687 89.8734 31.7379 93.1793C31.7488 93.6386 32.3496 94.4054 32.7829 94.485C39.3774 95.7365 45.99 96.8939 52.599 98.0802C53.5385 98.2502 53.9026 97.8777 53.9136 96.93C53.9391 95.2482 54.0592 93.5663 54.1393 91.8844V91.8881ZM70.1758 44.2893C66.5199 44.018 63.8508 43.8878 61.2035 43.5912C60.0929 43.4682 59.7106 43.7395 59.5831 44.8391C59.1717 48.3656 58.7019 51.8884 58.1594 55.3969C57.9773 56.5724 58.4033 56.8653 59.4702 56.9087C65.6423 57.1619 71.8144 57.4404 77.9864 57.7406C79.2063 57.8021 79.5631 57.3211 79.4612 56.1492C79.1516 52.6118 78.8822 49.0709 78.6819 45.5263C78.62 44.4412 78.1102 44.264 77.1817 44.2784C74.5162 44.3182 71.8508 44.2929 70.1758 44.2929V44.2893ZM82.6983 99.3715C87.9782 98.7168 93.2582 98.0513 98.5417 97.4147C99.4084 97.3098 100.006 97.0747 100.14 96.0728C100.585 92.7995 101.091 89.5334 101.579 86.2637C101.728 85.2655 101.458 84.9182 100.319 85.0412C94.0665 85.714 87.8107 86.3397 81.544 86.8678C80.2695 86.9763 79.9163 87.4428 79.8471 88.593C79.7088 90.8717 79.5085 93.1504 79.2427 95.4182C78.7912 99.2919 78.762 99.2883 82.6983 99.3715ZM58.9495 44.0035C58.9714 43.4682 58.9714 43.4755 57.6423 43.2368C52.6427 42.3398 47.6396 41.4681 42.6509 40.5168C41.6823 40.3324 41.2308 40.553 40.9213 41.4789C39.7633 44.9584 38.5617 48.4234 37.3309 51.8776C37.0105 52.7782 37.1999 53.2159 38.1539 53.3822C44.1694 54.4311 50.1776 55.5162 56.204 56.5109C56.5499 56.5688 57.3146 56.019 57.3692 55.6754C57.9372 51.9318 58.4033 48.1739 58.9532 44.0035H58.9495ZM83.798 57.7225C88.5499 57.1619 93.3019 56.6122 98.0538 56.0371C98.8767 55.9358 99.8308 55.9539 99.4484 54.5903C98.4289 50.9372 97.4603 47.2696 96.488 43.6057C96.2732 42.7919 95.8071 42.6472 95.0097 42.734C90.2541 43.2476 85.4948 43.7504 80.7283 44.1518C79.6177 44.2459 79.2572 44.5497 79.3738 45.6637C79.6651 48.4777 79.8981 51.2989 80.0693 54.1237C80.2841 57.6647 80.2477 57.6683 83.798 57.7189V57.7225ZM32.6154 68.0344C32.437 67.9259 31.9673 67.5244 31.4283 67.3255C26.538 65.546 21.6222 63.8279 16.7392 62.0231C15.8835 61.7084 15.421 61.571 15.2535 62.6669C14.711 66.2404 14.092 69.7995 13.5895 73.3766C13.5239 73.8396 13.8443 74.7004 14.1939 74.8306C19.5175 76.8344 24.8667 78.7622 30.2376 80.643C30.467 80.7226 31.188 80.2162 31.2244 79.9233C31.7124 76.1617 32.1202 72.3856 32.6154 68.0308V68.0344ZM32.6919 66.8951C32.8485 66.5189 33.0851 66.1174 33.1907 65.687C34.0574 62.0629 34.8439 58.417 35.7797 54.8073C36.0565 53.7403 35.6705 53.5052 34.7893 53.1978C30.2813 51.6389 25.777 50.0547 21.3164 48.3692C20.3223 47.993 19.9181 48.116 19.594 49.0781C18.4324 52.554 17.249 56.0262 16.0364 59.4876C15.6759 60.5148 16.0328 61.0465 17.005 61.3901C21.9026 63.1226 26.7893 64.8768 31.6832 66.6202C31.909 66.6998 32.1493 66.7468 32.6955 66.8915L32.6919 66.8951ZM67.1207 110.645C69.8116 110.645 72.2404 110.598 74.6619 110.667C75.7324 110.696 76.1767 110.298 76.3405 109.282C76.7738 106.605 77.2363 103.936 77.7679 101.278C77.9828 100.207 77.5203 100.098 76.6282 100.062C69.7242 99.7874 62.8239 99.4836 55.9236 99.1364C54.9259 99.0857 54.5035 99.2774 54.5071 100.359C54.5144 102.949 54.467 105.538 54.3287 108.124C54.2595 109.383 54.7292 109.817 55.9527 109.886C59.7652 110.099 63.574 110.396 67.1207 110.642V110.645ZM53.615 104.106C53.6769 104.106 53.7351 104.106 53.797 104.106C53.797 102.844 53.7351 101.578 53.8153 100.319C53.8772 99.3642 53.6113 98.9483 52.5918 98.7783C46.0264 97.6679 39.472 96.5141 32.9249 95.306C31.8871 95.1143 31.7706 95.4471 31.8835 96.2935C32.2658 99.093 32.6518 101.892 32.9759 104.699C33.0924 105.712 33.6059 106.15 34.5672 106.32C40.4698 107.358 46.3651 108.407 52.2604 109.488C53.3637 109.691 53.655 109.257 53.6223 108.258C53.5786 106.877 53.6113 105.491 53.6113 104.106H53.615ZM30.9586 87.8552C30.9805 87.8552 31.0059 87.8552 31.0278 87.8552C31.0278 86.2927 30.9513 84.7229 31.0533 83.164C31.1225 82.0717 30.7583 81.6304 29.6951 81.2688C24.6627 79.5543 19.6596 77.7495 14.6746 75.9085C13.7351 75.5612 13.3309 75.5793 13.3673 76.6716C13.4766 80.0354 13.5166 83.4027 13.7169 86.7629C13.7497 87.3199 14.3359 88.1337 14.8566 88.329C19.8307 90.2026 24.8448 91.964 29.8444 93.7761C30.7474 94.1052 31.0096 93.8267 30.9768 92.908C30.9186 91.2262 30.9622 89.5407 30.9622 87.8552H30.9586ZM40.6009 40.2564C40.1785 40.0719 39.7524 39.8622 39.3118 39.703C35.554 38.343 31.7706 37.0518 28.0492 35.5978C27.0587 35.2108 26.6436 35.417 26.2103 36.2308C24.477 39.4752 22.7547 42.7268 20.9595 45.935C20.3769 46.9803 20.701 47.4396 21.7023 47.7941C26.152 49.3674 30.6054 50.9372 35.0369 52.5684C36.0783 52.9518 36.3915 52.5467 36.6901 51.6497C37.848 48.1594 39.0715 44.6944 40.2695 41.2185C40.3496 40.9906 40.4261 40.7628 40.6045 40.26L40.6009 40.2564ZM117.997 64.3632C117.018 60.4172 116.082 56.5688 115.062 52.742C115.004 52.5214 114.236 52.2791 113.897 52.3767C109.786 53.5776 105.69 54.8218 101.611 56.1275C101.233 56.2505 100.734 56.9124 100.774 57.2704C101.225 61.1478 101.753 65.0179 102.332 68.8772C102.383 69.2063 103.039 69.7633 103.257 69.6982C107.882 68.331 112.488 66.9023 117.083 65.4302C117.422 65.3217 117.63 64.8045 117.994 64.3632H117.997ZM81.0087 110.443C81.016 110.501 81.0269 110.555 81.0342 110.613C85.666 110.034 90.3014 109.484 94.9222 108.848C95.4903 108.768 96.3205 108.367 96.4807 107.918C97.5513 104.978 98.4762 101.983 99.4339 99.0025C99.6523 98.3262 99.4776 98.0296 98.651 98.1164C92.3187 98.7602 85.9828 99.3425 79.6541 100.015C79.2463 100.059 78.6601 100.641 78.5654 101.061C78.1539 102.88 77.8808 104.732 77.5859 106.576C77.3783 107.86 77.2181 109.155 77.036 110.443H81.0051H81.0087ZM102.518 77.131C102.518 77.131 102.529 77.131 102.533 77.131C102.533 78.9973 102.54 80.86 102.529 82.7264C102.525 83.3485 102.423 84.0827 103.414 83.7789C108.148 82.3249 112.878 80.8528 117.582 79.3156C117.946 79.1962 118.354 78.5126 118.351 78.0967C118.311 74.4291 118.172 70.7652 118.081 67.0976C118.059 66.2259 117.852 66.0053 116.89 66.3164C112.524 67.7306 108.133 69.0797 103.72 70.3456C102.682 70.6422 102.402 71.022 102.485 72.0745C102.616 73.7492 102.522 75.4419 102.522 77.1237L102.518 77.131ZM70.8895 43.5767C73.1871 43.5767 75.1243 43.537 77.0579 43.5912C78.1102 43.6201 78.4634 43.2512 78.3105 42.2168C77.8226 38.9471 77.3565 35.6774 76.9414 32.3968C76.8285 31.4962 76.4607 31.2069 75.554 31.1815C71.4429 31.0658 67.3319 30.9103 63.2245 30.6933C62.2559 30.6426 61.7861 30.8849 61.6368 31.8651C61.1562 35.0119 60.661 38.1586 60.0893 41.2945C59.8671 42.5134 60.3187 42.8968 61.4657 42.9583C64.7283 43.1391 67.9837 43.3814 70.8858 43.5731L70.8895 43.5767ZM58.3596 42.857C58.7056 42.3723 59.2372 41.9491 59.3319 41.4428C59.9181 38.2454 60.3587 35.0191 60.9559 31.8217C61.1489 30.7873 60.9122 30.4871 59.8781 30.3207C56.051 29.7058 52.2349 29.0078 48.4297 28.2771C47.5048 28.0999 46.9659 28.2771 46.5617 29.1524C45.1489 32.216 43.696 35.2614 42.2212 38.2996C41.7879 39.1894 41.7916 39.6958 42.9532 39.9092C47.9563 40.8351 52.9486 41.8153 58.356 42.857H58.3596ZM101.029 55.8743C105.457 54.3841 109.691 52.9808 113.894 51.4906C114.156 51.3965 114.414 50.5466 114.276 50.2102C112.779 46.6041 111.224 43.0197 109.611 39.4643C109.484 39.1858 108.745 38.9362 108.395 39.0375C104.863 40.0647 101.342 41.1462 97.8426 42.2819C97.5295 42.3832 97.118 43.027 97.1872 43.3091C98.1375 47.096 99.1535 50.8649 100.191 54.6301C100.29 54.9918 100.628 55.2884 101.025 55.8671L101.029 55.8743ZM82.5089 43.5731C86.4816 43.0993 90.4507 42.6183 94.4234 42.1625C95.4648 42.0432 95.9746 41.7611 95.4502 40.5783C94.0374 37.3846 92.7484 34.1329 91.2918 30.9573C91.0843 30.5016 90.1922 30.0603 89.6532 30.1001C86.0301 30.3713 82.4179 30.8235 78.7948 31.1056C77.6951 31.1888 77.4985 31.5432 77.666 32.5451C78.0993 35.1602 78.4379 37.7897 78.8094 40.4119C79.1055 42.5098 80.3375 43.5635 82.5053 43.5731H82.5089ZM118.245 81.8981C117.735 81.3881 119.017 79.8762 117.357 80.3283C112.692 81.6015 108.082 83.0772 103.479 84.5529C103.006 84.7048 102.442 85.345 102.361 85.8297C101.812 89.1537 101.397 92.4993 100.89 95.8305C100.745 96.7818 101.04 97.0675 101.946 96.7854C106.276 95.4399 110.624 94.1486 114.91 92.6838C115.583 92.4523 116.268 91.4866 116.446 90.7451C117.153 87.8226 117.662 84.8531 118.245 81.8981ZM32.1857 105.224C31.7925 101.784 31.4866 98.7313 31.0533 95.6967C30.9914 95.2699 30.3906 94.749 29.9281 94.579C24.9868 92.7778 20.0128 91.0706 15.0751 89.2622C14.0519 88.886 13.8844 89.1247 14.1102 90.0507C14.8494 93.0853 15.574 96.1271 16.3569 99.1545C16.4661 99.5704 16.8157 100.106 17.1834 100.243C21.9317 102.034 26.7019 103.77 31.4793 105.48C31.716 105.564 32.0911 105.26 32.1821 105.224H32.1857ZM65.8244 119.662C67.8854 119.662 69.9464 119.626 72.0037 119.681C72.9832 119.706 73.6023 119.449 73.8717 118.433C74.3815 116.516 74.9313 114.606 75.5358 112.714C75.8599 111.691 75.6341 111.376 74.5126 111.34C68.2786 111.134 62.0447 110.902 55.8143 110.551C54.4743 110.475 54.2704 110.924 54.3432 112.038C54.4634 113.839 54.5435 115.644 54.5472 117.449C54.5472 118.512 54.955 118.928 56.0292 118.99C59.2955 119.171 62.5544 119.435 65.8244 119.666V119.662ZM40.7174 39.2871C40.914 39.023 41.2672 38.6794 41.4639 38.2671C42.9495 35.171 44.3769 32.0496 45.8881 28.968C46.3068 28.1144 46.2558 27.778 45.2727 27.4525C42.3451 26.4831 39.4757 25.351 36.5481 24.3817C36.0783 24.2262 35.1971 24.3926 34.9131 24.7362C32.579 27.5755 30.3505 30.5052 28.0601 33.3842C27.361 34.2632 27.5977 34.737 28.5772 35.0842C32.3387 36.4116 36.0965 37.7571 39.858 39.0954C40.0292 39.1569 40.2112 39.1749 40.7137 39.2871H40.7174ZM53.757 114.577C53.6732 113.26 54.0774 111.492 53.3783 110.75C52.6209 109.947 50.833 110.103 49.493 109.839C49.3146 109.803 49.1361 109.781 48.9577 109.745C44.3259 108.877 39.6796 108.067 35.066 107.112C33.5658 106.801 33.391 107.199 33.828 108.468C34.4943 110.399 35.1243 112.342 35.7215 114.291C36.0201 115.271 36.6282 115.738 37.6368 115.923C41.6787 116.657 45.6987 117.532 49.7552 118.194C53.8881 118.867 53.9026 118.784 53.757 114.573V114.577ZM10.4215 40.8894C10.163 41.3017 9.90442 41.6128 9.75513 41.9672C8.40055 45.1863 7.09696 48.4234 5.71325 51.6316C5.2508 52.7023 5.49113 53.5305 6.34684 54.1816C8.84116 56.0732 11.3755 57.9215 13.888 59.7878C14.8603 60.5076 15.1297 60.0446 15.4392 59.0825C16.5644 55.5886 17.7369 52.1018 19.026 48.6658C19.4047 47.6566 19.0587 47.3709 18.3123 46.8537C15.8908 45.1682 13.5494 43.3634 11.1825 41.5983C10.9458 41.4211 10.7492 41.1968 10.4215 40.8894ZM97.2272 41.9564C100.996 40.6977 104.605 39.5041 108.188 38.2454C108.37 38.1803 108.534 37.3882 108.373 37.1458C106.229 33.8725 104.047 30.6245 101.804 27.4199C101.604 27.1306 100.861 26.9859 100.468 27.1016C97.8572 27.8503 95.2755 28.7112 92.6719 29.4816C91.9618 29.6914 91.6487 29.8433 92.0128 30.6824C93.4803 34.0425 94.8603 37.4424 96.3023 40.817C96.4589 41.1823 96.8157 41.4645 97.2272 41.96V41.9564ZM14.5872 61.3503C14.4961 61.2635 14.1102 60.8331 13.655 60.4931C11.0879 58.5942 8.4661 56.7604 5.94265 54.8001C5.22531 54.2394 4.90852 53.9718 4.71917 55.0677C4.11106 58.5653 3.46655 62.0592 2.93491 65.5677C2.85116 66.1247 3.10242 66.9927 3.51753 67.3255C6.24124 69.5065 9.04507 71.5899 11.8416 73.6804C12.4752 74.1543 12.7519 73.883 12.8575 73.1343C13.3855 69.3763 13.9536 65.6255 14.5872 61.3431V61.3503ZM26.1703 34.8817C25.868 34.661 25.584 34.4621 25.3073 34.2523C23.2353 32.7006 21.1197 31.2069 19.1206 29.5684C18.4288 29.0005 18.1411 29.1488 17.7369 29.7348C15.5885 32.8598 13.4511 35.9957 11.2808 39.1026C10.7346 39.8839 10.9641 40.477 11.6013 40.9653C13.8953 42.7195 16.2185 44.434 18.5198 46.1773C19.4447 46.8754 19.878 46.5933 20.3842 45.595C22.0446 42.3217 23.8289 39.1135 25.5694 35.8799C25.7406 35.5616 25.9372 35.2614 26.1666 34.878L26.1703 34.8817ZM77.6332 119.492C79.7488 119.308 81.8644 119.156 83.9764 118.935C91.5431 118.147 91.7106 118.02 95.0643 111.21C95.1189 111.101 95.1844 110.996 95.2208 110.884C95.3483 110.494 95.4648 110.099 95.585 109.709C95.1699 109.705 94.7511 109.662 94.3396 109.705C89.6387 110.182 84.9414 110.732 80.2331 111.137C76.6865 111.445 76.6828 111.362 75.7106 114.859C75.5649 115.38 75.4193 115.904 75.2627 116.422C74.6194 118.541 75.4096 119.565 77.6332 119.492ZM97.7625 108.812C102.398 107.17 106.669 105.665 110.926 104.131C111.17 104.045 111.396 103.733 111.509 103.477C112.834 100.446 114.141 97.4039 115.427 94.3584C115.529 94.1161 115.448 93.8014 115.452 93.5193C115.172 93.5772 114.884 93.6169 114.611 93.6965C110.267 94.995 105.919 96.279 101.59 97.6281C101.102 97.78 100.493 98.2177 100.341 98.6626C99.3246 101.621 98.4143 104.616 97.4967 107.607C97.4275 107.828 97.5986 108.121 97.7625 108.819V108.812ZM70.5399 30.5052C72.3205 30.5052 73.8353 30.4726 75.3501 30.516C76.3587 30.545 76.6173 30.1326 76.4061 29.2067C75.7834 26.447 75.2445 23.6692 74.5454 20.9312C74.4361 20.4971 73.6933 19.9618 73.2053 19.9257C70.5508 19.7195 67.8817 19.6869 65.2235 19.5206C64.3788 19.4663 64.0219 19.7448 63.869 20.5405C63.3592 23.199 62.8348 25.8574 62.2668 28.505C62.0228 29.6335 62.4379 30.0024 63.5485 30.0494C65.9664 30.1543 68.3842 30.3605 70.5363 30.5052H70.5399ZM60.4862 29.9011C60.8103 29.525 61.371 29.1633 61.4766 28.7003C62.1029 25.937 62.5981 23.1483 63.1917 20.3814C63.3665 19.5712 63.0897 19.3252 62.3287 19.2023C59.8162 18.7936 57.3219 18.28 54.8057 17.911C54.3323 17.8423 53.564 18.0846 53.32 18.4463C51.5176 21.0867 49.828 23.7994 48.0729 26.4723C47.534 27.2933 47.9636 27.4923 48.681 27.6297C52.4898 28.3567 56.295 29.0946 60.4862 29.9011ZM80.2841 30.3677C80.2877 30.4075 80.295 30.4473 80.2987 30.4835C83.2955 30.1182 86.2923 29.7348 89.2928 29.3984C90.2286 29.2935 90.4361 28.9607 89.93 28.1469C88.2186 25.3908 86.5727 22.5913 84.7848 19.8859C84.4898 19.4374 83.5904 19.148 82.9932 19.1806C80.7648 19.3035 78.5472 19.6508 76.3187 19.7846C75.2736 19.8461 75.1498 20.215 75.3647 21.112C75.9109 23.3871 76.366 25.6838 76.8831 27.9661C77.5167 30.762 76.7993 30.4509 79.9236 30.3822C80.0438 30.3822 80.1639 30.3713 80.2841 30.3677ZM12.5553 81.0915C12.5954 81.0915 12.6318 81.0915 12.6718 81.0915C12.6718 79.4639 12.6136 77.8363 12.6937 76.2123C12.741 75.2972 12.3805 74.8668 11.6377 74.364C8.98681 72.5809 6.42331 70.6712 3.8234 68.8084C3.53938 68.6059 3.25171 68.4033 2.96404 68.2008C2.86209 68.5914 2.65453 68.9857 2.67638 69.3691C2.85845 72.6749 3.05508 75.9772 3.31361 79.2794C3.35367 79.775 3.6122 80.4007 3.98362 80.7009C6.61266 82.8023 9.29268 84.8495 11.9763 86.8822C12.6172 87.3669 12.9413 87.1571 12.8794 86.3216C12.7447 84.5782 12.6573 82.8349 12.5517 81.0915H12.5553ZM28.7774 19.0395C28.457 19.2529 28.1293 19.4121 27.878 19.6508C25.1216 22.2622 22.3796 24.8953 19.6231 27.5031C18.9859 28.1035 19.0332 28.6642 19.6814 29.1488C21.6987 30.6679 23.716 32.1907 25.8025 33.6157C26.0829 33.8074 26.9604 33.6049 27.208 33.3011C29.5931 30.3496 31.8835 27.3259 34.2504 24.3564C34.7711 23.7053 34.6728 23.4594 34.0064 23C32.4188 21.9113 30.9222 20.6961 29.3892 19.5278C29.2035 19.3867 29.0287 19.2348 28.7811 19.0359L28.7774 19.0395ZM126.128 57.5272C125.076 53.9971 123.962 50.25 122.808 46.5173C122.786 46.4414 122.159 46.4016 121.977 46.5426C120.098 48.0364 118.223 49.5411 116.421 51.1217C116.071 51.4291 115.783 52.1308 115.874 52.5648C116.65 56.2758 117.502 59.9687 118.402 63.6543C118.471 63.9328 119.203 64.3488 119.381 64.2547C121.799 62.9454 123.995 61.354 125.499 58.9921C125.717 58.6485 125.83 58.2362 126.132 57.5309L126.128 57.5272ZM122.083 44.745C122.028 44.5388 122.017 44.4086 121.963 44.3074C120.091 40.8062 118.223 37.305 116.311 33.8255C116.253 33.7206 115.634 33.7604 115.43 33.9232C113.835 35.1963 112.259 36.4912 110.737 37.8475C110.449 38.1043 110.194 38.759 110.321 39.0664C111.825 42.6761 113.391 46.2605 115.001 49.8232C115.139 50.127 115.929 50.4959 116.057 50.3947C117.965 48.8575 119.822 47.2552 121.661 45.6312C121.905 45.4178 121.966 45.0018 122.087 44.745H122.083ZM17.4238 101.245C17.4529 101.668 17.3874 101.994 17.5075 102.225C18.8038 104.735 20.1002 107.246 21.4657 109.72C21.706 110.157 22.1939 110.573 22.6637 110.75C26.4434 112.193 30.2449 113.586 34.0465 114.964C34.3487 115.073 34.731 114.968 35.077 114.964C34.9932 114.624 34.924 114.277 34.8221 113.94C34.203 111.929 33.4966 109.944 32.9795 107.907C32.721 106.895 32.2404 106.475 31.2499 106.146C27.0041 104.743 22.8057 103.213 18.589 101.722C18.305 101.621 18.0282 101.491 17.4238 101.241V101.245ZM45.7096 14.9271C45.6878 14.9379 45.4402 14.9922 45.2763 15.1405C42.4288 17.6542 39.5849 20.1716 36.7593 22.7035C36.0492 23.34 36.6464 23.6294 37.1707 23.8175C40.0692 24.8628 42.9641 25.9081 45.8881 26.8738C46.2522 26.9931 46.9987 26.7653 47.2026 26.4578C49.0051 23.756 50.7383 21.0035 52.4534 18.2402C52.5918 18.0159 52.5153 17.3613 52.3842 17.3142C50.2395 16.504 48.0692 15.7553 45.7133 14.9271H45.7096ZM119.254 73.0873C119.214 73.0873 119.177 73.0909 119.137 73.0945C119.137 74.5376 119.174 75.9844 119.123 77.4276C119.093 78.3354 119.447 78.5995 120.135 78.0352C122.079 76.4402 124.024 74.8306 125.848 73.1017C126.354 72.6243 126.671 71.6984 126.664 70.9822C126.635 67.557 126.467 64.1317 126.329 60.7065C126.318 60.4461 126.132 60.1893 126.03 59.9325C125.808 60.1025 125.579 60.2689 125.36 60.4461C123.481 61.9435 121.653 63.5133 119.698 64.9058C118.951 65.4375 118.653 65.8896 118.747 66.7902C118.973 68.8844 119.09 70.9858 119.254 73.0873ZM91.0807 29.3948C94.5945 28.241 97.2891 27.3765 99.9582 26.4289C100.118 26.371 100.235 25.474 100.049 25.2787C97.4603 22.5949 94.8312 19.9474 92.1548 17.3504C91.8599 17.0647 91.1608 16.9706 90.7311 17.0828C89.158 17.4915 87.6287 18.0666 86.0592 18.5006C85.229 18.7285 85.1489 19.0106 85.5932 19.7231C87.3446 22.5262 89.0561 25.3547 90.742 28.194C90.9823 28.6027 91.0115 29.1344 91.0843 29.3948H91.0807ZM115.401 32.5053C115.139 32.093 114.931 31.6626 114.629 31.3081C112.452 28.7401 110.216 26.2191 108.086 23.6113C107.103 22.4105 106.487 22.4503 105.548 23.6836C104.914 24.5155 103.942 25.1376 103.024 25.6983C102.219 26.1902 102.092 26.5121 102.667 27.3367C104.801 30.3894 106.869 33.4891 108.898 36.6142C109.378 37.3556 109.775 37.7282 110.554 37.0844C111.938 35.9378 113.333 34.8021 114.684 33.6193C114.986 33.3553 115.139 32.9249 115.401 32.5089V32.5053ZM63.7197 125.876C64.5317 125.876 65.5003 125.869 66.4689 125.876C70.8021 125.916 70.762 125.902 72.5317 121.858C73.0633 120.639 72.8558 120.364 71.5267 120.339C67.2845 120.266 63.046 120.093 58.8075 119.905C54.0155 119.691 54.5472 118.44 55.1807 123.967C55.29 124.932 55.7306 125.316 56.6628 125.374C58.9605 125.515 61.2581 125.695 63.716 125.873L63.7197 125.876ZM110.263 105.679C109.87 105.679 109.575 105.614 109.32 105.69C105.438 106.819 101.56 107.944 97.6969 109.134C97.1981 109.289 96.6665 109.723 96.397 110.172C95.1444 112.291 93.9719 114.458 92.7848 116.617C92.6501 116.863 92.5882 117.149 92.4935 117.416C92.7848 117.416 93.0943 117.492 93.3601 117.409C96.6373 116.375 99.9145 115.337 103.174 114.248C103.661 114.085 104.157 113.723 104.477 113.322C106.269 111.061 108.006 108.757 109.761 106.464C109.906 106.276 110.023 106.063 110.267 105.679H110.263ZM37.3018 116.834C37.2909 116.935 37.1307 117.301 37.2508 117.492C38.2085 119.019 39.1807 120.541 40.2331 122.003C40.5207 122.4 41.0742 122.748 41.5622 122.842C45.5385 123.609 49.5258 124.328 53.5203 124.99C53.8007 125.037 54.4671 124.498 54.4561 124.256C54.3979 122.939 54.2486 121.616 53.9755 120.324C53.8954 119.945 53.3528 119.449 52.9559 119.384C47.8908 118.519 42.8111 117.72 37.3018 116.834ZM3.87074 82.8421C4.34411 84.5348 4.95221 86.3108 5.32363 88.1337C6.3869 93.3601 10.0319 96.3622 14.3905 98.7855C14.6746 98.9411 15.0278 98.97 15.3519 99.0568C15.3227 98.7711 15.3191 98.4781 15.2572 98.1996C14.5981 95.2626 13.9536 92.3257 13.2399 89.4032C13.1124 88.8824 12.7847 88.2892 12.3623 87.9818C9.78062 86.0974 7.14794 84.2817 4.52982 82.4515C4.36232 82.3321 4.14384 82.2851 3.9472 82.2055C3.929 82.3755 3.90715 82.5455 3.87074 82.8493V82.8421ZM44.7301 14.5147C44.6209 14.3267 44.5881 14.2001 44.508 14.135C43.361 13.256 42.2285 12.3554 41.0342 11.5416C40.8412 11.4078 40.3278 11.585 40.0474 11.755C36.752 13.7696 33.4748 15.8168 30.1903 17.8495C29.4839 18.2872 29.4729 18.7646 30.1138 19.2384C31.6104 20.3488 33.0888 21.4954 34.6582 22.4973C34.975 22.6998 35.8052 22.5045 36.1475 22.2043C38.8348 19.8714 41.4602 17.4698 44.1038 15.0862C44.3187 14.8945 44.5262 14.6956 44.7228 14.5111L44.7301 14.5147ZM75.1935 125.71C77.6551 125.406 80.2477 125.164 82.8075 124.733C83.7689 124.571 84.7848 124.129 85.5495 123.533C86.8239 122.538 87.9382 121.33 89.0816 120.176C89.3911 119.861 89.5622 119.413 89.7989 119.022C89.3255 119.033 88.8522 119.011 88.3824 119.055C84.4134 119.431 80.448 119.966 76.468 120.147C74.5563 120.234 73.442 120.755 72.9286 122.614C72.6337 123.681 72.0802 124.679 71.6396 125.71H75.1899H75.1935ZM126.474 75.4925C126.314 74.9464 126.223 74.6389 126.132 74.3315C125.903 74.5051 125.677 74.6823 125.448 74.8559C123.678 76.1978 121.897 77.5252 120.149 78.8924C119.712 79.236 119.133 79.6701 119.046 80.1439C118.394 83.6198 117.848 87.1173 117.273 90.6077C117.182 91.1538 117.164 91.6783 117.954 91.1972C120.557 89.6166 123.201 87.9384 124.177 84.9218C125.189 81.7968 125.753 78.5271 126.474 75.4961V75.4925ZM95.4248 13.7552C94.6783 14.4207 94.0338 15.1513 93.2436 15.6577C92.3442 16.2328 92.4716 16.58 93.1598 17.2347C95.3009 19.2746 97.4311 21.329 99.4594 23.4775C101.844 26.0057 102.026 26.06 104.619 23.633C104.881 23.3871 105.111 23.1013 105.369 22.8481C106.09 22.1464 106.036 21.5424 105.216 20.9348C102.212 18.7031 99.2263 16.4498 96.2295 14.2109C95.9928 14.0337 95.7124 13.9179 95.4248 13.7552ZM69.9099 19.1625C70.9696 19.1625 71.9382 19.1299 72.9068 19.1733C73.8426 19.2131 74.0865 18.8514 73.7989 17.9906C73.2126 16.2219 72.6992 14.4279 72.0693 12.6773C71.8653 12.1095 71.4393 11.245 71.0242 11.1872C69.4876 10.981 67.9108 11.0352 66.3487 11.0606C66.2176 11.0606 66.0501 11.5561 65.9773 11.8382C65.4821 13.7588 65.0196 15.6866 64.5135 17.6072C64.2841 18.4789 64.5972 18.8044 65.4712 18.8478C66.9823 18.9201 68.4898 19.0612 69.9099 19.1661V19.1625ZM62.7584 18.6633C63.0497 18.327 63.6032 17.9436 63.7816 17.4336C64.1967 16.2472 64.4261 14.9958 64.7392 13.7733C65.4639 10.9593 65.4712 10.9267 62.5508 10.3625C61.7898 10.2142 60.65 10.0406 60.2349 10.4421C58.3778 12.2397 56.7138 14.2398 54.9878 16.1677C54.467 16.75 54.6309 17.1298 55.3701 17.2708C57.686 17.7157 60.0055 18.1461 62.762 18.6633H62.7584ZM76.4134 19.1444C78.3906 18.9238 80.3678 18.6706 82.3487 18.4934C83.5431 18.3885 83.503 17.9544 82.8403 17.1949C81.6569 15.8349 80.3715 14.54 79.3483 13.0716C77.8444 10.9123 75.9254 10.3914 73.453 10.9267C72.5535 11.1221 72.3678 11.3137 72.681 12.1782C73.351 14.0373 73.9955 15.9145 74.4762 17.8315C74.7638 18.9853 75.3574 19.2891 76.4134 19.1408V19.1444ZM17.1725 23.7741C17.4311 24.8266 17.584 25.5861 17.8061 26.3276C18.1375 27.4308 18.5307 27.6297 19.4629 26.6604C21.5931 24.4432 23.7633 22.2441 26.1084 20.262C27.5467 19.0431 28.7192 18.034 27.4556 16.0772C27.3646 15.9362 27.35 15.7264 27.361 15.5492C27.4338 14.3447 27.0223 14.1567 26.1011 14.9271C23.5521 17.0538 20.9413 19.1082 18.4798 21.329C17.7952 21.9475 17.5476 23.0398 17.1725 23.7741ZM8.80838 35.2072C9.11425 36.2597 9.35458 37.2435 9.69323 38.1948C10.0027 39.0628 10.3414 39.193 10.9386 38.2779C12.6718 35.6087 14.3942 32.9177 16.3387 30.4039C17.4165 29.0114 18.2103 27.8684 17.005 26.1938C16.7174 25.7923 16.7647 25.1557 16.6482 24.6313C16.5863 24.3528 16.5025 24.0779 16.4261 23.7994C16.153 23.9766 15.7997 24.096 15.6177 24.3419C13.6441 26.9895 11.6377 29.619 9.77698 32.3426C9.23078 33.1419 9.12154 34.2306 8.80474 35.2072H8.80838ZM56.2877 8.43468C56.102 8.50701 55.8617 8.56488 55.6578 8.68786C52.8467 10.3553 50.0428 12.0263 47.239 13.7045C46.427 14.1928 46.802 14.5256 47.4284 14.7498C49.1361 15.3683 50.8403 16.0121 52.5772 16.5294C52.985 16.6523 53.7024 16.4751 53.9864 16.1677C55.7597 14.2688 57.4602 12.3048 59.1498 10.3336C59.2991 10.1563 59.3027 9.56316 59.219 9.52699C58.2759 9.12913 57.3 8.79999 56.2841 8.43829L56.2877 8.43468ZM84.8394 18.1714C86.5727 17.6434 88.1312 17.1659 89.6897 16.6885C90.5927 16.4136 90.7784 16.0447 89.8972 15.4479C87.4502 13.7877 84.9814 12.1565 82.5927 10.4168C81.3801 9.53422 80.2841 9.51975 78.9259 10.0623C77.9791 10.4421 77.9391 10.6048 78.5945 11.321C80.3824 13.2777 82.0902 15.3068 83.8453 17.2925C84.1366 17.6217 84.508 17.8857 84.8358 18.1714H84.8394ZM27.838 14.7064C28.1584 15.7662 28.3041 16.4787 28.6063 17.1153C28.701 17.3179 29.3273 17.5132 29.5166 17.3974C32.9723 15.3068 36.4133 13.1909 39.818 11.028C41.016 10.2648 39.5995 9.30997 39.8726 8.44914C39.4356 8.40212 38.9113 8.17787 38.5763 8.34064C35.4702 9.81272 32.3678 11.292 29.3382 12.9088C28.6609 13.2705 28.2713 14.1639 27.8343 14.71L27.838 14.7064ZM3.23714 47.9894C3.53573 48.9913 3.81976 50.0293 4.16568 51.0493C4.24579 51.2844 4.5371 51.4508 4.73009 51.6461C4.88303 51.411 5.07602 51.1904 5.17797 50.9336C6.20483 48.4234 7.09332 45.8518 8.26947 43.4176C9.22714 41.4355 10.3013 39.6054 8.65181 37.5003C8.44789 37.2399 8.47338 36.8095 8.3605 36.4659C8.28039 36.2163 8.1493 35.9848 8.04006 35.7425C7.858 35.9631 7.61038 36.1548 7.50843 36.4044C6.32135 39.3015 5.13064 42.1951 3.99818 45.1139C3.65226 46.0037 3.49932 46.9658 3.2335 47.9894H3.23714ZM122.837 89.1862C122.775 88.9837 122.727 88.8426 122.684 88.6979C122.534 88.7847 122.378 88.8607 122.24 88.9583C120.608 90.0941 118.977 91.2298 117.36 92.3836C117.076 92.5861 116.741 92.8248 116.617 93.125C115.368 96.185 114.159 99.263 112.947 102.337C112.885 102.493 112.892 102.674 112.87 102.844C113.074 102.818 113.307 102.844 113.478 102.753C113.854 102.558 114.192 102.305 114.549 102.081C117.404 100.283 118.82 97.3894 120.291 94.5573C121.205 92.7959 121.992 90.973 122.837 89.1826V89.1862ZM53.5421 6.52494C52.8102 6.72749 52.3915 6.81068 51.9946 6.95535C49.1034 8.01873 46.2012 9.05317 43.3391 10.1853C41.5476 10.8942 41.5585 11.1221 43.077 12.3012C45.3564 14.0698 45.3273 14.0301 47.7197 12.4893C49.7479 11.1835 51.8526 9.99719 53.9136 8.73488C54.3432 8.47084 54.7147 8.11277 55.1152 7.79448C54.5362 7.3279 53.9573 6.8577 53.5385 6.5177L53.5421 6.52494ZM102.107 115.854C101.364 115.951 101.098 115.959 100.85 116.027C98.0538 116.787 95.2536 117.532 92.4753 118.349C91.8781 118.527 91.27 118.888 90.8258 119.326C89.5804 120.549 88.4152 121.847 87.2281 123.127C87.0315 123.341 86.8749 123.59 86.7001 123.826C86.9769 123.811 87.2645 123.833 87.534 123.782C92.8576 122.744 97.3219 120.096 101.265 116.49C101.397 116.367 101.553 116.273 102.11 115.861L102.107 115.854ZM83.0806 7.8415C82.7238 8.14532 82.3305 8.47808 81.9336 8.81445C82.1885 9.09657 82.3997 9.43657 82.7056 9.64635C85.1344 11.3174 87.6141 12.9233 90.0174 14.6305C91.7907 15.8928 92.184 15.8964 93.7716 14.352C94.5108 13.6358 94.6273 13.1186 93.564 12.6303C90.3924 11.1618 87.239 9.66443 84.0747 8.18511C83.8053 8.05851 83.5103 7.98618 83.0806 7.83788V7.8415ZM95.5449 12.0118C95.8144 12.4856 95.971 13.1041 96.3715 13.408C99.4302 15.7481 102.536 18.0304 105.639 20.3163C105.85 20.4718 106.152 20.5007 106.411 20.5912C106.48 20.3091 106.691 19.9618 106.596 19.7557C106.039 18.544 105.704 16.9996 104.75 16.2472C102.351 14.3556 99.6596 12.8256 97.0816 11.1618C96.204 10.594 95.443 10.301 95.5486 12.0154L95.5449 12.0118ZM116.148 30.0639C115.947 29.2899 115.966 28.4363 115.554 27.9263C113.063 24.8411 110.482 21.8318 107.911 18.8116C107.82 18.7068 107.463 18.667 107.368 18.7502C107.103 18.9889 107.452 21.9584 107.732 22.2767C110.125 24.9966 112.51 27.7201 114.906 30.4401C115.135 30.7005 115.416 30.9211 115.674 31.1598C115.834 30.7909 115.995 30.4256 116.151 30.0639H116.148ZM62.4525 126.603C62.4525 126.567 62.4525 126.531 62.4525 126.495C60.7593 126.383 59.0661 126.238 57.3728 126.173C56.8376 126.151 56.2914 126.336 55.7524 126.426C56.0583 127.124 56.3023 127.858 56.7028 128.499C56.8339 128.708 57.3728 128.712 57.7297 128.73C60.3915 128.86 63.0606 129.117 65.7151 129.012C66.793 128.969 67.8562 128.162 68.8831 127.623C69.1161 127.5 69.1708 127.052 69.3055 126.752C69.0215 126.701 68.7374 126.611 68.4498 126.611C66.4507 126.6 64.4516 126.603 62.4525 126.603ZM0.666364 60.938C0.972236 62.1678 1.20892 63.2167 1.51115 64.2439C1.58034 64.4754 1.88257 64.6417 2.07556 64.837C2.14474 64.6092 2.23214 64.3849 2.27583 64.1535C2.77834 61.3756 3.0041 58.5147 3.85253 55.8454C4.51889 53.7584 4.02731 52.138 3.1097 50.4272C3.00774 50.2355 2.82567 50.0872 2.68002 49.9208C2.59627 50.1415 2.47246 50.3549 2.43241 50.5864C1.82795 54.0731 1.23805 57.5634 0.662723 60.938H0.666364ZM40.5826 8.26468C40.7793 9.6572 40.8812 10.4529 42.3159 9.8706C45.5676 8.55404 48.8849 7.40385 52.1584 6.14154C52.5044 6.00772 52.7301 5.57369 53.0105 5.2771C52.6355 5.09263 52.2131 4.68754 51.8963 4.75988C48.4734 5.5339 45.0578 6.34409 41.6678 7.24471C41.1762 7.37492 40.823 8.02596 40.5826 8.26468ZM54.2522 128.354C55.0752 128.484 55.5485 128.408 55.2281 127.352C54.9441 126.415 54.6236 125.858 53.4693 125.703C50.1776 125.261 46.9113 124.618 43.6341 124.071C43.2044 123.999 42.7602 124.032 42.3196 124.014C42.6473 124.346 42.9495 124.715 43.31 125.008C46.4925 127.627 50.5162 127.536 54.2522 128.35V128.354ZM122.928 41.8804C122.666 40.9906 122.516 40.0213 122.108 39.1713C120.885 36.6214 119.589 34.104 118.252 31.6083C117.928 31.0043 117.338 30.5413 116.872 30.0097C116.778 30.9428 116.661 31.8724 116.61 32.8055C116.599 33.0008 116.861 33.2034 116.978 33.4132C118.591 36.3067 120.197 39.2039 121.813 42.0938C122.006 42.4374 122.265 42.7412 122.491 43.0668C122.622 42.7051 122.753 42.347 122.924 41.8768L122.928 41.8804ZM95.0934 11.8961C95.1553 11.6899 95.2172 11.4837 95.2828 11.2776C94.7074 10.6555 94.2486 9.75124 93.5349 9.4655C90.5709 8.28276 87.534 7.27364 84.508 6.24643C84.1803 6.13431 83.7543 6.32239 83.3719 6.36941C83.6086 6.71302 83.7689 7.21215 84.0966 7.3713C87.4102 8.96998 90.742 10.5216 94.092 12.0444C94.3506 12.1601 94.7584 11.9539 95.0934 11.8961ZM71.0096 128.915C75.463 128.549 78.6091 127.808 81.1835 126.401C81.4348 126.263 81.6496 126.064 81.879 125.894C81.5695 125.855 81.2527 125.757 80.9468 125.779C77.8699 126.021 74.7893 126.26 71.716 126.56C71.2281 126.607 70.6892 126.857 70.3214 127.178C69.8444 127.594 69.5167 128.177 69.1234 128.687L71.006 128.915H71.0096ZM69.3565 10.3733C71.1698 10.4059 71.2281 10.3155 70.4452 8.62999C70.2449 8.19596 70.0483 7.75831 69.808 7.3496C69.3637 6.59366 68.8904 5.85581 68.4279 5.11072C68.0456 5.93176 67.5941 6.7311 67.2955 7.5847C66.3342 10.3155 66.356 10.3227 69.3565 10.3733ZM52.6318 2.81759C50.4725 3.17566 48.4188 3.39268 46.4343 3.88458C45.0615 4.22457 43.7761 4.92264 42.4689 5.50496C42.2613 5.599 42.1557 5.92453 42.0064 6.14154C42.2358 6.13431 42.4725 6.15963 42.6946 6.11261C45.9937 5.38199 49.2927 4.6586 52.5845 3.8882C52.9377 3.80501 53.229 3.4614 53.5494 3.24077C53.2254 3.09247 52.9049 2.94418 52.6318 2.81759ZM64.9286 10.1274C65.2782 9.80187 65.8025 9.52699 65.9846 9.10381C66.4361 8.0549 66.7383 6.9445 67.077 5.85219C67.1425 5.64602 67.0952 5.40731 67.0988 5.17944C66.8804 5.23731 66.6255 5.23731 66.4507 5.35667C65.5585 5.97878 64.6555 6.59366 63.8144 7.28088C63.0861 7.87767 62.4306 8.5685 61.7461 9.21593C62.711 9.49082 63.676 9.7657 64.925 10.1202L64.9286 10.1274ZM73.0815 10.5867C73.1799 10.4819 73.2818 10.377 73.3801 10.2721C73.6787 10.2504 73.9882 10.2612 74.2795 10.1997C74.7274 10.1057 75.1644 9.96464 75.605 9.84166C75.3246 9.4872 75.0988 9.06764 74.7529 8.79637C73.4784 7.7981 72.1712 6.83961 70.8567 5.88836C70.5799 5.68943 70.2377 5.5773 69.9281 5.42539C70.0228 5.79794 70.0702 6.18856 70.2231 6.53579C70.6091 7.41109 70.955 8.32255 71.4866 9.10742C71.8835 9.69337 72.5426 10.1021 73.0852 10.5904L73.0815 10.5867ZM126.824 54.6662C125.972 51.4074 125.072 47.9351 124.144 44.4665C124.042 44.0867 123.78 43.7467 123.59 43.3887C123.416 43.8263 123.201 44.2567 123.081 44.7088C123.026 44.915 123.139 45.1718 123.204 45.3961C124.162 48.6079 125.12 51.8197 126.092 55.0279C126.154 55.2305 126.358 55.3933 126.493 55.5705C126.565 55.3679 126.638 55.1654 126.82 54.6662H126.824ZM64.6446 5.11072C62.4889 5.92091 60.2386 6.75642 58.0028 7.6281C57.8972 7.66789 57.8863 8.23574 57.9008 8.23936C58.8621 8.43829 60.0565 9.04594 60.752 8.68786C62.2704 7.91022 63.5412 6.64791 64.9031 5.57007C65.0087 5.48688 65.0342 5.30603 65.0961 5.17221C64.9832 5.15774 64.8703 5.13965 64.6482 5.11072H64.6446ZM1.90442 71.749C1.94447 71.749 1.98088 71.749 2.02094 71.749C2.02094 70.4252 2.08648 69.0978 1.99545 67.7776C1.94811 67.094 1.65316 66.4177 1.42012 65.7558C1.35093 65.5604 1.11789 65.423 0.961312 65.2602C0.881203 65.4555 0.717342 65.6545 0.735549 65.8389C1.0305 69.3148 1.33637 72.7907 1.67137 76.2593C1.69322 76.5016 1.94811 76.7223 2.09012 76.9538C2.12654 76.7223 2.19936 76.4836 2.18844 76.2557C2.10469 74.7547 1.99909 73.25 1.90078 71.749H1.90442ZM77.3674 9.71869C77.7352 9.63911 77.9828 9.61741 78.2049 9.53061C78.6382 9.36061 79.0606 9.15806 79.4866 8.96636C79.1225 8.70233 78.7912 8.36957 78.387 8.18872C76.5736 7.38215 74.7384 6.61536 72.9068 5.84496C72.6992 5.75815 72.4625 5.73645 72.2404 5.68581C72.3424 5.85942 72.4006 6.08729 72.5463 6.20303C73.8644 7.25194 75.1899 8.29 76.5299 9.30636C76.7993 9.5089 77.1453 9.61379 77.3674 9.71869ZM42.6218 125.355C42.163 125.005 41.9372 124.889 41.7843 124.712C39.7379 122.31 36.5116 122.578 33.9663 121.312C33.879 121.268 33.7479 121.323 33.635 121.33C33.7151 121.456 33.7661 121.652 33.8826 121.706C36.4971 122.932 39.1152 124.144 41.737 125.345C41.8826 125.413 42.0902 125.352 42.6218 125.352V125.355ZM62.0046 4.78881C59.9108 5.19391 57.726 5.60624 55.5485 6.05112C55.3082 6.09814 55.1079 6.32962 54.8894 6.4743C55.046 6.6443 55.1662 6.89025 55.3628 6.96982C55.7852 7.14705 56.3132 7.45087 56.6737 7.33151C58.549 6.69855 60.3879 5.94985 62.2304 5.23008C62.3833 5.16859 62.4925 4.99859 62.62 4.88285C62.4489 4.85753 62.2777 4.83222 62.0046 4.79243V4.78881ZM75.3319 5.50135C75.026 5.55198 74.9131 5.57007 74.7966 5.59177C74.8986 5.7039 74.9787 5.86304 75.1061 5.92091C76.8503 6.72749 78.5872 7.55215 80.3606 8.29C80.6701 8.42021 81.1653 8.23936 81.5185 8.0766C81.635 8.02235 81.6314 7.35321 81.5695 7.33513C79.443 6.68047 77.3055 6.0692 75.3319 5.50135ZM54.4743 5.47603C56.5936 5.06732 58.4871 4.70562 60.3842 4.3367C60.4971 4.315 60.5991 4.25351 60.7083 4.2101C60.5881 4.15223 60.4643 4.03649 60.3478 4.04011C58.4179 4.145 56.488 4.23904 54.5654 4.40542C54.3178 4.42712 54.0993 4.81775 53.8699 5.03838C54.1211 5.21923 54.3687 5.40007 54.478 5.47603H54.4743ZM77.0287 4.76711C76.854 4.80328 76.5918 4.85392 76.3333 4.90817C76.5991 5.03838 76.854 5.21561 77.138 5.29518C78.5363 5.69666 79.9345 6.09452 81.3474 6.44175C81.686 6.52494 82.0756 6.40196 82.4434 6.37664C82.1667 6.10176 81.9263 5.65326 81.6023 5.58454C80.1239 5.26263 78.62 5.042 77.0324 4.77073L77.0287 4.76711ZM69.4293 1.27316C68.4789 1.19359 67.8271 1.10316 67.1717 1.09955C66.9459 1.09955 66.7201 1.30933 66.4907 1.42507C67.0697 1.89889 67.6487 2.3727 68.224 2.85014C68.5408 2.43781 68.854 2.02548 69.4256 1.27316H69.4293ZM77.2581 3.55544C77.2545 3.58799 77.2509 3.62055 77.2472 3.6531C76.8867 3.6531 76.5226 3.64225 76.1621 3.65671C75.9254 3.66756 75.6887 3.72182 75.452 3.75437C75.6705 3.82309 75.8817 3.92075 76.1038 3.9533C77.3565 4.13777 78.6091 4.31499 79.8653 4.47052C80.0583 4.49584 80.2659 4.39818 80.4662 4.3584C80.2914 4.21372 80.1312 3.98224 79.9345 3.94607C79.0497 3.78331 78.1539 3.67842 77.2618 3.55182L77.2581 3.55544ZM72.7575 1.71804C72.0073 1.59145 71.4794 1.38167 71.006 1.46124C70.5362 1.54081 70.1066 1.89889 69.6878 2.17739C69.5859 2.24611 69.6041 2.48845 69.564 2.64759C70.0192 2.59695 70.4743 2.57525 70.9222 2.48845C71.3337 2.40887 71.7379 2.27866 72.1384 2.14122C72.2768 2.0942 72.3897 1.97123 72.7575 1.71081V1.71804ZM55.5631 3.55906C57.067 3.45778 58.3269 3.37821 59.5904 3.28055C59.7579 3.26609 59.9181 3.16843 60.082 3.10694C59.9327 3.04907 59.7798 2.94418 59.6305 2.94056C58.3669 2.89716 57.1034 2.84291 55.8398 2.86822C55.5376 2.87546 55.239 3.17205 54.9368 3.33481C55.2172 3.43608 55.4975 3.53736 55.5667 3.56267L55.5631 3.55906ZM63.5267 1.05976C63.29 1.12486 63.0169 1.20082 62.7474 1.27678C62.9841 1.43592 63.2026 1.63485 63.4575 1.74698C63.7889 1.89165 64.1421 2.00739 64.4953 2.06165C64.965 2.13399 65.4457 2.13399 65.919 2.16654C65.4966 1.84825 65.1034 1.46847 64.6373 1.22614C64.3351 1.07061 63.9309 1.1104 63.5267 1.05614V1.05976ZM59.9036 1.57336C59.889 1.61677 59.8781 1.65655 59.8635 1.69996C59.7433 1.69272 59.6195 1.65655 59.5067 1.68187C59.1644 1.75421 58.8294 1.85187 58.4871 1.93867C58.793 2.0291 59.0952 2.13399 59.4047 2.20633C59.5758 2.24611 59.7615 2.23164 59.94 2.2425C60.7629 2.2859 61.5859 2.3293 62.4052 2.3727C61.5713 2.10867 60.7338 1.84102 59.8999 1.57698L59.9036 1.57336ZM54.3214 2.25696C54.7183 2.10867 55.2354 1.91335 55.7561 1.72166C55.5594 1.66017 55.3519 1.51911 55.1698 1.54805C54.4161 1.65655 53.6696 1.8157 52.9195 1.95676C53.3237 2.04356 53.7279 2.13037 54.3214 2.26058V2.25696ZM75.2008 2.97311C75.452 2.92248 75.9946 2.81397 76.5372 2.70546C75.9291 2.60419 75.3246 2.48121 74.7165 2.40887C74.4871 2.37994 74.2395 2.43419 74.0137 2.4993C73.8062 2.55717 73.6168 2.67291 73.4165 2.76333C73.6095 2.83205 73.7989 2.94056 73.9992 2.96588C74.2905 3.00205 74.5927 2.97311 75.2008 2.97311ZM127.064 58.5436C127.017 58.4496 126.966 58.3555 126.919 58.2579C126.875 58.3447 126.78 58.4459 126.795 58.5219C126.82 58.6413 126.919 58.7425 126.984 58.851C127.01 58.7498 127.035 58.6485 127.064 58.5436Z\",\n fill: \"currentColor\"\n })\n });\n};\n\nfunction StartScreen() {\n const {\n termsOfServiceUrl,\n privacyPolicyUrl,\n welcomeScreen: WelcomeScreen\n } = useContext(ModalConfigCtx);\n const locale = useTWLocale().connectWallet;\n if (WelcomeScreen) {\n if (typeof WelcomeScreen === \"function\") {\n return /*#__PURE__*/jsx(WelcomeScreen, {});\n }\n }\n const title = (typeof WelcomeScreen === \"object\" ? WelcomeScreen?.title : undefined) || locale.welcomeScreen.defaultTitle;\n const subtitle = (typeof WelcomeScreen === \"object\" ? WelcomeScreen?.subtitle : undefined) || locale.welcomeScreen.defaultSubtitle;\n const img = typeof WelcomeScreen === \"object\" ? WelcomeScreen?.img : undefined;\n const showTOS = termsOfServiceUrl || privacyPolicyUrl;\n return /*#__PURE__*/jsxs(Container, {\n fullHeight: true,\n animate: \"fadein\",\n flex: \"column\",\n children: [/*#__PURE__*/jsxs(Container, {\n expand: true,\n flex: \"column\",\n center: \"both\",\n style: {\n minHeight: \"300px\"\n },\n p: \"lg\",\n children: [/*#__PURE__*/jsx(Container, {\n flex: \"row\",\n center: \"x\",\n children: img ? /*#__PURE__*/jsx(Img, {\n src: img.src,\n width: img.width ? String(img.width) : undefined,\n height: img.height ? String(img.height) : undefined\n }) : /*#__PURE__*/jsx(GlobalContainer, {\n children: /*#__PURE__*/jsx(GlobeIcon, {\n size: \"150\"\n })\n })\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"xxl\"\n }), /*#__PURE__*/jsx(Text, {\n center: true,\n color: \"primaryText\",\n weight: 600,\n multiline: true,\n children: title\n }), /*#__PURE__*/jsx(Spacer, {\n y: \"md\"\n }), /*#__PURE__*/jsx(Text, {\n color: \"secondaryText\",\n multiline: true,\n style: {\n textAlign: \"center\"\n },\n children: subtitle\n })]\n }), /*#__PURE__*/jsxs(Container, {\n py: \"lg\",\n flex: \"column\",\n gap: \"lg\",\n children: [/*#__PURE__*/jsx(Link, {\n target: \"_blank\",\n center: true,\n href: \"https://blog.thirdweb.com/web3-wallet/\",\n children: locale.newToWallets\n }), showTOS && /*#__PURE__*/jsx(TOS, {\n termsOfServiceUrl: termsOfServiceUrl,\n privacyPolicyUrl: privacyPolicyUrl\n })]\n })]\n });\n}\nconst floatingAnimation = keyframes`\n from {\n transform: translateY(4px);\n }\n to {\n transform: translateY(-4px);\n }\n`;\nconst GlobalContainer = /* @__PURE__ */StyledDiv(() => {\n const theme = useCustomTheme();\n return {\n color: theme.colors.accentText,\n filter: `drop-shadow(0px 6px 10px ${theme.colors.accentText})`,\n animation: `${floatingAnimation} 2s ease infinite alternate`\n };\n});\n\nconst ConnectModalContent = props => {\n const {\n screen,\n setScreen,\n initialScreen,\n onHide,\n onShow,\n onClose\n } = props;\n const walletConfigs = useWallets();\n const connectionStatus = useConnectionStatus();\n const disconnect = useDisconnect();\n const modalConfig = useContext(ModalConfigCtx);\n const setModalConfig = useContext(SetModalConfigCtx);\n const title = modalConfig.title;\n const theme = modalConfig.theme;\n const modalSize = modalConfig.modalSize;\n const onConnect = modalConfig.onConnect;\n const isWideModal = modalSize === \"wide\";\n const {\n user\n } = useUser();\n const authConfig = useThirdwebAuthContext();\n const handleConnected = useCallback(() => {\n if (onConnect) {\n onConnect();\n }\n const requiresSignIn = modalConfig.auth?.loginOptional ? false : !!authConfig?.authUrl && !user?.address;\n onModalUnmount(() => {\n onShow();\n });\n\n // show sign in screen if required\n if (requiresSignIn) {\n setScreen(reservedScreens.signIn);\n }\n\n // close modal and reset screen\n else {\n onClose();\n }\n }, [modalConfig.auth?.loginOptional, authConfig?.authUrl, user?.address, setScreen, onShow, onClose, onConnect]);\n const handleBack = useCallback(() => {\n setScreen(initialScreen);\n if (connectionStatus === \"connecting\") {\n disconnect();\n }\n }, [setScreen, initialScreen, connectionStatus, disconnect]);\n const connect = useConnect();\n const address = useAddress();\n const {\n setConnectionStatus,\n setConnectedWallet,\n createWalletInstance,\n activeWallet\n } = useWalletContext();\n const walletList = /*#__PURE__*/jsx(WalletSelector, {\n title: title,\n walletConfigs: walletConfigs,\n onGetStarted: () => {\n setScreen(reservedScreens.getStarted);\n },\n selectWallet: setScreen,\n selectUIProps: {\n connect,\n setConnectionStatus,\n setConnectedWallet,\n createWalletInstance,\n connectionStatus\n }\n });\n const getStarted = /*#__PURE__*/jsx(StartScreen, {});\n const getWalletUI = walletConfig => {\n const ConnectUI = walletConfig.connectUI || HeadlessConnectUI;\n return /*#__PURE__*/jsx(ConnectUI, {\n supportedWallets: walletConfigs,\n theme: typeof theme === \"string\" ? theme : theme.type,\n goBack: handleBack,\n connected: handleConnected,\n isOpen: props.isOpen,\n show: onShow,\n hide: onHide,\n walletConfig: walletConfig,\n modalSize: modalConfig.modalSize,\n selectionData: modalConfig.data,\n connect: options => connect(walletConfig, options),\n setConnectionStatus: setConnectionStatus,\n setConnectedWallet: setConnectedWallet,\n createWalletInstance: () => createWalletInstance(walletConfig),\n connectionStatus: connectionStatus,\n connectedWallet: activeWallet,\n connectedWalletAddress: address,\n setSelectionData: data => {\n setModalConfig(config => ({\n ...config,\n data\n }));\n }\n });\n };\n const signatureScreen = /*#__PURE__*/jsx(SignatureScreen, {\n onDone: onClose,\n modalSize: modalSize,\n termsOfServiceUrl: modalConfig.termsOfServiceUrl,\n privacyPolicyUrl: modalConfig.privacyPolicyUrl\n });\n return /*#__PURE__*/jsx(ScreenContext.Provider, {\n value: screen,\n children: isWideModal ? /*#__PURE__*/jsxs(\"div\", {\n style: {\n height: \"100%\",\n display: \"grid\",\n gridTemplateColumns: \"300px 1fr\"\n },\n children: [/*#__PURE__*/jsxs(LeftContainer, {\n children: [\" \", walletList, \" \"]\n }), /*#__PURE__*/jsxs(Container, {\n flex: \"column\",\n scrollY: true,\n relative: true,\n children: [screen === reservedScreens.signIn && signatureScreen, screen === reservedScreens.main && /*#__PURE__*/jsx(Fragment, {\n children: getStarted\n }), screen === reservedScreens.getStarted && getStarted, typeof screen !== \"string\" && getWalletUI(screen)]\n })]\n }) : /*#__PURE__*/jsxs(Container, {\n flex: \"column\",\n scrollY: true,\n relative: true,\n style: {\n maxHeight: compactModalMaxHeight\n },\n children: [screen === reservedScreens.signIn && signatureScreen, screen === reservedScreens.main && walletList, screen === reservedScreens.getStarted && getStarted, typeof screen !== \"string\" && getWalletUI(screen)]\n })\n });\n};\nconst ConnectModal = () => {\n const {\n theme,\n modalSize\n } = useContext(ModalConfigCtx);\n const {\n screen,\n setScreen,\n initialScreen\n } = useScreen();\n const isWalletModalOpen = useIsWalletModalOpen();\n const setIsWalletModalOpen = useSetIsWalletModalOpen();\n const [hideModal, setHideModal] = useState(false);\n const connectionStatus = useConnectionStatus();\n const closeModal = useCallback(() => {\n setIsWalletModalOpen(false);\n onModalUnmount(() => {\n setScreen(initialScreen);\n });\n }, [initialScreen, setIsWalletModalOpen, setScreen]);\n const [prevConnectionStatus, setPrevConnectionStatus] = useState(connectionStatus);\n useEffect(() => {\n setPrevConnectionStatus(connectionStatus);\n }, [connectionStatus]);\n const disconnect = useDisconnect();\n const wallet = useWallet();\n const isWrapperConnected = !!wallet?.getPersonalWallet();\n const isWrapperScreen = typeof screen !== \"string\" && !!screen.personalWallets;\n\n // reopen the screen to complete wrapper wallet's next step after connecting a personal wallet\n useEffect(() => {\n if (!isWrapperConnected && isWrapperScreen && !isWalletModalOpen && connectionStatus === \"connected\" && prevConnectionStatus === \"connecting\") {\n setIsWalletModalOpen(true);\n }\n }, [isWalletModalOpen, connectionStatus, setIsWalletModalOpen, isWrapperScreen, isWrapperConnected, prevConnectionStatus]);\n useEffect(() => {\n if (!isWalletModalOpen) {\n onModalUnmount(() => {\n setHideModal(false);\n });\n }\n }, [isWalletModalOpen, setIsWalletModalOpen, screen]);\n const onHide = useCallback(() => setHideModal(true), []);\n const onShow = useCallback(() => setHideModal(false), []);\n\n // if wallet is suddenly disconnected when showing the sign in screen, close the modal and reset the screen\n useEffect(() => {\n if (isWalletModalOpen && screen === reservedScreens.signIn && !wallet) {\n setScreen(initialScreen);\n setIsWalletModalOpen(false);\n }\n }, [initialScreen, isWalletModalOpen, screen, setIsWalletModalOpen, setScreen, wallet]);\n return /*#__PURE__*/jsx(CustomThemeProvider, {\n theme: theme,\n children: /*#__PURE__*/jsx(Modal, {\n hide: hideModal,\n size: modalSize,\n open: isWalletModalOpen,\n setOpen: value => {\n if (hideModal) {\n return;\n }\n setIsWalletModalOpen(value);\n if (!value) {\n onModalUnmount(() => {\n if (connectionStatus === \"connecting\") {\n disconnect();\n }\n setScreen(initialScreen);\n });\n }\n },\n children: /*#__PURE__*/jsx(ConnectModalContent, {\n initialScreen: initialScreen,\n screen: screen,\n setScreen: setScreen,\n onHide: onHide,\n onShow: onShow,\n isOpen: isWalletModalOpen,\n onClose: closeModal\n })\n })\n });\n};\nconst LeftContainer = /* @__PURE__ */StyledDiv(() => {\n const theme = useCustomTheme();\n return {\n display: \"flex\",\n flexDirection: \"column\",\n overflowY: \"auto\",\n ...noScrollBar,\n position: \"relative\",\n borderRight: `1px solid ${theme.colors.separatorLine}`\n };\n});\n\n/**\n * @internal\n */\nfunction useSignInRequired(loginOptional) {\n const connectionStatus = useConnectionStatus();\n const {\n user\n } = useUser();\n const authConfig = useThirdwebAuthContext();\n if (loginOptional === true) {\n return false;\n }\n return !!authConfig?.authUrl && !user?.address && connectionStatus === \"connected\";\n}\n\n/**\n * Returns `true` if the `` should be rendered.\n * It returns true if either one of the following conditions are met:\n * - the wallet is not connected\n * - the wallet is connected but the user is not signed in and `auth` is required ( loginOptional is not set to false )\n *\n * @example\n * ```tsx\n * function Example() {\n * const loginOptional = false;\n * const showConnectEmbed = useShowConnectEmbed(loginOptional);\n *\n * if (!showConnectEmbed) {\n * return
Wallet is connected
\n * }\n *\n * return (\n *
\n * \n *
\n * );\n * }\n *```\n *\n * @param loginOptional -\n * Specify whether the `` you want to render has auth enabled or not.\n * If not specified, it is assumed to be `false` ( login is required )\n *\n */\nfunction useShowConnectEmbed(loginOptional) {\n const connectionStatus = useConnectionStatus();\n const signInRequired = useSignInRequired(loginOptional);\n return connectionStatus !== \"connected\" || signInRequired;\n}\n\n/**\n * A component that allows the user to connect their wallet.\n *\n * it renders the same UI as the [`ConnectWallet`](https://portal.thirdweb.com/react/v4/components/ConnectWallet) component's modal - but directly on the page instead of being in a modal.\n *\n * It only renders UI if either one of the following conditions are met:\n * - wallet is not connected\n * - wallet is connected but the user is not signed in and `auth` is required ( loginOptional is not set to false )\n *\n * `ConnectEmbed` uses the [`useShowConnectEmbed`](https://portal.thirdweb.com/react/v4/useShowConnectEmbed) hook internally to determine if it should be rendered or not. You can also use this hook to determine if you should render something else instead of `ConnectEmbed`\n *\n * @example\n * ```tsx\n * function Example() {\n * const loginOptional = false;\n * const showConnectEmbed = useShowConnectEmbed(loginOptional);\n *\n * if (!showConnectEmbed) {\n * return
Wallet is connected
\n * }\n *\n * return (\n *
\n * \n *
\n * );\n * }\n * ```\n *\n * @param props -\n * The props for the component.\n *\n * ### className\n * Class name to be added to the root element of ConnectEmbed\n *\n * ### theme\n * theme for the ConnectEmbed\n *\n * If a theme is set on the [`ThirdWebProvider`](https://portal.thirdweb.com/react/v4/ThirdwebProvider) component, it will be used as the default theme for all thirdweb components, else the default will be \"dark\"\n *\n * theme can be set to either \"dark\" or \"light\" or a custom theme object.\n *\n * You can also import `lightTheme` or `darkTheme` functions from `@thirdweb-dev/react` to use the default themes as base and overrides parts of it.\n *\n * ```ts\n * import { lightTheme } from \"@thirdweb-dev/react\";\n * const customTheme = lightTheme({\n * colors: {\n * modalBg: 'red'\n * }\n * })\n * ```\n *\n * ### style\n * CSS styles to be applied to the root element of ConnectEmbed\n *\n * ### termsOfServiceUrl\n * If provided, Embed will show a Terms of Service message at the bottom with below link\n *\n * ### privacyPolicyUrl\n * If provided, Embed will show a Privacy Policy message at the bottom with below link\n *\n * ### auth\n * Enforce that users must sign in with their wallet using [auth](https://portal.thirdweb.com/auth) after connecting their wallet.\n *\n * This requires the `authConfig` prop to be set on the [`ThirdWebProvider`](https://portal.thirdweb.com/react/v4/ThirdwebProvider) component.\n *\n * The `auth` prop accepts an object with the following properties:\n * - `loginOptional` - specify whether signing in is optional or not. By default it is `false` ( sign in is required ) if `authConfig` is set on [`ThirdWebProvider`](https://portal.thirdweb.com/react/v4/ThirdwebProvider)\n * - `onLogin` - Callback to be called after user signs in with their wallet\n * - `onLogout` - Callback to be called after user signs out\n *\n * ### onConnect\n * Callback to be called on successful connection of wallet\n *\n * ```tsx\n * {\n * console.log(\"wallet connected\")\n * }}\n * />\n * ```\n *\n * Note that this does not include the sign in, If you want to call a callback after user connects AND signs in with their wallet, use `auth.onLogin` prop instead\n *\n * ```tsx\n * {\n * console.log(\"wallet connected and signed in\")\n * }\n * }}\n * />\n * ```\n *\n */\nfunction ConnectEmbed(props) {\n const loginOptional = props.auth?.loginOptional;\n const requiresSignIn = useSignInRequired(loginOptional);\n const show = useShowConnectEmbed(loginOptional);\n const {\n screen,\n setScreen,\n initialScreen\n } = useScreen();\n\n // if showing main screen but signIn is required, switch to signIn screen\n useEffect(() => {\n if (requiresSignIn && screen === reservedScreens.main) {\n setScreen(reservedScreens.signIn);\n }\n }, [requiresSignIn, screen, setScreen]);\n if (show) {\n return /*#__PURE__*/jsx(ConnectEmbedContent, {\n ...props,\n onClose: () => {\n setScreen(initialScreen);\n },\n screen: screen,\n setScreen: setScreen,\n initialScreen: initialScreen,\n onConnect: props.onConnect\n });\n }\n return /*#__PURE__*/jsx(\"div\", {});\n}\nconst ConnectEmbedContent = props => {\n const modalSize = \"compact\";\n const connectionStatus = useConnectionStatus();\n const {\n isAutoConnecting\n } = useWalletContext();\n const contextTheme = useCustomTheme();\n let content = null;\n\n // show spinner on page load and during auto connecting a wallet\n if (isAutoConnecting || connectionStatus === \"unknown\") {\n content = /*#__PURE__*/jsx(Container, {\n flex: \"column\",\n center: \"both\",\n style: {\n minHeight: \"300px\"\n },\n children: /*#__PURE__*/jsx(Spinner, {\n size: \"xl\",\n color: \"accentText\"\n })\n });\n } else {\n content = /*#__PURE__*/jsx(ConnectModalContent, {\n initialScreen: props.initialScreen,\n screen: props.screen,\n setScreen: props.setScreen,\n isOpen: true,\n onClose: props.onClose,\n onHide: () => {\n // no op\n },\n onShow: () => {\n // no op\n }\n });\n }\n const walletUIStatesProps = {\n theme: props.theme || contextTheme || defaultTheme,\n modalSize: modalSize,\n title: undefined,\n termsOfServiceUrl: props.termsOfServiceUrl,\n privacyPolicyUrl: props.privacyPolicyUrl,\n isEmbed: true,\n auth: props.auth,\n onConnect: props.onConnect\n };\n return /*#__PURE__*/jsx(WalletUIStatesProvider, {\n ...walletUIStatesProps,\n children: /*#__PURE__*/jsx(CustomThemeProvider, {\n theme: walletUIStatesProps.theme,\n children: /*#__PURE__*/jsxs(EmbedContainer, {\n className: props.className,\n style: {\n height: \"auto\",\n maxWidth: modalMaxWidthCompact,\n ...props.style\n },\n children: [/*#__PURE__*/jsxs(DynamicHeight, {\n children: [\" \", content, \" \"]\n }), /*#__PURE__*/jsx(SyncedWalletUIStates, {\n ...walletUIStatesProps\n })]\n })\n })\n });\n};\nfunction SyncedWalletUIStates(props) {\n const setModalConfig = useContext(SetModalConfigCtx);\n const locale = useTWLocale();\n\n // update modalConfig on props change\n useEffect(() => {\n setModalConfig(c => ({\n ...c,\n title: props.title || locale.connectWallet.defaultModalTitle,\n theme: props.theme || \"dark\",\n modalSize: (isMobile() ? \"compact\" : props.modalSize) || \"wide\",\n termsOfServiceUrl: props.termsOfServiceUrl,\n privacyPolicyUrl: props.privacyPolicyUrl,\n welcomeScreen: props.welcomeScreen,\n titleIconUrl: props.titleIconUrl\n }));\n }, [props.title, props.theme, props.modalSize, props.termsOfServiceUrl, props.privacyPolicyUrl, props.welcomeScreen, props.titleIconUrl, setModalConfig, locale.connectWallet.defaultModalTitle]);\n return /*#__PURE__*/jsx(WalletUIStatesProvider, {\n ...props\n });\n}\nconst EmbedContainer = /* @__PURE__ */StyledDiv(() => {\n const theme = useCustomTheme();\n return {\n color: theme.colors.primaryText,\n background: theme.colors.modalBg,\n width: \"100%\",\n boxSizing: \"border-box\",\n position: \"relative\",\n lineHeight: \"normal\",\n borderRadius: radius.xl,\n border: `1px solid ${theme.colors.borderColor}`,\n overflow: \"hidden\",\n fontFamily: theme.fontFamily,\n \"& *::selection\": {\n backgroundColor: theme.colors.primaryText,\n color: theme.colors.modalBg\n }\n };\n});\n\n/**\n * @internal\n */\nconst ConnectModalInline = props => {\n const {\n screen,\n setScreen,\n initialScreen\n } = useScreen();\n const walletConfigs = useWallets();\n const modalSize = isMobile() || walletConfigs.length === 1 ? \"compact\" : props.modalSize;\n const ctxTheme = useCustomTheme();\n const content = /*#__PURE__*/jsxs(Fragment, {\n children: [/*#__PURE__*/jsx(ConnectModalContent, {\n initialScreen: initialScreen,\n screen: screen,\n setScreen: setScreen,\n onHide: () => {\n // no op\n },\n isOpen: true,\n onClose: () => {\n // no op\n },\n onShow: () => {\n // no op\n }\n }), /*#__PURE__*/jsx(CrossContainer, {\n children: /*#__PURE__*/jsx(IconButton, {\n type: \"button\",\n \"aria-label\": \"Close\",\n children: /*#__PURE__*/jsx(Cross2Icon, {\n width: iconSize.md,\n height: iconSize.md,\n style: {\n color: \"inherit\"\n }\n })\n })\n })]\n });\n const walletUIStatesProps = {\n theme: props.theme || ctxTheme,\n modalSize: modalSize,\n title: props.modalTitle,\n termsOfServiceUrl: props.termsOfServiceUrl,\n privacyPolicyUrl: props.privacyPolicyUrl,\n welcomeScreen: props.welcomeScreen,\n titleIconUrl: props.modalTitleIconUrl\n };\n return /*#__PURE__*/jsx(WalletUIStatesProvider, {\n ...walletUIStatesProps,\n children: /*#__PURE__*/jsx(CustomThemeProvider, {\n theme: walletUIStatesProps.theme,\n children: /*#__PURE__*/jsxs(ConnectModalInlineContainer, {\n className: props.className,\n style: {\n height: modalSize === \"compact\" ? \"auto\" : wideModalMaxHeight,\n maxWidth: modalSize === \"compact\" ? modalMaxWidthCompact : modalMaxWidthWide,\n ...props.style\n },\n children: [modalSize === \"compact\" ? /*#__PURE__*/jsxs(DynamicHeight, {\n children: [\" \", content, \" \"]\n }) : content, /*#__PURE__*/jsx(SyncedWalletUIStates, {\n ...walletUIStatesProps\n })]\n })\n })\n });\n};\nconst ConnectModalInlineContainer = /* @__PURE__ */StyledDiv(() => {\n const theme = useCustomTheme();\n return {\n background: theme.colors.modalBg,\n color: theme.colors.primaryText,\n transition: \"background 0.2s ease\",\n borderRadius: radius.xl,\n width: \"100%\",\n boxSizing: \"border-box\",\n boxShadow: shadow.lg,\n position: \"relative\",\n border: `1px solid ${theme.colors.borderColor}`,\n lineHeight: \"normal\",\n overflow: \"hidden\",\n fontFamily: theme.fontFamily,\n \"& *::selection\": {\n backgroundColor: theme.colors.primaryText,\n color: theme.colors.modalBg\n }\n };\n});\n\nlet video;\nfunction supportsVideoType(mimeType) {\n if (!mimeType || !mimeType.startsWith(\"video/\")) {\n return \"\";\n }\n if (!video) {\n video = document.createElement(\"video\");\n }\n return video.canPlayType(mimeType);\n}\nfunction shouldRenderVideoTag(mimeType) {\n return !!supportsVideoType(mimeType);\n}\nlet audio;\nfunction supportsAudioType(mimeType) {\n if (!mimeType || !mimeType.startsWith(\"audio/\")) {\n return \"\";\n }\n if (!audio) {\n audio = document.createElement(\"audio\");\n }\n return audio.canPlayType(mimeType);\n}\nfunction shouldRenderAudioTag(mimeType) {\n return !!supportsAudioType(mimeType);\n}\n\nfunction mergeRefs(refs) {\n return value => {\n refs.forEach(ref => {\n if (typeof ref === \"function\") {\n ref(value);\n // eslint-disable-next-line eqeqeq\n } else if (ref != null) {\n ref.current = value;\n }\n });\n };\n}\n\nconst CarbonDocumentUnknown = props => {\n return /*#__PURE__*/jsxs(\"svg\", {\n width: \"1em\",\n height: \"1em\",\n viewBox: \"0 0 32 32\",\n ...props,\n children: [/*#__PURE__*/jsx(\"circle\", {\n cx: \"9\",\n cy: \"28.5\",\n r: \"1.5\",\n fill: \"currentColor\"\n }), /*#__PURE__*/jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M10 25H8v-4h2a2 2 0 0 0 0-4H8a2.002 2.002 0 0 0-2 2v.5H4V19a4.005 4.005 0 0 1 4-4h2a4 4 0 0 1 0 8Z\"\n }), /*#__PURE__*/jsx(\"path\", {\n fill: \"currentColor\",\n d: \"m27.7 9.3l-7-7A.908.908 0 0 0 20 2H10a2.006 2.006 0 0 0-2 2v8h2V4h8v6a2.006 2.006 0 0 0 2 2h6v16H14v2h12a2.006 2.006 0 0 0 2-2V10a.91.91 0 0 0-.3-.7ZM20 10V4.4l5.6 5.6Z\"\n })]\n });\n};\nconst CarbonDocumentAudio = props => {\n return /*#__PURE__*/jsxs(\"svg\", {\n width: \"1em\",\n height: \"1em\",\n viewBox: \"0 0 32 32\",\n ...props,\n children: [/*#__PURE__*/jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M29 31a.999.999 0 0 1-.625-.22L23.65 27H20a1 1 0 0 1-1-1v-5a1 1 0 0 1 1-1h3.65l4.726-3.78A1 1 0 0 1 30 17v13a1 1 0 0 1-1 1Zm-8-6h3a1 1 0 0 1 .625.22L28 27.92v-8.84l-3.376 2.7A1 1 0 0 1 24 22h-3Z\"\n }), /*#__PURE__*/jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M16 28H8V4h8v6a2.006 2.006 0 0 0 2 2h6v3h2v-5a.91.91 0 0 0-.3-.7l-7-7A.909.909 0 0 0 18 2H8a2.006 2.006 0 0 0-2 2v24a2.006 2.006 0 0 0 2 2h8Zm2-23.6l5.6 5.6H18Z\"\n })]\n });\n};\nconst CarbonPauseFilled = props => {\n return /*#__PURE__*/jsx(\"svg\", {\n width: \"1em\",\n height: \"1em\",\n viewBox: \"0 0 32 32\",\n ...props,\n children: /*#__PURE__*/jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M12 6h-2a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2zm10 0h-2a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2z\"\n })\n });\n};\nconst CarbonPlayFilledAlt = props => {\n return /*#__PURE__*/jsx(\"svg\", {\n width: \"1em\",\n height: \"1em\",\n viewBox: \"0 0 32 32\",\n ...props,\n children: /*#__PURE__*/jsx(\"path\", {\n fill: \"currentColor\",\n d: \"M7 28a1 1 0 0 1-1-1V5a1 1 0 0 1 1.482-.876l20 11a1 1 0 0 1 0 1.752l-20 11A1 1 0 0 1 7 28Z\"\n })\n });\n};\n\nconst ModelViewer = /* @__PURE__ */lazy(() => import('./ModelViewer-ad6f3167.browser.esm.js'));\nconst PlayButton = _ref => {\n let {\n onClick,\n isPlaying\n } = _ref;\n const [isHovering, setIsHovering] = useState(false);\n const onMouseEnter = () => setIsHovering(true);\n const onMouseLeave = () => setIsHovering(false);\n const onMouseDown = () => setIsHovering(false);\n const onMouseUp = () => setIsHovering(true);\n return /*#__PURE__*/jsx(\"button\", {\n style: {\n position: \"absolute\",\n bottom: 0,\n right: 0,\n transform: \"translate(-25%, -25%)\",\n maxWidth: \"32px\",\n width: \"8%\",\n minWidth: \"24px\",\n aspectRatio: \"1\",\n zIndex: 3,\n backgroundColor: \"#fff\",\n color: \"rgb(138, 147, 155)\",\n display: \"grid\",\n placeItems: \"center\",\n borderRadius: \"50%\",\n border: \"1px solid rgb(229, 232, 235)\",\n cursor: \"pointer\",\n ...(isHovering ? {\n color: \"rgb(53, 56, 64)\",\n boxShadow: \"rgb(4 17 29 / 25%) 0px 0px 8px 0px\"\n } : {})\n },\n onClick: onClick,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onMouseDown: onMouseDown,\n onMouseUp: onMouseUp,\n children: !isPlaying ? /*#__PURE__*/jsx(CarbonPlayFilledAlt, {\n style: {\n width: \"66%\",\n height: \"66%\"\n }\n }) : /*#__PURE__*/jsx(CarbonPauseFilled, {\n style: {\n width: \"66%\",\n height: \"66%\"\n }\n })\n });\n};\nconst VideoPlayer = /* @__PURE__ */(() => /*#__PURE__*/React.forwardRef(function Video_Player(_ref2, ref) {\n let {\n src,\n alt,\n poster,\n requireInteraction,\n style,\n width,\n height,\n controls,\n ...restProps\n } = _ref2;\n const videoRef = useRef(null);\n const [playing, setPlaying] = useState(!requireInteraction);\n const [muted, setMuted] = useState(true);\n useEffect(() => {\n if (videoRef.current) {\n if (playing) {\n try {\n videoRef.current.play();\n } catch (err) {\n console.error(\"error playing video\", err);\n }\n } else {\n try {\n videoRef.current.pause();\n videoRef.current.currentTime = 0;\n } catch (err) {\n console.error(\"error pausing video\", err);\n }\n }\n }\n }, [playing]);\n return /*#__PURE__*/jsxs(\"div\", {\n style: {\n position: \"relative\",\n ...style\n },\n ...restProps,\n children: [/*#__PURE__*/jsx(\"video\", {\n ref: mergeRefs([videoRef, ref]),\n src: src ?? undefined,\n poster: poster ?? undefined,\n loop: true,\n playsInline: true,\n controlsList: \"nodownload\",\n muted: muted,\n preload: poster ? \"metadata\" : \"auto\",\n onCanPlay: () => {\n if (playing) {\n videoRef.current?.play();\n }\n },\n width: width,\n height: height,\n controls: controls,\n style: {\n height: \"100%\",\n width: \"100%\",\n objectFit: \"contain\",\n zIndex: 1,\n transition: \"opacity .5s\",\n opacity: !poster ? 1 : playing ? 1 : 0\n }\n }), poster && /*#__PURE__*/jsx(\"img\", {\n src: poster,\n style: {\n objectFit: \"contain\",\n pointerEvents: \"none\",\n position: \"absolute\",\n width: \"100%\",\n height: \"100%\",\n zIndex: 2,\n transition: \"opacity .5s\",\n opacity: playing ? 0 : 1,\n top: 0,\n left: 0,\n right: 0,\n bottom: 0\n },\n alt: alt\n }), /*#__PURE__*/jsx(PlayButton, {\n onClick: () => {\n setPlaying(prev => !prev);\n setMuted(false);\n },\n isPlaying: playing\n })]\n });\n}))();\nconst AudioPlayer = /* @__PURE__ */(() => /*#__PURE__*/React.forwardRef(function Audio_Player(_ref3, ref) {\n let {\n src,\n alt,\n poster,\n style,\n height,\n width,\n ...restProps\n } = _ref3;\n const audioRef = useRef(null);\n const [playing, setPlaying] = useState(false);\n const [muted, setMuted] = useState(true);\n useEffect(() => {\n if (audioRef.current) {\n if (playing) {\n audioRef.current.play();\n } else {\n audioRef.current.pause();\n audioRef.current.currentTime = 0;\n }\n }\n }, [playing]);\n return /*#__PURE__*/jsxs(\"div\", {\n style: {\n position: \"relative\",\n ...style\n },\n ...restProps,\n children: [poster ? /*#__PURE__*/jsx(\"img\", {\n height: height,\n width: width,\n src: poster,\n style: {\n height: \"100%\",\n width: \"100%\",\n pointerEvents: \"none\",\n objectFit: \"contain\"\n },\n alt: alt\n }) : /*#__PURE__*/jsx(\"div\", {\n style: {\n width: \"100%\",\n height: \"100%\",\n display: \"grid\",\n placeItems: \"center\",\n pointerEvents: \"none\",\n backgroundColor: \"#fff\",\n color: \"rgb(138, 147, 155)\"\n },\n children: /*#__PURE__*/jsx(CarbonDocumentAudio, {\n style: {\n height: \"64px\",\n width: \"64px\"\n }\n })\n }), /*#__PURE__*/jsx(PlayButton, {\n onClick: () => {\n setPlaying(prev => !prev);\n setMuted(false);\n },\n isPlaying: playing\n }), /*#__PURE__*/jsx(\"audio\", {\n ref: mergeRefs([audioRef, ref]),\n src: src ?? undefined,\n loop: true,\n playsInline: true,\n muted: muted,\n preload: \"none\",\n controlsList: \"nodownload\",\n style: {\n position: \"absolute\",\n opacity: 0,\n pointerEvents: \"none\",\n zIndex: -1,\n visibility: \"hidden\"\n }\n })]\n });\n}))();\nconst IframePlayer = /* @__PURE__ */(() => /*#__PURE__*/React.forwardRef(function Iframe_Player(_ref4, ref) {\n let {\n src,\n alt,\n poster,\n requireInteraction,\n style,\n ...restProps\n } = _ref4;\n const [playing, setPlaying] = useState(!requireInteraction);\n return /*#__PURE__*/jsxs(\"div\", {\n style: {\n position: \"relative\",\n ...style\n },\n ...restProps,\n children: [/*#__PURE__*/jsx(\"iframe\", {\n src: playing ? src ?? undefined : undefined,\n ref: ref,\n style: {\n objectFit: \"contain\",\n zIndex: 1,\n height: \"100%\",\n width: \"100%\",\n transition: \"opacity .5s\",\n opacity: !poster ? 1 : playing ? 1 : 0\n },\n sandbox: \"allow-scripts\",\n allow: \"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\"\n }), poster && /*#__PURE__*/jsx(\"img\", {\n src: poster,\n style: {\n objectFit: \"contain\",\n pointerEvents: \"none\",\n position: \"absolute\",\n width: \"100%\",\n height: \"100%\",\n zIndex: 2,\n transition: \"opacity .5s\",\n opacity: playing ? 0 : 1,\n top: 0,\n left: 0,\n right: 0,\n bottom: 0\n },\n alt: alt\n }), /*#__PURE__*/jsx(PlayButton, {\n onClick: () => {\n setPlaying(prev => !prev);\n },\n isPlaying: playing\n })]\n });\n}))();\nconst LinkPlayer = /* @__PURE__ */(() => /*#__PURE__*/React.forwardRef(function Link_Player(_ref5, ref) {\n let {\n src,\n alt,\n style,\n ...restProps\n } = _ref5;\n return /*#__PURE__*/jsx(\"div\", {\n style: {\n position: \"relative\",\n ...style\n },\n ...restProps,\n children: /*#__PURE__*/jsx(\"div\", {\n style: {\n width: \"100%\",\n height: \"100%\",\n display: \"grid\",\n placeItems: \"center\",\n backgroundColor: \"#fff\",\n color: \"rgb(138, 147, 155)\"\n },\n children: /*#__PURE__*/jsxs(\"div\", {\n style: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"8px\",\n alignItems: \"center\",\n flexWrap: \"nowrap\"\n },\n children: [/*#__PURE__*/jsx(CarbonDocumentUnknown, {\n style: {\n maxWidth: \"128px\",\n minWidth: \"48px\",\n width: \"50%\",\n aspectRatio: \"1\"\n }\n }), /*#__PURE__*/jsx(\"a\", {\n rel: \"noopener noreferrer\",\n style: {\n textDecoration: \"underline\",\n color: \"rgb(138, 147, 155)\"\n },\n href: src ?? undefined,\n target: \"_blank\",\n ref: ref,\n children: alt || \"File\"\n })]\n })\n })\n });\n}))();\n\n/**\n * Component that renders any asset stored on IPFS (or anywhere else), given the IPFS URI / URL.\n *\n * Under the hood, the asset is fetched from IPFS through the thirdweb IPFS gateway (or just\n * a regular fetch if the `src` is not an IPFS URI).\n * The [mime type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the\n * asset is determined and the appropriate component is rendered on the UI.\n *\n * For example, if the URI points to an image, the `img` tag will be used. If it is a video, the `video` tag will be used, etc.\n * The component currently supports:\n *\n * - Images\n * - Videos\n * - Audio files\n * - 3D Models\n * - SVGs (for [on-chain NFTs](https://blog.thirdweb.com/guides/how-to-create-on-chain-nfts-with-thirdweb/))\n * - `iframes` and `HTML`\n * - If none of these are appropriate, the fallback is a link to the asset\n *\n * @example\n *\n * Provide the IPFS URI (or any URL that points to media) to the `src` prop to render the asset.\n *\n * ```jsx\n * import { MediaRenderer } from \"@thirdweb-dev/react\";\n *\n * function Home() {\n * \treturn (\n * \t\t// Any URL that points to media (IPFS URI, HTTP URL, etc.)\n * \t\t\n * \t);\n * }\n * ```\n *\n * @remarks\n * The default size of rendered media is 300px x 300px, but this can be changed using the `width` and `height` props.\n *\n * You can use `npx thirdweb upload ` to upload any file to IPFS and get the IPFS URI.\n *\n * @param props -\n * The props for the component\n *\n * ### src (required)\n *\n * The [src](https://www.w3schools.com/tags/att_img_src.asp) attribute specifies the URL of the media.\n *\n * This can be an IPFS URI, or any URL that points to media (e.g. HTTP URL, etc.).\n *\n * ```jsx\n * import { MediaRenderer } from \"@thirdweb-dev/react\";\n *\n * function Home() {\n * \treturn (\n * \t\t\n * \t);\n * }\n * ```\n *\n *\n * ### alt (recommended)\n *\n * The [alt](https://www.w3schools.com/tags/att_img_alt.asp) attributes provides alternative\n * information for the media, if a user for some reason cannot view it\n * (due to slow connection, an error in the `src` attribute, or if the user is visually impaired).\n *\n * The default value is `\"\"`.\n *\n * ```jsx\n * import { MediaRenderer } from \"@thirdweb-dev/react\";\n *\n * function Home() {\n * \treturn (\n * \t\t// Any URL that points to media (IPFS URI, HTTP URL, etc.)\n * \t\t\n * \t);\n * }\n * ```\n *\n *\n * ### poster (optional)\n *\n * The [poster](https://www.w3schools.com/tags/att_video_poster.asp) is the image\n * that is shown before the video is played.\n *\n * The default value is the first frame of the video.\n *\n * If the `src` is not a video, this prop is ignored.\n *\n * ```jsx\n * import { MediaRenderer } from \"@thirdweb-dev/react\";\n *\n * function Home() {\n * \treturn (\n * \t\t// Any URL that points to media (IPFS URI, HTTP URL, etc.)\n * \t\t\n * \t);\n * }\n * ```\n *\n *\n * ### controls (optional)\n *\n * Show the media controls (play, pause, etc.) for the media, where applicable.\n *\n * The default value is `false`.\n *\n * ```jsx\n * import { ThirdwebNftMedia } from \"@thirdweb-dev/react\";\n *\n * function Home() {\n * \t// ... Get the NFT metadata\n *\n * \treturn (\n * \t\t\n * \t);\n * }\n * ```\n *\n *\n * ### height (optional)\n *\n * The height of the rendered media.\n *\n * The default value is `auto`.\n *\n * ```jsx\n * import { ThirdwebNftMedia } from \"@thirdweb-dev/react\";\n *\n * function Home() {\n * \t// ... Get the NFT metadata\n *\n * \treturn (\n * \t\t\n * \t);\n * }\n * ```\n *\n * ### width (optional)\n *\n * The width of the rendered media.\n *\n * The default value is `auto`.\n *\n * ```jsx\n * import { ThirdwebNftMedia } from \"@thirdweb-dev/react\";\n *\n * function Home() {\n * \t// ... Get the NFT metadata\n *\n * \treturn (\n * \t\t\n * \t);\n * }\n * ```\n *\n *\n * ### requireInteraction (optional)\n *\n * Require user interaction to play the media (i.e. disable autoplay).\n *\n * The default value is `false`.\n *\n * ```jsx\n * import { ThirdwebNftMedia } from \"@thirdweb-dev/react\";\n *\n * function Home() {\n * \t// ... Get the NFT metadata\n *\n * \treturn (\n * \t\t\n * \t);\n * }\n * ```\n *\n *\n * ### className (optional)\n *\n * Apply custom CSS styles to the button using a class name.\n *\n * ```jsx\n * import { ThirdwebNftMedia } from \"@thirdweb-dev/react\";\n *\n * function Home() {\n * \t// ... Get the NFT metadata\n *\n * \treturn (\n * \t\t\n * \t);\n * }\n * ```\n *\n * ### style (optional)\n *\n * Apply custom CSS styles to the button using an inline style.\n *\n * ```jsx\n * import { ThirdwebNftMedia } from \"@thirdweb-dev/react\";\n *\n * function Home() {\n * \t// ... Get the NFT metadata\n *\n * \treturn (\n * \t\t\n * \t);\n * }\n * ```\n */\nconst MediaRenderer = /* @__PURE__ */(() => /*#__PURE__*/React.forwardRef(function Media_Renderer(_ref6, ref) {\n let {\n src,\n poster,\n alt,\n gatewayUrl,\n requireInteraction = false,\n width = \"300px\",\n height = \"300px\",\n style,\n mimeType,\n ...restProps\n } = _ref6;\n const mergedStyle = {\n objectFit: \"contain\",\n width,\n height,\n ...style\n };\n const videoOrImageSrc = useResolvedMediaType(src ?? undefined, mimeType, gatewayUrl);\n const possiblePosterSrc = useResolvedMediaType(poster ?? undefined, undefined, gatewayUrl);\n if (!videoOrImageSrc.mimeType) {\n return /*#__PURE__*/jsx(\"img\", {\n style: mergedStyle,\n ...restProps,\n ref: ref,\n alt: alt\n });\n } else if (videoOrImageSrc.mimeType.startsWith(\"text/html\")) {\n return /*#__PURE__*/jsx(IframePlayer, {\n style: mergedStyle,\n src: videoOrImageSrc.url,\n poster: possiblePosterSrc.url,\n requireInteraction: requireInteraction,\n ...restProps\n });\n } else if (videoOrImageSrc.mimeType.startsWith(\"model\")) {\n return /*#__PURE__*/jsx(Suspense, {\n fallback: poster ? /*#__PURE__*/jsx(\"img\", {\n style: mergedStyle,\n src: poster,\n alt: alt,\n ref: ref,\n ...restProps\n }) : null,\n children: /*#__PURE__*/jsx(ModelViewer, {\n style: mergedStyle,\n src: videoOrImageSrc.url || \"\",\n poster: poster,\n alt: alt,\n ...restProps\n })\n });\n } else if (shouldRenderVideoTag(videoOrImageSrc.mimeType)) {\n return /*#__PURE__*/jsx(VideoPlayer, {\n style: mergedStyle,\n src: videoOrImageSrc.url,\n poster: possiblePosterSrc.url,\n requireInteraction: requireInteraction,\n ...restProps\n });\n } else if (shouldRenderAudioTag(videoOrImageSrc.mimeType)) {\n return /*#__PURE__*/jsx(AudioPlayer, {\n style: mergedStyle,\n src: videoOrImageSrc.url,\n poster: possiblePosterSrc.url,\n requireInteraction: requireInteraction,\n ...restProps\n });\n } else if (videoOrImageSrc.mimeType.startsWith(\"image/\")) {\n return /*#__PURE__*/jsx(\"img\", {\n style: mergedStyle,\n src: videoOrImageSrc.url,\n alt: alt,\n ref: ref,\n ...restProps\n });\n }\n return /*#__PURE__*/jsx(LinkPlayer, {\n style: mergedStyle,\n src: videoOrImageSrc.url,\n alt: alt,\n ref: ref,\n ...restProps\n });\n}))();\n/**\n * Hook for resolving the media type and URL of a given URI (including IPFS URIs).\n *\n * The `` component renders the relevant.\n * HTML element for a given URL, including IPFS URIs. e.g. `` for images, `