@vechain/vechain-kit 2.4.4 → 2.4.5
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/assets/index.d.cts +1 -1
- package/dist/assets/index.d.mts +1 -1
- package/dist/{index-DSMUkHcK.d.cts → index--hSO7Xv4.d.mts} +1 -1
- package/dist/{index-DSMUkHcK.d.cts.map → index--hSO7Xv4.d.mts.map} +1 -1
- package/dist/{index-DQsJ0-2w.d.cts → index-8BC07wqK.d.mts} +72 -65
- package/dist/index-8BC07wqK.d.mts.map +1 -0
- package/dist/{index-lLN0Fy0E.d.mts → index-BI93V0nR.d.cts} +125 -118
- package/dist/{index-DQsJ0-2w.d.cts.map → index-BI93V0nR.d.cts.map} +1 -1
- package/dist/{index-BYfc-9J5.d.mts → index-CLLQDcuv.d.cts} +4 -4
- package/dist/{index-BYfc-9J5.d.mts.map → index-CLLQDcuv.d.cts.map} +1 -1
- package/dist/index.cjs +6 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.mts +2 -2
- package/dist/index.mjs +8 -8
- package/dist/index.mjs.map +1 -1
- package/dist/utils/index.cjs +1 -1
- package/dist/utils/index.d.cts +3 -3
- package/dist/utils/index.d.mts +3 -3
- package/dist/utils/index.mjs +1 -1
- package/dist/utils-DeETrpws.cjs +2 -0
- package/dist/utils-DeETrpws.cjs.map +1 -0
- package/dist/{utils-DjpjrcqQ.mjs → utils-ctNraYqK.mjs} +2 -2
- package/dist/utils-ctNraYqK.mjs.map +1 -0
- package/package.json +1 -1
- package/dist/index-lLN0Fy0E.d.mts.map +0 -1
- package/dist/utils-DLxoAo_P.cjs +0 -2
- package/dist/utils-DLxoAo_P.cjs.map +0 -1
- package/dist/utils-DjpjrcqQ.mjs.map +0 -1
package/dist/utils/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../assets-DNJsQD7_.cjs`);const e=require(`../utils-
|
|
1
|
+
require(`../assets-DNJsQD7_.cjs`);const e=require(`../utils-DeETrpws.cjs`);exports.DEFAULT_GAS_TOKEN_PREFERENCES=e.J,exports.DEFAULT_PRIVY_ECOSYSTEM_APPS=e.Y,exports.ENV=e.X,exports.EconomicNodeStrengthLevelToName=e.c,exports.MinXNodeLevel=e.l,exports.NON_TRANSFERABLE_TOKEN_SYMBOLS=e.Z,exports.NodeStrengthLevelToImage=e.u,exports.SUPPORTED_GAS_TOKENS=e.Q,exports.TIME=e.s,exports.TOKEN_LOGOS=e.$,exports.TOKEN_LOGO_COMPONENTS=e.et,exports.TogglePassportCheck=e.tt,exports.VECHAIN_KIT_COOKIES_CONFIG=e.nt,exports.VECHAIN_KIT_STORAGE_KEYS=e.rt,exports.VECHAIN_KIT_TERMS_CONFIG=e.it,exports.VECHAIN_PRIVY_APP_ID=e.at,exports.XNodeStrengthLevelToName=e.d,exports.addPrefix=e.P,exports.allNodeStrengthLevelToName=e.f,exports.buildCallClauses=e.t,exports.buildQueryString=e.p,exports.compare=e.F,exports.compareAddresses=e.k,exports.compareListOfAddresses=e.A,exports.convertUriToUrl=e.g,exports.copyToClipboard=e.lt,exports.executeCallClause=e.n,exports.executeMultipleClausesCall=e.r,exports.formatTokenBalance=e.H,exports.getDocumentTitle=e.ut,exports.getENV=e.ot,exports.getGenericDelegatorUrl=e.st,exports.getLocalStorageItem=e.dt,exports.getPicassoImage=e.U,exports.getWindowOrigin=e.ft,exports.gmNfts=e.m,exports.hasNavigator=e.pt,exports.humanAddress=e.W,exports.humanDomain=e.G,exports.humanNumber=e.K,exports.isBrowser=e.mt,exports.isInvalid=e.I,exports.isOnline=e.ht,exports.isRejectionError=e.a,exports.isValid=e.L,exports.isValidAddress=e.j,exports.isValidUrl=e.i,exports.isZero=e.q,exports.leftPadWithZeros=e.M,exports.normalize=e.R,exports.notFoundImage=e.ct,exports.randomTransactionUser=e.V,exports.regexPattern=e.N,exports.removeLocalStorageItem=e.gt,exports.removePrefix=e.z,exports.resolveMediaTypeFromMimeType=e._,exports.safeQuerySelector=e._t,exports.safeWindowOpen=e.vt,exports.setLocalStorageItem=e.yt,exports.simpleHash=e.o,exports.toIPFSURL=e.E,exports.uploadBlobToIPFS=e.D,exports.validate=e.B,exports.validateIpfsUri=e.O,exports.xNodeToGMstartingLevel=e.h;
|
package/dist/utils/index.d.cts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import "../index-
|
|
2
|
-
import { $r as resolveMediaTypeFromMimeType, Ar as buildCallClauses, Br as validate, Ci as
|
|
3
|
-
export { DEFAULT_GAS_TOKEN_PREFERENCES, DEFAULT_PRIVY_ECOSYSTEM_APPS, ENV, EconomicNodeStrengthLevelToName, MinXNodeLevel, MultipleClausesCallParameters, MultipleClausesCallReturnType, NodeStrengthLevelToImage, PrivyEcosystemApp, SUPPORTED_GAS_TOKENS, TIME, TOKEN_LOGOS, TOKEN_LOGO_COMPONENTS, TogglePassportCheck, VECHAIN_KIT_COOKIES_CONFIG, VECHAIN_KIT_STORAGE_KEYS, VECHAIN_KIT_TERMS_CONFIG, VECHAIN_PRIVY_APP_ID, ViewFunctionResult, XNodeStrengthLevelToName, addPrefix, allNodeStrengthLevelToName, buildCallClauses, buildQueryString, compare, compareAddresses, compareListOfAddresses, convertUriToUrl, copyToClipboard, executeCallClause, executeMultipleClausesCall, formatTokenBalance, getDocumentTitle, getENV, getGenericDelegatorUrl, getLocalStorageItem, getPicassoImage, getWindowOrigin, gmNfts, hasNavigator, humanAddress, humanDomain, humanNumber, isBrowser, isInvalid, isOnline, isRejectionError, isValid, isValidAddress, isValidUrl, isZero, leftPadWithZeros, normalize, notFoundImage, randomTransactionUser, regexPattern, removeLocalStorageItem, removePrefix, resolveMediaTypeFromMimeType, safeQuerySelector, safeWindowOpen, setLocalStorageItem, simpleHash, toIPFSURL, uploadBlobToIPFS, validate, validateIpfsUri, xNodeToGMstartingLevel };
|
|
1
|
+
import "../index-CLLQDcuv.cjs";
|
|
2
|
+
import { $r as resolveMediaTypeFromMimeType, Ai as notFoundImage, Ar as buildCallClauses, Br as validate, Ci as TogglePassportCheck, Cr as removeLocalStorageItem, Di as VECHAIN_PRIVY_APP_ID, Dr as MultipleClausesCallParameters, Ei as VECHAIN_KIT_TERMS_CONFIG, Er as setLocalStorageItem, Fr as compare, Gr as MinXNodeLevel, Hr as simpleHash, Ir as isInvalid, Jr as allNodeStrengthLevelToName, Kr as NodeStrengthLevelToImage, Lr as isValid, Mr as executeMultipleClausesCall, Nr as isValidUrl, Oi as getENV, Or as MultipleClausesCallReturnType, Pr as addPrefix, Qr as convertUriToUrl, Rr as normalize, Si as TOKEN_LOGO_COMPONENTS, Sr as isOnline, Ti as VECHAIN_KIT_STORAGE_KEYS, Tr as safeWindowOpen, Ur as TIME, Vr as isRejectionError, Wr as EconomicNodeStrengthLevelToName, Xr as gmNfts, Yr as buildQueryString, Zr as xNodeToGMstartingLevel, _i as ENV, _r as getDocumentTitle, ai as isValidAddress, bi as SUPPORTED_GAS_TOKENS, br as hasNavigator, ci as randomTransactionUser, di as humanAddress, ei as toIPFSURL, fi as humanDomain, gi as DEFAULT_PRIVY_ECOSYSTEM_APPS, gr as copyToClipboard, hi as DEFAULT_GAS_TOKEN_PREFERENCES, ii as compareListOfAddresses, jr as executeCallClause, ki as getGenericDelegatorUrl, kr as ViewFunctionResult, li as formatTokenBalance, mi as isZero, ni as validateIpfsUri, oi as leftPadWithZeros, pi as humanNumber, qr as XNodeStrengthLevelToName, ri as compareAddresses, si as regexPattern, ti as uploadBlobToIPFS, ui as getPicassoImage, vi as NON_TRANSFERABLE_TOKEN_SYMBOLS, vr as getLocalStorageItem, wi as VECHAIN_KIT_COOKIES_CONFIG, wr as safeQuerySelector, xi as TOKEN_LOGOS, xr as isBrowser, yi as PrivyEcosystemApp, yr as getWindowOrigin, zr as removePrefix } from "../index-BI93V0nR.cjs";
|
|
3
|
+
export { DEFAULT_GAS_TOKEN_PREFERENCES, DEFAULT_PRIVY_ECOSYSTEM_APPS, ENV, EconomicNodeStrengthLevelToName, MinXNodeLevel, MultipleClausesCallParameters, MultipleClausesCallReturnType, NON_TRANSFERABLE_TOKEN_SYMBOLS, NodeStrengthLevelToImage, PrivyEcosystemApp, SUPPORTED_GAS_TOKENS, TIME, TOKEN_LOGOS, TOKEN_LOGO_COMPONENTS, TogglePassportCheck, VECHAIN_KIT_COOKIES_CONFIG, VECHAIN_KIT_STORAGE_KEYS, VECHAIN_KIT_TERMS_CONFIG, VECHAIN_PRIVY_APP_ID, ViewFunctionResult, XNodeStrengthLevelToName, addPrefix, allNodeStrengthLevelToName, buildCallClauses, buildQueryString, compare, compareAddresses, compareListOfAddresses, convertUriToUrl, copyToClipboard, executeCallClause, executeMultipleClausesCall, formatTokenBalance, getDocumentTitle, getENV, getGenericDelegatorUrl, getLocalStorageItem, getPicassoImage, getWindowOrigin, gmNfts, hasNavigator, humanAddress, humanDomain, humanNumber, isBrowser, isInvalid, isOnline, isRejectionError, isValid, isValidAddress, isValidUrl, isZero, leftPadWithZeros, normalize, notFoundImage, randomTransactionUser, regexPattern, removeLocalStorageItem, removePrefix, resolveMediaTypeFromMimeType, safeQuerySelector, safeWindowOpen, setLocalStorageItem, simpleHash, toIPFSURL, uploadBlobToIPFS, validate, validateIpfsUri, xNodeToGMstartingLevel };
|
package/dist/utils/index.d.mts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import "../index
|
|
2
|
-
import { $r as resolveMediaTypeFromMimeType, Ar as buildCallClauses, Br as validate, Ci as
|
|
3
|
-
export { DEFAULT_GAS_TOKEN_PREFERENCES, DEFAULT_PRIVY_ECOSYSTEM_APPS, ENV, EconomicNodeStrengthLevelToName, MinXNodeLevel, MultipleClausesCallParameters, MultipleClausesCallReturnType, NodeStrengthLevelToImage, PrivyEcosystemApp, SUPPORTED_GAS_TOKENS, TIME, TOKEN_LOGOS, TOKEN_LOGO_COMPONENTS, TogglePassportCheck, VECHAIN_KIT_COOKIES_CONFIG, VECHAIN_KIT_STORAGE_KEYS, VECHAIN_KIT_TERMS_CONFIG, VECHAIN_PRIVY_APP_ID, ViewFunctionResult, XNodeStrengthLevelToName, addPrefix, allNodeStrengthLevelToName, buildCallClauses, buildQueryString, compare, compareAddresses, compareListOfAddresses, convertUriToUrl, copyToClipboard, executeCallClause, executeMultipleClausesCall, formatTokenBalance, getDocumentTitle, getENV, getGenericDelegatorUrl, getLocalStorageItem, getPicassoImage, getWindowOrigin, gmNfts, hasNavigator, humanAddress, humanDomain, humanNumber, isBrowser, isInvalid, isOnline, isRejectionError, isValid, isValidAddress, isValidUrl, isZero, leftPadWithZeros, normalize, notFoundImage, randomTransactionUser, regexPattern, removeLocalStorageItem, removePrefix, resolveMediaTypeFromMimeType, safeQuerySelector, safeWindowOpen, setLocalStorageItem, simpleHash, toIPFSURL, uploadBlobToIPFS, validate, validateIpfsUri, xNodeToGMstartingLevel };
|
|
1
|
+
import "../index--hSO7Xv4.mjs";
|
|
2
|
+
import { $r as resolveMediaTypeFromMimeType, Ai as notFoundImage, Ar as buildCallClauses, Br as validate, Ci as TogglePassportCheck, Cr as removeLocalStorageItem, Di as VECHAIN_PRIVY_APP_ID, Dr as MultipleClausesCallParameters, Ei as VECHAIN_KIT_TERMS_CONFIG, Er as setLocalStorageItem, Fr as compare, Gr as MinXNodeLevel, Hr as simpleHash, Ir as isInvalid, Jr as allNodeStrengthLevelToName, Kr as NodeStrengthLevelToImage, Lr as isValid, Mr as executeMultipleClausesCall, Nr as isValidUrl, Oi as getENV, Or as MultipleClausesCallReturnType, Pr as addPrefix, Qr as convertUriToUrl, Rr as normalize, Si as TOKEN_LOGO_COMPONENTS, Sr as isOnline, Ti as VECHAIN_KIT_STORAGE_KEYS, Tr as safeWindowOpen, Ur as TIME, Vr as isRejectionError, Wr as EconomicNodeStrengthLevelToName, Xr as gmNfts, Yr as buildQueryString, Zr as xNodeToGMstartingLevel, _i as ENV, _r as getDocumentTitle, ai as isValidAddress, bi as SUPPORTED_GAS_TOKENS, br as hasNavigator, ci as randomTransactionUser, di as humanAddress, ei as toIPFSURL, fi as humanDomain, gi as DEFAULT_PRIVY_ECOSYSTEM_APPS, gr as copyToClipboard, hi as DEFAULT_GAS_TOKEN_PREFERENCES, ii as compareListOfAddresses, jr as executeCallClause, ki as getGenericDelegatorUrl, kr as ViewFunctionResult, li as formatTokenBalance, mi as isZero, ni as validateIpfsUri, oi as leftPadWithZeros, pi as humanNumber, qr as XNodeStrengthLevelToName, ri as compareAddresses, si as regexPattern, ti as uploadBlobToIPFS, ui as getPicassoImage, vi as NON_TRANSFERABLE_TOKEN_SYMBOLS, vr as getLocalStorageItem, wi as VECHAIN_KIT_COOKIES_CONFIG, wr as safeQuerySelector, xi as TOKEN_LOGOS, xr as isBrowser, yi as PrivyEcosystemApp, yr as getWindowOrigin, zr as removePrefix } from "../index-8BC07wqK.mjs";
|
|
3
|
+
export { DEFAULT_GAS_TOKEN_PREFERENCES, DEFAULT_PRIVY_ECOSYSTEM_APPS, ENV, EconomicNodeStrengthLevelToName, MinXNodeLevel, MultipleClausesCallParameters, MultipleClausesCallReturnType, NON_TRANSFERABLE_TOKEN_SYMBOLS, NodeStrengthLevelToImage, PrivyEcosystemApp, SUPPORTED_GAS_TOKENS, TIME, TOKEN_LOGOS, TOKEN_LOGO_COMPONENTS, TogglePassportCheck, VECHAIN_KIT_COOKIES_CONFIG, VECHAIN_KIT_STORAGE_KEYS, VECHAIN_KIT_TERMS_CONFIG, VECHAIN_PRIVY_APP_ID, ViewFunctionResult, XNodeStrengthLevelToName, addPrefix, allNodeStrengthLevelToName, buildCallClauses, buildQueryString, compare, compareAddresses, compareListOfAddresses, convertUriToUrl, copyToClipboard, executeCallClause, executeMultipleClausesCall, formatTokenBalance, getDocumentTitle, getENV, getGenericDelegatorUrl, getLocalStorageItem, getPicassoImage, getWindowOrigin, gmNfts, hasNavigator, humanAddress, humanDomain, humanNumber, isBrowser, isInvalid, isOnline, isRejectionError, isValid, isValidAddress, isValidUrl, isZero, leftPadWithZeros, normalize, notFoundImage, randomTransactionUser, regexPattern, removeLocalStorageItem, removePrefix, resolveMediaTypeFromMimeType, safeQuerySelector, safeWindowOpen, setLocalStorageItem, simpleHash, toIPFSURL, uploadBlobToIPFS, validate, validateIpfsUri, xNodeToGMstartingLevel };
|
package/dist/utils/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,A as t,B as n,D as r,E as i,F as a,G as o,H as s,I as c,J as l,K as u,L as d,M as f,N as p,O as m,P as h,Q as g,R as _,U as v,V as y,W as b,X as x,Y as S,Z as C,_ as w,_t as T,a as E,at as D,c as O,ct as k,d as A,dt as j,et as M,f as N,ft as P,g as F,gt as I,h as L,ht as R,i as z,it as B,j as V,k as H,l as U,lt as W,m as G,mt as K,n as q,nt as J,o as Y,ot as X,p as Z,pt as Q,q as $,r as ee,rt as te,s as ne,st as re,t as ie,tt as ae,u as oe,ut as se,vt as ce,z as
|
|
1
|
+
import{$ as e,A as t,B as n,D as r,E as i,F as a,G as o,H as s,I as c,J as l,K as u,L as d,M as f,N as p,O as m,P as h,Q as g,R as _,U as v,V as y,W as b,X as x,Y as S,Z as C,_ as w,_t as T,a as E,at as D,c as O,ct as k,d as A,dt as j,et as M,f as N,ft as P,g as F,gt as I,h as L,ht as R,i as z,it as B,j as V,k as H,l as U,lt as W,m as G,mt as K,n as q,nt as J,o as Y,ot as X,p as Z,pt as Q,q as $,r as ee,rt as te,s as ne,st as re,t as ie,tt as ae,u as oe,ut as se,vt as ce,yt as le,z as ue}from"../utils-ctNraYqK.mjs";import"../assets-BL24r-Yp.mjs";export{l as DEFAULT_GAS_TOKEN_PREFERENCES,S as DEFAULT_PRIVY_ECOSYSTEM_APPS,x as ENV,O as EconomicNodeStrengthLevelToName,U as MinXNodeLevel,C as NON_TRANSFERABLE_TOKEN_SYMBOLS,oe as NodeStrengthLevelToImage,g as SUPPORTED_GAS_TOKENS,ne as TIME,e as TOKEN_LOGOS,M as TOKEN_LOGO_COMPONENTS,ae as TogglePassportCheck,J as VECHAIN_KIT_COOKIES_CONFIG,te as VECHAIN_KIT_STORAGE_KEYS,B as VECHAIN_KIT_TERMS_CONFIG,D as VECHAIN_PRIVY_APP_ID,A as XNodeStrengthLevelToName,h as addPrefix,N as allNodeStrengthLevelToName,ie as buildCallClauses,Z as buildQueryString,a as compare,H as compareAddresses,t as compareListOfAddresses,F as convertUriToUrl,W as copyToClipboard,q as executeCallClause,ee as executeMultipleClausesCall,s as formatTokenBalance,se as getDocumentTitle,X as getENV,re as getGenericDelegatorUrl,j as getLocalStorageItem,v as getPicassoImage,P as getWindowOrigin,G as gmNfts,Q as hasNavigator,b as humanAddress,o as humanDomain,u as humanNumber,K as isBrowser,c as isInvalid,R as isOnline,E as isRejectionError,d as isValid,V as isValidAddress,z as isValidUrl,$ as isZero,f as leftPadWithZeros,_ as normalize,k as notFoundImage,y as randomTransactionUser,p as regexPattern,I as removeLocalStorageItem,ue as removePrefix,w as resolveMediaTypeFromMimeType,T as safeQuerySelector,ce as safeWindowOpen,le as setLocalStorageItem,Y as simpleHash,i as toIPFSURL,r as uploadBlobToIPFS,n as validate,m as validateIpfsUri,L as xNodeToGMstartingLevel};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require(`./assets-DNJsQD7_.cjs`);let t=require(`@chakra-ui/react`),n=require(`react`);n=e.Q(n);let r=require(`react/jsx-runtime`),i=require(`@vechain/picasso`),a=require(`bignumber.js`),o=require(`ethers`),s=require(`viem/accounts`),ee=require(`@vechain/sdk-core`);const te={ipfsFetchingService:`https://api.dev.gateway-proxy.vechain.org/ipfs`,ipfsPinningService:`https://api.dev.gateway-proxy.vechain.org/api/v1/pinning/pinFileToIPFS`,vthoContractAddress:`0x0000000000000000000000000000456E65726779`,b3trContractAddress:`0xd31A6f2DBa8785cE41AB68Ea192791B5175309F4`,vot3ContractAddress:`0x028Af33230576c1e073C8245F72a7A4aa53564E4`,b3trGovernorAddress:`0x36E0e9b46D56dF12Dd69fD560e41954C73cE9ded`,timelockContractAddress:`0x125389845c93Efcf6471BA8BE1AC19c11e128603`,xAllocationPoolContractAddress:`0xC8232c91E2f744E533322B99F95f809b9f7ec446`,xAllocationVotingContractAddress:`0x074F093f4C534a16cDD09cb4b2669713218A762a`,emissionsContractAddress:`0x6a084E85f38400790043788FcCee39595616aa3A`,voterRewardsContractAddress:`0xbAb852081C459c0060960287aDcf9a0C2c1dc4b8`,galaxyMemberContractAddress:`0xbdA1cff75d2D43AB9186Ada41fECF79e25c49Ba3`,treasuryContractAddress:`0xe9414513Fe0e3b9bf7a61eC5c1AC7Df943fB3e77`,x2EarnAppsContractAddress:`0x432C46476f4970575C43B19588A170D237dC4929`,x2EarnRewardsPoolContractAddress:`0x134E4Fce6761f660401808CF86aE0e62cE52a81E`,nodeManagementContractAddress:`0xa96B5057171D797298A71178b48449A7bC615D8E`,veBetterPassportContractAddress:`0x8db6D14452fE36ba86C341AfEFaC0f90A0Db2bcb`,x2EarnCreatorContractAddress:`0x4e5f7eb452e9ecd75c0B29e3540014cBe01bBF52`,veDelegate:`0xfc32a9895C78CE00A1047d602Bd81Ea8134CC32b`,veDelegateVotes:`0xeb71148c9B3cd57e228c2152d79f6e78F5F1ef9a`,veDelegateTokenContractAddress:`0xD3f7b82Df5705D34f64C634d2dEf6B1cB3116950`,oracleContractAddress:`0x49eC7192BF804Abc289645ca86F1eD01a6C17713`,accountFactoryAddress:`0xC06Ad8573022e2BE416CA89DA47E8c592971679A`,cleanifyCampaignsContractAddress:`0x7a11D63338576aE8c038868433ea199d7E5319A6`,cleanifyChallengesContractAddress:`0xa58681692AdDD2e8E37f9113D40Bb9253C03F65e`,veWorldSubdomainClaimerContractAddress:`0x0000000000000000000000000000000000000000`,vetDomainsContractAddress:`0x0000000000000000000000000000000000000000`,vetDomainsPublicResolverAddress:`0x0000000000000000000000000000000000000000`,vetDomainsReverseRegistrarAddress:`0x5c970901a587BA3932C835D4ae5FAE2BEa7e78Bc`,vnsResolverAddress:`0x0000000000000000000000000000000000000000`,gloDollarContractAddress:`0x0000000000000000000000000000000000000000`,vetDomainAvatarUrl:`https://testnet.vet.domains/api/avatar`,indexerUrl:`https://b3tr.testnet.vechain.org/api/v1`,b3trIndexerUrl:`https://b3tr.testnet.vechain.org/api/v1`,graphQlIndexerUrl:`https://graph.vet/subgraphs/name/vns`,nodeUrl:`http://localhost:8669`,network:{id:`solo`,name:`solo`,type:`solo`,defaultNet:!0,urls:[`http://localhost:8669`],explorerUrl:`https://explore-testnet.vechain.org`,blockTime:1e4,genesis:{number:0,id:`0x00000000c05a20fbca2bf6ae3affba6af4a74b800b585bf7a4988aba7aea69f6`,size:170,parentID:`0xffffffff53616c757465202620526573706563742c20457468657265756d2100`,timestamp:1530316800,gasLimit:1e7,beneficiary:`0x0000000000000000000000000000000000000000`,gasUsed:0,totalScore:0,txsRoot:`0x45b0cfc220ceec5b7c1c62c4d4193d38e4eba48e8815729ce75f9c0ab0e4c1c0`,txsFeatures:0,stateRoot:`0x93de0ffb1f33bc0af053abc2a87c4af44594f5dcb1cb879dd823686a15d68550`,receiptsRoot:`0x45b0cfc220ceec5b7c1c62c4d4193d38e4eba48e8815729ce75f9c0ab0e4c1c0`,signer:`0x0000000000000000000000000000000000000000`,isTrunk:!0,transactions:[]}},explorerUrl:`https://explore-testnet.vechain.org`};var c=te;const l={ipfsFetchingService:`https://api.dev.gateway-proxy.vechain.org/ipfs`,ipfsPinningService:`https://api.dev.gateway-proxy.vechain.org/api/v1/pinning/pinFileToIPFS`,vthoContractAddress:`0x0000000000000000000000000000456E65726779`,b3trContractAddress:`0x95761346d18244bb91664181bf91193376197088`,vot3ContractAddress:`0x6e8b4a88d37897fc11f6ba12c805695f1c41f40e`,b3trGovernorAddress:`0xc30b4d0837f7e3706749655d8bde0c0f265dd81b`,timelockContractAddress:`0x835509222aa67c333a1cbf29bd341e014aba86c9`,xAllocationPoolContractAddress:`0x6f7b4bc19b4dc99005b473b9c45ce2815bbe7533`,xAllocationVotingContractAddress:`0x8800592c463f0b21ae08732559ee8e146db1d7b2`,emissionsContractAddress:`0x66898f98409db20ed6a1bf0021334b7897eb0688`,voterRewardsContractAddress:`0x851ef91801899a4e7e4a3174a9300b3e20c957e8`,galaxyMemberContractAddress:`0x38a59fa7fd7039884465a0ff285b8c4b6fe394ca`,x2EarnCreatorContractAddress:`0xb89f0ecdaf9987f87912d6c77756435fe4085b05`,nodeManagementContractAddress:`0xde17d0a516c38c168d37685bb71465f656aa256e`,x2EarnAppsContractAddress:`0x0b54a094b877a25bdc95b4431eaa1e2206b1ddfe`,treasuryContractAddress:`0x3d531a80c05099c71b02585031f86a2988e0caca`,x2EarnRewardsPoolContractAddress:`0x2d2a2207c68a46fc79325d7718e639d1047b0d8b`,veBetterPassportContractAddress:`0x592c756df7a5d39de1735030e8b9c18b7417e6c4`,veDelegate:`0xfc32a9895C78CE00A1047d602Bd81Ea8134CC32b`,veDelegateVotes:`0xeb71148c9B3cd57e228c2152d79f6e78F5F1ef9a`,veDelegateTokenContractAddress:`0xD3f7b82Df5705D34f64C634d2dEf6B1cB3116950`,oracleContractAddress:`0xdcCAaBd81B38e0dEEf4c202bC7F1261A4D9192C6`,accountFactoryAddress:`0x713b908Bcf77f3E00EFEf328E50b657a1A23AeaF`,cleanifyCampaignsContractAddress:`0x22d19ACBD2cBf6b2B6C546395c26B9Cb448248BF`,cleanifyChallengesContractAddress:`0x8Cc885DC3e5c376632CCEA0e8e1a51F1B3572442`,veWorldSubdomainClaimerContractAddress:`0xe5af50e7ad1aaab4fbe4efbb2b30f764013918b3`,vetDomainsContractAddress:`0xcBFB30c1F267914816668d53AcBA7bA7c9806D13`,vetDomainsPublicResolverAddress:`0xA6eFd130085a127D090ACb0b100294aD1079EA6f`,vetDomainsReverseRegistrarAddress:`0x6878f1aD5e3015310CfE5B38d7B7071C5D8818Ca`,vnsResolverAddress:`0xc403b8EA53F707d7d4de095f0A20bC491Cf2bc94`,gloDollarContractAddress:`0x0000000000000000000000000000000000000000`,vetDomainAvatarUrl:`https://testnet.vet.domains/api/avatar`,indexerUrl:`https://indexer.testnet.vechain.org/api/v1`,b3trIndexerUrl:`https://indexer.testnet.vechain.org/api/v1`,graphQlIndexerUrl:`https://graph.vet/subgraphs/name/vns`,nodeUrl:`https://testnet.vechain.org`,network:{id:`testnet`,name:`testnet`,type:`test`,defaultNet:!0,urls:[`https://testnet.vechain.org`,`https://vethor-node-test.vechaindev.com`,`https://sync-testnet.veblocks.net`,`https://testnet.vecha.in`],explorerUrl:`https://insight.vecha.in/#/test`,blockTime:1e4,genesis:{number:0,id:`0x000000000b2bce3c70bc649a02749e8687721b09ed2e15997f466536b20bb127`,size:170,parentID:`0xffffffff00000000000000000000000000000000000000000000000000000000`,timestamp:1530014400,gasLimit:1e7,beneficiary:`0x0000000000000000000000000000000000000000`,gasUsed:0,totalScore:0,txsRoot:`0x45b0cfc220ceec5b7c1c62c4d4193d38e4eba48e8815729ce75f9c0ab0e4c1c0`,txsFeatures:0,stateRoot:`0x4ec3af0acbad1ae467ad569337d2fe8576fe303928d35b8cdd91de47e9ac84bb`,receiptsRoot:`0x45b0cfc220ceec5b7c1c62c4d4193d38e4eba48e8815729ce75f9c0ab0e4c1c0`,signer:`0x0000000000000000000000000000000000000000`,isTrunk:!0,transactions:[]}},explorerUrl:`https://explore-testnet.vechain.org/transactions`};var u=l;const d={ipfsFetchingService:`https://api.gateway-proxy.vechain.org/ipfs`,indexerUrl:`https://indexer.mainnet.vechain.org/api/v1`,ipfsPinningService:`https://api.gateway-proxy.vechain.org/api/v1/pinning/pinFileToIPFS`,b3trIndexerUrl:`https://indexer.mainnet.vechain.org/api/v1`,graphQlIndexerUrl:`https://graph.vet/subgraphs/name/vns`,nodeUrl:`https://mainnet.vechain.org`,network:{id:`main`,name:`main`,type:`main`,defaultNet:!0,urls:[`https://mainnet.vechain.org`,`https://vethor-node.vechain.com`,`https://mainnet.veblocks.net`,`https://mainnet.vecha.in`],explorerUrl:`https://vechainstats.com`,blockTime:1e4,genesis:{number:0,id:`0x00000000851caf3cfdb6e899cf5958bfb1ac3413d346d43539627e6be7ec1b4a`,size:170,parentID:`0xffffffff53616c757465202620526573706563742c20457468657265756d2100`,timestamp:1530316800,gasLimit:1e7,beneficiary:`0x0000000000000000000000000000000000000000`,gasUsed:0,totalScore:0,txsRoot:`0x45b0cfc220ceec5b7c1c62c4d4193d38e4eba48e8815729ce75f9c0ab0e4c1c0`,txsFeatures:0,stateRoot:`0x09bfdf9e24dd5cd5b63f3c1b5d58b97ff02ca0490214a021ed7d99b93867839c`,receiptsRoot:`0x45b0cfc220ceec5b7c1c62c4d4193d38e4eba48e8815729ce75f9c0ab0e4c1c0`,signer:`0x0000000000000000000000000000000000000000`,isTrunk:!0,transactions:[]}},explorerUrl:`https://vechainstats.com/transaction`,vthoContractAddress:`0x0000000000000000000000000000456E65726779`,b3trContractAddress:`0x5ef79995FE8a89e0812330E4378eB2660ceDe699`,vot3ContractAddress:`0x76Ca782B59C74d088C7D2Cce2f211BC00836c602`,b3trGovernorAddress:`0x1c65C25fABe2fc1bCb82f253fA0C916a322f777C`,timelockContractAddress:`0x7B7EaF620d88E38782c6491D7Ce0B8D8cF3227e4`,xAllocationPoolContractAddress:`0x4191776F05f4bE4848d3f4d587345078B439C7d3`,xAllocationVotingContractAddress:`0x89A00Bb0947a30FF95BEeF77a66AEdE3842Fe5B7`,emissionsContractAddress:`0xDf94739bd169C84fe6478D8420Bb807F1f47b135`,voterRewardsContractAddress:`0x838A33AF756a6366f93e201423E1425f67eC0Fa7`,galaxyMemberContractAddress:`0x93B8cD34A7Fc4f53271b9011161F7A2B5fEA9D1F`,treasuryContractAddress:`0xD5903BCc66e439c753e525F8AF2FeC7be2429593`,x2EarnAppsContractAddress:`0x8392B7CCc763dB03b47afcD8E8f5e24F9cf0554D`,x2EarnRewardsPoolContractAddress:`0x6Bee7DDab6c99d5B2Af0554EaEA484CE18F52631`,x2EarnCreatorContractAddress:`0xe8e96a768ffd00417d4bd985bec9EcfC6F732a7f`,nodeManagementContractAddress:`0xB0EF9D89C6b49CbA6BBF86Bf2FDf0Eee4968c6AB`,veBetterPassportContractAddress:`0x35a267671d8EDD607B2056A9a13E7ba7CF53c8b3`,veDelegate:`0xfc32a9895C78CE00A1047d602Bd81Ea8134CC32b`,veDelegateVotes:`0xeb71148c9B3cd57e228c2152d79f6e78F5F1ef9a`,veDelegateTokenContractAddress:`0xD3f7b82Df5705D34f64C634d2dEf6B1cB3116950`,oracleContractAddress:`0x49eC7192BF804Abc289645ca86F1eD01a6C17713`,accountFactoryAddress:`0xC06Ad8573022e2BE416CA89DA47E8c592971679A`,cleanifyCampaignsContractAddress:`0x7a11D63338576aE8c038868433ea199d7E5319A6`,cleanifyChallengesContractAddress:`0xa58681692AdDD2e8E37f9113D40Bb9253C03F65e`,veWorldSubdomainClaimerContractAddress:`0xa4173c32fe8a61a8fd0d0234675b559fc360446a`,vetDomainsContractAddress:`0xa9231da8BF8D10e2df3f6E03Dd5449caD600129b`,vetDomainsPublicResolverAddress:`0xabac49445584C8b6c1472b030B1076Ac3901D7cf`,vetDomainsReverseRegistrarAddress:`0x5c970901a587BA3932C835D4ae5FAE2BEa7e78Bc`,vnsResolverAddress:`0xA11413086e163e41901bb81fdc5617c975Fa5a1A`,vetDomainAvatarUrl:`https://vet.domains/api/avatar`,gloDollarContractAddress:`0x29c630cce4ddb23900f5fe66ab55e488c15b9f5e`};var f=d;const p=e=>{if(e===`solo`)return c;if(e===`test`)return u;if(e===`main`)return f;throw Error(`Unsupported NETWORK_TYPE ${e}`)},m=({...e})=>(0,r.jsxs)(t.Icon,{viewBox:`0 0 1684.56 1684.56`,...e,children:[(0,r.jsx)(`rect`,{fill:`#b1f16c`,width:`1684.56`,height:`1684.56`,rx:`157.74`,ry:`157.74`}),(0,r.jsx)(`path`,{fill:`#1d1d1d`,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`})]}),h=e=>{try{return typeof window>`u`?null:localStorage.getItem(e)}catch(t){return console.warn(`Error accessing localStorage for key "${e}":`,t),null}},ne=(e,t)=>{try{if(typeof window>`u`)return;localStorage.setItem(e,t)}catch(t){console.warn(`Error setting localStorage for key "${e}":`,t)}},re=e=>{try{if(typeof window>`u`)return;localStorage.removeItem(e)}catch(t){console.warn(`Error removing localStorage for key "${e}":`,t)}},ie=()=>{try{return typeof document<`u`?document.title:``}catch{return``}},ae=()=>{try{return typeof window<`u`&&window.location?window.location.origin:``}catch{return``}},g=()=>typeof window<`u`&&typeof document<`u`,oe=(e,t,n)=>{g()&&window.open(e,t,n)},se=e=>typeof document<`u`?document.querySelector(e):null,_=()=>typeof navigator<`u`,ce=()=>_()&&navigator.onLine,le=async e=>{try{return _()&&navigator.clipboard?(await navigator.clipboard.writeText(e),!0):!1}catch(e){return console.warn(`Error copying to clipboard:`,e),!1}},v=[`VOT3`],y={VET:new URL(`/static/img/coins/64x64/3077.png`,e.c).toString(),VTHO:new URL(`/static/img/coins/64x64/3012.png`,e.c).toString(),B3TR:new URL(`/static/img/coins/64x64/33509.png`,e.c).toString(),VOT3:new URL(`/17ff70aa1d898bc97ad690dbfad1a3b5643f7e0b.png`,e.c).toString(),veDelegate:new URL(`1c641b86096d56bf13d49f38388accd6db8b8b2e.png`,e.D).toString(),USDGLO:new URL(`/static/img/coins/64x64/23888.png`,e.c).toString()},b={VET:(0,r.jsx)(e.P,{}),VTHO:(0,r.jsx)(e.N,{}),B3TR:(0,r.jsx)(e.F,{}),VOT3:(0,r.jsx)(m,{})},ue=`cm4wxxujb022fyujl7g0thb21`,x=e.p;let S=function(e){return e[e.WhitelistCheck=1]=`WhitelistCheck`,e[e.BlacklistCheck=2]=`BlacklistCheck`,e[e.SignalingCheck=3]=`SignalingCheck`,e[e.ParticipationScoreCheck=4]=`ParticipationScoreCheck`,e[e.GmOwnershipCheck=5]=`GmOwnershipCheck`,e}({});const C={NETWORK:`vechain-kit:network`},w=()=>{if(typeof window>`u`)return{isDevelopment:!1,isProduction:!0};let e=h(C.NETWORK);return{isDevelopment:e===`test`,isProduction:e===`main`}},T={get isDevelopment(){return w().isDevelopment},get isProduction(){return w().isProduction}},E=()=>w().isProduction?`${e.u}/api/v1/`:`${e.d}/api/v1/`,D=[{id:`clz41gcg00e4ay75dmq3uzzgr`,name:`Cleanify`,website:e.s},{id:`cm153hrup0817axti38avlfyg`,name:`GreenCart`,website:e.f},{id:`clv9sfos20j6x1431ga80d95f`,name:`Mughsot`,website:e.m},{id:`cm4l8tiai070i108zo17oieyc`,name:`EVearn`,website:e.l}],O={url:new URL(`terms`,e.T).toString(),version:1,required:!0,displayName:`Vechain Kit Terms`},k={url:new URL(`cookies`,e.T).toString(),version:1,required:!1,displayName:`Vechain Kit Cookies`},A={tokenPriority:[`VET`,`B3TR`,`VTHO`],availableGasTokens:[`VET`,`B3TR`,`VTHO`],excludedTokens:[],alwaysConfirm:!1,gasTokenToUse:`VET`},j={B3TR:{type:`B3TR`,name:`B3TR Token`,symbol:`B3TR`,address:p(process.env.NEXT_PUBLIC_NETWORK_TYPE||`test`).b3trContractAddress,description:`Pay gas with B3TR`},VET:{type:`VET`,name:`VET Token`,symbol:`VET`,description:`Pay gas with VET`},VTHO:{type:`VTHO`,name:`VTHO Token`,symbol:`VTHO`,address:p(process.env.NEXT_PUBLIC_NETWORK_TYPE||`test`).vthoContractAddress,description:`Pay gas with VTHO`}},M=(e,t=6,n=4)=>`${e.slice(0,t)}•••${e.slice(-n)}`,N=(e,t=8,n=6)=>e.length<=t+n?e:`${e.substring(0,t)}•••${e.substring(e.length-n)}`,P=(e,t,n=null)=>{let r=n?` `+n:``;t||=e;let i=new Intl.NumberFormat(`en-US`,{style:`decimal`,minimumFractionDigits:Number.parseFloat(e.toString())%1==0?0:2}).format(L(Number(e),2));return!F(t)&&F(i)&&(i=`< 0.01`),i+r},F=e=>!e&&e!==0?!1:new a.BigNumber(e).isZero(),I=(e,t=!1)=>{let n=(0,i.picasso)(e.toLowerCase());return t?`data:image/svg+xml;base64,${Buffer.from(n,`utf8`).toString(`base64`)}`:`data:image/svg+xml;utf8,${n}`};function L(e,t=0){if(typeof e!=`number`||typeof t!=`number`)throw Error(`Invalid input: number and decimals must be of type number`);let n=parseInt(e.toExponential().split(`e-`)[1]||`0`,10),r=10**Math.max(0,t+n);return Math.floor(e*r)/r}const R=e=>{let t=(0,o.formatEther)(e),n=t===`0`?`0`:P(t);return{original:e.toString(),scaled:t,formatted:n}},z=(()=>{let e=(0,s.generatePrivateKey)(),t=(0,s.privateKeyToAccount)(e);return{privateKey:e,account:t,address:t.address}})(),de=`0x`,B=/^0[xX]/,V=/^(0[xX])?[a-fA-F0-9]+$/,H=e=>(W(e),e.replace(B,``)),U=e=>(W(e),B.test(e)?e.replace(B,`0x`):`0x${e}`),W=e=>{if(!G(e))throw Error(`Provided hex value is not valid`)},G=e=>!!e&&V.test(e),fe=e=>!G(e),K=e=>U(e.toLowerCase().trim()),pe=(e,t)=>{try{return H(e).toLowerCase()===H(t).toLowerCase()}catch{return!1}},q=(e,t)=>{if(!e||!t)return!1;if(t===e)return!0;try{return K(e)===K(t)}catch{return!1}},me=(e,t)=>{if(e.length!==t.length)return!1;let n=[...e].map(e=>e.toLowerCase()).sort((e,t)=>e.localeCompare(t)),r=[...t].map(e=>e.toLowerCase()).sort((e,t)=>e.localeCompare(t));for(let e=0;e<n.length;e++)if(!q(n[e],r[e]))return!1;return!0},he=()=>/^0x[a-fA-F0-9]{40}$/,ge=ee.Address.isValid,_e=(e,t)=>{let n=e.startsWith(`0x`)?e.slice(2):e;if(n.length>t)throw Error(`Input string is longer than the specified length`);return`0x${n.padStart(t,`0`)}`},J=e=>{let t=e.trim();return/^ipfs:\/\/[a-zA-Z0-9]+(\/[^/]+)*\/?$/.test(t)};function ve(e,t){return`ipfs://${e}/${t??``}`}async function ye(e,t,n){try{let r=new FormData;r.append(`file`,e,t);let i=await fetch(p(n).ipfsPinningService,{method:`POST`,headers:{"X-Project-Id":`vechain-kit`},body:r});if(!i.ok)throw Error(`HTTP error! status: ${i.status}`);return(await i.json()).IpfsHash}catch(e){throw console.error(`Error uploading blob:`,e),Error(`Failed to upload blob to IPFS`)}}let Y=function(e){return e.IMAGE=`image`,e.VIDEO=`video`,e.UNKNOWN=`unknown`,e.TEXT=`text`,e}({}),be=function(e){return e.NONE=`NONE`,e.WHITELIST=`WHITELIST`,e.BLACKLIST=`BLACKLIST`,e}({});const xe={usd:`$`,gbp:`£`,eur:`€`},Se=[`display`,`avatar`,`description`,`keywords`,`email`,`url`,`header`,`notice`,`location`,`phone`,`com.x`];function Ce(e,t){return e*(1+t)}function we(e,t=4){return Number(e).toLocaleString(void 0,{minimumFractionDigits:t,maximumFractionDigits:t})}let Te=function(e){return e.TERMS=`terms`,e.PRIVACY=`privacy`,e.COOKIES=`cookies`,e}({}),Ee=function(e){return e.VECHAIN_KIT=`vechain-kit`,e.APPLICATION=`application`,e}({});const X=(e,t)=>!!t.find(t=>{if(e?.split(`/`)[0]===t)return!0}),De=e=>X(e,[Y.IMAGE])?Y.IMAGE:X(e,[Y.VIDEO])?Y.VIDEO:Y.UNKNOWN,Oe=(e,t)=>{if(e.startsWith(`data:`))return e;let n=e?.split(`://`);if(n.length!==2)return null;let r=n?.[0]?.trim(),i=n[1];switch(r){case`ipfs`:if(!J(e))throw Error(`Invalid IPFS URI ${e}`);return`${p(t).ipfsFetchingService}/${i}`;case`ar`:return`https://arweave.net/${i}`;default:return e}},ke=[{level:`1`,name:`Earth`,image:`/images/nft-levels/0.png`,multiplier:1,b3trToUpgrade:0},{level:`2`,name:`Moon`,image:`/images/nft-levels/1.png`,multiplier:1.1,b3trToUpgrade:1e4},{level:`3`,name:`Mercury`,image:`/images/nft-levels/2.png`,multiplier:1.2,b3trToUpgrade:25e3},{level:`4`,name:`Venus`,image:`/images/nft-levels/3.png`,multiplier:1.5,b3trToUpgrade:5e4},{level:`5`,name:`Mars`,image:`/images/nft-levels/4.png`,multiplier:2,b3trToUpgrade:1e5},{level:`6`,name:`Jupiter`,image:`/images/nft-levels/5.png`,multiplier:2.5,b3trToUpgrade:25e4},{level:`7`,name:`Saturn`,image:`/images/nft-levels/6.png`,multiplier:3,b3trToUpgrade:5e5},{level:`8`,name:`Uranus`,image:`/images/nft-levels/7.png`,multiplier:5,b3trToUpgrade:25e5},{level:`9`,name:`Neptune`,image:`/images/nft-levels/8.png`,multiplier:10,b3trToUpgrade:5e6},{level:`10`,name:`Galaxy`,image:`/images/nft-levels/9.png`,multiplier:25,b3trToUpgrade:25e6}],Z={1:2,2:4,3:6,4:2,5:4,6:6,7:7},Ae=e=>{let t=new URLSearchParams;return Object.keys(e).forEach(n=>{let r=e[n];r!=null&&t.append(n,String(r))}),t.toString()},je={0:`/images/vnt/00-noNode.webp`,1:`/images/vnt/01-strength.webp`,2:`/images/vnt/02-thunder.webp`,3:`/images/vnt/03-mjolnir.webp`,4:`/images/vnt/04-vethorX.webp`,5:`/images/vnt/05-strengthX.webp`,6:`/images/vnt/06-thunderX.webp`,7:`/images/vnt/07-mjolnirX.webp`},Me=4,Q={1:`Strength`,2:`Thunder`,3:`Mjolnir`},$={4:`VeThorX`,5:`StrengthX`,6:`ThunderX`,7:`MjolnirX`},Ne={...Q,...$},Pe={SECOND:1e3,MINUTE:1e3*60,HOUR:1e3*60*60,DAY:1e3*60*60*24,WEEK:1e3*60*60*24*7,MONTH:1e3*60*60*24*30,YEAR:1e3*60*60*24*365},Fe=e=>e?[`rejected`,`cancelled`,`user denied`,`closed`].some(t=>e.toLowerCase().includes(t.toLowerCase())):!1,Ie=e=>{let t=0;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);t=(t<<5)-t+r,t&=t}return t.toString(36)},Le=e=>{try{return new URL(e),!0}catch{return!1}},Re=async({thor:e,contractAddress:t,abi:n,method:r,args:i})=>await e.contracts.load(t,n).read[r](...i),ze=async({thor:e,calls:t})=>{if(!Array.isArray(t))throw Error(`calls must be an array`);let n=t.map(t=>e.contracts.load(t.address,t.abi).clause[t.functionName](...t.args)),r=await e.transactions.executeMultipleClausesCall(n);if(!r.every(e=>e.success))throw Error(`Failed to execute multiple clauses call`);return r.map(e=>e.result.plain)},Be=({thor:e,calls:t})=>{if(!Array.isArray(t))throw Error(`calls must be an array`);return t.map(t=>e.contracts.load(t.address,t.abi).clause[t.functionName](...t.args))};Object.defineProperty(exports,`$`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`A`,{enumerable:!0,get:function(){return me}}),Object.defineProperty(exports,`B`,{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return xe}}),Object.defineProperty(exports,`D`,{enumerable:!0,get:function(){return ye}}),Object.defineProperty(exports,`E`,{enumerable:!0,get:function(){return ve}}),Object.defineProperty(exports,`F`,{enumerable:!0,get:function(){return pe}}),Object.defineProperty(exports,`G`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`H`,{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,`I`,{enumerable:!0,get:function(){return fe}}),Object.defineProperty(exports,`J`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`K`,{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,`L`,{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,`M`,{enumerable:!0,get:function(){return _e}}),Object.defineProperty(exports,`N`,{enumerable:!0,get:function(){return he}}),Object.defineProperty(exports,`O`,{enumerable:!0,get:function(){return J}}),Object.defineProperty(exports,`P`,{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,`Q`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`R`,{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return Se}}),Object.defineProperty(exports,`T`,{enumerable:!0,get:function(){return be}}),Object.defineProperty(exports,`U`,{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,`V`,{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,`W`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`X`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`Y`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`Z`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return De}}),Object.defineProperty(exports,`_t`,{enumerable:!0,get:function(){return se}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return Fe}}),Object.defineProperty(exports,`at`,{enumerable:!0,get:function(){return`cm4wxxujb022fyujl7g0thb21`}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return Ce}}),Object.defineProperty(exports,`bt`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,`ct`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,`dt`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`et`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return Ne}}),Object.defineProperty(exports,`ft`,{enumerable:!0,get:function(){return ae}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return Oe}}),Object.defineProperty(exports,`gt`,{enumerable:!0,get:function(){return re}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,`ht`,{enumerable:!0,get:function(){return ce}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return Le}}),Object.defineProperty(exports,`it`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`j`,{enumerable:!0,get:function(){return ge}}),Object.defineProperty(exports,`k`,{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return 4}}),Object.defineProperty(exports,`lt`,{enumerable:!0,get:function(){return le}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return ke}}),Object.defineProperty(exports,`mt`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return Re}}),Object.defineProperty(exports,`nt`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return Ie}}),Object.defineProperty(exports,`ot`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return Ae}}),Object.defineProperty(exports,`pt`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`q`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return ze}}),Object.defineProperty(exports,`rt`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return Pe}}),Object.defineProperty(exports,`st`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Be}}),Object.defineProperty(exports,`tt`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return je}}),Object.defineProperty(exports,`ut`,{enumerable:!0,get:function(){return ie}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return Ee}}),Object.defineProperty(exports,`vt`,{enumerable:!0,get:function(){return oe}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return Y}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return we}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return Te}}),Object.defineProperty(exports,`yt`,{enumerable:!0,get:function(){return ne}}),Object.defineProperty(exports,`z`,{enumerable:!0,get:function(){return H}});
|
|
2
|
+
//# sourceMappingURL=utils-DeETrpws.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils-DeETrpws.cjs","names":["config: AppConfig","config","config: AppConfig","config","config: AppConfig","localConfig","testnetConfig","mainnetConfig","VOT3Logo: React.FC<Props>","Icon","NON_TRANSFERABLE_TOKEN_SYMBOLS: readonly string[]","TOKEN_LOGOS: Record<string, string>","COINMARKETCAP_STATIC_BASE_URL","VECHAIN_TOKEN_REGISTRY_ASSETS_BASE_URL","TOKEN_LOGO_COMPONENTS: Record<string, JSX.Element>","VETLogo","VTHOLogo","VeBetterIcon","IMAGE_NOT_FOUND_URL","GENERIC_DELEGATOR_MAINNET_URL","GENERIC_DELEGATOR_TESTNET_URL","DEFAULT_PRIVY_ECOSYSTEM_APPS: PrivyEcosystemApp[]","CLEANIFY_APP_BASE_URL","GREENCART_BASE_URL","MUGSHOT_BASE_URL","EVEARN_BASE_URL","VECHAIN_KIT_WEBSITE_BASE_URL","DEFAULT_GAS_TOKEN_PREFERENCES: GasTokenPreferences","SUPPORTED_GAS_TOKENS: Record<GasTokenType, GasTokenInfo>","BigNumber","randomTransactionUser: {\n privateKey: string;\n account: Account;\n address: string;\n}","HexUtils.normalize","Address","CURRENCY_SYMBOLS: Record<CURRENCY, string>","xNodeToGMstartingLevel: Record<number, number>","NodeStrengthLevelToImage: { [key: string]: string }","EconomicNodeStrengthLevelToName: { [key: string]: string }","XNodeStrengthLevelToName: { [key: string]: string }","allNodeStrengthLevelToName: { [key: string]: string }"],"sources":["../src/config/solo.ts","../src/config/testnet.ts","../src/config/mainnet.ts","../src/config/index.ts","../src/assets/icons/VechainLogo/VOT3Logo.tsx","../src/utils/ssrUtils.ts","../src/utils/constants.tsx","../src/utils/formattingUtils.tsx","../src/utils/randomTxForwarder.tsx","../src/utils/hexUtils.ts","../src/utils/addressUtils.ts","../src/utils/ipfs.ts","../src/types/types.ts","../src/types/ensTextRecords.ts","../src/types/gasEstimation.ts","../src/types/index.ts","../src/utils/media.ts","../src/utils/uri.ts","../src/utils/gmNfts.ts","../src/utils/buildQueryString.ts","../src/utils/xNode.ts","../src/utils/time.ts","../src/utils/stringUtils.ts","../src/utils/url.ts","../src/utils/thorUtils.ts"],"sourcesContent":["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: '0x95761346d18244bb91664181bf91193376197088',\n vot3ContractAddress: '0x6e8b4a88d37897fc11f6ba12c805695f1c41f40e',\n b3trGovernorAddress: '0xc30b4d0837f7e3706749655d8bde0c0f265dd81b',\n timelockContractAddress: '0x835509222aa67c333a1cbf29bd341e014aba86c9',\n xAllocationPoolContractAddress:\n '0x6f7b4bc19b4dc99005b473b9c45ce2815bbe7533',\n xAllocationVotingContractAddress:\n '0x8800592c463f0b21ae08732559ee8e146db1d7b2',\n emissionsContractAddress: '0x66898f98409db20ed6a1bf0021334b7897eb0688',\n voterRewardsContractAddress: '0x851ef91801899a4e7e4a3174a9300b3e20c957e8',\n galaxyMemberContractAddress: '0x38a59fa7fd7039884465a0ff285b8c4b6fe394ca',\n x2EarnCreatorContractAddress: '0xb89f0ecdaf9987f87912d6c77756435fe4085b05',\n nodeManagementContractAddress: '0xde17d0a516c38c168d37685bb71465f656aa256e',\n x2EarnAppsContractAddress: '0x0b54a094b877a25bdc95b4431eaa1e2206b1ddfe',\n treasuryContractAddress: '0x3d531a80c05099c71b02585031f86a2988e0caca',\n x2EarnRewardsPoolContractAddress:\n '0x2d2a2207c68a46fc79325d7718e639d1047b0d8b',\n veBetterPassportContractAddress:\n '0x592c756df7a5d39de1735030e8b9c18b7417e6c4',\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://indexer.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://indexer.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 { 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","/**\n * SSR-safe utilities for browser API access\n */\n\n/**\n * SSR-safe localStorage getter\n */\nexport const getLocalStorageItem = (key: string): string | null => {\n try {\n if (typeof window === 'undefined') {\n return null;\n }\n return localStorage.getItem(key);\n } catch (error) {\n console.warn(`Error accessing localStorage for key \"${key}\":`, error);\n return null;\n }\n};\n\n/**\n * SSR-safe localStorage setter\n */\nexport const setLocalStorageItem = (key: string, value: string): void => {\n try {\n if (typeof window === 'undefined') {\n return;\n }\n localStorage.setItem(key, value);\n } catch (error) {\n console.warn(`Error setting localStorage for key \"${key}\":`, error);\n }\n};\n\n/**\n * SSR-safe localStorage remover\n */\nexport const removeLocalStorageItem = (key: string): void => {\n try {\n if (typeof window === 'undefined') {\n return;\n }\n localStorage.removeItem(key);\n } catch (error) {\n console.warn(`Error removing localStorage for key \"${key}\":`, error);\n }\n};\n\n/**\n * SSR-safe document.title getter\n */\nexport const getDocumentTitle = (): string => {\n try {\n return typeof document !== 'undefined' ? document.title : '';\n } catch {\n return '';\n }\n};\n\n/**\n * SSR-safe window.location.origin getter\n */\nexport const getWindowOrigin = (): string => {\n try {\n return typeof window !== 'undefined' && window.location\n ? window.location.origin\n : '';\n } catch {\n return '';\n }\n};\n\n/**\n * Check if we're in a browser environment\n */\nexport const isBrowser = (): boolean => {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n};\n\n/**\n * SSR-safe window.open\n */\nexport const safeWindowOpen = (url?: string, target?: string, features?: string): void => {\n if (isBrowser()) {\n window.open(url, target, features);\n }\n};\n\n/**\n * SSR-safe document.querySelector\n */\nexport const safeQuerySelector = <T extends Element>(selector: string): T | null => {\n if (typeof document !== 'undefined') {\n return document.querySelector<T>(selector);\n }\n return null;\n};\n\n/**\n * SSR-safe navigator check\n */\nexport const hasNavigator = (): boolean => {\n return typeof navigator !== 'undefined';\n};\n\n/**\n * SSR-safe navigator.onLine check\n */\nexport const isOnline = (): boolean => {\n return hasNavigator() && navigator.onLine;\n};\n\n/**\n * SSR-safe clipboard write\n */\nexport const copyToClipboard = async (text: string): Promise<boolean> => {\n try {\n if (hasNavigator() && navigator.clipboard) {\n await navigator.clipboard.writeText(text);\n return true;\n }\n return false;\n } catch (error) {\n console.warn('Error copying to clipboard:', error);\n return false;\n }\n};\n","import { VeBetterIcon, VTHOLogo } from '@/assets';\nimport { VETLogo } from '@/assets/icons/VechainLogo/VETLogo';\nimport { VOT3Logo } from '@/assets/icons/VechainLogo/VOT3Logo';\nimport { getLocalStorageItem } from './ssrUtils';\nimport {\n GasTokenPreferences,\n GasTokenType,\n GasTokenInfo,\n} from '@/types/gasToken';\nimport { getConfig } from '@/config';\nimport {\n GENERIC_DELEGATOR_MAINNET_URL,\n GENERIC_DELEGATOR_TESTNET_URL,\n VECHAIN_KIT_WEBSITE_BASE_URL,\n COINMARKETCAP_STATIC_BASE_URL,\n VECHAIN_TOKEN_REGISTRY_ASSETS_BASE_URL,\n IMAGE_NOT_FOUND_URL,\n CLEANIFY_APP_BASE_URL,\n EVEARN_BASE_URL,\n GREENCART_BASE_URL,\n MUGSHOT_BASE_URL,\n} from '@/constants';\n\n/** Tokens that cannot be swapped or transferred (e.g. governance voting tokens) */\nexport const NON_TRANSFERABLE_TOKEN_SYMBOLS: readonly string[] = ['VOT3'];\n\nexport const TOKEN_LOGOS: Record<string, string> = {\n VET: new URL(\n '/static/img/coins/64x64/3077.png',\n COINMARKETCAP_STATIC_BASE_URL,\n ).toString(),\n VTHO: new URL(\n '/static/img/coins/64x64/3012.png',\n COINMARKETCAP_STATIC_BASE_URL,\n ).toString(),\n B3TR: new URL(\n '/static/img/coins/64x64/33509.png',\n COINMARKETCAP_STATIC_BASE_URL,\n ).toString(),\n VOT3: new URL(\n '/17ff70aa1d898bc97ad690dbfad1a3b5643f7e0b.png',\n COINMARKETCAP_STATIC_BASE_URL,\n ).toString(),\n veDelegate: new URL(\n '1c641b86096d56bf13d49f38388accd6db8b8b2e.png',\n VECHAIN_TOKEN_REGISTRY_ASSETS_BASE_URL,\n ).toString(),\n USDGLO: new URL(\n '/static/img/coins/64x64/23888.png',\n COINMARKETCAP_STATIC_BASE_URL,\n ).toString(),\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 = IMAGE_NOT_FOUND_URL;\n\nexport enum TogglePassportCheck {\n WhitelistCheck = 1,\n BlacklistCheck = 2,\n SignalingCheck = 3,\n ParticipationScoreCheck = 4,\n GmOwnershipCheck = 5,\n}\n\nexport const VECHAIN_KIT_STORAGE_KEYS = {\n NETWORK: 'vechain-kit:network',\n};\n\n// SSR-safe ENV getter function\nexport const getENV = () => {\n // During SSR, always return safe defaults\n if (typeof window === 'undefined') {\n return {\n isDevelopment: false,\n isProduction: true,\n };\n }\n\n // In browser, check localStorage using SSR-safe utility\n const network = getLocalStorageItem(VECHAIN_KIT_STORAGE_KEYS.NETWORK);\n return {\n isDevelopment: network === 'test',\n isProduction: network === 'main',\n };\n};\n\n// For backward compatibility, create a getter-based ENV object\n// This ensures ENV properties are evaluated lazily and won't crash during SSR\nexport const ENV = {\n get isDevelopment() {\n return getENV().isDevelopment;\n },\n get isProduction() {\n return getENV().isProduction;\n },\n};\n\nexport const getGenericDelegatorUrl = () => {\n const env = getENV();\n return env.isProduction\n ? `${GENERIC_DELEGATOR_MAINNET_URL}/api/v1/`\n : `${GENERIC_DELEGATOR_TESTNET_URL}/api/v1/`; // or url to your delegator\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: CLEANIFY_APP_BASE_URL,\n },\n {\n id: 'cm153hrup0817axti38avlfyg',\n name: 'GreenCart',\n website: GREENCART_BASE_URL,\n },\n {\n id: 'clv9sfos20j6x1431ga80d95f',\n name: 'Mughsot',\n website: MUGSHOT_BASE_URL,\n },\n {\n id: 'cm4l8tiai070i108zo17oieyc',\n name: 'EVearn',\n website: EVEARN_BASE_URL,\n },\n];\n\n//Hardcoded for displaying in the \"Terms and Privacy\" agreements modal\nexport const VECHAIN_KIT_TERMS_CONFIG = {\n url: new URL('terms', VECHAIN_KIT_WEBSITE_BASE_URL).toString(),\n version: 1,\n required: true,\n displayName: 'Vechain Kit Terms',\n};\n\n//Hardcoded for showing up if allowAnalytics is true\n//So we ask users if they agree with data tracking\nexport const VECHAIN_KIT_COOKIES_CONFIG = {\n url: new URL('cookies', VECHAIN_KIT_WEBSITE_BASE_URL).toString(),\n version: 1,\n required: false,\n displayName: 'Vechain Kit Cookies',\n};\n\nexport const DEFAULT_GAS_TOKEN_PREFERENCES: GasTokenPreferences = {\n tokenPriority: ['VET', 'B3TR', 'VTHO'],\n availableGasTokens: ['VET', 'B3TR', 'VTHO'],\n excludedTokens: [],\n alwaysConfirm: false,\n gasTokenToUse: 'VET',\n};\n\nexport const SUPPORTED_GAS_TOKENS: Record<GasTokenType, GasTokenInfo> = {\n B3TR: {\n type: 'B3TR',\n name: 'B3TR Token',\n symbol: 'B3TR',\n address: getConfig(\n (process.env.NEXT_PUBLIC_NETWORK_TYPE as any) || 'test',\n ).b3trContractAddress,\n description: 'Pay gas with B3TR',\n },\n VET: {\n type: 'VET',\n name: 'VET Token',\n symbol: 'VET',\n description: 'Pay gas with VET',\n },\n VTHO: {\n type: 'VTHO',\n name: 'VTHO Token',\n symbol: 'VTHO',\n address: getConfig(\n (process.env.NEXT_PUBLIC_NETWORK_TYPE as any) || 'test',\n ).vthoContractAddress,\n description: 'Pay gas with VTHO',\n },\n};\n","import { picasso } from '@vechain/picasso';\nimport { BigNumber } from 'bignumber.js';\nimport { formatEther } from 'ethers';\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-US', {\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\n/**\n * Format the token balance human friendly\n * @param balance - balance in bigint\n * @returns the formatted balance in the form of {@link TokenBalance} (original, scaled down and formatted)\n */\nexport const formatTokenBalance = (balance: bigint) => {\n const scaled = formatEther(balance);\n const formatted = scaled === '0' ? '0' : humanNumber(scaled);\n return {\n original: balance.toString(),\n scaled,\n formatted,\n };\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","const 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","import * as HexUtils from './hexUtils';\nimport { Address } from '@vechain/sdk-core';\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 = Address.isValid;\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 { 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 { LoginMethodOrderOption } from '@privy-io/react-auth';\nimport { TransactionClause } from '@vechain/sdk-core';\n\nexport type TokenBalance = {\n original: string;\n scaled: string;\n formatted: string;\n};\n\nexport type ENSRecords = {\n display?: string;\n description?: string;\n email?: string;\n url?: string;\n header?: string;\n notice?: string;\n location?: string;\n phone?: string;\n [key: string]: string | undefined;\n};\n\nexport type Wallet = {\n address: string;\n domain?: string;\n image?: string;\n isLoadingMetadata?: boolean;\n metadata?: ENSRecords;\n} | null;\n\nexport type SmartAccount = Wallet & {\n isDeployed: boolean;\n isActive: boolean;\n version: number | null;\n};\n\nexport type ConnectionSource = {\n type: 'privy' | 'wallet' | 'privy-cross-app';\n displayName: string;\n};\n\n/**\n * Data that the Privy user must sign in order to execute a transaction\n * by authorizing the Smart Account contract\n */\nexport type ExecuteWithAuthorizationSignData = {\n domain: {\n name: string;\n version: string;\n chainId: number;\n verifyingContract: string;\n };\n types: {\n ExecuteWithAuthorization: {\n name: string;\n type: string;\n }[];\n EIP712Domain: {\n name: string;\n type: string;\n }[];\n };\n primaryType: string;\n message: {\n validAfter: number;\n validBefore: number;\n to: string | null | undefined;\n value: string;\n data: string;\n };\n};\n\nexport type ExecuteBatchWithAuthorizationSignData = {\n domain: {\n name: string;\n version: string;\n chainId: number;\n verifyingContract: string;\n };\n types: {\n ExecuteBatchWithAuthorization: {\n name: string;\n type: string;\n }[];\n EIP712Domain: {\n name: string;\n type: string;\n }[];\n };\n primaryType: string;\n message: {\n to: string[] | null | undefined;\n value: string[] | null | undefined;\n data: string[] | null | undefined;\n validAfter: number;\n validBefore: number;\n nonce: string;\n };\n};\n\n/**\n * ready: the user has not clicked on the button yet\n * pending: the user has clicked on the button and we're waiting for the transaction to be sent\n * waitingConfirmation: the transaction has been sent and we're waiting for the transaction to be confirmed by the chain\n * success: the transaction has been confirmed by the chain\n * error: the transaction has failed\n * unknown: the transaction receipt has failed to load\n */\nexport type TransactionStatus =\n | 'ready'\n | 'pending'\n | 'waitingConfirmation'\n | 'success'\n | 'error'\n | 'unknown';\n\nexport type TransactionStatusErrorType = {\n type:\n | 'SendTransactionError'\n | 'TxReceiptError'\n | 'RevertReasonError'\n | 'UserRejectedError';\n reason?: string;\n};\n\n/**\n * An enhanced clause with a comment and an abi\n * @param comment a comment to add to the clause\n * @param abi the abi of the contract to call\n */\nexport type EnhancedClause = TransactionClause;\n\nexport type PrivyAppInfo = {\n id: string;\n name: string;\n logo_url: string;\n icon_url: string | null;\n terms_and_conditions_url: string;\n privacy_policy_url: string;\n theme: string;\n accent_color: string;\n wallet_auth: boolean;\n email_auth: boolean;\n google_oauth: boolean;\n twitter_oauth: boolean;\n url: string;\n website?: string;\n};\n\nexport type PrivyLoginMethod = LoginMethodOrderOption;\n\nexport interface CrossAppConnectionCache {\n timestamp: number;\n ecosystemApp: {\n name: string;\n logoUrl?: string;\n appId: string;\n website?: string;\n };\n}\n\nexport enum NFTMediaType {\n IMAGE = 'image',\n VIDEO = 'video',\n UNKNOWN = 'unknown',\n TEXT = 'text', // mp4 appears as text sometimes\n}\n\nexport enum VePassportUserStatus {\n NONE = 'NONE',\n WHITELIST = 'WHITELIST',\n BLACKLIST = 'BLACKLIST',\n}\n\nexport type CURRENCY = 'usd' | 'gbp' | 'eur';\n\nexport const CURRENCY_SYMBOLS: Record<CURRENCY, string> = {\n usd: '$',\n gbp: '£',\n eur: '€',\n};\n","export const ENS_TEXT_RECORDS = [\n 'display',\n 'avatar',\n 'description',\n 'keywords',\n 'email',\n 'url',\n 'header',\n 'notice',\n 'location',\n 'phone',\n 'com.x',\n] as const;\n\nexport type TextRecords = {\n [K in (typeof ENS_TEXT_RECORDS)[number]]?: string;\n};\n","export interface VthoPerGasAtSpeed {\n regular: number;\n medium: number;\n high: number;\n legacy: number;\n}\n\nexport interface EstimatedGas {\n vtho: number;\n vet: number;\n b3tr: number;\n smartAccount: number;\n}\n\nexport interface Rate {\n vtho: number;\n vet: number;\n b3tr: number;\n}\n\nexport interface CostLevel {\n vtho: number;\n vet: number;\n b3tr: number;\n vetWithSmartAccount: number;\n b3trWithSmartAccount: number;\n}\n\nexport interface TransactionCost {\n regular: CostLevel;\n medium: CostLevel;\n high: CostLevel;\n legacy: CostLevel;\n}\n\nexport interface EstimationResponse {\n vthoPerGasAtSpeed?: number;\n estimatedGas?: number;\n rate?: number;\n transactionCost?: number;\n serviceFee?: number;\n totalGasUsed?: number;\n}\n\nexport interface DepositAccount {\n depositAccount: string;\n}\n\nexport function calculateTotalCost(\n baseCost: number,\n serviceFeeRate: number,\n): number {\n return baseCost * (1 + serviceFeeRate);\n}\n\nexport function formatGasCost(amount: number, decimals: number = 4): string {\n return Number(amount).toLocaleString(undefined, {\n minimumFractionDigits: decimals,\n maximumFractionDigits: decimals,\n });\n}\n","export * from './types';\nexport * from './ensTextRecords';\nexport * from './gasToken';\nexport * from './gasEstimation';\n\nimport { LegalDocument } from '@/providers';\n\nexport enum LegalDocumentType {\n TERMS = 'terms',\n PRIVACY = 'privacy',\n COOKIES = 'cookies',\n}\n\nexport enum LegalDocumentSource {\n VECHAIN_KIT = 'vechain-kit',\n APPLICATION = 'application',\n}\n\n// Base type for all legal documents (terms, privacy policy, cookies)\nexport type EnrichedLegalDocument = LegalDocument & {\n id: string;\n documentType: LegalDocumentType;\n documentSource: LegalDocumentSource;\n};\n\n// Agreement record stored in localStorage\nexport type LegalDocumentAgreement = EnrichedLegalDocument & {\n walletAddress: string;\n timestamp: number;\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","export const TIME = {\n SECOND: 1000,\n MINUTE: 1000 * 60,\n HOUR: 1000 * 60 * 60,\n DAY: 1000 * 60 * 60 * 24,\n WEEK: 1000 * 60 * 60 * 24 * 7,\n MONTH: 1000 * 60 * 60 * 24 * 30,\n YEAR: 1000 * 60 * 60 * 24 * 365,\n}\n","/**\n * Checks if a string contains common rejection-related terms\n * @param errorMessage The error message to check\n * @returns boolean indicating if the message contains rejection terms\n */\nexport const isRejectionError = (errorMessage: string): boolean => {\n if (!errorMessage) return false;\n const rejectionTerms = ['rejected', 'cancelled', 'user denied', 'closed'];\n return rejectionTerms.some((term) =>\n errorMessage.toLowerCase().includes(term.toLowerCase()),\n );\n};\n\n/**\n * Generates a simple hash from a string using a 32-bit hash algorithm\n * @param input The string to hash\n * @returns A base-36 string representation of the hash\n */\nexport const simpleHash = (input: string): string => {\n let hash = 0;\n for (let i = 0; i < input.length; i++) {\n const char = input.charCodeAt(i);\n hash = (hash << 5) - hash + char;\n hash = hash & hash; // Convert to 32bit integer\n }\n return hash.toString(36);\n};\n","export const isValidUrl = (value: string) => {\n try {\n new URL(value);\n return true;\n } catch {\n return false;\n }\n};\n","import { ThorClient } from '@vechain/sdk-network';\nimport {\n ExtractAbiFunctionNames,\n AbiParametersToPrimitiveTypes,\n ExtractAbiFunction,\n} from 'abitype';\nimport { Abi, ContractFunctionParameters } from 'viem';\nimport type {\n MulticallParameters as viem_MulticallParameters,\n MulticallReturnType as viem_MulticallReturnType,\n} from 'viem';\n\ntype ExtractViewFunction<\n TAbi extends Abi,\n TMethod extends ExtractAbiFunctionNames<TAbi, 'pure' | 'view'>,\n> = Extract<\n TAbi[number],\n { type: 'function'; stateMutability: 'pure' | 'view'; name: TMethod }\n>;\n\nexport type ViewFunctionResult<\n TAbi extends Abi,\n TMethod extends ExtractAbiFunctionNames<TAbi, 'pure' | 'view'>,\n> = AbiParametersToPrimitiveTypes<\n ExtractViewFunction<TAbi, TMethod>['outputs'],\n 'outputs'\n>;\n\nexport type MultipleClausesCallParameters<\n contracts extends readonly unknown[] = readonly ContractFunctionParameters[],\n allowFailure extends boolean = true,\n> = viem_MulticallParameters<contracts, allowFailure>['contracts'];\n\nexport type MultipleClausesCallReturnType<\n contracts extends readonly unknown[] = readonly ContractFunctionParameters[],\n allowFailure extends boolean = true,\n> = viem_MulticallReturnType<contracts, allowFailure>;\n\nexport const executeCallClause = async <\n TAbi extends Abi,\n TMethod extends ExtractAbiFunctionNames<TAbi, 'pure' | 'view'>,\n>({\n thor,\n contractAddress,\n abi,\n method,\n args,\n}: {\n thor: ThorClient;\n contractAddress: string;\n abi: TAbi;\n method: TMethod;\n args: AbiParametersToPrimitiveTypes<\n ExtractAbiFunction<TAbi, TMethod>['inputs'],\n 'inputs'\n >;\n}) => {\n const contract = thor.contracts.load(contractAddress, abi);\n const res = await contract.read[method](...args);\n return res as ViewFunctionResult<TAbi, TMethod>;\n};\n\nexport const executeMultipleClausesCall = async <\n contracts extends readonly ContractFunctionParameters[],\n allowFailure extends boolean = false,\n>({\n thor,\n calls,\n}: {\n thor: ThorClient;\n calls: MultipleClausesCallParameters<contracts, allowFailure>;\n}) => {\n if (!Array.isArray(calls)) throw new Error('calls must be an array');\n\n const clauses = calls.map((call) =>\n thor.contracts\n .load(call.address, call.abi)\n .clause[call.functionName](...call.args),\n );\n const res = await thor.transactions.executeMultipleClausesCall(clauses);\n\n if (!res.every((r) => r.success))\n throw new Error('Failed to execute multiple clauses call');\n\n return res.map((r) => r.result.plain) as MultipleClausesCallReturnType<\n contracts,\n allowFailure\n >;\n};\n\nexport const buildCallClauses = <\n contracts extends readonly ContractFunctionParameters[],\n allowFailure extends boolean = false,\n>({\n thor,\n calls,\n}: {\n thor: ThorClient;\n calls: MultipleClausesCallParameters<contracts, allowFailure>;\n}) => {\n if (!Array.isArray(calls)) throw new Error('calls must be an array');\n\n return calls.map((call) =>\n thor.contracts\n .load(call.address, call.abi)\n .clause[call.functionName](...call.args),\n );\n};\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{D as e,F as t,N as n,P as r,T as i,c as a,d as ee,f as te,l as ne,m as o,p as s,s as c,u as l}from"./assets-BL24r-Yp.mjs";import{Icon as re}from"@chakra-ui/react";import ie from"react";import{jsx as u,jsxs as ae}from"react/jsx-runtime";import{picasso as oe}from"@vechain/picasso";import{BigNumber as se}from"bignumber.js";import{formatEther as ce}from"ethers";import{generatePrivateKey as le,privateKeyToAccount as ue}from"viem/accounts";import{Address as de}from"@vechain/sdk-core";var fe={ipfsFetchingService:`https://api.dev.gateway-proxy.vechain.org/ipfs`,ipfsPinningService:`https://api.dev.gateway-proxy.vechain.org/api/v1/pinning/pinFileToIPFS`,vthoContractAddress:`0x0000000000000000000000000000456E65726779`,b3trContractAddress:`0xd31A6f2DBa8785cE41AB68Ea192791B5175309F4`,vot3ContractAddress:`0x028Af33230576c1e073C8245F72a7A4aa53564E4`,b3trGovernorAddress:`0x36E0e9b46D56dF12Dd69fD560e41954C73cE9ded`,timelockContractAddress:`0x125389845c93Efcf6471BA8BE1AC19c11e128603`,xAllocationPoolContractAddress:`0xC8232c91E2f744E533322B99F95f809b9f7ec446`,xAllocationVotingContractAddress:`0x074F093f4C534a16cDD09cb4b2669713218A762a`,emissionsContractAddress:`0x6a084E85f38400790043788FcCee39595616aa3A`,voterRewardsContractAddress:`0xbAb852081C459c0060960287aDcf9a0C2c1dc4b8`,galaxyMemberContractAddress:`0xbdA1cff75d2D43AB9186Ada41fECF79e25c49Ba3`,treasuryContractAddress:`0xe9414513Fe0e3b9bf7a61eC5c1AC7Df943fB3e77`,x2EarnAppsContractAddress:`0x432C46476f4970575C43B19588A170D237dC4929`,x2EarnRewardsPoolContractAddress:`0x134E4Fce6761f660401808CF86aE0e62cE52a81E`,nodeManagementContractAddress:`0xa96B5057171D797298A71178b48449A7bC615D8E`,veBetterPassportContractAddress:`0x8db6D14452fE36ba86C341AfEFaC0f90A0Db2bcb`,x2EarnCreatorContractAddress:`0x4e5f7eb452e9ecd75c0B29e3540014cBe01bBF52`,veDelegate:`0xfc32a9895C78CE00A1047d602Bd81Ea8134CC32b`,veDelegateVotes:`0xeb71148c9B3cd57e228c2152d79f6e78F5F1ef9a`,veDelegateTokenContractAddress:`0xD3f7b82Df5705D34f64C634d2dEf6B1cB3116950`,oracleContractAddress:`0x49eC7192BF804Abc289645ca86F1eD01a6C17713`,accountFactoryAddress:`0xC06Ad8573022e2BE416CA89DA47E8c592971679A`,cleanifyCampaignsContractAddress:`0x7a11D63338576aE8c038868433ea199d7E5319A6`,cleanifyChallengesContractAddress:`0xa58681692AdDD2e8E37f9113D40Bb9253C03F65e`,veWorldSubdomainClaimerContractAddress:`0x0000000000000000000000000000000000000000`,vetDomainsContractAddress:`0x0000000000000000000000000000000000000000`,vetDomainsPublicResolverAddress:`0x0000000000000000000000000000000000000000`,vetDomainsReverseRegistrarAddress:`0x5c970901a587BA3932C835D4ae5FAE2BEa7e78Bc`,vnsResolverAddress:`0x0000000000000000000000000000000000000000`,gloDollarContractAddress:`0x0000000000000000000000000000000000000000`,vetDomainAvatarUrl:`https://testnet.vet.domains/api/avatar`,indexerUrl:`https://b3tr.testnet.vechain.org/api/v1`,b3trIndexerUrl:`https://b3tr.testnet.vechain.org/api/v1`,graphQlIndexerUrl:`https://graph.vet/subgraphs/name/vns`,nodeUrl:`http://localhost:8669`,network:{id:`solo`,name:`solo`,type:`solo`,defaultNet:!0,urls:[`http://localhost:8669`],explorerUrl:`https://explore-testnet.vechain.org`,blockTime:1e4,genesis:{number:0,id:`0x00000000c05a20fbca2bf6ae3affba6af4a74b800b585bf7a4988aba7aea69f6`,size:170,parentID:`0xffffffff53616c757465202620526573706563742c20457468657265756d2100`,timestamp:1530316800,gasLimit:1e7,beneficiary:`0x0000000000000000000000000000000000000000`,gasUsed:0,totalScore:0,txsRoot:`0x45b0cfc220ceec5b7c1c62c4d4193d38e4eba48e8815729ce75f9c0ab0e4c1c0`,txsFeatures:0,stateRoot:`0x93de0ffb1f33bc0af053abc2a87c4af44594f5dcb1cb879dd823686a15d68550`,receiptsRoot:`0x45b0cfc220ceec5b7c1c62c4d4193d38e4eba48e8815729ce75f9c0ab0e4c1c0`,signer:`0x0000000000000000000000000000000000000000`,isTrunk:!0,transactions:[]}},explorerUrl:`https://explore-testnet.vechain.org`},pe={ipfsFetchingService:`https://api.dev.gateway-proxy.vechain.org/ipfs`,ipfsPinningService:`https://api.dev.gateway-proxy.vechain.org/api/v1/pinning/pinFileToIPFS`,vthoContractAddress:`0x0000000000000000000000000000456E65726779`,b3trContractAddress:`0x95761346d18244bb91664181bf91193376197088`,vot3ContractAddress:`0x6e8b4a88d37897fc11f6ba12c805695f1c41f40e`,b3trGovernorAddress:`0xc30b4d0837f7e3706749655d8bde0c0f265dd81b`,timelockContractAddress:`0x835509222aa67c333a1cbf29bd341e014aba86c9`,xAllocationPoolContractAddress:`0x6f7b4bc19b4dc99005b473b9c45ce2815bbe7533`,xAllocationVotingContractAddress:`0x8800592c463f0b21ae08732559ee8e146db1d7b2`,emissionsContractAddress:`0x66898f98409db20ed6a1bf0021334b7897eb0688`,voterRewardsContractAddress:`0x851ef91801899a4e7e4a3174a9300b3e20c957e8`,galaxyMemberContractAddress:`0x38a59fa7fd7039884465a0ff285b8c4b6fe394ca`,x2EarnCreatorContractAddress:`0xb89f0ecdaf9987f87912d6c77756435fe4085b05`,nodeManagementContractAddress:`0xde17d0a516c38c168d37685bb71465f656aa256e`,x2EarnAppsContractAddress:`0x0b54a094b877a25bdc95b4431eaa1e2206b1ddfe`,treasuryContractAddress:`0x3d531a80c05099c71b02585031f86a2988e0caca`,x2EarnRewardsPoolContractAddress:`0x2d2a2207c68a46fc79325d7718e639d1047b0d8b`,veBetterPassportContractAddress:`0x592c756df7a5d39de1735030e8b9c18b7417e6c4`,veDelegate:`0xfc32a9895C78CE00A1047d602Bd81Ea8134CC32b`,veDelegateVotes:`0xeb71148c9B3cd57e228c2152d79f6e78F5F1ef9a`,veDelegateTokenContractAddress:`0xD3f7b82Df5705D34f64C634d2dEf6B1cB3116950`,oracleContractAddress:`0xdcCAaBd81B38e0dEEf4c202bC7F1261A4D9192C6`,accountFactoryAddress:`0x713b908Bcf77f3E00EFEf328E50b657a1A23AeaF`,cleanifyCampaignsContractAddress:`0x22d19ACBD2cBf6b2B6C546395c26B9Cb448248BF`,cleanifyChallengesContractAddress:`0x8Cc885DC3e5c376632CCEA0e8e1a51F1B3572442`,veWorldSubdomainClaimerContractAddress:`0xe5af50e7ad1aaab4fbe4efbb2b30f764013918b3`,vetDomainsContractAddress:`0xcBFB30c1F267914816668d53AcBA7bA7c9806D13`,vetDomainsPublicResolverAddress:`0xA6eFd130085a127D090ACb0b100294aD1079EA6f`,vetDomainsReverseRegistrarAddress:`0x6878f1aD5e3015310CfE5B38d7B7071C5D8818Ca`,vnsResolverAddress:`0xc403b8EA53F707d7d4de095f0A20bC491Cf2bc94`,gloDollarContractAddress:`0x0000000000000000000000000000000000000000`,vetDomainAvatarUrl:`https://testnet.vet.domains/api/avatar`,indexerUrl:`https://indexer.testnet.vechain.org/api/v1`,b3trIndexerUrl:`https://indexer.testnet.vechain.org/api/v1`,graphQlIndexerUrl:`https://graph.vet/subgraphs/name/vns`,nodeUrl:`https://testnet.vechain.org`,network:{id:`testnet`,name:`testnet`,type:`test`,defaultNet:!0,urls:[`https://testnet.vechain.org`,`https://vethor-node-test.vechaindev.com`,`https://sync-testnet.veblocks.net`,`https://testnet.vecha.in`],explorerUrl:`https://insight.vecha.in/#/test`,blockTime:1e4,genesis:{number:0,id:`0x000000000b2bce3c70bc649a02749e8687721b09ed2e15997f466536b20bb127`,size:170,parentID:`0xffffffff00000000000000000000000000000000000000000000000000000000`,timestamp:1530014400,gasLimit:1e7,beneficiary:`0x0000000000000000000000000000000000000000`,gasUsed:0,totalScore:0,txsRoot:`0x45b0cfc220ceec5b7c1c62c4d4193d38e4eba48e8815729ce75f9c0ab0e4c1c0`,txsFeatures:0,stateRoot:`0x4ec3af0acbad1ae467ad569337d2fe8576fe303928d35b8cdd91de47e9ac84bb`,receiptsRoot:`0x45b0cfc220ceec5b7c1c62c4d4193d38e4eba48e8815729ce75f9c0ab0e4c1c0`,signer:`0x0000000000000000000000000000000000000000`,isTrunk:!0,transactions:[]}},explorerUrl:`https://explore-testnet.vechain.org/transactions`},me={ipfsFetchingService:`https://api.gateway-proxy.vechain.org/ipfs`,indexerUrl:`https://indexer.mainnet.vechain.org/api/v1`,ipfsPinningService:`https://api.gateway-proxy.vechain.org/api/v1/pinning/pinFileToIPFS`,b3trIndexerUrl:`https://indexer.mainnet.vechain.org/api/v1`,graphQlIndexerUrl:`https://graph.vet/subgraphs/name/vns`,nodeUrl:`https://mainnet.vechain.org`,network:{id:`main`,name:`main`,type:`main`,defaultNet:!0,urls:[`https://mainnet.vechain.org`,`https://vethor-node.vechain.com`,`https://mainnet.veblocks.net`,`https://mainnet.vecha.in`],explorerUrl:`https://vechainstats.com`,blockTime:1e4,genesis:{number:0,id:`0x00000000851caf3cfdb6e899cf5958bfb1ac3413d346d43539627e6be7ec1b4a`,size:170,parentID:`0xffffffff53616c757465202620526573706563742c20457468657265756d2100`,timestamp:1530316800,gasLimit:1e7,beneficiary:`0x0000000000000000000000000000000000000000`,gasUsed:0,totalScore:0,txsRoot:`0x45b0cfc220ceec5b7c1c62c4d4193d38e4eba48e8815729ce75f9c0ab0e4c1c0`,txsFeatures:0,stateRoot:`0x09bfdf9e24dd5cd5b63f3c1b5d58b97ff02ca0490214a021ed7d99b93867839c`,receiptsRoot:`0x45b0cfc220ceec5b7c1c62c4d4193d38e4eba48e8815729ce75f9c0ab0e4c1c0`,signer:`0x0000000000000000000000000000000000000000`,isTrunk:!0,transactions:[]}},explorerUrl:`https://vechainstats.com/transaction`,vthoContractAddress:`0x0000000000000000000000000000456E65726779`,b3trContractAddress:`0x5ef79995FE8a89e0812330E4378eB2660ceDe699`,vot3ContractAddress:`0x76Ca782B59C74d088C7D2Cce2f211BC00836c602`,b3trGovernorAddress:`0x1c65C25fABe2fc1bCb82f253fA0C916a322f777C`,timelockContractAddress:`0x7B7EaF620d88E38782c6491D7Ce0B8D8cF3227e4`,xAllocationPoolContractAddress:`0x4191776F05f4bE4848d3f4d587345078B439C7d3`,xAllocationVotingContractAddress:`0x89A00Bb0947a30FF95BEeF77a66AEdE3842Fe5B7`,emissionsContractAddress:`0xDf94739bd169C84fe6478D8420Bb807F1f47b135`,voterRewardsContractAddress:`0x838A33AF756a6366f93e201423E1425f67eC0Fa7`,galaxyMemberContractAddress:`0x93B8cD34A7Fc4f53271b9011161F7A2B5fEA9D1F`,treasuryContractAddress:`0xD5903BCc66e439c753e525F8AF2FeC7be2429593`,x2EarnAppsContractAddress:`0x8392B7CCc763dB03b47afcD8E8f5e24F9cf0554D`,x2EarnRewardsPoolContractAddress:`0x6Bee7DDab6c99d5B2Af0554EaEA484CE18F52631`,x2EarnCreatorContractAddress:`0xe8e96a768ffd00417d4bd985bec9EcfC6F732a7f`,nodeManagementContractAddress:`0xB0EF9D89C6b49CbA6BBF86Bf2FDf0Eee4968c6AB`,veBetterPassportContractAddress:`0x35a267671d8EDD607B2056A9a13E7ba7CF53c8b3`,veDelegate:`0xfc32a9895C78CE00A1047d602Bd81Ea8134CC32b`,veDelegateVotes:`0xeb71148c9B3cd57e228c2152d79f6e78F5F1ef9a`,veDelegateTokenContractAddress:`0xD3f7b82Df5705D34f64C634d2dEf6B1cB3116950`,oracleContractAddress:`0x49eC7192BF804Abc289645ca86F1eD01a6C17713`,accountFactoryAddress:`0xC06Ad8573022e2BE416CA89DA47E8c592971679A`,cleanifyCampaignsContractAddress:`0x7a11D63338576aE8c038868433ea199d7E5319A6`,cleanifyChallengesContractAddress:`0xa58681692AdDD2e8E37f9113D40Bb9253C03F65e`,veWorldSubdomainClaimerContractAddress:`0xa4173c32fe8a61a8fd0d0234675b559fc360446a`,vetDomainsContractAddress:`0xa9231da8BF8D10e2df3f6E03Dd5449caD600129b`,vetDomainsPublicResolverAddress:`0xabac49445584C8b6c1472b030B1076Ac3901D7cf`,vetDomainsReverseRegistrarAddress:`0x5c970901a587BA3932C835D4ae5FAE2BEa7e78Bc`,vnsResolverAddress:`0xA11413086e163e41901bb81fdc5617c975Fa5a1A`,vetDomainAvatarUrl:`https://vet.domains/api/avatar`,gloDollarContractAddress:`0x29c630cce4ddb23900f5fe66ab55e488c15b9f5e`};const d=e=>{if(e===`solo`)return fe;if(e===`test`)return pe;if(e===`main`)return me;throw Error(`Unsupported NETWORK_TYPE ${e}`)},he=({...e})=>ae(re,{viewBox:`0 0 1684.56 1684.56`,...e,children:[u(`rect`,{fill:`#b1f16c`,width:`1684.56`,height:`1684.56`,rx:`157.74`,ry:`157.74`}),u(`path`,{fill:`#1d1d1d`,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`})]}),f=e=>{try{return typeof window>`u`?null:localStorage.getItem(e)}catch(t){return console.warn(`Error accessing localStorage for key "${e}":`,t),null}},p=(e,t)=>{try{if(typeof window>`u`)return;localStorage.setItem(e,t)}catch(t){console.warn(`Error setting localStorage for key "${e}":`,t)}},m=e=>{try{if(typeof window>`u`)return;localStorage.removeItem(e)}catch(t){console.warn(`Error removing localStorage for key "${e}":`,t)}},h=()=>{try{return typeof document<`u`?document.title:``}catch{return``}},g=()=>{try{return typeof window<`u`&&window.location?window.location.origin:``}catch{return``}},_=()=>typeof window<`u`&&typeof document<`u`,v=(e,t,n)=>{_()&&window.open(e,t,n)},y=e=>typeof document<`u`?document.querySelector(e):null,b=()=>typeof navigator<`u`,x=()=>b()&&navigator.onLine,S=async e=>{try{return b()&&navigator.clipboard?(await navigator.clipboard.writeText(e),!0):!1}catch(e){return console.warn(`Error copying to clipboard:`,e),!1}},C={VET:new URL(`/static/img/coins/64x64/3077.png`,a).toString(),VTHO:new URL(`/static/img/coins/64x64/3012.png`,a).toString(),B3TR:new URL(`/static/img/coins/64x64/33509.png`,a).toString(),VOT3:new URL(`/17ff70aa1d898bc97ad690dbfad1a3b5643f7e0b.png`,a).toString(),veDelegate:new URL(`1c641b86096d56bf13d49f38388accd6db8b8b2e.png`,e).toString(),USDGLO:new URL(`/static/img/coins/64x64/23888.png`,a).toString()},w={VET:u(r,{}),VTHO:u(n,{}),B3TR:u(t,{}),VOT3:u(he,{})},T=`cm4wxxujb022fyujl7g0thb21`,E=s;let D=function(e){return e[e.WhitelistCheck=1]=`WhitelistCheck`,e[e.BlacklistCheck=2]=`BlacklistCheck`,e[e.SignalingCheck=3]=`SignalingCheck`,e[e.ParticipationScoreCheck=4]=`ParticipationScoreCheck`,e[e.GmOwnershipCheck=5]=`GmOwnershipCheck`,e}({});const O={NETWORK:`vechain-kit:network`},k=()=>{if(typeof window>`u`)return{isDevelopment:!1,isProduction:!0};let e=f(O.NETWORK);return{isDevelopment:e===`test`,isProduction:e===`main`}},A={get isDevelopment(){return k().isDevelopment},get isProduction(){return k().isProduction}},j=()=>k().isProduction?`${l}/api/v1/`:`${ee}/api/v1/`,M=[{id:`clz41gcg00e4ay75dmq3uzzgr`,name:`Cleanify`,website:c},{id:`cm153hrup0817axti38avlfyg`,name:`GreenCart`,website:te},{id:`clv9sfos20j6x1431ga80d95f`,name:`Mughsot`,website:o},{id:`cm4l8tiai070i108zo17oieyc`,name:`EVearn`,website:ne}],N={url:new URL(`terms`,i).toString(),version:1,required:!0,displayName:`Vechain Kit Terms`},P={url:new URL(`cookies`,i).toString(),version:1,required:!1,displayName:`Vechain Kit Cookies`},F={tokenPriority:[`VET`,`B3TR`,`VTHO`],availableGasTokens:[`VET`,`B3TR`,`VTHO`],excludedTokens:[],alwaysConfirm:!1,gasTokenToUse:`VET`},I={B3TR:{type:`B3TR`,name:`B3TR Token`,symbol:`B3TR`,address:d(process.env.NEXT_PUBLIC_NETWORK_TYPE||`test`).b3trContractAddress,description:`Pay gas with B3TR`},VET:{type:`VET`,name:`VET Token`,symbol:`VET`,description:`Pay gas with VET`},VTHO:{type:`VTHO`,name:`VTHO Token`,symbol:`VTHO`,address:d(process.env.NEXT_PUBLIC_NETWORK_TYPE||`test`).vthoContractAddress,description:`Pay gas with VTHO`}},L=(e,t=6,n=4)=>`${e.slice(0,t)}•••${e.slice(-n)}`,R=(e,t=8,n=6)=>e.length<=t+n?e:`${e.substring(0,t)}•••${e.substring(e.length-n)}`,z=(e,t,n=null)=>{let r=n?` `+n:``;t||=e;let i=new Intl.NumberFormat(`en-US`,{style:`decimal`,minimumFractionDigits:Number.parseFloat(e.toString())%1==0?0:2}).format(_e(Number(e),2));return!B(t)&&B(i)&&(i=`< 0.01`),i+r},B=e=>!e&&e!==0?!1:new se(e).isZero(),ge=(e,t=!1)=>{let n=oe(e.toLowerCase());return t?`data:image/svg+xml;base64,${Buffer.from(n,`utf8`).toString(`base64`)}`:`data:image/svg+xml;utf8,${n}`};function _e(e,t=0){if(typeof e!=`number`||typeof t!=`number`)throw Error(`Invalid input: number and decimals must be of type number`);let n=parseInt(e.toExponential().split(`e-`)[1]||`0`,10),r=10**Math.max(0,t+n);return Math.floor(e*r)/r}const ve=e=>{let t=ce(e),n=t===`0`?`0`:z(t);return{original:e.toString(),scaled:t,formatted:n}},ye=(()=>{let e=le(),t=ue(e);return{privateKey:e,account:t,address:t.address}})(),V=/^0[xX]/,be=/^(0[xX])?[a-fA-F0-9]+$/,H=e=>(W(e),e.replace(V,``)),U=e=>(W(e),V.test(e)?e.replace(V,`0x`):`0x${e}`),W=e=>{if(!G(e))throw Error(`Provided hex value is not valid`)},G=e=>!!e&&be.test(e),xe=e=>!G(e),K=e=>U(e.toLowerCase().trim()),Se=(e,t)=>{try{return H(e).toLowerCase()===H(t).toLowerCase()}catch{return!1}},q=(e,t)=>{if(!e||!t)return!1;if(t===e)return!0;try{return K(e)===K(t)}catch{return!1}},Ce=(e,t)=>{if(e.length!==t.length)return!1;let n=[...e].map(e=>e.toLowerCase()).sort((e,t)=>e.localeCompare(t)),r=[...t].map(e=>e.toLowerCase()).sort((e,t)=>e.localeCompare(t));for(let e=0;e<n.length;e++)if(!q(n[e],r[e]))return!1;return!0},we=()=>/^0x[a-fA-F0-9]{40}$/,Te=de.isValid,Ee=(e,t)=>{let n=e.startsWith(`0x`)?e.slice(2):e;if(n.length>t)throw Error(`Input string is longer than the specified length`);return`0x${n.padStart(t,`0`)}`},J=e=>{let t=e.trim();return/^ipfs:\/\/[a-zA-Z0-9]+(\/[^/]+)*\/?$/.test(t)};function De(e,t){return`ipfs://${e}/${t??``}`}async function Oe(e,t,n){try{let r=new FormData;r.append(`file`,e,t);let i=await fetch(d(n).ipfsPinningService,{method:`POST`,headers:{"X-Project-Id":`vechain-kit`},body:r});if(!i.ok)throw Error(`HTTP error! status: ${i.status}`);return(await i.json()).IpfsHash}catch(e){throw console.error(`Error uploading blob:`,e),Error(`Failed to upload blob to IPFS`)}}let Y=function(e){return e.IMAGE=`image`,e.VIDEO=`video`,e.UNKNOWN=`unknown`,e.TEXT=`text`,e}({}),ke=function(e){return e.NONE=`NONE`,e.WHITELIST=`WHITELIST`,e.BLACKLIST=`BLACKLIST`,e}({});const Ae={usd:`$`,gbp:`£`,eur:`€`},je=[`display`,`avatar`,`description`,`keywords`,`email`,`url`,`header`,`notice`,`location`,`phone`,`com.x`];function Me(e,t){return e*(1+t)}function Ne(e,t=4){return Number(e).toLocaleString(void 0,{minimumFractionDigits:t,maximumFractionDigits:t})}let Pe=function(e){return e.TERMS=`terms`,e.PRIVACY=`privacy`,e.COOKIES=`cookies`,e}({}),Fe=function(e){return e.VECHAIN_KIT=`vechain-kit`,e.APPLICATION=`application`,e}({});const X=(e,t)=>!!t.find(t=>{if(e?.split(`/`)[0]===t)return!0}),Ie=e=>X(e,[Y.IMAGE])?Y.IMAGE:X(e,[Y.VIDEO])?Y.VIDEO:Y.UNKNOWN,Le=(e,t)=>{if(e.startsWith(`data:`))return e;let n=e?.split(`://`);if(n.length!==2)return null;let r=n?.[0]?.trim(),i=n[1];switch(r){case`ipfs`:if(!J(e))throw Error(`Invalid IPFS URI ${e}`);return`${d(t).ipfsFetchingService}/${i}`;case`ar`:return`https://arweave.net/${i}`;default:return e}},Re=[{level:`1`,name:`Earth`,image:`/images/nft-levels/0.png`,multiplier:1,b3trToUpgrade:0},{level:`2`,name:`Moon`,image:`/images/nft-levels/1.png`,multiplier:1.1,b3trToUpgrade:1e4},{level:`3`,name:`Mercury`,image:`/images/nft-levels/2.png`,multiplier:1.2,b3trToUpgrade:25e3},{level:`4`,name:`Venus`,image:`/images/nft-levels/3.png`,multiplier:1.5,b3trToUpgrade:5e4},{level:`5`,name:`Mars`,image:`/images/nft-levels/4.png`,multiplier:2,b3trToUpgrade:1e5},{level:`6`,name:`Jupiter`,image:`/images/nft-levels/5.png`,multiplier:2.5,b3trToUpgrade:25e4},{level:`7`,name:`Saturn`,image:`/images/nft-levels/6.png`,multiplier:3,b3trToUpgrade:5e5},{level:`8`,name:`Uranus`,image:`/images/nft-levels/7.png`,multiplier:5,b3trToUpgrade:25e5},{level:`9`,name:`Neptune`,image:`/images/nft-levels/8.png`,multiplier:10,b3trToUpgrade:5e6},{level:`10`,name:`Galaxy`,image:`/images/nft-levels/9.png`,multiplier:25,b3trToUpgrade:25e6}],ze={1:2,2:4,3:6,4:2,5:4,6:6,7:7},Be=e=>{let t=new URLSearchParams;return Object.keys(e).forEach(n=>{let r=e[n];r!=null&&t.append(n,String(r))}),t.toString()},Ve={0:`/images/vnt/00-noNode.webp`,1:`/images/vnt/01-strength.webp`,2:`/images/vnt/02-thunder.webp`,3:`/images/vnt/03-mjolnir.webp`,4:`/images/vnt/04-vethorX.webp`,5:`/images/vnt/05-strengthX.webp`,6:`/images/vnt/06-thunderX.webp`,7:`/images/vnt/07-mjolnirX.webp`},He=4,Z={1:`Strength`,2:`Thunder`,3:`Mjolnir`},Q={4:`VeThorX`,5:`StrengthX`,6:`ThunderX`,7:`MjolnirX`},Ue={...Z,...Q},We={SECOND:1e3,MINUTE:1e3*60,HOUR:1e3*60*60,DAY:1e3*60*60*24,WEEK:1e3*60*60*24*7,MONTH:1e3*60*60*24*30,YEAR:1e3*60*60*24*365},$=e=>e?[`rejected`,`cancelled`,`user denied`,`closed`].some(t=>e.toLowerCase().includes(t.toLowerCase())):!1,Ge=e=>{let t=0;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);t=(t<<5)-t+r,t&=t}return t.toString(36)},Ke=e=>{try{return new URL(e),!0}catch{return!1}},qe=async({thor:e,contractAddress:t,abi:n,method:r,args:i})=>await e.contracts.load(t,n).read[r](...i),Je=async({thor:e,calls:t})=>{if(!Array.isArray(t))throw Error(`calls must be an array`);let n=t.map(t=>e.contracts.load(t.address,t.abi).clause[t.functionName](...t.args)),r=await e.transactions.executeMultipleClausesCall(n);if(!r.every(e=>e.success))throw Error(`Failed to execute multiple clauses call`);return r.map(e=>e.result.plain)},Ye=({thor:e,calls:t})=>{if(!Array.isArray(t))throw Error(`calls must be an array`);return t.map(t=>e.contracts.load(t.address,t.abi).clause[t.functionName](...t.args))};export{w as $,Ce as A,W as B,Ae as C,Oe as D,De as E,Se as F,R as G,ve as H,xe as I,F as J,z as K,G as L,Ee as M,we as N,J as O,U as P,C as Q,K as R,je as S,ke as T,ge as U,ye as V,L as W,A as X,M as Y,I as Z,Ie as _,v as _t,$ as a,k as at,Me as b,Z as c,S as ct,Q as d,g as dt,D as et,Ue as f,b as ft,Le as g,y as gt,ze as h,m as ht,Ke as i,T as it,Te as j,q as k,He as l,h as lt,Re as m,x as mt,qe as n,O as nt,Ge as o,j as ot,Be as p,_ as pt,B as q,Je as r,N as rt,We as s,E as st,Ye as t,P as tt,Ve as u,f as ut,Fe as v,p as vt,Y as w,Ne as x,Pe as y,d as yt,H as z};
|
|
2
|
-
//# sourceMappingURL=utils-
|
|
1
|
+
import{D as e,F as t,N as n,P as r,T as i,c as a,d as ee,f as te,l as ne,m as o,p as s,s as c,u as l}from"./assets-BL24r-Yp.mjs";import{Icon as re}from"@chakra-ui/react";import ie from"react";import{jsx as u,jsxs as ae}from"react/jsx-runtime";import{picasso as oe}from"@vechain/picasso";import{BigNumber as se}from"bignumber.js";import{formatEther as ce}from"ethers";import{generatePrivateKey as le,privateKeyToAccount as ue}from"viem/accounts";import{Address as de}from"@vechain/sdk-core";var fe={ipfsFetchingService:`https://api.dev.gateway-proxy.vechain.org/ipfs`,ipfsPinningService:`https://api.dev.gateway-proxy.vechain.org/api/v1/pinning/pinFileToIPFS`,vthoContractAddress:`0x0000000000000000000000000000456E65726779`,b3trContractAddress:`0xd31A6f2DBa8785cE41AB68Ea192791B5175309F4`,vot3ContractAddress:`0x028Af33230576c1e073C8245F72a7A4aa53564E4`,b3trGovernorAddress:`0x36E0e9b46D56dF12Dd69fD560e41954C73cE9ded`,timelockContractAddress:`0x125389845c93Efcf6471BA8BE1AC19c11e128603`,xAllocationPoolContractAddress:`0xC8232c91E2f744E533322B99F95f809b9f7ec446`,xAllocationVotingContractAddress:`0x074F093f4C534a16cDD09cb4b2669713218A762a`,emissionsContractAddress:`0x6a084E85f38400790043788FcCee39595616aa3A`,voterRewardsContractAddress:`0xbAb852081C459c0060960287aDcf9a0C2c1dc4b8`,galaxyMemberContractAddress:`0xbdA1cff75d2D43AB9186Ada41fECF79e25c49Ba3`,treasuryContractAddress:`0xe9414513Fe0e3b9bf7a61eC5c1AC7Df943fB3e77`,x2EarnAppsContractAddress:`0x432C46476f4970575C43B19588A170D237dC4929`,x2EarnRewardsPoolContractAddress:`0x134E4Fce6761f660401808CF86aE0e62cE52a81E`,nodeManagementContractAddress:`0xa96B5057171D797298A71178b48449A7bC615D8E`,veBetterPassportContractAddress:`0x8db6D14452fE36ba86C341AfEFaC0f90A0Db2bcb`,x2EarnCreatorContractAddress:`0x4e5f7eb452e9ecd75c0B29e3540014cBe01bBF52`,veDelegate:`0xfc32a9895C78CE00A1047d602Bd81Ea8134CC32b`,veDelegateVotes:`0xeb71148c9B3cd57e228c2152d79f6e78F5F1ef9a`,veDelegateTokenContractAddress:`0xD3f7b82Df5705D34f64C634d2dEf6B1cB3116950`,oracleContractAddress:`0x49eC7192BF804Abc289645ca86F1eD01a6C17713`,accountFactoryAddress:`0xC06Ad8573022e2BE416CA89DA47E8c592971679A`,cleanifyCampaignsContractAddress:`0x7a11D63338576aE8c038868433ea199d7E5319A6`,cleanifyChallengesContractAddress:`0xa58681692AdDD2e8E37f9113D40Bb9253C03F65e`,veWorldSubdomainClaimerContractAddress:`0x0000000000000000000000000000000000000000`,vetDomainsContractAddress:`0x0000000000000000000000000000000000000000`,vetDomainsPublicResolverAddress:`0x0000000000000000000000000000000000000000`,vetDomainsReverseRegistrarAddress:`0x5c970901a587BA3932C835D4ae5FAE2BEa7e78Bc`,vnsResolverAddress:`0x0000000000000000000000000000000000000000`,gloDollarContractAddress:`0x0000000000000000000000000000000000000000`,vetDomainAvatarUrl:`https://testnet.vet.domains/api/avatar`,indexerUrl:`https://b3tr.testnet.vechain.org/api/v1`,b3trIndexerUrl:`https://b3tr.testnet.vechain.org/api/v1`,graphQlIndexerUrl:`https://graph.vet/subgraphs/name/vns`,nodeUrl:`http://localhost:8669`,network:{id:`solo`,name:`solo`,type:`solo`,defaultNet:!0,urls:[`http://localhost:8669`],explorerUrl:`https://explore-testnet.vechain.org`,blockTime:1e4,genesis:{number:0,id:`0x00000000c05a20fbca2bf6ae3affba6af4a74b800b585bf7a4988aba7aea69f6`,size:170,parentID:`0xffffffff53616c757465202620526573706563742c20457468657265756d2100`,timestamp:1530316800,gasLimit:1e7,beneficiary:`0x0000000000000000000000000000000000000000`,gasUsed:0,totalScore:0,txsRoot:`0x45b0cfc220ceec5b7c1c62c4d4193d38e4eba48e8815729ce75f9c0ab0e4c1c0`,txsFeatures:0,stateRoot:`0x93de0ffb1f33bc0af053abc2a87c4af44594f5dcb1cb879dd823686a15d68550`,receiptsRoot:`0x45b0cfc220ceec5b7c1c62c4d4193d38e4eba48e8815729ce75f9c0ab0e4c1c0`,signer:`0x0000000000000000000000000000000000000000`,isTrunk:!0,transactions:[]}},explorerUrl:`https://explore-testnet.vechain.org`},pe={ipfsFetchingService:`https://api.dev.gateway-proxy.vechain.org/ipfs`,ipfsPinningService:`https://api.dev.gateway-proxy.vechain.org/api/v1/pinning/pinFileToIPFS`,vthoContractAddress:`0x0000000000000000000000000000456E65726779`,b3trContractAddress:`0x95761346d18244bb91664181bf91193376197088`,vot3ContractAddress:`0x6e8b4a88d37897fc11f6ba12c805695f1c41f40e`,b3trGovernorAddress:`0xc30b4d0837f7e3706749655d8bde0c0f265dd81b`,timelockContractAddress:`0x835509222aa67c333a1cbf29bd341e014aba86c9`,xAllocationPoolContractAddress:`0x6f7b4bc19b4dc99005b473b9c45ce2815bbe7533`,xAllocationVotingContractAddress:`0x8800592c463f0b21ae08732559ee8e146db1d7b2`,emissionsContractAddress:`0x66898f98409db20ed6a1bf0021334b7897eb0688`,voterRewardsContractAddress:`0x851ef91801899a4e7e4a3174a9300b3e20c957e8`,galaxyMemberContractAddress:`0x38a59fa7fd7039884465a0ff285b8c4b6fe394ca`,x2EarnCreatorContractAddress:`0xb89f0ecdaf9987f87912d6c77756435fe4085b05`,nodeManagementContractAddress:`0xde17d0a516c38c168d37685bb71465f656aa256e`,x2EarnAppsContractAddress:`0x0b54a094b877a25bdc95b4431eaa1e2206b1ddfe`,treasuryContractAddress:`0x3d531a80c05099c71b02585031f86a2988e0caca`,x2EarnRewardsPoolContractAddress:`0x2d2a2207c68a46fc79325d7718e639d1047b0d8b`,veBetterPassportContractAddress:`0x592c756df7a5d39de1735030e8b9c18b7417e6c4`,veDelegate:`0xfc32a9895C78CE00A1047d602Bd81Ea8134CC32b`,veDelegateVotes:`0xeb71148c9B3cd57e228c2152d79f6e78F5F1ef9a`,veDelegateTokenContractAddress:`0xD3f7b82Df5705D34f64C634d2dEf6B1cB3116950`,oracleContractAddress:`0xdcCAaBd81B38e0dEEf4c202bC7F1261A4D9192C6`,accountFactoryAddress:`0x713b908Bcf77f3E00EFEf328E50b657a1A23AeaF`,cleanifyCampaignsContractAddress:`0x22d19ACBD2cBf6b2B6C546395c26B9Cb448248BF`,cleanifyChallengesContractAddress:`0x8Cc885DC3e5c376632CCEA0e8e1a51F1B3572442`,veWorldSubdomainClaimerContractAddress:`0xe5af50e7ad1aaab4fbe4efbb2b30f764013918b3`,vetDomainsContractAddress:`0xcBFB30c1F267914816668d53AcBA7bA7c9806D13`,vetDomainsPublicResolverAddress:`0xA6eFd130085a127D090ACb0b100294aD1079EA6f`,vetDomainsReverseRegistrarAddress:`0x6878f1aD5e3015310CfE5B38d7B7071C5D8818Ca`,vnsResolverAddress:`0xc403b8EA53F707d7d4de095f0A20bC491Cf2bc94`,gloDollarContractAddress:`0x0000000000000000000000000000000000000000`,vetDomainAvatarUrl:`https://testnet.vet.domains/api/avatar`,indexerUrl:`https://indexer.testnet.vechain.org/api/v1`,b3trIndexerUrl:`https://indexer.testnet.vechain.org/api/v1`,graphQlIndexerUrl:`https://graph.vet/subgraphs/name/vns`,nodeUrl:`https://testnet.vechain.org`,network:{id:`testnet`,name:`testnet`,type:`test`,defaultNet:!0,urls:[`https://testnet.vechain.org`,`https://vethor-node-test.vechaindev.com`,`https://sync-testnet.veblocks.net`,`https://testnet.vecha.in`],explorerUrl:`https://insight.vecha.in/#/test`,blockTime:1e4,genesis:{number:0,id:`0x000000000b2bce3c70bc649a02749e8687721b09ed2e15997f466536b20bb127`,size:170,parentID:`0xffffffff00000000000000000000000000000000000000000000000000000000`,timestamp:1530014400,gasLimit:1e7,beneficiary:`0x0000000000000000000000000000000000000000`,gasUsed:0,totalScore:0,txsRoot:`0x45b0cfc220ceec5b7c1c62c4d4193d38e4eba48e8815729ce75f9c0ab0e4c1c0`,txsFeatures:0,stateRoot:`0x4ec3af0acbad1ae467ad569337d2fe8576fe303928d35b8cdd91de47e9ac84bb`,receiptsRoot:`0x45b0cfc220ceec5b7c1c62c4d4193d38e4eba48e8815729ce75f9c0ab0e4c1c0`,signer:`0x0000000000000000000000000000000000000000`,isTrunk:!0,transactions:[]}},explorerUrl:`https://explore-testnet.vechain.org/transactions`},me={ipfsFetchingService:`https://api.gateway-proxy.vechain.org/ipfs`,indexerUrl:`https://indexer.mainnet.vechain.org/api/v1`,ipfsPinningService:`https://api.gateway-proxy.vechain.org/api/v1/pinning/pinFileToIPFS`,b3trIndexerUrl:`https://indexer.mainnet.vechain.org/api/v1`,graphQlIndexerUrl:`https://graph.vet/subgraphs/name/vns`,nodeUrl:`https://mainnet.vechain.org`,network:{id:`main`,name:`main`,type:`main`,defaultNet:!0,urls:[`https://mainnet.vechain.org`,`https://vethor-node.vechain.com`,`https://mainnet.veblocks.net`,`https://mainnet.vecha.in`],explorerUrl:`https://vechainstats.com`,blockTime:1e4,genesis:{number:0,id:`0x00000000851caf3cfdb6e899cf5958bfb1ac3413d346d43539627e6be7ec1b4a`,size:170,parentID:`0xffffffff53616c757465202620526573706563742c20457468657265756d2100`,timestamp:1530316800,gasLimit:1e7,beneficiary:`0x0000000000000000000000000000000000000000`,gasUsed:0,totalScore:0,txsRoot:`0x45b0cfc220ceec5b7c1c62c4d4193d38e4eba48e8815729ce75f9c0ab0e4c1c0`,txsFeatures:0,stateRoot:`0x09bfdf9e24dd5cd5b63f3c1b5d58b97ff02ca0490214a021ed7d99b93867839c`,receiptsRoot:`0x45b0cfc220ceec5b7c1c62c4d4193d38e4eba48e8815729ce75f9c0ab0e4c1c0`,signer:`0x0000000000000000000000000000000000000000`,isTrunk:!0,transactions:[]}},explorerUrl:`https://vechainstats.com/transaction`,vthoContractAddress:`0x0000000000000000000000000000456E65726779`,b3trContractAddress:`0x5ef79995FE8a89e0812330E4378eB2660ceDe699`,vot3ContractAddress:`0x76Ca782B59C74d088C7D2Cce2f211BC00836c602`,b3trGovernorAddress:`0x1c65C25fABe2fc1bCb82f253fA0C916a322f777C`,timelockContractAddress:`0x7B7EaF620d88E38782c6491D7Ce0B8D8cF3227e4`,xAllocationPoolContractAddress:`0x4191776F05f4bE4848d3f4d587345078B439C7d3`,xAllocationVotingContractAddress:`0x89A00Bb0947a30FF95BEeF77a66AEdE3842Fe5B7`,emissionsContractAddress:`0xDf94739bd169C84fe6478D8420Bb807F1f47b135`,voterRewardsContractAddress:`0x838A33AF756a6366f93e201423E1425f67eC0Fa7`,galaxyMemberContractAddress:`0x93B8cD34A7Fc4f53271b9011161F7A2B5fEA9D1F`,treasuryContractAddress:`0xD5903BCc66e439c753e525F8AF2FeC7be2429593`,x2EarnAppsContractAddress:`0x8392B7CCc763dB03b47afcD8E8f5e24F9cf0554D`,x2EarnRewardsPoolContractAddress:`0x6Bee7DDab6c99d5B2Af0554EaEA484CE18F52631`,x2EarnCreatorContractAddress:`0xe8e96a768ffd00417d4bd985bec9EcfC6F732a7f`,nodeManagementContractAddress:`0xB0EF9D89C6b49CbA6BBF86Bf2FDf0Eee4968c6AB`,veBetterPassportContractAddress:`0x35a267671d8EDD607B2056A9a13E7ba7CF53c8b3`,veDelegate:`0xfc32a9895C78CE00A1047d602Bd81Ea8134CC32b`,veDelegateVotes:`0xeb71148c9B3cd57e228c2152d79f6e78F5F1ef9a`,veDelegateTokenContractAddress:`0xD3f7b82Df5705D34f64C634d2dEf6B1cB3116950`,oracleContractAddress:`0x49eC7192BF804Abc289645ca86F1eD01a6C17713`,accountFactoryAddress:`0xC06Ad8573022e2BE416CA89DA47E8c592971679A`,cleanifyCampaignsContractAddress:`0x7a11D63338576aE8c038868433ea199d7E5319A6`,cleanifyChallengesContractAddress:`0xa58681692AdDD2e8E37f9113D40Bb9253C03F65e`,veWorldSubdomainClaimerContractAddress:`0xa4173c32fe8a61a8fd0d0234675b559fc360446a`,vetDomainsContractAddress:`0xa9231da8BF8D10e2df3f6E03Dd5449caD600129b`,vetDomainsPublicResolverAddress:`0xabac49445584C8b6c1472b030B1076Ac3901D7cf`,vetDomainsReverseRegistrarAddress:`0x5c970901a587BA3932C835D4ae5FAE2BEa7e78Bc`,vnsResolverAddress:`0xA11413086e163e41901bb81fdc5617c975Fa5a1A`,vetDomainAvatarUrl:`https://vet.domains/api/avatar`,gloDollarContractAddress:`0x29c630cce4ddb23900f5fe66ab55e488c15b9f5e`};const d=e=>{if(e===`solo`)return fe;if(e===`test`)return pe;if(e===`main`)return me;throw Error(`Unsupported NETWORK_TYPE ${e}`)},he=({...e})=>ae(re,{viewBox:`0 0 1684.56 1684.56`,...e,children:[u(`rect`,{fill:`#b1f16c`,width:`1684.56`,height:`1684.56`,rx:`157.74`,ry:`157.74`}),u(`path`,{fill:`#1d1d1d`,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`})]}),f=e=>{try{return typeof window>`u`?null:localStorage.getItem(e)}catch(t){return console.warn(`Error accessing localStorage for key "${e}":`,t),null}},p=(e,t)=>{try{if(typeof window>`u`)return;localStorage.setItem(e,t)}catch(t){console.warn(`Error setting localStorage for key "${e}":`,t)}},m=e=>{try{if(typeof window>`u`)return;localStorage.removeItem(e)}catch(t){console.warn(`Error removing localStorage for key "${e}":`,t)}},h=()=>{try{return typeof document<`u`?document.title:``}catch{return``}},g=()=>{try{return typeof window<`u`&&window.location?window.location.origin:``}catch{return``}},_=()=>typeof window<`u`&&typeof document<`u`,v=(e,t,n)=>{_()&&window.open(e,t,n)},y=e=>typeof document<`u`?document.querySelector(e):null,b=()=>typeof navigator<`u`,x=()=>b()&&navigator.onLine,S=async e=>{try{return b()&&navigator.clipboard?(await navigator.clipboard.writeText(e),!0):!1}catch(e){return console.warn(`Error copying to clipboard:`,e),!1}},C=[`VOT3`],w={VET:new URL(`/static/img/coins/64x64/3077.png`,a).toString(),VTHO:new URL(`/static/img/coins/64x64/3012.png`,a).toString(),B3TR:new URL(`/static/img/coins/64x64/33509.png`,a).toString(),VOT3:new URL(`/17ff70aa1d898bc97ad690dbfad1a3b5643f7e0b.png`,a).toString(),veDelegate:new URL(`1c641b86096d56bf13d49f38388accd6db8b8b2e.png`,e).toString(),USDGLO:new URL(`/static/img/coins/64x64/23888.png`,a).toString()},T={VET:u(r,{}),VTHO:u(n,{}),B3TR:u(t,{}),VOT3:u(he,{})},E=`cm4wxxujb022fyujl7g0thb21`,D=s;let O=function(e){return e[e.WhitelistCheck=1]=`WhitelistCheck`,e[e.BlacklistCheck=2]=`BlacklistCheck`,e[e.SignalingCheck=3]=`SignalingCheck`,e[e.ParticipationScoreCheck=4]=`ParticipationScoreCheck`,e[e.GmOwnershipCheck=5]=`GmOwnershipCheck`,e}({});const k={NETWORK:`vechain-kit:network`},A=()=>{if(typeof window>`u`)return{isDevelopment:!1,isProduction:!0};let e=f(k.NETWORK);return{isDevelopment:e===`test`,isProduction:e===`main`}},j={get isDevelopment(){return A().isDevelopment},get isProduction(){return A().isProduction}},M=()=>A().isProduction?`${l}/api/v1/`:`${ee}/api/v1/`,N=[{id:`clz41gcg00e4ay75dmq3uzzgr`,name:`Cleanify`,website:c},{id:`cm153hrup0817axti38avlfyg`,name:`GreenCart`,website:te},{id:`clv9sfos20j6x1431ga80d95f`,name:`Mughsot`,website:o},{id:`cm4l8tiai070i108zo17oieyc`,name:`EVearn`,website:ne}],P={url:new URL(`terms`,i).toString(),version:1,required:!0,displayName:`Vechain Kit Terms`},F={url:new URL(`cookies`,i).toString(),version:1,required:!1,displayName:`Vechain Kit Cookies`},I={tokenPriority:[`VET`,`B3TR`,`VTHO`],availableGasTokens:[`VET`,`B3TR`,`VTHO`],excludedTokens:[],alwaysConfirm:!1,gasTokenToUse:`VET`},L={B3TR:{type:`B3TR`,name:`B3TR Token`,symbol:`B3TR`,address:d(process.env.NEXT_PUBLIC_NETWORK_TYPE||`test`).b3trContractAddress,description:`Pay gas with B3TR`},VET:{type:`VET`,name:`VET Token`,symbol:`VET`,description:`Pay gas with VET`},VTHO:{type:`VTHO`,name:`VTHO Token`,symbol:`VTHO`,address:d(process.env.NEXT_PUBLIC_NETWORK_TYPE||`test`).vthoContractAddress,description:`Pay gas with VTHO`}},R=(e,t=6,n=4)=>`${e.slice(0,t)}•••${e.slice(-n)}`,ge=(e,t=8,n=6)=>e.length<=t+n?e:`${e.substring(0,t)}•••${e.substring(e.length-n)}`,z=(e,t,n=null)=>{let r=n?` `+n:``;t||=e;let i=new Intl.NumberFormat(`en-US`,{style:`decimal`,minimumFractionDigits:Number.parseFloat(e.toString())%1==0?0:2}).format(ve(Number(e),2));return!B(t)&&B(i)&&(i=`< 0.01`),i+r},B=e=>!e&&e!==0?!1:new se(e).isZero(),_e=(e,t=!1)=>{let n=oe(e.toLowerCase());return t?`data:image/svg+xml;base64,${Buffer.from(n,`utf8`).toString(`base64`)}`:`data:image/svg+xml;utf8,${n}`};function ve(e,t=0){if(typeof e!=`number`||typeof t!=`number`)throw Error(`Invalid input: number and decimals must be of type number`);let n=parseInt(e.toExponential().split(`e-`)[1]||`0`,10),r=10**Math.max(0,t+n);return Math.floor(e*r)/r}const ye=e=>{let t=ce(e),n=t===`0`?`0`:z(t);return{original:e.toString(),scaled:t,formatted:n}},be=(()=>{let e=le(),t=ue(e);return{privateKey:e,account:t,address:t.address}})(),V=/^0[xX]/,xe=/^(0[xX])?[a-fA-F0-9]+$/,H=e=>(W(e),e.replace(V,``)),U=e=>(W(e),V.test(e)?e.replace(V,`0x`):`0x${e}`),W=e=>{if(!G(e))throw Error(`Provided hex value is not valid`)},G=e=>!!e&&xe.test(e),Se=e=>!G(e),K=e=>U(e.toLowerCase().trim()),Ce=(e,t)=>{try{return H(e).toLowerCase()===H(t).toLowerCase()}catch{return!1}},q=(e,t)=>{if(!e||!t)return!1;if(t===e)return!0;try{return K(e)===K(t)}catch{return!1}},we=(e,t)=>{if(e.length!==t.length)return!1;let n=[...e].map(e=>e.toLowerCase()).sort((e,t)=>e.localeCompare(t)),r=[...t].map(e=>e.toLowerCase()).sort((e,t)=>e.localeCompare(t));for(let e=0;e<n.length;e++)if(!q(n[e],r[e]))return!1;return!0},Te=()=>/^0x[a-fA-F0-9]{40}$/,Ee=de.isValid,De=(e,t)=>{let n=e.startsWith(`0x`)?e.slice(2):e;if(n.length>t)throw Error(`Input string is longer than the specified length`);return`0x${n.padStart(t,`0`)}`},J=e=>{let t=e.trim();return/^ipfs:\/\/[a-zA-Z0-9]+(\/[^/]+)*\/?$/.test(t)};function Oe(e,t){return`ipfs://${e}/${t??``}`}async function ke(e,t,n){try{let r=new FormData;r.append(`file`,e,t);let i=await fetch(d(n).ipfsPinningService,{method:`POST`,headers:{"X-Project-Id":`vechain-kit`},body:r});if(!i.ok)throw Error(`HTTP error! status: ${i.status}`);return(await i.json()).IpfsHash}catch(e){throw console.error(`Error uploading blob:`,e),Error(`Failed to upload blob to IPFS`)}}let Y=function(e){return e.IMAGE=`image`,e.VIDEO=`video`,e.UNKNOWN=`unknown`,e.TEXT=`text`,e}({}),Ae=function(e){return e.NONE=`NONE`,e.WHITELIST=`WHITELIST`,e.BLACKLIST=`BLACKLIST`,e}({});const je={usd:`$`,gbp:`£`,eur:`€`},Me=[`display`,`avatar`,`description`,`keywords`,`email`,`url`,`header`,`notice`,`location`,`phone`,`com.x`];function Ne(e,t){return e*(1+t)}function Pe(e,t=4){return Number(e).toLocaleString(void 0,{minimumFractionDigits:t,maximumFractionDigits:t})}let Fe=function(e){return e.TERMS=`terms`,e.PRIVACY=`privacy`,e.COOKIES=`cookies`,e}({}),Ie=function(e){return e.VECHAIN_KIT=`vechain-kit`,e.APPLICATION=`application`,e}({});const X=(e,t)=>!!t.find(t=>{if(e?.split(`/`)[0]===t)return!0}),Le=e=>X(e,[Y.IMAGE])?Y.IMAGE:X(e,[Y.VIDEO])?Y.VIDEO:Y.UNKNOWN,Re=(e,t)=>{if(e.startsWith(`data:`))return e;let n=e?.split(`://`);if(n.length!==2)return null;let r=n?.[0]?.trim(),i=n[1];switch(r){case`ipfs`:if(!J(e))throw Error(`Invalid IPFS URI ${e}`);return`${d(t).ipfsFetchingService}/${i}`;case`ar`:return`https://arweave.net/${i}`;default:return e}},ze=[{level:`1`,name:`Earth`,image:`/images/nft-levels/0.png`,multiplier:1,b3trToUpgrade:0},{level:`2`,name:`Moon`,image:`/images/nft-levels/1.png`,multiplier:1.1,b3trToUpgrade:1e4},{level:`3`,name:`Mercury`,image:`/images/nft-levels/2.png`,multiplier:1.2,b3trToUpgrade:25e3},{level:`4`,name:`Venus`,image:`/images/nft-levels/3.png`,multiplier:1.5,b3trToUpgrade:5e4},{level:`5`,name:`Mars`,image:`/images/nft-levels/4.png`,multiplier:2,b3trToUpgrade:1e5},{level:`6`,name:`Jupiter`,image:`/images/nft-levels/5.png`,multiplier:2.5,b3trToUpgrade:25e4},{level:`7`,name:`Saturn`,image:`/images/nft-levels/6.png`,multiplier:3,b3trToUpgrade:5e5},{level:`8`,name:`Uranus`,image:`/images/nft-levels/7.png`,multiplier:5,b3trToUpgrade:25e5},{level:`9`,name:`Neptune`,image:`/images/nft-levels/8.png`,multiplier:10,b3trToUpgrade:5e6},{level:`10`,name:`Galaxy`,image:`/images/nft-levels/9.png`,multiplier:25,b3trToUpgrade:25e6}],Be={1:2,2:4,3:6,4:2,5:4,6:6,7:7},Ve=e=>{let t=new URLSearchParams;return Object.keys(e).forEach(n=>{let r=e[n];r!=null&&t.append(n,String(r))}),t.toString()},He={0:`/images/vnt/00-noNode.webp`,1:`/images/vnt/01-strength.webp`,2:`/images/vnt/02-thunder.webp`,3:`/images/vnt/03-mjolnir.webp`,4:`/images/vnt/04-vethorX.webp`,5:`/images/vnt/05-strengthX.webp`,6:`/images/vnt/06-thunderX.webp`,7:`/images/vnt/07-mjolnirX.webp`},Ue=4,Z={1:`Strength`,2:`Thunder`,3:`Mjolnir`},Q={4:`VeThorX`,5:`StrengthX`,6:`ThunderX`,7:`MjolnirX`},We={...Z,...Q},$={SECOND:1e3,MINUTE:1e3*60,HOUR:1e3*60*60,DAY:1e3*60*60*24,WEEK:1e3*60*60*24*7,MONTH:1e3*60*60*24*30,YEAR:1e3*60*60*24*365},Ge=e=>e?[`rejected`,`cancelled`,`user denied`,`closed`].some(t=>e.toLowerCase().includes(t.toLowerCase())):!1,Ke=e=>{let t=0;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);t=(t<<5)-t+r,t&=t}return t.toString(36)},qe=e=>{try{return new URL(e),!0}catch{return!1}},Je=async({thor:e,contractAddress:t,abi:n,method:r,args:i})=>await e.contracts.load(t,n).read[r](...i),Ye=async({thor:e,calls:t})=>{if(!Array.isArray(t))throw Error(`calls must be an array`);let n=t.map(t=>e.contracts.load(t.address,t.abi).clause[t.functionName](...t.args)),r=await e.transactions.executeMultipleClausesCall(n);if(!r.every(e=>e.success))throw Error(`Failed to execute multiple clauses call`);return r.map(e=>e.result.plain)},Xe=({thor:e,calls:t})=>{if(!Array.isArray(t))throw Error(`calls must be an array`);return t.map(t=>e.contracts.load(t.address,t.abi).clause[t.functionName](...t.args))};export{w as $,we as A,W as B,je as C,ke as D,Oe as E,Ce as F,ge as G,ye as H,Se as I,I as J,z as K,G as L,De as M,Te as N,J as O,U as P,L as Q,K as R,Me as S,Ae as T,_e as U,be as V,R as W,j as X,N as Y,C as Z,Le as _,y as _t,Ge as a,E as at,Ne as b,d as bt,Z as c,D as ct,Q as d,f as dt,T as et,We as f,g as ft,Re as g,m as gt,Be as h,x as ht,qe as i,P as it,Ee as j,q as k,Ue as l,S as lt,ze as m,_ as mt,Je as n,F as nt,Ke as o,A as ot,Ve as p,b as pt,B as q,Ye as r,k as rt,$ as s,M as st,Xe as t,O as tt,He as u,h as ut,Ie as v,v as vt,Y as w,Pe as x,Fe as y,p as yt,H as z};
|
|
2
|
+
//# sourceMappingURL=utils-ctNraYqK.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils-ctNraYqK.mjs","names":["config: AppConfig","config","config: AppConfig","config","config: AppConfig","localConfig","testnetConfig","mainnetConfig","VOT3Logo: React.FC<Props>","NON_TRANSFERABLE_TOKEN_SYMBOLS: readonly string[]","TOKEN_LOGOS: Record<string, string>","TOKEN_LOGO_COMPONENTS: Record<string, JSX.Element>","DEFAULT_PRIVY_ECOSYSTEM_APPS: PrivyEcosystemApp[]","DEFAULT_GAS_TOKEN_PREFERENCES: GasTokenPreferences","SUPPORTED_GAS_TOKENS: Record<GasTokenType, GasTokenInfo>","randomTransactionUser: {\n privateKey: string;\n account: Account;\n address: string;\n}","HexUtils.normalize","CURRENCY_SYMBOLS: Record<CURRENCY, string>","xNodeToGMstartingLevel: Record<number, number>","NodeStrengthLevelToImage: { [key: string]: string }","EconomicNodeStrengthLevelToName: { [key: string]: string }","XNodeStrengthLevelToName: { [key: string]: string }","allNodeStrengthLevelToName: { [key: string]: string }"],"sources":["../src/config/solo.ts","../src/config/testnet.ts","../src/config/mainnet.ts","../src/config/index.ts","../src/assets/icons/VechainLogo/VOT3Logo.tsx","../src/utils/ssrUtils.ts","../src/utils/constants.tsx","../src/utils/formattingUtils.tsx","../src/utils/randomTxForwarder.tsx","../src/utils/hexUtils.ts","../src/utils/addressUtils.ts","../src/utils/ipfs.ts","../src/types/types.ts","../src/types/ensTextRecords.ts","../src/types/gasEstimation.ts","../src/types/index.ts","../src/utils/media.ts","../src/utils/uri.ts","../src/utils/gmNfts.ts","../src/utils/buildQueryString.ts","../src/utils/xNode.ts","../src/utils/time.ts","../src/utils/stringUtils.ts","../src/utils/url.ts","../src/utils/thorUtils.ts"],"sourcesContent":["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: '0x95761346d18244bb91664181bf91193376197088',\n vot3ContractAddress: '0x6e8b4a88d37897fc11f6ba12c805695f1c41f40e',\n b3trGovernorAddress: '0xc30b4d0837f7e3706749655d8bde0c0f265dd81b',\n timelockContractAddress: '0x835509222aa67c333a1cbf29bd341e014aba86c9',\n xAllocationPoolContractAddress:\n '0x6f7b4bc19b4dc99005b473b9c45ce2815bbe7533',\n xAllocationVotingContractAddress:\n '0x8800592c463f0b21ae08732559ee8e146db1d7b2',\n emissionsContractAddress: '0x66898f98409db20ed6a1bf0021334b7897eb0688',\n voterRewardsContractAddress: '0x851ef91801899a4e7e4a3174a9300b3e20c957e8',\n galaxyMemberContractAddress: '0x38a59fa7fd7039884465a0ff285b8c4b6fe394ca',\n x2EarnCreatorContractAddress: '0xb89f0ecdaf9987f87912d6c77756435fe4085b05',\n nodeManagementContractAddress: '0xde17d0a516c38c168d37685bb71465f656aa256e',\n x2EarnAppsContractAddress: '0x0b54a094b877a25bdc95b4431eaa1e2206b1ddfe',\n treasuryContractAddress: '0x3d531a80c05099c71b02585031f86a2988e0caca',\n x2EarnRewardsPoolContractAddress:\n '0x2d2a2207c68a46fc79325d7718e639d1047b0d8b',\n veBetterPassportContractAddress:\n '0x592c756df7a5d39de1735030e8b9c18b7417e6c4',\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://indexer.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://indexer.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 { 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","/**\n * SSR-safe utilities for browser API access\n */\n\n/**\n * SSR-safe localStorage getter\n */\nexport const getLocalStorageItem = (key: string): string | null => {\n try {\n if (typeof window === 'undefined') {\n return null;\n }\n return localStorage.getItem(key);\n } catch (error) {\n console.warn(`Error accessing localStorage for key \"${key}\":`, error);\n return null;\n }\n};\n\n/**\n * SSR-safe localStorage setter\n */\nexport const setLocalStorageItem = (key: string, value: string): void => {\n try {\n if (typeof window === 'undefined') {\n return;\n }\n localStorage.setItem(key, value);\n } catch (error) {\n console.warn(`Error setting localStorage for key \"${key}\":`, error);\n }\n};\n\n/**\n * SSR-safe localStorage remover\n */\nexport const removeLocalStorageItem = (key: string): void => {\n try {\n if (typeof window === 'undefined') {\n return;\n }\n localStorage.removeItem(key);\n } catch (error) {\n console.warn(`Error removing localStorage for key \"${key}\":`, error);\n }\n};\n\n/**\n * SSR-safe document.title getter\n */\nexport const getDocumentTitle = (): string => {\n try {\n return typeof document !== 'undefined' ? document.title : '';\n } catch {\n return '';\n }\n};\n\n/**\n * SSR-safe window.location.origin getter\n */\nexport const getWindowOrigin = (): string => {\n try {\n return typeof window !== 'undefined' && window.location\n ? window.location.origin\n : '';\n } catch {\n return '';\n }\n};\n\n/**\n * Check if we're in a browser environment\n */\nexport const isBrowser = (): boolean => {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n};\n\n/**\n * SSR-safe window.open\n */\nexport const safeWindowOpen = (url?: string, target?: string, features?: string): void => {\n if (isBrowser()) {\n window.open(url, target, features);\n }\n};\n\n/**\n * SSR-safe document.querySelector\n */\nexport const safeQuerySelector = <T extends Element>(selector: string): T | null => {\n if (typeof document !== 'undefined') {\n return document.querySelector<T>(selector);\n }\n return null;\n};\n\n/**\n * SSR-safe navigator check\n */\nexport const hasNavigator = (): boolean => {\n return typeof navigator !== 'undefined';\n};\n\n/**\n * SSR-safe navigator.onLine check\n */\nexport const isOnline = (): boolean => {\n return hasNavigator() && navigator.onLine;\n};\n\n/**\n * SSR-safe clipboard write\n */\nexport const copyToClipboard = async (text: string): Promise<boolean> => {\n try {\n if (hasNavigator() && navigator.clipboard) {\n await navigator.clipboard.writeText(text);\n return true;\n }\n return false;\n } catch (error) {\n console.warn('Error copying to clipboard:', error);\n return false;\n }\n};\n","import { VeBetterIcon, VTHOLogo } from '@/assets';\nimport { VETLogo } from '@/assets/icons/VechainLogo/VETLogo';\nimport { VOT3Logo } from '@/assets/icons/VechainLogo/VOT3Logo';\nimport { getLocalStorageItem } from './ssrUtils';\nimport {\n GasTokenPreferences,\n GasTokenType,\n GasTokenInfo,\n} from '@/types/gasToken';\nimport { getConfig } from '@/config';\nimport {\n GENERIC_DELEGATOR_MAINNET_URL,\n GENERIC_DELEGATOR_TESTNET_URL,\n VECHAIN_KIT_WEBSITE_BASE_URL,\n COINMARKETCAP_STATIC_BASE_URL,\n VECHAIN_TOKEN_REGISTRY_ASSETS_BASE_URL,\n IMAGE_NOT_FOUND_URL,\n CLEANIFY_APP_BASE_URL,\n EVEARN_BASE_URL,\n GREENCART_BASE_URL,\n MUGSHOT_BASE_URL,\n} from '@/constants';\n\n/** Tokens that cannot be swapped or transferred (e.g. governance voting tokens) */\nexport const NON_TRANSFERABLE_TOKEN_SYMBOLS: readonly string[] = ['VOT3'];\n\nexport const TOKEN_LOGOS: Record<string, string> = {\n VET: new URL(\n '/static/img/coins/64x64/3077.png',\n COINMARKETCAP_STATIC_BASE_URL,\n ).toString(),\n VTHO: new URL(\n '/static/img/coins/64x64/3012.png',\n COINMARKETCAP_STATIC_BASE_URL,\n ).toString(),\n B3TR: new URL(\n '/static/img/coins/64x64/33509.png',\n COINMARKETCAP_STATIC_BASE_URL,\n ).toString(),\n VOT3: new URL(\n '/17ff70aa1d898bc97ad690dbfad1a3b5643f7e0b.png',\n COINMARKETCAP_STATIC_BASE_URL,\n ).toString(),\n veDelegate: new URL(\n '1c641b86096d56bf13d49f38388accd6db8b8b2e.png',\n VECHAIN_TOKEN_REGISTRY_ASSETS_BASE_URL,\n ).toString(),\n USDGLO: new URL(\n '/static/img/coins/64x64/23888.png',\n COINMARKETCAP_STATIC_BASE_URL,\n ).toString(),\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 = IMAGE_NOT_FOUND_URL;\n\nexport enum TogglePassportCheck {\n WhitelistCheck = 1,\n BlacklistCheck = 2,\n SignalingCheck = 3,\n ParticipationScoreCheck = 4,\n GmOwnershipCheck = 5,\n}\n\nexport const VECHAIN_KIT_STORAGE_KEYS = {\n NETWORK: 'vechain-kit:network',\n};\n\n// SSR-safe ENV getter function\nexport const getENV = () => {\n // During SSR, always return safe defaults\n if (typeof window === 'undefined') {\n return {\n isDevelopment: false,\n isProduction: true,\n };\n }\n\n // In browser, check localStorage using SSR-safe utility\n const network = getLocalStorageItem(VECHAIN_KIT_STORAGE_KEYS.NETWORK);\n return {\n isDevelopment: network === 'test',\n isProduction: network === 'main',\n };\n};\n\n// For backward compatibility, create a getter-based ENV object\n// This ensures ENV properties are evaluated lazily and won't crash during SSR\nexport const ENV = {\n get isDevelopment() {\n return getENV().isDevelopment;\n },\n get isProduction() {\n return getENV().isProduction;\n },\n};\n\nexport const getGenericDelegatorUrl = () => {\n const env = getENV();\n return env.isProduction\n ? `${GENERIC_DELEGATOR_MAINNET_URL}/api/v1/`\n : `${GENERIC_DELEGATOR_TESTNET_URL}/api/v1/`; // or url to your delegator\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: CLEANIFY_APP_BASE_URL,\n },\n {\n id: 'cm153hrup0817axti38avlfyg',\n name: 'GreenCart',\n website: GREENCART_BASE_URL,\n },\n {\n id: 'clv9sfos20j6x1431ga80d95f',\n name: 'Mughsot',\n website: MUGSHOT_BASE_URL,\n },\n {\n id: 'cm4l8tiai070i108zo17oieyc',\n name: 'EVearn',\n website: EVEARN_BASE_URL,\n },\n];\n\n//Hardcoded for displaying in the \"Terms and Privacy\" agreements modal\nexport const VECHAIN_KIT_TERMS_CONFIG = {\n url: new URL('terms', VECHAIN_KIT_WEBSITE_BASE_URL).toString(),\n version: 1,\n required: true,\n displayName: 'Vechain Kit Terms',\n};\n\n//Hardcoded for showing up if allowAnalytics is true\n//So we ask users if they agree with data tracking\nexport const VECHAIN_KIT_COOKIES_CONFIG = {\n url: new URL('cookies', VECHAIN_KIT_WEBSITE_BASE_URL).toString(),\n version: 1,\n required: false,\n displayName: 'Vechain Kit Cookies',\n};\n\nexport const DEFAULT_GAS_TOKEN_PREFERENCES: GasTokenPreferences = {\n tokenPriority: ['VET', 'B3TR', 'VTHO'],\n availableGasTokens: ['VET', 'B3TR', 'VTHO'],\n excludedTokens: [],\n alwaysConfirm: false,\n gasTokenToUse: 'VET',\n};\n\nexport const SUPPORTED_GAS_TOKENS: Record<GasTokenType, GasTokenInfo> = {\n B3TR: {\n type: 'B3TR',\n name: 'B3TR Token',\n symbol: 'B3TR',\n address: getConfig(\n (process.env.NEXT_PUBLIC_NETWORK_TYPE as any) || 'test',\n ).b3trContractAddress,\n description: 'Pay gas with B3TR',\n },\n VET: {\n type: 'VET',\n name: 'VET Token',\n symbol: 'VET',\n description: 'Pay gas with VET',\n },\n VTHO: {\n type: 'VTHO',\n name: 'VTHO Token',\n symbol: 'VTHO',\n address: getConfig(\n (process.env.NEXT_PUBLIC_NETWORK_TYPE as any) || 'test',\n ).vthoContractAddress,\n description: 'Pay gas with VTHO',\n },\n};\n","import { picasso } from '@vechain/picasso';\nimport { BigNumber } from 'bignumber.js';\nimport { formatEther } from 'ethers';\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-US', {\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\n/**\n * Format the token balance human friendly\n * @param balance - balance in bigint\n * @returns the formatted balance in the form of {@link TokenBalance} (original, scaled down and formatted)\n */\nexport const formatTokenBalance = (balance: bigint) => {\n const scaled = formatEther(balance);\n const formatted = scaled === '0' ? '0' : humanNumber(scaled);\n return {\n original: balance.toString(),\n scaled,\n formatted,\n };\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","const 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","import * as HexUtils from './hexUtils';\nimport { Address } from '@vechain/sdk-core';\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 = Address.isValid;\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 { 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 { LoginMethodOrderOption } from '@privy-io/react-auth';\nimport { TransactionClause } from '@vechain/sdk-core';\n\nexport type TokenBalance = {\n original: string;\n scaled: string;\n formatted: string;\n};\n\nexport type ENSRecords = {\n display?: string;\n description?: string;\n email?: string;\n url?: string;\n header?: string;\n notice?: string;\n location?: string;\n phone?: string;\n [key: string]: string | undefined;\n};\n\nexport type Wallet = {\n address: string;\n domain?: string;\n image?: string;\n isLoadingMetadata?: boolean;\n metadata?: ENSRecords;\n} | null;\n\nexport type SmartAccount = Wallet & {\n isDeployed: boolean;\n isActive: boolean;\n version: number | null;\n};\n\nexport type ConnectionSource = {\n type: 'privy' | 'wallet' | 'privy-cross-app';\n displayName: string;\n};\n\n/**\n * Data that the Privy user must sign in order to execute a transaction\n * by authorizing the Smart Account contract\n */\nexport type ExecuteWithAuthorizationSignData = {\n domain: {\n name: string;\n version: string;\n chainId: number;\n verifyingContract: string;\n };\n types: {\n ExecuteWithAuthorization: {\n name: string;\n type: string;\n }[];\n EIP712Domain: {\n name: string;\n type: string;\n }[];\n };\n primaryType: string;\n message: {\n validAfter: number;\n validBefore: number;\n to: string | null | undefined;\n value: string;\n data: string;\n };\n};\n\nexport type ExecuteBatchWithAuthorizationSignData = {\n domain: {\n name: string;\n version: string;\n chainId: number;\n verifyingContract: string;\n };\n types: {\n ExecuteBatchWithAuthorization: {\n name: string;\n type: string;\n }[];\n EIP712Domain: {\n name: string;\n type: string;\n }[];\n };\n primaryType: string;\n message: {\n to: string[] | null | undefined;\n value: string[] | null | undefined;\n data: string[] | null | undefined;\n validAfter: number;\n validBefore: number;\n nonce: string;\n };\n};\n\n/**\n * ready: the user has not clicked on the button yet\n * pending: the user has clicked on the button and we're waiting for the transaction to be sent\n * waitingConfirmation: the transaction has been sent and we're waiting for the transaction to be confirmed by the chain\n * success: the transaction has been confirmed by the chain\n * error: the transaction has failed\n * unknown: the transaction receipt has failed to load\n */\nexport type TransactionStatus =\n | 'ready'\n | 'pending'\n | 'waitingConfirmation'\n | 'success'\n | 'error'\n | 'unknown';\n\nexport type TransactionStatusErrorType = {\n type:\n | 'SendTransactionError'\n | 'TxReceiptError'\n | 'RevertReasonError'\n | 'UserRejectedError';\n reason?: string;\n};\n\n/**\n * An enhanced clause with a comment and an abi\n * @param comment a comment to add to the clause\n * @param abi the abi of the contract to call\n */\nexport type EnhancedClause = TransactionClause;\n\nexport type PrivyAppInfo = {\n id: string;\n name: string;\n logo_url: string;\n icon_url: string | null;\n terms_and_conditions_url: string;\n privacy_policy_url: string;\n theme: string;\n accent_color: string;\n wallet_auth: boolean;\n email_auth: boolean;\n google_oauth: boolean;\n twitter_oauth: boolean;\n url: string;\n website?: string;\n};\n\nexport type PrivyLoginMethod = LoginMethodOrderOption;\n\nexport interface CrossAppConnectionCache {\n timestamp: number;\n ecosystemApp: {\n name: string;\n logoUrl?: string;\n appId: string;\n website?: string;\n };\n}\n\nexport enum NFTMediaType {\n IMAGE = 'image',\n VIDEO = 'video',\n UNKNOWN = 'unknown',\n TEXT = 'text', // mp4 appears as text sometimes\n}\n\nexport enum VePassportUserStatus {\n NONE = 'NONE',\n WHITELIST = 'WHITELIST',\n BLACKLIST = 'BLACKLIST',\n}\n\nexport type CURRENCY = 'usd' | 'gbp' | 'eur';\n\nexport const CURRENCY_SYMBOLS: Record<CURRENCY, string> = {\n usd: '$',\n gbp: '£',\n eur: '€',\n};\n","export const ENS_TEXT_RECORDS = [\n 'display',\n 'avatar',\n 'description',\n 'keywords',\n 'email',\n 'url',\n 'header',\n 'notice',\n 'location',\n 'phone',\n 'com.x',\n] as const;\n\nexport type TextRecords = {\n [K in (typeof ENS_TEXT_RECORDS)[number]]?: string;\n};\n","export interface VthoPerGasAtSpeed {\n regular: number;\n medium: number;\n high: number;\n legacy: number;\n}\n\nexport interface EstimatedGas {\n vtho: number;\n vet: number;\n b3tr: number;\n smartAccount: number;\n}\n\nexport interface Rate {\n vtho: number;\n vet: number;\n b3tr: number;\n}\n\nexport interface CostLevel {\n vtho: number;\n vet: number;\n b3tr: number;\n vetWithSmartAccount: number;\n b3trWithSmartAccount: number;\n}\n\nexport interface TransactionCost {\n regular: CostLevel;\n medium: CostLevel;\n high: CostLevel;\n legacy: CostLevel;\n}\n\nexport interface EstimationResponse {\n vthoPerGasAtSpeed?: number;\n estimatedGas?: number;\n rate?: number;\n transactionCost?: number;\n serviceFee?: number;\n totalGasUsed?: number;\n}\n\nexport interface DepositAccount {\n depositAccount: string;\n}\n\nexport function calculateTotalCost(\n baseCost: number,\n serviceFeeRate: number,\n): number {\n return baseCost * (1 + serviceFeeRate);\n}\n\nexport function formatGasCost(amount: number, decimals: number = 4): string {\n return Number(amount).toLocaleString(undefined, {\n minimumFractionDigits: decimals,\n maximumFractionDigits: decimals,\n });\n}\n","export * from './types';\nexport * from './ensTextRecords';\nexport * from './gasToken';\nexport * from './gasEstimation';\n\nimport { LegalDocument } from '@/providers';\n\nexport enum LegalDocumentType {\n TERMS = 'terms',\n PRIVACY = 'privacy',\n COOKIES = 'cookies',\n}\n\nexport enum LegalDocumentSource {\n VECHAIN_KIT = 'vechain-kit',\n APPLICATION = 'application',\n}\n\n// Base type for all legal documents (terms, privacy policy, cookies)\nexport type EnrichedLegalDocument = LegalDocument & {\n id: string;\n documentType: LegalDocumentType;\n documentSource: LegalDocumentSource;\n};\n\n// Agreement record stored in localStorage\nexport type LegalDocumentAgreement = EnrichedLegalDocument & {\n walletAddress: string;\n timestamp: number;\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","export const TIME = {\n SECOND: 1000,\n MINUTE: 1000 * 60,\n HOUR: 1000 * 60 * 60,\n DAY: 1000 * 60 * 60 * 24,\n WEEK: 1000 * 60 * 60 * 24 * 7,\n MONTH: 1000 * 60 * 60 * 24 * 30,\n YEAR: 1000 * 60 * 60 * 24 * 365,\n}\n","/**\n * Checks if a string contains common rejection-related terms\n * @param errorMessage The error message to check\n * @returns boolean indicating if the message contains rejection terms\n */\nexport const isRejectionError = (errorMessage: string): boolean => {\n if (!errorMessage) return false;\n const rejectionTerms = ['rejected', 'cancelled', 'user denied', 'closed'];\n return rejectionTerms.some((term) =>\n errorMessage.toLowerCase().includes(term.toLowerCase()),\n );\n};\n\n/**\n * Generates a simple hash from a string using a 32-bit hash algorithm\n * @param input The string to hash\n * @returns A base-36 string representation of the hash\n */\nexport const simpleHash = (input: string): string => {\n let hash = 0;\n for (let i = 0; i < input.length; i++) {\n const char = input.charCodeAt(i);\n hash = (hash << 5) - hash + char;\n hash = hash & hash; // Convert to 32bit integer\n }\n return hash.toString(36);\n};\n","export const isValidUrl = (value: string) => {\n try {\n new URL(value);\n return true;\n } catch {\n return false;\n }\n};\n","import { ThorClient } from '@vechain/sdk-network';\nimport {\n ExtractAbiFunctionNames,\n AbiParametersToPrimitiveTypes,\n ExtractAbiFunction,\n} from 'abitype';\nimport { Abi, ContractFunctionParameters } from 'viem';\nimport type {\n MulticallParameters as viem_MulticallParameters,\n MulticallReturnType as viem_MulticallReturnType,\n} from 'viem';\n\ntype ExtractViewFunction<\n TAbi extends Abi,\n TMethod extends ExtractAbiFunctionNames<TAbi, 'pure' | 'view'>,\n> = Extract<\n TAbi[number],\n { type: 'function'; stateMutability: 'pure' | 'view'; name: TMethod }\n>;\n\nexport type ViewFunctionResult<\n TAbi extends Abi,\n TMethod extends ExtractAbiFunctionNames<TAbi, 'pure' | 'view'>,\n> = AbiParametersToPrimitiveTypes<\n ExtractViewFunction<TAbi, TMethod>['outputs'],\n 'outputs'\n>;\n\nexport type MultipleClausesCallParameters<\n contracts extends readonly unknown[] = readonly ContractFunctionParameters[],\n allowFailure extends boolean = true,\n> = viem_MulticallParameters<contracts, allowFailure>['contracts'];\n\nexport type MultipleClausesCallReturnType<\n contracts extends readonly unknown[] = readonly ContractFunctionParameters[],\n allowFailure extends boolean = true,\n> = viem_MulticallReturnType<contracts, allowFailure>;\n\nexport const executeCallClause = async <\n TAbi extends Abi,\n TMethod extends ExtractAbiFunctionNames<TAbi, 'pure' | 'view'>,\n>({\n thor,\n contractAddress,\n abi,\n method,\n args,\n}: {\n thor: ThorClient;\n contractAddress: string;\n abi: TAbi;\n method: TMethod;\n args: AbiParametersToPrimitiveTypes<\n ExtractAbiFunction<TAbi, TMethod>['inputs'],\n 'inputs'\n >;\n}) => {\n const contract = thor.contracts.load(contractAddress, abi);\n const res = await contract.read[method](...args);\n return res as ViewFunctionResult<TAbi, TMethod>;\n};\n\nexport const executeMultipleClausesCall = async <\n contracts extends readonly ContractFunctionParameters[],\n allowFailure extends boolean = false,\n>({\n thor,\n calls,\n}: {\n thor: ThorClient;\n calls: MultipleClausesCallParameters<contracts, allowFailure>;\n}) => {\n if (!Array.isArray(calls)) throw new Error('calls must be an array');\n\n const clauses = calls.map((call) =>\n thor.contracts\n .load(call.address, call.abi)\n .clause[call.functionName](...call.args),\n );\n const res = await thor.transactions.executeMultipleClausesCall(clauses);\n\n if (!res.every((r) => r.success))\n throw new Error('Failed to execute multiple clauses call');\n\n return res.map((r) => r.result.plain) as MultipleClausesCallReturnType<\n contracts,\n allowFailure\n >;\n};\n\nexport const buildCallClauses = <\n contracts extends readonly ContractFunctionParameters[],\n allowFailure extends boolean = false,\n>({\n thor,\n calls,\n}: {\n thor: ThorClient;\n calls: MultipleClausesCallParameters<contracts, allowFailure>;\n}) => {\n if (!Array.isArray(calls)) throw new Error('calls must be an array');\n\n return calls.map((call) =>\n thor.contracts\n .load(call.address, call.abi)\n .clause[call.functionName](...call.args),\n );\n};\n"],"mappings":"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"}
|