@sabaaa1/common 0.1.6 → 0.1.14
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 +16 -12
- package/API/API.mjs +73 -69
- package/API/accessCodeCalls.cjs +1 -0
- package/API/accessCodeCalls.d.ts +23 -0
- package/API/accessCodeCalls.mjs +23 -0
- package/API/admin-calls.cjs +1 -1
- package/API/admin-calls.mjs +5 -7
- package/API/ai-calls.cjs +1 -1
- package/API/ai-calls.mjs +11 -10
- package/API/brotherhoodCalls.cjs +1 -1
- package/API/brotherhoodCalls.mjs +43 -69
- package/API/callLifiAPI.cjs +1 -1
- package/API/callLifiAPI.mjs +8 -7
- package/API/callOdosAPI.cjs +1 -1
- package/API/callOdosAPI.mjs +16 -16
- package/API/callOkxAPI.cjs +1 -0
- package/API/callOkxAPI.d.ts +10 -0
- package/API/callOkxAPI.mjs +13 -0
- package/API/callOneInchAPI.cjs +1 -1
- package/API/callOneInchAPI.mjs +8 -7
- package/API/callRelayer.cjs +1 -1
- package/API/callRelayer.d.ts +11 -0
- package/API/callRelayer.mjs +15 -7
- package/API/checkRisk.cjs +1 -1
- package/API/checkRisk.mjs +5 -4
- package/API/duneAPI.cjs +1 -1
- package/API/duneAPI.mjs +2 -3
- package/API/enclaveCalls.cjs +1 -1
- package/API/enclaveCalls.mjs +9 -11
- package/API/fetchCommitmentsCache.cjs +1 -1
- package/API/fetchCommitmentsCache.d.ts +2 -2
- package/API/fetchCommitmentsCache.mjs +13 -10
- package/API/generate-trading-points.cjs +1 -1
- package/API/generate-trading-points.mjs +34 -39
- package/API/get-token-data.cjs +1 -1
- package/API/get-token-data.mjs +5 -4
- package/API/getBridgeProtocols.cjs +1 -1
- package/API/getBridgeProtocols.mjs +4 -3
- package/API/getGasEstimates.cjs +1 -1
- package/API/getGasEstimates.d.ts +2 -1
- package/API/getGasEstimates.mjs +14 -16
- package/API/getLifiStatus.cjs +1 -1
- package/API/getLifiStatus.mjs +11 -10
- package/API/getRelayerURL.cjs +1 -1
- package/API/getRelayerURL.mjs +4 -4
- package/API/getServerURL.cjs +1 -1
- package/API/getServerURL.mjs +42 -36
- package/API/getTokenPrice.cjs +1 -1
- package/API/getTokenPrice.d.ts +0 -11
- package/API/getTokenPrice.mjs +8 -23
- package/API/getWebsiteURL.cjs +1 -1
- package/API/getWebsiteURL.d.ts +1 -1
- package/API/getWebsiteURL.mjs +6 -7
- package/API/index.d.ts +2 -1
- package/API/is-tx-stateless.cjs +1 -1
- package/API/is-tx-stateless.mjs +17 -22
- package/API/kycCalls.cjs +1 -1
- package/API/kycCalls.d.ts +2 -2
- package/API/kycCalls.mjs +31 -30
- package/API/leaderboardCalls.cjs +1 -1
- package/API/leaderboardCalls.mjs +11 -16
- package/API/proxyAccountsCalls.cjs +1 -1
- package/API/proxyAccountsCalls.mjs +19 -18
- package/API/referralsCalls.cjs +1 -1
- package/API/referralsCalls.mjs +16 -24
- package/API/relayCalls.cjs +1 -1
- package/API/relayCalls.mjs +6 -8
- package/API/resolve-sns.cjs +1 -0
- package/API/resolve-sns.d.ts +1 -0
- package/API/resolve-sns.mjs +12 -0
- package/API/restoreSnapshots.cjs +1 -1
- package/API/restoreSnapshots.mjs +5 -5
- package/API/rewardsUserCalls.cjs +1 -1
- package/API/rewardsUserCalls.mjs +37 -54
- package/API/seedless-calls.cjs +1 -0
- package/API/seedless-calls.d.ts +53 -0
- package/API/seedless-calls.mjs +12 -0
- package/API/send-telegram-callback.cjs +1 -1
- package/API/send-telegram-callback.mjs +9 -11
- package/API/simulate-batch-tx.cjs +1 -1
- package/API/simulate-batch-tx.mjs +11 -13
- package/API/solana-calls.cjs +1 -0
- package/API/solana-calls.d.ts +34 -0
- package/API/solana-calls.mjs +19 -0
- package/API/tenderly.api.cjs +1 -1
- package/API/tenderly.api.mjs +48 -59
- package/API/token-calls.cjs +1 -1
- package/API/token-calls.mjs +11 -13
- package/API/weeklyAnalyticCalls.cjs +1 -1
- package/API/weeklyAnalyticCalls.mjs +9 -14
- package/README.md +164 -0
- package/_virtual/_commonjsHelpers.cjs +1 -0
- package/_virtual/_commonjsHelpers.mjs +30 -0
- package/_virtual/bn.cjs +1 -0
- package/_virtual/bn.mjs +4 -0
- package/_virtual/bn2.cjs +1 -0
- package/_virtual/bn2.mjs +4 -0
- package/_virtual/common.cjs +1 -0
- package/_virtual/common.mjs +4 -0
- package/_virtual/common2.cjs +1 -0
- package/_virtual/common2.mjs +4 -0
- package/_virtual/hash.cjs +1 -0
- package/_virtual/hash.mjs +4 -0
- package/_virtual/index.cjs +1 -0
- package/_virtual/index.mjs +6 -0
- package/_virtual/index10.cjs +1 -0
- package/_virtual/index10.mjs +6 -0
- package/_virtual/index11.cjs +1 -0
- package/_virtual/index11.mjs +6 -0
- package/_virtual/index12.cjs +1 -0
- package/_virtual/index12.mjs +6 -0
- package/_virtual/index13.cjs +1 -0
- package/_virtual/index13.mjs +6 -0
- package/_virtual/index14.cjs +1 -0
- package/_virtual/index14.mjs +6 -0
- package/_virtual/index15.cjs +1 -0
- package/_virtual/index15.mjs +6 -0
- package/_virtual/index16.cjs +1 -0
- package/_virtual/index16.mjs +6 -0
- package/_virtual/index17.cjs +1 -0
- package/_virtual/index17.mjs +6 -0
- package/_virtual/index18.cjs +1 -0
- package/_virtual/index18.mjs +6 -0
- package/_virtual/index19.cjs +1 -0
- package/_virtual/index19.mjs +6 -0
- package/_virtual/index2.cjs +1 -0
- package/_virtual/index2.mjs +6 -0
- package/_virtual/index20.cjs +1 -0
- package/_virtual/index20.mjs +6 -0
- package/_virtual/index21.cjs +1 -0
- package/_virtual/index21.mjs +6 -0
- package/_virtual/index22.cjs +1 -0
- package/_virtual/index22.mjs +4 -0
- package/_virtual/index3.cjs +1 -0
- package/_virtual/index3.mjs +6 -0
- package/_virtual/index4.cjs +1 -0
- package/_virtual/index4.mjs +6 -0
- package/_virtual/index5.cjs +1 -0
- package/_virtual/index5.mjs +6 -0
- package/_virtual/index6.cjs +1 -0
- package/_virtual/index6.mjs +6 -0
- package/_virtual/index7.cjs +1 -0
- package/_virtual/index7.mjs +6 -0
- package/_virtual/index8.cjs +1 -0
- package/_virtual/index8.mjs +6 -0
- package/_virtual/index9.cjs +1 -0
- package/_virtual/index9.mjs +6 -0
- package/_virtual/inherits_browser.cjs +1 -0
- package/_virtual/inherits_browser.mjs +4 -0
- package/_virtual/ripemd.cjs +1 -0
- package/_virtual/ripemd.mjs +4 -0
- package/_virtual/scrypt.cjs +1 -0
- package/_virtual/scrypt.mjs +4 -0
- package/_virtual/sha.cjs +1 -0
- package/_virtual/sha.mjs +4 -0
- package/_virtual/sha3.cjs +1 -0
- package/_virtual/sha3.mjs +4 -0
- package/_virtual/utils.cjs +1 -0
- package/_virtual/utils.mjs +4 -0
- package/_virtual/utils2.cjs +1 -0
- package/_virtual/utils2.mjs +4 -0
- package/constants/backend.constants.cjs +1 -1
- package/constants/backend.constants.d.ts +2 -1
- package/constants/backend.constants.mjs +5 -7
- package/constants/chains.constants.cjs +1 -1
- package/constants/chains.constants.d.ts +5 -0
- package/constants/chains.constants.mjs +63 -35
- package/constants/coingecko.constants.cjs +1 -1
- package/constants/coingecko.constants.d.ts +1 -1
- package/constants/coingecko.constants.mjs +18 -11
- package/constants/contracts.constants.cjs +1 -1
- package/constants/contracts.constants.mjs +19 -15
- package/constants/deploy-data/deploy-data-arbMainnet.json.cjs +1 -1
- package/constants/deploy-data/deploy-data-arbMainnet.json.mjs +1218 -8
- package/constants/deploy-data/deploy-data-arcTestnet.json.cjs +1 -1
- package/constants/deploy-data/deploy-data-arcTestnet.json.mjs +1214 -4
- package/constants/deploy-data/deploy-data-base.json.cjs +1 -1
- package/constants/deploy-data/deploy-data-base.json.mjs +1218 -8
- package/constants/deploy-data/deploy-data-ethMainnet.json.cjs +1 -1
- package/constants/deploy-data/deploy-data-ethMainnet.json.mjs +1213 -3
- package/constants/deploy-data/deploy-data-optimism.json.cjs +1 -1
- package/constants/deploy-data/deploy-data-optimism.json.mjs +1218 -8
- package/constants/deploy-data/deploy-data-polygon.json.cjs +1 -1
- package/constants/deploy-data/deploy-data-polygon.json.mjs +1218 -8
- package/constants/deploy-data/deploy-data-solana.json.cjs +1 -0
- package/constants/deploy-data/deploy-data-solana.json.mjs +6111 -0
- package/constants/deploy-data/index.d.ts +2 -1
- package/constants/index.d.ts +1 -1
- package/constants/mediaUrls.constants.cjs +1 -1
- package/constants/mediaUrls.constants.d.ts +9 -0
- package/constants/mediaUrls.constants.mjs +13 -4
- package/constants/okx.constants.cjs +1 -0
- package/constants/okx.constants.d.ts +2 -0
- package/constants/okx.constants.mjs +5 -0
- package/constants/protocol.constants.cjs +1 -1
- package/constants/protocol.constants.d.ts +12 -1
- package/constants/protocol.constants.mjs +37 -29
- package/constants/save-depths.cjs +1 -1
- package/constants/save-depths.mjs +4 -1
- package/constants/server.constants.cjs +1 -1
- package/constants/server.constants.d.ts +23 -10
- package/constants/server.constants.mjs +102 -89
- package/constants/token-data/ERC20Registry.cjs +1 -1
- package/constants/token-data/ERC20Registry.mjs +49 -35
- package/constants/token-data/index.cjs +1 -1
- package/constants/token-data/index.d.ts +17 -1
- package/constants/token-data/index.mjs +29 -25
- package/constants/token-data/solanaLocalnetRegistry.json.cjs +1 -0
- package/constants/token-data/solanaLocalnetRegistry.json.mjs +24 -0
- package/constants/token-data/solanaMainnetRegistry.json.cjs +1 -0
- package/constants/token-data/solanaMainnetRegistry.json.mjs +560 -0
- package/data-structures/ApprovalDBs/EventsPublicApprovalsDB.cjs +1 -1
- package/data-structures/ApprovalDBs/EventsPublicApprovalsDB.mjs +41 -41
- package/data-structures/Hinkal/Hinkal.cjs +1 -1
- package/data-structures/Hinkal/Hinkal.d.ts +19 -10
- package/data-structures/Hinkal/Hinkal.mjs +290 -125
- package/data-structures/Hinkal/IHinkal.d.ts +18 -11
- package/data-structures/Hinkal/handleAutoDepositBack.cjs +1 -1
- package/data-structures/Hinkal/handleAutoDepositBack.mjs +36 -32
- package/data-structures/Hinkal/hinkalActionFundApproveAndTransact.cjs +1 -1
- package/data-structures/Hinkal/hinkalActionFundApproveAndTransact.mjs +24 -23
- package/data-structures/Hinkal/hinkalActionReceive.cjs +1 -1
- package/data-structures/Hinkal/hinkalActionReceive.mjs +13 -12
- package/data-structures/Hinkal/hinkalCheckSolanaTokenRegistry.cjs +1 -0
- package/data-structures/Hinkal/hinkalCheckSolanaTokenRegistry.d.ts +3 -0
- package/data-structures/Hinkal/hinkalCheckSolanaTokenRegistry.mjs +28 -0
- package/data-structures/Hinkal/hinkalCheckTokenRegistry.cjs +1 -1
- package/data-structures/Hinkal/hinkalCheckTokenRegistry.mjs +11 -8
- package/data-structures/Hinkal/hinkalDepositAndWithdraw.cjs +1 -0
- package/data-structures/Hinkal/hinkalDepositAndWithdraw.d.ts +4 -0
- package/data-structures/Hinkal/hinkalDepositAndWithdraw.mjs +167 -0
- package/data-structures/Hinkal/hinkalGetRecipientInfo.cjs +1 -1
- package/data-structures/Hinkal/hinkalGetRecipientInfo.d.ts +1 -1
- package/data-structures/Hinkal/hinkalGetRecipientInfo.mjs +4 -4
- package/data-structures/Hinkal/hinkalMultiSend.cjs +1 -1
- package/data-structures/Hinkal/hinkalMultiSend.mjs +6 -6
- package/data-structures/Hinkal/hinkalPrivateWallet.cjs +1 -1
- package/data-structures/Hinkal/hinkalPrivateWallet.d.ts +2 -2
- package/data-structures/Hinkal/hinkalPrivateWallet.mjs +109 -93
- package/data-structures/Hinkal/hinkalProxySwap.cjs +1 -1
- package/data-structures/Hinkal/hinkalProxySwap.mjs +23 -22
- package/data-structures/Hinkal/hinkalProxyToPrivate.cjs +1 -0
- package/data-structures/Hinkal/hinkalProxyToPrivate.d.ts +6 -0
- package/data-structures/Hinkal/hinkalProxyToPrivate.mjs +45 -0
- package/data-structures/Hinkal/hinkalSignSubAccount.cjs +1 -1
- package/data-structures/Hinkal/hinkalSignSubAccount.mjs +11 -9
- package/data-structures/Hinkal/hinkalSolanaDeposit.cjs +1 -0
- package/data-structures/Hinkal/hinkalSolanaDeposit.d.ts +4 -0
- package/data-structures/Hinkal/hinkalSolanaDeposit.mjs +133 -0
- package/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.cjs +1 -0
- package/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.d.ts +3 -0
- package/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.mjs +216 -0
- package/data-structures/Hinkal/hinkalSolanaProxySend.cjs +1 -0
- package/data-structures/Hinkal/hinkalSolanaProxySend.d.ts +6 -0
- package/data-structures/Hinkal/hinkalSolanaProxySend.mjs +55 -0
- package/data-structures/Hinkal/hinkalSolanaProxyShield.cjs +1 -0
- package/data-structures/Hinkal/hinkalSolanaProxyShield.d.ts +6 -0
- package/data-structures/Hinkal/hinkalSolanaProxyShield.mjs +99 -0
- package/data-structures/Hinkal/hinkalSolanaProxySwap.cjs +1 -0
- package/data-structures/Hinkal/hinkalSolanaProxySwap.d.ts +5 -0
- package/data-structures/Hinkal/hinkalSolanaProxySwap.mjs +96 -0
- package/data-structures/Hinkal/hinkalSolanaSwap.cjs +1 -0
- package/data-structures/Hinkal/hinkalSolanaSwap.d.ts +4 -0
- package/data-structures/Hinkal/hinkalSolanaSwap.mjs +120 -0
- package/data-structures/Hinkal/hinkalSolanaTransfer.cjs +1 -0
- package/data-structures/Hinkal/hinkalSolanaTransfer.d.ts +3 -0
- package/data-structures/Hinkal/hinkalSolanaTransfer.mjs +90 -0
- package/data-structures/Hinkal/hinkalSolanaWithdraw.cjs +1 -0
- package/data-structures/Hinkal/hinkalSolanaWithdraw.d.ts +3 -0
- package/data-structures/Hinkal/hinkalSolanaWithdraw.mjs +106 -0
- package/data-structures/Hinkal/hinkalSwap.cjs +1 -1
- package/data-structures/Hinkal/hinkalSwap.mjs +33 -27
- package/data-structures/Hinkal/hinkalTransfer.cjs +1 -1
- package/data-structures/Hinkal/hinkalTransfer.mjs +20 -14
- package/data-structures/Hinkal/hinkalWithdraw.cjs +1 -1
- package/data-structures/Hinkal/hinkalWithdraw.mjs +15 -9
- package/data-structures/Hinkal/index.d.ts +4 -0
- package/data-structures/Hinkal/resetMerkleTrees.cjs +1 -1
- package/data-structures/Hinkal/resetMerkleTrees.mjs +56 -23
- package/data-structures/IndexedDB/activity-db.cjs +1 -1
- package/data-structures/IndexedDB/activity-db.d.ts +0 -1
- package/data-structures/IndexedDB/activity-db.mjs +86 -86
- package/data-structures/IndexedDB/balances-db.cjs +1 -1
- package/data-structures/IndexedDB/balances-db.mjs +15 -12
- package/data-structures/IndexedDB/contact-db.cjs +1 -1
- package/data-structures/IndexedDB/contact-db.mjs +29 -26
- package/data-structures/IndexedDB/signatures-db.cjs +1 -1
- package/data-structures/IndexedDB/signatures-db.mjs +14 -10
- package/data-structures/MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.cjs +1 -1
- package/data-structures/MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.d.ts +2 -2
- package/data-structures/MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.mjs +32 -31
- package/data-structures/TokenDBs/AlchemyPublicTokensDB.cjs +1 -1
- package/data-structures/TokenDBs/AlchemyPublicTokensDB.d.ts +6 -1
- package/data-structures/TokenDBs/AlchemyPublicTokensDB.mjs +154 -79
- package/data-structures/TokenDBs/EventsPublicTokensDB.cjs +1 -1
- package/data-structures/TokenDBs/EventsPublicTokensDB.mjs +24 -21
- package/data-structures/TokenDBs/PrivateTokensDB.cjs +1 -1
- package/data-structures/TokenDBs/PrivateTokensDB.mjs +39 -34
- package/data-structures/crypto-keys/decodeUTXO.cjs +1 -1
- package/data-structures/crypto-keys/decodeUTXO.d.ts +15 -3
- package/data-structures/crypto-keys/decodeUTXO.mjs +84 -26
- package/data-structures/crypto-keys/encryptDecryptUtxo.cjs +1 -1
- package/data-structures/crypto-keys/encryptDecryptUtxo.mjs +36 -30
- package/data-structures/crypto-keys/keys.cjs +1 -1
- package/data-structures/crypto-keys/keys.d.ts +19 -5
- package/data-structures/crypto-keys/keys.mjs +117 -60
- package/data-structures/event-service/evm/AbstractAccessTokenSnapshotService.cjs +1 -0
- package/data-structures/event-service/{AbstractAccessTokenSnapshotService.d.ts → evm/AbstractAccessTokenSnapshotService.d.ts} +2 -2
- package/data-structures/event-service/{AbstractAccessTokenSnapshotService.mjs → evm/AbstractAccessTokenSnapshotService.mjs} +6 -6
- package/data-structures/event-service/evm/AbstractApprovalsSnapshotService.cjs +1 -0
- package/data-structures/event-service/{AbstractApprovalsSnapshotService.d.ts → evm/AbstractApprovalsSnapshotService.d.ts} +2 -2
- package/data-structures/event-service/{AbstractApprovalsSnapshotService.mjs → evm/AbstractApprovalsSnapshotService.mjs} +2 -2
- package/data-structures/event-service/evm/AbstractCommitmentsSnapshotService.cjs +1 -0
- package/data-structures/event-service/{AbstractCommitmentsSnapshotService.d.ts → evm/AbstractCommitmentsSnapshotService.d.ts} +3 -3
- package/data-structures/event-service/{AbstractCommitmentsSnapshotService.mjs → evm/AbstractCommitmentsSnapshotService.mjs} +24 -21
- package/data-structures/event-service/evm/AbstractEventService.cjs +1 -0
- package/data-structures/event-service/{AbstractEventService.d.ts → evm/AbstractEventService.d.ts} +1 -1
- package/data-structures/event-service/evm/AbstractEventService.mjs +37 -0
- package/data-structures/event-service/{AbstractNullifierSnapshotService.d.ts → evm/AbstractNullifierSnapshotService.d.ts} +1 -1
- package/data-structures/event-service/evm/AbstractSnapshotService.cjs +1 -0
- package/data-structures/event-service/{AbstractSnapshotService.mjs → evm/AbstractSnapshotService.mjs} +1 -1
- package/data-structures/event-service/evm/BlockchainEventEmitter.cjs +1 -0
- package/data-structures/event-service/{BlockchainEventEmitter.d.ts → evm/BlockchainEventEmitter.d.ts} +2 -1
- package/data-structures/event-service/evm/BlockchainEventEmitter.mjs +89 -0
- package/data-structures/event-service/index.d.ts +13 -7
- package/data-structures/event-service/solana/AbstractSolanaAccessTokenSnapshotService.cjs +1 -0
- package/data-structures/event-service/solana/AbstractSolanaAccessTokenSnapshotService.d.ts +34 -0
- package/data-structures/event-service/solana/AbstractSolanaAccessTokenSnapshotService.mjs +87 -0
- package/data-structures/event-service/solana/AbstractSolanaCommitmentsSnapshotService.cjs +1 -0
- package/data-structures/event-service/solana/AbstractSolanaCommitmentsSnapshotService.d.ts +29 -0
- package/data-structures/event-service/solana/AbstractSolanaCommitmentsSnapshotService.mjs +96 -0
- package/data-structures/event-service/solana/AbstractSolanaEventService.cjs +1 -0
- package/data-structures/event-service/solana/AbstractSolanaEventService.d.ts +22 -0
- package/data-structures/event-service/solana/AbstractSolanaEventService.mjs +33 -0
- package/data-structures/event-service/solana/AbstractSolanaNullifierSnapshotService.cjs +1 -0
- package/data-structures/event-service/solana/AbstractSolanaNullifierSnapshotService.d.ts +21 -0
- package/data-structures/event-service/solana/AbstractSolanaNullifierSnapshotService.mjs +49 -0
- package/data-structures/event-service/solana/AbstractSolanaSnapshotService.cjs +1 -0
- package/data-structures/event-service/solana/AbstractSolanaSnapshotService.d.ts +22 -0
- package/data-structures/event-service/solana/AbstractSolanaSnapshotService.mjs +33 -0
- package/data-structures/event-service/solana/SolanaBlockchainEventEmitter.cjs +1 -0
- package/data-structures/event-service/solana/SolanaBlockchainEventEmitter.d.ts +39 -0
- package/data-structures/event-service/solana/SolanaBlockchainEventEmitter.mjs +153 -0
- package/data-structures/http/BasicHttpClient.cjs +1 -0
- package/data-structures/http/BasicHttpClient.d.ts +11 -0
- package/data-structures/http/BasicHttpClient.mjs +25 -0
- package/data-structures/http/HttpClient.cjs +1 -0
- package/data-structures/http/HttpClient.d.ts +10 -0
- package/data-structures/http/HttpClient.mjs +15 -0
- package/data-structures/http/index.d.ts +2 -0
- package/data-structures/index.d.ts +1 -0
- package/data-structures/provider-adapter/IProviderAdapter.d.ts +1 -3
- package/data-structures/snapshot/SnapshotFetcherService.d.ts +1 -1
- package/data-structures/snapshot/evm-snapshots/ClientAccessTokenSnapshotService.cjs +1 -0
- package/data-structures/snapshot/{ClientAccessTokenSnapshotService.d.ts → evm-snapshots/ClientAccessTokenSnapshotService.d.ts} +2 -2
- package/data-structures/snapshot/{ClientAccessTokenSnapshotService.mjs → evm-snapshots/ClientAccessTokenSnapshotService.mjs} +13 -9
- package/data-structures/snapshot/evm-snapshots/ClientApprovalsSnapshotService.cjs +1 -0
- package/data-structures/snapshot/{ClientApprovalsSnapshotService.d.ts → evm-snapshots/ClientApprovalsSnapshotService.d.ts} +2 -3
- package/data-structures/snapshot/evm-snapshots/ClientApprovalsSnapshotService.mjs +43 -0
- package/data-structures/snapshot/evm-snapshots/ClientCommitmentsSnapshotService.cjs +1 -0
- package/data-structures/snapshot/{ClientCommitmentsSnapshotService.d.ts → evm-snapshots/ClientCommitmentsSnapshotService.d.ts} +2 -2
- package/data-structures/snapshot/evm-snapshots/ClientCommitmentsSnapshotService.mjs +35 -0
- package/data-structures/snapshot/evm-snapshots/ClientNullifierSnapshotService.cjs +1 -0
- package/data-structures/snapshot/{ClientNullifierSnapshotService.d.ts → evm-snapshots/ClientNullifierSnapshotService.d.ts} +2 -2
- package/data-structures/snapshot/evm-snapshots/ClientNullifierSnapshotService.mjs +34 -0
- package/data-structures/snapshot/index.d.ts +7 -0
- package/data-structures/snapshot/solana-snapshots/ClientSolanaAccessTokenSnapshotService.cjs +1 -0
- package/data-structures/snapshot/solana-snapshots/ClientSolanaAccessTokenSnapshotService.d.ts +8 -0
- package/data-structures/snapshot/solana-snapshots/ClientSolanaAccessTokenSnapshotService.mjs +42 -0
- package/data-structures/snapshot/solana-snapshots/ClientSolanaCommitmentsSnapshotService.cjs +1 -0
- package/data-structures/snapshot/solana-snapshots/ClientSolanaCommitmentsSnapshotService.d.ts +8 -0
- package/data-structures/snapshot/solana-snapshots/ClientSolanaCommitmentsSnapshotService.mjs +34 -0
- package/data-structures/snapshot/solana-snapshots/ClientSolanaNullifierSnapshotService.cjs +1 -0
- package/data-structures/snapshot/solana-snapshots/ClientSolanaNullifierSnapshotService.d.ts +8 -0
- package/data-structures/snapshot/solana-snapshots/ClientSolanaNullifierSnapshotService.mjs +34 -0
- package/data-structures/token-price-fetcher/TokenChecker.cjs +1 -1
- package/data-structures/token-price-fetcher/TokenChecker.mjs +5 -4
- package/data-structures/utxo/Utxo.cjs +1 -1
- package/data-structures/utxo/Utxo.d.ts +6 -1
- package/data-structures/utxo/Utxo.mjs +37 -24
- package/error-handling/error-codes.constants.cjs +1 -1
- package/error-handling/error-codes.constants.d.ts +2 -0
- package/error-handling/error-codes.constants.mjs +4 -2
- package/functions/connectors.types.d.ts +14 -0
- package/functions/index.d.ts +1 -0
- package/functions/pre-transaction/addressTableLookup.cjs +1 -0
- package/functions/pre-transaction/addressTableLookup.d.ts +4 -0
- package/functions/pre-transaction/addressTableLookup.mjs +44 -0
- package/functions/pre-transaction/constructAdminData.cjs +1 -1
- package/functions/pre-transaction/constructAdminData.d.ts +2 -1
- package/functions/pre-transaction/constructAdminData.mjs +30 -12
- package/functions/pre-transaction/convert-okx-instructions.cjs +1 -0
- package/functions/pre-transaction/convert-okx-instructions.d.ts +12 -0
- package/functions/pre-transaction/convert-okx-instructions.mjs +30 -0
- package/functions/pre-transaction/getSolanaCalldataHash.cjs +1 -0
- package/functions/pre-transaction/getSolanaCalldataHash.d.ts +4 -0
- package/functions/pre-transaction/getSolanaCalldataHash.mjs +36 -0
- package/functions/pre-transaction/getVolatileTransferAmount.cjs +1 -1
- package/functions/pre-transaction/getVolatileTransferAmount.mjs +11 -7
- package/functions/pre-transaction/index.d.ts +10 -0
- package/functions/pre-transaction/initTokenLimitIfNeeded.cjs +1 -0
- package/functions/pre-transaction/initTokenLimitIfNeeded.d.ts +3 -0
- package/functions/pre-transaction/initTokenLimitIfNeeded.mjs +20 -0
- package/functions/pre-transaction/outputUtxoProcessing.cjs +1 -1
- package/functions/pre-transaction/outputUtxoProcessing.mjs +14 -13
- package/functions/pre-transaction/process-gas-estimates.cjs +1 -1
- package/functions/pre-transaction/process-gas-estimates.d.ts +2 -2
- package/functions/pre-transaction/process-gas-estimates.mjs +13 -12
- package/functions/pre-transaction/recipientUtxoProcessing.cjs +1 -0
- package/functions/pre-transaction/recipientUtxoProcessing.d.ts +3 -0
- package/functions/pre-transaction/recipientUtxoProcessing.mjs +36 -0
- package/functions/pre-transaction/sendInitNullifiersTransaction.cjs +1 -0
- package/functions/pre-transaction/sendInitNullifiersTransaction.d.ts +11 -0
- package/functions/pre-transaction/sendInitNullifiersTransaction.mjs +41 -0
- package/functions/pre-transaction/sendV0Transaction.cjs +1 -0
- package/functions/pre-transaction/sendV0Transaction.d.ts +22 -0
- package/functions/pre-transaction/sendV0Transaction.mjs +121 -0
- package/functions/pre-transaction/solana-public-signals.cjs +1 -0
- package/functions/pre-transaction/solana-public-signals.d.ts +19 -0
- package/functions/pre-transaction/solana-public-signals.mjs +60 -0
- package/functions/pre-transaction/solana.cjs +1 -0
- package/functions/pre-transaction/solana.d.ts +17 -0
- package/functions/pre-transaction/solana.mjs +96 -0
- package/functions/pre-transaction/solanaTransfer.utils.cjs +1 -0
- package/functions/pre-transaction/solanaTransfer.utils.d.ts +6 -0
- package/functions/pre-transaction/solanaTransfer.utils.mjs +38 -0
- package/functions/pre-transaction/store-instructions.cjs +1 -0
- package/functions/pre-transaction/store-instructions.d.ts +4 -0
- package/functions/pre-transaction/store-instructions.mjs +9 -0
- package/functions/pre-transaction/store-proof.cjs +1 -0
- package/functions/pre-transaction/store-proof.d.ts +7 -0
- package/functions/pre-transaction/store-proof.mjs +55 -0
- package/functions/private-wallet/emporium.helpers.cjs +1 -1
- package/functions/private-wallet/emporium.helpers.mjs +33 -29
- package/functions/private-wallet/emporium.swap.helpers.cjs +1 -1
- package/functions/private-wallet/emporium.swap.helpers.d.ts +1 -1
- package/functions/private-wallet/emporium.swap.helpers.mjs +79 -69
- package/functions/snarkjs/constant.cjs +1 -1
- package/functions/snarkjs/constant.d.ts +40 -0
- package/functions/snarkjs/constant.mjs +66 -23
- package/functions/snarkjs/constructEmporiumProof.cjs +1 -1
- package/functions/snarkjs/constructEmporiumProof.mjs +32 -32
- package/functions/snarkjs/constructGeneralZkProof.cjs +1 -1
- package/functions/snarkjs/constructGeneralZkProof.d.ts +1 -1
- package/functions/snarkjs/constructGeneralZkProof.mjs +63 -61
- package/functions/snarkjs/constructSolanaZkProof.cjs +1 -0
- package/functions/snarkjs/constructSolanaZkProof.d.ts +13 -0
- package/functions/snarkjs/constructSolanaZkProof.mjs +109 -0
- package/functions/snarkjs/generateCircomData.cjs +1 -1
- package/functions/snarkjs/generateCircomData.d.ts +1 -1
- package/functions/snarkjs/generateCircomData.mjs +9 -9
- package/functions/snarkjs/generateZkProofEnclave.cjs +1 -1
- package/functions/snarkjs/generateZkProofEnclave.mjs +10 -9
- package/functions/snarkjs/getZKFiles.cjs +1 -1
- package/functions/snarkjs/getZKFiles.mjs +13 -13
- package/functions/snarkjs/index.d.ts +1 -0
- package/functions/utils/addresses.cjs +1 -1
- package/functions/utils/addresses.d.ts +1 -1
- package/functions/utils/addresses.mjs +21 -17
- package/functions/utils/amounts.utils.cjs +1 -1
- package/functions/utils/amounts.utils.d.ts +1 -0
- package/functions/utils/amounts.utils.mjs +53 -40
- package/functions/utils/bytes32.utils.cjs +1 -0
- package/functions/utils/bytes32.utils.d.ts +2 -0
- package/functions/utils/bytes32.utils.mjs +10 -0
- package/functions/utils/cacheDevice.utils.cjs +1 -1
- package/functions/utils/cacheDevice.utils.mjs +2 -3
- package/functions/utils/cacheFunctions.cjs +1 -1
- package/functions/utils/cacheFunctions.mjs +53 -52
- package/functions/utils/convertIntegrationProviderToExternalActionId.cjs +1 -1
- package/functions/utils/convertIntegrationProviderToExternalActionId.mjs +1 -0
- package/functions/utils/create-provider.cjs +1 -1
- package/functions/utils/create-provider.d.ts +4 -1
- package/functions/utils/create-provider.mjs +8 -6
- package/functions/utils/encodeTokenWithId.cjs +1 -1
- package/functions/utils/encodeTokenWithId.d.ts +1 -1
- package/functions/utils/encodeTokenWithId.mjs +6 -2
- package/functions/utils/encryptInputForEnclave.cjs +1 -1
- package/functions/utils/encryptInputForEnclave.mjs +29 -28
- package/functions/utils/erc20tokenFunctions.cjs +1 -1
- package/functions/utils/erc20tokenFunctions.mjs +29 -29
- package/functions/utils/ethers-formatter.utils.cjs +1 -1
- package/functions/utils/ethers-formatter.utils.d.ts +2 -0
- package/functions/utils/ethers-formatter.utils.mjs +45 -15
- package/functions/utils/evmNetworkFunctions.cjs +1 -1
- package/functions/utils/evmNetworkFunctions.mjs +3 -4
- package/functions/utils/fees.utils.cjs +1 -1
- package/functions/utils/fees.utils.d.ts +1 -0
- package/functions/utils/fees.utils.mjs +19 -9
- package/functions/utils/get-hinkal-approvals.cjs +1 -1
- package/functions/utils/get-hinkal-approvals.mjs +1 -1
- package/functions/utils/getBlockExplorerUrl.cjs +1 -1
- package/functions/utils/getBlockExplorerUrl.mjs +2 -2
- package/functions/utils/getRecipientInfoFromUserKeys.cjs +1 -1
- package/functions/utils/getRecipientInfoFromUserKeys.d.ts +0 -1
- package/functions/utils/getRecipientInfoFromUserKeys.mjs +10 -13
- package/functions/utils/getUtxosFromReceipt.utils.cjs +1 -0
- package/functions/utils/getUtxosFromReceipt.utils.d.ts +4 -0
- package/functions/utils/getUtxosFromReceipt.utils.mjs +29 -0
- package/functions/utils/getUtxosFromReceiptSolana.cjs +1 -0
- package/functions/utils/getUtxosFromReceiptSolana.d.ts +5 -0
- package/functions/utils/getUtxosFromReceiptSolana.mjs +19 -0
- package/functions/utils/index.d.ts +5 -1
- package/functions/utils/networks.utils.cjs +1 -1
- package/functions/utils/networks.utils.mjs +2 -3
- package/functions/utils/nftTokenFunctions.cjs +1 -1
- package/functions/utils/nftTokenFunctions.mjs +8 -4
- package/functions/utils/prepareHinkal.cjs +1 -0
- package/functions/utils/prepareHinkal.d.ts +7 -1
- package/functions/utils/prepareHinkal.mjs +88 -0
- package/functions/utils/publicBalance.utils.cjs +1 -1
- package/functions/utils/publicBalance.utils.d.ts +1 -0
- package/functions/utils/publicBalance.utils.mjs +75 -45
- package/functions/utils/solanaMint.utils.cjs +1 -0
- package/functions/utils/solanaMint.utils.d.ts +10 -0
- package/functions/utils/solanaMint.utils.mjs +14 -0
- package/functions/utils/time.utils.cjs +1 -1
- package/functions/utils/time.utils.d.ts +1 -1
- package/functions/utils/time.utils.mjs +11 -11
- package/functions/utils/userAgent.cjs +1 -1
- package/functions/utils/userAgent.mjs +6 -7
- package/functions/utils/walletBalances.utils.cjs +1 -1
- package/functions/utils/walletBalances.utils.d.ts +2 -1
- package/functions/utils/walletBalances.utils.mjs +18 -17
- package/functions/web3/events/getInputUtxoAndBalance.cjs +1 -1
- package/functions/web3/events/getInputUtxoAndBalance.mjs +98 -91
- package/functions/web3/events/getInputUtxosEnclave.cjs +1 -1
- package/functions/web3/events/getInputUtxosEnclave.mjs +38 -16
- package/functions/web3/events/getShieldedBalance.cjs +2 -2
- package/functions/web3/events/getShieldedBalance.mjs +70 -62
- package/functions/web3/events/getTransactionLogEvents.cjs +1 -1
- package/functions/web3/events/getTransactionLogEvents.d.ts +3 -2
- package/functions/web3/events/getTransactionLogEvents.mjs +12 -9
- package/functions/web3/fetchSolanaMerkleTreeRootHash.cjs +1 -0
- package/functions/web3/fetchSolanaMerkleTreeRootHash.d.ts +4 -0
- package/functions/web3/fetchSolanaMerkleTreeRootHash.mjs +45 -0
- package/functions/web3/functionCalls/accessTokenCalls.cjs +1 -1
- package/functions/web3/functionCalls/accessTokenCalls.d.ts +2 -0
- package/functions/web3/functionCalls/accessTokenCalls.mjs +25 -7
- package/functions/web3/functionCalls/transactCallRelayer.cjs +1 -1
- package/functions/web3/functionCalls/transactCallRelayer.d.ts +20 -0
- package/functions/web3/functionCalls/transactCallRelayer.mjs +61 -19
- package/functions/web3/getContractMetadata.cjs +1 -1
- package/functions/web3/getContractMetadata.mjs +20 -50
- package/functions/web3/getTokenHolder.cjs +1 -1
- package/functions/web3/getTokenHolder.mjs +29 -24
- package/functions/web3/index.d.ts +2 -0
- package/functions/web3/odosAPI.cjs +1 -1
- package/functions/web3/odosAPI.mjs +11 -8
- package/functions/web3/okxAPI.cjs +1 -0
- package/functions/web3/okxAPI.d.ts +8 -0
- package/functions/web3/okxAPI.mjs +43 -0
- package/functions/web3/oneInchAPI.cjs +1 -1
- package/functions/web3/oneInchAPI.mjs +7 -4
- package/functions/web3/runContractFunction.cjs +1 -1
- package/functions/web3/runContractFunction.mjs +22 -18
- package/functions/web3/signAndSendSerializedTransaction.cjs +1 -0
- package/functions/web3/signAndSendSerializedTransaction.d.ts +2 -0
- package/functions/web3/signAndSendSerializedTransaction.mjs +11 -0
- package/functions/web3/uniswapAPI.cjs +1 -1
- package/functions/web3/uniswapAPI.mjs +7 -4
- package/index.cjs +1 -1
- package/index.mjs +922 -810
- package/package.json +12 -16
- package/providers/CustomEthersProvider.cjs +1 -0
- package/providers/{TorExternalProvider.d.ts → CustomEthersProvider.d.ts} +2 -2
- package/providers/CustomEthersProvider.mjs +29 -0
- package/providers/CustomSolanaConnection.cjs +1 -0
- package/providers/CustomSolanaConnection.d.ts +4 -0
- package/providers/CustomSolanaConnection.mjs +33 -0
- package/providers/EthersProviderAdapter.cjs +1 -1
- package/providers/EthersProviderAdapter.d.ts +1 -2
- package/providers/EthersProviderAdapter.mjs +8 -48
- package/providers/SolanaProviderAdapter.cjs +1 -0
- package/providers/SolanaProviderAdapter.d.ts +44 -0
- package/providers/SolanaProviderAdapter.mjs +125 -0
- package/providers/WagmiProviderAdapter.cjs +1 -1
- package/providers/WagmiProviderAdapter.d.ts +1 -2
- package/providers/WagmiProviderAdapter.mjs +26 -24
- package/providers/prepareEthersHinkal.cjs +1 -1
- package/providers/prepareEthersHinkal.mjs +10 -7
- package/providers/prepareWagmiHinkal.cjs +1 -1
- package/providers/prepareWagmiHinkal.mjs +9 -6
- package/types/IMultiThreadedUtxoUtils.d.ts +2 -2
- package/types/TransactionSimulator.types.d.ts +1 -0
- package/types/activities.types.cjs +1 -1
- package/types/activities.types.d.ts +1 -0
- package/types/activities.types.mjs +6 -4
- package/types/admin.types.cjs +1 -1
- package/types/admin.types.d.ts +16 -0
- package/types/admin.types.mjs +1 -1
- package/types/all-points.types.d.ts +0 -1
- package/types/cache.types.cjs +1 -1
- package/types/cache.types.d.ts +8 -1
- package/types/cache.types.mjs +1 -1
- package/types/circom-data.types.d.ts +6 -0
- package/types/commitments.types.d.ts +12 -0
- package/types/ethereum-network.types.cjs +1 -1
- package/types/ethereum-network.types.d.ts +9 -3
- package/types/ethereum-network.types.mjs +1 -1
- package/types/external-action.types.cjs +1 -1
- package/types/external-action.types.d.ts +3 -1
- package/types/external-action.types.mjs +2 -2
- package/types/hinkal.types.cjs +1 -1
- package/types/hinkal.types.d.ts +3 -2
- package/types/hinkal.types.mjs +8 -8
- package/types/http.types.d.ts +8 -0
- package/types/index.d.ts +3 -2
- package/types/new-rewards.type.d.ts +2 -9
- package/types/offscreen.types.cjs +1 -1
- package/types/offscreen.types.d.ts +2 -1
- package/types/offscreen.types.mjs +2 -2
- package/types/okx.types.d.ts +57 -0
- package/types/rewards.types.d.ts +0 -11
- package/types/sandbox.types.cjs +1 -1
- package/types/sandbox.types.d.ts +19 -2
- package/types/sandbox.types.mjs +2 -2
- package/types/solana.types.d.ts +75 -0
- package/types/token.types.d.ts +6 -0
- package/webworker/snarkjsWorker/snarkjsWorkerLauncher.cjs +1 -1
- package/webworker/snarkjsWorker/snarkjsWorkerLauncher.mjs +1 -1
- package/webworker/snarkjsWorker/snarkjsWorkerLogic.cjs +1 -1
- package/webworker/snarkjsWorker/snarkjsWorkerLogic.d.ts +0 -1
- package/webworker/snarkjsWorker/snarkjsWorkerLogic.mjs +28 -30
- package/webworker/utxoWorker/utxoWorker.types.d.ts +2 -0
- package/webworker/utxoWorker/utxoWorkerLauncher.cjs +1 -1
- package/webworker/utxoWorker/utxoWorkerLauncher.mjs +1 -1
- package/webworker/utxoWorker/utxoWorkerLogic.cjs +1 -1
- package/webworker/utxoWorker/utxoWorkerLogic.mjs +33 -31
- package/webworker/viteWorkerURL.constant.cjs +21 -1
- package/webworker/viteWorkerURL.constant.mjs +21 -12
- package/webworker/zkProofWorker/zkProofWorkerLauncher.cjs +1 -1
- package/webworker/zkProofWorker/zkProofWorkerLauncher.mjs +1 -1
- package/API/mysteryBoxesCalls.cjs +0 -1
- package/API/mysteryBoxesCalls.d.ts +0 -60
- package/API/mysteryBoxesCalls.mjs +0 -66
- package/assets/snarkjsWorkerLauncher-CWaDqRaL.js +0 -14803
- package/assets/utxoWorkerLauncher-BUhBaUSg.js +0 -115868
- package/assets/zkProofWorkerLauncher-DlWQP3l9.js +0 -115360
- package/constants/mystery-boxes.constants.cjs +0 -1
- package/constants/mystery-boxes.constants.d.ts +0 -63
- package/constants/mystery-boxes.constants.mjs +0 -355
- package/data-structures/event-service/AbstractAccessTokenSnapshotService.cjs +0 -1
- package/data-structures/event-service/AbstractApprovalsSnapshotService.cjs +0 -1
- package/data-structures/event-service/AbstractCommitmentsSnapshotService.cjs +0 -1
- package/data-structures/event-service/AbstractEventService.cjs +0 -1
- package/data-structures/event-service/AbstractEventService.mjs +0 -33
- package/data-structures/event-service/AbstractSnapshotService.cjs +0 -1
- package/data-structures/event-service/BlockchainEventEmitter.cjs +0 -1
- package/data-structures/event-service/BlockchainEventEmitter.mjs +0 -80
- package/data-structures/snapshot/ClientAccessTokenSnapshotService.cjs +0 -1
- package/data-structures/snapshot/ClientApprovalsSnapshotService.cjs +0 -1
- package/data-structures/snapshot/ClientApprovalsSnapshotService.mjs +0 -23
- package/data-structures/snapshot/ClientCommitmentsSnapshotService.cjs +0 -1
- package/data-structures/snapshot/ClientCommitmentsSnapshotService.mjs +0 -31
- package/data-structures/snapshot/ClientNullifierSnapshotService.cjs +0 -1
- package/data-structures/snapshot/ClientNullifierSnapshotService.mjs +0 -30
- package/functions/utils/mystery-box-auction.utils.cjs +0 -1
- package/functions/utils/mystery-box-auction.utils.d.ts +0 -8
- package/functions/utils/mystery-box-auction.utils.mjs +0 -51
- package/providers/TorExternalProvider.cjs +0 -1
- package/providers/TorExternalProvider.mjs +0 -29
- package/types/merch-order.types.cjs +0 -1
- package/types/merch-order.types.d.ts +0 -16
- package/types/merch-order.types.mjs +0 -4
- package/types/mystery-boxes.types.cjs +0 -1
- package/types/mystery-boxes.types.d.ts +0 -43
- package/types/mystery-boxes.types.mjs +0 -6
- /package/data-structures/event-service/{AbstractNullifierSnapshotService.cjs → evm/AbstractNullifierSnapshotService.cjs} +0 -0
- /package/data-structures/event-service/{AbstractNullifierSnapshotService.mjs → evm/AbstractNullifierSnapshotService.mjs} +0 -0
- /package/data-structures/event-service/{AbstractSnapshotService.d.ts → evm/AbstractSnapshotService.d.ts} +0 -0
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
import { stealthPairCacheDevice as
|
|
2
|
-
import { Utxo as
|
|
3
|
-
import { UtxoWorkerActionType as
|
|
4
|
-
import { performTaskWithWorker as
|
|
5
|
-
import { WorkerVariant as
|
|
6
|
-
import { isNode as
|
|
7
|
-
class
|
|
1
|
+
import { stealthPairCacheDevice as S, stealthAddressCacheDevice as O } from "../crypto-keys/keys.mjs";
|
|
2
|
+
import { Utxo as m } from "../utxo/Utxo.mjs";
|
|
3
|
+
import { UtxoWorkerActionType as p } from "../../webworker/utxoWorker/utxoWorker.types.mjs";
|
|
4
|
+
import { performTaskWithWorker as U } from "../../webworker/performTaskWithWorker.mjs";
|
|
5
|
+
import { WorkerVariant as y } from "../../webworker/worker.registry.mjs";
|
|
6
|
+
import { isNode as P } from "../../constants/vite.constants.mjs";
|
|
7
|
+
class M {
|
|
8
8
|
NUM_WORKERS;
|
|
9
9
|
NUM_WORKERS_BATCH_PROCESS;
|
|
10
10
|
constructor() {
|
|
11
|
-
|
|
11
|
+
P ? (this.NUM_WORKERS = 1, this.NUM_WORKERS_BATCH_PROCESS = 1) : (this.NUM_WORKERS = 3, this.NUM_WORKERS_BATCH_PROCESS = Math.ceil(navigator.deviceMemory ?? 4));
|
|
12
12
|
}
|
|
13
13
|
async createUtxoPromise(e) {
|
|
14
|
-
return await
|
|
15
|
-
type:
|
|
14
|
+
return await U({
|
|
15
|
+
type: y.UTXO,
|
|
16
16
|
payload: e
|
|
17
17
|
});
|
|
18
18
|
}
|
|
19
19
|
async batchFilterUtxosWithNullifier(e, t) {
|
|
20
20
|
const a = this.sliceArrayIntoParts(e, this.NUM_WORKERS).map(
|
|
21
21
|
(s) => this.createUtxoPromise({
|
|
22
|
-
type:
|
|
22
|
+
type: p.BATCH_FILTER_UTXOS_WITH_NULLIFIER,
|
|
23
23
|
data: {
|
|
24
|
-
utxos: s.map((
|
|
24
|
+
utxos: s.map((u) => u.getConstructableParams()),
|
|
25
25
|
nullifiers: t
|
|
26
26
|
}
|
|
27
27
|
})
|
|
28
28
|
), i = await Promise.all(a);
|
|
29
29
|
return i.forEach((s) => {
|
|
30
|
-
|
|
31
|
-
}), i.flatMap((s) => s.utxoConstructors).map((s) => new
|
|
30
|
+
S.mergeWithSerialized(s.stealthPairCache), O.mergeWithSerialized(s.stealthAddressCache);
|
|
31
|
+
}), i.flatMap((s) => s.utxoConstructors).map((s) => new m(s));
|
|
32
32
|
}
|
|
33
|
-
async buildBatchProcess(e, t) {
|
|
34
|
-
const
|
|
35
|
-
(
|
|
36
|
-
type:
|
|
37
|
-
data: { signature: t.getSignature(), encryptedOutputs:
|
|
33
|
+
async buildBatchProcess(e, t, r) {
|
|
34
|
+
const i = this.sliceArrayIntoParts(e, this.NUM_WORKERS).map(
|
|
35
|
+
(n) => this.createUtxoPromise({
|
|
36
|
+
type: p.BUILD_UTXOS,
|
|
37
|
+
data: { signature: t.getSignature(), encryptedOutputs: n, chainId: r }
|
|
38
38
|
})
|
|
39
39
|
);
|
|
40
|
-
return (await Promise.all(
|
|
40
|
+
return (await Promise.all(i)).flat().map((n) => new m(n));
|
|
41
41
|
}
|
|
42
42
|
sliceArrayIntoParts(e, t) {
|
|
43
43
|
const r = Math.ceil(e.length / t);
|
|
@@ -52,29 +52,30 @@ class T {
|
|
|
52
52
|
a !== t && (r = a);
|
|
53
53
|
}), r;
|
|
54
54
|
}
|
|
55
|
-
async batchProcess(e, t, r) {
|
|
56
|
-
const
|
|
57
|
-
const
|
|
58
|
-
type:
|
|
55
|
+
async batchProcess(e, t, r, a) {
|
|
56
|
+
const i = this.sliceArrayIntoParts(e, this.NUM_WORKERS_BATCH_PROCESS), s = r.getSignature(), u = i.map((o) => {
|
|
57
|
+
const c = {
|
|
58
|
+
type: p.DECIPHER_OUTPUTS,
|
|
59
59
|
data: {
|
|
60
60
|
encryptedOutputs: o,
|
|
61
61
|
lastOutput: t,
|
|
62
62
|
// doesn't matter what we pass here, it will not be used regardless
|
|
63
|
-
signature:
|
|
63
|
+
signature: s,
|
|
64
|
+
chainId: a
|
|
64
65
|
}
|
|
65
66
|
};
|
|
66
|
-
return this.createUtxoPromise(
|
|
67
|
-
}),
|
|
68
|
-
|
|
67
|
+
return this.createUtxoPromise(c);
|
|
68
|
+
}), l = await Promise.all(u), n = l.map(({ additionalEncryptedOutputs: o }) => o).flat(), h = /* @__PURE__ */ new Set(), R = n.reduce((o, c) => h.has(c.value) ? o : (h.add(c.value), [...o, c]), []), d = this.findLastOutput(
|
|
69
|
+
l.map((o) => o.lastOutput),
|
|
69
70
|
t
|
|
70
71
|
);
|
|
71
72
|
return {
|
|
72
|
-
additionalEncryptedOutputs:
|
|
73
|
-
lastOutput:
|
|
73
|
+
additionalEncryptedOutputs: R,
|
|
74
|
+
lastOutput: d ?? t
|
|
74
75
|
// keep the last output the same if no new output is present
|
|
75
76
|
};
|
|
76
77
|
}
|
|
77
78
|
}
|
|
78
79
|
export {
|
|
79
|
-
|
|
80
|
+
M as MultiThreadedUtxoUtils
|
|
80
81
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("idb-keyval"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("idb-keyval"),N=require("../../API/API.cjs"),d=require("../../constants/chains.constants.cjs"),h=require("../../constants/protocol.constants.cjs"),p=require("../../functions/utils/caseInsensitive.utils.cjs"),B=require("../../functions/utils/publicBalance.utils.cjs"),g=require("../../functions/utils/string.utils.cjs"),w=require("../../types/cache.types.cjs"),P=require("./token-visibility-db.cjs"),S=require("../http/HttpClient.cjs");require("axios");const _=require("@solana/spl-token"),b=require("@solana/web3.js"),K=require("../../error-handling/logger.cjs"),C=require("../../functions/utils/create-provider.cjs");class E{fetchedTokens={};ALCHEMY_URLS={[d.chainIds.ethMainnet]:"eth-mainnet",[d.chainIds.polygon]:"polygon-mainnet",[d.chainIds.arbMainnet]:"arb-mainnet",[d.chainIds.optimism]:"opt-mainnet",[d.chainIds.base]:"base-mainnet",[d.chainIds.avalanche]:"avax-mainnet",[d.chainIds.solanaMainnet]:"solana-mainnet"};KNOWN_GOOD_NFTS={[d.chainIds.base]:["0x20bc8d248fe9c18a947406cea50d716828ab821f"],[d.chainIds.optimism]:["0x3c3e0e73b53a19bcaf4178b8f9c9428fd2a2775e"]};isWhitelistedNFT(t,e){return this.KNOWN_GOOD_NFTS[e]?this.KNOWN_GOOD_NFTS[e].some(s=>p.caseInsensitiveEqual(t,s)):!1}async getPublicTokens(t,e){const s=g.getStateKey(e,t);return(await m.get(w.StorageKeys.ALCHEMY_PUBLIC_TOKENS))?.[s]||[]}getFetchedTokens(t,e){const s=g.getStateKey(e,t);return this.fetchedTokens[s]||[]}fetchAndUpdatePublicTokens(t,e){return d.isSolanaLike(e)?this.fetchAndUpdateSolanaTokens(t,e):this.fetchAndUpdateEVMTokens(t,e)}async fetchAndUpdateSolanaTokens(t,e){const s=g.getStateKey(t,e),[c,o]=await Promise.all([this.getSolanaTokenAddresses(e,t),this.getNFTAddresses(e,t)]),l=Array.from(new Set([...c,...o]));if(!l.length)return;const n=(await N.API.tokensInfoCall(e,l)).filter(i=>!!i),r=await P.tokenVisibilityStorage.hideSpamsAndFetchHiddenTokensAddresses(e,n),a=n.filter(i=>!p.lowerCaseIncludes(r,i.erc20TokenAddress));await m.update(w.StorageKeys.ALCHEMY_PUBLIC_TOKENS,(i={})=>{const T={...i,[s]:a};return this.fetchedTokens=T,T})}async getWalletTokenAddresses(t,e){return d.isSolanaLike(t)?this.getSolanaTokenAddresses(t,e):this.getEVMTokenAddresses(t,e)}async fetchAndUpdateEVMTokens(t,e){const s=g.getStateKey(t,e),c=await this.getEVMTokenAddresses(e,t),o=await this.getNFTTokens(e,t),l=o.map(k=>k.contractAddress),u=[...c,...l];if(!u.length)return;const r=(await N.API.tokensInfoCall(e,u)).map((k,f)=>{if(k)return k;const y=u[f],A=o.find(I=>p.caseInsensitiveEqual(I.contractAddress,y));return A&&A.tokenIds&&A.tokenIds.length>0&&this.isWhitelistedNFT(y,e)?{chainId:e,name:"Unknown NFT",symbol:"NFT",erc20TokenAddress:y,decimals:0,nftTokenType:h.TokenType.ERC721,tokenIds:A.tokenIds}:null}).filter(k=>!!k),a=await P.tokenVisibilityStorage.hideSpamsAndFetchHiddenTokensAddresses(e,r),T=r.filter(k=>!p.lowerCaseIncludes(a,k.erc20TokenAddress)).map(k=>({...k,tokenIds:o.find(f=>p.caseInsensitiveEqual(f.contractAddress,k.erc20TokenAddress))?.tokenIds}));await m.update(w.StorageKeys.ALCHEMY_PUBLIC_TOKENS,(k={})=>{const f={...k,[s]:T};return this.fetchedTokens=f,f})}async getSolanaTokenAddresses(t,e){const{fetchRpcUrl:s}=d.networkRegistry[t];if(!s)throw new Error("RPC URL not found for the specified chain ID");const c=C.createCustomSolanaConnection(s),o=await c.getBalance(new b.PublicKey(e)),[l,u]=await Promise.all([c.getParsedTokenAccountsByOwner(new b.PublicKey(e),{programId:_.TOKEN_PROGRAM_ID}),c.getParsedTokenAccountsByOwner(new b.PublicKey(e),{programId:_.TOKEN_2022_PROGRAM_ID})]),r=[...l.value,...u.value].filter(a=>{const i=a.account.data.parsed.info,{amount:T}=i.tokenAmount;return BigInt(T)>0n}).map(a=>a.account.data.parsed.info.mint);return o>0&&r.unshift(h.solanaNativeAddress),Array.from(new Set(r))}async getNFTAddresses(t,e){const{fetchRpcUrl:s}=d.networkRegistry[t];if(!s)throw new Error("RPC URL not found for the specified chain ID");try{const c=[];let o=1;do{const l=await S.httpClient.post(s,{jsonrpc:"2.0",id:1,method:"getAssetsByOwner",params:{ownerAddress:e,page:o,limit:1e3,displayOptions:{showFungible:!1,showCollectionMetadata:!0}}}),{items:u=[],page:n}=l.result||{},r=u.filter(a=>a.interface&&h.SOLANA_NFT_INTERFACES.includes(a.interface)).map(a=>a.id);c.push(...r),o=n&&n>o?n:0}while(o>0);return c}catch(c){return K.Logger.error("Failed to fetch NFTs from DAS API",c),[]}}async getEVMTokenAddresses(t,e){const s=await B.getPublicBalanceByTokenAddress(t,e,h.zeroAddress),c=`https://${this.ALCHEMY_URLS[t]}.g.alchemy.com/v2/${d.ALCHEMY_API_KEY}`,o=[];let l;do{const n=[e,"erc20"];l&&n.push({pageKey:l});const r=await S.httpClient.post(c,{jsonrpc:"2.0",id:1,method:"alchemy_getTokenBalances",params:n}),{result:a}=r;o.push(...a?.tokenBalances??[]),l=a?.pageKey}while(l);s&&s>0n&&o.push({contractAddress:h.zeroAddress,tokenBalance:s.toString()});const u={};return o.forEach(n=>{(!u[n.contractAddress]||BigInt(n.tokenBalance)>0n)&&(u[n.contractAddress]=n)}),Object.keys(u)}async getNFTTokens(t,e){const s=`https://${this.ALCHEMY_URLS[t]}.g.alchemy.com/nft/v3/${d.ALCHEMY_API_KEY}/getNFTsForOwner`,c=[];let o;do{const n=new URLSearchParams({owner:e,withMetadata:"false",pageSize:"100"});o&&n.append("pageKey",o);const r=await S.httpClient.get(`${s}?${n.toString()}`),{ownedNfts:a=[],pageKey:i}=r;c.push(...a),o=i}while(o);const u=c.filter(({contractAddress:n,tokenId:r})=>n&&r).reduce((n,{contractAddress:r,tokenId:a})=>{const i=r.toLowerCase();return n.has(i)||n.set(i,[]),n.get(i)?.push(a),n},new Map);return Array.from(u.entries()).map(([n,r])=>({contractAddress:n,tokenIds:r}))}}const F=new E;exports.AlchemyPublicTokensDB=E;exports.alchemyPublicTokensDB=F;
|
|
@@ -8,7 +8,12 @@ export declare class AlchemyPublicTokensDB implements IPublicTokensDB {
|
|
|
8
8
|
getPublicTokens(chainId: number, walletAddress: string): Promise<ERC20Token[]>;
|
|
9
9
|
getFetchedTokens(chainId: number, walletAddress: string): ERC20Token[];
|
|
10
10
|
fetchAndUpdatePublicTokens(walletAddress: string, chainId: number): Promise<void>;
|
|
11
|
-
private
|
|
11
|
+
private fetchAndUpdateSolanaTokens;
|
|
12
|
+
getWalletTokenAddresses(chainId: number, walletAddress: string): Promise<string[]>;
|
|
13
|
+
private fetchAndUpdateEVMTokens;
|
|
14
|
+
private getSolanaTokenAddresses;
|
|
15
|
+
private getNFTAddresses;
|
|
16
|
+
private getEVMTokenAddresses;
|
|
12
17
|
private getNFTTokens;
|
|
13
18
|
}
|
|
14
19
|
export declare const alchemyPublicTokensDB: AlchemyPublicTokensDB;
|
|
@@ -1,129 +1,204 @@
|
|
|
1
|
-
import { get as
|
|
1
|
+
import { get as O, update as N } from "idb-keyval";
|
|
2
2
|
import { API as S } from "../../API/API.mjs";
|
|
3
|
-
import { chainIds as
|
|
4
|
-
import { TokenType as
|
|
5
|
-
import { caseInsensitiveEqual as
|
|
6
|
-
import { getPublicBalanceByTokenAddress as
|
|
3
|
+
import { chainIds as m, isSolanaLike as E, networkRegistry as F, ALCHEMY_API_KEY as B } from "../../constants/chains.constants.mjs";
|
|
4
|
+
import { TokenType as K, SOLANA_NFT_INTERFACES as L, zeroAddress as b, solanaNativeAddress as M } from "../../constants/protocol.constants.mjs";
|
|
5
|
+
import { caseInsensitiveEqual as A, lowerCaseIncludes as P } from "../../functions/utils/caseInsensitive.utils.mjs";
|
|
6
|
+
import { getPublicBalanceByTokenAddress as U } from "../../functions/utils/publicBalance.utils.mjs";
|
|
7
7
|
import { getStateKey as u } from "../../functions/utils/string.utils.mjs";
|
|
8
|
-
import { StorageKeys as
|
|
9
|
-
import { tokenVisibilityStorage as
|
|
10
|
-
import
|
|
11
|
-
|
|
8
|
+
import { StorageKeys as g } from "../../types/cache.types.mjs";
|
|
9
|
+
import { tokenVisibilityStorage as _ } from "./token-visibility-db.mjs";
|
|
10
|
+
import { httpClient as y } from "../http/HttpClient.mjs";
|
|
11
|
+
import "axios";
|
|
12
|
+
import { TOKEN_PROGRAM_ID as R, TOKEN_2022_PROGRAM_ID as I } from "@solana/spl-token";
|
|
13
|
+
import { PublicKey as w } from "@solana/web3.js";
|
|
14
|
+
import { Logger as H } from "../../error-handling/logger.mjs";
|
|
15
|
+
import { createCustomSolanaConnection as v } from "../../functions/utils/create-provider.mjs";
|
|
16
|
+
class D {
|
|
12
17
|
fetchedTokens = {};
|
|
13
18
|
ALCHEMY_URLS = {
|
|
14
|
-
[
|
|
15
|
-
[
|
|
16
|
-
[
|
|
17
|
-
[
|
|
18
|
-
[
|
|
19
|
-
[
|
|
19
|
+
[m.ethMainnet]: "eth-mainnet",
|
|
20
|
+
[m.polygon]: "polygon-mainnet",
|
|
21
|
+
[m.arbMainnet]: "arb-mainnet",
|
|
22
|
+
[m.optimism]: "opt-mainnet",
|
|
23
|
+
[m.base]: "base-mainnet",
|
|
24
|
+
[m.avalanche]: "avax-mainnet",
|
|
25
|
+
[m.solanaMainnet]: "solana-mainnet"
|
|
20
26
|
};
|
|
21
27
|
// Known legitimate NFT collections that should be included in fallback
|
|
22
28
|
KNOWN_GOOD_NFTS = {
|
|
23
|
-
[
|
|
29
|
+
[m.base]: [
|
|
24
30
|
"0x20bc8d248fe9c18a947406cea50d716828ab821f"
|
|
25
31
|
// Hinkal Mason NFT
|
|
26
32
|
],
|
|
27
|
-
[
|
|
33
|
+
[m.optimism]: [
|
|
28
34
|
"0x3c3e0e73b53a19bcaf4178b8f9c9428fd2a2775e"
|
|
29
35
|
// Uniswap v4 Positions
|
|
30
36
|
]
|
|
31
37
|
};
|
|
32
|
-
isWhitelistedNFT(
|
|
33
|
-
return this.KNOWN_GOOD_NFTS[
|
|
38
|
+
isWhitelistedNFT(t, e) {
|
|
39
|
+
return this.KNOWN_GOOD_NFTS[e] ? this.KNOWN_GOOD_NFTS[e].some((s) => A(t, s)) : !1;
|
|
34
40
|
}
|
|
35
|
-
async getPublicTokens(
|
|
36
|
-
const s = u(
|
|
37
|
-
return (await
|
|
41
|
+
async getPublicTokens(t, e) {
|
|
42
|
+
const s = u(e, t);
|
|
43
|
+
return (await O(g.ALCHEMY_PUBLIC_TOKENS))?.[s] || [];
|
|
38
44
|
}
|
|
39
|
-
getFetchedTokens(
|
|
40
|
-
const s = u(
|
|
45
|
+
getFetchedTokens(t, e) {
|
|
46
|
+
const s = u(e, t);
|
|
41
47
|
return this.fetchedTokens[s] || [];
|
|
42
48
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
49
|
+
fetchAndUpdatePublicTokens(t, e) {
|
|
50
|
+
return E(e) ? this.fetchAndUpdateSolanaTokens(t, e) : this.fetchAndUpdateEVMTokens(t, e);
|
|
51
|
+
}
|
|
52
|
+
async fetchAndUpdateSolanaTokens(t, e) {
|
|
53
|
+
const s = u(t, e), [c, o] = await Promise.all([
|
|
54
|
+
this.getSolanaTokenAddresses(e, t),
|
|
55
|
+
this.getNFTAddresses(e, t)
|
|
56
|
+
]), d = Array.from(/* @__PURE__ */ new Set([...c, ...o]));
|
|
57
|
+
if (!d.length)
|
|
58
|
+
return;
|
|
59
|
+
const n = (await S.tokensInfoCall(e, d)).filter((i) => !!i), r = await _.hideSpamsAndFetchHiddenTokensAddresses(
|
|
60
|
+
e,
|
|
61
|
+
n
|
|
62
|
+
), a = n.filter(
|
|
63
|
+
(i) => !P(r, i.erc20TokenAddress)
|
|
64
|
+
);
|
|
65
|
+
await N(g.ALCHEMY_PUBLIC_TOKENS, (i = {}) => {
|
|
66
|
+
const p = {
|
|
67
|
+
...i,
|
|
68
|
+
[s]: a
|
|
69
|
+
};
|
|
70
|
+
return this.fetchedTokens = p, p;
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
async getWalletTokenAddresses(t, e) {
|
|
74
|
+
return E(t) ? this.getSolanaTokenAddresses(t, e) : this.getEVMTokenAddresses(t, e);
|
|
75
|
+
}
|
|
76
|
+
async fetchAndUpdateEVMTokens(t, e) {
|
|
77
|
+
const s = u(t, e), c = await this.getEVMTokenAddresses(e, t), o = await this.getNFTTokens(e, t), d = o.map((f) => f.contractAddress), l = [...c, ...d];
|
|
78
|
+
if (!l.length)
|
|
46
79
|
return;
|
|
47
|
-
const r = (await S.tokensInfoCall(
|
|
48
|
-
if (
|
|
49
|
-
return
|
|
50
|
-
const
|
|
51
|
-
return
|
|
52
|
-
chainId:
|
|
80
|
+
const r = (await S.tokensInfoCall(e, l)).map((f, k) => {
|
|
81
|
+
if (f)
|
|
82
|
+
return f;
|
|
83
|
+
const h = l[k], T = o.find((C) => A(C.contractAddress, h));
|
|
84
|
+
return T && T.tokenIds && T.tokenIds.length > 0 && this.isWhitelistedNFT(h, e) ? {
|
|
85
|
+
chainId: e,
|
|
53
86
|
name: "Unknown NFT",
|
|
54
87
|
symbol: "NFT",
|
|
55
|
-
erc20TokenAddress:
|
|
88
|
+
erc20TokenAddress: h,
|
|
56
89
|
decimals: 0,
|
|
57
|
-
nftTokenType:
|
|
58
|
-
tokenIds:
|
|
90
|
+
nftTokenType: K.ERC721,
|
|
91
|
+
tokenIds: T.tokenIds
|
|
59
92
|
} : null;
|
|
60
|
-
}).filter((
|
|
61
|
-
|
|
93
|
+
}).filter((f) => !!f), a = await _.hideSpamsAndFetchHiddenTokensAddresses(
|
|
94
|
+
e,
|
|
62
95
|
r
|
|
63
|
-
),
|
|
64
|
-
(
|
|
96
|
+
), p = r.filter(
|
|
97
|
+
(f) => !P(a, f.erc20TokenAddress)
|
|
65
98
|
// filter out hidden tokens
|
|
66
|
-
).map((
|
|
67
|
-
...
|
|
68
|
-
tokenIds:
|
|
99
|
+
).map((f) => ({
|
|
100
|
+
...f,
|
|
101
|
+
tokenIds: o.find((k) => A(k.contractAddress, f.erc20TokenAddress))?.tokenIds
|
|
69
102
|
}));
|
|
70
|
-
await
|
|
103
|
+
await N(g.ALCHEMY_PUBLIC_TOKENS, (f = {}) => {
|
|
71
104
|
const k = {
|
|
72
|
-
...
|
|
73
|
-
[s]:
|
|
105
|
+
...f,
|
|
106
|
+
[s]: p
|
|
74
107
|
};
|
|
75
108
|
return this.fetchedTokens = k, k;
|
|
76
109
|
});
|
|
77
110
|
}
|
|
78
|
-
async
|
|
79
|
-
const
|
|
80
|
-
|
|
111
|
+
async getSolanaTokenAddresses(t, e) {
|
|
112
|
+
const { fetchRpcUrl: s } = F[t];
|
|
113
|
+
if (!s)
|
|
114
|
+
throw new Error("RPC URL not found for the specified chain ID");
|
|
115
|
+
const c = v(s), o = await c.getBalance(new w(e)), [d, l] = await Promise.all([
|
|
116
|
+
c.getParsedTokenAccountsByOwner(new w(e), { programId: R }),
|
|
117
|
+
c.getParsedTokenAccountsByOwner(new w(e), { programId: I })
|
|
118
|
+
]), r = [...d.value, ...l.value].filter((a) => {
|
|
119
|
+
const i = a.account.data.parsed.info, { amount: p } = i.tokenAmount;
|
|
120
|
+
return BigInt(p) > 0n;
|
|
121
|
+
}).map((a) => a.account.data.parsed.info.mint);
|
|
122
|
+
return o > 0 && r.unshift(M), Array.from(new Set(r));
|
|
123
|
+
}
|
|
124
|
+
async getNFTAddresses(t, e) {
|
|
125
|
+
const { fetchRpcUrl: s } = F[t];
|
|
126
|
+
if (!s)
|
|
127
|
+
throw new Error("RPC URL not found for the specified chain ID");
|
|
128
|
+
try {
|
|
129
|
+
const c = [];
|
|
130
|
+
let o = 1;
|
|
131
|
+
do {
|
|
132
|
+
const d = await y.post(s, {
|
|
133
|
+
jsonrpc: "2.0",
|
|
134
|
+
id: 1,
|
|
135
|
+
method: "getAssetsByOwner",
|
|
136
|
+
params: {
|
|
137
|
+
ownerAddress: e,
|
|
138
|
+
page: o,
|
|
139
|
+
limit: 1e3,
|
|
140
|
+
displayOptions: {
|
|
141
|
+
showFungible: !1,
|
|
142
|
+
showCollectionMetadata: !0
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}), { items: l = [], page: n } = d.result || {}, r = l.filter((a) => a.interface && L.includes(a.interface)).map((a) => a.id);
|
|
146
|
+
c.push(...r), o = n && n > o ? n : 0;
|
|
147
|
+
} while (o > 0);
|
|
148
|
+
return c;
|
|
149
|
+
} catch (c) {
|
|
150
|
+
return H.error("Failed to fetch NFTs from DAS API", c), [];
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
async getEVMTokenAddresses(t, e) {
|
|
154
|
+
const s = await U(t, e, b), c = `https://${this.ALCHEMY_URLS[t]}.g.alchemy.com/v2/${B}`, o = [];
|
|
155
|
+
let d;
|
|
81
156
|
do {
|
|
82
|
-
const
|
|
83
|
-
|
|
84
|
-
const
|
|
157
|
+
const n = [e, "erc20"];
|
|
158
|
+
d && n.push({ pageKey: d });
|
|
159
|
+
const r = await y.post(c, {
|
|
85
160
|
jsonrpc: "2.0",
|
|
86
161
|
id: 1,
|
|
87
162
|
method: "alchemy_getTokenBalances",
|
|
88
|
-
params:
|
|
89
|
-
}), { result:
|
|
90
|
-
|
|
91
|
-
} while (
|
|
92
|
-
s && s > 0n &&
|
|
93
|
-
contractAddress:
|
|
163
|
+
params: n
|
|
164
|
+
}), { result: a } = r;
|
|
165
|
+
o.push(...a?.tokenBalances ?? []), d = a?.pageKey;
|
|
166
|
+
} while (d);
|
|
167
|
+
s && s > 0n && o.push({
|
|
168
|
+
contractAddress: b,
|
|
94
169
|
tokenBalance: s.toString()
|
|
95
170
|
});
|
|
96
|
-
const
|
|
97
|
-
return
|
|
98
|
-
(!
|
|
99
|
-
}), Object.keys(
|
|
171
|
+
const l = {};
|
|
172
|
+
return o.forEach((n) => {
|
|
173
|
+
(!l[n.contractAddress] || BigInt(n.tokenBalance) > 0n) && (l[n.contractAddress] = n);
|
|
174
|
+
}), Object.keys(l);
|
|
100
175
|
}
|
|
101
|
-
async getNFTTokens(
|
|
102
|
-
const s = `https://${this.ALCHEMY_URLS[
|
|
103
|
-
let
|
|
176
|
+
async getNFTTokens(t, e) {
|
|
177
|
+
const s = `https://${this.ALCHEMY_URLS[t]}.g.alchemy.com/nft/v3/${B}/getNFTsForOwner`, c = [];
|
|
178
|
+
let o;
|
|
104
179
|
do {
|
|
105
|
-
const
|
|
106
|
-
owner:
|
|
180
|
+
const n = new URLSearchParams({
|
|
181
|
+
owner: e,
|
|
107
182
|
withMetadata: "false",
|
|
108
183
|
pageSize: "100"
|
|
109
184
|
// max is 100
|
|
110
185
|
});
|
|
111
|
-
|
|
112
|
-
const
|
|
113
|
-
|
|
114
|
-
} while (
|
|
115
|
-
const
|
|
116
|
-
const
|
|
117
|
-
return
|
|
186
|
+
o && n.append("pageKey", o);
|
|
187
|
+
const r = await y.get(`${s}?${n.toString()}`), { ownedNfts: a = [], pageKey: i } = r;
|
|
188
|
+
c.push(...a), o = i;
|
|
189
|
+
} while (o);
|
|
190
|
+
const l = c.filter(({ contractAddress: n, tokenId: r }) => n && r).reduce((n, { contractAddress: r, tokenId: a }) => {
|
|
191
|
+
const i = r.toLowerCase();
|
|
192
|
+
return n.has(i) || n.set(i, []), n.get(i)?.push(a), n;
|
|
118
193
|
}, /* @__PURE__ */ new Map());
|
|
119
|
-
return Array.from(
|
|
120
|
-
contractAddress:
|
|
194
|
+
return Array.from(l.entries()).map(([n, r]) => ({
|
|
195
|
+
contractAddress: n,
|
|
121
196
|
tokenIds: r
|
|
122
197
|
}));
|
|
123
198
|
}
|
|
124
199
|
}
|
|
125
|
-
const
|
|
200
|
+
const se = new D();
|
|
126
201
|
export {
|
|
127
|
-
|
|
128
|
-
|
|
202
|
+
D as AlchemyPublicTokensDB,
|
|
203
|
+
se as alchemyPublicTokensDB
|
|
129
204
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const k=require("ethers"),T=require("idb-keyval"),_=require("../../API/API.cjs"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const k=require("ethers"),T=require("idb-keyval"),_=require("../../API/API.cjs"),m=require("../../constants/chains.constants.cjs"),p=require("../../error-handling/logger.cjs"),E=require("../../functions/utils/caseInsensitive.utils.cjs"),g=require("../../types/cache.types.cjs"),d=require("../../functions/utils/string.utils.cjs"),A=require("../../constants/protocol.constants.cjs"),C=require("async-mutex"),S=require("../../functions/utils/erc20tokenFunctions.cjs"),I=require("./token-visibility-db.cjs");require("../../types/circom-data.types.cjs");require("../../types/transactions.types.cjs");require("../../types/activities.types.cjs");require("@coral-xyz/anchor");require("@solana/web3.js");require("../../constants/kyc.constants.cjs");const K=require("../../functions/utils/create-provider.cjs");require("../../functions/utils/convertIntegrationProviderToExternalActionId.cjs");require("circomlibjs-hinkal-fork");require("../../error-handling/error-codes.constants.cjs");require("../crypto-keys/keys.cjs");require("../../constants/server.constants.cjs");require("../../constants/vite.constants.cjs");require("../http/HttpClient.cjs");require("axios");require("../../API/getServerURL.cjs");require("libsodium-wrappers");require("process");require("buffer");require("../../constants/save-depths.cjs");require("../../constants/reorg-depths.constants.cjs");require("../../functions/utils/mutexes.utils.cjs");require("@solana/spl-token");require("../../constants/token-data/index.cjs");require("../../constants/contracts.constants.cjs");require("../../constants/coingecko.constants.cjs");require("../../constants/addresses.constants.cjs");require("../../constants/token.limits.constants.cjs");require("../../constants/presale.constants.cjs");require("../../constants/activity.constants.cjs");require("../../constants/tasks.constants.cjs");const x=require("../../constants/events.constants.cjs");require("../../functions/utils/userAgent.cjs");require("multiformats");require("../../API/tenderly.api.cjs");require("node-forge");require("../../functions/web3/events/getApprovedBalance.cjs");require("../../functions/web3/getTokenHolder.cjs");require("ethers-v6h");class P{fetchedTokens={};updateMutexes={};transferEventTopic=k.ethers.utils.id("Transfer(address,address,uint256)");getMutex(r){return this.updateMutexes[r]||(this.updateMutexes[r]=new C.Mutex),this.updateMutexes[r]}async getPublicTokens(r,o){const t=d.getStateKey(o,r);return(await T.get(g.StorageKeys.EVENTS_PUBLIC_TOKENS))?.[t]||[]}getFetchedTokens(r,o){const t=d.getStateKey(o,r);return this.fetchedTokens[t]||[]}async fetchAndUpdatePublicTokens(r,o){const t=d.getStateKey(r,o);await this.getMutex(t).runExclusive(async()=>{try{const s=(await this.getPublicTokens(o,r)).map(a=>a.erc20TokenAddress),{toEvents:i,fromEvents:u,latestBlock:c}=await this.getEvents(r,o),q=[...i,...u],{erc20Tokens:l}=await this.fetchPublicTokens(q,o,s),b=await I.tokenVisibilityStorage.hideSpamsAndFetchHiddenTokensAddresses(o,l),B=l.filter(a=>!E.lowerCaseIncludes(b,a.erc20TokenAddress));await T.update(g.StorageKeys.EVENTS_PUBLIC_TOKENS,(a={})=>{const h=a[t]||[],w=h.map(f=>f.erc20TokenAddress),L=B.filter(f=>!E.lowerCaseIncludes(w,f.erc20TokenAddress));h.push(...L);const v=this.updateTokenIds(u,i,h),y={...a,[t]:v};return this.fetchedTokens=y,y}),c&&await this.updateLastProcessedBlock(o,r,c)}catch(e){p.Logger.error("public tokens db error",e)}})}async getLastProcessedBlock(r,o){const t=await T.get(g.StorageKeys.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS)||{},n=d.getStateKey(o,r);return t[n]||x.EVENTS_INITIAL_BLOCKS[r]}async updateLastProcessedBlock(r,o,t){await T.update(g.StorageKeys.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS,(n={})=>{const e=d.getStateKey(o,r);return{...n,[e]:t}})}async getEvents(r,o){try{const{fetchRpcUrl:t}=m.networkRegistry[o];if(!t)throw Error("No fetchRpcUrl in PublicTokensDB");const n=K.createCustomRpcProvider(t),e=await this.getLastProcessedBlock(o,r)+1,s=await n.getBlockNumber(),i=k.ethers.utils.hexZeroPad(r.toLowerCase(),32),u={topics:[this.transferEventTopic,null,i],fromBlock:e,toBlock:s},c={topics:[this.transferEventTopic,i,null],fromBlock:e,toBlock:s},[q,l]=await Promise.all([n.getLogs(u),n.getLogs(c)]);return{toEvents:q,fromEvents:l,latestBlock:s}}catch(t){return p.Logger.error("Error fetching events:",t),{toEvents:[],fromEvents:[],latestBlock:void 0}}}updateTokenIds(r,o,t){const n=new Map;return t.forEach(e=>{if(S.isNFTToken(e)&&e.tokenIds){const s=e.erc20TokenAddress.toLowerCase();n.set(s,[...e.tokenIds])}}),o.forEach(e=>{if(e.topics.length<=3)return;const s=e.address.toLowerCase(),i=k.ethers.BigNumber.from(e.topics[3]).toString();n.has(s)||n.set(s,[]),n.get(s)?.push(i)}),r.forEach(e=>{if(e.topics.length<=3)return;const s=e.address.toLowerCase(),i=n.get(s);if(i?.length){const u=k.ethers.BigNumber.from(e.topics[3]).toString(),c=i.indexOf(u);c!==-1&&i.splice(c,1)}}),t.forEach(e=>{if(S.isNFTToken(e)){const s=e.erc20TokenAddress.toLowerCase(),i=n.get(s);e.tokenIds=i?.length&&i.length>0?i:void 0}}),t}async fetchPublicTokens(r,o,t){try{const n=[A.zeroAddress,...new Set(r.map(s=>s.address))].filter(s=>s&&!E.lowerCaseIncludes(t,s));return n.length?{erc20Tokens:(await _.API.tokensInfoCall(o,n)).filter(s=>!!s)}:{erc20Tokens:[]}}catch(n){return p.Logger.error("Error fetching public tokens:",n),{erc20Tokens:[]}}}}const N=new P;exports.EventsPublicTokensDB=P;exports.eventsPublicTokensDB=N;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { ethers as u } from "ethers";
|
|
2
2
|
import { get as B, update as w } from "idb-keyval";
|
|
3
|
-
import { API as
|
|
4
|
-
import { networkRegistry as
|
|
3
|
+
import { API as C } from "../../API/API.mjs";
|
|
4
|
+
import { networkRegistry as v } from "../../constants/chains.constants.mjs";
|
|
5
5
|
import { Logger as h } from "../../error-handling/logger.mjs";
|
|
6
6
|
import { lowerCaseIncludes as g } from "../../functions/utils/caseInsensitive.utils.mjs";
|
|
7
7
|
import { StorageKeys as k } from "../../types/cache.types.mjs";
|
|
8
|
-
import { getStateKey as
|
|
8
|
+
import { getStateKey as m } from "../../functions/utils/string.utils.mjs";
|
|
9
9
|
import { zeroAddress as x } from "../../constants/protocol.constants.mjs";
|
|
10
10
|
import { Mutex as _ } from "async-mutex";
|
|
11
11
|
import { isNFTToken as P } from "../../functions/utils/erc20tokenFunctions.mjs";
|
|
@@ -13,29 +13,32 @@ import { tokenVisibilityStorage as N } from "./token-visibility-db.mjs";
|
|
|
13
13
|
import "../../types/circom-data.types.mjs";
|
|
14
14
|
import "../../types/transactions.types.mjs";
|
|
15
15
|
import "../../types/activities.types.mjs";
|
|
16
|
+
import "@coral-xyz/anchor";
|
|
17
|
+
import "@solana/web3.js";
|
|
16
18
|
import "../../constants/kyc.constants.mjs";
|
|
17
|
-
import {
|
|
19
|
+
import { createCustomRpcProvider as I } from "../../functions/utils/create-provider.mjs";
|
|
18
20
|
import "../../functions/utils/convertIntegrationProviderToExternalActionId.mjs";
|
|
19
21
|
import "circomlibjs-hinkal-fork";
|
|
20
22
|
import "../../error-handling/error-codes.constants.mjs";
|
|
21
23
|
import "../crypto-keys/keys.mjs";
|
|
22
24
|
import "../../constants/server.constants.mjs";
|
|
23
25
|
import "../../constants/vite.constants.mjs";
|
|
26
|
+
import "../http/HttpClient.mjs";
|
|
24
27
|
import "axios";
|
|
25
28
|
import "../../API/getServerURL.mjs";
|
|
26
|
-
import "../../constants/reorg-depths.constants.mjs";
|
|
27
|
-
import "../../functions/utils/mutexes.utils.mjs";
|
|
28
29
|
import "libsodium-wrappers";
|
|
29
30
|
import "process";
|
|
30
31
|
import "buffer";
|
|
31
32
|
import "../../constants/save-depths.mjs";
|
|
33
|
+
import "../../constants/reorg-depths.constants.mjs";
|
|
34
|
+
import "../../functions/utils/mutexes.utils.mjs";
|
|
35
|
+
import "@solana/spl-token";
|
|
32
36
|
import "../../constants/token-data/index.mjs";
|
|
33
37
|
import "../../constants/contracts.constants.mjs";
|
|
34
38
|
import "../../constants/coingecko.constants.mjs";
|
|
35
39
|
import "../../constants/addresses.constants.mjs";
|
|
36
40
|
import "../../constants/token.limits.constants.mjs";
|
|
37
41
|
import "../../constants/presale.constants.mjs";
|
|
38
|
-
import "../../constants/mystery-boxes.constants.mjs";
|
|
39
42
|
import "../../constants/activity.constants.mjs";
|
|
40
43
|
import "../../constants/tasks.constants.mjs";
|
|
41
44
|
import { EVENTS_INITIAL_BLOCKS as O } from "../../constants/events.constants.mjs";
|
|
@@ -54,21 +57,21 @@ class K {
|
|
|
54
57
|
return this.updateMutexes[e] || (this.updateMutexes[e] = new _()), this.updateMutexes[e];
|
|
55
58
|
}
|
|
56
59
|
async getPublicTokens(e, s) {
|
|
57
|
-
const o =
|
|
60
|
+
const o = m(s, e);
|
|
58
61
|
return (await B(k.EVENTS_PUBLIC_TOKENS))?.[o] || [];
|
|
59
62
|
}
|
|
60
63
|
getFetchedTokens(e, s) {
|
|
61
|
-
const o =
|
|
64
|
+
const o = m(s, e);
|
|
62
65
|
return this.fetchedTokens[o] || [];
|
|
63
66
|
}
|
|
64
67
|
async fetchAndUpdatePublicTokens(e, s) {
|
|
65
|
-
const o =
|
|
68
|
+
const o = m(e, s);
|
|
66
69
|
await this.getMutex(o).runExclusive(async () => {
|
|
67
70
|
try {
|
|
68
|
-
const r = (await this.getPublicTokens(s, e)).map((a) => a.erc20TokenAddress), { toEvents: i, fromEvents: p, latestBlock: c } = await this.getEvents(e, s), l = [...i, ...p], { erc20Tokens:
|
|
71
|
+
const r = (await this.getPublicTokens(s, e)).map((a) => a.erc20TokenAddress), { toEvents: i, fromEvents: p, latestBlock: c } = await this.getEvents(e, s), l = [...i, ...p], { erc20Tokens: d } = await this.fetchPublicTokens(l, s, r), S = await N.hideSpamsAndFetchHiddenTokensAddresses(
|
|
69
72
|
s,
|
|
70
|
-
|
|
71
|
-
), L =
|
|
73
|
+
d
|
|
74
|
+
), L = d.filter(
|
|
72
75
|
(a) => !g(S, a.erc20TokenAddress)
|
|
73
76
|
// filter out hidden tokens
|
|
74
77
|
);
|
|
@@ -89,12 +92,12 @@ class K {
|
|
|
89
92
|
});
|
|
90
93
|
}
|
|
91
94
|
async getLastProcessedBlock(e, s) {
|
|
92
|
-
const o = await B(k.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS) || {}, n =
|
|
95
|
+
const o = await B(k.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS) || {}, n = m(s, e);
|
|
93
96
|
return o[n] || O[e];
|
|
94
97
|
}
|
|
95
98
|
async updateLastProcessedBlock(e, s, o) {
|
|
96
99
|
await w(k.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS, (n = {}) => {
|
|
97
|
-
const t =
|
|
100
|
+
const t = m(s, e);
|
|
98
101
|
return {
|
|
99
102
|
...n,
|
|
100
103
|
[t]: o
|
|
@@ -103,7 +106,7 @@ class K {
|
|
|
103
106
|
}
|
|
104
107
|
async getEvents(e, s) {
|
|
105
108
|
try {
|
|
106
|
-
const { fetchRpcUrl: o } =
|
|
109
|
+
const { fetchRpcUrl: o } = v[s];
|
|
107
110
|
if (!o)
|
|
108
111
|
throw Error("No fetchRpcUrl in PublicTokensDB");
|
|
109
112
|
const n = I(o), t = await this.getLastProcessedBlock(s, e) + 1, r = await n.getBlockNumber(), i = u.utils.hexZeroPad(e.toLowerCase(), 32), p = {
|
|
@@ -114,8 +117,8 @@ class K {
|
|
|
114
117
|
topics: [this.transferEventTopic, i, null],
|
|
115
118
|
fromBlock: t,
|
|
116
119
|
toBlock: r
|
|
117
|
-
}, [l,
|
|
118
|
-
return { toEvents: l, fromEvents:
|
|
120
|
+
}, [l, d] = await Promise.all([n.getLogs(p), n.getLogs(c)]);
|
|
121
|
+
return { toEvents: l, fromEvents: d, latestBlock: r };
|
|
119
122
|
} catch (o) {
|
|
120
123
|
return h.error("Error fetching events:", o), { toEvents: [], fromEvents: [], latestBlock: void 0 };
|
|
121
124
|
}
|
|
@@ -155,7 +158,7 @@ class K {
|
|
|
155
158
|
const n = [x, ...new Set(e.map((r) => r.address))].filter(
|
|
156
159
|
(r) => r && !g(o, r)
|
|
157
160
|
);
|
|
158
|
-
return n.length ? { erc20Tokens: (await
|
|
161
|
+
return n.length ? { erc20Tokens: (await C.tokensInfoCall(s, n)).filter(
|
|
159
162
|
(r) => !!r
|
|
160
163
|
) } : { erc20Tokens: [] };
|
|
161
164
|
} catch (n) {
|
|
@@ -163,8 +166,8 @@ class K {
|
|
|
163
166
|
}
|
|
164
167
|
}
|
|
165
168
|
}
|
|
166
|
-
const
|
|
169
|
+
const Ot = new K();
|
|
167
170
|
export {
|
|
168
171
|
K as EventsPublicTokensDB,
|
|
169
|
-
|
|
172
|
+
Ot as eventsPublicTokensDB
|
|
170
173
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const k=require("idb-keyval"),w=require("../../API/API.cjs"),P=require("../../error-handling/logger.cjs"),T=require("../../functions/utils/caseInsensitive.utils.cjs"),d=require("../../types/cache.types.cjs"),u=require("../../functions/utils/string.utils.cjs"),S=require("./token-visibility-db.cjs");class y{fetchedTokens={};initalFetched=!1;async updateFetchedTokens(){const s=await k.get(d.StorageKeys.PRIVATE_TOKENS);this.fetchedTokens=s??{},this.initalFetched=!0}async getPrivateTokens(s,e){const n=u.getStateKey(e,s);return(await k.get(d.StorageKeys.PRIVATE_TOKENS))?.[n]||[]}async fetchPrivateTokens(s,e,n){try{const r=[...new Set(e)].filter(t=>t&&!T.lowerCaseIncludes(n,t));if(!r.length)return[];const l=(await w.API.tokensInfoCall(s,r)).filter(t=>!!t),i=new Map;return l.forEach(t=>{i.set(t.erc20TokenAddress.toLowerCase(),t)}),Array.from(i.values())}catch(r){return P.Logger.error("Error fetching private tokens:",r),[]}}async fetchAndUpdatePrivateTokens(s,e,n,r){const i=(await this.getPrivateTokens(e,n)).map(a=>a.erc20TokenAddress),t=r??await this.fetchPrivateTokens(e,s,i),v=await S.tokenVisibilityStorage.hideSpamsAndFetchHiddenTokensAddresses(e,t),h=u.getStateKey(n,e);await k.update(d.StorageKeys.PRIVATE_TOKENS,(a={})=>{const c=a?.[h]||[],p=c.map(o=>o.erc20TokenAddress),f=t.filter(o=>!T.lowerCaseIncludes(p,o.erc20TokenAddress));c.push(...f);const A=c.filter(o=>!T.lowerCaseIncludes(v,o.erc20TokenAddress)),g={...a,[h]:A};return this.fetchedTokens=g,g})}getFetchedTokens(s,e){const n=u.getStateKey(e,s);return this.fetchedTokens[n]||[]}}const K=new y;exports.PrivateTokensDB=y;exports.privateTokensDB=K;
|