@hinkal/common 0.3.5 → 0.3.7
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/README.md +1 -0
- package/common/src/API/API.cjs +1 -1
- package/common/src/API/API.d.ts +6 -5
- package/common/src/API/API.mjs +75 -74
- package/common/src/API/admin-calls.cjs +1 -1
- package/common/src/API/admin-calls.d.ts +1 -1
- package/common/src/API/admin-calls.mjs +3 -1
- package/common/src/API/callLifiAPI.d.ts +1 -0
- package/common/src/API/callNearIntentsAPI.cjs +1 -1
- package/common/src/API/callNearIntentsAPI.mjs +2 -2
- package/common/src/API/callRelayer.cjs +1 -1
- package/common/src/API/callRelayer.d.ts +32 -1
- package/common/src/API/callRelayer.mjs +7 -1
- package/common/src/API/enclaveUtxoCalls.cjs +1 -1
- package/common/src/API/enclaveUtxoCalls.d.ts +16 -16
- package/common/src/API/enclaveUtxoCalls.mjs +3 -3
- package/common/src/API/evm-rpc-fallback.cjs +1 -0
- package/common/src/API/evm-rpc-fallback.d.ts +1 -0
- package/common/src/API/evm-rpc-fallback.mjs +17 -0
- package/common/src/API/evm-token-assets.cjs +1 -0
- package/common/src/API/evm-token-assets.d.ts +8 -0
- package/common/src/API/evm-token-assets.mjs +20 -0
- package/common/src/API/index.cjs +1 -1
- package/common/src/API/index.d.ts +1 -0
- package/common/src/API/index.mjs +1 -0
- package/common/src/API/route-config.cjs +1 -0
- package/common/src/API/route-config.d.ts +1 -0
- package/common/src/API/route-config.mjs +26 -0
- package/common/src/API/solana-nft-assets.cjs +1 -0
- package/common/src/API/solana-nft-assets.d.ts +1 -0
- package/common/src/API/solana-nft-assets.mjs +11 -0
- package/common/src/API/solana-priority-fee.cjs +1 -0
- package/common/src/API/solana-priority-fee.d.ts +3 -0
- package/common/src/API/solana-priority-fee.mjs +20 -0
- package/common/src/API/solana-rpc-fallback.cjs +1 -0
- package/common/src/API/solana-rpc-fallback.d.ts +1 -0
- package/common/src/API/solana-rpc-fallback.mjs +13 -0
- package/common/src/API/temporaryWalletCalls.cjs +1 -1
- package/common/src/API/temporaryWalletCalls.d.ts +0 -4
- package/common/src/API/temporaryWalletCalls.mjs +1 -5
- package/common/src/constants/balance.constants.d.ts +2 -0
- package/common/src/constants/bridging.constants.d.ts +1 -0
- package/common/src/constants/chains.constants.cjs +1 -1
- package/common/src/constants/chains.constants.d.ts +0 -3
- package/common/src/constants/chains.constants.mjs +33 -54
- package/common/src/constants/coingecko.constants.cjs +1 -1
- package/common/src/constants/coingecko.constants.mjs +1 -1
- package/common/src/constants/contracts.constants.cjs +1 -1
- package/common/src/constants/contracts.constants.d.ts +1 -0
- package/common/src/constants/contracts.constants.mjs +19 -15
- package/common/src/constants/deploy-data/deploy-data-arbMainnet.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-arbMainnet.json.mjs +3 -2
- package/common/src/constants/deploy-data/deploy-data-arcTestnet.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-arcTestnet.json.mjs +3 -2
- package/common/src/constants/deploy-data/deploy-data-base.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-base.json.mjs +3 -2
- package/common/src/constants/deploy-data/deploy-data-bnbMainnet.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-bnbMainnet.json.mjs +3 -2
- package/common/src/constants/deploy-data/deploy-data-ethMainnet.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-ethMainnet.json.mjs +3 -2
- package/common/src/constants/deploy-data/deploy-data-optimism.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-optimism.json.mjs +7 -6
- package/common/src/constants/deploy-data/deploy-data-polygon.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-polygon.json.mjs +3 -2
- package/common/src/constants/deploy-data/deploy-data-tempo.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-tempo.json.mjs +3 -2
- package/common/src/constants/deploy-data/shared-deploy-data-evm.json.cjs +1 -1
- package/common/src/constants/deploy-data/shared-deploy-data-evm.json.mjs +18 -1
- package/common/src/constants/deploy-data/shared-deploy-data-solana.json.cjs +1 -1
- package/common/src/constants/deploy-data/shared-deploy-data-solana.json.mjs +1 -1
- package/common/src/constants/okx.constants.d.ts +1 -0
- package/common/src/constants/protocol.constants.cjs +2 -2
- package/common/src/constants/protocol.constants.d.ts +4 -1
- package/common/src/constants/protocol.constants.mjs +3 -8
- package/common/src/constants/server.constants.cjs +1 -1
- package/common/src/constants/server.constants.d.ts +7 -2
- package/common/src/constants/server.constants.mjs +8 -3
- package/common/src/constants/vite.constants.cjs +1 -1
- package/common/src/constants/vite.constants.mjs +5 -23
- package/common/src/data-structures/ApprovalDBs/EventsPublicApprovalsDB.d.ts +1 -2
- package/common/src/data-structures/Hinkal/Hinkal.cjs +1 -1
- package/common/src/data-structures/Hinkal/Hinkal.d.ts +4 -4
- package/common/src/data-structures/Hinkal/Hinkal.mjs +39 -39
- package/common/src/data-structures/Hinkal/IHinkal.d.ts +4 -4
- package/common/src/data-structures/Hinkal/hinkalActionReceive.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalActionReceive.mjs +11 -9
- package/common/src/data-structures/Hinkal/hinkalBridgePrivateToPrivate.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalBridgePrivateToPrivate.d.ts +2 -1
- package/common/src/data-structures/Hinkal/hinkalBridgePrivateToPrivate.mjs +81 -90
- package/common/src/data-structures/Hinkal/hinkalClaimUtxo.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalClaimUtxo.d.ts +1 -1
- package/common/src/data-structures/Hinkal/hinkalClaimUtxo.mjs +3 -5
- package/common/src/data-structures/Hinkal/hinkalDepositAndBridge.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalDepositAndBridge.mjs +100 -104
- package/common/src/data-structures/Hinkal/hinkalDepositAndWithdraw.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalDepositAndWithdraw.d.ts +1 -1
- package/common/src/data-structures/Hinkal/hinkalDepositAndWithdraw.mjs +86 -93
- package/common/src/data-structures/Hinkal/hinkalDepositOnChainUtxos.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalDepositOnChainUtxos.d.ts +20 -7
- package/common/src/data-structures/Hinkal/hinkalDepositOnChainUtxos.mjs +51 -39
- package/common/src/data-structures/Hinkal/hinkalPrivateWallet.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalPrivateWallet.mjs +2 -2
- package/common/src/data-structures/Hinkal/hinkalProxyToPrivate.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalProxyToPrivate.mjs +15 -13
- package/common/src/data-structures/Hinkal/hinkalSolanaClaimUtxo.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaClaimUtxo.d.ts +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaClaimUtxo.mjs +3 -5
- package/common/src/data-structures/Hinkal/hinkalSolanaDeposit.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaDeposit.mjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.d.ts +2 -2
- package/common/src/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.mjs +88 -121
- package/common/src/data-structures/Hinkal/hinkalSolanaProxySend.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaProxySend.mjs +1 -3
- package/common/src/data-structures/Hinkal/hinkalSolanaProxyShield.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaProxyShield.d.ts +24 -2
- package/common/src/data-structures/Hinkal/hinkalSolanaProxyShield.mjs +77 -58
- package/common/src/data-structures/Hinkal/hinkalSolanaProxySwap.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaProxySwap.mjs +1 -3
- package/common/src/data-structures/Hinkal/hinkalSolanaSponsoredProxySend.d.ts +5 -0
- package/common/src/data-structures/Hinkal/hinkalSolanaSponsoredShield.cjs +1 -0
- package/common/src/data-structures/Hinkal/hinkalSolanaSponsoredShield.d.ts +8 -0
- package/common/src/data-structures/Hinkal/hinkalSolanaSponsoredShield.mjs +31 -0
- package/common/src/data-structures/Hinkal/hinkalSolanaTransact.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaTransact.mjs +44 -42
- package/common/src/data-structures/Hinkal/hinkalSolanaWithdraw.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaWithdraw.d.ts +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaWithdraw.mjs +29 -24
- package/common/src/data-structures/Hinkal/hinkalSwap.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSwap.d.ts +1 -1
- package/common/src/data-structures/Hinkal/hinkalSwap.mjs +27 -24
- package/common/src/data-structures/Hinkal/hinkalTransact.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalTransact.mjs +73 -56
- package/common/src/data-structures/Hinkal/hinkalWithdraw.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalWithdraw.d.ts +1 -1
- package/common/src/data-structures/Hinkal/hinkalWithdraw.mjs +21 -18
- package/common/src/data-structures/Hinkal/hinkalWithdrawStuckUtxos.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalWithdrawStuckUtxos.mjs +19 -18
- package/common/src/data-structures/Hinkal/index.d.ts +2 -0
- package/common/src/data-structures/Hinkal/resetMerkleTrees.cjs +1 -1
- package/common/src/data-structures/Hinkal/resetMerkleTrees.mjs +2 -2
- package/common/src/data-structures/TokenDBs/AlchemyPublicTokensDB.cjs +1 -1
- package/common/src/data-structures/TokenDBs/AlchemyPublicTokensDB.d.ts +0 -1
- package/common/src/data-structures/TokenDBs/AlchemyPublicTokensDB.mjs +55 -119
- package/common/src/data-structures/crypto-keys/decodeUTXO.cjs +1 -1
- package/common/src/data-structures/crypto-keys/decodeUTXO.mjs +11 -61
- package/common/src/data-structures/event-service/evm/BlockchainEventEmitter.cjs +1 -1
- package/common/src/data-structures/event-service/evm/BlockchainEventEmitter.d.ts +2 -0
- package/common/src/data-structures/event-service/evm/BlockchainEventEmitter.mjs +41 -27
- package/common/src/data-structures/merkle-tree/MerkleTree.cjs +1 -1
- package/common/src/data-structures/merkle-tree/MerkleTree.d.ts +1 -0
- package/common/src/data-structures/merkle-tree/MerkleTree.mjs +3 -0
- package/common/src/error-handling/get-error.message.cjs +1 -1
- package/common/src/error-handling/get-error.message.mjs +1 -4
- package/common/src/functions/index.cjs +1 -1
- package/common/src/functions/index.mjs +9 -6
- package/common/src/functions/pre-transaction/calculateSolanaNullifierCount.cjs +1 -1
- package/common/src/functions/pre-transaction/calculateSolanaNullifierCount.mjs +2 -3
- package/common/src/functions/pre-transaction/index.cjs +1 -1
- package/common/src/functions/pre-transaction/index.d.ts +1 -0
- package/common/src/functions/pre-transaction/index.mjs +1 -1
- package/common/src/functions/pre-transaction/merge-with-fee-structure-emporium.cjs +1 -1
- package/common/src/functions/pre-transaction/merge-with-fee-structure-emporium.mjs +2 -2
- package/common/src/functions/pre-transaction/sendV0Transaction.cjs +2 -2
- package/common/src/functions/pre-transaction/sendV0Transaction.d.ts +5 -2
- package/common/src/functions/pre-transaction/sendV0Transaction.mjs +4 -4
- package/common/src/functions/pre-transaction/solanaTransfer.utils.cjs +1 -1
- package/common/src/functions/pre-transaction/solanaTransfer.utils.mjs +16 -15
- package/common/src/functions/pre-transaction/speculativeUtxo.cjs +1 -0
- package/common/src/functions/pre-transaction/speculativeUtxo.d.ts +9 -0
- package/common/src/functions/pre-transaction/speculativeUtxo.mjs +19 -0
- package/common/src/functions/private-wallet/emporium.helpers.cjs +1 -1
- package/common/src/functions/private-wallet/emporium.helpers.d.ts +9 -2
- package/common/src/functions/private-wallet/emporium.helpers.mjs +93 -74
- package/common/src/functions/snarkjs/common.snarkjs.cjs +1 -1
- package/common/src/functions/snarkjs/common.snarkjs.d.ts +1 -0
- package/common/src/functions/snarkjs/common.snarkjs.mjs +36 -32
- package/common/src/functions/snarkjs/constant.cjs +1 -1
- package/common/src/functions/snarkjs/constant.d.ts +48 -0
- package/common/src/functions/snarkjs/constant.mjs +48 -0
- package/common/src/functions/snarkjs/constructGeneralZkProof.cjs +1 -1
- package/common/src/functions/snarkjs/constructGeneralZkProof.d.ts +1 -1
- package/common/src/functions/snarkjs/constructGeneralZkProof.mjs +75 -71
- package/common/src/functions/snarkjs/constructSolanaZkProof.cjs +1 -1
- package/common/src/functions/snarkjs/constructSolanaZkProof.d.ts +1 -1
- package/common/src/functions/snarkjs/constructSolanaZkProof.mjs +27 -27
- package/common/src/functions/snarkjs/constructTxEnclave.cjs +1 -1
- package/common/src/functions/snarkjs/constructTxEnclave.mjs +8 -3
- package/common/src/functions/snarkjs/fetchOnChainRootHashes.cjs +1 -1
- package/common/src/functions/snarkjs/fetchOnChainRootHashes.mjs +10 -21
- package/common/src/functions/snarkjs/getMerkleTreeSiblingsAndRootHashes.cjs +1 -1
- package/common/src/functions/snarkjs/getMerkleTreeSiblingsAndRootHashes.d.ts +2 -2
- package/common/src/functions/snarkjs/getMerkleTreeSiblingsAndRootHashes.mjs +3 -3
- package/common/src/functions/snarkjs/signedMessageHash.cjs +1 -1
- package/common/src/functions/snarkjs/signedMessageHash.d.ts +4 -0
- package/common/src/functions/snarkjs/signedMessageHash.mjs +27 -18
- package/common/src/functions/utils/addresses.cjs +1 -1
- package/common/src/functions/utils/addresses.mjs +19 -12
- package/common/src/functions/utils/bridge-arrival.utils.cjs +1 -0
- package/common/src/functions/utils/bridge-arrival.utils.d.ts +1 -0
- package/common/src/functions/utils/bridge-arrival.utils.mjs +15 -0
- package/common/src/functions/utils/bridge-claimable-utxo.utils.cjs +1 -0
- package/common/src/functions/utils/bridge-claimable-utxo.utils.d.ts +19 -0
- package/common/src/functions/utils/bridge-claimable-utxo.utils.mjs +24 -0
- package/common/src/functions/utils/bridge-claimable.utils.d.ts +2 -3
- package/common/src/functions/utils/create-provider.cjs +1 -1
- package/common/src/functions/utils/create-provider.d.ts +9 -2
- package/common/src/functions/utils/create-provider.mjs +42 -9
- package/common/src/functions/utils/deposit-claimable.utils.cjs +1 -1
- package/common/src/functions/utils/deposit-claimable.utils.d.ts +2 -5
- package/common/src/functions/utils/deposit-claimable.utils.mjs +1 -6
- package/common/src/functions/utils/enclave-utxo-storage.cjs +1 -1
- package/common/src/functions/utils/enclave-utxo-storage.d.ts +4 -8
- package/common/src/functions/utils/enclave-utxo-storage.mjs +13 -2
- package/common/src/functions/utils/fees.utils.cjs +1 -1
- package/common/src/functions/utils/fees.utils.d.ts +2 -0
- package/common/src/functions/utils/fees.utils.mjs +15 -6
- package/common/src/functions/utils/getUtxosFromReceipt.utils.cjs +1 -1
- package/common/src/functions/utils/getUtxosFromReceipt.utils.d.ts +1 -1
- package/common/src/functions/utils/getUtxosFromReceipt.utils.mjs +5 -51
- package/common/src/functions/utils/getUtxosFromReceiptSolana.cjs +1 -1
- package/common/src/functions/utils/getUtxosFromReceiptSolana.mjs +7 -23
- package/common/src/functions/utils/index.cjs +1 -1
- package/common/src/functions/utils/index.d.ts +6 -0
- package/common/src/functions/utils/index.mjs +10 -4
- package/common/src/functions/utils/nearIntents.utils.cjs +1 -1
- package/common/src/functions/utils/nearIntents.utils.mjs +27 -13
- package/common/src/functions/utils/publicBalance.utils.cjs +1 -1
- package/common/src/functions/utils/publicBalance.utils.d.ts +0 -1
- package/common/src/functions/utils/publicBalance.utils.mjs +35 -22
- package/common/src/functions/utils/recovery-balance.utils.cjs +1 -0
- package/common/src/functions/utils/recovery-balance.utils.d.ts +2 -0
- package/common/src/functions/utils/recovery-balance.utils.mjs +1 -0
- package/common/src/functions/utils/solana-program.utils.cjs +1 -0
- package/common/src/functions/utils/solana-program.utils.d.ts +3 -0
- package/common/src/functions/utils/solana-program.utils.mjs +17 -0
- package/common/src/functions/utils/solana-sponsored.utils.cjs +1 -0
- package/common/src/functions/utils/solana-sponsored.utils.d.ts +22 -0
- package/common/src/functions/utils/solana-sponsored.utils.mjs +30 -0
- package/common/src/functions/utils/solanaMint.utils.cjs +1 -1
- package/common/src/functions/utils/solanaMint.utils.d.ts +7 -0
- package/common/src/functions/utils/solanaMint.utils.mjs +18 -8
- package/common/src/functions/utils/sponsored-shield.utils.cjs +1 -0
- package/common/src/functions/utils/sponsored-shield.utils.d.ts +3 -0
- package/common/src/functions/utils/sponsored-shield.utils.mjs +3 -0
- package/common/src/functions/utils/temp-wallet.utils.cjs +1 -1
- package/common/src/functions/utils/temp-wallet.utils.d.ts +5 -4
- package/common/src/functions/utils/temp-wallet.utils.mjs +35 -14
- package/common/src/functions/utils/transfer-claimable.utils.cjs +1 -1
- package/common/src/functions/utils/transfer-claimable.utils.d.ts +1 -2
- package/common/src/functions/utils/transfer-claimable.utils.mjs +2 -5
- package/common/src/functions/utils/tron.utils.cjs +1 -1
- package/common/src/functions/utils/tron.utils.d.ts +2 -2
- package/common/src/functions/utils/tron.utils.mjs +19 -18
- package/common/src/functions/utils/tronSimulation.utils.cjs +1 -1
- package/common/src/functions/utils/tronSimulation.utils.mjs +4 -6
- package/common/src/functions/utils/tx-confirmation.utils.cjs +1 -1
- package/common/src/functions/utils/tx-confirmation.utils.mjs +1 -1
- package/common/src/functions/web3/events/getInputUtxosEnclave.cjs +1 -1
- package/common/src/functions/web3/events/getInputUtxosEnclave.mjs +15 -25
- package/common/src/functions/web3/functionCalls/submitProof.cjs +1 -1
- package/common/src/functions/web3/functionCalls/submitProof.mjs +6 -6
- package/common/src/functions/web3/functionCalls/transactCallRelayer.cjs +1 -1
- package/common/src/functions/web3/functionCalls/transactCallRelayer.d.ts +2 -2
- package/common/src/functions/web3/functionCalls/transactCallRelayer.mjs +8 -6
- package/common/src/functions/web3/getContractMetadata.cjs +1 -1
- package/common/src/functions/web3/getContractMetadata.mjs +1 -1
- package/common/src/functions/web3/getPublicAddressBalance.cjs +1 -1
- package/common/src/functions/web3/getPublicAddressBalance.d.ts +1 -2
- package/common/src/functions/web3/getPublicAddressBalance.mjs +6 -5
- package/common/src/functions/web3/index.cjs +1 -1
- package/common/src/functions/web3/index.d.ts +1 -1
- package/common/src/functions/web3/index.mjs +1 -1
- package/common/src/providers/SolanaProviderAdapter.cjs +1 -1
- package/common/src/providers/SolanaProviderAdapter.mjs +1 -2
- package/common/src/providers/WagmiProviderAdapter.cjs +1 -1
- package/common/src/providers/WagmiProviderAdapter.mjs +35 -38
- package/common/src/types/bridging-tx.types.d.ts +1 -4
- package/common/src/types/cache.types.cjs +1 -1
- package/common/src/types/cache.types.d.ts +0 -1
- package/common/src/types/cache.types.mjs +1 -1
- package/common/src/types/ethereum-network.types.cjs +1 -1
- package/common/src/types/ethereum-network.types.d.ts +9 -7
- package/common/src/types/ethereum-network.types.mjs +1 -1
- package/common/src/types/external-action.types.cjs +1 -1
- package/common/src/types/external-action.types.d.ts +1 -0
- package/common/src/types/external-action.types.mjs +1 -1
- package/common/src/types/index.cjs +1 -1
- package/common/src/types/index.d.ts +1 -1
- package/common/src/types/index.mjs +1 -1
- package/common/src/types/pay-activities.types.d.ts +3 -1
- package/common/src/types/remote-tx-build.types.d.ts +23 -0
- package/common/src/types/scheduled-transactions.types.d.ts +4 -12
- package/common/src/types/solana.types.cjs +1 -0
- package/common/src/types/solana.types.d.ts +5 -0
- package/common/src/types/solana.types.mjs +6 -0
- package/common/src/types/temp-wallet.types.d.ts +9 -0
- package/common/src/types/token.types.d.ts +1 -0
- package/common/src/webworker/logError-RKYfeI6h.js +2 -0
- package/common/src/webworker/package.json +21 -19
- package/common/src/webworker/snarkjsWorker/snarkjsWorkerLauncher.ts?worker&url.cjs +1 -1
- package/common/src/webworker/snarkjsWorker/snarkjsWorkerLauncher.ts?worker&url.mjs +1 -1
- package/common/src/webworker/snarkjsWorkerNode.cjs +1 -1
- package/common/src/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url.cjs +1 -1
- package/common/src/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url.mjs +1 -1
- package/common/src/webworker/utxoWorkerNode.cjs +1 -1
- package/common/src/webworker/viteWorkerURL.constant.cjs +28 -1
- package/common/src/webworker/viteWorkerURL.constant.mjs +27 -13
- package/common/src/webworker/workerProxy-COB7g4Qc.js +1 -0
- package/common/src/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.cjs +1 -1
- package/common/src/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.mjs +1 -1
- package/common/src/webworker/zkProofWorkerNode.cjs +1 -1
- package/package.json +25 -23
- package/services/Hinkal.cjs +1 -1
- package/services/Hinkal.d.ts +2 -2
- package/services/Hinkal.mjs +3 -3
- package/types/IHinkal.d.ts +2 -2
- package/assets/snarkjsWorkerLauncher-SrStwJvX.js +0 -1
- package/assets/snarkjsWorkerLogic-DtIjisbE.js +0 -132
- package/assets/utxoWorkerLauncher-CIBeBAML.js +0 -1
- package/assets/utxoWorkerLogic-C8R4GSaf.js +0 -199
- package/assets/zkProofWorkerLauncher-DfwteloJ.js +0 -1
- package/assets/zkProofWorkerLogic-CY9y6rOV.js +0 -199
- package/common/src/API/deposit-and-withdraw-status-calls.cjs +0 -1
- package/common/src/API/deposit-and-withdraw-status-calls.d.ts +0 -21
- package/common/src/API/deposit-and-withdraw-status-calls.mjs +0 -13
- package/common/src/data-structures/Hinkal/hinkalTronDepositToSelf.cjs +0 -1
- package/common/src/data-structures/Hinkal/hinkalTronDepositToSelf.d.ts +0 -8
- package/common/src/data-structures/Hinkal/hinkalTronDepositToSelf.mjs +0 -30
- package/common/src/data-structures/Hinkal/prepareTronDepositToSelf.cjs +0 -1
- package/common/src/data-structures/Hinkal/prepareTronDepositToSelf.mjs +0 -31
- package/common/src/functions/pre-transaction/waitForDepositedUtxosInMerkleTree.cjs +0 -1
- package/common/src/functions/pre-transaction/waitForDepositedUtxosInMerkleTree.mjs +0 -29
- package/common/src/functions/utils/enum.utils.cjs +0 -1
- package/common/src/functions/utils/enum.utils.mjs +0 -12
- package/common/src/functions/web3/getSolanaPriorityFee.cjs +0 -1
- package/common/src/functions/web3/getSolanaPriorityFee.d.ts +0 -3
- package/common/src/functions/web3/getSolanaPriorityFee.mjs +0 -26
- package/common/src/types/scheduled-transactions.types.cjs +0 -1
- package/common/src/types/scheduled-transactions.types.mjs +0 -6
- package/common/src/webworker/logError-Dex6ch32.js +0 -2
- package/common/src/webworker/workerProxy-BuJUMCQ4.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../constants/chains.constants.cjs`);require(`../../constants/protocol.constants.cjs`);const t=require(`../../functions/utils/amounts.utils.cjs`),n=require(`../../error-handling/error-codes.constants.cjs`),r=require(`../../functions/utils/encodeTokenWithId.cjs`),i=require(`../../functions/utils/addresses.cjs`),a=require(`../../functions/utils/tron.utils.cjs`),o=require(`../../functions/web3/events/getInputUtxoAndBalance.cjs`),s=require(`../../types/external-action.types.cjs`),c=require(`../../types/transact.types.cjs`),l=require(`../../types/solana-transact.types.cjs`),u=require(`../../error-handling/logger.cjs`),d=require(`../../functions/utils/token-check.utils.cjs`),f=require(`../../functions/snarkjs/constructTxEnclave.cjs`),p=require(`../../functions/pre-transaction/getFeeStructure.cjs`),m=require(`./hinkalTransact.cjs`),h=require(`../../functions/auto-deposit-back-helpers/update-hinkal.cjs`),g=require(`../../functions/pre-transaction/merge-with-fee-structure.cjs`),_=require(`./hinkalSolanaTransact.cjs`);var v=6,y=async(
|
|
1
|
+
const e=require(`../../constants/chains.constants.cjs`);require(`../../constants/protocol.constants.cjs`);const t=require(`../../functions/utils/amounts.utils.cjs`),n=require(`../../error-handling/error-codes.constants.cjs`),r=require(`../../functions/utils/encodeTokenWithId.cjs`),i=require(`../../functions/utils/addresses.cjs`),a=require(`../../functions/utils/tron.utils.cjs`),o=require(`../../functions/web3/events/getInputUtxoAndBalance.cjs`),s=require(`../../types/external-action.types.cjs`),c=require(`../../types/transact.types.cjs`),l=require(`../../types/solana-transact.types.cjs`),u=require(`../../error-handling/logger.cjs`),d=require(`../../functions/utils/token-check.utils.cjs`),f=require(`../../functions/snarkjs/constructTxEnclave.cjs`),p=require(`../../functions/pre-transaction/getFeeStructure.cjs`),m=require(`./hinkalTransact.cjs`),h=require(`../../functions/auto-deposit-back-helpers/update-hinkal.cjs`),g=require(`../../functions/pre-transaction/merge-with-fee-structure.cjs`),_=require(`./hinkalSolanaTransact.cjs`);var v=6,y=async(t,r,o,c)=>{let l=o.erc20TokenAddress,d=await t.getEthereumAddressByChain(r),[m,h]=await Promise.all([p.getFeeStructure(r,l,[l],s.ExternalActionId.Transact),t.getRandomRelay(r,!0)]);if(!h)throw Error(n.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let g=await f.prepareStuckWithdrawEnclaveCall(t,{chainId:r,hinkalAddress:e.networkRegistry[r].contractData.hinkalAddress,erc20Address:l,externalAddress:a.addressToHexFormat(c),relay:h,feeStructure:m,hashedEthereumAddress:i.hashEthereumAddress(d)}),_=[];for(let e=0;e<g.length;e+=1)try{let{jobId:n,signedMessageHash:i}=g[e],{R8:a,S:o}=t.userKeys.signEddsa(BigInt(i));_.push(await f.finalizeTxEnclaveCallRelay(n,{R8:a,S:o},r))}catch(e){if(!_.length)throw e;return u.Logger.error(`Stuck withdrawal partially submitted (${_.length}/${g.length})`,e),_}return _},b=async(e,t,n)=>{let r=await Promise.all(Array.from({length:v},async(r,i)=>{let a=i+1,o=await p.getFeeStructure(e,t,[t],s.ExternalActionId.Transact,void 0,void 0,{mintTo:t,recipient:n,nullifierCount:a});return[String(a),o]}));return Object.fromEntries(r)},x=async(e,t,r,a)=>{let o=r.erc20TokenAddress,[s,c,l]=await Promise.all([e.getEthereumAddressByChain(t),e.getRandomRelay(t,!0),b(t,o,a)]);if(!c)throw Error(n.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let u=await f.prepareSolanaStuckWithdrawEnclaveCall(e,{chainId:t,mintAddress:o,recipient:a,relayAddress:c,accounts:{recipient:a,mint:o===`11111111111111111111111111111111`?void 0:o},feeStructures:l,hashedEthereumAddress:i.hashEthereumAddress(s)}),d=[];for(let n=0;n<u.length;n+=1){let{jobId:r,signedMessageHash:i}=u[n],{R8:a,S:o}=e.userKeys.signEddsa(BigInt(i));d.push(await f.finalizeSolanaTxEnclaveCallRelay(r,{R8:a,S:o},t))}return d},S=async(e,t,r,i,o)=>{let l=[r.erc20TokenAddress],u=r.erc20TokenAddress,[d,f]=await Promise.all([p.getFeeStructure(t,u,l,s.ExternalActionId.Transact),e.getRandomRelay(t,!0)]);if(!f)throw Error(n.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let _=a.addressToHexFormat(o),v=i-d.flatFee;if(v<=0n)throw Error(`Insufficient balance to cover fee. Balance: ${i}, Fee: ${d.flatFee}`);let y=[-v];return await g.mergeWithFeeStructure(t,l,y,d),{tx:await m.hinkalTransact(e,{chainId:t,erc20Addresses:l,amountChanges:y,externalAddress:_,feeStructure:d,relay:f,useBlockedUtxos:!0,onTxSubmitLocally:n=>{h.updateHinkal(t,e,n.inputNullifiers?.flat(),n.outCommitments?.flat(),n.encryptedOutputs?.flat())},submit:{mode:c.SubmitMode.Relayer}}),amountToRecipient:v}},C=async(t,r,i,a,o,c)=>{let u=[i.erc20TokenAddress],{originalDeployer:d}=e.networkRegistry[r].contractData;if(!d)throw Error(`missing data`);let f=i.erc20TokenAddress,[m,g]=await Promise.all([p.getFeeStructure(r,f,u,s.ExternalActionId.Transact,void 0,void 0,{mintTo:u[0],recipient:o,nullifierCount:c}),t.getRandomRelay(r,!0)]);if(!g)throw Error(n.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let v=a-m.flatFee;if(v<=0n)throw Error(`Insufficient balance to cover fee. Balance: ${a}, Fee: ${m.flatFee}`);let y=[-v];return y[0]-=m.flatFee,{tx:await _.hinkalSolanaTransact(t,{chainId:r,mintAddresses:u,amountChanges:y,relayAddress:g,recipient:o,signer:g,functionName:`transact`,accounts:{recipient:o,mint:u[0]===`11111111111111111111111111111111`?void 0:u[0]},relayerFee:m.flatFee,variableRate:m.variableRate,useBlockedUtxos:!0,onTxSubmitLocally:({inputNullifiers:e,outCommitments:n,encryptedOutputs:i})=>{h.updateHinkal(r,t,e,n,i)},submit:{mode:l.SolanaSubmitMode.Relayer}}),amountToRecipient:v}},w=async(t,n,r,i,a,o)=>e.isSolanaLike(n)?C(t,n,r,i,a,o):S(t,n,r,i,a),T=async(i,a,s)=>{let c=d.validateAndGetChainId([a]);if(i.generateProofRemotely){let t=e.isSolanaLike(c)?await x(i,c,a,s):await y(i,c,a,s);if(!t.length)throw Error(n.transactionErrorCodes.NO_STUCK_BALANCE_TO_WITHDRAW);return t}let l=[],f=r.normalizeTokenAddress(c,a.erc20TokenAddress);await i.resetMerkleTreesIfNecessary([c]);let p=((await o.getInputUtxoAndBalancePerToken({hinkal:i,sliceIfMore6:!1,useBlockedUtxos:!0,chainId:c}))?.get(f)??[]).filter(e=>e.amount>0n).sort((e,t)=>Number(t.amount-e.amount));if(!p.length)throw Error(n.transactionErrorCodes.NO_STUCK_BALANCE_TO_WITHDRAW);for(let e=0;e<p.length;e+=v){let n=p.slice(e,e+v),r=t.countTotalAmountInUtxos(n);try{let{tx:e}=await w(i,c,a,r,s,n.length);l.push(e)}catch(e){if(!l.length)throw e;return u.Logger.error(`Stuck withdrawal partially submitted (${l.length}/${Math.ceil(p.length/v)})`,e),l}}return l};exports.hinkalWithdrawStuckUtxos=T;
|
|
@@ -18,28 +18,29 @@ import { updateHinkal as y } from "../../functions/auto-deposit-back-helpers/upd
|
|
|
18
18
|
import { mergeWithFeeStructure as b } from "../../functions/pre-transaction/merge-with-fee-structure.mjs";
|
|
19
19
|
import { hinkalSolanaTransact as x } from "./hinkalSolanaTransact.mjs";
|
|
20
20
|
//#region libs/shared/common/src/data-structures/Hinkal/hinkalWithdrawStuckUtxos.ts
|
|
21
|
-
var S = 6, C = async (e,
|
|
22
|
-
let
|
|
23
|
-
if (!
|
|
24
|
-
let
|
|
25
|
-
chainId:
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
21
|
+
var S = 6, C = async (e, n, i, s) => {
|
|
22
|
+
let l = i.erc20TokenAddress, u = await e.getEthereumAddressByChain(n), [f, p] = await Promise.all([_(n, l, [l], c.Transact), e.getRandomRelay(n, !0)]);
|
|
23
|
+
if (!p) throw Error(r.RELAYER_NOT_AVAILABLE);
|
|
24
|
+
let h = await g(e, {
|
|
25
|
+
chainId: n,
|
|
26
|
+
hinkalAddress: t[n].contractData.hinkalAddress,
|
|
27
|
+
erc20Address: l,
|
|
28
|
+
externalAddress: o(s),
|
|
29
|
+
relay: p,
|
|
30
|
+
feeStructure: f,
|
|
31
|
+
hashedEthereumAddress: a(u)
|
|
32
|
+
}), v = [];
|
|
33
|
+
for (let t = 0; t < h.length; t += 1) try {
|
|
34
|
+
let { jobId: r, signedMessageHash: i } = h[t], { R8: a, S: o } = e.userKeys.signEddsa(BigInt(i));
|
|
35
|
+
v.push(await m(r, {
|
|
35
36
|
R8: a,
|
|
36
37
|
S: o
|
|
37
|
-
},
|
|
38
|
+
}, n));
|
|
38
39
|
} catch (e) {
|
|
39
|
-
if (!
|
|
40
|
-
return d.error(`Stuck withdrawal partially submitted (${
|
|
40
|
+
if (!v.length) throw e;
|
|
41
|
+
return d.error(`Stuck withdrawal partially submitted (${v.length}/${h.length})`, e), v;
|
|
41
42
|
}
|
|
42
|
-
return
|
|
43
|
+
return v;
|
|
43
44
|
}, w = async (e, t, n) => {
|
|
44
45
|
let r = await Promise.all(Array.from({ length: S }, async (r, i) => {
|
|
45
46
|
let a = i + 1, o = await _(e, t, [t], c.Transact, void 0, void 0, {
|
|
@@ -22,3 +22,5 @@ export * from './hinkalPalTronDepositPrepare';
|
|
|
22
22
|
export * from './hinkalSolanaDepositAndWithdraw';
|
|
23
23
|
export * from './hinkalNearDepositAndBridge';
|
|
24
24
|
export * from './hinkalBridgePrivateToPrivate';
|
|
25
|
+
export * from './hinkalSolanaSponsoredShield';
|
|
26
|
+
export * from './hinkalSolanaSponsoredProxySend';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../types/ethereum-network.types.cjs`),n=require(`../../types/balances.types.cjs`),r=require(`../../types/events.types.cjs`);require(`../../types/index.cjs`);const i=require(`../../functions/utils/map.utils.cjs`),a=require(`../../functions/utils/mutexes.utils.cjs`),o=require(`../../functions/utils/create-provider.cjs`),s=require(`../../functions/utils/getContractAddress.cjs`),c=require(`../private-balances/BalanceChangedHandler.cjs`),l=require(`../event-service/evm/ClientBlockchainEventEmitter.cjs`),u=require(`../event-service/solana/ClientSolanaBlockchainEventEmitter.cjs`);require(`../event-service/index.cjs`);const d=require(`../snapshot/SnapshotFetcherService.cjs`),f=require(`../snapshot/solana-snapshots/ClientSolanaCommitmentsSnapshotService.cjs`),p=require(`../snapshot/solana-snapshots/ClientSolanaNullifierSnapshotService.cjs`),m=require(`../snapshot/evm-snapshots/ClientCommitmentsSnapshotService.cjs`),h=require(`../snapshot/evm-snapshots/ClientNullifierSnapshotService.cjs`);require(`../snapshot/index.cjs`);let g=require(`@solana/web3.js`),_=require(`async-mutex`);var v=new Map,y=e=>i.getOrCreateMapValue(v,e,()=>new _.Mutex),b=async(i,_)=>{let v=(_??i.getSupportedChains()).map(_=>y(_).runExclusive(async()=>{if(i.generateProofRemotely)return;i.commitmentsSnapshotServiceByChain[_]?.intervalClear(),i.nullifierSnapshotServiceByChain[_]?.intervalClear();let{maxPageSize:v,
|
|
1
|
+
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../types/ethereum-network.types.cjs`),n=require(`../../types/balances.types.cjs`),r=require(`../../types/events.types.cjs`);require(`../../types/index.cjs`);const i=require(`../../functions/utils/map.utils.cjs`),a=require(`../../functions/utils/mutexes.utils.cjs`),o=require(`../../functions/utils/create-provider.cjs`),s=require(`../../functions/utils/getContractAddress.cjs`),c=require(`../private-balances/BalanceChangedHandler.cjs`),l=require(`../event-service/evm/ClientBlockchainEventEmitter.cjs`),u=require(`../event-service/solana/ClientSolanaBlockchainEventEmitter.cjs`);require(`../event-service/index.cjs`);const d=require(`../snapshot/SnapshotFetcherService.cjs`),f=require(`../snapshot/solana-snapshots/ClientSolanaCommitmentsSnapshotService.cjs`),p=require(`../snapshot/solana-snapshots/ClientSolanaNullifierSnapshotService.cjs`),m=require(`../snapshot/evm-snapshots/ClientCommitmentsSnapshotService.cjs`),h=require(`../snapshot/evm-snapshots/ClientNullifierSnapshotService.cjs`);require(`../snapshot/index.cjs`);let g=require(`@solana/web3.js`),_=require(`async-mutex`);var v=new Map,y=e=>i.getOrCreateMapValue(v,e,()=>new _.Mutex),b=async(i,_)=>{let v=(_??i.getSupportedChains()).map(_=>y(_).runExclusive(async()=>{if(i.generateProofRemotely)return;i.commitmentsSnapshotServiceByChain[_]?.intervalClear(),i.nullifierSnapshotServiceByChain[_]?.intervalClear();let{maxPageSize:v,rpcUrl:y,contractData:b}=e.networkRegistry[_],x;if(e.isSolanaLike(_)){let e=b.hinkalAddress;if(!e)throw Error(`Solana program ID is not set`);x=new u.ClientSolanaBlockchainEventEmitter(_,o.createCustomSolanaConnection(y),new g.PublicKey(e),0,a.getChainBalanceFetchingMutex(_),v);let t=b.hinkalIdl;t&&x.setIdl(t);let n=new d.SnapshotFetcherService(_,e);i.commitmentsSnapshotServiceByChain[_]=new f.ClientSolanaCommitmentsSnapshotService(x,n),i.nullifierSnapshotServiceByChain[_]=new p.ClientSolanaNullifierSnapshotService(x,n)}else{let e=i.getContractWithFetcherByChainId(_,t.ContractType.HinkalContract),n=a.getChainBalanceFetchingMutex(_);x=new l.ClientBlockchainEventEmitter(r.EventCategory.MainContractEvents,_,e,0,n,v);let o=new d.SnapshotFetcherService(_,s.getContractAddress(e));i.commitmentsSnapshotServiceByChain[_]=new m.ClientCommitmentsSnapshotService(x,o),i.nullifierSnapshotServiceByChain[_]=new h.ClientNullifierSnapshotService(x,o)}let S=i.commitmentsSnapshotServiceByChain[_],C=i.nullifierSnapshotServiceByChain[_];if(!S||!C)throw Error(`Missing snapshot service for chain ${_}`);await Promise.all([S.init(),C.init()]),await x.init(),i.merkleTreeHinkalByChain[_]=S.merkleTree,i.nullifiersByChain[_]=C.nullifiers,i.encryptedOutputsByChain[_]=S.encryptedOutputs,x.onEventsProcessed=e=>{e>0&&c.balanceChangedHandler.dispatch({updateType:n.PrivateBalanceUpdateType.FreshWithoutLoader,updateTokensListBefore:!0,chainIdToUpdate:_})}}));await Promise.allSettled(v)};exports.resetMerkleTrees=b;
|
|
@@ -24,10 +24,10 @@ var y = /* @__PURE__ */ new Map(), b = (e) => a(y, e, () => new v()), x = async
|
|
|
24
24
|
let y = (v ?? a.getSupportedChains()).map((v) => b(v).runExclusive(async () => {
|
|
25
25
|
if (a.generateProofRemotely) return;
|
|
26
26
|
a.commitmentsSnapshotServiceByChain[v]?.intervalClear(), a.nullifierSnapshotServiceByChain[v]?.intervalClear();
|
|
27
|
-
let { maxPageSize: y,
|
|
27
|
+
let { maxPageSize: y, rpcUrl: b, contractData: x } = t[v], S;
|
|
28
28
|
if (e(v)) {
|
|
29
29
|
let e = x.hinkalAddress;
|
|
30
|
-
if (!
|
|
30
|
+
if (!e) throw Error("Solana program ID is not set");
|
|
31
31
|
S = new d(v, s(b), new _(e), 0, o(v), y);
|
|
32
32
|
let t = x.hinkalIdl;
|
|
33
33
|
t && S.setIdl(t);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../functions/utils/caseInsensitive.utils.cjs`),r=require(
|
|
1
|
+
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../functions/utils/caseInsensitive.utils.cjs`),r=require(`../../types/cache.types.cjs`),i=require(`../../API/API.cjs`),a=require(`../../error-handling/logger.cjs`),o=require(`../../functions/utils/string.utils.cjs`),s=require(`./token-visibility-db.cjs`),c=require(`../../functions/utils/erc20tokenFunctions.cjs`),l=require(`../../functions/utils/create-provider.cjs`),u=require(`../../functions/utils/publicBalance.utils.cjs`),d=require(`../../API/solana-nft-assets.cjs`),f=require(`../../API/evm-token-assets.cjs`);let p=require(`@solana/web3.js`),m=require(`idb-keyval`),h=require(`@solana/spl-token`);var g=new class{fetchedTokens={};KNOWN_GOOD_NFTS={[e.chainIds.base]:[`0x20bc8d248fe9c18a947406cea50d716828ab821f`],[e.chainIds.optimism]:[`0x3c3e0e73b53a19bcaf4178b8f9c9428fd2a2775e`]};isWhitelistedNFT(e,t){return this.KNOWN_GOOD_NFTS[t]?this.KNOWN_GOOD_NFTS[t].some(t=>n.caseInsensitiveEqual(e,t)):!1}async getPublicTokens(e,t){let n=o.getStateKey(t,e);return c.overlayTokensWithRegistryData((await(0,m.get)(r.StorageKeys.ALCHEMY_PUBLIC_TOKENS))?.[n]||[],e)}async getFetchedTokens(e,t){let n=o.getStateKey(t,e);return c.overlayTokensWithRegistryData(this.fetchedTokens[n]||[],e)}fetchAndUpdatePublicTokens(t,n){return e.isSolanaLike(n)?this.fetchAndUpdateSolanaTokens(t,n):this.fetchAndUpdateEVMTokens(t,n)}async fetchAndUpdateSolanaTokens(e,t){let a=o.getStateKey(e,t),[c,l]=await Promise.all([this.getSolanaTokenAddresses(t,e),this.getNFTAddresses(e)]),u=Array.from(new Set([...c,...l]));if(!u.length)return;let d=(await i.API.tokensInfoCall(t,u)).filter(e=>!!e),f=await s.tokenVisibilityStorage.hideSpamsAndFetchHiddenTokensAddresses(t,d),p=d.filter(e=>!n.lowerCaseIncludes(f,e.erc20TokenAddress));await(0,m.update)(r.StorageKeys.ALCHEMY_PUBLIC_TOKENS,(e={})=>{let t={...e,[a]:p};return this.fetchedTokens=t,t})}async getWalletTokenAddresses(t,n){return e.isSolanaLike(t)?this.getSolanaTokenAddresses(t,n):this.getEVMTokenAddresses(t,n)}async fetchAndUpdateEVMTokens(e,a){let c=o.getStateKey(e,a),l=await this.getEVMTokenAddresses(a,e),u=await this.getNFTTokens(a,e),d=u.map(e=>e.contractAddress),f=[...l,...d];if(!f.length)return;let p=(await i.API.tokensInfoCall(a,f)).map((e,r)=>{if(e)return e;let i=f[r],o=u.find(e=>n.caseInsensitiveEqual(e.contractAddress,i));return o&&o.tokenIds&&o.tokenIds.length>0&&this.isWhitelistedNFT(i,a)?{chainId:a,name:`Unknown NFT`,symbol:`NFT`,erc20TokenAddress:i,decimals:0,nftTokenType:t.TokenType.ERC721,tokenIds:o.tokenIds}:null}).filter(e=>!!e),h=await s.tokenVisibilityStorage.hideSpamsAndFetchHiddenTokensAddresses(a,p),g=p.filter(e=>!n.lowerCaseIncludes(h,e.erc20TokenAddress)).map(e=>({...e,tokenIds:u.find(t=>n.caseInsensitiveEqual(t.contractAddress,e.erc20TokenAddress))?.tokenIds}));await(0,m.update)(r.StorageKeys.ALCHEMY_PUBLIC_TOKENS,(e={})=>{let t={...e,[c]:g};return this.fetchedTokens=t,t})}async getSolanaTokenAddresses(n,r){let{rpcUrl:i}=e.networkRegistry[n],a=l.createCustomSolanaConnection(i),o=await a.getBalance(new p.PublicKey(r)),[s,c]=await Promise.all([a.getParsedTokenAccountsByOwner(new p.PublicKey(r),{programId:h.TOKEN_PROGRAM_ID}),a.getParsedTokenAccountsByOwner(new p.PublicKey(r),{programId:h.TOKEN_2022_PROGRAM_ID})]),u=[...s.value,...c.value].filter(e=>{let{amount:t}=e.account.data.parsed.info.tokenAmount;return BigInt(t)>0n}).map(e=>e.account.data.parsed.info.mint);return o>0&&u.unshift(t.solanaNativeAddress),Array.from(new Set(u))}async getNFTAddresses(e){try{return await d.getSolanaNftAssetsFromServer(e)}catch(e){return a.Logger.error(`Failed to fetch NFTs from DAS API`,e),[]}}async getEVMTokenAddresses(e,n){let[r,i]=await Promise.all([u.getPublicBalanceByTokenAddress(e,n,t.zeroAddress),f.getEvmTokenBalancesFromServer(e,n)]);r&&r>0n&&i.push({contractAddress:t.zeroAddress,tokenBalance:r.toString()});let a={};return i.forEach(e=>{(!a[e.contractAddress]||BigInt(e.tokenBalance)>0n)&&(a[e.contractAddress]=e)}),Object.keys(a)}async getNFTTokens(e,t){return f.getEvmNftAssetsFromServer(e,t)}};exports.alchemyPublicTokensDB=g;
|
|
@@ -2,7 +2,6 @@ import { ERC20Token } from '../../types/token.types';
|
|
|
2
2
|
import { IPublicTokensDB } from './IPublicTokensDB';
|
|
3
3
|
export declare class AlchemyPublicTokensDB implements IPublicTokensDB {
|
|
4
4
|
private fetchedTokens;
|
|
5
|
-
private readonly ALCHEMY_URLS;
|
|
6
5
|
private readonly KNOWN_GOOD_NFTS;
|
|
7
6
|
private isWhitelistedNFT;
|
|
8
7
|
getPublicTokens(chainId: number, walletAddress: string): Promise<ERC20Token[]>;
|
|
@@ -1,85 +1,74 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { caseInsensitiveEqual as
|
|
4
|
-
import {
|
|
5
|
-
import "
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
1
|
+
import { chainIds as e, isSolanaLike as t, networkRegistry as n } from "../../constants/chains.constants.mjs";
|
|
2
|
+
import { TokenType as r, solanaNativeAddress as i, zeroAddress as a } from "../../constants/protocol.constants.mjs";
|
|
3
|
+
import { caseInsensitiveEqual as o, lowerCaseIncludes as s } from "../../functions/utils/caseInsensitive.utils.mjs";
|
|
4
|
+
import { StorageKeys as c } from "../../types/cache.types.mjs";
|
|
5
|
+
import { API as l } from "../../API/API.mjs";
|
|
6
|
+
import { Logger as u } from "../../error-handling/logger.mjs";
|
|
7
|
+
import { getStateKey as d } from "../../functions/utils/string.utils.mjs";
|
|
8
|
+
import { tokenVisibilityStorage as f } from "./token-visibility-db.mjs";
|
|
9
|
+
import { overlayTokensWithRegistryData as p } from "../../functions/utils/erc20tokenFunctions.mjs";
|
|
10
|
+
import { createCustomSolanaConnection as m } from "../../functions/utils/create-provider.mjs";
|
|
11
|
+
import { getPublicBalanceByTokenAddress as h } from "../../functions/utils/publicBalance.utils.mjs";
|
|
12
|
+
import { getSolanaNftAssetsFromServer as g } from "../../API/solana-nft-assets.mjs";
|
|
13
|
+
import { getEvmNftAssetsFromServer as _, getEvmTokenBalancesFromServer as v } from "../../API/evm-token-assets.mjs";
|
|
14
14
|
import { PublicKey as y } from "@solana/web3.js";
|
|
15
15
|
import { get as b, update as x } from "idb-keyval";
|
|
16
16
|
import { TOKEN_2022_PROGRAM_ID as S, TOKEN_PROGRAM_ID as C } from "@solana/spl-token";
|
|
17
17
|
var w = new class {
|
|
18
18
|
fetchedTokens = {};
|
|
19
|
-
ALCHEMY_URLS = {
|
|
20
|
-
[t.bnbMainnet]: "bnb-mainnet",
|
|
21
|
-
[t.ethMainnet]: "eth-mainnet",
|
|
22
|
-
[t.polygon]: "polygon-mainnet",
|
|
23
|
-
[t.arbMainnet]: "arb-mainnet",
|
|
24
|
-
[t.optimism]: "opt-mainnet",
|
|
25
|
-
[t.optimismTest]: "opt-mainnet",
|
|
26
|
-
[t.base]: "base-mainnet",
|
|
27
|
-
[t.solanaMainnet]: "solana-mainnet",
|
|
28
|
-
[t.sepoliaTestnet]: "eth-sepolia"
|
|
29
|
-
};
|
|
30
19
|
KNOWN_GOOD_NFTS = {
|
|
31
|
-
[
|
|
32
|
-
[
|
|
20
|
+
[e.base]: ["0x20bc8d248fe9c18a947406cea50d716828ab821f"],
|
|
21
|
+
[e.optimism]: ["0x3c3e0e73b53a19bcaf4178b8f9c9428fd2a2775e"]
|
|
33
22
|
};
|
|
34
23
|
isWhitelistedNFT(e, t) {
|
|
35
|
-
return this.KNOWN_GOOD_NFTS[t] ? this.KNOWN_GOOD_NFTS[t].some((t) =>
|
|
24
|
+
return this.KNOWN_GOOD_NFTS[t] ? this.KNOWN_GOOD_NFTS[t].some((t) => o(e, t)) : !1;
|
|
36
25
|
}
|
|
37
26
|
async getPublicTokens(e, t) {
|
|
38
|
-
let n =
|
|
39
|
-
return
|
|
27
|
+
let n = d(t, e);
|
|
28
|
+
return p((await b(c.ALCHEMY_PUBLIC_TOKENS))?.[n] || [], e);
|
|
40
29
|
}
|
|
41
30
|
async getFetchedTokens(e, t) {
|
|
42
|
-
let n =
|
|
43
|
-
return
|
|
31
|
+
let n = d(t, e);
|
|
32
|
+
return p(this.fetchedTokens[n] || [], e);
|
|
44
33
|
}
|
|
45
|
-
fetchAndUpdatePublicTokens(e,
|
|
46
|
-
return n
|
|
34
|
+
fetchAndUpdatePublicTokens(e, n) {
|
|
35
|
+
return t(n) ? this.fetchAndUpdateSolanaTokens(e, n) : this.fetchAndUpdateEVMTokens(e, n);
|
|
47
36
|
}
|
|
48
37
|
async fetchAndUpdateSolanaTokens(e, t) {
|
|
49
|
-
let n =
|
|
38
|
+
let n = d(e, t), [r, i] = await Promise.all([this.getSolanaTokenAddresses(t, e), this.getNFTAddresses(e)]), a = Array.from(new Set([...r, ...i]));
|
|
50
39
|
if (!a.length) return;
|
|
51
|
-
let o = (await
|
|
52
|
-
await x(
|
|
40
|
+
let o = (await l.tokensInfoCall(t, a)).filter((e) => !!e), u = await f.hideSpamsAndFetchHiddenTokensAddresses(t, o), p = o.filter((e) => !s(u, e.erc20TokenAddress));
|
|
41
|
+
await x(c.ALCHEMY_PUBLIC_TOKENS, (e = {}) => {
|
|
53
42
|
let t = {
|
|
54
43
|
...e,
|
|
55
|
-
[n]:
|
|
44
|
+
[n]: p
|
|
56
45
|
};
|
|
57
46
|
return this.fetchedTokens = t, t;
|
|
58
47
|
});
|
|
59
48
|
}
|
|
60
|
-
async getWalletTokenAddresses(e,
|
|
61
|
-
return
|
|
49
|
+
async getWalletTokenAddresses(e, n) {
|
|
50
|
+
return t(e) ? this.getSolanaTokenAddresses(e, n) : this.getEVMTokenAddresses(e, n);
|
|
62
51
|
}
|
|
63
52
|
async fetchAndUpdateEVMTokens(e, t) {
|
|
64
|
-
let n =
|
|
65
|
-
if (!
|
|
66
|
-
let
|
|
53
|
+
let n = d(e, t), i = await this.getEVMTokenAddresses(t, e), a = await this.getNFTTokens(t, e), u = a.map((e) => e.contractAddress), p = [...i, ...u];
|
|
54
|
+
if (!p.length) return;
|
|
55
|
+
let m = (await l.tokensInfoCall(t, p)).map((e, n) => {
|
|
67
56
|
if (e) return e;
|
|
68
|
-
let
|
|
69
|
-
return
|
|
57
|
+
let i = p[n], s = a.find((e) => o(e.contractAddress, i));
|
|
58
|
+
return s && s.tokenIds && s.tokenIds.length > 0 && this.isWhitelistedNFT(i, t) ? {
|
|
70
59
|
chainId: t,
|
|
71
60
|
name: "Unknown NFT",
|
|
72
61
|
symbol: "NFT",
|
|
73
|
-
erc20TokenAddress:
|
|
62
|
+
erc20TokenAddress: i,
|
|
74
63
|
decimals: 0,
|
|
75
|
-
nftTokenType:
|
|
76
|
-
tokenIds:
|
|
64
|
+
nftTokenType: r.ERC721,
|
|
65
|
+
tokenIds: s.tokenIds
|
|
77
66
|
} : null;
|
|
78
|
-
}).filter((e) => !!e),
|
|
67
|
+
}).filter((e) => !!e), h = await f.hideSpamsAndFetchHiddenTokensAddresses(t, m), g = m.filter((e) => !s(h, e.erc20TokenAddress)).map((e) => ({
|
|
79
68
|
...e,
|
|
80
|
-
tokenIds:
|
|
69
|
+
tokenIds: a.find((t) => o(t.contractAddress, e.erc20TokenAddress))?.tokenIds
|
|
81
70
|
}));
|
|
82
|
-
await x(
|
|
71
|
+
await x(c.ALCHEMY_PUBLIC_TOKENS, (e = {}) => {
|
|
83
72
|
let t = {
|
|
84
73
|
...e,
|
|
85
74
|
[n]: g
|
|
@@ -88,85 +77,32 @@ var w = new class {
|
|
|
88
77
|
});
|
|
89
78
|
}
|
|
90
79
|
async getSolanaTokenAddresses(e, t) {
|
|
91
|
-
let {
|
|
92
|
-
if (!n) throw Error("RPC URL not found for the specified chain ID");
|
|
93
|
-
let i = _(n), a = await i.getBalance(new y(t)), [s, c] = await Promise.all([i.getParsedTokenAccountsByOwner(new y(t), { programId: C }), i.getParsedTokenAccountsByOwner(new y(t), { programId: S })]), l = [...s.value, ...c.value].filter((e) => {
|
|
80
|
+
let { rpcUrl: r } = n[e], a = m(r), o = await a.getBalance(new y(t)), [s, c] = await Promise.all([a.getParsedTokenAccountsByOwner(new y(t), { programId: C }), a.getParsedTokenAccountsByOwner(new y(t), { programId: S })]), l = [...s.value, ...c.value].filter((e) => {
|
|
94
81
|
let { amount: t } = e.account.data.parsed.info.tokenAmount;
|
|
95
82
|
return BigInt(t) > 0n;
|
|
96
83
|
}).map((e) => e.account.data.parsed.info.mint);
|
|
97
|
-
return
|
|
84
|
+
return o > 0 && l.unshift(i), Array.from(new Set(l));
|
|
98
85
|
}
|
|
99
|
-
async getNFTAddresses(e
|
|
100
|
-
let { fetchRpcUrl: n } = r[e];
|
|
101
|
-
if (!n) throw Error("RPC URL not found for the specified chain ID");
|
|
86
|
+
async getNFTAddresses(e) {
|
|
102
87
|
try {
|
|
103
|
-
|
|
104
|
-
do {
|
|
105
|
-
let { items: a = [], page: o } = (await u.post(n, {
|
|
106
|
-
jsonrpc: "2.0",
|
|
107
|
-
id: 1,
|
|
108
|
-
method: "getAssetsByOwner",
|
|
109
|
-
params: {
|
|
110
|
-
ownerAddress: t,
|
|
111
|
-
page: r,
|
|
112
|
-
limit: 1e3,
|
|
113
|
-
displayOptions: {
|
|
114
|
-
showFungible: !1,
|
|
115
|
-
showCollectionMetadata: !0
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
})).result || {}, s = a.filter((e) => e.interface && i.includes(e.interface)).map((e) => e.id);
|
|
119
|
-
e.push(...s), r = o && o > r ? o : 0;
|
|
120
|
-
} while (r > 0);
|
|
121
|
-
return e;
|
|
88
|
+
return await g(e);
|
|
122
89
|
} catch (e) {
|
|
123
|
-
return
|
|
90
|
+
return u.error("Failed to fetch NFTs from DAS API", e), [];
|
|
124
91
|
}
|
|
125
92
|
}
|
|
126
|
-
async getEVMTokenAddresses(
|
|
127
|
-
let r = await
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
let e = [n, "erc20"];
|
|
132
|
-
c && e.push({ pageKey: c });
|
|
133
|
-
let { result: t } = await u.post(a, {
|
|
134
|
-
jsonrpc: "2.0",
|
|
135
|
-
id: 1,
|
|
136
|
-
method: "alchemy_getTokenBalances",
|
|
137
|
-
params: e
|
|
138
|
-
});
|
|
139
|
-
o.push(...t?.tokenBalances ?? []), c = t?.pageKey;
|
|
140
|
-
} while (c);
|
|
141
|
-
r && r > 0n && o.push({
|
|
142
|
-
contractAddress: s,
|
|
143
|
-
tokenBalance: r.toString()
|
|
93
|
+
async getEVMTokenAddresses(e, t) {
|
|
94
|
+
let [n, r] = await Promise.all([h(e, t, a), v(e, t)]);
|
|
95
|
+
n && n > 0n && r.push({
|
|
96
|
+
contractAddress: a,
|
|
97
|
+
tokenBalance: n.toString()
|
|
144
98
|
});
|
|
145
|
-
let
|
|
146
|
-
return
|
|
147
|
-
(!
|
|
148
|
-
}), Object.keys(
|
|
99
|
+
let i = {};
|
|
100
|
+
return r.forEach((e) => {
|
|
101
|
+
(!i[e.contractAddress] || BigInt(e.tokenBalance) > 0n) && (i[e.contractAddress] = e);
|
|
102
|
+
}), Object.keys(i);
|
|
149
103
|
}
|
|
150
|
-
async getNFTTokens(
|
|
151
|
-
|
|
152
|
-
do {
|
|
153
|
-
let e = new URLSearchParams({
|
|
154
|
-
owner: n,
|
|
155
|
-
withMetadata: "false",
|
|
156
|
-
pageSize: "100"
|
|
157
|
-
});
|
|
158
|
-
a && e.append("pageKey", a);
|
|
159
|
-
let { ownedNfts: t = [], pageKey: o } = await u.get(`${r}?${e.toString()}`);
|
|
160
|
-
i.push(...t), a = o;
|
|
161
|
-
} while (a);
|
|
162
|
-
let o = i.filter(({ contractAddress: e, tokenId: t }) => e && t).reduce((e, { contractAddress: t, tokenId: n }) => {
|
|
163
|
-
let r = t.toLowerCase();
|
|
164
|
-
return e.has(r) || e.set(r, []), e.get(r)?.push(n), e;
|
|
165
|
-
}, /* @__PURE__ */ new Map());
|
|
166
|
-
return Array.from(o.entries()).map(([e, t]) => ({
|
|
167
|
-
contractAddress: e,
|
|
168
|
-
tokenIds: t
|
|
169
|
-
}));
|
|
104
|
+
async getNFTTokens(e, t) {
|
|
105
|
+
return _(e, t);
|
|
170
106
|
}
|
|
171
107
|
}();
|
|
172
108
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../../../_virtual/_rolldown/runtime.cjs`)
|
|
1
|
+
require(`../../../../_virtual/_rolldown/runtime.cjs`),require(`../../constants/chains.constants.cjs`),require(`../../crypto/poseidon.cjs`),require(`./keys.cjs`),require(`../utxo/Utxo.cjs`);let e=require(`ethers`);require(`@solana/web3.js`);var t=`solana-on-chain-utxo:`,n=9,r=e=>Array.isArray(e)?e.some(e=>(e instanceof Uint8Array?e:Uint8Array.from(e)).some(e=>e!==0)):!1,i=r=>{if(r.length!==n)throw Error(`Expected ${n} on-chain fields, received ${r.length}`);let i=r.map((e,t)=>{let n=e instanceof Uint8Array?e:Uint8Array.from(e);if(n.length!==32)throw Error(`Expected bytes32 length 32 at position ${t}, got ${n.length}`);return`0x${Buffer.from(n).toString(`hex`)}`});return`${t}${e.ethers.AbiCoder.defaultAbiCoder().encode([`bytes32[${n}]`],[i])}`},a=e=>e.startsWith(t);exports.encodeSolanaOnChainUtxo=i,exports.hasSolanaOnChainData=r,exports.isSolanaOnChainUtxo=a;
|
|
@@ -1,68 +1,18 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import "../../constants/chains.constants.mjs";
|
|
2
|
+
import "../../crypto/poseidon.mjs";
|
|
3
3
|
import "./keys.mjs";
|
|
4
|
-
import
|
|
5
|
-
import { ethers as
|
|
6
|
-
import
|
|
4
|
+
import "../utxo/Utxo.mjs";
|
|
5
|
+
import { ethers as e } from "ethers";
|
|
6
|
+
import "@solana/web3.js";
|
|
7
7
|
//#region libs/shared/common/src/data-structures/crypto-keys/decodeUTXO.ts
|
|
8
|
-
var
|
|
9
|
-
if (
|
|
10
|
-
let
|
|
8
|
+
var t = "solana-on-chain-utxo:", n = 9, r = (e) => Array.isArray(e) ? e.some((e) => (e instanceof Uint8Array ? e : Uint8Array.from(e)).some((e) => e !== 0)) : !1, i = (r) => {
|
|
9
|
+
if (r.length !== n) throw Error(`Expected ${n} on-chain fields, received ${r.length}`);
|
|
10
|
+
let i = r.map((e, t) => {
|
|
11
11
|
let n = e instanceof Uint8Array ? e : Uint8Array.from(e);
|
|
12
12
|
if (n.length !== 32) throw Error(`Expected bytes32 length 32 at position ${t}, got ${n.length}`);
|
|
13
13
|
return `0x${Buffer.from(n).toString("hex")}`;
|
|
14
14
|
});
|
|
15
|
-
return `${
|
|
16
|
-
},
|
|
17
|
-
if (!l(e)) throw Error("Invalid encoded Solana UTXO payload");
|
|
18
|
-
let [n] = r.AbiCoder.defaultAbiCoder().decode([`bytes32[${o}]`], e.slice(21)), a = n;
|
|
19
|
-
if (!Array.isArray(a) || a.length !== o) throw Error("Malformed encoded Solana UTXO payload");
|
|
20
|
-
let [s, c, u, d, f, p, m, h, g] = a, _ = BigInt(s), v = BigInt(d), y = BigInt(f), b = BigInt(p), x = BigInt(m), S = r.toBeHex(BigInt(h)), C = BigInt(g).toString(), w = Array.from(r.getBytes(c)), T = Array.from(r.getBytes(u)), E = new i(Uint8Array.from([...w.slice(16), ...T.slice(16)])).toBase58();
|
|
21
|
-
return {
|
|
22
|
-
amount: _,
|
|
23
|
-
erc20TokenAddress: t(BigInt(c), BigInt(u)),
|
|
24
|
-
mintAddress: E,
|
|
25
|
-
h0x: v,
|
|
26
|
-
h0y: y,
|
|
27
|
-
h1x: b,
|
|
28
|
-
h1y: x,
|
|
29
|
-
stealthAddress: S,
|
|
30
|
-
timeStamp: C
|
|
31
|
-
};
|
|
32
|
-
}, d = (e) => {
|
|
33
|
-
let [t] = r.AbiCoder.defaultAbiCoder().decode(["tuple(uint256, address, tuple(uint256, uint256, uint256, uint256, uint256), uint256)", "bytes"], e);
|
|
34
|
-
return {
|
|
35
|
-
amount: BigInt(t[0]),
|
|
36
|
-
erc20TokenAddress: t[1],
|
|
37
|
-
h0x: BigInt(t[2][0]),
|
|
38
|
-
h0y: BigInt(t[2][1]),
|
|
39
|
-
h1x: BigInt(t[2][2]),
|
|
40
|
-
h1y: BigInt(t[2][3]),
|
|
41
|
-
stealthAddress: r.toBeHex(BigInt(t[2][4])),
|
|
42
|
-
timeStamp: BigInt(t[3]).toString()
|
|
43
|
-
};
|
|
44
|
-
}, f = (t, n, r) => {
|
|
45
|
-
if (e(r)) {
|
|
46
|
-
let { amount: e, erc20TokenAddress: r, mintAddress: i, h0x: a, h0y: o, stealthAddress: s, timeStamp: c } = u(t);
|
|
47
|
-
return {
|
|
48
|
-
amount: e,
|
|
49
|
-
erc20TokenAddress: r,
|
|
50
|
-
mintAddress: i,
|
|
51
|
-
timeStamp: c,
|
|
52
|
-
nullifyingKey: n,
|
|
53
|
-
stealthAddress: s,
|
|
54
|
-
H0: [a, o]
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
let { amount: i, erc20TokenAddress: a, timeStamp: o, h0x: s, h0y: c, stealthAddress: l } = d(t);
|
|
58
|
-
return {
|
|
59
|
-
amount: i,
|
|
60
|
-
erc20TokenAddress: a,
|
|
61
|
-
timeStamp: o,
|
|
62
|
-
nullifyingKey: n,
|
|
63
|
-
stealthAddress: l,
|
|
64
|
-
H0: [s, c]
|
|
65
|
-
};
|
|
66
|
-
}, p = (e, t, r) => new n(f(e, t, r));
|
|
15
|
+
return `${t}${e.AbiCoder.defaultAbiCoder().encode([`bytes32[${n}]`], [i])}`;
|
|
16
|
+
}, a = (e) => e.startsWith(t);
|
|
67
17
|
//#endregion
|
|
68
|
-
export {
|
|
18
|
+
export { i as encodeSolanaOnChainUtxo, r as hasSolanaOnChainData, a as isSolanaOnChainUtxo };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../../error-handling/logger.cjs`),
|
|
1
|
+
require(`../../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../../constants/chains.constants.cjs`),t=require(`../../../types/ethereum-network.types.cjs`),n=require(`../../../error-handling/logger.cjs`),r=require(`../../../constants/contracts.constants.cjs`),i=require(`../../../functions/web3/getContractMetadata.cjs`),a=require(`../../../functions/utils/getSignerFromContract.cjs`),o=require(`../../../functions/utils/resolve-sync.utils.cjs`),s=require(`../../../constants/reorg-depths.constants.cjs`),c=require(`../../BlockchainEvent/BlockchainEvent.cjs`);let l=require(`ethers`);var u=class{RETRY_MIN_PAGE_SIZE=100;MAX_RETRIES=20;_chainId;contract;_latestBlockNumber;_blockedUtxosContract;_initialBlockNumber;onEventsProcessed;eventProcessors=new Set;maxPageSize;_isReady=!1;isServer;inProgress;eventsFetchingMutex;constructor(e,t,n,r,i,a){this.contract=t,this._chainId=e,this._initialBlockNumber=n,this.maxPageSize=a,this.isServer=r,this.inProgress=!1,this.eventsFetchingMutex=i}get latestBlockNumber(){return this._latestBlockNumber??this._initialBlockNumber}get chainId(){return this._chainId}get isReady(){return this._isReady}syncFromAtMost(e){(this._latestBlockNumber===void 0||e<this._latestBlockNumber)&&(this._latestBlockNumber=e)}advanceLatestBlockNumber(e){e>(this._latestBlockNumber??this._initialBlockNumber)&&(this._latestBlockNumber=e)}intervalClear(){this._isReady=!1,this.eventProcessors=new Set,this.clear()}async init(){if(this._isReady)throw Error(`Already initialized`);this._isReady=!0,await this.retrieveEvents(this.latestBlockNumber+1),this.startUpdateListener()}requireReady(){if(!this._isReady)throw Error(`Not ready`)}async getEventsForSingleContract(e,t,n,r=0,i=`*`){try{return(await e.queryFilter(i,t,n)).filter(e=>e instanceof l.ethers.EventLog)}catch(a){if(r<this.MAX_RETRIES&&n-t>this.RETRY_MIN_PAGE_SIZE){let a=Math.floor((t+n)/2),o=await this.getEventsForSingleContract(e,t,a,r+1,i),s=await this.getEventsForSingleContract(e,a+1,n,r+1,i);return[...o,...s]}throw a}}get blockedUtxosContract(){if(this._blockedUtxosContract===void 0){let n=e.getNonLocalhostChainId(this._chainId);this._blockedUtxosContract=r.getDepositOnChainUtxosAddress(n)?i.getContractWithFetcherByChainId(n,t.ContractType.DepositOnChainUtxosContract):null}return this._blockedUtxosContract??void 0}addEventProcessorFunction(e){if(this._isReady)throw Error(`Can't add event processor after event emitter initialized`);this.eventProcessors.add(e)}async getEventsInRange(e,t){let n=[];return await o.resolveSync(o.getSequence(e,t,this.maxPageSize).map(({from:e,to:t})=>async()=>{let r=await this.getEventsForSingleContract(this.contract,e,t);n.push(...r);let i=this.blockedUtxosContract;i&&n.push(...await this.getEventsForSingleContract(i,e,t,0,`BlockedUtxosCreated`))})),n.map(e=>c.BlockchainEvent.fromEthers(e))}async getLastBlockNumberForEventRequest(){let e=await a.getProviderFromContract(this.contract).getBlockNumber();if(!this.isServer)return e;let{chainId:t}=await a.getProviderFromContract(this.contract).getNetwork();return Math.max(this.latestBlockNumber,e-s.blockReorgDepth[Number(t)]+1)}async retrieveEvents(e,t=!1){return this.requireReady(),await this.eventsFetchingMutex.runExclusive(async()=>{try{if(this.inProgress&&!t)return!1;this.inProgress=!0;let n=await this.getLastBlockNumberForEventRequest();if(n<e)return this.inProgress=!1,!1;let r=await this.getEventsInRange(e,n);return await this.processEvents(r,n),this._latestBlockNumber=n,this.inProgress=!1,!0}catch(e){return n.Logger.error(`retrieveEvents error`,e),this.inProgress=!1,!1}})}async processEvents(e,t){let n=(await Promise.all([...this.eventProcessors].map(n=>n(e,t)))).reduce((e,t)=>e+t,0);this.onEventsProcessed?.(n)}};exports.BlockchainEventEmitter=u;
|
|
@@ -8,6 +8,7 @@ export declare abstract class BlockchainEventEmitter {
|
|
|
8
8
|
private readonly _chainId;
|
|
9
9
|
readonly contract: ethers.Contract;
|
|
10
10
|
private _latestBlockNumber;
|
|
11
|
+
private _blockedUtxosContract;
|
|
11
12
|
private _initialBlockNumber;
|
|
12
13
|
onEventsProcessed?: (acceptedEventCount: number) => void;
|
|
13
14
|
private eventProcessors;
|
|
@@ -26,6 +27,7 @@ export declare abstract class BlockchainEventEmitter {
|
|
|
26
27
|
init(): Promise<void>;
|
|
27
28
|
private requireReady;
|
|
28
29
|
private getEventsForSingleContract;
|
|
30
|
+
private get blockedUtxosContract();
|
|
29
31
|
addEventProcessorFunction(eventProcessorFunction: EventProcessorFunction): void;
|
|
30
32
|
getEventsInRange(fromBlockNumber: number, toBlockNumber: number): Promise<BlockchainEvent[]>;
|
|
31
33
|
getLastBlockNumberForEventRequest(): Promise<number>;
|