@hinkal/common 0.2.21 → 0.2.22
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 +88 -87
- package/API/admin-calls.cjs +1 -1
- package/API/admin-calls.d.ts +1 -1
- package/API/admin-calls.mjs +4 -4
- package/API/ai-calls.cjs +1 -0
- package/API/ai-calls.d.ts +17 -0
- package/API/ai-calls.mjs +21 -0
- 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 +11 -10
- package/API/callRelayer.cjs +1 -1
- package/API/callRelayer.d.ts +5 -6
- 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/deposit-and-withdraw-status-calls.cjs +1 -0
- package/API/deposit-and-withdraw-status-calls.d.ts +20 -0
- package/API/deposit-and-withdraw-status-calls.mjs +18 -0
- package/API/duneAPI.cjs +1 -0
- package/API/duneAPI.d.ts +11 -0
- package/API/duneAPI.mjs +25 -0
- package/API/enclaveCalls.cjs +1 -1
- package/API/enclaveCalls.mjs +4 -5
- 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/getBridgeProtocols.cjs +1 -0
- package/API/getBridgeProtocols.d.ts +7 -0
- package/API/getBridgeProtocols.mjs +8 -0
- package/API/getGasEstimates.cjs +1 -1
- package/API/getGasEstimates.mjs +9 -9
- package/API/getLifiStatus.cjs +1 -0
- package/API/getLifiStatus.d.ts +24 -0
- package/API/getLifiStatus.mjs +15 -0
- package/API/getRelayerURL.cjs +1 -0
- package/API/getRelayerURL.d.ts +1 -0
- package/API/getRelayerURL.mjs +10 -0
- package/API/getServerURL.cjs +1 -1
- package/API/getServerURL.d.ts +3 -3
- package/API/getServerURL.mjs +67 -51
- package/API/getTokenPrice.cjs +1 -1
- package/API/getTokenPrice.d.ts +0 -5
- package/API/getTokenPrice.mjs +7 -14
- package/API/index.d.ts +3 -1
- package/API/is-tx-stateless.cjs +1 -1
- package/API/is-tx-stateless.d.ts +1 -1
- package/API/is-tx-stateless.mjs +12 -10
- package/API/kycCalls.cjs +1 -1
- package/API/kycCalls.d.ts +8 -4
- package/API/kycCalls.mjs +26 -23
- package/API/passwordCalls.cjs +1 -0
- package/API/passwordCalls.d.ts +9 -0
- package/API/passwordCalls.mjs +13 -0
- package/API/proxyAccountsCalls.cjs +1 -1
- package/API/proxyAccountsCalls.d.ts +2 -7
- package/API/proxyAccountsCalls.mjs +21 -27
- package/API/relayCalls.cjs +1 -1
- package/API/relayCalls.mjs +4 -4
- package/API/restoreSnapshots.cjs +1 -0
- package/API/restoreSnapshots.d.ts +1 -0
- package/API/restoreSnapshots.mjs +10 -0
- package/API/scheduled-transactions-calls.cjs +1 -1
- package/API/scheduled-transactions-calls.d.ts +9 -1
- package/API/scheduled-transactions-calls.mjs +9 -5
- package/API/simulate-batch-tx.cjs +1 -1
- package/API/simulate-batch-tx.d.ts +2 -2
- package/API/simulate-batch-tx.mjs +6 -7
- package/API/solana-calls.cjs +1 -1
- package/API/solana-calls.d.ts +3 -6
- package/API/solana-calls.mjs +15 -15
- package/API/temporaryWalletCalls.cjs +1 -1
- package/API/temporaryWalletCalls.mjs +19 -13
- package/API/token-calls.cjs +1 -1
- package/API/token-calls.mjs +5 -6
- package/README.md +54 -42
- package/constants/chains.constants.cjs +1 -1
- package/constants/chains.constants.d.ts +6 -0
- package/constants/chains.constants.mjs +52 -58
- package/constants/coingecko.constants.cjs +1 -1
- package/constants/coingecko.constants.d.ts +0 -1
- package/constants/coingecko.constants.mjs +10 -11
- package/constants/deploy-data/deploy-data-solana.json.cjs +1 -1
- package/constants/deploy-data/deploy-data-solana.json.mjs +2 -28
- package/constants/function-signatures.constants.cjs +1 -1
- package/constants/function-signatures.constants.d.ts +1 -0
- package/constants/function-signatures.constants.mjs +4 -3
- package/constants/kyc.constants.cjs +1 -1
- package/constants/kyc.constants.mjs +40 -39
- package/constants/mediaUrls.constants.cjs +1 -1
- package/constants/mediaUrls.constants.d.ts +0 -1
- package/constants/mediaUrls.constants.mjs +1 -2
- package/constants/permit2.constants.cjs +1 -1
- package/constants/permit2.constants.d.ts +1 -0
- package/constants/permit2.constants.mjs +11 -10
- package/constants/server.constants.cjs +1 -1
- package/constants/server.constants.d.ts +123 -19
- package/constants/server.constants.mjs +142 -38
- package/constants/vite.constants.cjs +1 -1
- package/constants/vite.constants.mjs +13 -36
- package/data-structures/ApprovalDBs/EventsPublicApprovalsDB.cjs +1 -1
- package/data-structures/ApprovalDBs/EventsPublicApprovalsDB.mjs +71 -68
- package/data-structures/Hinkal/Hinkal.cjs +1 -1
- package/data-structures/Hinkal/Hinkal.d.ts +56 -45
- package/data-structures/Hinkal/Hinkal.mjs +348 -314
- package/data-structures/Hinkal/IHinkal.d.ts +54 -40
- package/data-structures/Hinkal/handleAutoDepositBack.cjs +1 -1
- package/data-structures/Hinkal/handleAutoDepositBack.d.ts +1 -1
- package/data-structures/Hinkal/handleAutoDepositBack.mjs +49 -48
- package/data-structures/Hinkal/hinkalActionFundApproveAndTransact.cjs +1 -0
- package/data-structures/Hinkal/hinkalActionFundApproveAndTransact.d.ts +7 -0
- package/data-structures/Hinkal/hinkalActionFundApproveAndTransact.mjs +42 -0
- package/data-structures/Hinkal/hinkalActionReceive.cjs +1 -1
- package/data-structures/Hinkal/hinkalActionReceive.mjs +24 -29
- package/data-structures/Hinkal/hinkalApprove.cjs +1 -0
- package/data-structures/Hinkal/hinkalApprove.d.ts +3 -0
- package/data-structures/Hinkal/hinkalApprove.mjs +114 -0
- 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 +84 -88
- package/data-structures/Hinkal/hinkalDepositAndWithdraw.cjs +1 -1
- package/data-structures/Hinkal/hinkalDepositAndWithdraw.d.ts +1 -1
- package/data-structures/Hinkal/hinkalDepositAndWithdraw.mjs +96 -77
- package/data-structures/Hinkal/hinkalDepositOnChainUtxos.cjs +1 -1
- package/data-structures/Hinkal/hinkalDepositOnChainUtxos.d.ts +4 -1
- package/data-structures/Hinkal/hinkalDepositOnChainUtxos.mjs +80 -75
- package/data-structures/Hinkal/hinkalDepostAndBridge.cjs +1 -1
- package/data-structures/Hinkal/hinkalDepostAndBridge.d.ts +1 -1
- package/data-structures/Hinkal/hinkalDepostAndBridge.mjs +150 -138
- package/data-structures/Hinkal/hinkalGetZkMeProvider.cjs +1 -1
- package/data-structures/Hinkal/hinkalGetZkMeProvider.mjs +5 -4
- package/data-structures/Hinkal/hinkalInsideTransact.cjs +1 -0
- package/data-structures/Hinkal/hinkalInsideTransact.d.ts +4 -0
- package/data-structures/Hinkal/hinkalInsideTransact.mjs +119 -0
- package/data-structures/Hinkal/hinkalPrivateWallet.cjs +1 -1
- package/data-structures/Hinkal/hinkalPrivateWallet.d.ts +2 -2
- package/data-structures/Hinkal/hinkalPrivateWallet.mjs +118 -114
- package/data-structures/Hinkal/hinkalProoflessDeposit.cjs +1 -1
- package/data-structures/Hinkal/hinkalProoflessDeposit.mjs +34 -36
- package/data-structures/Hinkal/hinkalProxySwap.cjs +1 -1
- package/data-structures/Hinkal/hinkalProxySwap.mjs +36 -40
- package/data-structures/Hinkal/hinkalProxyToPrivate.cjs +1 -1
- package/data-structures/Hinkal/hinkalProxyToPrivate.mjs +32 -37
- package/data-structures/Hinkal/hinkalSignSubAccount.cjs +1 -1
- package/data-structures/Hinkal/hinkalSignSubAccount.d.ts +2 -1
- package/data-structures/Hinkal/hinkalSignSubAccount.mjs +15 -17
- package/data-structures/Hinkal/hinkalSolanaDeposit.cjs +1 -1
- package/data-structures/Hinkal/hinkalSolanaDeposit.d.ts +3 -4
- package/data-structures/Hinkal/hinkalSolanaDeposit.mjs +95 -84
- package/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.cjs +1 -1
- package/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.d.ts +1 -2
- package/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.mjs +182 -155
- package/data-structures/Hinkal/hinkalSolanaProxySend.cjs +1 -1
- package/data-structures/Hinkal/hinkalSolanaProxySend.d.ts +3 -2
- package/data-structures/Hinkal/hinkalSolanaProxySend.mjs +40 -43
- package/data-structures/Hinkal/hinkalSolanaProxyShield.cjs +1 -1
- package/data-structures/Hinkal/hinkalSolanaProxyShield.mjs +67 -71
- package/data-structures/Hinkal/hinkalSolanaProxySwap.cjs +1 -1
- package/data-structures/Hinkal/hinkalSolanaProxySwap.d.ts +1 -1
- package/data-structures/Hinkal/hinkalSolanaProxySwap.mjs +59 -63
- package/data-structures/Hinkal/hinkalSolanaSwap.cjs +1 -1
- package/data-structures/Hinkal/hinkalSolanaSwap.mjs +45 -48
- package/data-structures/Hinkal/hinkalSolanaTransfer.cjs +1 -1
- package/data-structures/Hinkal/hinkalSolanaTransfer.mjs +48 -49
- package/data-structures/Hinkal/hinkalSolanaWithdraw.cjs +1 -1
- package/data-structures/Hinkal/hinkalSolanaWithdraw.d.ts +1 -2
- package/data-structures/Hinkal/hinkalSolanaWithdraw.mjs +68 -71
- package/data-structures/Hinkal/hinkalSwap.cjs +1 -1
- package/data-structures/Hinkal/hinkalSwap.mjs +78 -71
- package/data-structures/Hinkal/hinkalTransfer.cjs +1 -1
- package/data-structures/Hinkal/hinkalTransfer.mjs +70 -71
- package/data-structures/Hinkal/hinkalWithdraw.cjs +1 -1
- package/data-structures/Hinkal/hinkalWithdraw.mjs +79 -81
- package/data-structures/Hinkal/hinkalWithdrawStuckUtxos.cjs +1 -1
- package/data-structures/Hinkal/hinkalWithdrawStuckUtxos.mjs +103 -105
- package/data-structures/Hinkal/resetMerkleTrees.cjs +1 -1
- package/data-structures/Hinkal/resetMerkleTrees.d.ts +1 -1
- package/data-structures/Hinkal/resetMerkleTrees.mjs +53 -107
- 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 +75 -91
- package/data-structures/IndexedDB/balances-db.cjs +1 -1
- package/data-structures/IndexedDB/balances-db.mjs +37 -40
- package/data-structures/IndexedDB/contact-db.cjs +1 -1
- package/data-structures/IndexedDB/contact-db.mjs +13 -16
- package/data-structures/IndexedDB/signatures-db.cjs +1 -1
- package/data-structures/IndexedDB/signatures-db.mjs +40 -25
- package/data-structures/TokenDBs/EventsPublicTokensDB.cjs +1 -1
- package/data-structures/TokenDBs/EventsPublicTokensDB.mjs +84 -82
- package/data-structures/TokenDBs/token-visibility-db.cjs +1 -1
- package/data-structures/TokenDBs/token-visibility-db.mjs +36 -22
- package/data-structures/crypto-keys/keys.cjs +1 -1
- package/data-structures/crypto-keys/keys.d.ts +11 -0
- package/data-structures/crypto-keys/keys.mjs +107 -47
- package/data-structures/event-service/evm/AbstractAccessTokenSnapshotService.cjs +1 -1
- package/data-structures/event-service/evm/AbstractAccessTokenSnapshotService.d.ts +2 -3
- 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 +2 -3
- 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 +2 -3
- 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 +2 -4
- 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 +5 -6
- package/data-structures/event-service/evm/AbstractSnapshotService.cjs +1 -1
- package/data-structures/event-service/evm/AbstractSnapshotService.d.ts +2 -1
- package/data-structures/event-service/evm/AbstractSnapshotService.mjs +4 -3
- package/data-structures/event-service/evm/BlockchainEventEmitter.cjs +1 -1
- package/data-structures/event-service/evm/BlockchainEventEmitter.d.ts +5 -10
- package/data-structures/event-service/evm/BlockchainEventEmitter.mjs +35 -39
- package/data-structures/event-service/index.d.ts +0 -4
- package/data-structures/event-service/solana/AbstractSolanaAccessTokenSnapshotService.cjs +1 -1
- package/data-structures/event-service/solana/AbstractSolanaAccessTokenSnapshotService.d.ts +2 -3
- 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 +3 -4
- 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 +10 -4
- package/data-structures/event-service/solana/AbstractSolanaEventService.mjs +7 -10
- package/data-structures/event-service/solana/AbstractSolanaNullifierSnapshotService.cjs +1 -1
- package/data-structures/event-service/solana/AbstractSolanaNullifierSnapshotService.d.ts +2 -3
- 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 +2 -1
- package/data-structures/event-service/solana/AbstractSolanaSnapshotService.mjs +2 -1
- package/data-structures/event-service/solana/SolanaBlockchainEventEmitter.cjs +1 -1
- package/data-structures/event-service/solana/SolanaBlockchainEventEmitter.d.ts +16 -11
- package/data-structures/event-service/solana/SolanaBlockchainEventEmitter.mjs +66 -64
- package/data-structures/index.d.ts +0 -3
- package/data-structures/provider-adapter/IProviderAdapter.d.ts +13 -8
- package/data-structures/snapshot/evm-snapshots/ClientAccessTokenSnapshotService.cjs +1 -1
- package/data-structures/snapshot/evm-snapshots/ClientAccessTokenSnapshotService.mjs +4 -6
- package/data-structures/snapshot/evm-snapshots/ClientApprovalsSnapshotService.cjs +1 -1
- package/data-structures/snapshot/evm-snapshots/ClientApprovalsSnapshotService.mjs +4 -6
- package/data-structures/snapshot/evm-snapshots/ClientCommitmentsSnapshotService.cjs +1 -1
- package/data-structures/snapshot/evm-snapshots/ClientCommitmentsSnapshotService.mjs +4 -6
- package/data-structures/snapshot/evm-snapshots/ClientNullifierSnapshotService.cjs +1 -1
- package/data-structures/snapshot/evm-snapshots/ClientNullifierSnapshotService.mjs +4 -6
- package/data-structures/snapshot/solana-snapshots/ClientSolanaAccessTokenSnapshotService.cjs +1 -1
- package/data-structures/snapshot/solana-snapshots/ClientSolanaAccessTokenSnapshotService.mjs +4 -6
- package/data-structures/snapshot/solana-snapshots/ClientSolanaCommitmentsSnapshotService.cjs +1 -1
- package/data-structures/snapshot/solana-snapshots/ClientSolanaCommitmentsSnapshotService.mjs +4 -5
- package/data-structures/snapshot/solana-snapshots/ClientSolanaNullifierSnapshotService.cjs +1 -1
- package/data-structures/snapshot/solana-snapshots/ClientSolanaNullifierSnapshotService.mjs +4 -6
- package/error-handling/error-codes.constants.cjs +1 -1
- package/error-handling/error-codes.constants.d.ts +0 -1
- package/error-handling/error-codes.constants.mjs +3 -4
- package/error-handling/get-error.message.cjs +1 -1
- package/error-handling/get-error.message.mjs +27 -21
- package/error-handling/handleErrorRestore.cjs +1 -0
- package/error-handling/handleErrorRestore.d.ts +2 -0
- package/error-handling/handleErrorRestore.mjs +11 -0
- package/error-handling/index.d.ts +1 -0
- package/functions/kyc/authentoHelper.cjs +1 -0
- package/functions/kyc/authentoHelper.d.ts +12 -0
- package/functions/kyc/authentoHelper.mjs +30 -0
- package/functions/kyc/zkMeHelper.cjs +1 -1
- package/functions/kyc/zkMeHelper.mjs +17 -18
- package/functions/pre-transaction/constructAdminData.cjs +1 -1
- package/functions/pre-transaction/constructAdminData.d.ts +2 -2
- package/functions/pre-transaction/constructAdminData.mjs +18 -12
- package/functions/pre-transaction/getExternalSwapAddress.cjs +1 -1
- package/functions/pre-transaction/getExternalSwapAddress.d.ts +2 -1
- package/functions/pre-transaction/getExternalSwapAddress.mjs +8 -8
- package/functions/pre-transaction/getVolatileTransferAmount.cjs +1 -1
- package/functions/pre-transaction/getVolatileTransferAmount.mjs +36 -21
- 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 +9 -1
- package/functions/pre-transaction/outputApprovalDataProcessing.mjs +34 -19
- package/functions/pre-transaction/sendV0Transaction.cjs +1 -1
- package/functions/pre-transaction/sendV0Transaction.mjs +50 -53
- 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/private-wallet/emporium.helpers.cjs +1 -1
- package/functions/private-wallet/emporium.helpers.d.ts +6 -3
- package/functions/private-wallet/emporium.helpers.mjs +127 -89
- package/functions/private-wallet/emporium.swap.helpers.cjs +1 -1
- package/functions/private-wallet/emporium.swap.helpers.d.ts +4 -1
- package/functions/private-wallet/emporium.swap.helpers.mjs +102 -100
- package/functions/snarkjs/constructEmporiumProof.cjs +1 -1
- package/functions/snarkjs/constructEmporiumProof.mjs +49 -49
- package/functions/snarkjs/constructSolanaZkProof.cjs +1 -1
- package/functions/snarkjs/constructSolanaZkProof.mjs +20 -18
- package/functions/snarkjs/fetchMerkleTreeSiblings.cjs +1 -1
- package/functions/snarkjs/fetchMerkleTreeSiblings.mjs +10 -11
- package/functions/utils/addresses.cjs +1 -1
- package/functions/utils/addresses.d.ts +0 -1
- package/functions/utils/addresses.mjs +12 -13
- 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 +9 -13
- package/functions/utils/get-hinkal-approvals.cjs +1 -0
- package/functions/utils/get-hinkal-approvals.d.ts +3 -0
- package/functions/utils/get-hinkal-approvals.mjs +38 -0
- 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 +1 -0
- package/functions/utils/involves-permit2-op.cjs +1 -1
- package/functions/utils/involves-permit2-op.d.ts +1 -0
- package/functions/utils/involves-permit2-op.mjs +6 -4
- 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 +23 -8
- package/functions/utils/prepareHinkal.cjs +1 -1
- package/functions/utils/prepareHinkal.d.ts +13 -6
- package/functions/utils/prepareHinkal.mjs +72 -45
- package/functions/utils/publicBalance.utils.cjs +1 -1
- package/functions/utils/publicBalance.utils.mjs +54 -49
- package/functions/utils/replaceAddressInCalldata.cjs +1 -0
- package/functions/utils/replaceAddressInCalldata.d.ts +1 -0
- package/functions/utils/replaceAddressInCalldata.mjs +7 -0
- package/functions/utils/string.utils.cjs +1 -1
- package/functions/utils/string.utils.d.ts +0 -1
- package/functions/utils/string.utils.mjs +14 -18
- package/functions/utils/token-check.utils.cjs +1 -1
- package/functions/utils/token-check.utils.d.ts +0 -3
- package/functions/utils/token-check.utils.mjs +7 -18
- 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 +17 -2
- package/functions/utils/walletBalances.utils.mjs +36 -5
- package/functions/web3/events/getApprovedBalance.cjs +1 -1
- package/functions/web3/events/getApprovedBalance.d.ts +4 -3
- package/functions/web3/events/getApprovedBalance.mjs +44 -39
- package/functions/web3/events/getInputUtxoAndBalance.cjs +1 -1
- package/functions/web3/events/getInputUtxoAndBalance.d.ts +3 -3
- package/functions/web3/events/getInputUtxoAndBalance.mjs +150 -129
- package/functions/web3/events/getShieldedBalance.cjs +2 -2
- package/functions/web3/events/getShieldedBalance.d.ts +1 -1
- package/functions/web3/events/getShieldedBalance.mjs +75 -73
- 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 +10 -13
- package/functions/web3/functionCalls/accessTokenCalls.cjs +1 -1
- package/functions/web3/functionCalls/accessTokenCalls.d.ts +6 -1
- package/functions/web3/functionCalls/accessTokenCalls.mjs +21 -12
- package/functions/web3/functionCalls/approveToken.cjs +1 -1
- package/functions/web3/functionCalls/approveToken.d.ts +1 -1
- package/functions/web3/functionCalls/approveToken.mjs +46 -50
- 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 +2 -1
- package/functions/web3/functionCalls/estimateGasRelayer.mjs +10 -10
- package/functions/web3/functionCalls/inHinkalApprovalCalls.cjs +1 -0
- package/functions/web3/functionCalls/inHinkalApprovalCalls.d.ts +5 -0
- package/functions/web3/functionCalls/inHinkalApprovalCalls.mjs +32 -0
- package/functions/web3/functionCalls/transactCallDirect.cjs +1 -1
- package/functions/web3/functionCalls/transactCallDirect.d.ts +1 -1
- package/functions/web3/functionCalls/transactCallDirect.mjs +40 -36
- package/functions/web3/functionCalls/transactCallRelayer.cjs +1 -1
- package/functions/web3/functionCalls/transactCallRelayer.d.ts +3 -3
- package/functions/web3/functionCalls/transactCallRelayer.mjs +54 -54
- package/functions/web3/getContractMetadata.cjs +1 -1
- package/functions/web3/getContractMetadata.mjs +22 -17
- 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 +0 -1
- 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 +19 -6
- package/functions/web3/okxAPI.cjs +1 -1
- package/functions/web3/okxAPI.mjs +13 -13
- package/functions/web3/oneInchAPI.cjs +1 -1
- package/functions/web3/oneInchAPI.mjs +20 -7
- package/functions/web3/runContractFunction.cjs +1 -1
- package/functions/web3/runContractFunction.mjs +56 -38
- package/functions/web3/uniswapAPI.cjs +1 -1
- package/functions/web3/uniswapAPI.mjs +34 -22
- package/index.cjs +1 -1
- package/index.mjs +922 -920
- package/package.json +2 -3
- package/providers/EthersProviderAdapter.cjs +1 -1
- package/providers/EthersProviderAdapter.d.ts +17 -10
- package/providers/EthersProviderAdapter.mjs +76 -45
- package/providers/SolanaProviderAdapter.cjs +1 -1
- package/providers/SolanaProviderAdapter.d.ts +11 -7
- package/providers/SolanaProviderAdapter.mjs +31 -16
- package/providers/WagmiProviderAdapter.cjs +1 -1
- package/providers/WagmiProviderAdapter.d.ts +17 -11
- package/providers/WagmiProviderAdapter.mjs +117 -86
- package/providers/prepareEthersHinkal.cjs +1 -1
- package/providers/prepareEthersHinkal.mjs +9 -14
- package/providers/prepareWagmiHinkal.cjs +1 -1
- package/providers/prepareWagmiHinkal.mjs +9 -15
- package/types/TransactionSimulator.types.d.ts +9 -2
- package/types/activities.types.d.ts +0 -2
- package/types/admin.types.cjs +1 -1
- package/types/admin.types.d.ts +6 -0
- package/types/admin.types.mjs +2 -2
- package/types/balances.types.d.ts +1 -0
- package/types/bridging.types.d.ts +29 -0
- package/types/cache.types.cjs +1 -1
- package/types/cache.types.d.ts +3 -6
- package/types/cache.types.mjs +1 -1
- package/types/coingecko.types.d.ts +0 -5
- package/types/duneAPI.types.d.ts +9 -0
- package/types/ethereum-network.types.d.ts +0 -1
- package/types/hinkal.types.cjs +1 -1
- package/types/hinkal.types.d.ts +1 -1
- package/types/hinkal.types.mjs +18 -18
- package/types/index.d.ts +2 -2
- package/types/proxy.types.d.ts +3 -6
- package/types/sandbox.types.cjs +1 -1
- package/types/sandbox.types.d.ts +39 -10
- package/types/sandbox.types.mjs +2 -2
- package/types/scheduled-transactions.types.cjs +1 -1
- package/types/scheduled-transactions.types.d.ts +6 -0
- package/types/scheduled-transactions.types.mjs +3 -2
- package/types/session.types.d.ts +0 -2
- package/types/solana.types.d.ts +0 -9
- package/types/token-prices.types.cjs +1 -1
- package/types/token-prices.types.d.ts +0 -7
- package/types/token-prices.types.mjs +2 -4
- 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/viteWorkerURL.constant.cjs +3 -3
- package/webworker/viteWorkerURL.constant.mjs +3 -3
- package/webworker/zkProofWorker/zkProofWorkerLauncher.cjs +1 -1
- package/webworker/zkProofWorker/zkProofWorkerLauncher.mjs +1 -1
- package/API/get-token-price-chart-data.cjs +0 -1
- package/API/get-token-price-chart-data.d.ts +0 -16
- package/API/get-token-price-chart-data.mjs +0 -13
- package/API/onrampCalls.cjs +0 -1
- package/API/onrampCalls.d.ts +0 -20
- package/API/onrampCalls.mjs +0 -15
- package/API/unspent-utxos-calls.cjs +0 -1
- package/API/unspent-utxos-calls.d.ts +0 -26
- package/API/unspent-utxos-calls.mjs +0 -26
- package/data-structures/AccountActions/AccountActions.cjs +0 -1
- package/data-structures/AccountActions/AccountActions.d.ts +0 -18
- package/data-structures/AccountActions/AccountActions.mjs +0 -78
- package/data-structures/AccountActions/index.d.ts +0 -1
- package/data-structures/BlockchainEvent/BlockchainEvent.cjs +0 -1
- package/data-structures/BlockchainEvent/BlockchainEvent.d.ts +0 -14
- package/data-structures/BlockchainEvent/BlockchainEvent.mjs +0 -41
- package/data-structures/PublicBalance/PublicBalanceWatcher.cjs +0 -1
- package/data-structures/PublicBalance/PublicBalanceWatcher.d.ts +0 -20
- package/data-structures/PublicBalance/PublicBalanceWatcher.mjs +0 -124
- package/data-structures/PublicBalance/SolanaPublicBalancerWatcher.cjs +0 -1
- package/data-structures/PublicBalance/SolanaPublicBalancerWatcher.d.ts +0 -15
- package/data-structures/PublicBalance/SolanaPublicBalancerWatcher.mjs +0 -64
- package/data-structures/PublicBalance/index.d.ts +0 -2
- package/data-structures/event-service/evm/ClientBlockchainEventEmitter.cjs +0 -1
- package/data-structures/event-service/evm/ClientBlockchainEventEmitter.d.ts +0 -11
- package/data-structures/event-service/evm/ClientBlockchainEventEmitter.mjs +0 -21
- package/data-structures/event-service/evm/PollingBlockchainEventEmitter.cjs +0 -1
- package/data-structures/event-service/evm/PollingBlockchainEventEmitter.d.ts +0 -6
- package/data-structures/event-service/evm/PollingBlockchainEventEmitter.mjs +0 -16
- package/data-structures/event-service/helpers/ClientEventHelper.cjs +0 -1
- package/data-structures/event-service/helpers/ClientEventHelper.d.ts +0 -11
- package/data-structures/event-service/helpers/ClientEventHelper.mjs +0 -26
- package/data-structures/event-service/helpers/PollingEventHelper.cjs +0 -1
- package/data-structures/event-service/helpers/PollingEventHelper.d.ts +0 -5
- package/data-structures/event-service/helpers/PollingEventHelper.mjs +0 -14
- package/data-structures/event-service/solana/ClientSolanaBlockchainEventEmitter.cjs +0 -1
- package/data-structures/event-service/solana/ClientSolanaBlockchainEventEmitter.d.ts +0 -11
- package/data-structures/event-service/solana/ClientSolanaBlockchainEventEmitter.mjs +0 -22
- package/data-structures/event-service/solana/PollingSolanaBlockchainEventEmitter.cjs +0 -1
- package/data-structures/event-service/solana/PollingSolanaBlockchainEventEmitter.d.ts +0 -6
- package/data-structures/event-service/solana/PollingSolanaBlockchainEventEmitter.mjs +0 -16
- package/functions/utils/enum.utils.cjs +0 -1
- package/functions/utils/enum.utils.mjs +0 -14
- package/functions/utils/socket.utils.cjs +0 -1
- package/functions/utils/socket.utils.d.ts +0 -1
- package/functions/utils/socket.utils.mjs +0 -12
- package/functions/web3/crypto.cjs +0 -1
- package/functions/web3/crypto.d.ts +0 -1
- package/functions/web3/crypto.mjs +0 -7
- package/types/events.types.cjs +0 -1
- package/types/events.types.d.ts +0 -9
- package/types/events.types.mjs +0 -5
- package/types/onramp.types.cjs +0 -1
- package/types/onramp.types.d.ts +0 -58
- package/types/onramp.types.mjs +0 -4
|
@@ -4,8 +4,9 @@ export interface Snapshot<SnapshotPayloadType> {
|
|
|
4
4
|
readonly latestBlockNumber: number;
|
|
5
5
|
readonly payload: SnapshotPayloadType;
|
|
6
6
|
}
|
|
7
|
-
export declare abstract class AbstractSnapshotService<EventType, SnapshotPayloadType, SerializedSnapshotType> extends AbstractEventService<EventType> {
|
|
7
|
+
export declare abstract class AbstractSnapshotService<EventType, SerializedEventType, SnapshotPayloadType, SerializedSnapshotType> extends AbstractEventService<EventType, SerializedEventType> {
|
|
8
8
|
private savedLatestBlockNumber;
|
|
9
|
+
private chainId;
|
|
9
10
|
protected constructor(blockchainEventEmitter: BlockchainEventEmitter, eventName: string);
|
|
10
11
|
init(): Promise<void>;
|
|
11
12
|
retrieveEventsFromLatestBlock(): Promise<void>;
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { saveDepths as e } from "../../../constants/save-depths.mjs";
|
|
2
2
|
import { AbstractEventService as a } from "./AbstractEventService.mjs";
|
|
3
|
-
class
|
|
3
|
+
class c extends a {
|
|
4
4
|
savedLatestBlockNumber = 0;
|
|
5
|
+
chainId = 0;
|
|
5
6
|
constructor(t, s) {
|
|
6
7
|
super(t, s);
|
|
7
8
|
}
|
|
8
9
|
async init() {
|
|
9
|
-
await this.loadSnapshot();
|
|
10
|
+
await this.loadSnapshot(), this.chainId = (await this.blockchainEventEmitter.contract.provider.getNetwork()).chainId;
|
|
10
11
|
}
|
|
11
12
|
async retrieveEventsFromLatestBlock() {
|
|
12
13
|
await this.blockchainEventEmitter.retrieveEvents(this.latestBlockNumber);
|
|
@@ -28,5 +29,5 @@ class r extends a {
|
|
|
28
29
|
}
|
|
29
30
|
}
|
|
30
31
|
export {
|
|
31
|
-
|
|
32
|
+
c as AbstractSnapshotService
|
|
32
33
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("../../../constants/reorg-depths.constants.cjs"),l=require("../../../functions/utils/resolve-sync.utils.cjs"),m=require("../../../functions/utils/mutexes.utils.cjs");class y{contract;depositOnChainUtxosContract;_latestBlockNumber;_initialBlockNumber;onEventsProcessed;eventProcessors=new Set;maxPageSize;isReady=!1;isServer;intervalId;inProgress;eventsFetchingMutex;constructor(e,r,h,s,i,a=m.balanceFetchingMutex){this.contract=e,this.depositOnChainUtxosContract=i,this._initialBlockNumber=r,this.maxPageSize=s,this.isServer=h,this.inProgress=!1,this.eventsFetchingMutex=a}get latestBlockNumber(){return this._latestBlockNumber??this._initialBlockNumber}syncFromAtMost(e){(this._latestBlockNumber===void 0||e<this._latestBlockNumber)&&(this._latestBlockNumber=e)}intervalClear(){this.isReady=!1,this.eventProcessors=new Set,clearInterval(this.intervalId)}async init(){if(this.isReady)throw new Error("Already initialized");this.isReady=!0,await this.retrieveEvents(this.latestBlockNumber+1),this.intervalId=setInterval(async()=>{await this.retrieveEvents(this.latestBlockNumber)},3500)}requireReady(){if(!this.isReady)throw new Error("Not ready")}addEventProcessorFunction(e){if(this.isReady)throw new Error("Can't add event processor after event emitter initialized");this.eventProcessors.add(e)}async getLastBlockNumberForEventRequest(){const e=await this.contract.provider.getBlockNumber();if(!this.isServer)return e;const{chainId:r}=await this.contract.provider.getNetwork();return Math.max(this.latestBlockNumber,e-d.blockReorgDepth[r]+1)}async retrieveEvents(e,r=!1){return this.requireReady(),await this.eventsFetchingMutex.runExclusive(async()=>{try{if(this.inProgress&&!r)return!1;this.inProgress=!0;let s=0;const i=await this.getLastBlockNumberForEventRequest();if(i<e)return this.inProgress=!1,!1;const a=l.getSequence(e,i,this.maxPageSize),o=[];if(await l.resolveSync(a.map(({from:t,to:n})=>async()=>{const c=await this.contract.queryFilter("*",t,n);o.push(...c)})),this.depositOnChainUtxosContract){const{depositOnChainUtxosContract:t}=this;await l.resolveSync(a.map(({from:n,to:c})=>async()=>{const v=await t.queryFilter("*",n,c);o.push(...v)}))}const u=await Promise.all([...this.eventProcessors].map(t=>t(o)));return this._latestBlockNumber=i,s+=u.reduce((t,n)=>t+n,0),this.onEventsProcessed?.(s),this.inProgress=!1,!0}catch(s){return console.log("retrieveEvents error:",{err:s}),this.inProgress=!1,!1}})}}exports.BlockchainEventEmitter=y;
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { ethers } from 'ethers';
|
|
2
2
|
import { Mutex } from 'async-mutex';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export declare abstract class BlockchainEventEmitter {
|
|
6
|
-
private readonly _chainId;
|
|
3
|
+
export type EventProcessorFunction = (events: ethers.Event[]) => Promise<number> | number;
|
|
4
|
+
export declare class BlockchainEventEmitter {
|
|
7
5
|
readonly contract: ethers.Contract;
|
|
8
6
|
readonly depositOnChainUtxosContract?: ethers.Contract;
|
|
9
7
|
private _latestBlockNumber;
|
|
@@ -13,11 +11,11 @@ export declare abstract class BlockchainEventEmitter {
|
|
|
13
11
|
private readonly maxPageSize?;
|
|
14
12
|
private isReady;
|
|
15
13
|
private isServer;
|
|
14
|
+
private intervalId?;
|
|
16
15
|
private inProgress;
|
|
17
|
-
|
|
18
|
-
constructor(
|
|
16
|
+
private eventsFetchingMutex;
|
|
17
|
+
constructor(contract: ethers.Contract, initialBlockNumber: number, isServer: boolean, maxPageSize?: number, depositOnChainUtxosContract?: ethers.Contract, eventsFetchingMutex?: Mutex);
|
|
19
18
|
get latestBlockNumber(): number;
|
|
20
|
-
get chainId(): number;
|
|
21
19
|
syncFromAtMost(blockNumber: number): void;
|
|
22
20
|
intervalClear(): void;
|
|
23
21
|
init(): Promise<void>;
|
|
@@ -25,7 +23,4 @@ export declare abstract class BlockchainEventEmitter {
|
|
|
25
23
|
addEventProcessorFunction(eventProcessorFunction: EventProcessorFunction): void;
|
|
26
24
|
private getLastBlockNumberForEventRequest;
|
|
27
25
|
retrieveEvents(fromBlockNumber: number, useForce?: boolean): Promise<boolean>;
|
|
28
|
-
protected processEvents(events: BlockchainEvent[]): Promise<void>;
|
|
29
|
-
protected abstract clear(): void;
|
|
30
|
-
protected abstract startUpdateListener(): Promise<void> | void;
|
|
31
26
|
}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { blockReorgDepth as
|
|
2
|
-
import { getSequence as
|
|
3
|
-
import {
|
|
4
|
-
class
|
|
5
|
-
_chainId;
|
|
1
|
+
import { blockReorgDepth as d } from "../../../constants/reorg-depths.constants.mjs";
|
|
2
|
+
import { getSequence as m, resolveSync as h } from "../../../functions/utils/resolve-sync.utils.mjs";
|
|
3
|
+
import { balanceFetchingMutex as y } from "../../../functions/utils/mutexes.utils.mjs";
|
|
4
|
+
class w {
|
|
6
5
|
contract;
|
|
7
6
|
depositOnChainUtxosContract;
|
|
8
7
|
_latestBlockNumber;
|
|
@@ -12,28 +11,28 @@ class g {
|
|
|
12
11
|
maxPageSize;
|
|
13
12
|
isReady = !1;
|
|
14
13
|
isServer;
|
|
14
|
+
intervalId;
|
|
15
15
|
inProgress;
|
|
16
16
|
// to remove race conditions
|
|
17
17
|
eventsFetchingMutex;
|
|
18
|
-
constructor(t,
|
|
19
|
-
this.contract =
|
|
18
|
+
constructor(t, r, l, s, i, n = y) {
|
|
19
|
+
this.contract = t, this.depositOnChainUtxosContract = i, this._initialBlockNumber = r, this.maxPageSize = s, this.isServer = l, this.inProgress = !1, this.eventsFetchingMutex = n;
|
|
20
20
|
}
|
|
21
21
|
get latestBlockNumber() {
|
|
22
22
|
return this._latestBlockNumber ?? this._initialBlockNumber;
|
|
23
23
|
}
|
|
24
|
-
get chainId() {
|
|
25
|
-
return this._chainId;
|
|
26
|
-
}
|
|
27
24
|
syncFromAtMost(t) {
|
|
28
25
|
(this._latestBlockNumber === void 0 || t < this._latestBlockNumber) && (this._latestBlockNumber = t);
|
|
29
26
|
}
|
|
30
27
|
intervalClear() {
|
|
31
|
-
this.isReady = !1, this.eventProcessors = /* @__PURE__ */ new Set(), this.
|
|
28
|
+
this.isReady = !1, this.eventProcessors = /* @__PURE__ */ new Set(), clearInterval(this.intervalId);
|
|
32
29
|
}
|
|
33
30
|
async init() {
|
|
34
31
|
if (this.isReady)
|
|
35
32
|
throw new Error("Already initialized");
|
|
36
|
-
this.isReady = !0, await this.retrieveEvents(this.latestBlockNumber + 1),
|
|
33
|
+
this.isReady = !0, await this.retrieveEvents(this.latestBlockNumber + 1), this.intervalId = setInterval(async () => {
|
|
34
|
+
await this.retrieveEvents(this.latestBlockNumber);
|
|
35
|
+
}, 3500);
|
|
37
36
|
}
|
|
38
37
|
requireReady() {
|
|
39
38
|
if (!this.isReady)
|
|
@@ -48,47 +47,44 @@ class g {
|
|
|
48
47
|
const t = await this.contract.provider.getBlockNumber();
|
|
49
48
|
if (!this.isServer)
|
|
50
49
|
return t;
|
|
51
|
-
const { chainId:
|
|
52
|
-
return Math.max(this.latestBlockNumber, t -
|
|
50
|
+
const { chainId: r } = await this.contract.provider.getNetwork();
|
|
51
|
+
return Math.max(this.latestBlockNumber, t - d[r] + 1);
|
|
53
52
|
}
|
|
54
|
-
async retrieveEvents(t,
|
|
53
|
+
async retrieveEvents(t, r = !1) {
|
|
55
54
|
return this.requireReady(), await this.eventsFetchingMutex.runExclusive(async () => {
|
|
56
55
|
try {
|
|
57
|
-
if (this.inProgress && !
|
|
56
|
+
if (this.inProgress && !r)
|
|
58
57
|
return !1;
|
|
59
58
|
this.inProgress = !0;
|
|
60
|
-
|
|
61
|
-
|
|
59
|
+
let s = 0;
|
|
60
|
+
const i = await this.getLastBlockNumberForEventRequest();
|
|
61
|
+
if (i < t)
|
|
62
62
|
return this.inProgress = !1, !1;
|
|
63
|
-
const
|
|
64
|
-
if (await
|
|
65
|
-
|
|
66
|
-
const
|
|
67
|
-
|
|
63
|
+
const n = m(t, i, this.maxPageSize), o = [];
|
|
64
|
+
if (await h(
|
|
65
|
+
n.map(({ from: e, to: a }) => async () => {
|
|
66
|
+
const c = await this.contract.queryFilter("*", e, a);
|
|
67
|
+
o.push(...c);
|
|
68
68
|
})
|
|
69
69
|
), this.depositOnChainUtxosContract) {
|
|
70
|
-
const { depositOnChainUtxosContract:
|
|
71
|
-
await
|
|
72
|
-
|
|
73
|
-
const
|
|
74
|
-
|
|
70
|
+
const { depositOnChainUtxosContract: e } = this;
|
|
71
|
+
await h(
|
|
72
|
+
n.map(({ from: a, to: c }) => async () => {
|
|
73
|
+
const v = await e.queryFilter("*", a, c);
|
|
74
|
+
o.push(...v);
|
|
75
75
|
})
|
|
76
76
|
);
|
|
77
77
|
}
|
|
78
|
-
const
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
return
|
|
78
|
+
const u = await Promise.all(
|
|
79
|
+
[...this.eventProcessors].map((e) => e(o))
|
|
80
|
+
);
|
|
81
|
+
return this._latestBlockNumber = i, s += u.reduce((e, a) => e + a, 0), this.onEventsProcessed?.(s), this.inProgress = !1, !0;
|
|
82
|
+
} catch (s) {
|
|
83
|
+
return console.log("retrieveEvents error:", { err: s }), this.inProgress = !1, !1;
|
|
82
84
|
}
|
|
83
85
|
});
|
|
84
86
|
}
|
|
85
|
-
async processEvents(t) {
|
|
86
|
-
const n = (await Promise.all(
|
|
87
|
-
[...this.eventProcessors].map((e) => e(t))
|
|
88
|
-
)).reduce((e, r) => e + r, 0);
|
|
89
|
-
this.onEventsProcessed?.(n);
|
|
90
|
-
}
|
|
91
87
|
}
|
|
92
88
|
export {
|
|
93
|
-
|
|
89
|
+
w as BlockchainEventEmitter
|
|
94
90
|
};
|
|
@@ -5,11 +5,7 @@ export * from './evm/AbstractNullifierSnapshotService';
|
|
|
5
5
|
export * from './evm/AbstractSnapshotService';
|
|
6
6
|
export * from './evm/AbstractEventService';
|
|
7
7
|
export * from './evm/BlockchainEventEmitter';
|
|
8
|
-
export * from './evm/PollingBlockchainEventEmitter';
|
|
9
|
-
export * from './evm/ClientBlockchainEventEmitter';
|
|
10
8
|
export * from './solana/SolanaBlockchainEventEmitter';
|
|
11
|
-
export * from './solana/ClientSolanaBlockchainEventEmitter';
|
|
12
|
-
export * from './solana/PollingSolanaBlockchainEventEmitter';
|
|
13
9
|
export * from './solana/AbstractSolanaEventService';
|
|
14
10
|
export * from './solana/AbstractSolanaSnapshotService';
|
|
15
11
|
export * from './solana/AbstractSolanaNullifierSnapshotService';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("../../../constants/protocol.constants.cjs"),c=require("../../../crypto/poseidon.cjs");require("circomlibjs-hinkal-fork");require("libsodium-wrappers");require("process");require("buffer");const n=require("../../../functions/utils/amounts.utils.cjs"),o=require("../../merkle-tree/MerkleTree.cjs");require("ethers");require("../../../error-handling/error-codes.constants.cjs");const l=require("./AbstractSolanaSnapshotService.cjs"),i=require("../../../functions/utils/merkleTree.utils.cjs"),u=require("@solana/web3.js");class A extends l.AbstractSolanaSnapshotService{constructor(e){super(e,"NewAccessKeyAdded")}_merkleTree;_senderAddresses;_senderAddressIndexMap;get merkleTree(){return this._merkleTree}get senderAddresses(){return this._senderAddresses}get senderAddressIndexMap(){return this._senderAddressIndexMap}serializeSnapshot(e){return{merkleTree:e.payload.merkleTree.toJSON(),senderAddresses:Array.from(e.payload.senderAddresses),latestBlockNumber:e.latestBlockNumber,senderAddressIndexMap:Array.from(e.payload.senderAddressIndexMap).map(([s,r])=>({address:s,index:r}))}}deserializeSnapshot(e){let s,r;return e.latestBlockNumber&&e.merkleTree?s=i.contructMerkleTreeFromSerialized(e.merkleTree):s=o.MerkleTree.create(c.poseidonFunction,0n),e.latestBlockNumber&&e.senderAddressIndexMap?r=new Map(e.senderAddressIndexMap.map(({address:d,index:t})=>[d,t])):r=new Map,{latestBlockNumber:e.latestBlockNumber??0,payload:{merkleTree:s,senderAddresses:e.senderAddresses??[],senderAddressIndexMap:r}}}acceptEvent(e,s){try{return this._merkleTree.insert(e.access_key,e.index),this._senderAddressIndexMap.set(e.sender_address,Math.max(Number(e.index),this._senderAddressIndexMap.get(e.sender_address)??0)),this._senderAddresses.includes(e.sender_address)||this._senderAddresses.push(e.sender_address),e.access_key===0n&&e.sender_address===a.zeroAddress&&this._merkleTree.remove(e.index),!0}catch(r){return console.error(r),!1}}mapEvent(e){const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("../../../constants/protocol.constants.cjs"),c=require("../../../crypto/poseidon.cjs");require("circomlibjs-hinkal-fork");require("libsodium-wrappers");require("process");require("buffer");const n=require("../../../functions/utils/amounts.utils.cjs"),o=require("../../merkle-tree/MerkleTree.cjs");require("ethers");require("../../../error-handling/error-codes.constants.cjs");const l=require("./AbstractSolanaSnapshotService.cjs"),i=require("../../../functions/utils/merkleTree.utils.cjs"),u=require("@solana/web3.js");class A extends l.AbstractSolanaSnapshotService{constructor(e){super(e,"NewAccessKeyAdded")}_merkleTree;_senderAddresses;_senderAddressIndexMap;get merkleTree(){return this._merkleTree}get senderAddresses(){return this._senderAddresses}get senderAddressIndexMap(){return this._senderAddressIndexMap}serializeSnapshot(e){return{merkleTree:e.payload.merkleTree.toJSON(),senderAddresses:Array.from(e.payload.senderAddresses),latestBlockNumber:e.latestBlockNumber,senderAddressIndexMap:Array.from(e.payload.senderAddressIndexMap).map(([s,r])=>({address:s,index:r}))}}deserializeSnapshot(e){let s,r;return e.latestBlockNumber&&e.merkleTree?s=i.contructMerkleTreeFromSerialized(e.merkleTree):s=o.MerkleTree.create(c.poseidonFunction,0n),e.latestBlockNumber&&e.senderAddressIndexMap?r=new Map(e.senderAddressIndexMap.map(({address:d,index:t})=>[d,t])):r=new Map,{latestBlockNumber:e.latestBlockNumber??0,payload:{merkleTree:s,senderAddresses:e.senderAddresses??[],senderAddressIndexMap:r}}}acceptEvent(e,s){try{return this._merkleTree.insert(e.access_key,e.index),this._senderAddressIndexMap.set(e.sender_address,Math.max(Number(e.index),this._senderAddressIndexMap.get(e.sender_address)??0)),this._senderAddresses.includes(e.sender_address)||this._senderAddresses.push(e.sender_address),e.access_key===0n&&e.sender_address===a.zeroAddress&&this._merkleTree.remove(e.index),!0}catch(r){return console.error(r),!1}}mapEvent(e){const{access_key:s,index:r,sender_address:d}=e;return{access_key:n.advancedToBigInt(s),index:n.advancedToBigInt(r),sender_address:new u.PublicKey(d).toBase58()}}getSnapshotPayload(){return{merkleTree:this._merkleTree,senderAddresses:this._senderAddresses,senderAddressIndexMap:this._senderAddressIndexMap}}populateSnapshot({payload:{merkleTree:e,senderAddresses:s,senderAddressIndexMap:r}}){this._merkleTree=e,this._senderAddresses=s,this._senderAddressIndexMap=r}}exports.AbstractSolanaAccessTokenSnapshotService=A;
|
|
@@ -2,7 +2,6 @@ import { MerkleTree, MerkleTreeJson } from '../../merkle-tree';
|
|
|
2
2
|
import { SolanaAccessTokenEvent } from '../../../types';
|
|
3
3
|
import { AbstractSolanaSnapshotService, SolanaSnapshot } from './AbstractSolanaSnapshotService';
|
|
4
4
|
import { SolanaBlockchainEventEmitter } from './SolanaBlockchainEventEmitter';
|
|
5
|
-
import { BlockchainEvent } from '../../BlockchainEvent/BlockchainEvent';
|
|
6
5
|
export type SolanaSenderAddressIndexMapJson = {
|
|
7
6
|
address: string;
|
|
8
7
|
index: number;
|
|
@@ -18,7 +17,7 @@ export type SolanaAccessTokenSerializedSnapshot = {
|
|
|
18
17
|
senderAddresses?: string[];
|
|
19
18
|
senderAddressIndexMap?: SolanaSenderAddressIndexMapJson;
|
|
20
19
|
};
|
|
21
|
-
export declare abstract class AbstractSolanaAccessTokenSnapshotService extends AbstractSolanaSnapshotService<SolanaAccessTokenEvent<bigint, string>, SolanaAccessTokenSnapshotPayload, SolanaAccessTokenSerializedSnapshot> {
|
|
20
|
+
export declare abstract class AbstractSolanaAccessTokenSnapshotService extends AbstractSolanaSnapshotService<SolanaAccessTokenEvent<bigint, string>, SolanaAccessTokenEvent<number[], number[]>, SolanaAccessTokenSnapshotPayload, SolanaAccessTokenSerializedSnapshot> {
|
|
22
21
|
constructor(accessTokenEventFetcher: SolanaBlockchainEventEmitter);
|
|
23
22
|
private _merkleTree;
|
|
24
23
|
private _senderAddresses;
|
|
@@ -29,7 +28,7 @@ export declare abstract class AbstractSolanaAccessTokenSnapshotService extends A
|
|
|
29
28
|
protected serializeSnapshot(snapshot: SolanaSnapshot<SolanaAccessTokenSnapshotPayload>): SolanaAccessTokenSerializedSnapshot;
|
|
30
29
|
protected deserializeSnapshot(serializedSnapshot: SolanaAccessTokenSerializedSnapshot): SolanaSnapshot<SolanaAccessTokenSnapshotPayload>;
|
|
31
30
|
protected acceptEvent(event: SolanaAccessTokenEvent<bigint, string>, _slot: number): boolean;
|
|
32
|
-
protected mapEvent(event:
|
|
31
|
+
protected mapEvent(event: SolanaAccessTokenEvent<number[], number[]>): SolanaAccessTokenEvent<bigint, string>;
|
|
33
32
|
protected getSnapshotPayload(): SolanaAccessTokenSnapshotPayload;
|
|
34
33
|
protected populateSnapshot({ payload: { merkleTree, senderAddresses, senderAddressIndexMap }, }: SolanaSnapshot<SolanaAccessTokenSnapshotPayload>): void;
|
|
35
34
|
}
|
|
@@ -8,10 +8,10 @@ import { advancedToBigInt as t } from "../../../functions/utils/amounts.utils.mj
|
|
|
8
8
|
import { MerkleTree as m } from "../../merkle-tree/MerkleTree.mjs";
|
|
9
9
|
import "ethers";
|
|
10
10
|
import "../../../error-handling/error-codes.constants.mjs";
|
|
11
|
-
import { AbstractSolanaSnapshotService as
|
|
12
|
-
import { contructMerkleTreeFromSerialized as
|
|
11
|
+
import { AbstractSolanaSnapshotService as l } from "./AbstractSolanaSnapshotService.mjs";
|
|
12
|
+
import { contructMerkleTreeFromSerialized as c } from "../../../functions/utils/merkleTree.utils.mjs";
|
|
13
13
|
import { PublicKey as p } from "@solana/web3.js";
|
|
14
|
-
class
|
|
14
|
+
class B extends l {
|
|
15
15
|
constructor(e) {
|
|
16
16
|
super(e, "NewAccessKeyAdded");
|
|
17
17
|
}
|
|
@@ -40,7 +40,7 @@ class N extends c {
|
|
|
40
40
|
}
|
|
41
41
|
deserializeSnapshot(e) {
|
|
42
42
|
let s, r;
|
|
43
|
-
return e.latestBlockNumber && e.merkleTree ? s =
|
|
43
|
+
return e.latestBlockNumber && e.merkleTree ? s = c(e.merkleTree) : s = m.create(o, 0n), e.latestBlockNumber && e.senderAddressIndexMap ? r = new Map(
|
|
44
44
|
e.senderAddressIndexMap.map(({ address: d, index: n }) => [d, n])
|
|
45
45
|
) : r = /* @__PURE__ */ new Map(), {
|
|
46
46
|
latestBlockNumber: e.latestBlockNumber ?? 0,
|
|
@@ -62,7 +62,7 @@ class N extends c {
|
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
64
|
mapEvent(e) {
|
|
65
|
-
const
|
|
65
|
+
const { access_key: s, index: r, sender_address: d } = e;
|
|
66
66
|
return {
|
|
67
67
|
access_key: t(s),
|
|
68
68
|
index: t(r),
|
|
@@ -83,5 +83,5 @@ class N extends c {
|
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
85
|
export {
|
|
86
|
-
|
|
86
|
+
B as AbstractSolanaAccessTokenSnapshotService
|
|
87
87
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("../../../crypto/poseidon.cjs");require("circomlibjs-hinkal-fork");require("libsodium-wrappers");require("process");require("buffer");const m=require("../../merkle-tree/MerkleTree.cjs");require("ethers");require("../../../error-handling/error-codes.constants.cjs");const c=require("../../../functions/utils/amounts.utils.cjs"),d=require("./AbstractSolanaSnapshotService.cjs"),y=require("../../../functions/utils/merkleTree.utils.cjs"),o=require("../../crypto-keys/decodeUTXO.cjs");class O extends d.AbstractSolanaSnapshotService{constructor(e){super(e,"NewCommitment")}_merkleTree;_encryptedOutputs;get merkleTree(){return this._merkleTree}get encryptedOutputs(){return this._encryptedOutputs}serializeSnapshot(e){return{merkleTree:e.payload.merkleTree.toJSON(),latestBlockNumber:e.latestBlockNumber,encryptedOutputs:e.payload.encryptedOutputs.map(t=>({value:t.value,isPositive:String(t.isPositive),isBlocked:t.isBlocked??!1}))}}deserializeSnapshot(e){let t;e.latestBlockNumber&&e.merkleTree?t=y.contructMerkleTreeFromSerialized(e.merkleTree):t=m.MerkleTree.create(p.poseidonFunction,0n);const n=e.encryptedOutputs?.map(r=>({value:r.value,isPositive:JSON.parse(r.isPositive),isBlocked:r.isBlocked??!1}));return{latestBlockNumber:e.latestBlockNumber??0,payload:{merkleTree:t,encryptedOutputs:n||[]}}}getSnapshotPayload(){return{merkleTree:this._merkleTree,encryptedOutputs:this._encryptedOutputs}}populateSnapshot({payload:{merkleTree:e,encryptedOutputs:t}}){this._merkleTree=e,this._encryptedOutputs=t}async mapEvent(e){const{commitment:t,index:n,encrypted_output:r,on_chain_data:s}=e,i=c.advancedToBigInt(t),u=c.advancedToBigInt(n);if(r.length===0){const l=o.encodeSolanaOnChainUtxo(s);return{commitment:i,index:u,encryptedOutput:l}}const a=`0x${Buffer.from(r).toString("hex")}`;return{commitment:i,index:u,encryptedOutput:a}}acceptEvent(e,t,n,r){if(!this.encryptedOutputs.map(s=>s.value).includes(e.encryptedOutput)){if(!this._merkleTree.insert(e.commitment,e.index>=0?e.index:-1n*e.index))return!1;const i={value:e.encryptedOutput,isPositive:!o.isSolanaOnChainUtxo(e.encryptedOutput),isBlocked:r??!1};return this._encryptedOutputs.push(i),!0}return!1}}exports.AbstractSolanaCommitmentsSnapshotService=O;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { MerkleTree, MerkleTreeJson } from '../../merkle-tree';
|
|
2
|
-
import { CommitmentEvent, EncryptedOutputWithSign } from '../../../types';
|
|
2
|
+
import { CommitmentEvent, EncryptedOutputWithSign, SolanaCommitmentEvent } from '../../../types';
|
|
3
3
|
import { AbstractSolanaSnapshotService, SolanaSnapshot } from './AbstractSolanaSnapshotService';
|
|
4
4
|
import { SolanaBlockchainEventEmitter } from './SolanaBlockchainEventEmitter';
|
|
5
|
-
import { BlockchainEvent } from '../../BlockchainEvent/BlockchainEvent';
|
|
6
5
|
export type SolanaCommitmentsSnapshotPayload = {
|
|
7
6
|
readonly merkleTree: MerkleTree<bigint>;
|
|
8
7
|
readonly encryptedOutputs: EncryptedOutputWithSign[];
|
|
@@ -12,7 +11,7 @@ export type SolanaCommitmentsSerializedSnapshot = {
|
|
|
12
11
|
merkleTree?: MerkleTreeJson;
|
|
13
12
|
encryptedOutputs?: EncryptedOutputWithSign<string>[];
|
|
14
13
|
};
|
|
15
|
-
export declare abstract class AbstractSolanaCommitmentsSnapshotService extends AbstractSolanaSnapshotService<CommitmentEvent<bigint>, SolanaCommitmentsSnapshotPayload, SolanaCommitmentsSerializedSnapshot> {
|
|
14
|
+
export declare abstract class AbstractSolanaCommitmentsSnapshotService extends AbstractSolanaSnapshotService<CommitmentEvent<bigint>, SolanaCommitmentEvent, SolanaCommitmentsSnapshotPayload, SolanaCommitmentsSerializedSnapshot> {
|
|
16
15
|
constructor(solanaEventEmitter: SolanaBlockchainEventEmitter);
|
|
17
16
|
private _merkleTree;
|
|
18
17
|
private _encryptedOutputs;
|
|
@@ -25,6 +24,6 @@ export declare abstract class AbstractSolanaCommitmentsSnapshotService extends A
|
|
|
25
24
|
encryptedOutputs: EncryptedOutputWithSign<boolean>[];
|
|
26
25
|
};
|
|
27
26
|
protected populateSnapshot({ payload: { merkleTree, encryptedOutputs }, }: SolanaSnapshot<SolanaCommitmentsSnapshotPayload>): void;
|
|
28
|
-
protected mapEvent(event:
|
|
27
|
+
protected mapEvent(event: SolanaCommitmentEvent): Promise<CommitmentEvent<bigint>>;
|
|
29
28
|
protected acceptEvent(event: CommitmentEvent<bigint>, _slot: number, _signature?: string, isBlocked?: boolean): boolean;
|
|
30
29
|
}
|
|
@@ -6,11 +6,11 @@ import "buffer";
|
|
|
6
6
|
import { MerkleTree as a } from "../../merkle-tree/MerkleTree.mjs";
|
|
7
7
|
import "ethers";
|
|
8
8
|
import "../../../error-handling/error-codes.constants.mjs";
|
|
9
|
-
import { advancedToBigInt as
|
|
9
|
+
import { advancedToBigInt as u } from "../../../functions/utils/amounts.utils.mjs";
|
|
10
10
|
import { AbstractSolanaSnapshotService as l } from "./AbstractSolanaSnapshotService.mjs";
|
|
11
11
|
import { contructMerkleTreeFromSerialized as d } from "../../../functions/utils/merkleTree.utils.mjs";
|
|
12
12
|
import { encodeSolanaOnChainUtxo as y, isSolanaOnChainUtxo as O } from "../../crypto-keys/decodeUTXO.mjs";
|
|
13
|
-
class
|
|
13
|
+
class I extends l {
|
|
14
14
|
constructor(e) {
|
|
15
15
|
super(e, "NewCommitment");
|
|
16
16
|
}
|
|
@@ -61,20 +61,20 @@ class P extends l {
|
|
|
61
61
|
this._merkleTree = e, this._encryptedOutputs = t;
|
|
62
62
|
}
|
|
63
63
|
async mapEvent(e) {
|
|
64
|
-
const
|
|
64
|
+
const { commitment: t, index: n, encrypted_output: r, on_chain_data: i } = e, s = u(t), o = u(n);
|
|
65
65
|
if (r.length === 0) {
|
|
66
|
-
const
|
|
66
|
+
const m = y(i);
|
|
67
67
|
return {
|
|
68
68
|
commitment: s,
|
|
69
69
|
index: o,
|
|
70
|
-
encryptedOutput:
|
|
70
|
+
encryptedOutput: m
|
|
71
71
|
};
|
|
72
72
|
}
|
|
73
|
-
const
|
|
73
|
+
const c = `0x${Buffer.from(r).toString("hex")}`;
|
|
74
74
|
return {
|
|
75
75
|
commitment: s,
|
|
76
76
|
index: o,
|
|
77
|
-
encryptedOutput:
|
|
77
|
+
encryptedOutput: c
|
|
78
78
|
};
|
|
79
79
|
}
|
|
80
80
|
acceptEvent(e, t, n, r) {
|
|
@@ -92,5 +92,5 @@ class P extends l {
|
|
|
92
92
|
}
|
|
93
93
|
}
|
|
94
94
|
export {
|
|
95
|
-
|
|
95
|
+
I as AbstractSolanaCommitmentsSnapshotService
|
|
96
96
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});class
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});class i{solanaBlockchainEventEmitter;eventName;constructor(e,s){this.solanaBlockchainEventEmitter=e,this.eventName=s,e.addEventProcessorFunction(this.processEventsPage.bind(this))}get latestBlockNumber(){return this.solanaBlockchainEventEmitter.latestBlockNumber}intervalClear(){this.solanaBlockchainEventEmitter.intervalClear()}async processEventsPage(e){const s=[],n=new Set;e.forEach(({eventName:t,signature:a})=>{t==="BlockedUtxosCreated"&&n.add(a)});const c=e.filter(t=>t.eventName===this.eventName).map(async t=>{try{const a=await this.mapEvent(t.data),o=n.has(t.signature);return await this.acceptEvent(a,t.slot,t.signature,o)?a:null}catch{return null}}),r=(await Promise.all(c)).filter(t=>t!==null);s.push(...r);const l=s.length;return await this.afterEventsAccepted(l),s.length}}exports.AbstractSolanaEventService=i;
|
|
@@ -1,16 +1,22 @@
|
|
|
1
|
-
import { BlockchainEvent } from '../../BlockchainEvent/BlockchainEvent';
|
|
2
1
|
import { SolanaBlockchainEventEmitter } from './SolanaBlockchainEventEmitter';
|
|
2
|
+
export interface SolanaEvent {
|
|
3
|
+
signature: string;
|
|
4
|
+
slot: number;
|
|
5
|
+
blockTime: number;
|
|
6
|
+
programId: any;
|
|
7
|
+
data: any;
|
|
8
|
+
eventName: string;
|
|
9
|
+
}
|
|
3
10
|
type PromiseOrValue<T> = T | Promise<T>;
|
|
4
|
-
export declare abstract class AbstractSolanaEventService<EventType> {
|
|
11
|
+
export declare abstract class AbstractSolanaEventService<EventType, SerializedEventType = unknown> {
|
|
5
12
|
protected solanaBlockchainEventEmitter: SolanaBlockchainEventEmitter;
|
|
6
13
|
protected readonly eventName: string;
|
|
7
14
|
protected constructor(solanaBlockchainEventEmitter: SolanaBlockchainEventEmitter, eventName: string);
|
|
8
15
|
get latestBlockNumber(): number;
|
|
9
|
-
get chainId(): number;
|
|
10
16
|
intervalClear(): void;
|
|
11
17
|
private processEventsPage;
|
|
12
18
|
protected abstract acceptEvent(event: EventType, slot: number, signature?: string, isBlocked?: boolean): boolean | Promise<boolean>;
|
|
13
|
-
protected abstract mapEvent(event:
|
|
19
|
+
protected abstract mapEvent(event: SerializedEventType): PromiseOrValue<EventType>;
|
|
14
20
|
protected abstract afterEventsAccepted(eventsCount: number): Promise<void>;
|
|
15
21
|
}
|
|
16
22
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
class
|
|
1
|
+
class E {
|
|
2
2
|
solanaBlockchainEventEmitter;
|
|
3
3
|
eventName;
|
|
4
4
|
constructor(e, s) {
|
|
@@ -7,30 +7,27 @@ class u {
|
|
|
7
7
|
get latestBlockNumber() {
|
|
8
8
|
return this.solanaBlockchainEventEmitter.latestBlockNumber;
|
|
9
9
|
}
|
|
10
|
-
get chainId() {
|
|
11
|
-
return this.solanaBlockchainEventEmitter.chainId;
|
|
12
|
-
}
|
|
13
10
|
intervalClear() {
|
|
14
11
|
this.solanaBlockchainEventEmitter.intervalClear();
|
|
15
12
|
}
|
|
16
13
|
async processEventsPage(e) {
|
|
17
14
|
const s = [], a = /* @__PURE__ */ new Set();
|
|
18
|
-
e.forEach(({ eventName: t,
|
|
15
|
+
e.forEach(({ eventName: t, signature: n }) => {
|
|
19
16
|
t === "BlockedUtxosCreated" && a.add(n);
|
|
20
17
|
});
|
|
21
18
|
const c = e.filter((t) => t.eventName === this.eventName).map(async (t) => {
|
|
22
19
|
try {
|
|
23
|
-
const n = await this.mapEvent(t),
|
|
24
|
-
return await this.acceptEvent(n, t.
|
|
20
|
+
const n = await this.mapEvent(t.data), o = a.has(t.signature);
|
|
21
|
+
return await this.acceptEvent(n, t.slot, t.signature, o) ? n : null;
|
|
25
22
|
} catch {
|
|
26
23
|
return null;
|
|
27
24
|
}
|
|
28
25
|
}), r = (await Promise.all(c)).filter((t) => t !== null);
|
|
29
26
|
s.push(...r);
|
|
30
|
-
const
|
|
31
|
-
return await this.afterEventsAccepted(
|
|
27
|
+
const l = s.length;
|
|
28
|
+
return await this.afterEventsAccepted(l), s.length;
|
|
32
29
|
}
|
|
33
30
|
}
|
|
34
31
|
export {
|
|
35
|
-
|
|
32
|
+
E as AbstractSolanaEventService
|
|
36
33
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("ethers"),i=require("../../../functions/utils/amounts.utils.cjs"),n=require("./AbstractSolanaSnapshotService.cjs");class s extends n.AbstractSolanaSnapshotService{constructor(e){super(e,"Nullified")}_nullifiers;get nullifiers(){return this._nullifiers}serializeSnapshot(e){return{nullifiers:Array.from(e.payload.nullifiers).map(r=>r.toString()),latestBlockNumber:e.latestBlockNumber}}deserializeSnapshot(e){return{latestBlockNumber:e.latestBlockNumber??0,payload:{nullifiers:new Set(e.nullifiers??[])}}}acceptEvent(e,r){try{return this._nullifiers.has(e.nullifier)?!1:(this._nullifiers.add(e.nullifier),!0)}catch(l){return console.error(l),!1}}mapEvent(e){return{nullifier:t.BigNumber.from(i.advancedToBigInt(e.nullifier)).toHexString()}}getSnapshotPayload(){return{nullifiers:this._nullifiers}}populateSnapshot({payload:{nullifiers:e}}){this._nullifiers=e}}exports.AbstractSolanaNullifierSnapshotService=s;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { NullifierEvent } from '../../../types/commitments.types';
|
|
2
2
|
import { AbstractSolanaSnapshotService, SolanaSnapshot } from './AbstractSolanaSnapshotService';
|
|
3
3
|
import { SolanaBlockchainEventEmitter } from './SolanaBlockchainEventEmitter';
|
|
4
|
-
import { BlockchainEvent } from '../../BlockchainEvent/BlockchainEvent';
|
|
5
4
|
export type SolanaNullifierSnapshotPayload = {
|
|
6
5
|
readonly nullifiers: Set<string>;
|
|
7
6
|
};
|
|
@@ -9,14 +8,14 @@ export type SolanaNullifierSerializedSnapshot = {
|
|
|
9
8
|
latestBlockNumber?: number;
|
|
10
9
|
nullifiers?: string[];
|
|
11
10
|
};
|
|
12
|
-
export declare abstract class AbstractSolanaNullifierSnapshotService extends AbstractSolanaSnapshotService<NullifierEvent<string>, SolanaNullifierSnapshotPayload, SolanaNullifierSerializedSnapshot> {
|
|
11
|
+
export declare abstract class AbstractSolanaNullifierSnapshotService extends AbstractSolanaSnapshotService<NullifierEvent<string>, NullifierEvent<number[]>, SolanaNullifierSnapshotPayload, SolanaNullifierSerializedSnapshot> {
|
|
13
12
|
constructor(solanaEventEmitter: SolanaBlockchainEventEmitter);
|
|
14
13
|
private _nullifiers;
|
|
15
14
|
get nullifiers(): Set<string>;
|
|
16
15
|
protected serializeSnapshot(snapshot: SolanaSnapshot<SolanaNullifierSnapshotPayload>): SolanaNullifierSerializedSnapshot;
|
|
17
16
|
protected deserializeSnapshot(serializedSnapshot: SolanaNullifierSerializedSnapshot): SolanaSnapshot<SolanaNullifierSnapshotPayload>;
|
|
18
17
|
protected acceptEvent(event: NullifierEvent<string>, _slot: number): boolean;
|
|
19
|
-
protected mapEvent(event:
|
|
18
|
+
protected mapEvent(event: NullifierEvent<number[]>): NullifierEvent<string>;
|
|
20
19
|
protected getSnapshotPayload(): SolanaNullifierSnapshotPayload;
|
|
21
20
|
protected populateSnapshot({ payload: { nullifiers } }: SolanaSnapshot<SolanaNullifierSnapshotPayload>): void;
|
|
22
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./AbstractSolanaEventService.cjs"),e=require("../../../constants/save-depths.cjs");class o extends a.AbstractSolanaEventService{savedLatestSlot=0;chainId=0;constructor(t,s){super(t,s)}async init(){await this.loadSnapshot(),this.chainId=this.solanaBlockchainEventEmitter.chainId}async retrieveEventsFromLatestBlock(){await this.solanaBlockchainEventEmitter.retrieveEvents(this.latestBlockNumber)}async loadSnapshot(){const t=await this.fetchSnapshot(),s=this.deserializeSnapshot(t);this.populateSnapshot(s),this.solanaBlockchainEventEmitter.syncFromAtMost(s.latestBlockNumber),this.savedLatestSlot=s.latestBlockNumber}saveSnapshot(){return this.savedLatestSlot=this.latestBlockNumber,this.persistSnapshot(this.serializeSnapshot({latestBlockNumber:this.latestBlockNumber,payload:this.getSnapshotPayload()}))}async afterEventsAccepted(t){(t>0||this.savedLatestSlot+e.saveDepths[this.chainId]<this.latestBlockNumber)&&await this.saveSnapshot()}}exports.AbstractSolanaSnapshotService=o;
|
|
@@ -4,8 +4,9 @@ export interface SolanaSnapshot<SnapshotPayloadType> {
|
|
|
4
4
|
readonly latestBlockNumber: number;
|
|
5
5
|
readonly payload: SnapshotPayloadType;
|
|
6
6
|
}
|
|
7
|
-
export declare abstract class AbstractSolanaSnapshotService<EventType, SnapshotPayloadType, SerializedSnapshotType> extends AbstractSolanaEventService<EventType> {
|
|
7
|
+
export declare abstract class AbstractSolanaSnapshotService<EventType, SerializedEventType, SnapshotPayloadType, SerializedSnapshotType> extends AbstractSolanaEventService<EventType, SerializedEventType> {
|
|
8
8
|
private savedLatestSlot;
|
|
9
|
+
private chainId;
|
|
9
10
|
protected constructor(solanaBlockchainEventEmitter: SolanaBlockchainEventEmitter, eventName: string);
|
|
10
11
|
init(): Promise<void>;
|
|
11
12
|
retrieveEventsFromLatestBlock(): Promise<void>;
|
|
@@ -2,11 +2,12 @@ import { AbstractSolanaEventService as a } from "./AbstractSolanaEventService.mj
|
|
|
2
2
|
import { saveDepths as e } from "../../../constants/save-depths.mjs";
|
|
3
3
|
class n extends a {
|
|
4
4
|
savedLatestSlot = 0;
|
|
5
|
+
chainId = 0;
|
|
5
6
|
constructor(t, s) {
|
|
6
7
|
super(t, s);
|
|
7
8
|
}
|
|
8
9
|
async init() {
|
|
9
|
-
await this.loadSnapshot();
|
|
10
|
+
await this.loadSnapshot(), this.chainId = this.solanaBlockchainEventEmitter.chainId;
|
|
10
11
|
}
|
|
11
12
|
async retrieveEventsFromLatestBlock() {
|
|
12
13
|
await this.solanaBlockchainEventEmitter.retrieveEvents(this.latestBlockNumber);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const v=require("@coral-xyz/anchor"),m=require("../../../functions/utils/resolve-sync.utils.cjs"),p=require("../../../functions/utils/mutexes.utils.cjs"),l=require("../../../error-handling/logger.cjs"),g=require("../../../constants/chains.constants.cjs"),f=require("../../../functions/utils/caseInsensitive.utils.cjs"),d=1e3;class y{connection;programId;_latestSlot;_initialSlot;onEventsProcessed;eventProcessors=new Set;maxPageSize;isReady=!1;isServer;intervalId;inProgress;anchorParser;eventsFetchingMutex;constructor(e,r,a,s,n,o=p.balanceFetchingMutex){this.connection=e,this.programId=r,this._initialSlot=a,this.maxPageSize=n,this.isServer=s,this.inProgress=!1,this.eventsFetchingMutex=o}get latestBlockNumber(){return this._latestSlot??this._initialSlot}setIdl(e){try{const r=new v.BorshCoder(e);this.anchorParser=new v.EventParser(this.programId,r)}catch(r){l.Logger.error("Failed to initialize Anchor EventParser:",r),this.anchorParser=void 0}}syncFromAtMost(e){(this._latestSlot===void 0||e<this._latestSlot)&&(this._latestSlot=e)}intervalClear(){this.isReady=!1,this.eventProcessors=new Set,clearInterval(this.intervalId)}async init(){if(this.isReady)throw new Error("Already initialized");this.isReady=!0,await this.retrieveEvents(this.latestBlockNumber+1),this.intervalId=setInterval(async()=>{await this.retrieveEvents(this.latestBlockNumber)},3500)}requireReady(){if(!this.isReady)throw new Error("Not ready")}get chainId(){const e=this.connection.rpcEndpoint;return f.caseInsensitiveEqual(e,g.networkRegistry[g.chainIds.solanaMainnet].fetchRpcUrl)?g.chainIds.solanaMainnet:g.chainIds.solanaLocalnet}addEventProcessorFunction(e){if(this.isReady)throw new Error("Can't add event processor after event emitter initialized");this.eventProcessors.add(e)}async getLastSlotForEventRequest(){const e=await this.connection.getSlot();return this.isServer?Math.max(this.latestBlockNumber,e-32+1):e}async retrieveEvents(e,r=!1){const a=e;return this.requireReady(),await this.eventsFetchingMutex.runExclusive(async()=>{try{if(this.inProgress&&!r)return!1;this.inProgress=!0;let n=0;const o=await this.getLastSlotForEventRequest();if(o<a)return this.inProgress=!1,!1;const c=m.getSequence(a,o,this.maxPageSize),h=[];await m.resolveSync(c.map(({from:t,to:u})=>async()=>{const S=await this.getProgramEvents(t,u);h.push(...S)}));const i=await Promise.all([...this.eventProcessors].map(t=>t(h)));return this._latestSlot=o,n+=i.reduce((t,u)=>t+u,0),this.onEventsProcessed?.(n),this.inProgress=!1,!0}catch(n){return l.Logger.error("retrieveEvents error:",n),this.inProgress=!1,!1}})}async getProgramEvents(e,r){const a=[];try{const s=await this.connection.getSignaturesForAddress(this.programId,{limit:d,before:void 0});let n=s.length;for(;n>=d;){const i=s[s.length-1],t=await this.connection.getSignaturesForAddress(this.programId,{limit:d,before:i.signature});if(t.length===0)break;s.push(...t),n=t.length}const c=s.filter(i=>i.slot>=e&&i.slot<=r).map(async i=>{try{const t=await this.connection.getTransaction(i.signature,{commitment:"confirmed",maxSupportedTransactionVersion:0});return t&&t.meta&&t.meta.logMessages?this.parseLogsForEvents(t.meta.logMessages,i.signature,i.slot,t.blockTime||null):[]}catch(t){return l.Logger.error(`Failed to get transaction ${i.signature}:`,t),[]}}),h=await Promise.all(c);a.push(...h.flat())}catch(s){l.Logger.error("Error getting program events:",s)}return a}parseLogsForEvents(e,r,a,s){if(!this.anchorParser)return[];try{return Array.from(this.anchorParser.parseLogs(e)).map(({name:o,data:c})=>({signature:r,slot:a,blockTime:s||0,programId:this.programId,data:c,eventName:o}))}catch(n){return l.Logger.error("Anchor EventParser failed; falling back to generic parsing:",n),[]}}}exports.SolanaBlockchainEventEmitter=y;
|