@hinkal/common 0.2.18 → 0.2.20
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 +14 -14
- package/API/API.mjs +92 -93
- package/API/admin-calls.cjs +1 -1
- package/API/admin-calls.d.ts +1 -1
- package/API/admin-calls.mjs +4 -4
- package/API/callLifiAPI.cjs +1 -1
- package/API/callLifiAPI.d.ts +1 -1
- package/API/callLifiAPI.mjs +5 -5
- package/API/callMonitor.cjs +1 -1
- package/API/callMonitor.d.ts +1 -1
- package/API/callMonitor.mjs +7 -7
- package/API/callOdosAPI.cjs +1 -1
- package/API/callOdosAPI.mjs +11 -11
- package/API/callOkxAPI.cjs +1 -1
- package/API/callOkxAPI.d.ts +1 -1
- package/API/callOkxAPI.mjs +5 -5
- package/API/callOneInchAPI.cjs +1 -1
- package/API/callOneInchAPI.mjs +10 -11
- package/API/callRelayer.cjs +1 -1
- package/API/callRelayer.d.ts +6 -3
- package/API/callRelayer.mjs +11 -11
- package/API/checkRisk.cjs +1 -1
- package/API/checkRisk.d.ts +1 -1
- package/API/checkRisk.mjs +4 -4
- package/API/enclaveCalls.cjs +1 -1
- package/API/enclaveCalls.mjs +5 -4
- package/API/fetchCommitmentsCache.cjs +1 -1
- package/API/fetchCommitmentsCache.mjs +9 -9
- package/API/get-token-data.cjs +1 -1
- package/API/get-token-data.d.ts +1 -1
- package/API/get-token-data.mjs +5 -5
- package/API/get-token-price-chart-data.cjs +1 -0
- package/API/get-token-price-chart-data.d.ts +16 -0
- package/API/get-token-price-chart-data.mjs +13 -0
- package/API/getGasEstimates.cjs +1 -1
- package/API/getGasEstimates.mjs +9 -9
- package/API/getServerURL.cjs +1 -1
- package/API/getServerURL.d.ts +3 -3
- package/API/getServerURL.mjs +51 -67
- package/API/getTokenPrice.cjs +1 -1
- package/API/getTokenPrice.d.ts +5 -0
- package/API/getTokenPrice.mjs +14 -7
- package/API/index.d.ts +1 -3
- package/API/is-tx-stateless.cjs +1 -1
- package/API/is-tx-stateless.d.ts +1 -1
- package/API/is-tx-stateless.mjs +10 -12
- package/API/kycCalls.cjs +1 -1
- package/API/kycCalls.d.ts +4 -8
- package/API/kycCalls.mjs +23 -26
- package/API/onrampCalls.cjs +1 -0
- package/API/onrampCalls.d.ts +20 -0
- package/API/onrampCalls.mjs +15 -0
- package/API/proxyAccountsCalls.cjs +1 -1
- package/API/proxyAccountsCalls.d.ts +7 -2
- package/API/proxyAccountsCalls.mjs +27 -21
- package/API/relayCalls.cjs +1 -1
- package/API/relayCalls.mjs +4 -4
- package/API/scheduled-transactions-calls.cjs +1 -1
- package/API/scheduled-transactions-calls.d.ts +1 -1
- package/API/scheduled-transactions-calls.mjs +4 -4
- package/API/simulate-batch-tx.cjs +1 -1
- package/API/simulate-batch-tx.d.ts +2 -2
- package/API/simulate-batch-tx.mjs +7 -6
- package/API/solana-calls.cjs +1 -1
- package/API/solana-calls.d.ts +6 -3
- package/API/solana-calls.mjs +15 -15
- package/API/temporaryWalletCalls.cjs +1 -0
- package/API/temporaryWalletCalls.d.ts +13 -0
- package/API/temporaryWalletCalls.mjs +20 -0
- package/API/token-calls.cjs +1 -1
- package/API/token-calls.mjs +6 -5
- package/API/unspent-utxos-calls.cjs +1 -1
- package/API/unspent-utxos-calls.d.ts +2 -2
- package/API/unspent-utxos-calls.mjs +17 -18
- package/README.md +239 -64
- package/constants/addresses.constants.cjs +1 -1
- package/constants/addresses.constants.d.ts +0 -1
- package/constants/addresses.constants.mjs +7 -8
- package/constants/chains.constants.cjs +1 -1
- package/constants/chains.constants.d.ts +1 -6
- package/constants/chains.constants.mjs +63 -50
- package/constants/coingecko.constants.cjs +1 -1
- package/constants/coingecko.constants.d.ts +1 -0
- package/constants/coingecko.constants.mjs +11 -10
- package/constants/contracts.constants.cjs +1 -1
- package/constants/contracts.constants.mjs +34 -41
- package/constants/deploy-data/deploy-data-solana.json.cjs +1 -1
- package/constants/deploy-data/deploy-data-solana.json.mjs +28 -2
- package/constants/function-signatures.constants.cjs +1 -1
- package/constants/function-signatures.constants.d.ts +0 -1
- package/constants/function-signatures.constants.mjs +3 -4
- package/constants/kyc.constants.cjs +1 -1
- package/constants/kyc.constants.mjs +39 -40
- package/constants/mediaUrls.constants.cjs +1 -1
- package/constants/mediaUrls.constants.d.ts +1 -0
- package/constants/mediaUrls.constants.mjs +2 -1
- package/constants/mystery-boxes.constants.d.ts +0 -0
- package/constants/permit2.constants.cjs +1 -1
- package/constants/permit2.constants.d.ts +0 -1
- package/constants/permit2.constants.mjs +10 -11
- package/constants/server.constants.cjs +1 -1
- package/constants/server.constants.d.ts +20 -123
- package/constants/server.constants.mjs +39 -142
- package/constants/token-data/ethMainnetRegistry.json.cjs +1 -1
- package/constants/token-data/ethMainnetRegistry.json.mjs +0 -24
- package/constants/token-data/ethMainnetRegistryFixed.json.cjs +1 -1
- package/constants/token-data/ethMainnetRegistryFixed.json.mjs +0 -24
- package/constants/token-data/index.d.ts +32 -88
- package/constants/token-data/localhostRegistry.json.cjs +1 -1
- package/constants/token-data/localhostRegistry.json.mjs +0 -26
- package/constants/token-data/polygonRegistry.json.cjs +1 -1
- package/constants/token-data/polygonRegistry.json.mjs +4 -4
- package/constants/token-data/polygonRegistryFixed.json.cjs +1 -1
- package/constants/token-data/polygonRegistryFixed.json.mjs +4 -4
- package/constants/token-data/popularTokens.constants.cjs +1 -1
- package/constants/token-data/popularTokens.constants.mjs +0 -1
- package/data-structures/AccountActions/AccountActions.cjs +1 -0
- package/data-structures/AccountActions/AccountActions.d.ts +18 -0
- package/data-structures/AccountActions/AccountActions.mjs +78 -0
- package/data-structures/AccountActions/index.d.ts +1 -0
- package/data-structures/ApprovalDBs/EventsPublicApprovalsDB.cjs +1 -1
- package/data-structures/ApprovalDBs/EventsPublicApprovalsDB.mjs +68 -71
- package/data-structures/BlockchainEvent/BlockchainEvent.cjs +1 -0
- package/data-structures/BlockchainEvent/BlockchainEvent.d.ts +14 -0
- package/data-structures/BlockchainEvent/BlockchainEvent.mjs +41 -0
- package/data-structures/Hinkal/Hinkal.cjs +1 -1
- package/data-structures/Hinkal/Hinkal.d.ts +45 -54
- package/data-structures/Hinkal/Hinkal.mjs +314 -341
- package/data-structures/Hinkal/IHinkal.d.ts +40 -52
- package/data-structures/Hinkal/handleAutoDepositBack.cjs +1 -1
- package/data-structures/Hinkal/handleAutoDepositBack.d.ts +1 -1
- package/data-structures/Hinkal/handleAutoDepositBack.mjs +49 -50
- package/data-structures/Hinkal/hinkalActionReceive.cjs +1 -1
- package/data-structures/Hinkal/hinkalActionReceive.mjs +29 -24
- package/data-structures/Hinkal/hinkalCheckTokenRegistry.cjs +1 -1
- package/data-structures/Hinkal/hinkalCheckTokenRegistry.mjs +20 -20
- package/data-structures/Hinkal/hinkalDeposit.cjs +1 -1
- package/data-structures/Hinkal/hinkalDeposit.mjs +87 -85
- package/data-structures/Hinkal/hinkalDepositAndWithdraw.cjs +1 -1
- package/data-structures/Hinkal/hinkalDepositAndWithdraw.mjs +78 -169
- package/data-structures/Hinkal/hinkalDepositOnChainUtxos.cjs +1 -0
- package/data-structures/Hinkal/hinkalDepositOnChainUtxos.d.ts +4 -0
- package/data-structures/Hinkal/hinkalDepositOnChainUtxos.mjs +103 -0
- package/data-structures/Hinkal/hinkalDepostAndBridge.cjs +1 -0
- package/data-structures/Hinkal/hinkalDepostAndBridge.d.ts +4 -0
- package/data-structures/Hinkal/hinkalDepostAndBridge.mjs +214 -0
- package/data-structures/Hinkal/hinkalGetZkMeProvider.cjs +1 -1
- package/data-structures/Hinkal/hinkalGetZkMeProvider.mjs +4 -5
- package/data-structures/Hinkal/hinkalPrivateWallet.cjs +1 -1
- package/data-structures/Hinkal/hinkalPrivateWallet.d.ts +2 -2
- package/data-structures/Hinkal/hinkalPrivateWallet.mjs +113 -117
- package/data-structures/Hinkal/hinkalProoflessDeposit.cjs +1 -1
- package/data-structures/Hinkal/hinkalProoflessDeposit.mjs +36 -34
- package/data-structures/Hinkal/hinkalProxySwap.cjs +1 -1
- package/data-structures/Hinkal/hinkalProxySwap.mjs +40 -36
- package/data-structures/Hinkal/hinkalProxyToPrivate.cjs +1 -1
- package/data-structures/Hinkal/hinkalProxyToPrivate.mjs +37 -32
- package/data-structures/Hinkal/hinkalSignSubAccount.cjs +1 -1
- package/data-structures/Hinkal/hinkalSignSubAccount.d.ts +1 -2
- package/data-structures/Hinkal/hinkalSignSubAccount.mjs +17 -15
- package/data-structures/Hinkal/hinkalSolanaDeposit.cjs +1 -1
- package/data-structures/Hinkal/hinkalSolanaDeposit.d.ts +4 -3
- package/data-structures/Hinkal/hinkalSolanaDeposit.mjs +84 -95
- package/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.cjs +1 -1
- package/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.d.ts +2 -1
- package/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.mjs +157 -155
- package/data-structures/Hinkal/hinkalSolanaProxySend.cjs +1 -1
- package/data-structures/Hinkal/hinkalSolanaProxySend.d.ts +2 -3
- package/data-structures/Hinkal/hinkalSolanaProxySend.mjs +43 -40
- package/data-structures/Hinkal/hinkalSolanaProxyShield.cjs +1 -1
- package/data-structures/Hinkal/hinkalSolanaProxyShield.mjs +71 -67
- package/data-structures/Hinkal/hinkalSolanaProxySwap.cjs +1 -1
- package/data-structures/Hinkal/hinkalSolanaProxySwap.d.ts +1 -1
- package/data-structures/Hinkal/hinkalSolanaProxySwap.mjs +63 -59
- package/data-structures/Hinkal/hinkalSolanaSwap.cjs +1 -1
- package/data-structures/Hinkal/hinkalSolanaSwap.d.ts +1 -1
- package/data-structures/Hinkal/hinkalSolanaSwap.mjs +81 -77
- package/data-structures/Hinkal/hinkalSolanaTransfer.cjs +1 -1
- package/data-structures/Hinkal/hinkalSolanaTransfer.mjs +49 -48
- package/data-structures/Hinkal/hinkalSolanaWithdraw.cjs +1 -1
- package/data-structures/Hinkal/hinkalSolanaWithdraw.d.ts +2 -1
- package/data-structures/Hinkal/hinkalSolanaWithdraw.mjs +71 -68
- package/data-structures/Hinkal/hinkalSwap.cjs +1 -1
- package/data-structures/Hinkal/hinkalSwap.mjs +71 -79
- package/data-structures/Hinkal/hinkalTransfer.cjs +1 -1
- package/data-structures/Hinkal/hinkalTransfer.mjs +72 -71
- package/data-structures/Hinkal/hinkalWithdraw.cjs +1 -1
- package/data-structures/Hinkal/hinkalWithdraw.mjs +81 -79
- package/data-structures/Hinkal/hinkalWithdrawStuckUtxos.cjs +1 -1
- package/data-structures/Hinkal/hinkalWithdrawStuckUtxos.mjs +108 -108
- package/data-structures/Hinkal/resetMerkleTrees.cjs +1 -1
- package/data-structures/Hinkal/resetMerkleTrees.d.ts +1 -1
- package/data-structures/Hinkal/resetMerkleTrees.mjs +107 -53
- package/data-structures/IndexedDB/activity-db.cjs +1 -1
- package/data-structures/IndexedDB/activity-db.d.ts +1 -0
- package/data-structures/IndexedDB/activity-db.mjs +92 -76
- package/data-structures/IndexedDB/balances-db.cjs +1 -1
- package/data-structures/IndexedDB/balances-db.mjs +40 -37
- package/data-structures/IndexedDB/contact-db.cjs +1 -1
- package/data-structures/IndexedDB/contact-db.mjs +18 -15
- package/data-structures/IndexedDB/signatures-db.cjs +1 -1
- package/data-structures/IndexedDB/signatures-db.mjs +25 -40
- package/data-structures/PublicBalance/PublicBalanceWatcher.cjs +1 -0
- package/data-structures/PublicBalance/PublicBalanceWatcher.d.ts +20 -0
- package/data-structures/PublicBalance/PublicBalanceWatcher.mjs +124 -0
- package/data-structures/PublicBalance/SolanaPublicBalancerWatcher.cjs +1 -0
- package/data-structures/PublicBalance/SolanaPublicBalancerWatcher.d.ts +15 -0
- package/data-structures/PublicBalance/SolanaPublicBalancerWatcher.mjs +64 -0
- package/data-structures/PublicBalance/index.d.ts +2 -0
- package/data-structures/TokenDBs/EventsPublicTokensDB.cjs +1 -1
- package/data-structures/TokenDBs/EventsPublicTokensDB.mjs +83 -85
- package/data-structures/TokenDBs/token-visibility-db.cjs +1 -1
- package/data-structures/TokenDBs/token-visibility-db.mjs +22 -36
- package/data-structures/crypto-keys/encryptDecryptUtxo.cjs +1 -1
- package/data-structures/crypto-keys/encryptDecryptUtxo.d.ts +1 -1
- package/data-structures/crypto-keys/encryptDecryptUtxo.mjs +14 -14
- package/data-structures/crypto-keys/keys.cjs +1 -1
- package/data-structures/crypto-keys/keys.d.ts +0 -11
- package/data-structures/crypto-keys/keys.mjs +47 -107
- package/data-structures/event-service/evm/AbstractAccessTokenSnapshotService.cjs +1 -1
- package/data-structures/event-service/evm/AbstractAccessTokenSnapshotService.d.ts +3 -2
- package/data-structures/event-service/evm/AbstractAccessTokenSnapshotService.mjs +9 -9
- package/data-structures/event-service/evm/AbstractApprovalsSnapshotService.cjs +1 -1
- package/data-structures/event-service/evm/AbstractApprovalsSnapshotService.d.ts +3 -2
- package/data-structures/event-service/evm/AbstractApprovalsSnapshotService.mjs +5 -5
- package/data-structures/event-service/evm/AbstractCommitmentsSnapshotService.cjs +1 -1
- package/data-structures/event-service/evm/AbstractCommitmentsSnapshotService.d.ts +3 -2
- package/data-structures/event-service/evm/AbstractCommitmentsSnapshotService.mjs +6 -6
- package/data-structures/event-service/evm/AbstractEventService.cjs +1 -1
- package/data-structures/event-service/evm/AbstractEventService.d.ts +4 -2
- package/data-structures/event-service/evm/AbstractEventService.mjs +19 -19
- package/data-structures/event-service/evm/AbstractNullifierSnapshotService.cjs +1 -1
- package/data-structures/event-service/evm/AbstractNullifierSnapshotService.d.ts +3 -3
- package/data-structures/event-service/evm/AbstractNullifierSnapshotService.mjs +6 -5
- package/data-structures/event-service/evm/AbstractSnapshotService.cjs +1 -1
- package/data-structures/event-service/evm/AbstractSnapshotService.d.ts +1 -2
- package/data-structures/event-service/evm/AbstractSnapshotService.mjs +3 -4
- package/data-structures/event-service/evm/BlockchainEventEmitter.cjs +1 -1
- package/data-structures/event-service/evm/BlockchainEventEmitter.d.ts +10 -5
- package/data-structures/event-service/evm/BlockchainEventEmitter.mjs +39 -35
- package/data-structures/event-service/evm/ClientBlockchainEventEmitter.cjs +1 -0
- package/data-structures/event-service/evm/ClientBlockchainEventEmitter.d.ts +11 -0
- package/data-structures/event-service/evm/ClientBlockchainEventEmitter.mjs +21 -0
- package/data-structures/event-service/evm/PollingBlockchainEventEmitter.cjs +1 -0
- package/data-structures/event-service/evm/PollingBlockchainEventEmitter.d.ts +6 -0
- package/data-structures/event-service/evm/PollingBlockchainEventEmitter.mjs +16 -0
- package/data-structures/event-service/helpers/ClientEventHelper.cjs +1 -0
- package/data-structures/event-service/helpers/ClientEventHelper.d.ts +11 -0
- package/data-structures/event-service/helpers/ClientEventHelper.mjs +26 -0
- package/data-structures/event-service/helpers/PollingEventHelper.cjs +1 -0
- package/data-structures/event-service/helpers/PollingEventHelper.d.ts +5 -0
- package/data-structures/event-service/helpers/PollingEventHelper.mjs +14 -0
- package/data-structures/event-service/index.d.ts +4 -0
- package/data-structures/event-service/solana/AbstractSolanaAccessTokenSnapshotService.cjs +1 -1
- package/data-structures/event-service/solana/AbstractSolanaAccessTokenSnapshotService.d.ts +3 -2
- package/data-structures/event-service/solana/AbstractSolanaAccessTokenSnapshotService.mjs +6 -6
- package/data-structures/event-service/solana/AbstractSolanaCommitmentsSnapshotService.cjs +1 -1
- package/data-structures/event-service/solana/AbstractSolanaCommitmentsSnapshotService.d.ts +4 -3
- package/data-structures/event-service/solana/AbstractSolanaCommitmentsSnapshotService.mjs +8 -8
- package/data-structures/event-service/solana/AbstractSolanaEventService.cjs +1 -1
- package/data-structures/event-service/solana/AbstractSolanaEventService.d.ts +4 -10
- package/data-structures/event-service/solana/AbstractSolanaEventService.mjs +10 -7
- package/data-structures/event-service/solana/AbstractSolanaNullifierSnapshotService.cjs +1 -1
- package/data-structures/event-service/solana/AbstractSolanaNullifierSnapshotService.d.ts +3 -2
- package/data-structures/event-service/solana/AbstractSolanaNullifierSnapshotService.mjs +1 -1
- package/data-structures/event-service/solana/AbstractSolanaSnapshotService.cjs +1 -1
- package/data-structures/event-service/solana/AbstractSolanaSnapshotService.d.ts +1 -2
- package/data-structures/event-service/solana/AbstractSolanaSnapshotService.mjs +1 -2
- package/data-structures/event-service/solana/ClientSolanaBlockchainEventEmitter.cjs +1 -0
- package/data-structures/event-service/solana/ClientSolanaBlockchainEventEmitter.d.ts +11 -0
- package/data-structures/event-service/solana/ClientSolanaBlockchainEventEmitter.mjs +22 -0
- package/data-structures/event-service/solana/PollingSolanaBlockchainEventEmitter.cjs +1 -0
- package/data-structures/event-service/solana/PollingSolanaBlockchainEventEmitter.d.ts +6 -0
- package/data-structures/event-service/solana/PollingSolanaBlockchainEventEmitter.mjs +16 -0
- package/data-structures/event-service/solana/SolanaBlockchainEventEmitter.cjs +1 -1
- package/data-structures/event-service/solana/SolanaBlockchainEventEmitter.d.ts +11 -16
- package/data-structures/event-service/solana/SolanaBlockchainEventEmitter.mjs +64 -66
- package/data-structures/index.d.ts +3 -0
- package/data-structures/provider-adapter/IProviderAdapter.d.ts +8 -13
- package/data-structures/snapshot/evm-snapshots/ClientAccessTokenSnapshotService.cjs +1 -1
- package/data-structures/snapshot/evm-snapshots/ClientAccessTokenSnapshotService.mjs +6 -4
- package/data-structures/snapshot/evm-snapshots/ClientApprovalsSnapshotService.cjs +1 -1
- package/data-structures/snapshot/evm-snapshots/ClientApprovalsSnapshotService.mjs +6 -4
- package/data-structures/snapshot/evm-snapshots/ClientCommitmentsSnapshotService.cjs +1 -1
- package/data-structures/snapshot/evm-snapshots/ClientCommitmentsSnapshotService.mjs +6 -4
- package/data-structures/snapshot/evm-snapshots/ClientNullifierSnapshotService.cjs +1 -1
- package/data-structures/snapshot/evm-snapshots/ClientNullifierSnapshotService.mjs +6 -4
- package/data-structures/snapshot/solana-snapshots/ClientSolanaAccessTokenSnapshotService.cjs +1 -1
- package/data-structures/snapshot/solana-snapshots/ClientSolanaAccessTokenSnapshotService.mjs +6 -4
- package/data-structures/snapshot/solana-snapshots/ClientSolanaCommitmentsSnapshotService.cjs +1 -1
- package/data-structures/snapshot/solana-snapshots/ClientSolanaCommitmentsSnapshotService.mjs +5 -4
- package/data-structures/snapshot/solana-snapshots/ClientSolanaNullifierSnapshotService.cjs +1 -1
- package/data-structures/snapshot/solana-snapshots/ClientSolanaNullifierSnapshotService.mjs +6 -4
- package/data-structures/utxo/Utxo.cjs +1 -1
- package/data-structures/utxo/Utxo.d.ts +2 -7
- package/data-structures/utxo/Utxo.mjs +40 -36
- package/error-handling/error-codes.constants.cjs +1 -1
- package/error-handling/error-codes.constants.d.ts +1 -0
- package/error-handling/error-codes.constants.mjs +4 -3
- package/error-handling/get-error.message.cjs +1 -1
- package/error-handling/get-error.message.mjs +21 -27
- package/error-handling/index.d.ts +0 -1
- package/functions/index.d.ts +0 -1
- package/functions/kyc/zkMeHelper.cjs +1 -1
- package/functions/kyc/zkMeHelper.mjs +18 -17
- package/functions/pre-transaction/constructAdminData.cjs +1 -1
- package/functions/pre-transaction/constructAdminData.d.ts +2 -2
- package/functions/pre-transaction/constructAdminData.mjs +12 -18
- package/functions/pre-transaction/getExternalSwapAddress.cjs +1 -1
- package/functions/pre-transaction/getExternalSwapAddress.d.ts +1 -2
- package/functions/pre-transaction/getExternalSwapAddress.mjs +8 -8
- package/functions/pre-transaction/getFlatFees.cjs +1 -1
- package/functions/pre-transaction/getFlatFees.mjs +22 -30
- package/functions/pre-transaction/getSolanaCalldataHash.cjs +1 -1
- package/functions/pre-transaction/getSolanaCalldataHash.mjs +22 -22
- package/functions/pre-transaction/getVolatileTransferAmount.cjs +1 -1
- package/functions/pre-transaction/getVolatileTransferAmount.mjs +21 -36
- package/functions/pre-transaction/merge-with-fee-structure-emporium.cjs +1 -1
- package/functions/pre-transaction/merge-with-fee-structure-emporium.d.ts +1 -1
- package/functions/pre-transaction/merge-with-fee-structure-emporium.mjs +17 -17
- package/functions/pre-transaction/outputApprovalDataProcessing.cjs +1 -1
- package/functions/pre-transaction/outputApprovalDataProcessing.d.ts +1 -9
- package/functions/pre-transaction/outputApprovalDataProcessing.mjs +19 -34
- package/functions/pre-transaction/sendV0Transaction.cjs +1 -1
- package/functions/pre-transaction/sendV0Transaction.mjs +53 -50
- package/functions/pre-transaction/shouldPatchAccessTokenMerkleTree.cjs +1 -1
- package/functions/pre-transaction/shouldPatchAccessTokenMerkleTree.d.ts +1 -1
- package/functions/pre-transaction/shouldPatchAccessTokenMerkleTree.mjs +4 -4
- package/functions/pre-transaction/solana-public-signals.cjs +1 -1
- package/functions/pre-transaction/solana-public-signals.d.ts +1 -0
- package/functions/pre-transaction/solana-public-signals.mjs +29 -26
- package/functions/pre-transaction/solana.cjs +1 -1
- package/functions/pre-transaction/solana.d.ts +2 -1
- package/functions/pre-transaction/solana.mjs +89 -80
- package/functions/private-wallet/emporium.helpers.cjs +1 -1
- package/functions/private-wallet/emporium.helpers.d.ts +4 -5
- package/functions/private-wallet/emporium.helpers.mjs +94 -109
- package/functions/private-wallet/emporium.swap.helpers.cjs +1 -1
- package/functions/private-wallet/emporium.swap.helpers.d.ts +1 -4
- package/functions/private-wallet/emporium.swap.helpers.mjs +100 -102
- package/functions/snarkjs/common.snarkjs.cjs +1 -1
- package/functions/snarkjs/common.snarkjs.d.ts +1 -1
- package/functions/snarkjs/common.snarkjs.mjs +64 -64
- package/functions/snarkjs/constructEmporiumProof.cjs +1 -1
- package/functions/snarkjs/constructEmporiumProof.d.ts +1 -2
- package/functions/snarkjs/constructEmporiumProof.mjs +89 -89
- package/functions/snarkjs/constructGeneralZkProof.cjs +1 -1
- package/functions/snarkjs/constructGeneralZkProof.d.ts +1 -2
- package/functions/snarkjs/constructGeneralZkProof.mjs +117 -121
- package/functions/snarkjs/constructSolanaZkProof.cjs +1 -1
- package/functions/snarkjs/constructSolanaZkProof.d.ts +1 -1
- package/functions/snarkjs/constructSolanaZkProof.mjs +58 -59
- package/functions/snarkjs/fetchMerkleTreeSiblings.cjs +1 -1
- package/functions/snarkjs/fetchMerkleTreeSiblings.mjs +11 -10
- package/functions/utils/addresses.cjs +1 -1
- package/functions/utils/addresses.d.ts +1 -0
- package/functions/utils/addresses.mjs +13 -12
- package/functions/utils/bytes32.utils.cjs +1 -1
- package/functions/utils/bytes32.utils.mjs +8 -7
- package/functions/utils/cacheFunctions.cjs +1 -1
- package/functions/utils/cacheFunctions.mjs +2 -2
- package/functions/utils/create-provider.cjs +1 -1
- package/functions/utils/create-provider.d.ts +1 -1
- package/functions/utils/create-provider.mjs +13 -9
- package/functions/utils/erc20tokenFunctions.cjs +1 -1
- package/functions/utils/erc20tokenFunctions.d.ts +0 -1
- package/functions/utils/erc20tokenFunctions.mjs +22 -29
- package/functions/utils/getUtxosFromReceipt.utils.cjs +1 -1
- package/functions/utils/getUtxosFromReceipt.utils.d.ts +1 -1
- package/functions/utils/getUtxosFromReceipt.utils.mjs +11 -11
- package/functions/utils/index.d.ts +0 -1
- package/functions/utils/involves-permit2-op.cjs +1 -1
- package/functions/utils/involves-permit2-op.d.ts +0 -1
- package/functions/utils/involves-permit2-op.mjs +4 -6
- package/functions/utils/mutexes.utils.cjs +1 -1
- package/functions/utils/mutexes.utils.d.ts +1 -1
- package/functions/utils/mutexes.utils.mjs +3 -3
- package/functions/utils/nftTokenFunctions.cjs +1 -1
- package/functions/utils/nftTokenFunctions.mjs +8 -23
- package/functions/utils/prepareHinkal.cjs +1 -1
- package/functions/utils/prepareHinkal.d.ts +6 -13
- package/functions/utils/prepareHinkal.mjs +45 -72
- package/functions/utils/publicBalance.utils.cjs +1 -1
- package/functions/utils/publicBalance.utils.mjs +49 -54
- package/functions/utils/socket.utils.cjs +1 -0
- package/functions/utils/socket.utils.d.ts +1 -0
- package/functions/utils/socket.utils.mjs +12 -0
- package/functions/utils/string.utils.cjs +1 -1
- package/functions/utils/string.utils.d.ts +1 -0
- package/functions/utils/string.utils.mjs +18 -14
- package/functions/utils/token-check.utils.cjs +1 -1
- package/functions/utils/token-check.utils.d.ts +3 -0
- package/functions/utils/token-check.utils.mjs +18 -7
- package/functions/utils/upToDateState.cjs +1 -1
- package/functions/utils/upToDateState.d.ts +1 -1
- package/functions/utils/upToDateState.mjs +4 -4
- package/functions/utils/walletBalances.utils.cjs +1 -1
- package/functions/utils/walletBalances.utils.d.ts +2 -17
- package/functions/utils/walletBalances.utils.mjs +5 -36
- package/functions/web3/crypto.cjs +1 -0
- package/functions/web3/crypto.d.ts +1 -0
- package/functions/web3/crypto.mjs +7 -0
- package/functions/web3/events/getApprovedBalance.cjs +1 -1
- package/functions/web3/events/getApprovedBalance.d.ts +3 -4
- package/functions/web3/events/getApprovedBalance.mjs +39 -44
- package/functions/web3/events/getInputUtxoAndBalance.cjs +1 -1
- package/functions/web3/events/getInputUtxoAndBalance.d.ts +1 -1
- package/functions/web3/events/getInputUtxoAndBalance.mjs +107 -112
- package/functions/web3/events/getShieldedBalance.cjs +2 -2
- package/functions/web3/events/getShieldedBalance.d.ts +1 -1
- package/functions/web3/events/getShieldedBalance.mjs +71 -70
- package/functions/web3/events/getTransactionLogEvents.cjs +1 -1
- package/functions/web3/events/getTransactionLogEvents.mjs +38 -38
- package/functions/web3/fetchSolanaMerkleTreeRootHash.cjs +1 -1
- package/functions/web3/fetchSolanaMerkleTreeRootHash.mjs +13 -10
- package/functions/web3/functionCalls/accessTokenCalls.cjs +1 -1
- package/functions/web3/functionCalls/accessTokenCalls.d.ts +1 -6
- package/functions/web3/functionCalls/accessTokenCalls.mjs +12 -21
- package/functions/web3/functionCalls/approveToken.cjs +1 -1
- package/functions/web3/functionCalls/approveToken.d.ts +1 -1
- package/functions/web3/functionCalls/approveToken.mjs +50 -46
- package/functions/web3/functionCalls/approveTokensToHinkal.cjs +1 -1
- package/functions/web3/functionCalls/approveTokensToHinkal.d.ts +1 -1
- package/functions/web3/functionCalls/approveTokensToHinkal.mjs +6 -6
- package/functions/web3/functionCalls/estimateGasRelayer.cjs +1 -1
- package/functions/web3/functionCalls/estimateGasRelayer.d.ts +1 -2
- package/functions/web3/functionCalls/estimateGasRelayer.mjs +10 -10
- package/functions/web3/functionCalls/transactCallDirect.cjs +1 -1
- package/functions/web3/functionCalls/transactCallDirect.d.ts +1 -1
- package/functions/web3/functionCalls/transactCallDirect.mjs +36 -40
- package/functions/web3/functionCalls/transactCallRelayer.cjs +1 -1
- package/functions/web3/functionCalls/transactCallRelayer.d.ts +1 -1
- package/functions/web3/functionCalls/transactCallRelayer.mjs +36 -34
- package/functions/web3/getContractMetadata.cjs +1 -1
- package/functions/web3/getContractMetadata.mjs +17 -22
- package/functions/web3/getPublicAddressBalance.cjs +1 -1
- package/functions/web3/getPublicAddressBalance.d.ts +1 -1
- package/functions/web3/getPublicAddressBalance.mjs +6 -6
- package/functions/web3/getTokenHolder.cjs +1 -1
- package/functions/web3/getTokenHolder.mjs +27 -27
- package/functions/web3/index.d.ts +1 -0
- package/functions/web3/lifiAPI.cjs +1 -1
- package/functions/web3/lifiAPI.d.ts +1 -1
- package/functions/web3/lifiAPI.mjs +12 -12
- package/functions/web3/odosAPI.cjs +1 -1
- package/functions/web3/odosAPI.mjs +6 -19
- package/functions/web3/okxAPI.cjs +1 -1
- package/functions/web3/okxAPI.mjs +22 -22
- package/functions/web3/oneInchAPI.cjs +1 -1
- package/functions/web3/oneInchAPI.mjs +7 -20
- package/functions/web3/runContractFunction.cjs +1 -1
- package/functions/web3/runContractFunction.mjs +38 -56
- package/functions/web3/uniswapAPI.cjs +1 -1
- package/functions/web3/uniswapAPI.mjs +22 -34
- package/index.cjs +1 -1
- package/index.mjs +941 -949
- package/package.json +3 -2
- package/providers/EthersProviderAdapter.cjs +1 -1
- package/providers/EthersProviderAdapter.d.ts +10 -17
- package/providers/EthersProviderAdapter.mjs +45 -76
- package/providers/SolanaProviderAdapter.cjs +1 -1
- package/providers/SolanaProviderAdapter.d.ts +7 -11
- package/providers/SolanaProviderAdapter.mjs +16 -31
- package/providers/WagmiProviderAdapter.cjs +1 -1
- package/providers/WagmiProviderAdapter.d.ts +11 -17
- package/providers/WagmiProviderAdapter.mjs +86 -117
- package/providers/prepareEthersHinkal.cjs +1 -1
- package/providers/prepareEthersHinkal.mjs +15 -9
- package/providers/prepareWagmiHinkal.cjs +1 -1
- package/providers/prepareWagmiHinkal.mjs +16 -9
- package/types/TransactionSimulator.types.d.ts +2 -9
- package/types/activities.types.d.ts +2 -0
- package/types/admin.types.cjs +1 -1
- package/types/admin.types.d.ts +0 -6
- package/types/admin.types.mjs +2 -2
- package/types/balances.types.d.ts +0 -1
- package/types/bridging-tx.types.d.ts +17 -0
- package/types/cache.types.cjs +1 -1
- package/types/cache.types.d.ts +6 -3
- package/types/cache.types.mjs +1 -1
- package/types/coingecko.types.d.ts +5 -0
- package/types/ethereum-network.types.cjs +1 -1
- package/types/ethereum-network.types.d.ts +2 -8
- package/types/ethereum-network.types.mjs +1 -1
- package/types/events.types.cjs +1 -0
- package/types/events.types.d.ts +9 -0
- package/types/events.types.mjs +5 -0
- package/types/external-action.types.cjs +1 -1
- package/types/external-action.types.d.ts +0 -1
- package/types/external-action.types.mjs +1 -1
- package/types/hinkal.types.cjs +1 -1
- package/types/hinkal.types.d.ts +1 -7
- package/types/hinkal.types.mjs +22 -23
- package/types/index.d.ts +3 -3
- package/types/onramp.types.cjs +1 -0
- package/types/onramp.types.d.ts +58 -0
- package/types/onramp.types.mjs +4 -0
- package/types/proxy.types.d.ts +11 -3
- package/types/sandbox.types.cjs +1 -1
- package/types/sandbox.types.d.ts +10 -39
- package/types/sandbox.types.mjs +2 -2
- package/types/session.types.d.ts +2 -0
- package/types/solana.types.d.ts +9 -0
- package/types/token-prices.types.cjs +1 -1
- package/types/token-prices.types.d.ts +7 -0
- package/types/token-prices.types.mjs +4 -2
- package/types/token.types.d.ts +5 -0
- package/types/transactions.types.cjs +1 -1
- package/types/transactions.types.d.ts +2 -4
- package/types/transactions.types.mjs +3 -3
- package/webworker/snarkjsWorker/snarkjsWorkerLauncher.cjs +1 -1
- package/webworker/snarkjsWorker/snarkjsWorkerLauncher.mjs +1 -1
- package/webworker/utxoWorker/utxoWorkerLauncher.cjs +1 -1
- package/webworker/utxoWorker/utxoWorkerLauncher.mjs +1 -1
- package/webworker/zkProofWorker/zkProofWorkerLauncher.cjs +1 -1
- package/webworker/zkProofWorker/zkProofWorkerLauncher.mjs +2 -2
- package/API/ai-calls.cjs +0 -1
- package/API/ai-calls.d.ts +0 -17
- package/API/ai-calls.mjs +0 -21
- package/API/duneAPI.cjs +0 -1
- package/API/duneAPI.d.ts +0 -11
- package/API/duneAPI.mjs +0 -25
- package/API/getBridgeProtocols.cjs +0 -1
- package/API/getBridgeProtocols.d.ts +0 -7
- package/API/getBridgeProtocols.mjs +0 -8
- package/API/getLifiStatus.cjs +0 -1
- package/API/getLifiStatus.d.ts +0 -24
- package/API/getLifiStatus.mjs +0 -15
- package/API/getRelayerURL.cjs +0 -1
- package/API/getRelayerURL.d.ts +0 -1
- package/API/getRelayerURL.mjs +0 -10
- package/API/passwordCalls.cjs +0 -1
- package/API/passwordCalls.d.ts +0 -9
- package/API/passwordCalls.mjs +0 -13
- package/API/restoreSnapshots.cjs +0 -1
- package/API/restoreSnapshots.d.ts +0 -1
- package/API/restoreSnapshots.mjs +0 -10
- package/data-structures/Hinkal/hinkalActionFundApproveAndTransact.cjs +0 -1
- package/data-structures/Hinkal/hinkalActionFundApproveAndTransact.d.ts +0 -7
- package/data-structures/Hinkal/hinkalActionFundApproveAndTransact.mjs +0 -42
- package/data-structures/Hinkal/hinkalActionStake.d.ts +0 -3
- package/data-structures/Hinkal/hinkalApprove.cjs +0 -1
- package/data-structures/Hinkal/hinkalApprove.d.ts +0 -3
- package/data-structures/Hinkal/hinkalApprove.mjs +0 -115
- package/data-structures/Hinkal/hinkalInsideTransact.cjs +0 -1
- package/data-structures/Hinkal/hinkalInsideTransact.d.ts +0 -4
- package/data-structures/Hinkal/hinkalInsideTransact.mjs +0 -121
- package/error-handling/handleErrorRestore.cjs +0 -1
- package/error-handling/handleErrorRestore.d.ts +0 -2
- package/error-handling/handleErrorRestore.mjs +0 -11
- package/functions/kyc/authentoHelper.cjs +0 -1
- package/functions/kyc/authentoHelper.d.ts +0 -12
- package/functions/kyc/authentoHelper.mjs +0 -30
- package/functions/staking/index.cjs +0 -1
- package/functions/staking/index.d.ts +0 -11
- package/functions/staking/index.mjs +0 -42
- package/functions/utils/get-hinkal-approvals.cjs +0 -1
- package/functions/utils/get-hinkal-approvals.d.ts +0 -3
- package/functions/utils/get-hinkal-approvals.mjs +0 -38
- package/functions/utils/replaceAddressInCalldata.cjs +0 -1
- package/functions/utils/replaceAddressInCalldata.d.ts +0 -1
- package/functions/utils/replaceAddressInCalldata.mjs +0 -7
- package/functions/web3/functionCalls/inHinkalApprovalCalls.cjs +0 -1
- package/functions/web3/functionCalls/inHinkalApprovalCalls.d.ts +0 -5
- package/functions/web3/functionCalls/inHinkalApprovalCalls.mjs +0 -32
- package/types/bridging.types.d.ts +0 -29
- package/types/duneAPI.types.d.ts +0 -9
- package/types/hinkal.stake.types.cjs +0 -1
- package/types/hinkal.stake.types.d.ts +0 -11
- package/types/hinkal.stake.types.mjs +0 -4
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { WebSocketProvider as E, zeroPadValue as A, keccak256 as h, toUtf8Bytes as d, Interface as u } from "ethers-v6h";
|
|
2
|
+
import { WALLET_SUPPORTED_CHAINS as f, isSolanaLike as B, networkRegistry as g } from "../../constants/chains.constants.mjs";
|
|
3
|
+
import { ERC20ABI as w, ERC1155ABI as y } from "../../externalABIs/index.mjs";
|
|
4
|
+
import { caseInsensitiveEqual as o } from "../../functions/utils/caseInsensitive.utils.mjs";
|
|
5
|
+
import { getStateKey as b, getAddressFromStateKey as T } from "../../functions/utils/string.utils.mjs";
|
|
6
|
+
const R = 1e4;
|
|
7
|
+
class k {
|
|
8
|
+
subscribedAddresses = /* @__PURE__ */ new Set();
|
|
9
|
+
providers = /* @__PURE__ */ new Map();
|
|
10
|
+
nativeBalances = /* @__PURE__ */ new Map();
|
|
11
|
+
balanceChangeCallback;
|
|
12
|
+
eventListeners = /* @__PURE__ */ new Map();
|
|
13
|
+
constructor() {
|
|
14
|
+
f.forEach((e) => {
|
|
15
|
+
B(e) || this.initializeChain(e);
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
initializeChain(e) {
|
|
19
|
+
const { wsRpcUrl: t } = g[e];
|
|
20
|
+
if (!t)
|
|
21
|
+
return;
|
|
22
|
+
const r = new E(t, e);
|
|
23
|
+
this.providers.set(e, r), this.eventListeners.set(e, []), this.setupNativeBalanceListener(r, e), this.setupFilteredEventListeners(r, e);
|
|
24
|
+
}
|
|
25
|
+
setupFilteredEventListeners(e, t) {
|
|
26
|
+
if (this.eventListeners.get(t)?.forEach((l) => l()), this.eventListeners.set(t, []), this.subscribedAddresses.size === 0)
|
|
27
|
+
return;
|
|
28
|
+
const s = Array.from(this.subscribedAddresses).map((l) => A(l, 32)), a = h(d("Transfer(address,address,uint256)")), i = h(
|
|
29
|
+
d("TransferSingle(address,address,address,uint256,uint256)")
|
|
30
|
+
), c = h(
|
|
31
|
+
d("TransferBatch(address,address,address,uint256[],uint256[])")
|
|
32
|
+
), n = this.setupERC20Listener(e, [a, s]), p = this.setupERC20Listener(e, [a, null, s]), L = this.setupERC1155Listener(e, [i, null, s]), m = this.setupERC1155Listener(e, [
|
|
33
|
+
i,
|
|
34
|
+
null,
|
|
35
|
+
null,
|
|
36
|
+
s
|
|
37
|
+
]), v = this.setupERC1155Listener(e, [c, null, s]), C = this.setupERC1155Listener(e, [
|
|
38
|
+
c,
|
|
39
|
+
null,
|
|
40
|
+
null,
|
|
41
|
+
s
|
|
42
|
+
]);
|
|
43
|
+
this.eventListeners.set(t, [
|
|
44
|
+
n,
|
|
45
|
+
p,
|
|
46
|
+
L,
|
|
47
|
+
m,
|
|
48
|
+
v,
|
|
49
|
+
C
|
|
50
|
+
]);
|
|
51
|
+
}
|
|
52
|
+
setupERC20Listener(e, t) {
|
|
53
|
+
const r = (s) => {
|
|
54
|
+
try {
|
|
55
|
+
const a = new u(w).parseLog({ topics: s.topics, data: s.data });
|
|
56
|
+
if (!a)
|
|
57
|
+
return;
|
|
58
|
+
const { from: i, to: c } = a.args;
|
|
59
|
+
Array.from(this.subscribedAddresses).filter((n) => o(n, i) || o(n, c)).forEach((n) => this.balanceChangeCallback?.(n));
|
|
60
|
+
} catch {
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
return e.on({ topics: t }, r), () => e.off({ topics: t }, r);
|
|
64
|
+
}
|
|
65
|
+
setupERC1155Listener(e, t) {
|
|
66
|
+
const r = (s) => {
|
|
67
|
+
try {
|
|
68
|
+
const a = new u(y).parseLog({ topics: s.topics, data: s.data });
|
|
69
|
+
if (!a)
|
|
70
|
+
return;
|
|
71
|
+
const { from: i, to: c } = a.args;
|
|
72
|
+
Array.from(this.subscribedAddresses).filter((n) => o(n, i) || o(n, c)).forEach((n) => this.balanceChangeCallback?.(n));
|
|
73
|
+
} catch {
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
return e.on({ topics: t }, r), () => e.off({ topics: t }, r);
|
|
77
|
+
}
|
|
78
|
+
setupNativeBalanceListener(e, t) {
|
|
79
|
+
setInterval(async () => {
|
|
80
|
+
if (this.subscribedAddresses.size !== 0)
|
|
81
|
+
try {
|
|
82
|
+
await Promise.all(
|
|
83
|
+
Array.from(this.subscribedAddresses).map(async (r) => {
|
|
84
|
+
const s = await e.getBalance(r), a = b(r, t), i = this.nativeBalances.get(a) ?? 0n;
|
|
85
|
+
s !== i && (this.nativeBalances.set(a, s), this.balanceChangeCallback?.(r));
|
|
86
|
+
})
|
|
87
|
+
);
|
|
88
|
+
} catch {
|
|
89
|
+
}
|
|
90
|
+
}, R);
|
|
91
|
+
}
|
|
92
|
+
async subscribe(e) {
|
|
93
|
+
const t = e.toLowerCase();
|
|
94
|
+
this.subscribedAddresses.has(t) || (this.subscribedAddresses.add(t), this.providers.forEach((r, s) => this.setupFilteredEventListeners(r, s)), await Promise.all(
|
|
95
|
+
f.map(async (r) => {
|
|
96
|
+
const s = this.providers.get(r);
|
|
97
|
+
if (s)
|
|
98
|
+
try {
|
|
99
|
+
const a = await s.getBalance(t);
|
|
100
|
+
this.nativeBalances.set(b(t, r), a);
|
|
101
|
+
} catch {
|
|
102
|
+
}
|
|
103
|
+
})
|
|
104
|
+
));
|
|
105
|
+
}
|
|
106
|
+
unsubscribe(e) {
|
|
107
|
+
const t = e.toLowerCase();
|
|
108
|
+
this.subscribedAddresses.delete(t), this.nativeBalances.forEach((r, s) => {
|
|
109
|
+
o(T(s), t) && this.nativeBalances.delete(s);
|
|
110
|
+
}), this.providers.forEach((r, s) => this.setupFilteredEventListeners(r, s));
|
|
111
|
+
}
|
|
112
|
+
onBalanceChange(e) {
|
|
113
|
+
return this.balanceChangeCallback = e, () => {
|
|
114
|
+
this.balanceChangeCallback = void 0;
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
cleanup() {
|
|
118
|
+
this.eventListeners.forEach((e) => e.forEach((t) => t())), this.eventListeners.clear();
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
const W = new k();
|
|
122
|
+
export {
|
|
123
|
+
W as publicBalanceWatcher
|
|
124
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("@solana/spl-token"),t=require("../../constants/chains.constants.cjs"),a=require("@solana/web3.js"),b=15e3;class r{connection;subscribedAddresses=new Set;solBalances=new Map;balanceChangeCallback;constructor(){this.connection=new a.Connection(t.networkRegistry[t.chainIds.solanaMainnet].fetchRpcUrl??"","confirmed")}async subscribe(e){if(this.subscribedAddresses.has(e))return;const c=new a.PublicKey(e);this.subscribedAddresses.add(e);const o=await this.connection.getBalance(c);this.solBalances.set(e,o),this.connection.onAccountChange(c,i=>{const n=i.lamports,l=this.solBalances.get(e)??0;n!==l&&(this.solBalances.set(e,n),this.executeCallback(e))}),this.subscribeTokenAccounts(c,s.TOKEN_PROGRAM_ID),this.subscribeTokenAccounts(c,s.TOKEN_2022_PROGRAM_ID)}unsubscribe(e){this.subscribedAddresses.delete(e),this.solBalances.delete(e)}onBalanceChange(e){return this.balanceChangeCallback=e,()=>{this.balanceChangeCallback=void 0}}subscribeTokenAccounts(e,c){this.connection.onProgramAccountChange(c,()=>{this.executeCallback(e.toBase58())},{commitment:"confirmed",filters:[{memcmp:{offset:32,bytes:e.toBase58()}}]})}executeCallback(e){setTimeout(()=>{try{this.balanceChangeCallback?.(e)}catch{}},b)}}const h=new r;exports.solanaPublicBalanceWatcher=h;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
type BalanceChangeCallback = (walletAddress: string) => void | Promise<void>;
|
|
2
|
+
declare class SolanaPublicBalanceWatcher {
|
|
3
|
+
private connection;
|
|
4
|
+
private subscribedAddresses;
|
|
5
|
+
private solBalances;
|
|
6
|
+
private balanceChangeCallback?;
|
|
7
|
+
constructor();
|
|
8
|
+
subscribe(address: string): Promise<void>;
|
|
9
|
+
unsubscribe(address: string): void;
|
|
10
|
+
onBalanceChange(callback: BalanceChangeCallback): () => void;
|
|
11
|
+
private subscribeTokenAccounts;
|
|
12
|
+
private executeCallback;
|
|
13
|
+
}
|
|
14
|
+
export declare const solanaPublicBalanceWatcher: SolanaPublicBalanceWatcher;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { TOKEN_PROGRAM_ID as o, TOKEN_2022_PROGRAM_ID as i } from "@solana/spl-token";
|
|
2
|
+
import { networkRegistry as l, chainIds as b } from "../../constants/chains.constants.mjs";
|
|
3
|
+
import { Connection as h, PublicKey as r } from "@solana/web3.js";
|
|
4
|
+
const u = 15e3;
|
|
5
|
+
class m {
|
|
6
|
+
connection;
|
|
7
|
+
subscribedAddresses = /* @__PURE__ */ new Set();
|
|
8
|
+
solBalances = /* @__PURE__ */ new Map();
|
|
9
|
+
balanceChangeCallback;
|
|
10
|
+
constructor() {
|
|
11
|
+
this.connection = new h(l[b.solanaMainnet].fetchRpcUrl ?? "", "confirmed");
|
|
12
|
+
}
|
|
13
|
+
async subscribe(e) {
|
|
14
|
+
if (this.subscribedAddresses.has(e))
|
|
15
|
+
return;
|
|
16
|
+
const c = new r(e);
|
|
17
|
+
this.subscribedAddresses.add(e);
|
|
18
|
+
const t = await this.connection.getBalance(c);
|
|
19
|
+
this.solBalances.set(e, t), this.connection.onAccountChange(c, (s) => {
|
|
20
|
+
const n = s.lamports, a = this.solBalances.get(e) ?? 0;
|
|
21
|
+
n !== a && (this.solBalances.set(e, n), this.executeCallback(e));
|
|
22
|
+
}), this.subscribeTokenAccounts(c, o), this.subscribeTokenAccounts(c, i);
|
|
23
|
+
}
|
|
24
|
+
unsubscribe(e) {
|
|
25
|
+
this.subscribedAddresses.delete(e), this.solBalances.delete(e);
|
|
26
|
+
}
|
|
27
|
+
onBalanceChange(e) {
|
|
28
|
+
return this.balanceChangeCallback = e, () => {
|
|
29
|
+
this.balanceChangeCallback = void 0;
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
subscribeTokenAccounts(e, c) {
|
|
33
|
+
this.connection.onProgramAccountChange(
|
|
34
|
+
c,
|
|
35
|
+
() => {
|
|
36
|
+
this.executeCallback(e.toBase58());
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
commitment: "confirmed",
|
|
40
|
+
filters: [
|
|
41
|
+
{
|
|
42
|
+
memcmp: {
|
|
43
|
+
offset: 32,
|
|
44
|
+
// owner field in SPL token account
|
|
45
|
+
bytes: e.toBase58()
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
]
|
|
49
|
+
}
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
executeCallback(e) {
|
|
53
|
+
setTimeout(() => {
|
|
54
|
+
try {
|
|
55
|
+
this.balanceChangeCallback?.(e);
|
|
56
|
+
} catch {
|
|
57
|
+
}
|
|
58
|
+
}, u);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
const f = new m();
|
|
62
|
+
export {
|
|
63
|
+
f as solanaPublicBalanceWatcher
|
|
64
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("ethers"),k=require("idb-keyval"),m=require("../../API/API.cjs"),f=require("../../error-handling/logger.cjs"),p=require("../../functions/utils/caseInsensitive.utils.cjs"),T=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"),_=require("./token-visibility-db.cjs");require("../../types/circom-data.types.cjs");require("../../types/transactions.types.cjs");require("../../types/activities.types.cjs");require("../../constants/chains.constants.cjs");require("@coral-xyz/anchor");require("@solana/web3.js");require("circomlibjs-hinkal-fork");require("../../constants/kyc.constants.cjs");const I=require("../../functions/utils/create-provider.cjs");require("../../functions/utils/convertIntegrationProviderToExternalActionId.cjs");require("../../error-handling/error-codes.constants.cjs");require("../crypto-keys/keys.cjs");require("../../constants/server.constants.cjs");require("../../API/getServerURL.cjs");require("../http/HttpClient.cjs");require("axios");require("../../constants/vite.constants.cjs");require("@solana/spl-token");require("ethers-v6h");require("tweetnacl");require("bs58");require("buffer");require("../../constants/token-data/index.cjs");require("../../constants/contracts.constants.cjs");require("../../constants/coingecko.constants.cjs");require("../../constants/reorg-depths.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 K=require("../../constants/events.constants.cjs");require("../../functions/utils/userAgent.cjs");require("libsodium-wrappers");require("multiformats");require("process");require("../../providers/EthersProviderAdapter.cjs");require("../../functions/web3/events/getInputUtxoAndBalance.cjs");require("../../functions/web3/events/getApprovedBalance.cjs");require("../../functions/web3/getTokenHolder.cjs");require("node-forge");class P{fetchedTokens={};updateMutexes={};transferEventTopic=l.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,s){const t=d.getStateKey(s,r);return(await k.get(T.StorageKeys.EVENTS_PUBLIC_TOKENS))?.[t]||[]}getFetchedTokens(r,s){const t=d.getStateKey(s,r);return this.fetchedTokens[t]||[]}async fetchAndUpdatePublicTokens(r,s){const t=d.getStateKey(r,s);await this.getMutex(t).runExclusive(async()=>{try{const o=(await this.getPublicTokens(s,r)).map(a=>a.erc20TokenAddress),{toEvents:i,fromEvents:u,latestBlock:c}=await this.getEvents(r,s),g=[...i,...u],{erc20Tokens:E}=await this.fetchPublicTokens(g,s,o),b=await _.tokenVisibilityStorage.hideSpamsAndFetchHiddenTokensAddresses(s,E),B=E.filter(a=>!p.lowerCaseIncludes(b,a.erc20TokenAddress));await k.update(T.StorageKeys.EVENTS_PUBLIC_TOKENS,(a={})=>{const q=a[t]||[],w=q.map(h=>h.erc20TokenAddress),L=B.filter(h=>!p.lowerCaseIncludes(w,h.erc20TokenAddress));q.push(...L);const v=this.updateTokenIds(u,i,q),y={...a,[t]:v};return this.fetchedTokens=y,y}),c&&await this.updateLastProcessedBlock(s,r,c)}catch(e){f.Logger.error("public tokens db error",e)}})}async getLastProcessedBlock(r,s){const t=await k.get(T.StorageKeys.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS)||{},n=d.getStateKey(s,r);return t[n]||K.EVENTS_INITIAL_BLOCKS[r]}async updateLastProcessedBlock(r,s,t){await k.update(T.StorageKeys.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS,(n={})=>{const e=d.getStateKey(s,r);return{...n,[e]:t}})}async getEvents(r,s){try{const t=I.createCustomRpcProvider(s),n=await this.getLastProcessedBlock(s,r)+1,e=await t.getBlockNumber(),o=l.ethers.utils.hexZeroPad(r.toLowerCase(),32),i={topics:[this.transferEventTopic,null,o],fromBlock:n,toBlock:e},u={topics:[this.transferEventTopic,o,null],fromBlock:n,toBlock:e},[c,g]=await Promise.all([t.getLogs(i),t.getLogs(u)]);return{toEvents:c,fromEvents:g,latestBlock:e}}catch(t){return f.Logger.error("Error fetching events:",t),{toEvents:[],fromEvents:[],latestBlock:void 0}}}updateTokenIds(r,s,t){const n=new Map;return t.forEach(e=>{if(S.isNFTToken(e)&&e.tokenIds){const o=e.erc20TokenAddress.toLowerCase();n.set(o,[...e.tokenIds])}}),s.forEach(e=>{if(e.topics.length<=3)return;const o=e.address.toLowerCase(),i=l.ethers.BigNumber.from(e.topics[3]).toString();n.has(o)||n.set(o,[]),n.get(o)?.push(i)}),r.forEach(e=>{if(e.topics.length<=3)return;const o=e.address.toLowerCase(),i=n.get(o);if(i?.length){const u=l.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 o=e.erc20TokenAddress.toLowerCase(),i=n.get(o);e.tokenIds=i?.length&&i.length>0?i:void 0}}),t}async fetchPublicTokens(r,s,t){try{const n=[A.zeroAddress,...new Set(r.map(o=>o.address))].filter(o=>o&&!p.lowerCaseIncludes(t,o));return n.length?{erc20Tokens:(await m.API.tokensInfoCall(s,n)).filter(o=>!!o)}:{erc20Tokens:[]}}catch(n){return f.Logger.error("Error fetching public tokens:",n),{erc20Tokens:[]}}}}const x=new P;exports.EventsPublicTokensDB=P;exports.eventsPublicTokensDB=x;
|
|
@@ -1,173 +1,171 @@
|
|
|
1
|
-
import { ethers as
|
|
2
|
-
import { get as B, update as
|
|
1
|
+
import { ethers as d } from "ethers";
|
|
2
|
+
import { get as B, update as S } from "idb-keyval";
|
|
3
3
|
import { API as C } from "../../API/API.mjs";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import { StorageKeys as k } from "../../types/cache.types.mjs";
|
|
4
|
+
import { Logger as T } from "../../error-handling/logger.mjs";
|
|
5
|
+
import { lowerCaseIncludes as h } from "../../functions/utils/caseInsensitive.utils.mjs";
|
|
6
|
+
import { StorageKeys as u } from "../../types/cache.types.mjs";
|
|
8
7
|
import { getStateKey as m } from "../../functions/utils/string.utils.mjs";
|
|
9
|
-
import { zeroAddress as
|
|
10
|
-
import { Mutex as
|
|
11
|
-
import { isNFTToken as
|
|
12
|
-
import { tokenVisibilityStorage as
|
|
8
|
+
import { zeroAddress as v } from "../../constants/protocol.constants.mjs";
|
|
9
|
+
import { Mutex as x } from "async-mutex";
|
|
10
|
+
import { isNFTToken as w } from "../../functions/utils/erc20tokenFunctions.mjs";
|
|
11
|
+
import { tokenVisibilityStorage as _ } from "./token-visibility-db.mjs";
|
|
13
12
|
import "../../types/circom-data.types.mjs";
|
|
14
13
|
import "../../types/transactions.types.mjs";
|
|
15
14
|
import "../../types/activities.types.mjs";
|
|
15
|
+
import "../../constants/chains.constants.mjs";
|
|
16
16
|
import "@coral-xyz/anchor";
|
|
17
17
|
import "@solana/web3.js";
|
|
18
|
+
import "circomlibjs-hinkal-fork";
|
|
18
19
|
import "../../constants/kyc.constants.mjs";
|
|
19
20
|
import { createCustomRpcProvider as I } from "../../functions/utils/create-provider.mjs";
|
|
20
21
|
import "../../functions/utils/convertIntegrationProviderToExternalActionId.mjs";
|
|
21
|
-
import "circomlibjs-hinkal-fork";
|
|
22
22
|
import "../../error-handling/error-codes.constants.mjs";
|
|
23
23
|
import "../crypto-keys/keys.mjs";
|
|
24
24
|
import "../../constants/server.constants.mjs";
|
|
25
|
-
import "../../
|
|
25
|
+
import "../../API/getServerURL.mjs";
|
|
26
26
|
import "../http/HttpClient.mjs";
|
|
27
27
|
import "axios";
|
|
28
|
-
import "../../
|
|
29
|
-
import "libsodium-wrappers";
|
|
30
|
-
import "process";
|
|
31
|
-
import "buffer";
|
|
32
|
-
import "../../constants/save-depths.mjs";
|
|
33
|
-
import "../../constants/reorg-depths.constants.mjs";
|
|
34
|
-
import "../../functions/utils/mutexes.utils.mjs";
|
|
28
|
+
import "../../constants/vite.constants.mjs";
|
|
35
29
|
import "@solana/spl-token";
|
|
30
|
+
import "ethers-v6h";
|
|
31
|
+
import "tweetnacl";
|
|
32
|
+
import "bs58";
|
|
33
|
+
import "buffer";
|
|
36
34
|
import "../../constants/token-data/index.mjs";
|
|
37
35
|
import "../../constants/contracts.constants.mjs";
|
|
38
36
|
import "../../constants/coingecko.constants.mjs";
|
|
37
|
+
import "../../constants/reorg-depths.constants.mjs";
|
|
39
38
|
import "../../constants/addresses.constants.mjs";
|
|
40
39
|
import "../../constants/token.limits.constants.mjs";
|
|
41
40
|
import "../../constants/presale.constants.mjs";
|
|
42
41
|
import "../../constants/activity.constants.mjs";
|
|
43
42
|
import "../../constants/tasks.constants.mjs";
|
|
44
|
-
import { EVENTS_INITIAL_BLOCKS as
|
|
43
|
+
import { EVENTS_INITIAL_BLOCKS as N } from "../../constants/events.constants.mjs";
|
|
45
44
|
import "../../functions/utils/userAgent.mjs";
|
|
45
|
+
import "libsodium-wrappers";
|
|
46
46
|
import "multiformats";
|
|
47
|
-
import "
|
|
48
|
-
import "
|
|
47
|
+
import "process";
|
|
48
|
+
import "../../providers/EthersProviderAdapter.mjs";
|
|
49
|
+
import "../../functions/web3/events/getInputUtxoAndBalance.mjs";
|
|
49
50
|
import "../../functions/web3/events/getApprovedBalance.mjs";
|
|
50
51
|
import "../../functions/web3/getTokenHolder.mjs";
|
|
51
|
-
import "
|
|
52
|
-
class
|
|
52
|
+
import "node-forge";
|
|
53
|
+
class O {
|
|
53
54
|
fetchedTokens = {};
|
|
54
55
|
updateMutexes = {};
|
|
55
|
-
transferEventTopic =
|
|
56
|
+
transferEventTopic = d.utils.id("Transfer(address,address,uint256)");
|
|
56
57
|
getMutex(e) {
|
|
57
|
-
return this.updateMutexes[e] || (this.updateMutexes[e] = new
|
|
58
|
+
return this.updateMutexes[e] || (this.updateMutexes[e] = new x()), this.updateMutexes[e];
|
|
58
59
|
}
|
|
59
|
-
async getPublicTokens(e,
|
|
60
|
-
const o = m(
|
|
61
|
-
return (await B(
|
|
60
|
+
async getPublicTokens(e, r) {
|
|
61
|
+
const o = m(r, e);
|
|
62
|
+
return (await B(u.EVENTS_PUBLIC_TOKENS))?.[o] || [];
|
|
62
63
|
}
|
|
63
|
-
getFetchedTokens(e,
|
|
64
|
-
const o = m(
|
|
64
|
+
getFetchedTokens(e, r) {
|
|
65
|
+
const o = m(r, e);
|
|
65
66
|
return this.fetchedTokens[o] || [];
|
|
66
67
|
}
|
|
67
|
-
async fetchAndUpdatePublicTokens(e,
|
|
68
|
-
const o = m(e,
|
|
68
|
+
async fetchAndUpdatePublicTokens(e, r) {
|
|
69
|
+
const o = m(e, r);
|
|
69
70
|
await this.getMutex(o).runExclusive(async () => {
|
|
70
71
|
try {
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
),
|
|
75
|
-
(a) => !
|
|
72
|
+
const s = (await this.getPublicTokens(r, e)).map((a) => a.erc20TokenAddress), { toEvents: i, fromEvents: p, latestBlock: c } = await this.getEvents(e, r), k = [...i, ...p], { erc20Tokens: g } = await this.fetchPublicTokens(k, r, s), L = await _.hideSpamsAndFetchHiddenTokensAddresses(
|
|
73
|
+
r,
|
|
74
|
+
g
|
|
75
|
+
), P = g.filter(
|
|
76
|
+
(a) => !h(L, a.erc20TokenAddress)
|
|
76
77
|
// filter out hidden tokens
|
|
77
78
|
);
|
|
78
|
-
await
|
|
79
|
-
const
|
|
80
|
-
(
|
|
79
|
+
await S(u.EVENTS_PUBLIC_TOKENS, (a = {}) => {
|
|
80
|
+
const l = a[o] || [], b = l.map((f) => f.erc20TokenAddress), y = P.filter(
|
|
81
|
+
(f) => !h(b, f.erc20TokenAddress)
|
|
81
82
|
);
|
|
82
|
-
|
|
83
|
-
const A = this.updateTokenIds(p, i,
|
|
83
|
+
l.push(...y);
|
|
84
|
+
const A = this.updateTokenIds(p, i, l), E = {
|
|
84
85
|
...a,
|
|
85
86
|
[o]: A
|
|
86
87
|
};
|
|
87
88
|
return this.fetchedTokens = E, E;
|
|
88
|
-
}), c && await this.updateLastProcessedBlock(
|
|
89
|
+
}), c && await this.updateLastProcessedBlock(r, e, c);
|
|
89
90
|
} catch (t) {
|
|
90
|
-
|
|
91
|
+
T.error("public tokens db error", t);
|
|
91
92
|
}
|
|
92
93
|
});
|
|
93
94
|
}
|
|
94
|
-
async getLastProcessedBlock(e,
|
|
95
|
-
const o = await B(
|
|
96
|
-
return o[n] ||
|
|
95
|
+
async getLastProcessedBlock(e, r) {
|
|
96
|
+
const o = await B(u.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS) || {}, n = m(r, e);
|
|
97
|
+
return o[n] || N[e];
|
|
97
98
|
}
|
|
98
|
-
async updateLastProcessedBlock(e,
|
|
99
|
-
await
|
|
100
|
-
const t = m(
|
|
99
|
+
async updateLastProcessedBlock(e, r, o) {
|
|
100
|
+
await S(u.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS, (n = {}) => {
|
|
101
|
+
const t = m(r, e);
|
|
101
102
|
return {
|
|
102
103
|
...n,
|
|
103
104
|
[t]: o
|
|
104
105
|
};
|
|
105
106
|
});
|
|
106
107
|
}
|
|
107
|
-
async getEvents(e,
|
|
108
|
+
async getEvents(e, r) {
|
|
108
109
|
try {
|
|
109
|
-
const
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
toBlock: r
|
|
120
|
-
}, [l, d] = await Promise.all([n.getLogs(p), n.getLogs(c)]);
|
|
121
|
-
return { toEvents: l, fromEvents: d, latestBlock: r };
|
|
110
|
+
const o = I(r), n = await this.getLastProcessedBlock(r, e) + 1, t = await o.getBlockNumber(), s = d.utils.hexZeroPad(e.toLowerCase(), 32), i = {
|
|
111
|
+
topics: [this.transferEventTopic, null, s],
|
|
112
|
+
fromBlock: n,
|
|
113
|
+
toBlock: t
|
|
114
|
+
}, p = {
|
|
115
|
+
topics: [this.transferEventTopic, s, null],
|
|
116
|
+
fromBlock: n,
|
|
117
|
+
toBlock: t
|
|
118
|
+
}, [c, k] = await Promise.all([o.getLogs(i), o.getLogs(p)]);
|
|
119
|
+
return { toEvents: c, fromEvents: k, latestBlock: t };
|
|
122
120
|
} catch (o) {
|
|
123
|
-
return
|
|
121
|
+
return T.error("Error fetching events:", o), { toEvents: [], fromEvents: [], latestBlock: void 0 };
|
|
124
122
|
}
|
|
125
123
|
}
|
|
126
124
|
// First get existed tokenIds from tokens
|
|
127
125
|
// Then add new tokenIds from toEvents (incoming transfers)
|
|
128
126
|
// Then remove tokenIds from fromEvents (outgoing transfers)
|
|
129
|
-
updateTokenIds(e,
|
|
127
|
+
updateTokenIds(e, r, o) {
|
|
130
128
|
const n = /* @__PURE__ */ new Map();
|
|
131
129
|
return o.forEach((t) => {
|
|
132
|
-
if (
|
|
133
|
-
const
|
|
134
|
-
n.set(
|
|
130
|
+
if (w(t) && t.tokenIds) {
|
|
131
|
+
const s = t.erc20TokenAddress.toLowerCase();
|
|
132
|
+
n.set(s, [...t.tokenIds]);
|
|
135
133
|
}
|
|
136
|
-
}),
|
|
134
|
+
}), r.forEach((t) => {
|
|
137
135
|
if (t.topics.length <= 3)
|
|
138
136
|
return;
|
|
139
|
-
const
|
|
140
|
-
n.has(
|
|
137
|
+
const s = t.address.toLowerCase(), i = d.BigNumber.from(t.topics[3]).toString();
|
|
138
|
+
n.has(s) || n.set(s, []), n.get(s)?.push(i);
|
|
141
139
|
}), e.forEach((t) => {
|
|
142
140
|
if (t.topics.length <= 3)
|
|
143
141
|
return;
|
|
144
|
-
const
|
|
142
|
+
const s = t.address.toLowerCase(), i = n.get(s);
|
|
145
143
|
if (i?.length) {
|
|
146
|
-
const p =
|
|
144
|
+
const p = d.BigNumber.from(t.topics[3]).toString(), c = i.indexOf(p);
|
|
147
145
|
c !== -1 && i.splice(c, 1);
|
|
148
146
|
}
|
|
149
147
|
}), o.forEach((t) => {
|
|
150
|
-
if (
|
|
151
|
-
const
|
|
148
|
+
if (w(t)) {
|
|
149
|
+
const s = t.erc20TokenAddress.toLowerCase(), i = n.get(s);
|
|
152
150
|
t.tokenIds = i?.length && i.length > 0 ? i : void 0;
|
|
153
151
|
}
|
|
154
152
|
}), o;
|
|
155
153
|
}
|
|
156
|
-
async fetchPublicTokens(e,
|
|
154
|
+
async fetchPublicTokens(e, r, o) {
|
|
157
155
|
try {
|
|
158
|
-
const n = [
|
|
159
|
-
(
|
|
156
|
+
const n = [v, ...new Set(e.map((s) => s.address))].filter(
|
|
157
|
+
(s) => s && !h(o, s)
|
|
160
158
|
);
|
|
161
|
-
return n.length ? { erc20Tokens: (await C.tokensInfoCall(
|
|
162
|
-
(
|
|
159
|
+
return n.length ? { erc20Tokens: (await C.tokensInfoCall(r, n)).filter(
|
|
160
|
+
(s) => !!s
|
|
163
161
|
) } : { erc20Tokens: [] };
|
|
164
162
|
} catch (n) {
|
|
165
|
-
return
|
|
163
|
+
return T.error("Error fetching public tokens:", n), { erc20Tokens: [] };
|
|
166
164
|
}
|
|
167
165
|
}
|
|
168
166
|
}
|
|
169
|
-
const Ot = new
|
|
167
|
+
const Ot = new O();
|
|
170
168
|
export {
|
|
171
|
-
|
|
169
|
+
O as EventsPublicTokensDB,
|
|
172
170
|
Ot as eventsPublicTokensDB
|
|
173
171
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("idb-keyval"),a=require("../../error-handling/logger.cjs"),d=require("../../functions/utils/
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("idb-keyval"),a=require("../../error-handling/logger.cjs"),d=require("../../functions/utils/token-check.utils.cjs");class c{STORAGE_KEY="hiddenTokenAddresses";UNHIDDEN_SPAM_KEY="unhiddenSpamTokens";async getHiddenTokens(e){try{return(await i.get(this.STORAGE_KEY))?.[e]||[]}catch(r){return a.Logger.error("Error retrieving hidden tokens",r),[]}}async getHiddenTokenAddresses(e){try{return(await this.getHiddenTokens(e)).map(({erc20TokenAddress:t})=>t.toLowerCase())}catch(r){return a.Logger.error("Error retrieving hidden tokens",r),[]}}async filterOutHiddenTokens(e,r){const t=await this.getHiddenTokens(e);return r.filter(n=>!t.some(s=>d.isSameERC20Token(s,n)))}async hideToken(e){try{await i.update(this.STORAGE_KEY,r=>{const t=r??{},{chainId:n}=e;return t[n]||(t[n]=[]),t[n].some(o=>d.isSameERC20Token(o,e))||t[n].push(e),t}),e.isSpam&&await this.deleteUnhiddenSpamToken(e)}catch(r){a.Logger.error("Error hiding token",r)}}async showToken(e){try{await i.update(this.STORAGE_KEY,r=>{const{chainId:t}=e,n=r??{};return n[t]||(n[t]=[]),n[t]=n[t].filter(s=>!d.isSameERC20Token(s,e)),n}),e.isSpam&&await this.storeUnhiddenSpamToken(e)}catch(r){a.Logger.error("Error showing token",r)}}async storeUnhiddenSpamToken(e){const{chainId:r}=e;try{await i.update(this.UNHIDDEN_SPAM_KEY,t=>{const n=t??{};return n[r]||(n[r]=[]),n[r].some(o=>d.isSameERC20Token(o,e))||n[r].push(e),n})}catch(t){a.Logger.error("Error storing unhidden spam token",t)}}async deleteUnhiddenSpamToken(e){await i.update(this.UNHIDDEN_SPAM_KEY,r=>{const{chainId:t}=e,n=r??{};return n[t]=n[t]?.filter(s=>!d.isSameERC20Token(s,e)),n})}async getUnhiddenSpamTokens(e){try{return(await i.get(this.UNHIDDEN_SPAM_KEY))?.[e]||[]}catch(r){return a.Logger.error("Error retrieving unhidden spam tokens",r),[]}}async hideUnnecessarySpamTokens(e,r){const t=await this.getUnhiddenSpamTokens(e),n=r.filter(s=>s.isSpam?!t.some(o=>d.isSameERC20Token(o,s)):!1);await Promise.all(n.map(s=>this.hideToken(s)))}async hideSpamsAndFetchHiddenTokensAddresses(e,r){return await this.hideUnnecessarySpamTokens(e,r),this.getHiddenTokenAddresses(e)}}const h=new c;exports.tokenVisibilityStorage=h;
|
|
@@ -1,38 +1,32 @@
|
|
|
1
|
-
import { get as
|
|
1
|
+
import { get as h, update as o } from "idb-keyval";
|
|
2
2
|
import { Logger as a } from "../../error-handling/logger.mjs";
|
|
3
|
-
import {
|
|
4
|
-
class
|
|
3
|
+
import { isSameERC20Token as i } from "../../functions/utils/token-check.utils.mjs";
|
|
4
|
+
class c {
|
|
5
5
|
STORAGE_KEY = "hiddenTokenAddresses";
|
|
6
6
|
UNHIDDEN_SPAM_KEY = "unhiddenSpamTokens";
|
|
7
7
|
async getHiddenTokens(e) {
|
|
8
8
|
try {
|
|
9
|
-
return (await
|
|
9
|
+
return (await h(this.STORAGE_KEY))?.[e] || [];
|
|
10
10
|
} catch (r) {
|
|
11
11
|
return a.error("Error retrieving hidden tokens", r), [];
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
14
|
async getHiddenTokenAddresses(e) {
|
|
15
15
|
try {
|
|
16
|
-
return (await this.getHiddenTokens(e)).map(({ erc20TokenAddress:
|
|
16
|
+
return (await this.getHiddenTokens(e)).map(({ erc20TokenAddress: t }) => t.toLowerCase());
|
|
17
17
|
} catch (r) {
|
|
18
18
|
return a.error("Error retrieving hidden tokens", r), [];
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
async filterOutHiddenTokens(e, r) {
|
|
22
|
-
const
|
|
23
|
-
return r.filter(
|
|
24
|
-
(n) => !s.some(
|
|
25
|
-
(t) => d(t.erc20TokenAddress, n.erc20TokenAddress)
|
|
26
|
-
)
|
|
27
|
-
);
|
|
22
|
+
const t = await this.getHiddenTokens(e);
|
|
23
|
+
return r.filter((n) => !t.some((s) => i(s, n)));
|
|
28
24
|
}
|
|
29
25
|
async hideToken(e) {
|
|
30
26
|
try {
|
|
31
27
|
await o(this.STORAGE_KEY, (r) => {
|
|
32
|
-
const
|
|
33
|
-
return
|
|
34
|
-
({ erc20TokenAddress: i }) => d(i, e.erc20TokenAddress)
|
|
35
|
-
) || s[n].push(e), s;
|
|
28
|
+
const t = r ?? {}, { chainId: n } = e;
|
|
29
|
+
return t[n] || (t[n] = []), t[n].some((d) => i(d, e)) || t[n].push(e), t;
|
|
36
30
|
}), e.isSpam && await this.deleteUnhiddenSpamToken(e);
|
|
37
31
|
} catch (r) {
|
|
38
32
|
a.error("Error hiding token", r);
|
|
@@ -41,10 +35,8 @@ class T {
|
|
|
41
35
|
async showToken(e) {
|
|
42
36
|
try {
|
|
43
37
|
await o(this.STORAGE_KEY, (r) => {
|
|
44
|
-
const { chainId:
|
|
45
|
-
return n[
|
|
46
|
-
({ erc20TokenAddress: t }) => !d(t, e.erc20TokenAddress)
|
|
47
|
-
), n;
|
|
38
|
+
const { chainId: t } = e, n = r ?? {};
|
|
39
|
+
return n[t] || (n[t] = []), n[t] = n[t].filter((s) => !i(s, e)), n;
|
|
48
40
|
}), e.isSpam && await this.storeUnhiddenSpamToken(e);
|
|
49
41
|
} catch (r) {
|
|
50
42
|
a.error("Error showing token", r);
|
|
@@ -53,44 +45,38 @@ class T {
|
|
|
53
45
|
async storeUnhiddenSpamToken(e) {
|
|
54
46
|
const { chainId: r } = e;
|
|
55
47
|
try {
|
|
56
|
-
await o(this.UNHIDDEN_SPAM_KEY, (
|
|
57
|
-
const n =
|
|
58
|
-
return n[r] || (n[r] = []), n[r].some(
|
|
59
|
-
({ erc20TokenAddress: i }) => d(i, e.erc20TokenAddress)
|
|
60
|
-
) || n[r].push(e), n;
|
|
48
|
+
await o(this.UNHIDDEN_SPAM_KEY, (t) => {
|
|
49
|
+
const n = t ?? {};
|
|
50
|
+
return n[r] || (n[r] = []), n[r].some((d) => i(d, e)) || n[r].push(e), n;
|
|
61
51
|
});
|
|
62
|
-
} catch (
|
|
63
|
-
a.error("Error storing unhidden spam token",
|
|
52
|
+
} catch (t) {
|
|
53
|
+
a.error("Error storing unhidden spam token", t);
|
|
64
54
|
}
|
|
65
55
|
}
|
|
66
56
|
async deleteUnhiddenSpamToken(e) {
|
|
67
57
|
await o(this.UNHIDDEN_SPAM_KEY, (r) => {
|
|
68
|
-
const { chainId:
|
|
69
|
-
return n[
|
|
70
|
-
({ erc20TokenAddress: t }) => !d(t, e.erc20TokenAddress)
|
|
71
|
-
), n;
|
|
58
|
+
const { chainId: t } = e, n = r ?? {};
|
|
59
|
+
return n[t] = n[t]?.filter((s) => !i(s, e)), n;
|
|
72
60
|
});
|
|
73
61
|
}
|
|
74
62
|
async getUnhiddenSpamTokens(e) {
|
|
75
63
|
try {
|
|
76
|
-
return (await
|
|
64
|
+
return (await h(this.UNHIDDEN_SPAM_KEY))?.[e] || [];
|
|
77
65
|
} catch (r) {
|
|
78
66
|
return a.error("Error retrieving unhidden spam tokens", r), [];
|
|
79
67
|
}
|
|
80
68
|
}
|
|
81
69
|
// From the list of tokens, hide the spam tokens that are not in the unhidden spam tokens list
|
|
82
70
|
async hideUnnecessarySpamTokens(e, r) {
|
|
83
|
-
const
|
|
84
|
-
|
|
85
|
-
) : !1);
|
|
86
|
-
await Promise.all(n.map((t) => this.hideToken(t)));
|
|
71
|
+
const t = await this.getUnhiddenSpamTokens(e), n = r.filter((s) => s.isSpam ? !t.some((d) => i(d, s)) : !1);
|
|
72
|
+
await Promise.all(n.map((s) => this.hideToken(s)));
|
|
87
73
|
}
|
|
88
74
|
// First hide spam tokens from the list, then fetch the all hidden tokens addresses
|
|
89
75
|
async hideSpamsAndFetchHiddenTokensAddresses(e, r) {
|
|
90
76
|
return await this.hideUnnecessarySpamTokens(e, r), this.getHiddenTokenAddresses(e);
|
|
91
77
|
}
|
|
92
78
|
}
|
|
93
|
-
const y = new
|
|
79
|
+
const y = new c();
|
|
94
80
|
export {
|
|
95
81
|
y as tokenVisibilityStorage
|
|
96
82
|
};
|