@hinkal/common 0.2.36 → 0.2.38
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/API/API.cjs +1 -1
- package/API/API.d.ts +0 -5
- package/API/API.mjs +112 -117
- package/API/enclaveUtxoCalls.cjs +1 -1
- package/API/enclaveUtxoCalls.mjs +6 -7
- package/README.md +0 -22
- package/constants/chains.constants.cjs +1 -1
- package/constants/chains.constants.mjs +2 -1
- package/constants/events.constants.cjs +1 -1
- package/constants/events.constants.mjs +3 -1
- package/constants/index.cjs +1 -1
- package/constants/index.d.ts +0 -2
- package/constants/index.mjs +0 -2
- package/constants/mediaUrls.constants.cjs +1 -1
- package/constants/mediaUrls.constants.d.ts +0 -1
- package/constants/mediaUrls.constants.mjs +0 -1
- package/constants/rewards.constants.cjs +1 -1
- package/constants/rewards.constants.d.ts +0 -2
- package/constants/rewards.constants.mjs +2 -2
- package/constants/server.constants.cjs +1 -1
- package/constants/server.constants.d.ts +1 -5
- package/constants/server.constants.mjs +1 -6
- package/data-structures/ApprovalDBs/EventsPublicApprovalsDB.cjs +1 -1
- package/data-structures/ApprovalDBs/EventsPublicApprovalsDB.mjs +13 -13
- package/data-structures/Hinkal/Hinkal.cjs +1 -1
- package/data-structures/Hinkal/Hinkal.d.ts +5 -3
- package/data-structures/Hinkal/Hinkal.mjs +98 -99
- package/data-structures/Hinkal/IHinkal.d.ts +5 -3
- package/data-structures/Hinkal/hinkalDepositAndBridge.cjs +1 -1
- package/data-structures/Hinkal/hinkalDepositAndBridge.d.ts +2 -2
- package/data-structures/Hinkal/hinkalDepositAndBridge.mjs +8 -5
- package/data-structures/Hinkal/hinkalDepositAndWithdraw.cjs +1 -1
- package/data-structures/Hinkal/hinkalDepositAndWithdraw.d.ts +2 -2
- package/data-structures/Hinkal/hinkalDepositAndWithdraw.mjs +4 -1
- package/data-structures/Hinkal/hinkalNearDepositAndBridge.cjs +1 -1
- package/data-structures/Hinkal/hinkalNearDepositAndBridge.mjs +1 -1
- package/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.cjs +1 -1
- package/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.d.ts +2 -2
- package/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.mjs +4 -1
- package/data-structures/Hinkal/resetMerkleTrees.cjs +1 -1
- package/data-structures/Hinkal/resetMerkleTrees.mjs +12 -12
- package/data-structures/TokenDBs/AlchemyPublicTokensDB.cjs +1 -1
- package/data-structures/TokenDBs/AlchemyPublicTokensDB.mjs +3 -2
- package/data-structures/TokenDBs/EventsPublicTokensDB.cjs +1 -1
- package/data-structures/TokenDBs/EventsPublicTokensDB.d.ts +0 -1
- package/data-structures/TokenDBs/EventsPublicTokensDB.mjs +27 -36
- package/data-structures/TokenDBs/PublicTokensDB.cjs +1 -1
- package/data-structures/TokenDBs/PublicTokensDB.mjs +23 -20
- package/data-structures/TokenDBs/TempoPublicTokensDB.cjs +1 -0
- package/data-structures/TokenDBs/TempoPublicTokensDB.d.ts +9 -0
- package/data-structures/TokenDBs/TempoPublicTokensDB.mjs +42 -0
- package/data-structures/TokenDBs/TronPublicTokensDB.cjs +1 -0
- package/data-structures/TokenDBs/TronPublicTokensDB.d.ts +9 -0
- package/data-structures/TokenDBs/TronPublicTokensDB.mjs +47 -0
- package/data-structures/TokenDBs/index.cjs +1 -1
- package/data-structures/TokenDBs/index.d.ts +2 -0
- package/data-structures/TokenDBs/index.mjs +2 -0
- package/data-structures/index.cjs +1 -1
- package/data-structures/index.mjs +2 -0
- package/error-handling/error-codes.constants.cjs +1 -1
- package/error-handling/error-codes.constants.d.ts +0 -5
- package/error-handling/error-codes.constants.mjs +0 -5
- package/externalABIs/index.cjs +1 -1
- package/externalABIs/index.d.ts +1 -36
- package/externalABIs/index.mjs +2 -4
- package/functions/index.cjs +1 -1
- package/functions/index.d.ts +0 -1
- package/functions/index.mjs +1 -4
- package/functions/pre-transaction/sendV0Transaction.cjs +2 -2
- package/functions/pre-transaction/sendV0Transaction.mjs +69 -57
- package/functions/snarkjs/common.snarkjs.cjs +1 -1
- package/functions/snarkjs/common.snarkjs.mjs +2 -2
- package/functions/snarkjs/constant.cjs +1 -1
- package/functions/snarkjs/constant.mjs +1 -1
- package/functions/utils/enclaveHandshakeService.cjs +1 -0
- package/functions/utils/enclaveHandshakeService.d.ts +10 -0
- package/functions/utils/enclaveHandshakeService.mjs +22 -0
- package/functions/utils/encryptInputForEnclave.cjs +1 -1
- package/functions/utils/encryptInputForEnclave.mjs +23 -25
- package/functions/utils/index.cjs +1 -1
- package/functions/utils/index.d.ts +1 -0
- package/functions/utils/index.mjs +1 -0
- package/functions/utils/tron.utils.cjs +1 -1
- package/functions/utils/tron.utils.d.ts +1 -0
- package/functions/utils/tron.utils.mjs +1 -1
- package/index.cjs +1 -1
- package/index.mjs +314 -317
- package/package.json +2 -2
- package/types/cache.types.cjs +1 -1
- package/types/cache.types.d.ts +2 -0
- package/types/cache.types.mjs +1 -1
- package/types/commitments.types.d.ts +0 -10
- package/types/hinkal.types.cjs +1 -1
- package/types/hinkal.types.d.ts +0 -7
- package/types/hinkal.types.mjs +2 -4
- package/types/index.cjs +1 -1
- package/types/index.d.ts +0 -1
- package/types/index.mjs +0 -1
- package/types/new-rewards.type.cjs +1 -1
- package/types/new-rewards.type.d.ts +0 -1
- package/types/new-rewards.type.mjs +1 -1
- package/types/scheduled-transactions.types.d.ts +4 -0
- package/webworker/{logError-B1LyaM6e.js → logError-CU_5hb0O.js} +1 -1
- package/webworker/package.json +2 -2
- package/webworker/snarkjsWorker/snarkjsWorkerLauncher.ts?worker&url.cjs +1 -1
- package/webworker/snarkjsWorker/snarkjsWorkerLauncher.ts?worker&url.mjs +1 -1
- package/webworker/snarkjsWorkerNode.cjs +1 -1
- package/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url.cjs +1 -1
- package/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url.mjs +1 -1
- package/webworker/utxoWorkerNode.cjs +1 -1
- package/webworker/viteWorkerURL.constant.cjs +3 -3
- package/webworker/viteWorkerURL.constant.mjs +3 -3
- package/webworker/{workerProxy-UUs7pDb1.js → workerProxy-JYVsEgnC.js} +1 -1
- package/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.cjs +1 -1
- package/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.mjs +1 -1
- package/webworker/zkProofWorkerNode.cjs +1 -1
- package/API/kycCalls.cjs +0 -1
- package/API/kycCalls.d.ts +0 -14
- package/API/kycCalls.mjs +0 -26
- package/constants/assets.constants.cjs +0 -1
- package/constants/assets.constants.d.ts +0 -13
- package/constants/assets.constants.mjs +0 -16
- package/constants/kyc.constants.cjs +0 -1
- package/constants/kyc.constants.d.ts +0 -29
- package/constants/kyc.constants.mjs +0 -126
- package/data-structures/Hinkal/hinkalGetZkMeProvider.cjs +0 -1
- package/data-structures/Hinkal/hinkalGetZkMeProvider.d.ts +0 -28
- package/data-structures/Hinkal/hinkalGetZkMeProvider.mjs +0 -22
- package/externalABIs/BabPassport.json.cjs +0 -1
- package/externalABIs/BabPassport.json.mjs +0 -20
- package/externalABIs/GalxePassport.json.cjs +0 -1
- package/externalABIs/GalxePassport.json.mjs +0 -37
- package/functions/kyc/aiPriseHelper.d.ts +0 -0
- package/functions/kyc/checkTokenLimitsUSD.cjs +0 -1
- package/functions/kyc/checkTokenLimitsUSD.d.ts +0 -1
- package/functions/kyc/checkTokenLimitsUSD.mjs +0 -29
- package/functions/kyc/index.cjs +0 -1
- package/functions/kyc/index.d.ts +0 -3
- package/functions/kyc/index.mjs +0 -3
- package/functions/kyc/openDefaultPassportWindow.cjs +0 -1
- package/functions/kyc/openDefaultPassportWindow.d.ts +0 -1
- package/functions/kyc/openDefaultPassportWindow.mjs +0 -7
- package/functions/kyc/passportHelper.cjs +0 -1
- package/functions/kyc/passportHelper.d.ts +0 -3
- package/functions/kyc/passportHelper.mjs +0 -9
- package/functions/kyc/zkMeHelper.cjs +0 -1
- package/functions/kyc/zkMeHelper.d.ts +0 -4
- package/functions/kyc/zkMeHelper.mjs +0 -42
- package/types/kyc.types.cjs +0 -1
- package/types/kyc.types.d.ts +0 -41
- package/types/kyc.types.mjs +0 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../types/ethereum-network.types.cjs`),t=require(`../../constants/chains.constants.cjs`),n=require(`../../types/balances.types.cjs`),r=require(`../../types/events.types.cjs`);require(`../../types/index.cjs`);const i=require(`../../functions/utils/mutexes.utils.cjs`),a=require(`../../functions/utils/create-provider.cjs`),o=require(`../../functions/utils/getContractAddress.cjs`),s=require(`../../functions/web3/events/balanceChangedHandler.cjs`),c=require(`../event-service/evm/ClientBlockchainEventEmitter.cjs`),l=require(`../event-service/solana/ClientSolanaBlockchainEventEmitter.cjs`);require(`../event-service/index.cjs`);const u=require(`../snapshot/SnapshotFetcherService.cjs`),d=require(`../snapshot/solana-snapshots/ClientSolanaCommitmentsSnapshotService.cjs`),f=require(`../snapshot/solana-snapshots/ClientSolanaNullifierSnapshotService.cjs`),p=require(`../snapshot/evm-snapshots/ClientCommitmentsSnapshotService.cjs`),m=require(`../snapshot/evm-snapshots/ClientNullifierSnapshotService.cjs`);require(`../snapshot/index.cjs`);let h=require(`
|
|
1
|
+
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../types/ethereum-network.types.cjs`),t=require(`../../constants/chains.constants.cjs`),n=require(`../../types/balances.types.cjs`),r=require(`../../types/events.types.cjs`);require(`../../types/index.cjs`);const i=require(`../../functions/utils/mutexes.utils.cjs`),a=require(`../../functions/utils/create-provider.cjs`),o=require(`../../functions/utils/getContractAddress.cjs`),s=require(`../../functions/web3/events/balanceChangedHandler.cjs`),c=require(`../event-service/evm/ClientBlockchainEventEmitter.cjs`),l=require(`../event-service/solana/ClientSolanaBlockchainEventEmitter.cjs`);require(`../event-service/index.cjs`);const u=require(`../snapshot/SnapshotFetcherService.cjs`),d=require(`../snapshot/solana-snapshots/ClientSolanaCommitmentsSnapshotService.cjs`),f=require(`../snapshot/solana-snapshots/ClientSolanaNullifierSnapshotService.cjs`),p=require(`../snapshot/evm-snapshots/ClientCommitmentsSnapshotService.cjs`),m=require(`../snapshot/evm-snapshots/ClientNullifierSnapshotService.cjs`);require(`../snapshot/index.cjs`);let h=require(`@solana/web3.js`),g=require(`async-mutex`);var _=new Map,v=e=>{let t=_.get(e);return t||(t=new g.Mutex,_.set(e,t)),t},y=async(g,_)=>{let y=(_??g.getSupportedChains()).map(_=>v(_).runExclusive(async()=>{g.commitmentsSnapshotServiceByChain[_]?.intervalClear(),g.nullifierSnapshotServiceByChain[_]?.intervalClear();let{maxPageSize:v,fetchRpcUrl:y,contractData:b}=t.networkRegistry[_],x;if(t.isSolanaLike(_)){let e=b.hinkalAddress;if(!y||!e)throw Error(`Fetch RPC URL or Solana program ID is not set`);x=new l.ClientSolanaBlockchainEventEmitter(_,a.createCustomSolanaConnection(y),new h.PublicKey(e),0,i.getChainBalanceFetchingMutex(_),v);let t=b.hinkalIdl;t&&x.setIdl(t);let n=new u.SnapshotFetcherService(_,e);g.commitmentsSnapshotServiceByChain[_]=new d.ClientSolanaCommitmentsSnapshotService(x,n),g.nullifierSnapshotServiceByChain[_]=new f.ClientSolanaNullifierSnapshotService(x,n)}else{let t=g.getContractWithFetcherByChainId(_,e.ContractType.HinkalContract),n=g.getContractWithFetcherByChainId(_,e.ContractType.DepositOnChainUtxos),a=i.getChainBalanceFetchingMutex(_);x=new c.ClientBlockchainEventEmitter(r.EventCategory.MainContractEvents,_,t,0,a,v,n);let s=new u.SnapshotFetcherService(_,o.getContractAddress(t));g.commitmentsSnapshotServiceByChain[_]=new p.ClientCommitmentsSnapshotService(x,s),g.nullifierSnapshotServiceByChain[_]=new m.ClientNullifierSnapshotService(x,s)}let S=g.commitmentsSnapshotServiceByChain[_],C=g.nullifierSnapshotServiceByChain[_];if(!S||!C)throw Error(`Missing snapshot service for chain ${_}`);await Promise.all([S.init(),C.init()]),await x.init(),g.merkleTreeHinkalByChain[_]=S.merkleTree,g.nullifiersByChain[_]=C.nullifiers,g.encryptedOutputsByChain[_]=S.encryptedOutputs,x.onEventsProcessed=e=>{e>0&&s.balanceChangedHandler({updateType:n.PrivateBalanceUpdateType.FreshWithoutLoader,updateTokensListBefore:!0,chainIdToUpdate:_})}}));await Promise.allSettled(y)};exports.resetMerkleTrees=y;
|
|
@@ -16,33 +16,33 @@ import { ClientSolanaNullifierSnapshotService as p } from "../snapshot/solana-sn
|
|
|
16
16
|
import { ClientCommitmentsSnapshotService as m } from "../snapshot/evm-snapshots/ClientCommitmentsSnapshotService.mjs";
|
|
17
17
|
import { ClientNullifierSnapshotService as h } from "../snapshot/evm-snapshots/ClientNullifierSnapshotService.mjs";
|
|
18
18
|
import "../snapshot/index.mjs";
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
19
|
+
import { PublicKey as g } from "@solana/web3.js";
|
|
20
|
+
import { Mutex as _ } from "async-mutex";
|
|
21
21
|
//#region libs/shared/common/src/data-structures/Hinkal/resetMerkleTrees.ts
|
|
22
22
|
var v = /* @__PURE__ */ new Map(), y = (e) => {
|
|
23
23
|
let t = v.get(e);
|
|
24
|
-
return t || (t = new
|
|
25
|
-
}, b = async (
|
|
26
|
-
let b = (v ??
|
|
27
|
-
|
|
24
|
+
return t || (t = new _(), v.set(e, t)), t;
|
|
25
|
+
}, b = async (_, v) => {
|
|
26
|
+
let b = (v ?? _.getSupportedChains()).map((v) => y(v).runExclusive(async () => {
|
|
27
|
+
_.commitmentsSnapshotServiceByChain[v]?.intervalClear(), _.nullifierSnapshotServiceByChain[v]?.intervalClear();
|
|
28
28
|
let { maxPageSize: y, fetchRpcUrl: b, contractData: x } = n[v], S;
|
|
29
29
|
if (t(v)) {
|
|
30
30
|
let e = x.hinkalAddress;
|
|
31
31
|
if (!b || !e) throw Error("Fetch RPC URL or Solana program ID is not set");
|
|
32
|
-
S = new u(v, o(b), new
|
|
32
|
+
S = new u(v, o(b), new g(e), 0, a(v), y);
|
|
33
33
|
let t = x.hinkalIdl;
|
|
34
34
|
t && S.setIdl(t);
|
|
35
35
|
let n = new d(v, e);
|
|
36
|
-
|
|
36
|
+
_.commitmentsSnapshotServiceByChain[v] = new f(S, n), _.nullifierSnapshotServiceByChain[v] = new p(S, n);
|
|
37
37
|
} else {
|
|
38
|
-
let t =
|
|
38
|
+
let t = _.getContractWithFetcherByChainId(v, e.HinkalContract), n = _.getContractWithFetcherByChainId(v, e.DepositOnChainUtxos), r = a(v);
|
|
39
39
|
S = new l(i.MainContractEvents, v, t, 0, r, y, n);
|
|
40
40
|
let o = new d(v, s(t));
|
|
41
|
-
|
|
41
|
+
_.commitmentsSnapshotServiceByChain[v] = new m(S, o), _.nullifierSnapshotServiceByChain[v] = new h(S, o);
|
|
42
42
|
}
|
|
43
|
-
let C =
|
|
43
|
+
let C = _.commitmentsSnapshotServiceByChain[v], w = _.nullifierSnapshotServiceByChain[v];
|
|
44
44
|
if (!C || !w) throw Error(`Missing snapshot service for chain ${v}`);
|
|
45
|
-
await Promise.all([C.init(), w.init()]), await S.init(),
|
|
45
|
+
await Promise.all([C.init(), w.init()]), await S.init(), _.merkleTreeHinkalByChain[v] = C.merkleTree, _.nullifiersByChain[v] = w.nullifiers, _.encryptedOutputsByChain[v] = C.encryptedOutputs, S.onEventsProcessed = (e) => {
|
|
46
46
|
e > 0 && c({
|
|
47
47
|
updateType: r.FreshWithoutLoader,
|
|
48
48
|
updateTokensListBefore: !0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../types/cache.types.cjs`),r=require(`../http/HttpClient.cjs`);require(`../http/index.cjs`);const i=require(`../../functions/utils/caseInsensitive.utils.cjs`),a=require(`../../API/API.cjs`),o=require(`../../functions/utils/erc20tokenFunctions.cjs`),s=require(`../../error-handling/logger.cjs`),c=require(`../../functions/utils/string.utils.cjs`),l=require(`./token-visibility-db.cjs`),u=require(`../../functions/utils/create-provider.cjs`),d=require(`../../functions/utils/publicBalance.utils.cjs`);let f=require(`@solana/web3.js`),p=require(`idb-keyval`),m=require(`@solana/spl-token`);var h=new class{fetchedTokens={};ALCHEMY_URLS={[e.chainIds.ethMainnet]:`eth-mainnet`,[e.chainIds.polygon]:`polygon-mainnet`,[e.chainIds.arbMainnet]:`arb-mainnet`,[e.chainIds.optimism]:`opt-mainnet`,[e.chainIds.optimismTest]:`opt-mainnet`,[e.chainIds.base]:`base-mainnet`,[e.chainIds.solanaMainnet]:`solana-mainnet`};KNOWN_GOOD_NFTS={[e.chainIds.base]:[`0x20bc8d248fe9c18a947406cea50d716828ab821f`],[e.chainIds.optimism]:[`0x3c3e0e73b53a19bcaf4178b8f9c9428fd2a2775e`]};isWhitelistedNFT(e,t){return this.KNOWN_GOOD_NFTS[t]?this.KNOWN_GOOD_NFTS[t].some(t=>i.caseInsensitiveEqual(e,t)):!1}async getPublicTokens(e,t){let r=c.getStateKey(t,e);return((await(0,p.get)(n.StorageKeys.ALCHEMY_PUBLIC_TOKENS))?.[r]||[]).map(t=>o.overlayTokenWithRegistryData(t,e))}getFetchedTokens(e,t){let n=c.getStateKey(t,e);return(this.fetchedTokens[n]||[]).map(t=>o.overlayTokenWithRegistryData(t,e))}fetchAndUpdatePublicTokens(t,n){return e.isSolanaLike(n)?this.fetchAndUpdateSolanaTokens(t,n):this.fetchAndUpdateEVMTokens(t,n)}async fetchAndUpdateSolanaTokens(e,t){let r=c.getStateKey(e,t),[o,s]=await Promise.all([this.getSolanaTokenAddresses(t,e),this.getNFTAddresses(t,e)]),u=Array.from(new Set([...o,...s]));if(!u.length)return;let d=(await a.API.tokensInfoCall(t,u)).filter(e=>!!e),f=await l.tokenVisibilityStorage.hideSpamsAndFetchHiddenTokensAddresses(t,d),m=d.filter(e=>!i.lowerCaseIncludes(f,e.erc20TokenAddress));await(0,p.update)(n.StorageKeys.ALCHEMY_PUBLIC_TOKENS,(e={})=>{let t={...e,[r]:m};return this.fetchedTokens=t,t})}async getWalletTokenAddresses(t,n){return e.isSolanaLike(t)?this.getSolanaTokenAddresses(t,n):this.getEVMTokenAddresses(t,n)}async fetchAndUpdateEVMTokens(e,r){let o=c.getStateKey(e,r),s=await this.getEVMTokenAddresses(r,e),u=await this.getNFTTokens(r,e),d=u.map(e=>e.contractAddress),f=[...s,...d];if(!f.length)return;let m=(await a.API.tokensInfoCall(r,f)).map((e,n)=>{if(e)return e;let a=f[n],o=u.find(e=>i.caseInsensitiveEqual(e.contractAddress,a));return o&&o.tokenIds&&o.tokenIds.length>0&&this.isWhitelistedNFT(a,r)?{chainId:r,name:`Unknown NFT`,symbol:`NFT`,erc20TokenAddress:a,decimals:0,nftTokenType:t.TokenType.ERC721,tokenIds:o.tokenIds}:null}).filter(e=>!!e),h=await l.tokenVisibilityStorage.hideSpamsAndFetchHiddenTokensAddresses(r,m),g=m.filter(e=>!i.lowerCaseIncludes(h,e.erc20TokenAddress)).map(e=>({...e,tokenIds:u.find(t=>i.caseInsensitiveEqual(t.contractAddress,e.erc20TokenAddress))?.tokenIds}));await(0,p.update)(n.StorageKeys.ALCHEMY_PUBLIC_TOKENS,(e={})=>{let t={...e,[o]:g};return this.fetchedTokens=t,t})}async getSolanaTokenAddresses(n,r){let{fetchRpcUrl:i}=e.networkRegistry[n];if(!i)throw Error(`RPC URL not found for the specified chain ID`);let a=u.createCustomSolanaConnection(i),o=await a.getBalance(new f.PublicKey(r)),[s,c]=await Promise.all([a.getParsedTokenAccountsByOwner(new f.PublicKey(r),{programId:m.TOKEN_PROGRAM_ID}),a.getParsedTokenAccountsByOwner(new f.PublicKey(r),{programId:m.TOKEN_2022_PROGRAM_ID})]),l=[...s.value,...c.value].filter(e=>{let{amount:t}=e.account.data.parsed.info.tokenAmount;return BigInt(t)>0n}).map(e=>e.account.data.parsed.info.mint);return o>0&&l.unshift(t.solanaNativeAddress),Array.from(new Set(l))}async getNFTAddresses(n,i){let{fetchRpcUrl:a}=e.networkRegistry[n];if(!a)throw Error(`RPC URL not found for the specified chain ID`);try{let e=[],n=1;do{let{items:o=[],page:s}=(await r.httpClient.post(a,{jsonrpc:`2.0`,id:1,method:`getAssetsByOwner`,params:{ownerAddress:i,page:n,limit:1e3,displayOptions:{showFungible:!1,showCollectionMetadata:!0}}})).result||{},c=o.filter(e=>e.interface&&t.SOLANA_NFT_INTERFACES.includes(e.interface)).map(e=>e.id);e.push(...c),n=s&&s>n?s:0}while(n>0);return e}catch(e){return s.Logger.error(`Failed to fetch NFTs from DAS API`,e),[]}}async getEVMTokenAddresses(n,i){let a=await d.getPublicBalanceByTokenAddress(n,i,t.zeroAddress),o=this.ALCHEMY_URLS[n];if(!o)throw Error(`Alchemy URL not found for the specified chain ID`);let s=`https://${o}.g.alchemy.com/v2/${e.ALCHEMY_API_KEY}`,c=[],l;do{let e=[i,`erc20`];l&&e.push({pageKey:l});let{result:t}=await r.httpClient.post(s,{jsonrpc:`2.0`,id:1,method:`alchemy_getTokenBalances`,params:e});c.push(...t?.tokenBalances??[]),l=t?.pageKey}while(l);a&&a>0n&&c.push({contractAddress:t.zeroAddress,tokenBalance:a.toString()});let u={};return c.forEach(e=>{(!u[e.contractAddress]||BigInt(e.tokenBalance)>0n)&&(u[e.contractAddress]=e)}),Object.keys(u)}async getNFTTokens(t,n){let i=`https://${this.ALCHEMY_URLS[t]}.g.alchemy.com/nft/v3/${e.ALCHEMY_API_KEY}/getNFTsForOwner`,a=[],o;do{let e=new URLSearchParams({owner:n,withMetadata:`false`,pageSize:`100`});o&&e.append(`pageKey`,o);let{ownedNfts:t=[],pageKey:s}=await r.httpClient.get(`${i}?${e.toString()}`);a.push(...t),o=s}while(o);let s=a.filter(({contractAddress:e,tokenId:t})=>e&&t).reduce((e,{contractAddress:t,tokenId:n})=>{let r=t.toLowerCase();return e.has(r)||e.set(r,[]),e.get(r)?.push(n),e},new Map);return Array.from(s.entries()).map(([e,t])=>({contractAddress:e,tokenIds:t}))}};exports.alchemyPublicTokensDB=h;
|
|
1
|
+
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../types/cache.types.cjs`),r=require(`../http/HttpClient.cjs`);require(`../http/index.cjs`);const i=require(`../../functions/utils/caseInsensitive.utils.cjs`),a=require(`../../API/API.cjs`),o=require(`../../functions/utils/erc20tokenFunctions.cjs`),s=require(`../../error-handling/logger.cjs`),c=require(`../../functions/utils/string.utils.cjs`),l=require(`./token-visibility-db.cjs`),u=require(`../../functions/utils/create-provider.cjs`),d=require(`../../functions/utils/publicBalance.utils.cjs`);let f=require(`@solana/web3.js`),p=require(`idb-keyval`),m=require(`@solana/spl-token`);var h=new class{fetchedTokens={};ALCHEMY_URLS={[e.chainIds.ethMainnet]:`eth-mainnet`,[e.chainIds.polygon]:`polygon-mainnet`,[e.chainIds.arbMainnet]:`arb-mainnet`,[e.chainIds.optimism]:`opt-mainnet`,[e.chainIds.optimismTest]:`opt-mainnet`,[e.chainIds.base]:`base-mainnet`,[e.chainIds.solanaMainnet]:`solana-mainnet`,[e.chainIds.sepoliaTestnet]:`eth-sepolia`};KNOWN_GOOD_NFTS={[e.chainIds.base]:[`0x20bc8d248fe9c18a947406cea50d716828ab821f`],[e.chainIds.optimism]:[`0x3c3e0e73b53a19bcaf4178b8f9c9428fd2a2775e`]};isWhitelistedNFT(e,t){return this.KNOWN_GOOD_NFTS[t]?this.KNOWN_GOOD_NFTS[t].some(t=>i.caseInsensitiveEqual(e,t)):!1}async getPublicTokens(e,t){let r=c.getStateKey(t,e);return((await(0,p.get)(n.StorageKeys.ALCHEMY_PUBLIC_TOKENS))?.[r]||[]).map(t=>o.overlayTokenWithRegistryData(t,e))}getFetchedTokens(e,t){let n=c.getStateKey(t,e);return(this.fetchedTokens[n]||[]).map(t=>o.overlayTokenWithRegistryData(t,e))}fetchAndUpdatePublicTokens(t,n){return e.isSolanaLike(n)?this.fetchAndUpdateSolanaTokens(t,n):this.fetchAndUpdateEVMTokens(t,n)}async fetchAndUpdateSolanaTokens(e,t){let r=c.getStateKey(e,t),[o,s]=await Promise.all([this.getSolanaTokenAddresses(t,e),this.getNFTAddresses(t,e)]),u=Array.from(new Set([...o,...s]));if(!u.length)return;let d=(await a.API.tokensInfoCall(t,u)).filter(e=>!!e),f=await l.tokenVisibilityStorage.hideSpamsAndFetchHiddenTokensAddresses(t,d),m=d.filter(e=>!i.lowerCaseIncludes(f,e.erc20TokenAddress));await(0,p.update)(n.StorageKeys.ALCHEMY_PUBLIC_TOKENS,(e={})=>{let t={...e,[r]:m};return this.fetchedTokens=t,t})}async getWalletTokenAddresses(t,n){return e.isSolanaLike(t)?this.getSolanaTokenAddresses(t,n):this.getEVMTokenAddresses(t,n)}async fetchAndUpdateEVMTokens(e,r){let o=c.getStateKey(e,r),s=await this.getEVMTokenAddresses(r,e),u=await this.getNFTTokens(r,e),d=u.map(e=>e.contractAddress),f=[...s,...d];if(!f.length)return;let m=(await a.API.tokensInfoCall(r,f)).map((e,n)=>{if(e)return e;let a=f[n],o=u.find(e=>i.caseInsensitiveEqual(e.contractAddress,a));return o&&o.tokenIds&&o.tokenIds.length>0&&this.isWhitelistedNFT(a,r)?{chainId:r,name:`Unknown NFT`,symbol:`NFT`,erc20TokenAddress:a,decimals:0,nftTokenType:t.TokenType.ERC721,tokenIds:o.tokenIds}:null}).filter(e=>!!e),h=await l.tokenVisibilityStorage.hideSpamsAndFetchHiddenTokensAddresses(r,m),g=m.filter(e=>!i.lowerCaseIncludes(h,e.erc20TokenAddress)).map(e=>({...e,tokenIds:u.find(t=>i.caseInsensitiveEqual(t.contractAddress,e.erc20TokenAddress))?.tokenIds}));await(0,p.update)(n.StorageKeys.ALCHEMY_PUBLIC_TOKENS,(e={})=>{let t={...e,[o]:g};return this.fetchedTokens=t,t})}async getSolanaTokenAddresses(n,r){let{fetchRpcUrl:i}=e.networkRegistry[n];if(!i)throw Error(`RPC URL not found for the specified chain ID`);let a=u.createCustomSolanaConnection(i),o=await a.getBalance(new f.PublicKey(r)),[s,c]=await Promise.all([a.getParsedTokenAccountsByOwner(new f.PublicKey(r),{programId:m.TOKEN_PROGRAM_ID}),a.getParsedTokenAccountsByOwner(new f.PublicKey(r),{programId:m.TOKEN_2022_PROGRAM_ID})]),l=[...s.value,...c.value].filter(e=>{let{amount:t}=e.account.data.parsed.info.tokenAmount;return BigInt(t)>0n}).map(e=>e.account.data.parsed.info.mint);return o>0&&l.unshift(t.solanaNativeAddress),Array.from(new Set(l))}async getNFTAddresses(n,i){let{fetchRpcUrl:a}=e.networkRegistry[n];if(!a)throw Error(`RPC URL not found for the specified chain ID`);try{let e=[],n=1;do{let{items:o=[],page:s}=(await r.httpClient.post(a,{jsonrpc:`2.0`,id:1,method:`getAssetsByOwner`,params:{ownerAddress:i,page:n,limit:1e3,displayOptions:{showFungible:!1,showCollectionMetadata:!0}}})).result||{},c=o.filter(e=>e.interface&&t.SOLANA_NFT_INTERFACES.includes(e.interface)).map(e=>e.id);e.push(...c),n=s&&s>n?s:0}while(n>0);return e}catch(e){return s.Logger.error(`Failed to fetch NFTs from DAS API`,e),[]}}async getEVMTokenAddresses(n,i){let a=await d.getPublicBalanceByTokenAddress(n,i,t.zeroAddress),o=this.ALCHEMY_URLS[n];if(!o)throw Error(`Alchemy URL not found for the specified chain ID: ${n}`);let s=`https://${o}.g.alchemy.com/v2/${e.ALCHEMY_API_KEY}`,c=[],l;do{let e=[i,`erc20`];l&&e.push({pageKey:l});let{result:t}=await r.httpClient.post(s,{jsonrpc:`2.0`,id:1,method:`alchemy_getTokenBalances`,params:e});c.push(...t?.tokenBalances??[]),l=t?.pageKey}while(l);a&&a>0n&&c.push({contractAddress:t.zeroAddress,tokenBalance:a.toString()});let u={};return c.forEach(e=>{(!u[e.contractAddress]||BigInt(e.tokenBalance)>0n)&&(u[e.contractAddress]=e)}),Object.keys(u)}async getNFTTokens(t,n){let i=`https://${this.ALCHEMY_URLS[t]}.g.alchemy.com/nft/v3/${e.ALCHEMY_API_KEY}/getNFTsForOwner`,a=[],o;do{let e=new URLSearchParams({owner:n,withMetadata:`false`,pageSize:`100`});o&&e.append(`pageKey`,o);let{ownedNfts:t=[],pageKey:s}=await r.httpClient.get(`${i}?${e.toString()}`);a.push(...t),o=s}while(o);let s=a.filter(({contractAddress:e,tokenId:t})=>e&&t).reduce((e,{contractAddress:t,tokenId:n})=>{let r=t.toLowerCase();return e.has(r)||e.set(r,[]),e.get(r)?.push(n),e},new Map);return Array.from(s.entries()).map(([e,t])=>({contractAddress:e,tokenIds:t}))}};exports.alchemyPublicTokensDB=h;
|
|
@@ -23,7 +23,8 @@ var w = new class {
|
|
|
23
23
|
[t.optimism]: "opt-mainnet",
|
|
24
24
|
[t.optimismTest]: "opt-mainnet",
|
|
25
25
|
[t.base]: "base-mainnet",
|
|
26
|
-
[t.solanaMainnet]: "solana-mainnet"
|
|
26
|
+
[t.solanaMainnet]: "solana-mainnet",
|
|
27
|
+
[t.sepoliaTestnet]: "eth-sepolia"
|
|
27
28
|
};
|
|
28
29
|
KNOWN_GOOD_NFTS = {
|
|
29
30
|
[t.base]: ["0x20bc8d248fe9c18a947406cea50d716828ab821f"],
|
|
@@ -123,7 +124,7 @@ var w = new class {
|
|
|
123
124
|
}
|
|
124
125
|
async getEVMTokenAddresses(t, n) {
|
|
125
126
|
let r = await v(t, n, s), i = this.ALCHEMY_URLS[t];
|
|
126
|
-
if (!i) throw Error(
|
|
127
|
+
if (!i) throw Error(`Alchemy URL not found for the specified chain ID: ${t}`);
|
|
127
128
|
let a = `https://${i}.g.alchemy.com/v2/${e}`, o = [], c;
|
|
128
129
|
do {
|
|
129
130
|
let e = [n, "erc20"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/protocol.constants.cjs`),t=require(`../../types/cache.types.cjs`),n=require(`../../functions/utils/caseInsensitive.utils.cjs`),r=require(`../../API/API.cjs`),i=require(`../../functions/utils/erc20tokenFunctions.cjs`),a=require(`../../constants/events.constants.cjs`);require(`../../constants/index.cjs`);const o=require(`../../error-handling/logger.cjs`),s=require(`../../functions/utils/
|
|
1
|
+
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/protocol.constants.cjs`),t=require(`../../types/cache.types.cjs`),n=require(`../../functions/utils/caseInsensitive.utils.cjs`),r=require(`../../API/API.cjs`),i=require(`../../functions/utils/erc20tokenFunctions.cjs`),a=require(`../../constants/events.constants.cjs`);require(`../../constants/index.cjs`);const o=require(`../../error-handling/logger.cjs`),s=require(`../../functions/utils/tron.utils.cjs`),c=require(`../../functions/utils/string.utils.cjs`),l=require(`./token-visibility-db.cjs`),u=require(`../../functions/utils/create-provider.cjs`);require(`../../functions/index.cjs`);let d=require(`ethers`),f=require(`idb-keyval`),p=require(`async-mutex`);var m=new class{fetchedTokens={};updateMutexes={};transferEventTopic=d.ethers.id(`Transfer(address,address,uint256)`);chunkSize=2e3;getMutex(e){return this.updateMutexes[e]||(this.updateMutexes[e]=new p.Mutex),this.updateMutexes[e]}async getPublicTokens(e,n){let r=c.getStateKey(n,e);return((await(0,f.get)(t.StorageKeys.EVENTS_PUBLIC_TOKENS))?.[r]||[]).map(t=>i.overlayTokenWithRegistryData(t,e))}getFetchedTokens(e,t){let n=c.getStateKey(t,e);return(this.fetchedTokens[n]||[]).map(t=>i.overlayTokenWithRegistryData(t,e))}async fetchAndUpdatePublicTokens(e,r){let i=c.getStateKey(e,r);await this.getMutex(i).runExclusive(async()=>{try{let a=(await this.getPublicTokens(r,e)).map(e=>e.erc20TokenAddress),{toEvents:o,fromEvents:s,latestBlock:c}=await this.getEvents(e,r),u=[...o,...s],{erc20Tokens:d}=await this.fetchPublicTokens(u,r,a),p=await l.tokenVisibilityStorage.hideSpamsAndFetchHiddenTokensAddresses(r,d),m=d.filter(e=>!n.lowerCaseIncludes(p,e.erc20TokenAddress));await(0,f.update)(t.StorageKeys.EVENTS_PUBLIC_TOKENS,(e={})=>{let t=e[i]||[],r=t.map(e=>e.erc20TokenAddress),a=m.filter(e=>!n.lowerCaseIncludes(r,e.erc20TokenAddress));t.push(...a);let c=this.updateTokenIds(s,o,t),l={...e,[i]:c};return this.fetchedTokens=l,l}),c&&await this.updateLastProcessedBlock(r,e,c)}catch(e){o.Logger.error(`public tokens db error`,e)}})}async getLastProcessedBlock(e,n){return(await(0,f.get)(t.StorageKeys.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS)||{})[c.getStateKey(n,e)]||a.EVENTS_INITIAL_BLOCKS[e]}async updateLastProcessedBlock(e,n,r){await(0,f.update)(t.StorageKeys.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS,(t={})=>{let i=c.getStateKey(n,e);return{...t,[i]:r}})}async getEvents(e,t){try{let n=u.createJsonRpcProvider(t),r=await this.getLastProcessedBlock(t,e)+1,i=await n.getBlockNumber(),a=s.addressToHexFormat(e),o=d.ethers.zeroPadValue(a,32),c=[],l=[];for(let e=r;e<=i;e+=this.chunkSize){let t=Math.min(e+this.chunkSize-1,i),r={topics:[this.transferEventTopic,null,o],fromBlock:e,toBlock:t},a={topics:[this.transferEventTopic,o,null],fromBlock:e,toBlock:t},[s,u]=await Promise.all([n.getLogs(r),n.getLogs(a)]);c.push(...s),l.push(...u)}return{toEvents:c,fromEvents:l,latestBlock:i}}catch(n){return o.Logger.error(`Error fetching events:`,n,`chainId`,t,`walletAddress`,e),{toEvents:[],fromEvents:[],latestBlock:void 0}}}updateTokenIds(e,t,n){let r=new Map;return n.forEach(e=>{if(i.isNFTToken(e)&&e.tokenIds){let t=e.erc20TokenAddress.toLowerCase();r.set(t,[...e.tokenIds])}}),t.forEach(e=>{if(e.topics.length<=3)return;let t=e.address.toLowerCase(),n=BigInt(e.topics[3]).toString();r.has(t)||r.set(t,[]),r.get(t)?.push(n)}),e.forEach(e=>{if(e.topics.length<=3)return;let t=e.address.toLowerCase(),n=r.get(t);if(n?.length){let t=BigInt(e.topics[3]).toString(),r=n.indexOf(t);r!==-1&&n.splice(r,1)}}),n.forEach(e=>{if(i.isNFTToken(e)){let t=e.erc20TokenAddress.toLowerCase(),n=r.get(t);e.tokenIds=n?.length&&n.length>0?n:void 0}}),n}async fetchPublicTokens(t,i,a){try{let o=[e.zeroAddress,...new Set(t.map(e=>e.address))].filter(e=>e&&!n.lowerCaseIncludes(a,e));return o.length?{erc20Tokens:(await r.API.tokensInfoCall(i,o)).filter(e=>!!e)}:{erc20Tokens:[]}}catch(e){return o.Logger.error(`Error fetching public tokens:`,e),{erc20Tokens:[]}}}};exports.eventsPublicTokensDB=m;
|
|
@@ -6,7 +6,6 @@ export declare class EventsPublicTokensDB implements IPublicTokensDB {
|
|
|
6
6
|
private readonly transferEventTopic;
|
|
7
7
|
private readonly chunkSize;
|
|
8
8
|
private getMutex;
|
|
9
|
-
private withRegistryOverlay;
|
|
10
9
|
getPublicTokens(chainId: number, walletAddress: string): Promise<ERC20Token[]>;
|
|
11
10
|
getFetchedTokens(chainId: number, walletAddress: string): ERC20Token[];
|
|
12
11
|
fetchAndUpdatePublicTokens(walletAddress: string, chainId: number): Promise<void>;
|
|
@@ -2,49 +2,40 @@ import { zeroAddress as e } from "../../constants/protocol.constants.mjs";
|
|
|
2
2
|
import { StorageKeys as t } from "../../types/cache.types.mjs";
|
|
3
3
|
import { lowerCaseIncludes as n } from "../../functions/utils/caseInsensitive.utils.mjs";
|
|
4
4
|
import { API as r } from "../../API/API.mjs";
|
|
5
|
-
import {
|
|
6
|
-
import { EVENTS_INITIAL_BLOCKS as
|
|
5
|
+
import { isNFTToken as i, overlayTokenWithRegistryData as a } from "../../functions/utils/erc20tokenFunctions.mjs";
|
|
6
|
+
import { EVENTS_INITIAL_BLOCKS as o } from "../../constants/events.constants.mjs";
|
|
7
7
|
import "../../constants/index.mjs";
|
|
8
|
-
import { Logger as
|
|
8
|
+
import { Logger as s } from "../../error-handling/logger.mjs";
|
|
9
|
+
import { addressToHexFormat as c } from "../../functions/utils/tron.utils.mjs";
|
|
9
10
|
import { getStateKey as l } from "../../functions/utils/string.utils.mjs";
|
|
10
11
|
import { tokenVisibilityStorage as u } from "./token-visibility-db.mjs";
|
|
11
12
|
import { createJsonRpcProvider as d } from "../../functions/utils/create-provider.mjs";
|
|
12
13
|
import "../../functions/index.mjs";
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
14
|
+
import { ethers as f } from "ethers";
|
|
15
|
+
import { get as p, update as m } from "idb-keyval";
|
|
16
|
+
import { Mutex as h } from "async-mutex";
|
|
16
17
|
var g = new class {
|
|
17
18
|
fetchedTokens = {};
|
|
18
19
|
updateMutexes = {};
|
|
19
|
-
transferEventTopic =
|
|
20
|
+
transferEventTopic = f.id("Transfer(address,address,uint256)");
|
|
20
21
|
chunkSize = 2e3;
|
|
21
22
|
getMutex(e) {
|
|
22
|
-
return this.updateMutexes[e] || (this.updateMutexes[e] = new
|
|
23
|
-
}
|
|
24
|
-
withRegistryOverlay(e, t) {
|
|
25
|
-
let n = i(e.erc20TokenAddress, t);
|
|
26
|
-
return n ? {
|
|
27
|
-
...e,
|
|
28
|
-
name: n.name,
|
|
29
|
-
symbol: n.symbol,
|
|
30
|
-
logoURI: n.logoURI,
|
|
31
|
-
decimals: n.decimals
|
|
32
|
-
} : e;
|
|
23
|
+
return this.updateMutexes[e] || (this.updateMutexes[e] = new h()), this.updateMutexes[e];
|
|
33
24
|
}
|
|
34
25
|
async getPublicTokens(e, n) {
|
|
35
26
|
let r = l(n, e);
|
|
36
|
-
return ((await
|
|
27
|
+
return ((await p(t.EVENTS_PUBLIC_TOKENS))?.[r] || []).map((t) => a(t, e));
|
|
37
28
|
}
|
|
38
29
|
getFetchedTokens(e, t) {
|
|
39
30
|
let n = l(t, e);
|
|
40
|
-
return (this.fetchedTokens[n] || []).map((t) =>
|
|
31
|
+
return (this.fetchedTokens[n] || []).map((t) => a(t, e));
|
|
41
32
|
}
|
|
42
33
|
async fetchAndUpdatePublicTokens(e, r) {
|
|
43
34
|
let i = l(e, r);
|
|
44
35
|
await this.getMutex(i).runExclusive(async () => {
|
|
45
36
|
try {
|
|
46
37
|
let a = (await this.getPublicTokens(r, e)).map((e) => e.erc20TokenAddress), { toEvents: o, fromEvents: s, latestBlock: c } = await this.getEvents(e, r), l = [...o, ...s], { erc20Tokens: d } = await this.fetchPublicTokens(l, r, a), f = await u.hideSpamsAndFetchHiddenTokensAddresses(r, d), p = d.filter((e) => !n(f, e.erc20TokenAddress));
|
|
47
|
-
await
|
|
38
|
+
await m(t.EVENTS_PUBLIC_TOKENS, (e = {}) => {
|
|
48
39
|
let t = e[i] || [], r = t.map((e) => e.erc20TokenAddress), a = p.filter((e) => !n(r, e.erc20TokenAddress));
|
|
49
40
|
t.push(...a);
|
|
50
41
|
let c = this.updateTokenIds(s, o, t), l = {
|
|
@@ -54,15 +45,15 @@ var g = new class {
|
|
|
54
45
|
return this.fetchedTokens = l, l;
|
|
55
46
|
}), c && await this.updateLastProcessedBlock(r, e, c);
|
|
56
47
|
} catch (e) {
|
|
57
|
-
|
|
48
|
+
s.error("public tokens db error", e);
|
|
58
49
|
}
|
|
59
50
|
});
|
|
60
51
|
}
|
|
61
52
|
async getLastProcessedBlock(e, n) {
|
|
62
|
-
return (await
|
|
53
|
+
return (await p(t.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS) || {})[l(n, e)] || o[e];
|
|
63
54
|
}
|
|
64
55
|
async updateLastProcessedBlock(e, n, r) {
|
|
65
|
-
await
|
|
56
|
+
await m(t.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS, (t = {}) => {
|
|
66
57
|
let i = l(n, e);
|
|
67
58
|
return {
|
|
68
59
|
...t,
|
|
@@ -72,34 +63,34 @@ var g = new class {
|
|
|
72
63
|
}
|
|
73
64
|
async getEvents(e, t) {
|
|
74
65
|
try {
|
|
75
|
-
let n = d(t), r = await this.getLastProcessedBlock(t, e) + 1, i = await n.getBlockNumber(), a =
|
|
66
|
+
let n = d(t), r = await this.getLastProcessedBlock(t, e) + 1, i = await n.getBlockNumber(), a = c(e), o = f.zeroPadValue(a, 32), s = [], l = [];
|
|
76
67
|
for (let e = r; e <= i; e += this.chunkSize) {
|
|
77
68
|
let t = Math.min(e + this.chunkSize - 1, i), r = {
|
|
78
69
|
topics: [
|
|
79
70
|
this.transferEventTopic,
|
|
80
71
|
null,
|
|
81
|
-
|
|
72
|
+
o
|
|
82
73
|
],
|
|
83
74
|
fromBlock: e,
|
|
84
75
|
toBlock: t
|
|
85
|
-
},
|
|
76
|
+
}, a = {
|
|
86
77
|
topics: [
|
|
87
78
|
this.transferEventTopic,
|
|
88
|
-
|
|
79
|
+
o,
|
|
89
80
|
null
|
|
90
81
|
],
|
|
91
82
|
fromBlock: e,
|
|
92
83
|
toBlock: t
|
|
93
|
-
}, [
|
|
94
|
-
|
|
84
|
+
}, [c, u] = await Promise.all([n.getLogs(r), n.getLogs(a)]);
|
|
85
|
+
s.push(...c), l.push(...u);
|
|
95
86
|
}
|
|
96
87
|
return {
|
|
97
|
-
toEvents:
|
|
98
|
-
fromEvents:
|
|
88
|
+
toEvents: s,
|
|
89
|
+
fromEvents: l,
|
|
99
90
|
latestBlock: i
|
|
100
91
|
};
|
|
101
92
|
} catch (n) {
|
|
102
|
-
return
|
|
93
|
+
return s.error("Error fetching events:", n, "chainId", t, "walletAddress", e), {
|
|
103
94
|
toEvents: [],
|
|
104
95
|
fromEvents: [],
|
|
105
96
|
latestBlock: void 0
|
|
@@ -109,7 +100,7 @@ var g = new class {
|
|
|
109
100
|
updateTokenIds(e, t, n) {
|
|
110
101
|
let r = /* @__PURE__ */ new Map();
|
|
111
102
|
return n.forEach((e) => {
|
|
112
|
-
if (
|
|
103
|
+
if (i(e) && e.tokenIds) {
|
|
113
104
|
let t = e.erc20TokenAddress.toLowerCase();
|
|
114
105
|
r.set(t, [...e.tokenIds]);
|
|
115
106
|
}
|
|
@@ -125,7 +116,7 @@ var g = new class {
|
|
|
125
116
|
r !== -1 && n.splice(r, 1);
|
|
126
117
|
}
|
|
127
118
|
}), n.forEach((e) => {
|
|
128
|
-
if (
|
|
119
|
+
if (i(e)) {
|
|
129
120
|
let t = e.erc20TokenAddress.toLowerCase(), n = r.get(t);
|
|
130
121
|
e.tokenIds = n?.length && n.length > 0 ? n : void 0;
|
|
131
122
|
}
|
|
@@ -136,7 +127,7 @@ var g = new class {
|
|
|
136
127
|
let o = [e, ...new Set(t.map((e) => e.address))].filter((e) => e && !n(a, e));
|
|
137
128
|
return o.length ? { erc20Tokens: (await r.tokensInfoCall(i, o)).filter((e) => !!e) } : { erc20Tokens: [] };
|
|
138
129
|
} catch (e) {
|
|
139
|
-
return
|
|
130
|
+
return s.error("Error fetching public tokens:", e), { erc20Tokens: [] };
|
|
140
131
|
}
|
|
141
132
|
}
|
|
142
133
|
}();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../constants/chains.constants.cjs`),t=require(`../../functions/utils/string.utils.cjs`),
|
|
1
|
+
const e=require(`../../constants/chains.constants.cjs`),t=require(`../../error-handling/logger.cjs`),n=require(`../../functions/utils/string.utils.cjs`),r=require(`./AlchemyPublicTokensDB.cjs`),i=require(`./EventsPublicTokensDB.cjs`),a=require(`./ArcPublicTokensDB.cjs`),o=require(`./TronPublicTokensDB.cjs`),s=require(`./TempoPublicTokensDB.cjs`);var c=class{useAlternativeDB={};async getPublicTokens(t,c){let l=n.getStateKey(c,t);return this.useAlternativeDB[l]?i.eventsPublicTokensDB.getPublicTokens(t,c):t===e.chainIds.arcTestnet?a.arcPublicTokensDB.getPublicTokens(c):e.isTronLike(t)?o.tronPublicTokensDB.getPublicTokens(c,t):e.isTempo(t)?s.tempoPublicTokensDB.getPublicTokens(c,t):r.alchemyPublicTokensDB.getPublicTokens(t,c)}getFetchedTokens(t,c){let l=n.getStateKey(c,t);return this.useAlternativeDB[l]?i.eventsPublicTokensDB.getFetchedTokens(t,c):t===e.chainIds.arcTestnet?a.arcPublicTokensDB.getFetchedTokens(c):e.isTronLike(t)?o.tronPublicTokensDB.getFetchedTokens(c,t):e.isTempo(t)?s.tempoPublicTokensDB.getFetchedTokens(c,t):r.alchemyPublicTokensDB.getFetchedTokens(t,c)}async fetchAndUpdatePublicTokens(c,l){let u=n.getStateKey(c,l);try{l===e.chainIds.arcTestnet?await a.arcPublicTokensDB.fetchAndUpdatePublicTokens(c):e.isTronLike(l)?await o.tronPublicTokensDB.fetchAndUpdatePublicTokens(c,l):e.isTempo(l)?await s.tempoPublicTokensDB.fetchAndUpdatePublicTokens(c,l):await r.alchemyPublicTokensDB.fetchAndUpdatePublicTokens(c,l),this.useAlternativeDB[u]=!1}catch(n){if(t.Logger.error(`error`,n),e.isSolanaLike(l))return;await i.eventsPublicTokensDB.fetchAndUpdatePublicTokens(c,l),this.useAlternativeDB[u]=!0}}},l=new c;exports.PublicTokensDB=c,exports.publicTokensDB=l;
|
|
@@ -1,28 +1,31 @@
|
|
|
1
|
-
import { chainIds as e, isSolanaLike as t } from "../../constants/chains.constants.mjs";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
1
|
+
import { chainIds as e, isSolanaLike as t, isTempo as n, isTronLike as r } from "../../constants/chains.constants.mjs";
|
|
2
|
+
import { Logger as i } from "../../error-handling/logger.mjs";
|
|
3
|
+
import { getStateKey as a } from "../../functions/utils/string.utils.mjs";
|
|
4
|
+
import { alchemyPublicTokensDB as o } from "./AlchemyPublicTokensDB.mjs";
|
|
5
|
+
import { eventsPublicTokensDB as s } from "./EventsPublicTokensDB.mjs";
|
|
6
|
+
import { arcPublicTokensDB as c } from "./ArcPublicTokensDB.mjs";
|
|
7
|
+
import { tronPublicTokensDB as l } from "./TronPublicTokensDB.mjs";
|
|
8
|
+
import { tempoPublicTokensDB as u } from "./TempoPublicTokensDB.mjs";
|
|
6
9
|
//#region libs/shared/common/src/data-structures/TokenDBs/PublicTokensDB.ts
|
|
7
|
-
var
|
|
10
|
+
var d = class {
|
|
8
11
|
useAlternativeDB = {};
|
|
9
|
-
async getPublicTokens(t,
|
|
10
|
-
let
|
|
11
|
-
return t === e.arcTestnet ?
|
|
12
|
+
async getPublicTokens(t, i) {
|
|
13
|
+
let d = a(i, t);
|
|
14
|
+
return this.useAlternativeDB[d] ? s.getPublicTokens(t, i) : t === e.arcTestnet ? c.getPublicTokens(i) : r(t) ? l.getPublicTokens(i, t) : n(t) ? u.getPublicTokens(i, t) : o.getPublicTokens(t, i);
|
|
12
15
|
}
|
|
13
|
-
getFetchedTokens(t,
|
|
14
|
-
let
|
|
15
|
-
return t === e.arcTestnet ?
|
|
16
|
+
getFetchedTokens(t, i) {
|
|
17
|
+
let d = a(i, t);
|
|
18
|
+
return this.useAlternativeDB[d] ? s.getFetchedTokens(t, i) : t === e.arcTestnet ? c.getFetchedTokens(i) : r(t) ? l.getFetchedTokens(i, t) : n(t) ? u.getFetchedTokens(i, t) : o.getFetchedTokens(t, i);
|
|
16
19
|
}
|
|
17
|
-
async fetchAndUpdatePublicTokens(
|
|
18
|
-
let
|
|
20
|
+
async fetchAndUpdatePublicTokens(d, f) {
|
|
21
|
+
let p = a(d, f);
|
|
19
22
|
try {
|
|
20
|
-
|
|
21
|
-
} catch {
|
|
22
|
-
if (t(
|
|
23
|
-
await
|
|
23
|
+
f === e.arcTestnet ? await c.fetchAndUpdatePublicTokens(d) : r(f) ? await l.fetchAndUpdatePublicTokens(d, f) : n(f) ? await u.fetchAndUpdatePublicTokens(d, f) : await o.fetchAndUpdatePublicTokens(d, f), this.useAlternativeDB[p] = !1;
|
|
24
|
+
} catch (e) {
|
|
25
|
+
if (i.error("error", e), t(f)) return;
|
|
26
|
+
await s.fetchAndUpdatePublicTokens(d, f), this.useAlternativeDB[p] = !0;
|
|
24
27
|
}
|
|
25
28
|
}
|
|
26
|
-
},
|
|
29
|
+
}, f = new d();
|
|
27
30
|
//#endregion
|
|
28
|
-
export {
|
|
31
|
+
export { d as PublicTokensDB, f as publicTokensDB };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../types/cache.types.cjs`),t=require(`../../functions/utils/caseInsensitive.utils.cjs`),n=require(`../../API/API.cjs`),r=require(`../../constants/token-data/ERC20Registry.cjs`),i=require(`../../functions/utils/erc20tokenFunctions.cjs`),a=require(`../../functions/utils/string.utils.cjs`),o=require(`./token-visibility-db.cjs`),s=require(`../../functions/utils/publicBalance.utils.cjs`);let c=require(`idb-keyval`);var l=class{fetchedTokens={};async getPublicTokens(t,n){let r=a.getStateKey(t,n);return((await(0,c.get)(e.StorageKeys.TEMPO_PUBLIC_TOKENS))?.[r]||[]).map(e=>i.overlayTokenWithRegistryData(e,n))}getFetchedTokens(e,t){let n=a.getStateKey(e,t);return(this.fetchedTokens[n]||[]).map(e=>i.overlayTokenWithRegistryData(e,t))}async fetchAndUpdatePublicTokens(r,i){let s=a.getStateKey(r,i),l=await this.getHeldTokenAddresses(r,i);if(!l.length)return;let u=(await n.API.tokensInfoCall(i,l)).filter(e=>!!e),d=await o.tokenVisibilityStorage.hideSpamsAndFetchHiddenTokensAddresses(i,u),f=u.filter(e=>!t.lowerCaseIncludes(d,e.erc20TokenAddress));await(0,c.update)(e.StorageKeys.TEMPO_PUBLIC_TOKENS,(e={})=>{let t={...e,[s]:f};return this.fetchedTokens=t,t})}async getHeldTokenAddresses(e,t){let n=r.getERC20Registry(t),i=await Promise.all(n.map(async n=>{let r=await s.getPublicBalanceByTokenAddress(t,e,n.erc20TokenAddress);return r&&r>0n?n.erc20TokenAddress:null}));return Array.from(new Set(i.filter(e=>!!e)))}},u=new l;exports.TempoPublicTokensDB=l,exports.tempoPublicTokensDB=u;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ERC20Token } from '../../types/token.types';
|
|
2
|
+
export declare class TempoPublicTokensDB {
|
|
3
|
+
private fetchedTokens;
|
|
4
|
+
getPublicTokens(walletAddress: string, chainId: number): Promise<ERC20Token[]>;
|
|
5
|
+
getFetchedTokens(walletAddress: string, chainId: number): ERC20Token[];
|
|
6
|
+
fetchAndUpdatePublicTokens(walletAddress: string, chainId: number): Promise<void>;
|
|
7
|
+
private getHeldTokenAddresses;
|
|
8
|
+
}
|
|
9
|
+
export declare const tempoPublicTokensDB: TempoPublicTokensDB;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { StorageKeys as e } from "../../types/cache.types.mjs";
|
|
2
|
+
import { lowerCaseIncludes as t } from "../../functions/utils/caseInsensitive.utils.mjs";
|
|
3
|
+
import { API as n } from "../../API/API.mjs";
|
|
4
|
+
import { getERC20Registry as r } from "../../constants/token-data/ERC20Registry.mjs";
|
|
5
|
+
import { overlayTokenWithRegistryData as i } from "../../functions/utils/erc20tokenFunctions.mjs";
|
|
6
|
+
import { getStateKey as a } from "../../functions/utils/string.utils.mjs";
|
|
7
|
+
import { tokenVisibilityStorage as o } from "./token-visibility-db.mjs";
|
|
8
|
+
import { getPublicBalanceByTokenAddress as s } from "../../functions/utils/publicBalance.utils.mjs";
|
|
9
|
+
import { get as c, update as l } from "idb-keyval";
|
|
10
|
+
//#region libs/shared/common/src/data-structures/TokenDBs/TempoPublicTokensDB.ts
|
|
11
|
+
var u = class {
|
|
12
|
+
fetchedTokens = {};
|
|
13
|
+
async getPublicTokens(t, n) {
|
|
14
|
+
let r = a(t, n);
|
|
15
|
+
return ((await c(e.TEMPO_PUBLIC_TOKENS))?.[r] || []).map((e) => i(e, n));
|
|
16
|
+
}
|
|
17
|
+
getFetchedTokens(e, t) {
|
|
18
|
+
let n = a(e, t);
|
|
19
|
+
return (this.fetchedTokens[n] || []).map((e) => i(e, t));
|
|
20
|
+
}
|
|
21
|
+
async fetchAndUpdatePublicTokens(r, i) {
|
|
22
|
+
let s = a(r, i), c = await this.getHeldTokenAddresses(r, i);
|
|
23
|
+
if (!c.length) return;
|
|
24
|
+
let u = (await n.tokensInfoCall(i, c)).filter((e) => !!e), d = await o.hideSpamsAndFetchHiddenTokensAddresses(i, u), f = u.filter((e) => !t(d, e.erc20TokenAddress));
|
|
25
|
+
await l(e.TEMPO_PUBLIC_TOKENS, (e = {}) => {
|
|
26
|
+
let t = {
|
|
27
|
+
...e,
|
|
28
|
+
[s]: f
|
|
29
|
+
};
|
|
30
|
+
return this.fetchedTokens = t, t;
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
async getHeldTokenAddresses(e, t) {
|
|
34
|
+
let n = r(t), i = await Promise.all(n.map(async (n) => {
|
|
35
|
+
let r = await s(t, e, n.erc20TokenAddress);
|
|
36
|
+
return r && r > 0n ? n.erc20TokenAddress : null;
|
|
37
|
+
}));
|
|
38
|
+
return Array.from(new Set(i.filter((e) => !!e)));
|
|
39
|
+
}
|
|
40
|
+
}, d = new u();
|
|
41
|
+
//#endregion
|
|
42
|
+
export { u as TempoPublicTokensDB, d as tempoPublicTokensDB };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/protocol.constants.cjs`),t=require(`../../types/cache.types.cjs`),n=require(`../http/HttpClient.cjs`);require(`../http/index.cjs`);const r=require(`../../functions/utils/caseInsensitive.utils.cjs`),i=require(`../../API/API.cjs`),a=require(`../../functions/utils/erc20tokenFunctions.cjs`),o=require(`../../functions/utils/tron.utils.cjs`),s=require(`../../functions/utils/string.utils.cjs`),c=require(`./token-visibility-db.cjs`);let l=require(`idb-keyval`);var u=class{fetchedTokens={};async getPublicTokens(e,n){let r=s.getStateKey(e,n);return((await(0,l.get)(t.StorageKeys.TRON_PUBLIC_TOKENS))?.[r]||[]).map(e=>a.overlayTokenWithRegistryData(e,n))}getFetchedTokens(e,t){let n=s.getStateKey(e,t);return(this.fetchedTokens[n]||[]).map(e=>a.overlayTokenWithRegistryData(e,t))}async fetchAndUpdatePublicTokens(e,n){let a=s.getStateKey(e,n),o=await this.getHeldTokenAddresses(e,n);if(!o.length)return;let u=(await i.API.tokensInfoCall(n,o)).filter(e=>!!e),d=await c.tokenVisibilityStorage.hideSpamsAndFetchHiddenTokensAddresses(n,u),f=u.filter(e=>!r.lowerCaseIncludes(d,e.erc20TokenAddress));await(0,l.update)(t.StorageKeys.TRON_PUBLIC_TOKENS,(e={})=>{let t={...e,[a]:f};return this.fetchedTokens=t,t})}async getHeldTokenAddresses(t,r){let i=o.toTronBase58IfHex(t),a=`${o.getTronWalletRpcUrl(r)}/v1/accounts/${i}`,s=(await n.httpClient.get(a))?.data?.[0];if(!s)return[];let c=[];return s.balance&&s.balance>0&&c.push(e.zeroAddress),(s.trc20??[]).forEach(e=>{Object.entries(e).forEach(([e,t])=>{BigInt(t)>0n&&c.push(o.addressToHexFormat(e))})}),Array.from(new Set(c))}},d=new u;exports.TronPublicTokensDB=u,exports.tronPublicTokensDB=d;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ERC20Token } from '../../types/token.types';
|
|
2
|
+
export declare class TronPublicTokensDB {
|
|
3
|
+
private fetchedTokens;
|
|
4
|
+
getPublicTokens(walletAddress: string, chainId: number): Promise<ERC20Token[]>;
|
|
5
|
+
getFetchedTokens(walletAddress: string, chainId: number): ERC20Token[];
|
|
6
|
+
fetchAndUpdatePublicTokens(walletAddress: string, chainId: number): Promise<void>;
|
|
7
|
+
private getHeldTokenAddresses;
|
|
8
|
+
}
|
|
9
|
+
export declare const tronPublicTokensDB: TronPublicTokensDB;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { zeroAddress as e } from "../../constants/protocol.constants.mjs";
|
|
2
|
+
import { StorageKeys as t } from "../../types/cache.types.mjs";
|
|
3
|
+
import { httpClient as n } from "../http/HttpClient.mjs";
|
|
4
|
+
import "../http/index.mjs";
|
|
5
|
+
import { lowerCaseIncludes as r } from "../../functions/utils/caseInsensitive.utils.mjs";
|
|
6
|
+
import { API as i } from "../../API/API.mjs";
|
|
7
|
+
import { overlayTokenWithRegistryData as a } from "../../functions/utils/erc20tokenFunctions.mjs";
|
|
8
|
+
import { addressToHexFormat as o, getTronWalletRpcUrl as s, toTronBase58IfHex as c } from "../../functions/utils/tron.utils.mjs";
|
|
9
|
+
import { getStateKey as l } from "../../functions/utils/string.utils.mjs";
|
|
10
|
+
import { tokenVisibilityStorage as u } from "./token-visibility-db.mjs";
|
|
11
|
+
import { get as d, update as f } from "idb-keyval";
|
|
12
|
+
//#region libs/shared/common/src/data-structures/TokenDBs/TronPublicTokensDB.ts
|
|
13
|
+
var p = class {
|
|
14
|
+
fetchedTokens = {};
|
|
15
|
+
async getPublicTokens(e, n) {
|
|
16
|
+
let r = l(e, n);
|
|
17
|
+
return ((await d(t.TRON_PUBLIC_TOKENS))?.[r] || []).map((e) => a(e, n));
|
|
18
|
+
}
|
|
19
|
+
getFetchedTokens(e, t) {
|
|
20
|
+
let n = l(e, t);
|
|
21
|
+
return (this.fetchedTokens[n] || []).map((e) => a(e, t));
|
|
22
|
+
}
|
|
23
|
+
async fetchAndUpdatePublicTokens(e, n) {
|
|
24
|
+
let a = l(e, n), o = await this.getHeldTokenAddresses(e, n);
|
|
25
|
+
if (!o.length) return;
|
|
26
|
+
let s = (await i.tokensInfoCall(n, o)).filter((e) => !!e), c = await u.hideSpamsAndFetchHiddenTokensAddresses(n, s), d = s.filter((e) => !r(c, e.erc20TokenAddress));
|
|
27
|
+
await f(t.TRON_PUBLIC_TOKENS, (e = {}) => {
|
|
28
|
+
let t = {
|
|
29
|
+
...e,
|
|
30
|
+
[a]: d
|
|
31
|
+
};
|
|
32
|
+
return this.fetchedTokens = t, t;
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
async getHeldTokenAddresses(t, r) {
|
|
36
|
+
let i = c(t), a = `${s(r)}/v1/accounts/${i}`, l = (await n.get(a))?.data?.[0];
|
|
37
|
+
if (!l) return [];
|
|
38
|
+
let u = [];
|
|
39
|
+
return l.balance && l.balance > 0 && u.push(e), (l.trc20 ?? []).forEach((e) => {
|
|
40
|
+
Object.entries(e).forEach(([e, t]) => {
|
|
41
|
+
BigInt(t) > 0n && u.push(o(e));
|
|
42
|
+
});
|
|
43
|
+
}), Array.from(new Set(u));
|
|
44
|
+
}
|
|
45
|
+
}, m = new p();
|
|
46
|
+
//#endregion
|
|
47
|
+
export { p as TronPublicTokensDB, m as tronPublicTokensDB };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`./token-visibility-db.cjs`),require(`./PrivateTokensDB.cjs`),require(`./ArcPublicTokensDB.cjs`),require(`./PublicTokensDB.cjs`);
|
|
1
|
+
require(`./token-visibility-db.cjs`),require(`./PrivateTokensDB.cjs`),require(`./ArcPublicTokensDB.cjs`),require(`./TronPublicTokensDB.cjs`),require(`./TempoPublicTokensDB.cjs`),require(`./PublicTokensDB.cjs`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`./http/BasicHttpClient.cjs`),require(`./http/HttpClient.cjs`),require(`./http/index.cjs`),require(`./custom-token-registry/CustomTokenRegistry.cjs`),require(`./ValueCache/ValueCache.cjs`),require(`./crypto-keys/keyUtils.cjs`),require(`./crypto-keys/keys.cjs`),require(`./utxo/Utxo.cjs`),require(`./crypto-keys/decodeUTXO.cjs`),require(`./crypto-keys/encryptDecryptUtxo.cjs`),require(`./crypto-keys/index.cjs`),require(`./TokenDBs/token-visibility-db.cjs`),require(`./TokenDBs/PrivateTokensDB.cjs`),require(`./token-price-fetcher/TokenChecker.cjs`),require(`./AccountActions/AccountActions.cjs`),require(`./cacheDevices/FileCacheDevice.cjs`),require(`./cacheDevices/LocalStorageCacheDevice.cjs`),require(`./cacheDevices/index.cjs`),require(`./Hinkal/hinkalDeposit.cjs`),require(`./Hinkal/prepareDepositOnChainUtxosZkProof.cjs`),require(`./Hinkal/hinkalDepositAndWithdraw.cjs`),require(`./Hinkal/hinkalSwap.cjs`),require(`./Hinkal/hinkalWithdraw.cjs`),require(`./merkle-tree/MerkleTreeIncompleteError.cjs`),require(`./merkle-tree/MerkleTree.cjs`),require(`./merkle-tree/index.cjs`),require(`./event-service/evm/AbstractEventService.cjs`),require(`./event-service/evm/AbstractSnapshotService.cjs`),require(`./event-service/evm/AbstractCommitmentsSnapshotService.cjs`),require(`./event-service/evm/AbstractNullifierSnapshotService.cjs`),require(`./BlockchainEvent/BlockchainEvent.cjs`),require(`./event-service/evm/BlockchainEventEmitter.cjs`),require(`./event-service/evm/PollingBlockchainEventEmitter.cjs`),require(`./event-service/evm/ClientBlockchainEventEmitter.cjs`),require(`./event-service/solana/SolanaBlockchainEventEmitter.cjs`),require(`./event-service/solana/ClientSolanaBlockchainEventEmitter.cjs`),require(`./event-service/solana/PollingSolanaBlockchainEventEmitter.cjs`),require(`./event-service/solana/AbstractSolanaEventService.cjs`),require(`./event-service/solana/AbstractSolanaSnapshotService.cjs`),require(`./event-service/solana/AbstractSolanaNullifierSnapshotService.cjs`),require(`./event-service/solana/AbstractSolanaCommitmentsSnapshotService.cjs`),require(`./event-service/index.cjs`),require(`./snapshot/SnapshotFetcherService.cjs`),require(`./snapshot/solana-snapshots/ClientSolanaCommitmentsSnapshotService.cjs`),require(`./snapshot/solana-snapshots/ClientSolanaNullifierSnapshotService.cjs`),require(`./snapshot/evm-snapshots/ClientCommitmentsSnapshotService.cjs`),require(`./snapshot/evm-snapshots/ClientNullifierSnapshotService.cjs`),require(`./snapshot/index.cjs`),require(`./Hinkal/resetMerkleTrees.cjs`),require(`./MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.cjs`),require(`./IndexedDB/activity-db.cjs`),require(`./IndexedDB/balances-db.cjs`),require(`./IndexedDB/private-balances-db.cjs`),require(`./IndexedDB/prices-db.cjs`),require(`./IndexedDB/contact-db.cjs`),require(`./IndexedDB/signatures-db.cjs`),require(`./IndexedDB/pay-activity-db.cjs`),require(`./IndexedDB/index.cjs`),require(`./Hinkal/hinkalPrivateWallet.cjs`),require(`./AccountActions/index.cjs`),require(`./TokenDBs/ArcPublicTokensDB.cjs`),require(`./TokenDBs/PublicTokensDB.cjs`),require(`./TokenDBs/index.cjs`),require(`./Hinkal/hinkalProxySwap.cjs`),require(`./Hinkal/hinkalTransfer.cjs`),require(`./Hinkal/hinkalSolanaDepositAndWithdraw.cjs`),require(`./Hinkal/hinkalSolanaTransfer.cjs`),require(`./Hinkal/hinkalSolanaProxySend.cjs`),require(`./Hinkal/hinkalSolanaProxySwap.cjs`),require(`./Hinkal/hinkalSolanaProxyShield.cjs`),require(`./Hinkal/hinkalNearDepositAndBridge.cjs`),require(`./Hinkal/hinkalClaimUtxo.cjs`),require(`./Hinkal/hinkalSolanaProoflessDeposit.cjs`),require(`./Hinkal/hinkalSolanaClaimUtxo.cjs`),require(`./Hinkal/hinkalWithdrawStuckUtxos.cjs`),require(`./Hinkal/Hinkal.cjs`),require(`./Hinkal/hinkalPalSolanaDepositPrepare.cjs`),require(`./Hinkal/hinkalPalEvmDeposit.cjs`),require(`./Hinkal/hinkalPalTronDepositPrepare.cjs`),require(`./Hinkal/index.cjs`),require(`./token-price-fetcher/index.cjs`),require(`./transactions-manager/history/history.types.cjs`),require(`./presale/PresaleContractWrapper.cjs`),require(`./presale/index.cjs`),require(`./ApprovalDBs/EventsPublicApprovalsDB.cjs`),require(`./ApprovalDBs/index.cjs`),require(`./WalletManager/WalletManager.cjs`),require(`./WalletManager/index.cjs`);
|
|
1
|
+
require(`./http/BasicHttpClient.cjs`),require(`./http/HttpClient.cjs`),require(`./http/index.cjs`),require(`./custom-token-registry/CustomTokenRegistry.cjs`),require(`./ValueCache/ValueCache.cjs`),require(`./crypto-keys/keyUtils.cjs`),require(`./crypto-keys/keys.cjs`),require(`./utxo/Utxo.cjs`),require(`./crypto-keys/decodeUTXO.cjs`),require(`./crypto-keys/encryptDecryptUtxo.cjs`),require(`./crypto-keys/index.cjs`),require(`./TokenDBs/token-visibility-db.cjs`),require(`./TokenDBs/PrivateTokensDB.cjs`),require(`./token-price-fetcher/TokenChecker.cjs`),require(`./AccountActions/AccountActions.cjs`),require(`./cacheDevices/FileCacheDevice.cjs`),require(`./cacheDevices/LocalStorageCacheDevice.cjs`),require(`./cacheDevices/index.cjs`),require(`./Hinkal/hinkalDeposit.cjs`),require(`./Hinkal/prepareDepositOnChainUtxosZkProof.cjs`),require(`./Hinkal/hinkalDepositAndWithdraw.cjs`),require(`./Hinkal/hinkalSwap.cjs`),require(`./Hinkal/hinkalWithdraw.cjs`),require(`./merkle-tree/MerkleTreeIncompleteError.cjs`),require(`./merkle-tree/MerkleTree.cjs`),require(`./merkle-tree/index.cjs`),require(`./event-service/evm/AbstractEventService.cjs`),require(`./event-service/evm/AbstractSnapshotService.cjs`),require(`./event-service/evm/AbstractCommitmentsSnapshotService.cjs`),require(`./event-service/evm/AbstractNullifierSnapshotService.cjs`),require(`./BlockchainEvent/BlockchainEvent.cjs`),require(`./event-service/evm/BlockchainEventEmitter.cjs`),require(`./event-service/evm/PollingBlockchainEventEmitter.cjs`),require(`./event-service/evm/ClientBlockchainEventEmitter.cjs`),require(`./event-service/solana/SolanaBlockchainEventEmitter.cjs`),require(`./event-service/solana/ClientSolanaBlockchainEventEmitter.cjs`),require(`./event-service/solana/PollingSolanaBlockchainEventEmitter.cjs`),require(`./event-service/solana/AbstractSolanaEventService.cjs`),require(`./event-service/solana/AbstractSolanaSnapshotService.cjs`),require(`./event-service/solana/AbstractSolanaNullifierSnapshotService.cjs`),require(`./event-service/solana/AbstractSolanaCommitmentsSnapshotService.cjs`),require(`./event-service/index.cjs`),require(`./snapshot/SnapshotFetcherService.cjs`),require(`./snapshot/solana-snapshots/ClientSolanaCommitmentsSnapshotService.cjs`),require(`./snapshot/solana-snapshots/ClientSolanaNullifierSnapshotService.cjs`),require(`./snapshot/evm-snapshots/ClientCommitmentsSnapshotService.cjs`),require(`./snapshot/evm-snapshots/ClientNullifierSnapshotService.cjs`),require(`./snapshot/index.cjs`),require(`./Hinkal/resetMerkleTrees.cjs`),require(`./MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.cjs`),require(`./IndexedDB/activity-db.cjs`),require(`./IndexedDB/balances-db.cjs`),require(`./IndexedDB/private-balances-db.cjs`),require(`./IndexedDB/prices-db.cjs`),require(`./IndexedDB/contact-db.cjs`),require(`./IndexedDB/signatures-db.cjs`),require(`./IndexedDB/pay-activity-db.cjs`),require(`./IndexedDB/index.cjs`),require(`./Hinkal/hinkalPrivateWallet.cjs`),require(`./AccountActions/index.cjs`),require(`./TokenDBs/ArcPublicTokensDB.cjs`),require(`./TokenDBs/TronPublicTokensDB.cjs`),require(`./TokenDBs/TempoPublicTokensDB.cjs`),require(`./TokenDBs/PublicTokensDB.cjs`),require(`./TokenDBs/index.cjs`),require(`./Hinkal/hinkalProxySwap.cjs`),require(`./Hinkal/hinkalTransfer.cjs`),require(`./Hinkal/hinkalSolanaDepositAndWithdraw.cjs`),require(`./Hinkal/hinkalSolanaTransfer.cjs`),require(`./Hinkal/hinkalSolanaProxySend.cjs`),require(`./Hinkal/hinkalSolanaProxySwap.cjs`),require(`./Hinkal/hinkalSolanaProxyShield.cjs`),require(`./Hinkal/hinkalNearDepositAndBridge.cjs`),require(`./Hinkal/hinkalClaimUtxo.cjs`),require(`./Hinkal/hinkalSolanaProoflessDeposit.cjs`),require(`./Hinkal/hinkalSolanaClaimUtxo.cjs`),require(`./Hinkal/hinkalWithdrawStuckUtxos.cjs`),require(`./Hinkal/Hinkal.cjs`),require(`./Hinkal/hinkalPalSolanaDepositPrepare.cjs`),require(`./Hinkal/hinkalPalEvmDeposit.cjs`),require(`./Hinkal/hinkalPalTronDepositPrepare.cjs`),require(`./Hinkal/index.cjs`),require(`./token-price-fetcher/index.cjs`),require(`./transactions-manager/history/history.types.cjs`),require(`./presale/PresaleContractWrapper.cjs`),require(`./presale/index.cjs`),require(`./ApprovalDBs/EventsPublicApprovalsDB.cjs`),require(`./ApprovalDBs/index.cjs`),require(`./WalletManager/WalletManager.cjs`),require(`./WalletManager/index.cjs`);
|
|
@@ -59,6 +59,8 @@ import "./IndexedDB/index.mjs";
|
|
|
59
59
|
import "./Hinkal/hinkalPrivateWallet.mjs";
|
|
60
60
|
import "./AccountActions/index.mjs";
|
|
61
61
|
import "./TokenDBs/ArcPublicTokensDB.mjs";
|
|
62
|
+
import "./TokenDBs/TronPublicTokensDB.mjs";
|
|
63
|
+
import "./TokenDBs/TempoPublicTokensDB.mjs";
|
|
62
64
|
import "./TokenDBs/PublicTokensDB.mjs";
|
|
63
65
|
import "./TokenDBs/index.mjs";
|
|
64
66
|
import "./Hinkal/hinkalProxySwap.mjs";
|