@vechain/vechain-kit 1.5.10 → 1.5.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-5YN7CZ5H.cjs → chunk-DBQR2OKX.cjs} +8 -4
- package/dist/chunk-DBQR2OKX.cjs.map +1 -0
- package/dist/{chunk-USAHFGIQ.js → chunk-RSEKQ6PP.js} +8 -4
- package/dist/chunk-RSEKQ6PP.js.map +1 -0
- package/dist/index.cjs +382 -217
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +66 -1
- package/dist/index.d.ts +66 -1
- package/dist/index.js +185 -25
- package/dist/index.js.map +1 -1
- package/dist/metafile-cjs.json +1 -1
- package/dist/metafile-esm.json +1 -1
- package/dist/utils/index.cjs +31 -31
- package/dist/utils/index.js +1 -1
- package/package.json +4 -2
- package/dist/chunk-5YN7CZ5H.cjs.map +0 -1
- package/dist/chunk-USAHFGIQ.js.map +0 -1
|
@@ -35,7 +35,8 @@ var TOKEN_LOGOS = {
|
|
|
35
35
|
VTHO: "https://s2.coinmarketcap.com/static/img/coins/64x64/3012.png",
|
|
36
36
|
B3TR: "https://vechain.github.io/token-registry/assets/3d55edb42b09a634f7f2f26756a02571de901a5b.png",
|
|
37
37
|
VOT3: "https://vechain.github.io/token-registry/assets/17ff70aa1d898bc97ad690dbfad1a3b5643f7e0b.png",
|
|
38
|
-
veDelegate: "https://vechain.github.io/token-registry/assets/1c641b86096d56bf13d49f38388accd6db8b8b2e.png"
|
|
38
|
+
veDelegate: "https://vechain.github.io/token-registry/assets/1c641b86096d56bf13d49f38388accd6db8b8b2e.png",
|
|
39
|
+
USDGLO: "https://raw.githubusercontent.com/vechain/app-hub/439fba60c80ba2521d435981102d88c4aec050d6/apps/org.glodollar.app/logo.png"
|
|
39
40
|
};
|
|
40
41
|
var TOKEN_LOGO_COMPONENTS = {
|
|
41
42
|
VET: /* @__PURE__ */ jsxRuntime.jsx(chunkA4NZ5AVL_cjs.VETLogo, {}),
|
|
@@ -218,6 +219,7 @@ var config = {
|
|
|
218
219
|
vetDomainsPublicResolverAddress: "0x0000000000000000000000000000000000000000",
|
|
219
220
|
vetDomainsReverseRegistrarAddress: "0x5c970901a587BA3932C835D4ae5FAE2BEa7e78Bc",
|
|
220
221
|
vnsResolverAddress: "0x0000000000000000000000000000000000000000",
|
|
222
|
+
gloDollarContractAddress: "0x0000000000000000000000000000000000000000",
|
|
221
223
|
vetDomainAvatarUrl: "https://testnet.vet.domains/api/avatar",
|
|
222
224
|
indexerUrl: "https://b3tr.testnet.vechain.org/api/v1",
|
|
223
225
|
b3trIndexerUrl: "https://b3tr.testnet.vechain.org/api/v1",
|
|
@@ -286,6 +288,7 @@ var config2 = {
|
|
|
286
288
|
vetDomainsPublicResolverAddress: "0xA6eFd130085a127D090ACb0b100294aD1079EA6f",
|
|
287
289
|
vetDomainsReverseRegistrarAddress: "0x6878f1aD5e3015310CfE5B38d7B7071C5D8818Ca",
|
|
288
290
|
vnsResolverAddress: "0xc403b8EA53F707d7d4de095f0A20bC491Cf2bc94",
|
|
291
|
+
gloDollarContractAddress: "0x0000000000000000000000000000000000000000",
|
|
289
292
|
vetDomainAvatarUrl: "https://testnet.vet.domains/api/avatar",
|
|
290
293
|
indexerUrl: "https://indexer.testnet.vechain.org/api/v1",
|
|
291
294
|
b3trIndexerUrl: "https://b3tr.testnet.vechain.org/api/v1",
|
|
@@ -401,7 +404,8 @@ var config3 = {
|
|
|
401
404
|
vetDomainsPublicResolverAddress: "0xabac49445584C8b6c1472b030B1076Ac3901D7cf",
|
|
402
405
|
vetDomainsReverseRegistrarAddress: "0x5c970901a587BA3932C835D4ae5FAE2BEa7e78Bc",
|
|
403
406
|
vnsResolverAddress: "0xA11413086e163e41901bb81fdc5617c975Fa5a1A",
|
|
404
|
-
vetDomainAvatarUrl: "https://vet.domains/api/avatar"
|
|
407
|
+
vetDomainAvatarUrl: "https://vet.domains/api/avatar",
|
|
408
|
+
gloDollarContractAddress: "0x29c630cce4ddb23900f5fe66ab55e488c15b9f5e"
|
|
405
409
|
};
|
|
406
410
|
var mainnet_default = config3;
|
|
407
411
|
|
|
@@ -634,5 +638,5 @@ exports.toIPFSURL = toIPFSURL;
|
|
|
634
638
|
exports.uploadBlobToIPFS = uploadBlobToIPFS;
|
|
635
639
|
exports.validateIpfsUri = validateIpfsUri;
|
|
636
640
|
exports.xNodeToGMstartingLevel = xNodeToGMstartingLevel;
|
|
637
|
-
//# sourceMappingURL=chunk-
|
|
638
|
-
//# sourceMappingURL=chunk-
|
|
641
|
+
//# sourceMappingURL=chunk-DBQR2OKX.cjs.map
|
|
642
|
+
//# sourceMappingURL=chunk-DBQR2OKX.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/assets/icons/VechainLogo/VOT3Logo.tsx","../src/utils/Constants.tsx","../src/utils/FormattingUtils.tsx","../src/utils/RandomTxForwarder.tsx","../src/utils/HexUtils.ts","../src/utils/AddressUtils.ts","../src/config/solo.ts","../src/config/testnet.ts","../src/config/mainnet.ts","../src/config/index.ts","../src/utils/ipfs.ts","../src/utils/media.ts","../src/utils/uri.ts","../src/utils/gmNfts.ts","../src/utils/buildQueryString.ts","../src/utils/XNode.ts"],"names":["jsxs","Icon","jsx","VETLogo","VTHOLogo","VeBetterIcon","TogglePassportCheck","address","BigNumber","picasso","generatePrivateKey","privateKeyToAccount","config"],"mappings":";;;;;;;;;;;AAKO,IAAM,QAA4B,GAAA,CAAC,EAAE,GAAG,OAAY,KAAA;AACvD,EAAA,uBACKA,eAAA,CAAAC,UAAA,EAAA,EAAK,OAAQ,EAAA,qBAAA,EAAuB,GAAG,KACpC,EAAA,QAAA,EAAA;AAAA,oBAAAC,cAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACG,IAAK,EAAA,SAAA;AAAA,QACL,KAAM,EAAA,SAAA;AAAA,QACN,MAAO,EAAA,SAAA;AAAA,QACP,EAAG,EAAA,QAAA;AAAA,QACH,EAAG,EAAA,QAAA;AAAA,OAAA;AAAA,KACP;AAAA,oBACAA,cAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACG,IAAK,EAAA,SAAA;AAAA,QACL,CAAE,EAAA,yhBAAA;AAAA,OAAA;AAAA,KACN;AAAA,GACJ,EAAA,CAAA,CAAA;AAER,CAAA,CAAA;ACjBO,IAAM,WAAsC,GAAA;AAAA,EAC/C,GAAK,EAAA,mDAAA;AAAA,EACL,IAAM,EAAA,8DAAA;AAAA,EACN,IAAM,EAAA,8FAAA;AAAA,EACN,IAAM,EAAA,8FAAA;AAAA,EACN,UACI,EAAA,8FAAA;AAAA,EACJ,MAAQ,EAAA,4HAAA;AACZ,EAAA;AAEO,IAAM,qBAAqD,GAAA;AAAA,EAC9D,GAAA,kBAAKA,cAAAA,CAACC,yBAAQ,EAAA,EAAA,CAAA;AAAA,EACd,IAAA,kBAAMD,cAAAA,CAACE,0BAAS,EAAA,EAAA,CAAA;AAAA,EAChB,IAAA,kBAAMF,cAAAA,CAACG,8BAAa,EAAA,EAAA,CAAA;AAAA,EACpB,IAAA,kBAAMH,cAAAA,CAAC,QAAS,EAAA,EAAA,CAAA;AACpB,EAAA;AAEO,IAAM,oBAAuB,GAAA,4BAAA;AAE7B,IAAM,aACT,GAAA,0EAAA;AAEQ,IAAA,mBAAA,qBAAAI,oBAAL,KAAA;AACH,EAAAA,oBAAAA,CAAAA,oBAAAA,CAAA,oBAAiB,CAAjB,CAAA,GAAA,gBAAA,CAAA;AACA,EAAAA,oBAAAA,CAAAA,oBAAAA,CAAA,oBAAiB,CAAjB,CAAA,GAAA,gBAAA,CAAA;AACA,EAAAA,oBAAAA,CAAAA,oBAAAA,CAAA,oBAAiB,CAAjB,CAAA,GAAA,gBAAA,CAAA;AACA,EAAAA,oBAAAA,CAAAA,oBAAAA,CAAA,6BAA0B,CAA1B,CAAA,GAAA,yBAAA,CAAA;AACA,EAAAA,oBAAAA,CAAAA,oBAAAA,CAAA,sBAAmB,CAAnB,CAAA,GAAA,kBAAA,CAAA;AALQ,EAAAA,OAAAA,oBAAAA,CAAAA;AAAA,CAAA,EAAA,mBAAA,IAAA,EAAA,EAAA;AAcL,IAAM,4BAAoD,GAAA;AAAA,EAC7D;AAAA,IACI,EAAI,EAAA,2BAAA;AAAA,IACJ,IAAM,EAAA,UAAA;AAAA,IACN,OAAS,EAAA,0BAAA;AAAA,GACb;AAAA,EACA;AAAA,IACI,EAAI,EAAA,2BAAA;AAAA,IACJ,IAAM,EAAA,WAAA;AAAA,IACN,OAAS,EAAA,sBAAA;AAAA,GACb;AAAA,EACA;AAAA,IACI,EAAI,EAAA,2BAAA;AAAA,IACJ,IAAM,EAAA,SAAA;AAAA,IACN,OAAS,EAAA,sBAAA;AAAA,GACb;AACJ,EAAA;ACrDO,IAAM,eAAe,CACxBC,QAAAA,EACA,cAAc,CACd,EAAA,SAAA,GAAY,MACH,CAAGA,EAAAA,QAAAA,CAAQ,KAAM,CAAA,CAAA,EAAG,WAAW,CAAC,CAAA,kBAAA,EAAMA,SAAQ,KAAM,CAAA,CAAC,SAAS,CAAC,CAAA,EAAA;AAErE,IAAM,cAAc,CACvB,MAAA,EACA,YAAe,GAAA,CAAA,EACf,cAAc,CACb,KAAA;AAED,EAAA,IAAI,MAAO,CAAA,MAAA,IAAU,YAAe,GAAA,WAAA,EAAoB,OAAA,MAAA,CAAA;AAExD,EAAA,MAAM,MAAS,GAAA,MAAA,CAAO,SAAU,CAAA,CAAA,EAAG,YAAY,CAAA,CAAA;AAC/C,EAAA,MAAM,KAAQ,GAAA,MAAA,CAAO,SAAU,CAAA,MAAA,CAAO,SAAS,WAAW,CAAA,CAAA;AAC1D,EAAO,OAAA,CAAA,EAAG,MAAM,CAAA,kBAAA,EAAM,KAAK,CAAA,CAAA,CAAA;AAC/B,EAAA;AAEO,IAAM,WAAc,GAAA,CACvB,cACA,EAAA,aAAA,EACA,SAAwB,IACvB,KAAA;AACD,EAAM,MAAA,MAAA,GAAS,MAAS,GAAA,GAAA,GAAM,MAAS,GAAA,EAAA,CAAA;AAEvC,EAAA,aAAA,GAAgB,aAAiB,IAAA,cAAA,CAAA;AACjC,EAAA,MAAM,SAAY,GAAA,IAAI,IAAK,CAAA,YAAA,CAAa,IAAM,EAAA;AAAA,IAC1C,KAAO,EAAA,SAAA;AAAA,IACP,qBAAA,EACI,OAAO,UAAW,CAAA,cAAA,CAAe,UAAU,CAAA,GAAI,CAAM,KAAA,CAAA,GAAI,CAAI,GAAA,CAAA;AAAA,GACpE,CAAA,CAAA;AAED,EAAA,IAAI,QAAQ,SAAU,CAAA,MAAA;AAAA,IAClB,0BAA2B,CAAA,MAAA,CAAO,cAAc,CAAA,EAAG,CAAC,CAAA;AAAA,GACxD,CAAA;AAGA,EAAA,IAAI,CAAC,MAAO,CAAA,aAAa,CAAK,IAAA,MAAA,CAAO,KAAK,CAAG,EAAA;AACzC,IAAQ,KAAA,GAAA,QAAA,CAAA;AAAA,GACZ;AAEA,EAAA,OAAO,KAAQ,GAAA,MAAA,CAAA;AACnB,EAAA;AAEa,IAAA,MAAA,GAAS,CAAC,KAA4B,KAAA;AAC/C,EAAA,IAAI,CAAC,KAAA,IAAS,KAAU,KAAA,CAAA,EAAU,OAAA,KAAA,CAAA;AAClC,EAAA,OAAO,IAAIC,sBAAA,CAAU,KAAK,CAAA,CAAE,MAAO,EAAA,CAAA;AACvC,EAAA;AAEO,IAAM,eAAkB,GAAA,CAACD,QAAiB,EAAA,MAAA,GAAS,KAAkB,KAAA;AACxE,EAAA,MAAM,KAAQ,GAAAE,eAAA,CAAQF,QAAQ,CAAA,WAAA,EAAa,CAAA,CAAA;AAC3C,EAAA,IAAI,MAAQ,EAAA;AACR,IAAA,MAAM,aAAa,MAAO,CAAA,IAAA,CAAK,OAAO,MAAM,CAAA,CAAE,SAAS,QAAQ,CAAA,CAAA;AAC/D,IAAA,OAAO,6BAA6B,UAAU,CAAA,CAAA,CAAA;AAAA,GAClD;AACA,EAAA,OAAO,2BAA2B,KAAK,CAAA,CAAA,CAAA;AAC3C,EAAA;AAUA,SAAS,0BAAA,CAA2B,OAAiB,EAAA,QAAA,GAAmB,CAAG,EAAA;AACvE,EAAA,IAAI,OAAO,OAAA,KAAY,QAAY,IAAA,OAAO,aAAa,QAAU,EAAA;AAC7D,IAAA,MAAM,IAAI,KAAA;AAAA,MACN,2DAAA;AAAA,KACJ,CAAA;AAAA,GACJ;AAEA,EAAA,MAAM,iBAAoB,GAAA,QAAA;AAAA,IACtB,QAAQ,aAAc,EAAA,CAAE,MAAM,IAAI,CAAA,CAAE,CAAC,CAAK,IAAA,GAAA;AAAA,IAC1C,EAAA;AAAA,GACJ,CAAA;AAEA,EAAA,MAAM,iBAAoB,GAAA,IAAA,CAAK,GAAI,CAAA,CAAA,EAAG,WAAW,iBAAiB,CAAA,CAAA;AAClE,EAAA,MAAM,WAAc,GAAA,IAAA,CAAK,GAAI,CAAA,EAAA,EAAI,iBAAiB,CAAA,CAAA;AAElD,EAAA,OAAO,IAAK,CAAA,KAAA,CAAM,OAAU,GAAA,WAAW,CAAI,GAAA,WAAA,CAAA;AAC/C,CAAA;AChFO,IAAM,yBAIR,MAAM;AACP,EAAA,MAAM,aAAaG,2BAAmB,EAAA,CAAA;AACtC,EAAM,MAAA,OAAA,GAAUC,6BAAoB,UAAU,CAAA,CAAA;AAC9C,EAAO,OAAA;AAAA,IACH,UAAA;AAAA,IACA,OAAA;AAAA,IACA,SAAS,OAAQ,CAAA,OAAA;AAAA,GACrB,CAAA;AACJ,CAAG,IAAA;ACjBH,IAAM,MAAS,GAAA,IAAA,CAAA;AACf,IAAM,YAAe,GAAA,QAAA,CAAA;AACrB,IAAM,SAAY,GAAA,wBAAA,CAAA;AAsBX,IAAM,SAAA,GAAY,CAAC,GAAwB,KAAA;AAC9C,EAAA,QAAA,CAAS,GAAG,CAAA,CAAA;AACZ,EAAA,OAAO,YAAa,CAAA,IAAA,CAAK,GAAG,CAAA,GACtB,GAAI,CAAA,OAAA,CAAQ,YAAc,EAAA,MAAM,CAChC,GAAA,CAAA,EAAG,MAAM,CAAA,EAAG,GAAG,CAAA,CAAA,CAAA;AACzB,CAAA,CAAA;AAOO,IAAM,QAAA,GAAW,CAAC,GAAgB,KAAA;AACrC,EAAA,IAAI,CAAC,OAAQ,CAAA,GAAG,CAAG,EAAA,MAAM,MAAM,iCAAiC,CAAA,CAAA;AACpE,CAAA,CAAA;AAOO,IAAM,OAAA,GAAU,CAAC,GAAiC,KAAA;AACrD,EAAA,OAAO,CAAC,CAAC,GAAO,IAAA,SAAA,CAAU,KAAK,GAAG,CAAA,CAAA;AACtC,CAAA,CAAA;AAMO,IAAM,SAAA,GAAY,CAAC,GAAwB,KAAA;AAC9C,EAAA,OAAO,SAAU,CAAA,GAAA,CAAI,WAAY,EAAA,CAAE,MAAM,CAAA,CAAA;AAC7C,CAAA,CAAA;;;AC7Ca,IAAA,gBAAA,GAAmB,CAC5B,QAAA,EACA,QACU,KAAA;AACV,EAAA,IAAI,CAAC,QAAA,IAAY,CAAC,QAAA,EAAiB,OAAA,KAAA,CAAA;AAEnC,EAAA,IAAI,aAAa,QAAU,EAAA;AACvB,IAAO,OAAA,IAAA,CAAA;AAAA,GACX;AAEA,EAAI,IAAA;AACA,IAAA,OAAgB,SAAU,CAAA,QAAQ,CAAe,KAAA,SAAA,CAAU,QAAQ,CAAA,CAAA;AAAA,WAE9D,CAAG,EAAA;AACR,IAAO,OAAA,KAAA,CAAA;AAAA,GACX;AACJ,EAAA;AAEa,IAAA,sBAAA,GAAyB,CAAC,IAAA,EAAgB,IAAmB,KAAA;AACtE,EAAA,IAAI,IAAK,CAAA,MAAA,KAAW,IAAK,CAAA,MAAA,EAAe,OAAA,KAAA,CAAA;AACxC,EAAA,MAAM,aAAa,CAAC,GAAG,IAAI,CACtB,CAAA,GAAA,CAAI,CAAC,CAAM,KAAA,CAAA,CAAE,aAAa,CAAA,CAC1B,KAAK,CAAC,CAAA,EAAG,MAAM,CAAE,CAAA,aAAA,CAAc,CAAC,CAAC,CAAA,CAAA;AACtC,EAAA,MAAM,aAAa,CAAC,GAAG,IAAI,CACtB,CAAA,GAAA,CAAI,CAAC,CAAM,KAAA,CAAA,CAAE,aAAa,CAAA,CAC1B,KAAK,CAAC,CAAA,EAAG,MAAM,CAAE,CAAA,aAAA,CAAc,CAAC,CAAC,CAAA,CAAA;AAEtC,EAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,UAAA,CAAW,QAAQ,CAAK,EAAA,EAAA;AACxC,IAAI,IAAA,CAAC,iBAAiB,UAAW,CAAA,CAAC,GAAG,UAAW,CAAA,CAAC,CAAC,CAAA,EAAU,OAAA,KAAA,CAAA;AAAA,GAChE;AAEA,EAAO,OAAA,IAAA,CAAA;AACX,EAAA;AAEO,IAAM,eAAe,MAAM;AAC9B,EAAO,OAAA,qBAAA,CAAA;AACX,EAAA;AAEa,IAAA,cAAA,GAAiB,CAAC,IAA6C,KAAA;AACxE,EAAI,IAAA;AACA,IAAI,IAAA,OAAO,IAAS,KAAA,QAAA,EAAiB,OAAA,KAAA,CAAA;AACrC,IAAQJ,kBAAA,CAAA,YAAA,CAAsB,SAAU,CAAA,IAAI,CAAC,CAAA,CAAA;AAC7C,IAAO,OAAA,IAAA,CAAA;AAAA,WAEF,CAAG,EAAA;AACR,IAAO,OAAA,KAAA,CAAA;AAAA,GACX;AACJ,EAAA;AAEa,IAAA,gBAAA,GAAmB,CAAC,GAAA,EAAa,MAA2B,KAAA;AAErE,EAAM,MAAA,QAAA,GAAW,IAAI,UAAW,CAAA,IAAI,IAAI,GAAI,CAAA,KAAA,CAAM,CAAC,CAAI,GAAA,GAAA,CAAA;AACvD,EAAI,IAAA,QAAA,CAAS,SAAS,MAAQ,EAAA;AAC1B,IAAM,MAAA,IAAI,MAAM,kDAAkD,CAAA,CAAA;AAAA,GACtE;AAEA,EAAA,MAAM,SAAY,GAAA,QAAA,CAAS,QAAS,CAAA,MAAA,EAAQ,GAAG,CAAA,CAAA;AAC/C,EAAA,OAAO,KAAK,SAAS,CAAA,CAAA,CAAA;AACzB,EAAA;;;ACpEA,IAAM,MAAoB,GAAA;AAAA,EACtB,mBAAqB,EAAA,gDAAA;AAAA,EACrB,kBACI,EAAA,wEAAA;AAAA,EACJ,mBAAqB,EAAA,4CAAA;AAAA,EACrB,mBAAqB,EAAA,4CAAA;AAAA,EACrB,mBAAqB,EAAA,4CAAA;AAAA,EACrB,mBAAqB,EAAA,4CAAA;AAAA,EACrB,uBAAyB,EAAA,4CAAA;AAAA,EACzB,8BACI,EAAA,4CAAA;AAAA,EACJ,gCACI,EAAA,4CAAA;AAAA,EACJ,wBAA0B,EAAA,4CAAA;AAAA,EAC1B,2BAA6B,EAAA,4CAAA;AAAA,EAC7B,2BAA6B,EAAA,4CAAA;AAAA,EAC7B,uBAAyB,EAAA,4CAAA;AAAA,EACzB,yBAA2B,EAAA,4CAAA;AAAA,EAC3B,gCACI,EAAA,4CAAA;AAAA,EACJ,6BAA+B,EAAA,4CAAA;AAAA,EAC/B,+BACI,EAAA,4CAAA;AAAA,EACJ,4BAA8B,EAAA,4CAAA;AAAA,EAC9B,UAAY,EAAA,4CAAA;AAAA,EACZ,eAAiB,EAAA,4CAAA;AAAA,EACjB,8BACI,EAAA,4CAAA;AAAA,EACJ,qBAAuB,EAAA,4CAAA;AAAA,EACvB,qBAAuB,EAAA,4CAAA;AAAA,EACvB,gCACI,EAAA,4CAAA;AAAA,EACJ,iCACI,EAAA,4CAAA;AAAA,EACJ,sCACI,EAAA,4CAAA;AAAA,EACJ,yBAA2B,EAAA,4CAAA;AAAA,EAC3B,+BACI,EAAA,4CAAA;AAAA,EACJ,iCACI,EAAA,4CAAA;AAAA,EACJ,kBAAoB,EAAA,4CAAA;AAAA,EACpB,wBAA0B,EAAA,4CAAA;AAAA,EAC1B,kBAAoB,EAAA,wCAAA;AAAA,EACpB,UAAY,EAAA,yCAAA;AAAA,EACZ,cAAgB,EAAA,yCAAA;AAAA,EAChB,iBAAmB,EAAA,sCAAA;AAAA,EACnB,OAAS,EAAA,uBAAA;AAAA,EACT,OAAS,EAAA;AAAA,IACL,EAAI,EAAA,MAAA;AAAA,IACJ,IAAM,EAAA,MAAA;AAAA,IACN,IAAM,EAAA,MAAA;AAAA,IACN,UAAY,EAAA,IAAA;AAAA,IACZ,IAAA,EAAM,CAAC,uBAAuB,CAAA;AAAA,IAC9B,WAAa,EAAA,qCAAA;AAAA,IACb,SAAW,EAAA,GAAA;AAAA,IACX,OAAS,EAAA;AAAA,MACL,MAAQ,EAAA,CAAA;AAAA,MACR,EAAI,EAAA,oEAAA;AAAA,MACJ,IAAM,EAAA,GAAA;AAAA,MACN,QACI,EAAA,oEAAA;AAAA,MACJ,SAAW,EAAA,UAAA;AAAA,MACX,QAAU,EAAA,GAAA;AAAA,MACV,WAAa,EAAA,4CAAA;AAAA,MACb,OAAS,EAAA,CAAA;AAAA,MACT,UAAY,EAAA,CAAA;AAAA,MACZ,OACI,EAAA,oEAAA;AAAA,MACJ,WAAa,EAAA,CAAA;AAAA,MACb,SACI,EAAA,oEAAA;AAAA,MACJ,YACI,EAAA,oEAAA;AAAA,MACJ,MAAQ,EAAA,4CAAA;AAAA,MACR,OAAS,EAAA,IAAA;AAAA,MACT,cAAc,EAAC;AAAA,KACnB;AAAA,GACJ;AAAA,EACA,WAAa,EAAA,qCAAA;AACjB,CAAA,CAAA;AACA,IAAO,YAAQ,GAAA,MAAA,CAAA;;;AChFf,IAAMK,OAAoB,GAAA;AAAA,EACtB,mBAAqB,EAAA,gDAAA;AAAA,EACrB,kBACI,EAAA,wEAAA;AAAA,EACJ,mBAAqB,EAAA,4CAAA;AAAA,EACrB,mBAAqB,EAAA,4CAAA;AAAA,EACrB,mBAAqB,EAAA,4CAAA;AAAA,EACrB,mBAAqB,EAAA,4CAAA;AAAA,EACrB,uBAAyB,EAAA,4CAAA;AAAA,EACzB,8BACI,EAAA,4CAAA;AAAA,EACJ,gCACI,EAAA,4CAAA;AAAA,EACJ,wBAA0B,EAAA,4CAAA;AAAA,EAC1B,2BAA6B,EAAA,4CAAA;AAAA,EAC7B,2BAA6B,EAAA,4CAAA;AAAA,EAC7B,4BAA8B,EAAA,EAAA;AAAA,EAC9B,6BAA+B,EAAA,EAAA;AAAA,EAC/B,yBAA2B,EAAA,4CAAA;AAAA,EAC3B,uBAAyB,EAAA,4CAAA;AAAA,EACzB,gCACI,EAAA,4CAAA;AAAA,EACJ,+BAAiC,EAAA,EAAA;AAAA,EACjC,UAAY,EAAA,4CAAA;AAAA,EACZ,eAAiB,EAAA,4CAAA;AAAA,EACjB,8BACI,EAAA,4CAAA;AAAA,EACJ,qBAAuB,EAAA,4CAAA;AAAA,EACvB,qBAAuB,EAAA,4CAAA;AAAA,EACvB,gCACI,EAAA,4CAAA;AAAA,EACJ,iCACI,EAAA,4CAAA;AAAA,EACJ,sCACI,EAAA,4CAAA;AAAA,EACJ,yBAA2B,EAAA,4CAAA;AAAA,EAC3B,+BACI,EAAA,4CAAA;AAAA,EACJ,iCACI,EAAA,4CAAA;AAAA,EACJ,kBAAoB,EAAA,4CAAA;AAAA,EACpB,wBAA0B,EAAA,4CAAA;AAAA,EAC1B,kBAAoB,EAAA,wCAAA;AAAA,EACpB,UAAY,EAAA,4CAAA;AAAA,EACZ,cAAgB,EAAA,yCAAA;AAAA,EAChB,iBAAmB,EAAA,sCAAA;AAAA,EACnB,OAAS,EAAA,6BAAA;AAAA,EACT,OAAS,EAAA;AAAA,IACL,EAAI,EAAA,SAAA;AAAA,IACJ,IAAM,EAAA,SAAA;AAAA,IACN,IAAM,EAAA,MAAA;AAAA,IACN,UAAY,EAAA,IAAA;AAAA,IACZ,IAAM,EAAA;AAAA,MACF,6BAAA;AAAA,MACA,yCAAA;AAAA,MACA,mCAAA;AAAA,MACA,0BAAA;AAAA,KACJ;AAAA,IACA,WAAa,EAAA,iCAAA;AAAA,IACb,SAAW,EAAA,GAAA;AAAA,IACX,OAAS,EAAA;AAAA,MACL,MAAQ,EAAA,CAAA;AAAA,MACR,EAAI,EAAA,oEAAA;AAAA,MACJ,IAAM,EAAA,GAAA;AAAA,MACN,QACI,EAAA,oEAAA;AAAA,MACJ,SAAW,EAAA,UAAA;AAAA,MACX,QAAU,EAAA,GAAA;AAAA,MACV,WAAa,EAAA,4CAAA;AAAA,MACb,OAAS,EAAA,CAAA;AAAA,MACT,UAAY,EAAA,CAAA;AAAA,MACZ,OACI,EAAA,oEAAA;AAAA,MACJ,WAAa,EAAA,CAAA;AAAA,MACb,SACI,EAAA,oEAAA;AAAA,MACJ,YACI,EAAA,oEAAA;AAAA,MACJ,MAAQ,EAAA,4CAAA;AAAA,MACR,OAAS,EAAA,IAAA;AAAA,MACT,cAAc,EAAC;AAAA,KACnB;AAAA,GACJ;AAAA,EACA,WAAa,EAAA,kDAAA;AACjB,CAAA,CAAA;AACA,IAAO,eAAQA,GAAAA,OAAAA,CAAAA;;;ACtFf,IAAMA,OAAoB,GAAA;AAAA,EACtB,mBAAqB,EAAA,4CAAA;AAAA,EACrB,UAAY,EAAA,4CAAA;AAAA,EACZ,kBACI,EAAA,oEAAA;AAAA,EACJ,cAAgB,EAAA,yCAAA;AAAA,EAChB,iBAAmB,EAAA,sCAAA;AAAA,EACnB,OAAS,EAAA,6BAAA;AAAA,EACT,OAAS,EAAA;AAAA,IACL,EAAI,EAAA,MAAA;AAAA,IACJ,IAAM,EAAA,MAAA;AAAA,IACN,IAAM,EAAA,MAAA;AAAA,IACN,UAAY,EAAA,IAAA;AAAA,IACZ,IAAM,EAAA;AAAA,MACF,6BAAA;AAAA,MACA,iCAAA;AAAA,MACA,8BAAA;AAAA,MACA,0BAAA;AAAA,KACJ;AAAA,IACA,WAAa,EAAA,0BAAA;AAAA,IACb,SAAW,EAAA,GAAA;AAAA,IACX,OAAS,EAAA;AAAA,MACL,MAAQ,EAAA,CAAA;AAAA,MACR,EAAI,EAAA,oEAAA;AAAA,MACJ,IAAM,EAAA,GAAA;AAAA,MACN,QACI,EAAA,oEAAA;AAAA,MACJ,SAAW,EAAA,UAAA;AAAA,MACX,QAAU,EAAA,GAAA;AAAA,MACV,WAAa,EAAA,4CAAA;AAAA,MACb,OAAS,EAAA,CAAA;AAAA,MACT,UAAY,EAAA,CAAA;AAAA,MACZ,OACI,EAAA,oEAAA;AAAA,MACJ,WAAa,EAAA,CAAA;AAAA,MACb,SACI,EAAA,oEAAA;AAAA,MACJ,YACI,EAAA,oEAAA;AAAA,MACJ,MAAQ,EAAA,4CAAA;AAAA,MACR,OAAS,EAAA,IAAA;AAAA,MACT,cAAc,EAAC;AAAA,KACnB;AAAA,GACJ;AAAA,EACA,WAAa,EAAA,sCAAA;AAAA;AAAA,EAEb,mBAAqB,EAAA,4CAAA;AAAA;AAAA,EAErB,mBAAqB,EAAA,4CAAA;AAAA,EACrB,mBAAqB,EAAA,4CAAA;AAAA,EACrB,mBAAqB,EAAA,4CAAA;AAAA,EACrB,uBAAyB,EAAA,4CAAA;AAAA,EACzB,8BACI,EAAA,4CAAA;AAAA,EACJ,gCACI,EAAA,4CAAA;AAAA,EACJ,wBAA0B,EAAA,4CAAA;AAAA,EAC1B,2BAA6B,EAAA,4CAAA;AAAA,EAC7B,2BAA6B,EAAA,4CAAA;AAAA,EAC7B,uBAAyB,EAAA,4CAAA;AAAA,EACzB,yBAA2B,EAAA,4CAAA;AAAA,EAC3B,gCACI,EAAA,4CAAA;AAAA,EACJ,4BAA8B,EAAA,4CAAA;AAAA,EAC9B,6BAA+B,EAAA,4CAAA;AAAA,EAC/B,+BACI,EAAA,4CAAA;AAAA;AAAA,EAEJ,UAAY,EAAA,4CAAA;AAAA,EACZ,eAAiB,EAAA,4CAAA;AAAA,EACjB,8BACI,EAAA,4CAAA;AAAA;AAAA,EAEJ,qBAAuB,EAAA,4CAAA;AAAA,EACvB,qBAAuB,EAAA,4CAAA;AAAA;AAAA,EAEvB,gCACI,EAAA,4CAAA;AAAA,EACJ,iCACI,EAAA,4CAAA;AAAA,EACJ,sCACI,EAAA,4CAAA;AAAA,EACJ,yBAA2B,EAAA,4CAAA;AAAA,EAC3B,+BACI,EAAA,4CAAA;AAAA,EACJ,iCACI,EAAA,4CAAA;AAAA,EACJ,kBAAoB,EAAA,4CAAA;AAAA,EACpB,kBAAoB,EAAA,gCAAA;AAAA,EACpB,wBAA0B,EAAA,4CAAA;AAC9B,CAAA,CAAA;AACA,IAAO,eAAQA,GAAAA,OAAAA,CAAAA;;;AC9CF,IAAA,SAAA,GAAY,CAAC,GAAiC,KAAA;AACvD,EAAI,IAAA,GAAA,KAAQ,QAAe,OAAA,YAAA,CAAA;AAC3B,EAAI,IAAA,GAAA,KAAQ,QAAe,OAAA,eAAA,CAAA;AAC3B,EAAI,IAAA,GAAA,KAAQ,QAAe,OAAA,eAAA,CAAA;AAC3B,EAAA,MAAM,IAAI,KAAA,CAAM,CAA4B,yBAAA,EAAA,GAAG,CAAE,CAAA,CAAA,CAAA;AACrD,EAAA;;;ACxCa,IAAA,eAAA,GAAkB,CAAC,GAAyB,KAAA;AACrD,EAAM,MAAA,UAAA,GAAa,IAAI,IAAK,EAAA,CAAA;AAC5B,EAAO,OAAA,sCAAA,CAAuC,KAAK,UAAU,CAAA,CAAA;AACjE,EAAA;AAUO,SAAS,SAAA,CAAU,KAAa,QAA2B,EAAA;AAC9D,EAAA,OAAO,CAAU,OAAA,EAAA,GAAG,CAAI,CAAA,EAAA,QAAA,IAAY,EAAE,CAAA,CAAA,CAAA;AAC1C,CAAA;AASA,eAAsB,gBAAA,CAClB,IACA,EAAA,QAAA,EACA,WACe,EAAA;AACf,EAAI,IAAA;AACA,IAAM,MAAA,IAAA,GAAO,IAAI,QAAS,EAAA,CAAA;AAC1B,IAAK,IAAA,CAAA,MAAA,CAAO,MAAQ,EAAA,IAAA,EAAM,QAAQ,CAAA,CAAA;AAClC,IAAA,MAAM,WAAW,MAAM,KAAA;AAAA,MACnB,SAAA,CAAU,WAAW,CAAE,CAAA,kBAAA;AAAA,MACvB;AAAA,QACI,MAAQ,EAAA,MAAA;AAAA,QACR,OAAS,EAAA;AAAA,UACL,cAAgB,EAAA,aAAA;AAAA,SACpB;AAAA,QACA,IAAM,EAAA,IAAA;AAAA,OACV;AAAA,KACJ,CAAA;AAEA,IAAI,IAAA,CAAC,SAAS,EAAI,EAAA;AACd,MAAA,MAAM,IAAI,KAAA,CAAM,CAAuB,oBAAA,EAAA,QAAA,CAAS,MAAM,CAAE,CAAA,CAAA,CAAA;AAAA,KAC5D;AAEA,IAAM,MAAA,IAAA,GAAO,MAAM,QAAA,CAAS,IAAK,EAAA,CAAA;AACjC,IAAA,OAAO,IAAK,CAAA,QAAA,CAAA;AAAA,WACP,KAAO,EAAA;AACZ,IAAQ,OAAA,CAAA,KAAA,CAAM,yBAAyB,KAAK,CAAA,CAAA;AAC5C,IAAM,MAAA,IAAI,MAAM,+BAA+B,CAAA,CAAA;AAAA,GACnD;AACJ,CAAA;;;AC9DA,IAAM,eAAA,GAAkB,CAAC,IAAA,EAAc,IAAyB,KAAA;AAC9D,EAAM,MAAA,KAAA,GAAQ,IAAK,CAAA,IAAA,CAAK,CAAK,CAAA,KAAA;AAC3B,IAAA,IAAI,MAAM,KAAM,CAAA,GAAG,CAAE,CAAA,CAAC,MAAM,CAAG,EAAA;AAC7B,MAAO,OAAA,IAAA,CAAA;AAAA,KACT;AAAA,GACD,CAAA,CAAA;AAED,EAAA,OAAO,CAAC,CAAC,KAAA,CAAA;AACX,CAAA,CAAA;AAEa,IAAA,4BAAA,GAA+B,CAAC,QAAmC,KAAA;AAC9E,EAAA,IAAI,eAAgB,CAAA,QAAA,EAAU,CAAmB,OAAA,aAAC,CAAG,EAAA,OAAA,OAAA,aAAA;AAAA,OAAA,IAC5C,eAAgB,CAAA,QAAA,EAAU,CAAmB,OAAA,aAAC,CAAG,EAAA,OAAA,OAAA,aAAA;AAE1D,EAAA,OAAA,SAAA,eAAA;AACF,EAAA;;;ACNa,IAAA,eAAA,GAAkB,CAAC,GAAA,EAAa,WAA8B,KAAA;AAEvE,EAAA,IAAI,GAAI,CAAA,UAAA,CAAW,OAAO,CAAA,EAAU,OAAA,GAAA,CAAA;AAEpC,EAAM,MAAA,QAAA,GAAW,GAAK,EAAA,KAAA,CAAM,KAAK,CAAA,CAAA;AACjC,EAAI,IAAA,QAAA,CAAS,MAAW,KAAA,CAAA,EAAU,OAAA,IAAA,CAAA;AAGlC,EAAA,MAAM,QAAW,GAAA,QAAA,GAAW,CAAC,CAAA,EAAG,IAAK,EAAA,CAAA;AACrC,EAAM,MAAA,kBAAA,GAAqB,SAAS,CAAC,CAAA,CAAA;AAErC,EAAA,QAAQ,QAAU;AAAA,IACd,KAAK,MAAA;AACD,MAAI,IAAA,CAAC,gBAAgB,GAAG,CAAA;AACpB,QAAA,MAAM,IAAI,KAAA,CAAM,CAAoB,iBAAA,EAAA,GAAG,CAAE,CAAA,CAAA,CAAA;AAG7C,MAAA,OAAO,GACH,SAAU,CAAA,WAAW,CAAE,CAAA,mBAC3B,IAAI,kBAAkB,CAAA,CAAA,CAAA;AAAA,IAE1B,KAAK,IAAA;AACD,MAAA,OAAO,uBAAuB,kBAAkB,CAAA,CAAA,CAAA;AAAA,IAEpD;AACI,MAAO,OAAA,GAAA,CAAA;AAAA,GACf;AACJ,EAAA;;;ACtCO,IAAM,MAAS,GAAA;AAAA,EAClB;AAAA,IACI,KAAO,EAAA,GAAA;AAAA,IACP,IAAM,EAAA,OAAA;AAAA,IACN,KAAO,EAAA,0BAAA;AAAA,IACP,UAAY,EAAA,CAAA;AAAA,IACZ,aAAe,EAAA,CAAA;AAAA,GACnB;AAAA,EACA;AAAA,IACI,KAAO,EAAA,GAAA;AAAA,IACP,IAAM,EAAA,MAAA;AAAA,IACN,KAAO,EAAA,0BAAA;AAAA,IACP,UAAY,EAAA,GAAA;AAAA,IACZ,aAAe,EAAA,GAAA;AAAA,GACnB;AAAA,EACA;AAAA,IACI,KAAO,EAAA,GAAA;AAAA,IACP,IAAM,EAAA,SAAA;AAAA,IACN,KAAO,EAAA,0BAAA;AAAA,IACP,UAAY,EAAA,GAAA;AAAA,IACZ,aAAe,EAAA,IAAA;AAAA,GACnB;AAAA,EACA;AAAA,IACI,KAAO,EAAA,GAAA;AAAA,IACP,IAAM,EAAA,OAAA;AAAA,IACN,KAAO,EAAA,0BAAA;AAAA,IACP,UAAY,EAAA,GAAA;AAAA,IACZ,aAAe,EAAA,GAAA;AAAA,GACnB;AAAA,EACA;AAAA,IACI,KAAO,EAAA,GAAA;AAAA,IACP,IAAM,EAAA,MAAA;AAAA,IACN,KAAO,EAAA,0BAAA;AAAA,IACP,UAAY,EAAA,CAAA;AAAA,IACZ,aAAe,EAAA,GAAA;AAAA,GACnB;AAAA,EACA;AAAA,IACI,KAAO,EAAA,GAAA;AAAA,IACP,IAAM,EAAA,SAAA;AAAA,IACN,KAAO,EAAA,0BAAA;AAAA,IACP,UAAY,EAAA,GAAA;AAAA,IACZ,aAAe,EAAA,IAAA;AAAA,GACnB;AAAA,EACA;AAAA,IACI,KAAO,EAAA,GAAA;AAAA,IACP,IAAM,EAAA,QAAA;AAAA,IACN,KAAO,EAAA,0BAAA;AAAA,IACP,UAAY,EAAA,CAAA;AAAA,IACZ,aAAe,EAAA,GAAA;AAAA,GACnB;AAAA,EACA;AAAA,IACI,KAAO,EAAA,GAAA;AAAA,IACP,IAAM,EAAA,QAAA;AAAA,IACN,KAAO,EAAA,0BAAA;AAAA,IACP,UAAY,EAAA,CAAA;AAAA,IACZ,aAAe,EAAA,IAAA;AAAA,GACnB;AAAA,EACA;AAAA,IACI,KAAO,EAAA,GAAA;AAAA,IACP,IAAM,EAAA,SAAA;AAAA,IACN,KAAO,EAAA,0BAAA;AAAA,IACP,UAAY,EAAA,EAAA;AAAA,IACZ,aAAe,EAAA,GAAA;AAAA,GACnB;AAAA,EACA;AAAA,IACI,KAAO,EAAA,IAAA;AAAA,IACP,IAAM,EAAA,QAAA;AAAA,IACN,KAAO,EAAA,0BAAA;AAAA,IACP,UAAY,EAAA,EAAA;AAAA,IACZ,aAAe,EAAA,IAAA;AAAA,GACnB;AACJ,EAAA;AAKO,IAAM,sBAAiD,GAAA;AAAA,EAC1D,CAAG,EAAA,CAAA;AAAA,EACH,CAAG,EAAA,CAAA;AAAA,EACH,CAAG,EAAA,CAAA;AAAA,EACH,CAAG,EAAA,CAAA;AAAA,EACH,CAAG,EAAA,CAAA;AAAA,EACH,CAAG,EAAA,CAAA;AAAA,EACH,CAAG,EAAA,CAAA;AACP,EAAA;;;ACnFa,IAAA,gBAAA,GAAmB,CAAC,MAAmC,KAAA;AAClE,EAAM,MAAA,YAAA,GAAe,IAAI,eAAgB,EAAA,CAAA;AAGzC,EAAA,MAAA,CAAO,IAAK,CAAA,MAAM,CAAE,CAAA,OAAA,CAAQ,CAAO,GAAA,KAAA;AACjC,IAAM,MAAA,KAAA,GAAQ,OAAO,GAAG,CAAA,CAAA;AACxB,IAAI,IAAA,KAAA,KAAU,KAAa,CAAA,IAAA,KAAA,KAAU,IAAM,EAAA;AACzC,MAAA,YAAA,CAAa,MAAO,CAAA,GAAA,EAAK,MAAO,CAAA,KAAK,CAAC,CAAA,CAAA;AAAA,KACxC;AAAA,GACD,CAAA,CAAA;AAED,EAAA,OAAO,aAAa,QAAS,EAAA,CAAA;AAC/B,EAAA;;;ACVO,IAAM,wBAAsD,GAAA;AAAA,EACjE,GAAK,EAAA,4BAAA;AAAA,EACL,GAAK,EAAA,8BAAA;AAAA,EACL,GAAK,EAAA,6BAAA;AAAA,EACL,GAAK,EAAA,6BAAA;AAAA,EACL,GAAK,EAAA,6BAAA;AAAA,EACL,GAAK,EAAA,+BAAA;AAAA,EACL,GAAK,EAAA,8BAAA;AAAA,EACL,GAAK,EAAA,8BAAA;AACP,EAAA;AAGO,IAAM,aAAgB,GAAA,EAAA;AACtB,IAAM,+BAA6D,GAAA;AAAA,EACxE,GAAK,EAAA,UAAA;AAAA,EACL,GAAK,EAAA,SAAA;AAAA,EACL,GAAK,EAAA,SAAA;AACP,EAAA;AAEO,IAAM,wBAAsD,GAAA;AAAA,EACjE,GAAK,EAAA,SAAA;AAAA,EACL,GAAK,EAAA,WAAA;AAAA,EACL,GAAK,EAAA,UAAA;AAAA,EACL,GAAK,EAAA,UAAA;AACP,EAAA;AAEO,IAAM,0BAAwD,GAAA;AAAA,EACnE,GAAG,+BAAA;AAAA,EACH,GAAG,wBAAA;AACL","file":"chunk-DBQR2OKX.cjs","sourcesContent":["import { Icon, IconProps } from '@chakra-ui/react';\nimport React from 'react';\n\ntype Props = Omit<IconProps, 'dangerouslySetInnerHTML'>;\n\nexport const VOT3Logo: React.FC<Props> = ({ ...props }) => {\n return (\n <Icon viewBox=\"0 0 1684.56 1684.56\" {...props}>\n <rect\n fill=\"#b1f16c\"\n width=\"1684.56\"\n height=\"1684.56\"\n rx=\"157.74\"\n ry=\"157.74\"\n />\n <path\n fill=\"#1d1d1d\"\n d=\"M844.98,1386.28c-41.46,0-75.1-33.9-75.1-75.67,0-142.78-86.35-274.05-158.8-359.01-89.72-105.25-197.89-186.19-265.28-219.75-37.18-18.54-52.43-63.88-34.09-101.35,18.39-37.47,63.39-52.83,100.58-34.35,75.09,37.41,202.11,127.08,312.7,256.82,32.24,37.81,66.77,83.5,97.66,135.35,34.2-108.83,79.98-205.07,121.61-280.12,91.8-165.56,214.37-317.13,319.84-395.63,33.36-24.83,80.39-17.68,105.02,15.93,24.64,33.61,17.55,81-15.81,105.82-88.03,65.47-197.1,201.95-277.93,347.68-70.82,127.7-155.25,323.08-155.25,528.6,0,41.78-33.64,75.67-75.1,75.67h-.06Z\"\n />\n </Icon>\n );\n};\n","import { VeBetterIcon, VTHOLogo } from '@/assets';\nimport { VETLogo } from '@/assets/icons/VechainLogo/VETLogo';\nimport { VOT3Logo } from '@/assets/icons/VechainLogo/VOT3Logo';\n\nexport const TOKEN_LOGOS: Record<string, string> = {\n VET: 'https://cryptologos.cc/logos/vechain-vet-logo.png',\n VTHO: 'https://s2.coinmarketcap.com/static/img/coins/64x64/3012.png',\n B3TR: 'https://vechain.github.io/token-registry/assets/3d55edb42b09a634f7f2f26756a02571de901a5b.png',\n VOT3: 'https://vechain.github.io/token-registry/assets/17ff70aa1d898bc97ad690dbfad1a3b5643f7e0b.png',\n veDelegate:\n 'https://vechain.github.io/token-registry/assets/1c641b86096d56bf13d49f38388accd6db8b8b2e.png',\n USDGLO: 'https://raw.githubusercontent.com/vechain/app-hub/439fba60c80ba2521d435981102d88c4aec050d6/apps/org.glodollar.app/logo.png',\n};\n\nexport const TOKEN_LOGO_COMPONENTS: Record<string, JSX.Element> = {\n VET: <VETLogo />,\n VTHO: <VTHOLogo />,\n B3TR: <VeBetterIcon />,\n VOT3: <VOT3Logo />,\n};\n\nexport const VECHAIN_PRIVY_APP_ID = 'cm4wxxujb022fyujl7g0thb21';\n\nexport const notFoundImage =\n 'https://upload.wikimedia.org/wikipedia/commons/a/a3/Image-not-found.png';\n\nexport enum TogglePassportCheck {\n WhitelistCheck = 1,\n BlacklistCheck = 2,\n SignalingCheck = 3,\n ParticipationScoreCheck = 4,\n GmOwnershipCheck = 5,\n}\n\nexport type PrivyEcosystemApp = {\n id: string;\n name: string;\n website: string;\n};\n\nexport const DEFAULT_PRIVY_ECOSYSTEM_APPS: PrivyEcosystemApp[] = [\n {\n id: 'clz41gcg00e4ay75dmq3uzzgr',\n name: 'Cleanify',\n website: 'https://app.cleanify.vet',\n },\n {\n id: 'cm153hrup0817axti38avlfyg',\n name: 'GreenCart',\n website: 'https://greencart.ai',\n },\n {\n id: 'clv9sfos20j6x1431ga80d95f',\n name: 'Mughsot',\n website: 'https://mugshot.vet/',\n },\n];\n","import { picasso } from '@vechain/picasso';\nimport { BigNumber } from 'bignumber.js';\n\nexport const humanAddress = (\n address: string,\n charAtStart = 6,\n charAtEnd = 4,\n): string => `${address.slice(0, charAtStart)}•••${address.slice(-charAtEnd)}`;\n\nexport const humanDomain = (\n domain: string,\n lengthBefore = 8,\n lengthAfter = 6,\n) => {\n // if domain is smaller than lengthBefore + lengthAfter, return the domain\n if (domain.length <= lengthBefore + lengthAfter) return domain;\n\n const before = domain.substring(0, lengthBefore);\n const after = domain.substring(domain.length - lengthAfter);\n return `${before}•••${after}`;\n};\n\nexport const humanNumber = (\n formattedValue: BigNumber.Value,\n originalValue?: BigNumber.Value,\n symbol: string | null = null,\n) => {\n const suffix = symbol ? ' ' + symbol : '';\n\n originalValue = originalValue || formattedValue;\n const formatter = new Intl.NumberFormat('en', {\n style: 'decimal',\n minimumFractionDigits:\n Number.parseFloat(formattedValue.toString()) % 1 === 0 ? 0 : 2,\n });\n\n let value = formatter.format(\n roundDownSignificantDigits(Number(formattedValue), 2),\n );\n\n //If the original number got scaled down to 0\n if (!isZero(originalValue) && isZero(value)) {\n value = '< 0.01';\n }\n\n return value + suffix;\n};\n\nexport const isZero = (value?: BigNumber.Value) => {\n if (!value && value !== 0) return false;\n return new BigNumber(value).isZero();\n};\n\nexport const getPicassoImage = (address: string, base64 = false): string => {\n const image = picasso(address.toLowerCase());\n if (base64) {\n const base64data = Buffer.from(image, 'utf8').toString('base64');\n return `data:image/svg+xml;base64,${base64data}`;\n }\n return `data:image/svg+xml;utf8,${image}`;\n};\n\n/**\n * Format the number human friendly\n * @param formattedValue - value in string or number\n * @param originalValue - value in string or number to determine if the original value is 0\n * @param symbol - (optional) symbol to append at end of number (with a space)\n * @returns the formatted number\n */\n\nfunction roundDownSignificantDigits(numbers: number, decimals: number = 0) {\n if (typeof numbers !== 'number' || typeof decimals !== 'number') {\n throw new Error(\n 'Invalid input: number and decimals must be of type number',\n );\n }\n\n const significantDigits = parseInt(\n numbers.toExponential().split('e-')[1] || '0',\n 10,\n );\n\n const effectiveDecimals = Math.max(0, decimals + significantDigits);\n const scaleFactor = Math.pow(10, effectiveDecimals);\n\n return Math.floor(numbers * scaleFactor) / scaleFactor;\n}\n","import {\n generatePrivateKey,\n privateKeyToAccount,\n Account,\n} from 'viem/accounts';\n\nexport const randomTransactionUser: {\n privateKey: string;\n account: Account;\n address: string;\n} = (() => {\n const privateKey = generatePrivateKey();\n const account = privateKeyToAccount(privateKey);\n return {\n privateKey,\n account,\n address: account.address,\n };\n})();\n","import crypto from \"crypto\";\nconst PREFIX = \"0x\";\nconst PREFIX_REGEX = /^0[xX]/;\nconst HEX_REGEX = /^(0[xX])?[a-fA-F0-9]+$/;\n\n/**\n * Returns the provied hex string with the hex prefix removed.\n * If the prefix doesn't exist the hex is returned unmodified\n * @param hex - the input hex string\n * @returns the input hex string with the hex prefix removed\n * @throws an error if the input is not a valid hex string\n */\nexport const removePrefix = (hex: string): string => {\n validate(hex);\n return hex.replace(PREFIX_REGEX, \"\");\n};\n\n/**\n * Returns the provided hex string with the hex prefix added.\n * If the prefix already exists the string is returned unmodified.\n * If the string contains an UPPER case `X` in the prefix it will be replaced with a lower case `x`\n * @param hex - the input hex string\n * @returns the input hex string with the hex prefix added\n * @throws an error if the input is not a valid hex string\n */\nexport const addPrefix = (hex: string): string => {\n validate(hex);\n return PREFIX_REGEX.test(hex)\n ? hex.replace(PREFIX_REGEX, PREFIX)\n : `${PREFIX}${hex}`;\n};\n\n/**\n * Validate the hex string. Throws an Error if not valid\n * @param hex - the input hex string\n * @throws an error if the input is not a valid hex string\n */\nexport const validate = (hex: string) => {\n if (!isValid(hex)) throw Error(\"Provided hex value is not valid\");\n};\n\n/**\n * Check if input string is valid\n * @param hex - the input hex string\n * @returns boolean representing whether the input hex is valid\n */\nexport const isValid = (hex?: string | null): boolean => {\n return !!hex && HEX_REGEX.test(hex);\n};\n\nexport const isInvalid = (hex?: string | null): boolean => {\n return !isValid(hex);\n};\n\nexport const normalize = (hex: string): string => {\n return addPrefix(hex.toLowerCase().trim());\n};\n\nexport const compare = (hex1: string, hex2: string): boolean => {\n try {\n return (\n removePrefix(hex1).toLowerCase() ===\n removePrefix(hex2).toLowerCase()\n );\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (e) {\n return false;\n }\n};\n\n/**\n * Generate a random hex string of the defined length\n * @param size - the length of the random hex output\n * @returns a random hex string of length `size`\n */\nexport const generateRandom = (size: number): string => {\n if (size < 1) throw Error(\"Size must be > 0\");\n const randBuffer = crypto.randomBytes(Math.ceil(size / 2));\n if (!randBuffer) throw Error(\"Failed to generate random hex\");\n return `${PREFIX}${randBuffer.toString(\"hex\").substring(0, size)}`;\n};\n","import { address } from \"thor-devkit\";\nimport * as HexUtils from \"./HexUtils\";\n\n/**\n * Checks if two addresses are equal. Returns true if both values are strings AND:\n * - The two values are equal OR\n * - The checksumed addresses are equal\n *\n * @param address1\n * @param address2\n */\nexport const compareAddresses = (\n address1?: string,\n address2?: string\n): boolean => {\n if (!address1 || !address2) return false;\n\n if (address2 === address1) {\n return true;\n }\n\n try {\n return HexUtils.normalize(address1) === HexUtils.normalize(address2);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (e) {\n return false;\n }\n};\n\nexport const compareListOfAddresses = (add1: string[], add2: string[]) => {\n if (add1.length !== add2.length) return false;\n const sortedAdd1 = [...add1]\n .map((e) => e.toLowerCase())\n .sort((a, b) => a.localeCompare(b));\n const sortedAdd2 = [...add2]\n .map((e) => e.toLowerCase())\n .sort((a, b) => a.localeCompare(b));\n\n for (let i = 0; i < sortedAdd1.length; i++) {\n if (!compareAddresses(sortedAdd1[i], sortedAdd2[i])) return false;\n }\n\n return true;\n};\n\nexport const regexPattern = () => {\n return /^0x[a-fA-F0-9]{40}$/;\n};\n\nexport const isValidAddress = (addr: string | undefined | null): boolean => {\n try {\n if (typeof addr !== \"string\") return false;\n address.toChecksumed(HexUtils.addPrefix(addr));\n return true;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (e) {\n return false;\n }\n};\n\nexport const leftPadWithZeros = (str: string, length: number): string => {\n // Remove '0x' prefix if it exists\n const cleanStr = str.startsWith(\"0x\") ? str.slice(2) : str;\n if (cleanStr.length > length) {\n throw new Error(\"Input string is longer than the specified length\");\n }\n // Pad the string to the specified length\n const paddedStr = cleanStr.padStart(length, \"0\");\n return `0x${paddedStr}`;\n};\n","import { AppConfig } from '.';\nconst config: AppConfig = {\n ipfsFetchingService: 'https://api.dev.gateway-proxy.vechain.org/ipfs',\n ipfsPinningService:\n 'https://api.dev.gateway-proxy.vechain.org/api/v1/pinning/pinFileToIPFS',\n vthoContractAddress: '0x0000000000000000000000000000456E65726779',\n b3trContractAddress: '0xd31A6f2DBa8785cE41AB68Ea192791B5175309F4',\n vot3ContractAddress: '0x028Af33230576c1e073C8245F72a7A4aa53564E4',\n b3trGovernorAddress: '0x36E0e9b46D56dF12Dd69fD560e41954C73cE9ded',\n timelockContractAddress: '0x125389845c93Efcf6471BA8BE1AC19c11e128603',\n xAllocationPoolContractAddress:\n '0xC8232c91E2f744E533322B99F95f809b9f7ec446',\n xAllocationVotingContractAddress:\n '0x074F093f4C534a16cDD09cb4b2669713218A762a',\n emissionsContractAddress: '0x6a084E85f38400790043788FcCee39595616aa3A',\n voterRewardsContractAddress: '0xbAb852081C459c0060960287aDcf9a0C2c1dc4b8',\n galaxyMemberContractAddress: '0xbdA1cff75d2D43AB9186Ada41fECF79e25c49Ba3',\n treasuryContractAddress: '0xe9414513Fe0e3b9bf7a61eC5c1AC7Df943fB3e77',\n x2EarnAppsContractAddress: '0x432C46476f4970575C43B19588A170D237dC4929',\n x2EarnRewardsPoolContractAddress:\n '0x134E4Fce6761f660401808CF86aE0e62cE52a81E',\n nodeManagementContractAddress: '0xa96B5057171D797298A71178b48449A7bC615D8E',\n veBetterPassportContractAddress:\n '0x8db6D14452fE36ba86C341AfEFaC0f90A0Db2bcb',\n x2EarnCreatorContractAddress: '0x4e5f7eb452e9ecd75c0B29e3540014cBe01bBF52',\n veDelegate: '0xfc32a9895C78CE00A1047d602Bd81Ea8134CC32b',\n veDelegateVotes: '0xeb71148c9B3cd57e228c2152d79f6e78F5F1ef9a',\n veDelegateTokenContractAddress:\n '0xD3f7b82Df5705D34f64C634d2dEf6B1cB3116950',\n oracleContractAddress: '0x49eC7192BF804Abc289645ca86F1eD01a6C17713',\n accountFactoryAddress: '0xC06Ad8573022e2BE416CA89DA47E8c592971679A',\n cleanifyCampaignsContractAddress:\n '0x7a11D63338576aE8c038868433ea199d7E5319A6',\n cleanifyChallengesContractAddress:\n '0xa58681692AdDD2e8E37f9113D40Bb9253C03F65e',\n veWorldSubdomainClaimerContractAddress:\n '0x0000000000000000000000000000000000000000',\n vetDomainsContractAddress: '0x0000000000000000000000000000000000000000',\n vetDomainsPublicResolverAddress:\n '0x0000000000000000000000000000000000000000',\n vetDomainsReverseRegistrarAddress:\n '0x5c970901a587BA3932C835D4ae5FAE2BEa7e78Bc',\n vnsResolverAddress: '0x0000000000000000000000000000000000000000',\n gloDollarContractAddress: '0x0000000000000000000000000000000000000000',\n vetDomainAvatarUrl: 'https://testnet.vet.domains/api/avatar',\n indexerUrl: 'https://b3tr.testnet.vechain.org/api/v1',\n b3trIndexerUrl: 'https://b3tr.testnet.vechain.org/api/v1',\n graphQlIndexerUrl: 'https://graph.vet/subgraphs/name/vns',\n nodeUrl: 'http://localhost:8669',\n network: {\n id: 'solo',\n name: 'solo',\n type: 'solo',\n defaultNet: true,\n urls: ['http://localhost:8669'],\n explorerUrl: 'https://explore-testnet.vechain.org',\n blockTime: 10000,\n genesis: {\n number: 0,\n id: '0x00000000c05a20fbca2bf6ae3affba6af4a74b800b585bf7a4988aba7aea69f6',\n size: 170,\n parentID:\n '0xffffffff53616c757465202620526573706563742c20457468657265756d2100',\n timestamp: 1530316800,\n gasLimit: 10000000,\n beneficiary: '0x0000000000000000000000000000000000000000',\n gasUsed: 0,\n totalScore: 0,\n txsRoot:\n '0x45b0cfc220ceec5b7c1c62c4d4193d38e4eba48e8815729ce75f9c0ab0e4c1c0',\n txsFeatures: 0,\n stateRoot:\n '0x93de0ffb1f33bc0af053abc2a87c4af44594f5dcb1cb879dd823686a15d68550',\n receiptsRoot:\n '0x45b0cfc220ceec5b7c1c62c4d4193d38e4eba48e8815729ce75f9c0ab0e4c1c0',\n signer: '0x0000000000000000000000000000000000000000',\n isTrunk: true,\n transactions: [],\n },\n },\n explorerUrl: 'https://explore-testnet.vechain.org',\n};\nexport default config;\n","import { AppConfig } from '.';\n\nconst config: AppConfig = {\n ipfsFetchingService: 'https://api.dev.gateway-proxy.vechain.org/ipfs',\n ipfsPinningService:\n 'https://api.dev.gateway-proxy.vechain.org/api/v1/pinning/pinFileToIPFS',\n vthoContractAddress: '0x0000000000000000000000000000456E65726779',\n b3trContractAddress: '0xbf64cf86894Ee0877C4e7d03936e35Ee8D8b864F',\n vot3ContractAddress: '0xa704c45971995467696EE9544Da77DD42Bc9706E',\n b3trGovernorAddress: '0xDF5E114D391CAC840529802fe8D01f6bdeBE41eC',\n timelockContractAddress: '0x30ee94F303643902a68aD8A7A6456cA69d763192',\n xAllocationPoolContractAddress:\n '0x9B9CA9D0C41Add1d204f90BA0E9a6844f1843A84',\n xAllocationVotingContractAddress:\n '0x5859ff910d8b0c127364c98E24233b0af7443c1c',\n emissionsContractAddress: '0x3D7616213191a10460e49CfdB7edBf88D6a10942',\n voterRewardsContractAddress: '0x2E47fc4aabB3403037fB5E1f38995E7a91Ce8Ed2',\n galaxyMemberContractAddress: '0xa9aC49C030c1148b95F056E86f2531f8F3d5bf27',\n x2EarnCreatorContractAddress: '',\n nodeManagementContractAddress: '',\n x2EarnAppsContractAddress: '0xcB23Eb1bBD5c07553795b9538b1061D0f4ABA153',\n treasuryContractAddress: '0x039893EBe092A2D22B08E2b029735D211bfF7F50',\n x2EarnRewardsPoolContractAddress:\n '0x5F8f86B8D0Fa93cdaE20936d150175dF0205fB38',\n veBetterPassportContractAddress: '',\n veDelegate: '0xfc32a9895C78CE00A1047d602Bd81Ea8134CC32b',\n veDelegateVotes: '0xeb71148c9B3cd57e228c2152d79f6e78F5F1ef9a',\n veDelegateTokenContractAddress:\n '0xD3f7b82Df5705D34f64C634d2dEf6B1cB3116950',\n oracleContractAddress: '0xdcCAaBd81B38e0dEEf4c202bC7F1261A4D9192C6',\n accountFactoryAddress: '0x713b908Bcf77f3E00EFEf328E50b657a1A23AeaF',\n cleanifyCampaignsContractAddress:\n '0x22d19ACBD2cBf6b2B6C546395c26B9Cb448248BF',\n cleanifyChallengesContractAddress:\n '0x8Cc885DC3e5c376632CCEA0e8e1a51F1B3572442',\n veWorldSubdomainClaimerContractAddress:\n '0xe5af50e7ad1aaab4fbe4efbb2b30f764013918b3',\n vetDomainsContractAddress: '0xcBFB30c1F267914816668d53AcBA7bA7c9806D13',\n vetDomainsPublicResolverAddress:\n '0xA6eFd130085a127D090ACb0b100294aD1079EA6f',\n vetDomainsReverseRegistrarAddress:\n '0x6878f1aD5e3015310CfE5B38d7B7071C5D8818Ca',\n vnsResolverAddress: '0xc403b8EA53F707d7d4de095f0A20bC491Cf2bc94',\n gloDollarContractAddress: '0x0000000000000000000000000000000000000000',\n vetDomainAvatarUrl: 'https://testnet.vet.domains/api/avatar',\n indexerUrl: 'https://indexer.testnet.vechain.org/api/v1',\n b3trIndexerUrl: 'https://b3tr.testnet.vechain.org/api/v1',\n graphQlIndexerUrl: 'https://graph.vet/subgraphs/name/vns',\n nodeUrl: 'https://testnet.vechain.org',\n network: {\n id: 'testnet',\n name: 'testnet',\n type: 'test',\n defaultNet: true,\n urls: [\n 'https://testnet.vechain.org',\n 'https://vethor-node-test.vechaindev.com',\n 'https://sync-testnet.veblocks.net',\n 'https://testnet.vecha.in',\n ],\n explorerUrl: 'https://insight.vecha.in/#/test',\n blockTime: 10000,\n genesis: {\n number: 0,\n id: '0x000000000b2bce3c70bc649a02749e8687721b09ed2e15997f466536b20bb127',\n size: 170,\n parentID:\n '0xffffffff00000000000000000000000000000000000000000000000000000000',\n timestamp: 1530014400,\n gasLimit: 10000000,\n beneficiary: '0x0000000000000000000000000000000000000000',\n gasUsed: 0,\n totalScore: 0,\n txsRoot:\n '0x45b0cfc220ceec5b7c1c62c4d4193d38e4eba48e8815729ce75f9c0ab0e4c1c0',\n txsFeatures: 0,\n stateRoot:\n '0x4ec3af0acbad1ae467ad569337d2fe8576fe303928d35b8cdd91de47e9ac84bb',\n receiptsRoot:\n '0x45b0cfc220ceec5b7c1c62c4d4193d38e4eba48e8815729ce75f9c0ab0e4c1c0',\n signer: '0x0000000000000000000000000000000000000000',\n isTrunk: true,\n transactions: [],\n },\n },\n explorerUrl: 'https://explore-testnet.vechain.org/transactions',\n};\nexport default config;\n","import { AppConfig } from '.';\nconst config: AppConfig = {\n ipfsFetchingService: 'https://api.gateway-proxy.vechain.org/ipfs',\n indexerUrl: 'https://indexer.mainnet.vechain.org/api/v1',\n ipfsPinningService:\n 'https://api.gateway-proxy.vechain.org/api/v1/pinning/pinFileToIPFS',\n b3trIndexerUrl: 'https://b3tr.mainnet.vechain.org/api/v1',\n graphQlIndexerUrl: 'https://graph.vet/subgraphs/name/vns',\n nodeUrl: 'https://mainnet.vechain.org',\n network: {\n id: 'main',\n name: 'main',\n type: 'main',\n defaultNet: true,\n urls: [\n 'https://mainnet.vechain.org',\n 'https://vethor-node.vechain.com',\n 'https://mainnet.veblocks.net',\n 'https://mainnet.vecha.in',\n ],\n explorerUrl: 'https://vechainstats.com',\n blockTime: 10000,\n genesis: {\n number: 0,\n id: '0x00000000851caf3cfdb6e899cf5958bfb1ac3413d346d43539627e6be7ec1b4a',\n size: 170,\n parentID:\n '0xffffffff53616c757465202620526573706563742c20457468657265756d2100',\n timestamp: 1530316800,\n gasLimit: 10000000,\n beneficiary: '0x0000000000000000000000000000000000000000',\n gasUsed: 0,\n totalScore: 0,\n txsRoot:\n '0x45b0cfc220ceec5b7c1c62c4d4193d38e4eba48e8815729ce75f9c0ab0e4c1c0',\n txsFeatures: 0,\n stateRoot:\n '0x09bfdf9e24dd5cd5b63f3c1b5d58b97ff02ca0490214a021ed7d99b93867839c',\n receiptsRoot:\n '0x45b0cfc220ceec5b7c1c62c4d4193d38e4eba48e8815729ce75f9c0ab0e4c1c0',\n signer: '0x0000000000000000000000000000000000000000',\n isTrunk: true,\n transactions: [],\n },\n },\n explorerUrl: 'https://vechainstats.com/transaction',\n // general\n vthoContractAddress: '0x0000000000000000000000000000456E65726779',\n //VeBetterDAO\n b3trContractAddress: '0x5ef79995FE8a89e0812330E4378eB2660ceDe699',\n vot3ContractAddress: '0x76Ca782B59C74d088C7D2Cce2f211BC00836c602',\n b3trGovernorAddress: '0x1c65C25fABe2fc1bCb82f253fA0C916a322f777C',\n timelockContractAddress: '0x7B7EaF620d88E38782c6491D7Ce0B8D8cF3227e4',\n xAllocationPoolContractAddress:\n '0x4191776F05f4bE4848d3f4d587345078B439C7d3',\n xAllocationVotingContractAddress:\n '0x89A00Bb0947a30FF95BEeF77a66AEdE3842Fe5B7',\n emissionsContractAddress: '0xDf94739bd169C84fe6478D8420Bb807F1f47b135',\n voterRewardsContractAddress: '0x838A33AF756a6366f93e201423E1425f67eC0Fa7',\n galaxyMemberContractAddress: '0x93B8cD34A7Fc4f53271b9011161F7A2B5fEA9D1F',\n treasuryContractAddress: '0xD5903BCc66e439c753e525F8AF2FeC7be2429593',\n x2EarnAppsContractAddress: '0x8392B7CCc763dB03b47afcD8E8f5e24F9cf0554D',\n x2EarnRewardsPoolContractAddress:\n '0x6Bee7DDab6c99d5B2Af0554EaEA484CE18F52631',\n x2EarnCreatorContractAddress: '0xe8e96a768ffd00417d4bd985bec9EcfC6F732a7f',\n nodeManagementContractAddress: '0xB0EF9D89C6b49CbA6BBF86Bf2FDf0Eee4968c6AB',\n veBetterPassportContractAddress:\n '0x35a267671d8EDD607B2056A9a13E7ba7CF53c8b3',\n //veDelegate\n veDelegate: '0xfc32a9895C78CE00A1047d602Bd81Ea8134CC32b',\n veDelegateVotes: '0xeb71148c9B3cd57e228c2152d79f6e78F5F1ef9a',\n veDelegateTokenContractAddress:\n '0xD3f7b82Df5705D34f64C634d2dEf6B1cB3116950',\n //utility\n oracleContractAddress: '0x49eC7192BF804Abc289645ca86F1eD01a6C17713',\n accountFactoryAddress: '0xC06Ad8573022e2BE416CA89DA47E8c592971679A',\n //cleanify\n cleanifyCampaignsContractAddress:\n '0x7a11D63338576aE8c038868433ea199d7E5319A6',\n cleanifyChallengesContractAddress:\n '0xa58681692AdDD2e8E37f9113D40Bb9253C03F65e',\n veWorldSubdomainClaimerContractAddress:\n '0xa4173c32fe8a61a8fd0d0234675b559fc360446a',\n vetDomainsContractAddress: '0xa9231da8BF8D10e2df3f6E03Dd5449caD600129b',\n vetDomainsPublicResolverAddress:\n '0xabac49445584C8b6c1472b030B1076Ac3901D7cf',\n vetDomainsReverseRegistrarAddress:\n '0x5c970901a587BA3932C835D4ae5FAE2BEa7e78Bc',\n vnsResolverAddress: '0xA11413086e163e41901bb81fdc5617c975Fa5a1A',\n vetDomainAvatarUrl: 'https://vet.domains/api/avatar',\n gloDollarContractAddress: '0x29c630cce4ddb23900f5fe66ab55e488c15b9f5e',\n};\nexport default config;\n","import localConfig from './solo';\nimport testnetConfig from './testnet';\nimport mainnetConfig from './mainnet';\nimport { Network, NETWORK_TYPE } from './network';\n\nexport type AppConfig = {\n ipfsFetchingService: string;\n ipfsPinningService: string;\n vthoContractAddress: string;\n b3trContractAddress: string;\n vot3ContractAddress: string;\n b3trGovernorAddress: string;\n timelockContractAddress: string;\n xAllocationPoolContractAddress: string;\n xAllocationVotingContractAddress: string;\n emissionsContractAddress: string;\n voterRewardsContractAddress: string;\n galaxyMemberContractAddress: string;\n treasuryContractAddress: string;\n x2EarnAppsContractAddress: string;\n x2EarnCreatorContractAddress: string;\n x2EarnRewardsPoolContractAddress: string;\n nodeManagementContractAddress: string;\n veBetterPassportContractAddress: string;\n veDelegate: string;\n veDelegateVotes: string;\n veDelegateTokenContractAddress: string;\n oracleContractAddress: string;\n accountFactoryAddress: string;\n cleanifyCampaignsContractAddress: string;\n cleanifyChallengesContractAddress: string;\n veWorldSubdomainClaimerContractAddress: string;\n vetDomainsContractAddress: string;\n vetDomainsPublicResolverAddress: string;\n vetDomainsReverseRegistrarAddress: string;\n vnsResolverAddress: string;\n gloDollarContractAddress: string;\n vetDomainAvatarUrl: string;\n nodeUrl: string;\n indexerUrl: string;\n b3trIndexerUrl: string;\n graphQlIndexerUrl: string;\n network: Network;\n explorerUrl: string;\n};\n\nexport const getConfig = (env: NETWORK_TYPE): AppConfig => {\n if (env === 'solo') return localConfig;\n if (env === 'test') return testnetConfig;\n if (env === 'main') return mainnetConfig;\n throw new Error(`Unsupported NETWORK_TYPE ${env}`);\n};\n","import { getConfig } from '@/config';\nimport { NETWORK_TYPE } from '@/config/network';\n\n/**\n * Validate IPFS URI strings. An example of a valid IPFS URI is:\n * - ipfs://QmfSTia1TJUiKQ2fyW9NTPzEKNdjMGzbUgrC3QPSTpkum6/406.json\n * - ipfs://QmVPqKfwRXjg5Fqwy6RNRbKR2ZP4pKKVLvmfjmhQfdM3MH/4\n * - ipfs://QmVPqKfwRXjg5Fqwy6RNRbKR2ZP4pKKVLvmfjmhQfdM3MH\n * @param uri\n * @returns\n */\nexport const validateIpfsUri = (uri: string): boolean => {\n const trimmedUri = uri.trim();\n return /^ipfs:\\/\\/[a-zA-Z0-9]+(\\/[^/]+)*\\/?$/.test(trimmedUri);\n};\n\n/**\n * Converts a CID to an IPFS native URL.\n *\n * @param cid - The CID to convert.\n * @param fileName - The name of the file to append to the URL.\n *\n * @returns The IPFS URL in the format `ipfs://${cid}/${fileName}`.\n */\nexport function toIPFSURL(cid: string, fileName?: string): string {\n return `ipfs://${cid}/${fileName ?? ''}`;\n}\n\n/**\n * Uploads a blob to IPFS.\n * @param blob The Blob object to upload.\n * @param filename A name for the file in the FormData payload.\n * @param networkType The network type to use for the IPFS pinning service.\n * @returns The IPFS hash of the uploaded blob.\n */\nexport async function uploadBlobToIPFS(\n blob: Blob,\n filename: string,\n networkType: NETWORK_TYPE,\n): Promise<string> {\n try {\n const form = new FormData();\n form.append('file', blob, filename);\n const response = await fetch(\n getConfig(networkType).ipfsPinningService,\n {\n method: 'POST',\n headers: {\n 'X-Project-Id': 'vechain-kit',\n },\n body: form,\n },\n );\n\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n\n const data = await response.json();\n return data.IpfsHash;\n } catch (error) {\n console.error('Error uploading blob:', error);\n throw new Error('Failed to upload blob to IPFS');\n }\n}\n","import { NFTMediaType } from \"@/types\"\n\nconst isValidMimeType = (mime: string, type: NFTMediaType[]) => {\n const found = type.find(t => {\n if (mime?.split(\"/\")[0] === t) {\n return true\n }\n })\n\n return !!found\n}\n\nexport const resolveMediaTypeFromMimeType = (mimeType: string): NFTMediaType => {\n if (isValidMimeType(mimeType, [NFTMediaType.IMAGE])) return NFTMediaType.IMAGE\n else if (isValidMimeType(mimeType, [NFTMediaType.VIDEO])) return NFTMediaType.VIDEO\n\n return NFTMediaType.UNKNOWN\n}\n","import { NETWORK_TYPE } from '@/config/network';\nimport { validateIpfsUri } from './ipfs';\nimport { getConfig } from '@/config';\n\n/**\n * Convert a URI to a URL\n * We support both IPFS and Arweave URIs. Both should be converted to their https gateway URLs.\n * All other URIs should pass through unchanged.\n *\n * @param uri\n */\nexport const convertUriToUrl = (uri: string, networkType: NETWORK_TYPE) => {\n // if it is a data uri just return it\n if (uri.startsWith('data:')) return uri;\n\n const splitUri = uri?.split('://');\n if (splitUri.length !== 2) return null;\n // if (splitUri.length !== 2) throw new Error(`Invalid URI ${uri}`);\n\n const protocol = splitUri?.[0]?.trim();\n const uriWithoutProtocol = splitUri[1];\n\n switch (protocol) {\n case 'ipfs':\n if (!validateIpfsUri(uri))\n throw new Error(`Invalid IPFS URI ${uri}`);\n\n // Check cache for IPFS document\n return `${\n getConfig(networkType).ipfsFetchingService\n }/${uriWithoutProtocol}`;\n\n case 'ar':\n return `https://arweave.net/${uriWithoutProtocol}`;\n\n default:\n return uri;\n }\n};\n","export const gmNfts = [\n {\n level: '1',\n name: 'Earth',\n image: '/images/nft-levels/0.png',\n multiplier: 1,\n b3trToUpgrade: 0,\n },\n {\n level: '2',\n name: 'Moon',\n image: '/images/nft-levels/1.png',\n multiplier: 1.1,\n b3trToUpgrade: 10_000,\n },\n {\n level: '3',\n name: 'Mercury',\n image: '/images/nft-levels/2.png',\n multiplier: 1.2,\n b3trToUpgrade: 25_000,\n },\n {\n level: '4',\n name: 'Venus',\n image: '/images/nft-levels/3.png',\n multiplier: 1.5,\n b3trToUpgrade: 50_000,\n },\n {\n level: '5',\n name: 'Mars',\n image: '/images/nft-levels/4.png',\n multiplier: 2,\n b3trToUpgrade: 100_000,\n },\n {\n level: '6',\n name: 'Jupiter',\n image: '/images/nft-levels/5.png',\n multiplier: 2.5,\n b3trToUpgrade: 250_000,\n },\n {\n level: '7',\n name: 'Saturn',\n image: '/images/nft-levels/6.png',\n multiplier: 3,\n b3trToUpgrade: 500_000,\n },\n {\n level: '8',\n name: 'Uranus',\n image: '/images/nft-levels/7.png',\n multiplier: 5,\n b3trToUpgrade: 2_500_000,\n },\n {\n level: '9',\n name: 'Neptune',\n image: '/images/nft-levels/8.png',\n multiplier: 10,\n b3trToUpgrade: 5_000_000,\n },\n {\n level: '10',\n name: 'Galaxy',\n image: '/images/nft-levels/9.png',\n multiplier: 25,\n b3trToUpgrade: 25_000_000,\n },\n];\n\n/**\n * Maps the XNode level to the GM starting level.\n */\nexport const xNodeToGMstartingLevel: Record<number, number> = {\n 1: 2,\n 2: 4,\n 3: 6,\n 4: 2,\n 5: 4,\n 6: 6,\n 7: 7,\n};\n","// Function to build query string dynamically\nexport const buildQueryString = (params: { [key: string]: any }) => {\n const searchParams = new URLSearchParams()\n\n // Iterate over the parameters and append only the defined values\n Object.keys(params).forEach(key => {\n const value = params[key]\n if (value !== undefined && value !== null) {\n searchParams.append(key, String(value))\n }\n })\n\n return searchParams.toString()\n}\n","/**\n * Map strength level coming from contract to hq image\n */\nexport const NodeStrengthLevelToImage: { [key: string]: string } = {\n \"0\": \"/images/vnt/00-noNode.webp\",\n \"1\": \"/images/vnt/01-strength.webp\",\n \"2\": \"/images/vnt/02-thunder.webp\",\n \"3\": \"/images/vnt/03-mjolnir.webp\",\n \"4\": \"/images/vnt/04-vethorX.webp\",\n \"5\": \"/images/vnt/05-strengthX.webp\",\n \"6\": \"/images/vnt/06-thunderX.webp\",\n \"7\": \"/images/vnt/07-mjolnirX.webp\",\n}\n\n//after this level the nfts are considered xNode\nexport const MinXNodeLevel = 4\nexport const EconomicNodeStrengthLevelToName: { [key: string]: string } = {\n \"1\": \"Strength\",\n \"2\": \"Thunder\",\n \"3\": \"Mjolnir\",\n}\n\nexport const XNodeStrengthLevelToName: { [key: string]: string } = {\n \"4\": \"VeThorX\",\n \"5\": \"StrengthX\",\n \"6\": \"ThunderX\",\n \"7\": \"MjolnirX\",\n}\n\nexport const allNodeStrengthLevelToName: { [key: string]: string } = {\n ...EconomicNodeStrengthLevelToName,\n ...XNodeStrengthLevelToName,\n}\n"]}
|
|
@@ -33,7 +33,8 @@ var TOKEN_LOGOS = {
|
|
|
33
33
|
VTHO: "https://s2.coinmarketcap.com/static/img/coins/64x64/3012.png",
|
|
34
34
|
B3TR: "https://vechain.github.io/token-registry/assets/3d55edb42b09a634f7f2f26756a02571de901a5b.png",
|
|
35
35
|
VOT3: "https://vechain.github.io/token-registry/assets/17ff70aa1d898bc97ad690dbfad1a3b5643f7e0b.png",
|
|
36
|
-
veDelegate: "https://vechain.github.io/token-registry/assets/1c641b86096d56bf13d49f38388accd6db8b8b2e.png"
|
|
36
|
+
veDelegate: "https://vechain.github.io/token-registry/assets/1c641b86096d56bf13d49f38388accd6db8b8b2e.png",
|
|
37
|
+
USDGLO: "https://raw.githubusercontent.com/vechain/app-hub/439fba60c80ba2521d435981102d88c4aec050d6/apps/org.glodollar.app/logo.png"
|
|
37
38
|
};
|
|
38
39
|
var TOKEN_LOGO_COMPONENTS = {
|
|
39
40
|
VET: /* @__PURE__ */ jsx(VETLogo, {}),
|
|
@@ -216,6 +217,7 @@ var config = {
|
|
|
216
217
|
vetDomainsPublicResolverAddress: "0x0000000000000000000000000000000000000000",
|
|
217
218
|
vetDomainsReverseRegistrarAddress: "0x5c970901a587BA3932C835D4ae5FAE2BEa7e78Bc",
|
|
218
219
|
vnsResolverAddress: "0x0000000000000000000000000000000000000000",
|
|
220
|
+
gloDollarContractAddress: "0x0000000000000000000000000000000000000000",
|
|
219
221
|
vetDomainAvatarUrl: "https://testnet.vet.domains/api/avatar",
|
|
220
222
|
indexerUrl: "https://b3tr.testnet.vechain.org/api/v1",
|
|
221
223
|
b3trIndexerUrl: "https://b3tr.testnet.vechain.org/api/v1",
|
|
@@ -284,6 +286,7 @@ var config2 = {
|
|
|
284
286
|
vetDomainsPublicResolverAddress: "0xA6eFd130085a127D090ACb0b100294aD1079EA6f",
|
|
285
287
|
vetDomainsReverseRegistrarAddress: "0x6878f1aD5e3015310CfE5B38d7B7071C5D8818Ca",
|
|
286
288
|
vnsResolverAddress: "0xc403b8EA53F707d7d4de095f0A20bC491Cf2bc94",
|
|
289
|
+
gloDollarContractAddress: "0x0000000000000000000000000000000000000000",
|
|
287
290
|
vetDomainAvatarUrl: "https://testnet.vet.domains/api/avatar",
|
|
288
291
|
indexerUrl: "https://indexer.testnet.vechain.org/api/v1",
|
|
289
292
|
b3trIndexerUrl: "https://b3tr.testnet.vechain.org/api/v1",
|
|
@@ -399,7 +402,8 @@ var config3 = {
|
|
|
399
402
|
vetDomainsPublicResolverAddress: "0xabac49445584C8b6c1472b030B1076Ac3901D7cf",
|
|
400
403
|
vetDomainsReverseRegistrarAddress: "0x5c970901a587BA3932C835D4ae5FAE2BEa7e78Bc",
|
|
401
404
|
vnsResolverAddress: "0xA11413086e163e41901bb81fdc5617c975Fa5a1A",
|
|
402
|
-
vetDomainAvatarUrl: "https://vet.domains/api/avatar"
|
|
405
|
+
vetDomainAvatarUrl: "https://vet.domains/api/avatar",
|
|
406
|
+
gloDollarContractAddress: "0x29c630cce4ddb23900f5fe66ab55e488c15b9f5e"
|
|
403
407
|
};
|
|
404
408
|
var mainnet_default = config3;
|
|
405
409
|
|
|
@@ -602,5 +606,5 @@ var allNodeStrengthLevelToName = {
|
|
|
602
606
|
};
|
|
603
607
|
|
|
604
608
|
export { DEFAULT_PRIVY_ECOSYSTEM_APPS, EconomicNodeStrengthLevelToName, MinXNodeLevel, NodeStrengthLevelToImage, TOKEN_LOGOS, TOKEN_LOGO_COMPONENTS, TogglePassportCheck, VECHAIN_PRIVY_APP_ID, XNodeStrengthLevelToName, allNodeStrengthLevelToName, buildQueryString, compareAddresses, compareListOfAddresses, convertUriToUrl, getConfig, getPicassoImage, gmNfts, humanAddress, humanDomain, humanNumber, isValidAddress, isZero, leftPadWithZeros, notFoundImage, randomTransactionUser, regexPattern, resolveMediaTypeFromMimeType, toIPFSURL, uploadBlobToIPFS, validateIpfsUri, xNodeToGMstartingLevel };
|
|
605
|
-
//# sourceMappingURL=chunk-
|
|
606
|
-
//# sourceMappingURL=chunk-
|
|
609
|
+
//# sourceMappingURL=chunk-RSEKQ6PP.js.map
|
|
610
|
+
//# sourceMappingURL=chunk-RSEKQ6PP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/assets/icons/VechainLogo/VOT3Logo.tsx","../src/utils/Constants.tsx","../src/utils/FormattingUtils.tsx","../src/utils/RandomTxForwarder.tsx","../src/utils/HexUtils.ts","../src/utils/AddressUtils.ts","../src/config/solo.ts","../src/config/testnet.ts","../src/config/mainnet.ts","../src/config/index.ts","../src/utils/ipfs.ts","../src/utils/media.ts","../src/utils/uri.ts","../src/utils/gmNfts.ts","../src/utils/buildQueryString.ts","../src/utils/XNode.ts"],"names":["jsx","TogglePassportCheck","address","config"],"mappings":"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","file":"chunk-RSEKQ6PP.js","sourcesContent":["import { Icon, IconProps } from '@chakra-ui/react';\nimport React from 'react';\n\ntype Props = Omit<IconProps, 'dangerouslySetInnerHTML'>;\n\nexport const VOT3Logo: React.FC<Props> = ({ ...props }) => {\n return (\n <Icon viewBox=\"0 0 1684.56 1684.56\" {...props}>\n <rect\n fill=\"#b1f16c\"\n width=\"1684.56\"\n height=\"1684.56\"\n rx=\"157.74\"\n ry=\"157.74\"\n />\n <path\n fill=\"#1d1d1d\"\n d=\"M844.98,1386.28c-41.46,0-75.1-33.9-75.1-75.67,0-142.78-86.35-274.05-158.8-359.01-89.72-105.25-197.89-186.19-265.28-219.75-37.18-18.54-52.43-63.88-34.09-101.35,18.39-37.47,63.39-52.83,100.58-34.35,75.09,37.41,202.11,127.08,312.7,256.82,32.24,37.81,66.77,83.5,97.66,135.35,34.2-108.83,79.98-205.07,121.61-280.12,91.8-165.56,214.37-317.13,319.84-395.63,33.36-24.83,80.39-17.68,105.02,15.93,24.64,33.61,17.55,81-15.81,105.82-88.03,65.47-197.1,201.95-277.93,347.68-70.82,127.7-155.25,323.08-155.25,528.6,0,41.78-33.64,75.67-75.1,75.67h-.06Z\"\n />\n </Icon>\n );\n};\n","import { VeBetterIcon, VTHOLogo } from '@/assets';\nimport { VETLogo } from '@/assets/icons/VechainLogo/VETLogo';\nimport { VOT3Logo } from '@/assets/icons/VechainLogo/VOT3Logo';\n\nexport const TOKEN_LOGOS: Record<string, string> = {\n VET: 'https://cryptologos.cc/logos/vechain-vet-logo.png',\n VTHO: 'https://s2.coinmarketcap.com/static/img/coins/64x64/3012.png',\n B3TR: 'https://vechain.github.io/token-registry/assets/3d55edb42b09a634f7f2f26756a02571de901a5b.png',\n VOT3: 'https://vechain.github.io/token-registry/assets/17ff70aa1d898bc97ad690dbfad1a3b5643f7e0b.png',\n veDelegate:\n 'https://vechain.github.io/token-registry/assets/1c641b86096d56bf13d49f38388accd6db8b8b2e.png',\n USDGLO: 'https://raw.githubusercontent.com/vechain/app-hub/439fba60c80ba2521d435981102d88c4aec050d6/apps/org.glodollar.app/logo.png',\n};\n\nexport const TOKEN_LOGO_COMPONENTS: Record<string, JSX.Element> = {\n VET: <VETLogo />,\n VTHO: <VTHOLogo />,\n B3TR: <VeBetterIcon />,\n VOT3: <VOT3Logo />,\n};\n\nexport const VECHAIN_PRIVY_APP_ID = 'cm4wxxujb022fyujl7g0thb21';\n\nexport const notFoundImage =\n 'https://upload.wikimedia.org/wikipedia/commons/a/a3/Image-not-found.png';\n\nexport enum TogglePassportCheck {\n WhitelistCheck = 1,\n BlacklistCheck = 2,\n SignalingCheck = 3,\n ParticipationScoreCheck = 4,\n GmOwnershipCheck = 5,\n}\n\nexport type PrivyEcosystemApp = {\n id: string;\n name: string;\n website: string;\n};\n\nexport const DEFAULT_PRIVY_ECOSYSTEM_APPS: PrivyEcosystemApp[] = [\n {\n id: 'clz41gcg00e4ay75dmq3uzzgr',\n name: 'Cleanify',\n website: 'https://app.cleanify.vet',\n },\n {\n id: 'cm153hrup0817axti38avlfyg',\n name: 'GreenCart',\n website: 'https://greencart.ai',\n },\n {\n id: 'clv9sfos20j6x1431ga80d95f',\n name: 'Mughsot',\n website: 'https://mugshot.vet/',\n },\n];\n","import { picasso } from '@vechain/picasso';\nimport { BigNumber } from 'bignumber.js';\n\nexport const humanAddress = (\n address: string,\n charAtStart = 6,\n charAtEnd = 4,\n): string => `${address.slice(0, charAtStart)}•••${address.slice(-charAtEnd)}`;\n\nexport const humanDomain = (\n domain: string,\n lengthBefore = 8,\n lengthAfter = 6,\n) => {\n // if domain is smaller than lengthBefore + lengthAfter, return the domain\n if (domain.length <= lengthBefore + lengthAfter) return domain;\n\n const before = domain.substring(0, lengthBefore);\n const after = domain.substring(domain.length - lengthAfter);\n return `${before}•••${after}`;\n};\n\nexport const humanNumber = (\n formattedValue: BigNumber.Value,\n originalValue?: BigNumber.Value,\n symbol: string | null = null,\n) => {\n const suffix = symbol ? ' ' + symbol : '';\n\n originalValue = originalValue || formattedValue;\n const formatter = new Intl.NumberFormat('en', {\n style: 'decimal',\n minimumFractionDigits:\n Number.parseFloat(formattedValue.toString()) % 1 === 0 ? 0 : 2,\n });\n\n let value = formatter.format(\n roundDownSignificantDigits(Number(formattedValue), 2),\n );\n\n //If the original number got scaled down to 0\n if (!isZero(originalValue) && isZero(value)) {\n value = '< 0.01';\n }\n\n return value + suffix;\n};\n\nexport const isZero = (value?: BigNumber.Value) => {\n if (!value && value !== 0) return false;\n return new BigNumber(value).isZero();\n};\n\nexport const getPicassoImage = (address: string, base64 = false): string => {\n const image = picasso(address.toLowerCase());\n if (base64) {\n const base64data = Buffer.from(image, 'utf8').toString('base64');\n return `data:image/svg+xml;base64,${base64data}`;\n }\n return `data:image/svg+xml;utf8,${image}`;\n};\n\n/**\n * Format the number human friendly\n * @param formattedValue - value in string or number\n * @param originalValue - value in string or number to determine if the original value is 0\n * @param symbol - (optional) symbol to append at end of number (with a space)\n * @returns the formatted number\n */\n\nfunction roundDownSignificantDigits(numbers: number, decimals: number = 0) {\n if (typeof numbers !== 'number' || typeof decimals !== 'number') {\n throw new Error(\n 'Invalid input: number and decimals must be of type number',\n );\n }\n\n const significantDigits = parseInt(\n numbers.toExponential().split('e-')[1] || '0',\n 10,\n );\n\n const effectiveDecimals = Math.max(0, decimals + significantDigits);\n const scaleFactor = Math.pow(10, effectiveDecimals);\n\n return Math.floor(numbers * scaleFactor) / scaleFactor;\n}\n","import {\n generatePrivateKey,\n privateKeyToAccount,\n Account,\n} from 'viem/accounts';\n\nexport const randomTransactionUser: {\n privateKey: string;\n account: Account;\n address: string;\n} = (() => {\n const privateKey = generatePrivateKey();\n const account = privateKeyToAccount(privateKey);\n return {\n privateKey,\n account,\n address: account.address,\n };\n})();\n","import crypto from \"crypto\";\nconst PREFIX = \"0x\";\nconst PREFIX_REGEX = /^0[xX]/;\nconst HEX_REGEX = /^(0[xX])?[a-fA-F0-9]+$/;\n\n/**\n * Returns the provied hex string with the hex prefix removed.\n * If the prefix doesn't exist the hex is returned unmodified\n * @param hex - the input hex string\n * @returns the input hex string with the hex prefix removed\n * @throws an error if the input is not a valid hex string\n */\nexport const removePrefix = (hex: string): string => {\n validate(hex);\n return hex.replace(PREFIX_REGEX, \"\");\n};\n\n/**\n * Returns the provided hex string with the hex prefix added.\n * If the prefix already exists the string is returned unmodified.\n * If the string contains an UPPER case `X` in the prefix it will be replaced with a lower case `x`\n * @param hex - the input hex string\n * @returns the input hex string with the hex prefix added\n * @throws an error if the input is not a valid hex string\n */\nexport const addPrefix = (hex: string): string => {\n validate(hex);\n return PREFIX_REGEX.test(hex)\n ? hex.replace(PREFIX_REGEX, PREFIX)\n : `${PREFIX}${hex}`;\n};\n\n/**\n * Validate the hex string. Throws an Error if not valid\n * @param hex - the input hex string\n * @throws an error if the input is not a valid hex string\n */\nexport const validate = (hex: string) => {\n if (!isValid(hex)) throw Error(\"Provided hex value is not valid\");\n};\n\n/**\n * Check if input string is valid\n * @param hex - the input hex string\n * @returns boolean representing whether the input hex is valid\n */\nexport const isValid = (hex?: string | null): boolean => {\n return !!hex && HEX_REGEX.test(hex);\n};\n\nexport const isInvalid = (hex?: string | null): boolean => {\n return !isValid(hex);\n};\n\nexport const normalize = (hex: string): string => {\n return addPrefix(hex.toLowerCase().trim());\n};\n\nexport const compare = (hex1: string, hex2: string): boolean => {\n try {\n return (\n removePrefix(hex1).toLowerCase() ===\n removePrefix(hex2).toLowerCase()\n );\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (e) {\n return false;\n }\n};\n\n/**\n * Generate a random hex string of the defined length\n * @param size - the length of the random hex output\n * @returns a random hex string of length `size`\n */\nexport const generateRandom = (size: number): string => {\n if (size < 1) throw Error(\"Size must be > 0\");\n const randBuffer = crypto.randomBytes(Math.ceil(size / 2));\n if (!randBuffer) throw Error(\"Failed to generate random hex\");\n return `${PREFIX}${randBuffer.toString(\"hex\").substring(0, size)}`;\n};\n","import { address } from \"thor-devkit\";\nimport * as HexUtils from \"./HexUtils\";\n\n/**\n * Checks if two addresses are equal. Returns true if both values are strings AND:\n * - The two values are equal OR\n * - The checksumed addresses are equal\n *\n * @param address1\n * @param address2\n */\nexport const compareAddresses = (\n address1?: string,\n address2?: string\n): boolean => {\n if (!address1 || !address2) return false;\n\n if (address2 === address1) {\n return true;\n }\n\n try {\n return HexUtils.normalize(address1) === HexUtils.normalize(address2);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (e) {\n return false;\n }\n};\n\nexport const compareListOfAddresses = (add1: string[], add2: string[]) => {\n if (add1.length !== add2.length) return false;\n const sortedAdd1 = [...add1]\n .map((e) => e.toLowerCase())\n .sort((a, b) => a.localeCompare(b));\n const sortedAdd2 = [...add2]\n .map((e) => e.toLowerCase())\n .sort((a, b) => a.localeCompare(b));\n\n for (let i = 0; i < sortedAdd1.length; i++) {\n if (!compareAddresses(sortedAdd1[i], sortedAdd2[i])) return false;\n }\n\n return true;\n};\n\nexport const regexPattern = () => {\n return /^0x[a-fA-F0-9]{40}$/;\n};\n\nexport const isValidAddress = (addr: string | undefined | null): boolean => {\n try {\n if (typeof addr !== \"string\") return false;\n address.toChecksumed(HexUtils.addPrefix(addr));\n return true;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (e) {\n return false;\n }\n};\n\nexport const leftPadWithZeros = (str: string, length: number): string => {\n // Remove '0x' prefix if it exists\n const cleanStr = str.startsWith(\"0x\") ? str.slice(2) : str;\n if (cleanStr.length > length) {\n throw new Error(\"Input string is longer than the specified length\");\n }\n // Pad the string to the specified length\n const paddedStr = cleanStr.padStart(length, \"0\");\n return `0x${paddedStr}`;\n};\n","import { AppConfig } from '.';\nconst config: AppConfig = {\n ipfsFetchingService: 'https://api.dev.gateway-proxy.vechain.org/ipfs',\n ipfsPinningService:\n 'https://api.dev.gateway-proxy.vechain.org/api/v1/pinning/pinFileToIPFS',\n vthoContractAddress: '0x0000000000000000000000000000456E65726779',\n b3trContractAddress: '0xd31A6f2DBa8785cE41AB68Ea192791B5175309F4',\n vot3ContractAddress: '0x028Af33230576c1e073C8245F72a7A4aa53564E4',\n b3trGovernorAddress: '0x36E0e9b46D56dF12Dd69fD560e41954C73cE9ded',\n timelockContractAddress: '0x125389845c93Efcf6471BA8BE1AC19c11e128603',\n xAllocationPoolContractAddress:\n '0xC8232c91E2f744E533322B99F95f809b9f7ec446',\n xAllocationVotingContractAddress:\n '0x074F093f4C534a16cDD09cb4b2669713218A762a',\n emissionsContractAddress: '0x6a084E85f38400790043788FcCee39595616aa3A',\n voterRewardsContractAddress: '0xbAb852081C459c0060960287aDcf9a0C2c1dc4b8',\n galaxyMemberContractAddress: '0xbdA1cff75d2D43AB9186Ada41fECF79e25c49Ba3',\n treasuryContractAddress: '0xe9414513Fe0e3b9bf7a61eC5c1AC7Df943fB3e77',\n x2EarnAppsContractAddress: '0x432C46476f4970575C43B19588A170D237dC4929',\n x2EarnRewardsPoolContractAddress:\n '0x134E4Fce6761f660401808CF86aE0e62cE52a81E',\n nodeManagementContractAddress: '0xa96B5057171D797298A71178b48449A7bC615D8E',\n veBetterPassportContractAddress:\n '0x8db6D14452fE36ba86C341AfEFaC0f90A0Db2bcb',\n x2EarnCreatorContractAddress: '0x4e5f7eb452e9ecd75c0B29e3540014cBe01bBF52',\n veDelegate: '0xfc32a9895C78CE00A1047d602Bd81Ea8134CC32b',\n veDelegateVotes: '0xeb71148c9B3cd57e228c2152d79f6e78F5F1ef9a',\n veDelegateTokenContractAddress:\n '0xD3f7b82Df5705D34f64C634d2dEf6B1cB3116950',\n oracleContractAddress: '0x49eC7192BF804Abc289645ca86F1eD01a6C17713',\n accountFactoryAddress: '0xC06Ad8573022e2BE416CA89DA47E8c592971679A',\n cleanifyCampaignsContractAddress:\n '0x7a11D63338576aE8c038868433ea199d7E5319A6',\n cleanifyChallengesContractAddress:\n '0xa58681692AdDD2e8E37f9113D40Bb9253C03F65e',\n veWorldSubdomainClaimerContractAddress:\n '0x0000000000000000000000000000000000000000',\n vetDomainsContractAddress: '0x0000000000000000000000000000000000000000',\n vetDomainsPublicResolverAddress:\n '0x0000000000000000000000000000000000000000',\n vetDomainsReverseRegistrarAddress:\n '0x5c970901a587BA3932C835D4ae5FAE2BEa7e78Bc',\n vnsResolverAddress: '0x0000000000000000000000000000000000000000',\n gloDollarContractAddress: '0x0000000000000000000000000000000000000000',\n vetDomainAvatarUrl: 'https://testnet.vet.domains/api/avatar',\n indexerUrl: 'https://b3tr.testnet.vechain.org/api/v1',\n b3trIndexerUrl: 'https://b3tr.testnet.vechain.org/api/v1',\n graphQlIndexerUrl: 'https://graph.vet/subgraphs/name/vns',\n nodeUrl: 'http://localhost:8669',\n network: {\n id: 'solo',\n name: 'solo',\n type: 'solo',\n defaultNet: true,\n urls: ['http://localhost:8669'],\n explorerUrl: 'https://explore-testnet.vechain.org',\n blockTime: 10000,\n genesis: {\n number: 0,\n id: '0x00000000c05a20fbca2bf6ae3affba6af4a74b800b585bf7a4988aba7aea69f6',\n size: 170,\n parentID:\n '0xffffffff53616c757465202620526573706563742c20457468657265756d2100',\n timestamp: 1530316800,\n gasLimit: 10000000,\n beneficiary: '0x0000000000000000000000000000000000000000',\n gasUsed: 0,\n totalScore: 0,\n txsRoot:\n '0x45b0cfc220ceec5b7c1c62c4d4193d38e4eba48e8815729ce75f9c0ab0e4c1c0',\n txsFeatures: 0,\n stateRoot:\n '0x93de0ffb1f33bc0af053abc2a87c4af44594f5dcb1cb879dd823686a15d68550',\n receiptsRoot:\n '0x45b0cfc220ceec5b7c1c62c4d4193d38e4eba48e8815729ce75f9c0ab0e4c1c0',\n signer: '0x0000000000000000000000000000000000000000',\n isTrunk: true,\n transactions: [],\n },\n },\n explorerUrl: 'https://explore-testnet.vechain.org',\n};\nexport default config;\n","import { AppConfig } from '.';\n\nconst config: AppConfig = {\n ipfsFetchingService: 'https://api.dev.gateway-proxy.vechain.org/ipfs',\n ipfsPinningService:\n 'https://api.dev.gateway-proxy.vechain.org/api/v1/pinning/pinFileToIPFS',\n vthoContractAddress: '0x0000000000000000000000000000456E65726779',\n b3trContractAddress: '0xbf64cf86894Ee0877C4e7d03936e35Ee8D8b864F',\n vot3ContractAddress: '0xa704c45971995467696EE9544Da77DD42Bc9706E',\n b3trGovernorAddress: '0xDF5E114D391CAC840529802fe8D01f6bdeBE41eC',\n timelockContractAddress: '0x30ee94F303643902a68aD8A7A6456cA69d763192',\n xAllocationPoolContractAddress:\n '0x9B9CA9D0C41Add1d204f90BA0E9a6844f1843A84',\n xAllocationVotingContractAddress:\n '0x5859ff910d8b0c127364c98E24233b0af7443c1c',\n emissionsContractAddress: '0x3D7616213191a10460e49CfdB7edBf88D6a10942',\n voterRewardsContractAddress: '0x2E47fc4aabB3403037fB5E1f38995E7a91Ce8Ed2',\n galaxyMemberContractAddress: '0xa9aC49C030c1148b95F056E86f2531f8F3d5bf27',\n x2EarnCreatorContractAddress: '',\n nodeManagementContractAddress: '',\n x2EarnAppsContractAddress: '0xcB23Eb1bBD5c07553795b9538b1061D0f4ABA153',\n treasuryContractAddress: '0x039893EBe092A2D22B08E2b029735D211bfF7F50',\n x2EarnRewardsPoolContractAddress:\n '0x5F8f86B8D0Fa93cdaE20936d150175dF0205fB38',\n veBetterPassportContractAddress: '',\n veDelegate: '0xfc32a9895C78CE00A1047d602Bd81Ea8134CC32b',\n veDelegateVotes: '0xeb71148c9B3cd57e228c2152d79f6e78F5F1ef9a',\n veDelegateTokenContractAddress:\n '0xD3f7b82Df5705D34f64C634d2dEf6B1cB3116950',\n oracleContractAddress: '0xdcCAaBd81B38e0dEEf4c202bC7F1261A4D9192C6',\n accountFactoryAddress: '0x713b908Bcf77f3E00EFEf328E50b657a1A23AeaF',\n cleanifyCampaignsContractAddress:\n '0x22d19ACBD2cBf6b2B6C546395c26B9Cb448248BF',\n cleanifyChallengesContractAddress:\n '0x8Cc885DC3e5c376632CCEA0e8e1a51F1B3572442',\n veWorldSubdomainClaimerContractAddress:\n '0xe5af50e7ad1aaab4fbe4efbb2b30f764013918b3',\n vetDomainsContractAddress: '0xcBFB30c1F267914816668d53AcBA7bA7c9806D13',\n vetDomainsPublicResolverAddress:\n '0xA6eFd130085a127D090ACb0b100294aD1079EA6f',\n vetDomainsReverseRegistrarAddress:\n '0x6878f1aD5e3015310CfE5B38d7B7071C5D8818Ca',\n vnsResolverAddress: '0xc403b8EA53F707d7d4de095f0A20bC491Cf2bc94',\n gloDollarContractAddress: '0x0000000000000000000000000000000000000000',\n vetDomainAvatarUrl: 'https://testnet.vet.domains/api/avatar',\n indexerUrl: 'https://indexer.testnet.vechain.org/api/v1',\n b3trIndexerUrl: 'https://b3tr.testnet.vechain.org/api/v1',\n graphQlIndexerUrl: 'https://graph.vet/subgraphs/name/vns',\n nodeUrl: 'https://testnet.vechain.org',\n network: {\n id: 'testnet',\n name: 'testnet',\n type: 'test',\n defaultNet: true,\n urls: [\n 'https://testnet.vechain.org',\n 'https://vethor-node-test.vechaindev.com',\n 'https://sync-testnet.veblocks.net',\n 'https://testnet.vecha.in',\n ],\n explorerUrl: 'https://insight.vecha.in/#/test',\n blockTime: 10000,\n genesis: {\n number: 0,\n id: '0x000000000b2bce3c70bc649a02749e8687721b09ed2e15997f466536b20bb127',\n size: 170,\n parentID:\n '0xffffffff00000000000000000000000000000000000000000000000000000000',\n timestamp: 1530014400,\n gasLimit: 10000000,\n beneficiary: '0x0000000000000000000000000000000000000000',\n gasUsed: 0,\n totalScore: 0,\n txsRoot:\n '0x45b0cfc220ceec5b7c1c62c4d4193d38e4eba48e8815729ce75f9c0ab0e4c1c0',\n txsFeatures: 0,\n stateRoot:\n '0x4ec3af0acbad1ae467ad569337d2fe8576fe303928d35b8cdd91de47e9ac84bb',\n receiptsRoot:\n '0x45b0cfc220ceec5b7c1c62c4d4193d38e4eba48e8815729ce75f9c0ab0e4c1c0',\n signer: '0x0000000000000000000000000000000000000000',\n isTrunk: true,\n transactions: [],\n },\n },\n explorerUrl: 'https://explore-testnet.vechain.org/transactions',\n};\nexport default config;\n","import { AppConfig } from '.';\nconst config: AppConfig = {\n ipfsFetchingService: 'https://api.gateway-proxy.vechain.org/ipfs',\n indexerUrl: 'https://indexer.mainnet.vechain.org/api/v1',\n ipfsPinningService:\n 'https://api.gateway-proxy.vechain.org/api/v1/pinning/pinFileToIPFS',\n b3trIndexerUrl: 'https://b3tr.mainnet.vechain.org/api/v1',\n graphQlIndexerUrl: 'https://graph.vet/subgraphs/name/vns',\n nodeUrl: 'https://mainnet.vechain.org',\n network: {\n id: 'main',\n name: 'main',\n type: 'main',\n defaultNet: true,\n urls: [\n 'https://mainnet.vechain.org',\n 'https://vethor-node.vechain.com',\n 'https://mainnet.veblocks.net',\n 'https://mainnet.vecha.in',\n ],\n explorerUrl: 'https://vechainstats.com',\n blockTime: 10000,\n genesis: {\n number: 0,\n id: '0x00000000851caf3cfdb6e899cf5958bfb1ac3413d346d43539627e6be7ec1b4a',\n size: 170,\n parentID:\n '0xffffffff53616c757465202620526573706563742c20457468657265756d2100',\n timestamp: 1530316800,\n gasLimit: 10000000,\n beneficiary: '0x0000000000000000000000000000000000000000',\n gasUsed: 0,\n totalScore: 0,\n txsRoot:\n '0x45b0cfc220ceec5b7c1c62c4d4193d38e4eba48e8815729ce75f9c0ab0e4c1c0',\n txsFeatures: 0,\n stateRoot:\n '0x09bfdf9e24dd5cd5b63f3c1b5d58b97ff02ca0490214a021ed7d99b93867839c',\n receiptsRoot:\n '0x45b0cfc220ceec5b7c1c62c4d4193d38e4eba48e8815729ce75f9c0ab0e4c1c0',\n signer: '0x0000000000000000000000000000000000000000',\n isTrunk: true,\n transactions: [],\n },\n },\n explorerUrl: 'https://vechainstats.com/transaction',\n // general\n vthoContractAddress: '0x0000000000000000000000000000456E65726779',\n //VeBetterDAO\n b3trContractAddress: '0x5ef79995FE8a89e0812330E4378eB2660ceDe699',\n vot3ContractAddress: '0x76Ca782B59C74d088C7D2Cce2f211BC00836c602',\n b3trGovernorAddress: '0x1c65C25fABe2fc1bCb82f253fA0C916a322f777C',\n timelockContractAddress: '0x7B7EaF620d88E38782c6491D7Ce0B8D8cF3227e4',\n xAllocationPoolContractAddress:\n '0x4191776F05f4bE4848d3f4d587345078B439C7d3',\n xAllocationVotingContractAddress:\n '0x89A00Bb0947a30FF95BEeF77a66AEdE3842Fe5B7',\n emissionsContractAddress: '0xDf94739bd169C84fe6478D8420Bb807F1f47b135',\n voterRewardsContractAddress: '0x838A33AF756a6366f93e201423E1425f67eC0Fa7',\n galaxyMemberContractAddress: '0x93B8cD34A7Fc4f53271b9011161F7A2B5fEA9D1F',\n treasuryContractAddress: '0xD5903BCc66e439c753e525F8AF2FeC7be2429593',\n x2EarnAppsContractAddress: '0x8392B7CCc763dB03b47afcD8E8f5e24F9cf0554D',\n x2EarnRewardsPoolContractAddress:\n '0x6Bee7DDab6c99d5B2Af0554EaEA484CE18F52631',\n x2EarnCreatorContractAddress: '0xe8e96a768ffd00417d4bd985bec9EcfC6F732a7f',\n nodeManagementContractAddress: '0xB0EF9D89C6b49CbA6BBF86Bf2FDf0Eee4968c6AB',\n veBetterPassportContractAddress:\n '0x35a267671d8EDD607B2056A9a13E7ba7CF53c8b3',\n //veDelegate\n veDelegate: '0xfc32a9895C78CE00A1047d602Bd81Ea8134CC32b',\n veDelegateVotes: '0xeb71148c9B3cd57e228c2152d79f6e78F5F1ef9a',\n veDelegateTokenContractAddress:\n '0xD3f7b82Df5705D34f64C634d2dEf6B1cB3116950',\n //utility\n oracleContractAddress: '0x49eC7192BF804Abc289645ca86F1eD01a6C17713',\n accountFactoryAddress: '0xC06Ad8573022e2BE416CA89DA47E8c592971679A',\n //cleanify\n cleanifyCampaignsContractAddress:\n '0x7a11D63338576aE8c038868433ea199d7E5319A6',\n cleanifyChallengesContractAddress:\n '0xa58681692AdDD2e8E37f9113D40Bb9253C03F65e',\n veWorldSubdomainClaimerContractAddress:\n '0xa4173c32fe8a61a8fd0d0234675b559fc360446a',\n vetDomainsContractAddress: '0xa9231da8BF8D10e2df3f6E03Dd5449caD600129b',\n vetDomainsPublicResolverAddress:\n '0xabac49445584C8b6c1472b030B1076Ac3901D7cf',\n vetDomainsReverseRegistrarAddress:\n '0x5c970901a587BA3932C835D4ae5FAE2BEa7e78Bc',\n vnsResolverAddress: '0xA11413086e163e41901bb81fdc5617c975Fa5a1A',\n vetDomainAvatarUrl: 'https://vet.domains/api/avatar',\n gloDollarContractAddress: '0x29c630cce4ddb23900f5fe66ab55e488c15b9f5e',\n};\nexport default config;\n","import localConfig from './solo';\nimport testnetConfig from './testnet';\nimport mainnetConfig from './mainnet';\nimport { Network, NETWORK_TYPE } from './network';\n\nexport type AppConfig = {\n ipfsFetchingService: string;\n ipfsPinningService: string;\n vthoContractAddress: string;\n b3trContractAddress: string;\n vot3ContractAddress: string;\n b3trGovernorAddress: string;\n timelockContractAddress: string;\n xAllocationPoolContractAddress: string;\n xAllocationVotingContractAddress: string;\n emissionsContractAddress: string;\n voterRewardsContractAddress: string;\n galaxyMemberContractAddress: string;\n treasuryContractAddress: string;\n x2EarnAppsContractAddress: string;\n x2EarnCreatorContractAddress: string;\n x2EarnRewardsPoolContractAddress: string;\n nodeManagementContractAddress: string;\n veBetterPassportContractAddress: string;\n veDelegate: string;\n veDelegateVotes: string;\n veDelegateTokenContractAddress: string;\n oracleContractAddress: string;\n accountFactoryAddress: string;\n cleanifyCampaignsContractAddress: string;\n cleanifyChallengesContractAddress: string;\n veWorldSubdomainClaimerContractAddress: string;\n vetDomainsContractAddress: string;\n vetDomainsPublicResolverAddress: string;\n vetDomainsReverseRegistrarAddress: string;\n vnsResolverAddress: string;\n gloDollarContractAddress: string;\n vetDomainAvatarUrl: string;\n nodeUrl: string;\n indexerUrl: string;\n b3trIndexerUrl: string;\n graphQlIndexerUrl: string;\n network: Network;\n explorerUrl: string;\n};\n\nexport const getConfig = (env: NETWORK_TYPE): AppConfig => {\n if (env === 'solo') return localConfig;\n if (env === 'test') return testnetConfig;\n if (env === 'main') return mainnetConfig;\n throw new Error(`Unsupported NETWORK_TYPE ${env}`);\n};\n","import { getConfig } from '@/config';\nimport { NETWORK_TYPE } from '@/config/network';\n\n/**\n * Validate IPFS URI strings. An example of a valid IPFS URI is:\n * - ipfs://QmfSTia1TJUiKQ2fyW9NTPzEKNdjMGzbUgrC3QPSTpkum6/406.json\n * - ipfs://QmVPqKfwRXjg5Fqwy6RNRbKR2ZP4pKKVLvmfjmhQfdM3MH/4\n * - ipfs://QmVPqKfwRXjg5Fqwy6RNRbKR2ZP4pKKVLvmfjmhQfdM3MH\n * @param uri\n * @returns\n */\nexport const validateIpfsUri = (uri: string): boolean => {\n const trimmedUri = uri.trim();\n return /^ipfs:\\/\\/[a-zA-Z0-9]+(\\/[^/]+)*\\/?$/.test(trimmedUri);\n};\n\n/**\n * Converts a CID to an IPFS native URL.\n *\n * @param cid - The CID to convert.\n * @param fileName - The name of the file to append to the URL.\n *\n * @returns The IPFS URL in the format `ipfs://${cid}/${fileName}`.\n */\nexport function toIPFSURL(cid: string, fileName?: string): string {\n return `ipfs://${cid}/${fileName ?? ''}`;\n}\n\n/**\n * Uploads a blob to IPFS.\n * @param blob The Blob object to upload.\n * @param filename A name for the file in the FormData payload.\n * @param networkType The network type to use for the IPFS pinning service.\n * @returns The IPFS hash of the uploaded blob.\n */\nexport async function uploadBlobToIPFS(\n blob: Blob,\n filename: string,\n networkType: NETWORK_TYPE,\n): Promise<string> {\n try {\n const form = new FormData();\n form.append('file', blob, filename);\n const response = await fetch(\n getConfig(networkType).ipfsPinningService,\n {\n method: 'POST',\n headers: {\n 'X-Project-Id': 'vechain-kit',\n },\n body: form,\n },\n );\n\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n\n const data = await response.json();\n return data.IpfsHash;\n } catch (error) {\n console.error('Error uploading blob:', error);\n throw new Error('Failed to upload blob to IPFS');\n }\n}\n","import { NFTMediaType } from \"@/types\"\n\nconst isValidMimeType = (mime: string, type: NFTMediaType[]) => {\n const found = type.find(t => {\n if (mime?.split(\"/\")[0] === t) {\n return true\n }\n })\n\n return !!found\n}\n\nexport const resolveMediaTypeFromMimeType = (mimeType: string): NFTMediaType => {\n if (isValidMimeType(mimeType, [NFTMediaType.IMAGE])) return NFTMediaType.IMAGE\n else if (isValidMimeType(mimeType, [NFTMediaType.VIDEO])) return NFTMediaType.VIDEO\n\n return NFTMediaType.UNKNOWN\n}\n","import { NETWORK_TYPE } from '@/config/network';\nimport { validateIpfsUri } from './ipfs';\nimport { getConfig } from '@/config';\n\n/**\n * Convert a URI to a URL\n * We support both IPFS and Arweave URIs. Both should be converted to their https gateway URLs.\n * All other URIs should pass through unchanged.\n *\n * @param uri\n */\nexport const convertUriToUrl = (uri: string, networkType: NETWORK_TYPE) => {\n // if it is a data uri just return it\n if (uri.startsWith('data:')) return uri;\n\n const splitUri = uri?.split('://');\n if (splitUri.length !== 2) return null;\n // if (splitUri.length !== 2) throw new Error(`Invalid URI ${uri}`);\n\n const protocol = splitUri?.[0]?.trim();\n const uriWithoutProtocol = splitUri[1];\n\n switch (protocol) {\n case 'ipfs':\n if (!validateIpfsUri(uri))\n throw new Error(`Invalid IPFS URI ${uri}`);\n\n // Check cache for IPFS document\n return `${\n getConfig(networkType).ipfsFetchingService\n }/${uriWithoutProtocol}`;\n\n case 'ar':\n return `https://arweave.net/${uriWithoutProtocol}`;\n\n default:\n return uri;\n }\n};\n","export const gmNfts = [\n {\n level: '1',\n name: 'Earth',\n image: '/images/nft-levels/0.png',\n multiplier: 1,\n b3trToUpgrade: 0,\n },\n {\n level: '2',\n name: 'Moon',\n image: '/images/nft-levels/1.png',\n multiplier: 1.1,\n b3trToUpgrade: 10_000,\n },\n {\n level: '3',\n name: 'Mercury',\n image: '/images/nft-levels/2.png',\n multiplier: 1.2,\n b3trToUpgrade: 25_000,\n },\n {\n level: '4',\n name: 'Venus',\n image: '/images/nft-levels/3.png',\n multiplier: 1.5,\n b3trToUpgrade: 50_000,\n },\n {\n level: '5',\n name: 'Mars',\n image: '/images/nft-levels/4.png',\n multiplier: 2,\n b3trToUpgrade: 100_000,\n },\n {\n level: '6',\n name: 'Jupiter',\n image: '/images/nft-levels/5.png',\n multiplier: 2.5,\n b3trToUpgrade: 250_000,\n },\n {\n level: '7',\n name: 'Saturn',\n image: '/images/nft-levels/6.png',\n multiplier: 3,\n b3trToUpgrade: 500_000,\n },\n {\n level: '8',\n name: 'Uranus',\n image: '/images/nft-levels/7.png',\n multiplier: 5,\n b3trToUpgrade: 2_500_000,\n },\n {\n level: '9',\n name: 'Neptune',\n image: '/images/nft-levels/8.png',\n multiplier: 10,\n b3trToUpgrade: 5_000_000,\n },\n {\n level: '10',\n name: 'Galaxy',\n image: '/images/nft-levels/9.png',\n multiplier: 25,\n b3trToUpgrade: 25_000_000,\n },\n];\n\n/**\n * Maps the XNode level to the GM starting level.\n */\nexport const xNodeToGMstartingLevel: Record<number, number> = {\n 1: 2,\n 2: 4,\n 3: 6,\n 4: 2,\n 5: 4,\n 6: 6,\n 7: 7,\n};\n","// Function to build query string dynamically\nexport const buildQueryString = (params: { [key: string]: any }) => {\n const searchParams = new URLSearchParams()\n\n // Iterate over the parameters and append only the defined values\n Object.keys(params).forEach(key => {\n const value = params[key]\n if (value !== undefined && value !== null) {\n searchParams.append(key, String(value))\n }\n })\n\n return searchParams.toString()\n}\n","/**\n * Map strength level coming from contract to hq image\n */\nexport const NodeStrengthLevelToImage: { [key: string]: string } = {\n \"0\": \"/images/vnt/00-noNode.webp\",\n \"1\": \"/images/vnt/01-strength.webp\",\n \"2\": \"/images/vnt/02-thunder.webp\",\n \"3\": \"/images/vnt/03-mjolnir.webp\",\n \"4\": \"/images/vnt/04-vethorX.webp\",\n \"5\": \"/images/vnt/05-strengthX.webp\",\n \"6\": \"/images/vnt/06-thunderX.webp\",\n \"7\": \"/images/vnt/07-mjolnirX.webp\",\n}\n\n//after this level the nfts are considered xNode\nexport const MinXNodeLevel = 4\nexport const EconomicNodeStrengthLevelToName: { [key: string]: string } = {\n \"1\": \"Strength\",\n \"2\": \"Thunder\",\n \"3\": \"Mjolnir\",\n}\n\nexport const XNodeStrengthLevelToName: { [key: string]: string } = {\n \"4\": \"VeThorX\",\n \"5\": \"StrengthX\",\n \"6\": \"ThunderX\",\n \"7\": \"MjolnirX\",\n}\n\nexport const allNodeStrengthLevelToName: { [key: string]: string } = {\n ...EconomicNodeStrengthLevelToName,\n ...XNodeStrengthLevelToName,\n}\n"]}
|