@kapa123456789/sdk 0.0.42 → 0.0.44
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/common/src/API/accessCodeCalls.cjs +1 -1
- package/common/src/API/accessCodeCalls.mjs +1 -0
- package/common/src/API/admin-calls.cjs +1 -1
- package/common/src/API/admin-calls.mjs +1 -0
- package/common/src/API/brotherhoodCalls.cjs +1 -1
- package/common/src/API/brotherhoodCalls.mjs +1 -0
- package/common/src/API/callLifiAPI.cjs +1 -1
- package/common/src/API/callLifiAPI.mjs +1 -0
- package/common/src/API/callMonitor.cjs +1 -1
- package/common/src/API/callMonitor.mjs +1 -0
- package/common/src/API/callOdosAPI.cjs +1 -1
- package/common/src/API/callOdosAPI.mjs +1 -0
- package/common/src/API/callOkxAPI.cjs +1 -1
- package/common/src/API/callOkxAPI.mjs +1 -0
- package/common/src/API/callOneInchAPI.cjs +1 -1
- package/common/src/API/callOneInchAPI.mjs +1 -0
- package/common/src/API/callRelayer.cjs +1 -1
- package/common/src/API/callRelayer.mjs +1 -0
- package/common/src/API/checkRisk.cjs +1 -0
- package/common/src/API/checkRisk.mjs +3 -0
- package/common/src/API/dashboardAccountCalls.cjs +1 -1
- package/common/src/API/dashboardAccountCalls.mjs +1 -0
- package/common/src/API/dashboardAccountMemberCalls.cjs +1 -1
- package/common/src/API/dashboardAccountMemberCalls.mjs +1 -0
- package/common/src/API/dashboardBalanceCalls.cjs +1 -1
- package/common/src/API/dashboardBalanceCalls.mjs +1 -0
- package/common/src/API/dashboardContactCalls.cjs +1 -1
- package/common/src/API/dashboardContactCalls.mjs +1 -0
- package/common/src/API/dashboardPayoutCalls.cjs +1 -1
- package/common/src/API/dashboardPayoutCalls.mjs +1 -0
- package/common/src/API/dashboardTransactionCalls.cjs +1 -1
- package/common/src/API/dashboardTransactionCalls.mjs +1 -0
- package/common/src/API/enclaveRecipientInfoCalls.cjs +1 -0
- package/common/src/API/enclaveRecipientInfoCalls.mjs +2 -0
- package/common/src/API/enclaveSignatureCalls.cjs +1 -1
- package/common/src/API/enclaveSignatureCalls.mjs +1 -0
- package/common/src/API/enclaveUtxoCalls.cjs +1 -1
- package/common/src/API/enclaveUtxoCalls.mjs +1 -0
- package/common/src/API/fetchCommitmentsCache.cjs +1 -1
- package/common/src/API/fetchCommitmentsCache.mjs +1 -0
- package/common/src/API/generate-trading-points.cjs +1 -1
- package/common/src/API/generate-trading-points.mjs +1 -0
- package/common/src/API/get-token-data.cjs +1 -1
- package/common/src/API/get-token-data.mjs +1 -0
- package/common/src/API/getCoingeckoPrice.cjs +1 -0
- package/common/src/API/getCoingeckoPrice.mjs +2 -0
- package/common/src/API/getGasEstimates.cjs +1 -1
- package/common/src/API/getGasEstimates.mjs +1 -0
- package/common/src/API/getTokenPrice.cjs +1 -1
- package/common/src/API/getTokenPrice.mjs +1 -0
- package/common/src/API/getWebsiteURL.cjs +1 -0
- package/common/src/API/getWebsiteURL.mjs +1 -0
- package/common/src/API/index.cjs +1 -0
- package/common/src/API/index.mjs +24 -0
- package/common/src/API/kycCalls.cjs +1 -1
- package/common/src/API/kycCalls.mjs +1 -0
- package/common/src/API/leaderboardCalls.cjs +1 -1
- package/common/src/API/leaderboardCalls.mjs +1 -0
- package/common/src/API/onrampCalls.cjs +1 -1
- package/common/src/API/onrampCalls.mjs +1 -0
- package/common/src/API/privacy-score-calls.cjs +1 -1
- package/common/src/API/privacy-score-calls.mjs +1 -0
- package/common/src/API/privateSendEmailNotificationsCalls.cjs +1 -1
- package/common/src/API/privateSendEmailNotificationsCalls.mjs +1 -0
- package/common/src/API/privateSendNonceCalls.cjs +1 -1
- package/common/src/API/privateSendNonceCalls.mjs +1 -0
- package/common/src/API/privateSendRecipientInfoCalls.cjs +1 -1
- package/common/src/API/privateSendRecipientInfoCalls.mjs +1 -0
- package/common/src/API/proxyAccountsCalls.cjs +1 -1
- package/common/src/API/proxyAccountsCalls.mjs +1 -0
- package/common/src/API/referralsCalls.cjs +1 -1
- package/common/src/API/referralsCalls.mjs +1 -0
- package/common/src/API/relayCalls.cjs +1 -1
- package/common/src/API/relayCalls.mjs +1 -0
- package/common/src/API/resolve-sns.cjs +1 -0
- package/common/src/API/resolve-sns.mjs +1 -0
- package/common/src/API/rewardsUserCalls.cjs +1 -1
- package/common/src/API/rewardsUserCalls.mjs +1 -0
- package/common/src/API/seedless-calls.cjs +1 -1
- package/common/src/API/seedless-calls.mjs +1 -0
- package/common/src/API/send-telegram-callback.cjs +1 -1
- package/common/src/API/send-telegram-callback.mjs +1 -0
- package/common/src/API/simulate-batch-tx.cjs +1 -1
- package/common/src/API/simulate-batch-tx.mjs +1 -0
- package/common/src/API/simulate-transaction.cjs +1 -1
- package/common/src/API/simulate-transaction.mjs +1 -0
- package/common/src/API/snapshot-event-calls.cjs +1 -1
- package/common/src/API/snapshot-event-calls.mjs +1 -0
- package/common/src/API/solana-calls.cjs +1 -1
- package/common/src/API/solana-calls.mjs +1 -0
- package/common/src/API/temporaryWalletCalls.cjs +1 -1
- package/common/src/API/temporaryWalletCalls.mjs +1 -0
- package/common/src/API/tenderly.api.cjs +1 -0
- package/common/src/API/tenderly.api.mjs +4 -0
- package/common/src/API/token-calls.cjs +1 -1
- package/common/src/API/token-calls.mjs +1 -0
- package/common/src/API/tronSubsidyCalls.cjs +1 -1
- package/common/src/API/tronSubsidyCalls.mjs +1 -0
- package/common/src/API/weeklyAnalyticCalls.cjs +1 -1
- package/common/src/API/weeklyAnalyticCalls.mjs +1 -0
- package/common/src/constants/activity.constants.cjs +1 -0
- package/common/src/constants/activity.constants.mjs +4 -0
- package/common/src/constants/addresses.constants.cjs +1 -1
- package/common/src/constants/addresses.constants.mjs +1 -0
- package/common/src/constants/assets.constants.cjs +1 -0
- package/common/src/constants/assets.constants.mjs +4 -0
- package/common/src/constants/chains.constants.cjs +1 -1
- package/common/src/constants/chains.constants.mjs +30 -30
- package/common/src/constants/coingecko.constants.cjs +1 -0
- package/common/src/constants/coingecko.constants.mjs +6 -0
- package/common/src/constants/contracts.constants.cjs +1 -1
- package/common/src/constants/contracts.constants.mjs +1 -1
- package/common/src/constants/events.constants.cjs +1 -0
- package/common/src/constants/events.constants.mjs +12 -0
- package/common/src/constants/index.cjs +1 -0
- package/common/src/constants/index.mjs +34 -0
- package/common/src/constants/kyc.constants.cjs +1 -1
- package/common/src/constants/kyc.constants.mjs +1 -1
- package/common/src/constants/lifi.constants.cjs +1 -1
- package/common/src/constants/lifi.constants.mjs +1 -1
- package/common/src/constants/permit2.constants.cjs +1 -1
- package/common/src/constants/permit2.constants.mjs +8 -7
- package/common/src/constants/presale.constants.cjs +1 -0
- package/common/src/constants/presale.constants.mjs +3 -0
- package/common/src/constants/protocol.constants.cjs +1 -1
- package/common/src/constants/protocol.constants.mjs +8 -3
- package/common/src/constants/schedule.constants.cjs +1 -0
- package/common/src/constants/schedule.constants.mjs +3 -0
- package/common/src/constants/server.constants.cjs +1 -1
- package/common/src/constants/server.constants.mjs +2 -1
- package/common/src/constants/tasks.constants.cjs +1 -0
- package/common/src/constants/tasks.constants.mjs +124 -0
- package/common/src/constants/token-data/arbMainnetRegistryFixed.json.cjs +1 -0
- package/common/src/constants/token-data/arbMainnetRegistryFixed.json.mjs +1841 -0
- package/common/src/constants/token-data/baseRegistryFixed.json.cjs +1 -0
- package/common/src/constants/token-data/baseRegistryFixed.json.mjs +1142 -0
- package/common/src/constants/token-data/ethMainnetRegistryFixed.json.cjs +1 -0
- package/common/src/constants/token-data/ethMainnetRegistryFixed.json.mjs +4274 -0
- package/common/src/constants/token-data/index.cjs +1 -0
- package/common/src/constants/token-data/index.mjs +17 -0
- package/common/src/constants/token-data/optimismRegistryFixed.json.cjs +1 -0
- package/common/src/constants/token-data/optimismRegistryFixed.json.mjs +709 -0
- package/common/src/constants/token-data/polygonRegistryFixed.json.cjs +1 -0
- package/common/src/constants/token-data/polygonRegistryFixed.json.mjs +2317 -0
- package/common/src/constants/token.limits.constants.cjs +1 -0
- package/common/src/constants/token.limits.constants.mjs +5 -0
- package/common/src/constants/tokens.constants.cjs +1 -0
- package/common/src/constants/tokens.constants.mjs +3 -0
- package/common/src/constants/vite.constants.cjs +1 -1
- package/common/src/constants/vite.constants.mjs +2 -2
- package/common/src/crypto/babyJub.cjs +1 -1
- package/common/src/crypto/babyJub.mjs +5 -6
- package/common/src/crypto/index.cjs +1 -0
- package/common/src/crypto/index.mjs +3 -0
- package/common/src/crypto/poseidon.cjs +1 -1
- package/common/src/crypto/poseidon.mjs +10 -11
- package/common/src/data-structures/AccountActions/index.cjs +1 -0
- package/common/src/data-structures/AccountActions/index.mjs +1 -0
- package/common/src/data-structures/Hinkal/Hinkal.cjs +1 -1
- package/common/src/data-structures/Hinkal/Hinkal.mjs +3 -0
- package/common/src/data-structures/Hinkal/handleAutoDepositBack.cjs +1 -1
- package/common/src/data-structures/Hinkal/handleAutoDepositBack.mjs +4 -0
- package/common/src/data-structures/Hinkal/hinkalCheckTokenRegistry.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalCheckTokenRegistry.mjs +1 -0
- package/common/src/data-structures/Hinkal/hinkalClaimUtxo.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalClaimUtxo.mjs +1 -0
- package/common/src/data-structures/Hinkal/hinkalDeposit.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalDeposit.mjs +1 -0
- package/common/src/data-structures/Hinkal/hinkalDepositAndBridge.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalDepositAndBridge.mjs +4 -0
- package/common/src/data-structures/Hinkal/hinkalDepositAndWithdraw.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalDepositAndWithdraw.mjs +3 -0
- package/common/src/data-structures/Hinkal/hinkalDepositOnChainUtxos.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalDepositOnChainUtxos.mjs +1 -0
- package/common/src/data-structures/Hinkal/hinkalPrivateWallet.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalPrivateWallet.mjs +2 -0
- package/common/src/data-structures/Hinkal/hinkalSignSubAccount.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSignSubAccount.mjs +1 -0
- package/common/src/data-structures/Hinkal/hinkalSolanaClaimUtxo.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaClaimUtxo.mjs +2 -0
- package/common/src/data-structures/Hinkal/hinkalSolanaDeposit.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaDeposit.mjs +1 -0
- package/common/src/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.mjs +4 -0
- package/common/src/data-structures/Hinkal/hinkalSolanaProxySwap.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaProxySwap.mjs +3 -0
- package/common/src/data-structures/Hinkal/hinkalSolanaSwap.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaSwap.mjs +1 -0
- package/common/src/data-structures/Hinkal/hinkalSolanaTransfer.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaTransfer.mjs +2 -0
- package/common/src/data-structures/Hinkal/hinkalSolanaWithdraw.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaWithdraw.mjs +3 -0
- package/common/src/data-structures/Hinkal/hinkalSwap.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSwap.mjs +1 -0
- package/common/src/data-structures/Hinkal/hinkalTransfer.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalTransfer.mjs +2 -0
- package/common/src/data-structures/Hinkal/hinkalWithdraw.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalWithdraw.mjs +2 -0
- package/common/src/data-structures/Hinkal/hinkalWithdrawStuckUtxos.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalWithdrawStuckUtxos.mjs +2 -0
- package/common/src/data-structures/Hinkal/resetMerkleTrees.cjs +1 -1
- package/common/src/data-structures/Hinkal/resetMerkleTrees.mjs +3 -0
- package/common/src/data-structures/IndexedDB/activity-db.cjs +1 -1
- package/common/src/data-structures/IndexedDB/activity-db.mjs +7 -3
- package/common/src/data-structures/IndexedDB/balances-db.cjs +1 -0
- package/common/src/data-structures/IndexedDB/balances-db.mjs +47 -0
- package/common/src/data-structures/IndexedDB/contact-db.cjs +1 -0
- package/common/src/data-structures/IndexedDB/contact-db.mjs +45 -0
- package/common/src/data-structures/IndexedDB/index.cjs +1 -0
- package/common/src/data-structures/IndexedDB/index.mjs +8 -0
- package/common/src/data-structures/IndexedDB/pay-activity-db.cjs +1 -0
- package/common/src/data-structures/IndexedDB/pay-activity-db.mjs +21 -0
- package/common/src/data-structures/IndexedDB/signatures-db.cjs +1 -0
- package/common/src/data-structures/IndexedDB/signatures-db.mjs +40 -0
- package/common/src/data-structures/TokenDBs/AlchemyPublicTokensDB.cjs +1 -0
- package/common/src/data-structures/TokenDBs/AlchemyPublicTokensDB.mjs +168 -0
- package/common/src/data-structures/TokenDBs/ArcPublicTokensDB.cjs +1 -0
- package/common/src/data-structures/TokenDBs/ArcPublicTokensDB.mjs +94 -0
- package/common/src/data-structures/TokenDBs/EventsPublicTokensDB.cjs +1 -0
- package/common/src/data-structures/TokenDBs/EventsPublicTokensDB.mjs +144 -0
- package/common/src/data-structures/TokenDBs/PrivateTokensDB.cjs +1 -1
- package/common/src/data-structures/TokenDBs/PrivateTokensDB.mjs +4 -3
- package/common/src/data-structures/TokenDBs/PublicTokensDB.cjs +1 -0
- package/common/src/data-structures/TokenDBs/PublicTokensDB.mjs +29 -0
- package/common/src/data-structures/TokenDBs/index.cjs +1 -0
- package/common/src/data-structures/TokenDBs/index.mjs +4 -0
- package/common/src/data-structures/cacheDevices/index.cjs +1 -0
- package/common/src/data-structures/cacheDevices/index.mjs +2 -0
- package/common/src/data-structures/crypto-keys/decodeUTXO.cjs +1 -1
- package/common/src/data-structures/crypto-keys/decodeUTXO.mjs +2 -1
- package/common/src/data-structures/crypto-keys/encryptDecryptUtxo.cjs +1 -1
- package/common/src/data-structures/crypto-keys/encryptDecryptUtxo.mjs +2 -0
- package/common/src/data-structures/crypto-keys/index.cjs +1 -0
- package/common/src/data-structures/crypto-keys/index.mjs +4 -0
- package/common/src/data-structures/crypto-keys/keyUtils.cjs +1 -1
- package/common/src/data-structures/crypto-keys/keyUtils.mjs +1 -1
- package/common/src/data-structures/event-service/evm/AbstractAccessTokenSnapshotService.cjs +1 -1
- package/common/src/data-structures/event-service/evm/AbstractAccessTokenSnapshotService.mjs +2 -0
- package/common/src/data-structures/event-service/evm/AbstractCommitmentsSnapshotService.cjs +1 -1
- package/common/src/data-structures/event-service/evm/AbstractCommitmentsSnapshotService.mjs +2 -0
- package/common/src/data-structures/event-service/evm/PollingBlockchainEventEmitter.cjs +1 -0
- package/common/src/data-structures/event-service/evm/PollingBlockchainEventEmitter.mjs +1 -0
- package/common/src/data-structures/event-service/index.cjs +1 -0
- package/common/src/data-structures/event-service/index.mjs +16 -0
- package/common/src/data-structures/event-service/solana/AbstractSolanaAccessTokenSnapshotService.cjs +1 -1
- package/common/src/data-structures/event-service/solana/AbstractSolanaAccessTokenSnapshotService.mjs +2 -0
- package/common/src/data-structures/event-service/solana/AbstractSolanaCommitmentsSnapshotService.cjs +1 -1
- package/common/src/data-structures/event-service/solana/AbstractSolanaCommitmentsSnapshotService.mjs +2 -0
- package/common/src/data-structures/event-service/solana/PollingSolanaBlockchainEventEmitter.cjs +1 -0
- package/common/src/data-structures/event-service/solana/PollingSolanaBlockchainEventEmitter.mjs +1 -0
- package/common/src/data-structures/http/index.cjs +1 -0
- package/common/src/data-structures/http/index.mjs +2 -0
- package/common/src/data-structures/merkle-tree/index.cjs +1 -0
- package/common/src/data-structures/merkle-tree/index.mjs +3 -0
- package/common/src/data-structures/snapshot/evm-snapshots/ClientAccessTokenSnapshotService.cjs +1 -1
- package/common/src/data-structures/snapshot/evm-snapshots/ClientAccessTokenSnapshotService.mjs +1 -0
- package/common/src/data-structures/snapshot/evm-snapshots/ClientCommitmentsSnapshotService.cjs +1 -1
- package/common/src/data-structures/snapshot/evm-snapshots/ClientCommitmentsSnapshotService.mjs +1 -0
- package/common/src/data-structures/snapshot/evm-snapshots/ClientNullifierSnapshotService.cjs +1 -1
- package/common/src/data-structures/snapshot/evm-snapshots/ClientNullifierSnapshotService.mjs +1 -0
- package/common/src/data-structures/snapshot/index.cjs +1 -0
- package/common/src/data-structures/snapshot/index.mjs +7 -0
- package/common/src/data-structures/snapshot/solana-snapshots/ClientSolanaAccessTokenSnapshotService.cjs +1 -1
- package/common/src/data-structures/snapshot/solana-snapshots/ClientSolanaAccessTokenSnapshotService.mjs +1 -0
- package/common/src/data-structures/snapshot/solana-snapshots/ClientSolanaCommitmentsSnapshotService.cjs +1 -1
- package/common/src/data-structures/snapshot/solana-snapshots/ClientSolanaCommitmentsSnapshotService.mjs +1 -0
- package/common/src/data-structures/snapshot/solana-snapshots/ClientSolanaNullifierSnapshotService.cjs +1 -1
- package/common/src/data-structures/snapshot/solana-snapshots/ClientSolanaNullifierSnapshotService.mjs +1 -0
- package/common/src/error-handling/customErrors/customErrors.helpers.cjs +1 -1
- package/common/src/error-handling/customErrors/customErrors.helpers.mjs +2 -0
- package/common/src/error-handling/customErrors/index.cjs +1 -0
- package/common/src/error-handling/customErrors/index.mjs +4 -0
- package/common/src/error-handling/get-error.message.cjs +1 -1
- package/common/src/error-handling/get-error.message.mjs +3 -1
- package/common/src/error-handling/index.cjs +1 -0
- package/common/src/error-handling/index.mjs +10 -0
- package/common/src/functions/auto-deposit-back-helpers/get-gas-token-records.cjs +1 -1
- package/common/src/functions/auto-deposit-back-helpers/get-gas-token-records.mjs +2 -0
- package/common/src/functions/auto-deposit-back-helpers/get-tokens-to-deposit-back.cjs +1 -1
- package/common/src/functions/auto-deposit-back-helpers/get-tokens-to-deposit-back.mjs +1 -0
- package/common/src/functions/auto-deposit-back-helpers/index.cjs +1 -0
- package/common/src/functions/auto-deposit-back-helpers/index.mjs +4 -0
- package/common/src/functions/auto-deposit-back-helpers/select-gas-token.cjs +1 -1
- package/common/src/functions/auto-deposit-back-helpers/select-gas-token.mjs +4 -0
- package/common/src/functions/index.cjs +1 -0
- package/common/src/functions/index.mjs +82 -0
- package/common/src/functions/kyc/checkTokenLimitsUSD.cjs +1 -1
- package/common/src/functions/kyc/checkTokenLimitsUSD.mjs +5 -0
- package/common/src/functions/kyc/index.cjs +1 -0
- package/common/src/functions/kyc/index.mjs +4 -0
- package/common/src/functions/kyc/passportHelper.cjs +1 -0
- package/common/src/functions/kyc/passportHelper.mjs +1 -0
- package/common/src/functions/pre-transaction/addressTableLookup.cjs +1 -0
- package/common/src/functions/pre-transaction/addressTableLookup.mjs +2 -0
- package/common/src/functions/pre-transaction/calculateSolanaNullifierCount.cjs +1 -0
- package/common/src/functions/pre-transaction/calculateSolanaNullifierCount.mjs +5 -0
- package/common/src/functions/pre-transaction/getFlatFees.cjs +1 -0
- package/common/src/functions/pre-transaction/getFlatFees.mjs +4 -0
- package/common/src/functions/pre-transaction/getVolatileTransferAmount.cjs +1 -1
- package/common/src/functions/pre-transaction/getVolatileTransferAmount.mjs +1 -0
- package/common/src/functions/pre-transaction/index.cjs +1 -0
- package/common/src/functions/pre-transaction/index.mjs +21 -0
- package/common/src/functions/pre-transaction/initTokenLimitIfNeeded.cjs +1 -0
- package/common/src/functions/pre-transaction/initTokenLimitIfNeeded.mjs +3 -0
- package/common/src/functions/pre-transaction/interaction-to-action.cjs +1 -0
- package/common/src/functions/pre-transaction/interaction-to-action.mjs +1 -0
- package/common/src/functions/pre-transaction/sendInitNullifiersTransaction.cjs +1 -0
- package/common/src/functions/pre-transaction/sendInitNullifiersTransaction.mjs +3 -0
- package/common/src/functions/pre-transaction/sendV0Transaction.cjs +1 -1
- package/common/src/functions/pre-transaction/sendV0Transaction.mjs +1 -1
- package/common/src/functions/pre-transaction/solana.cjs +1 -1
- package/common/src/functions/pre-transaction/solana.mjs +1 -1
- package/common/src/functions/pre-transaction/store-instructions.cjs +1 -0
- package/common/src/functions/pre-transaction/store-instructions.mjs +2 -0
- package/common/src/functions/pre-transaction/store-proof.cjs +1 -0
- package/common/src/functions/pre-transaction/store-proof.mjs +3 -0
- package/common/src/functions/private-wallet/emporium.helpers.cjs +1 -1
- package/common/src/functions/private-wallet/emporium.helpers.mjs +2 -1
- package/common/src/functions/private-wallet/emporium.swap.helpers.cjs +1 -1
- package/common/src/functions/private-wallet/emporium.swap.helpers.mjs +2 -1
- package/common/src/functions/private-wallet/index.cjs +1 -0
- package/common/src/functions/private-wallet/index.mjs +3 -0
- package/common/src/functions/private-wallet/opProducer.cjs +1 -0
- package/common/src/functions/private-wallet/opProducer.mjs +3 -0
- package/common/src/functions/snarkjs/constructEmporiumProof.cjs +1 -1
- package/common/src/functions/snarkjs/constructEmporiumProof.mjs +1 -0
- package/common/src/functions/snarkjs/constructSolanaZkProof.cjs +1 -1
- package/common/src/functions/snarkjs/constructSolanaZkProof.mjs +1 -0
- package/common/src/functions/snarkjs/generateZkProofEnclave.cjs +1 -1
- package/common/src/functions/snarkjs/generateZkProofEnclave.mjs +1 -0
- package/common/src/functions/snarkjs/getMerkleTreeSiblingsAndRootHashes.cjs +1 -1
- package/common/src/functions/snarkjs/getMerkleTreeSiblingsAndRootHashes.mjs +1 -0
- package/common/src/functions/snarkjs/index.cjs +1 -0
- package/common/src/functions/snarkjs/index.mjs +7 -0
- package/common/src/functions/snarkjs/verifyCommitmentValidationData.cjs +1 -0
- package/common/src/functions/snarkjs/verifyCommitmentValidationData.mjs +6 -0
- package/common/src/functions/utils/addresses.cjs +1 -1
- package/common/src/functions/utils/addresses.mjs +1 -0
- package/common/src/functions/utils/buildClaimableDepositPlan.cjs +1 -0
- package/common/src/functions/utils/buildClaimableDepositPlan.mjs +3 -0
- package/common/src/functions/utils/cacheDevice.utils.cjs +1 -1
- package/common/src/functions/utils/cacheDevice.utils.mjs +2 -0
- package/common/src/functions/utils/cacheFunctions.cjs +1 -1
- package/common/src/functions/utils/cacheFunctions.mjs +1 -1
- package/common/src/functions/utils/convertIntegrationProviderToExternalActionId.cjs +1 -0
- package/common/src/functions/utils/convertIntegrationProviderToExternalActionId.mjs +4 -0
- package/common/src/functions/utils/deposit-claimable.utils.cjs +1 -0
- package/common/src/functions/utils/deposit-claimable.utils.mjs +12 -0
- package/common/src/functions/utils/dispatchBalanceRefreshes.cjs +1 -0
- package/common/src/functions/utils/dispatchBalanceRefreshes.mjs +4 -0
- package/common/src/functions/utils/enclave-recipient-info-storage.cjs +1 -0
- package/common/src/functions/utils/enclave-recipient-info-storage.mjs +2 -0
- package/common/src/functions/utils/enclave-signature-storage.cjs +1 -0
- package/common/src/functions/utils/enclave-signature-storage.mjs +2 -0
- package/common/src/functions/utils/enclave-utxo-storage.cjs +1 -0
- package/common/src/functions/utils/enclave-utxo-storage.mjs +4 -0
- package/common/src/functions/utils/encryptInputForEnclave.cjs +1 -1
- package/common/src/functions/utils/encryptInputForEnclave.mjs +1 -0
- package/common/src/functions/utils/erc20tokenFunctions.cjs +1 -1
- package/common/src/functions/utils/erc20tokenFunctions.mjs +14 -2
- package/common/src/functions/utils/evmNetworkFunctions.cjs +1 -0
- package/common/src/functions/utils/evmNetworkFunctions.mjs +1 -0
- package/common/src/functions/utils/formatter.cjs +1 -0
- package/common/src/functions/utils/formatter.mjs +1 -0
- package/common/src/functions/utils/getBlockExplorerUrl.cjs +1 -0
- package/common/src/functions/utils/getBlockExplorerUrl.mjs +1 -0
- package/common/src/functions/utils/getRecipientInfoFromUserKeys.cjs +1 -1
- package/common/src/functions/utils/getRecipientInfoFromUserKeys.mjs +1 -0
- package/common/src/functions/utils/getUtxosFromReceipt.utils.cjs +1 -1
- package/common/src/functions/utils/getUtxosFromReceipt.utils.mjs +3 -0
- package/common/src/functions/utils/getUtxosFromReceiptSolana.cjs +1 -1
- package/common/src/functions/utils/getUtxosFromReceiptSolana.mjs +1 -0
- package/common/src/functions/utils/inLogicMetadata.cjs +1 -0
- package/common/src/functions/utils/inLogicMetadata.mjs +1 -0
- package/common/src/functions/utils/index.cjs +1 -0
- package/common/src/functions/utils/index.mjs +68 -0
- package/common/src/functions/utils/ipfs.cjs +1 -0
- package/common/src/functions/utils/ipfs.mjs +1 -0
- package/common/src/functions/utils/lifi.utils.cjs +1 -0
- package/common/src/functions/utils/lifi.utils.mjs +4 -0
- package/common/src/functions/utils/networks.utils.cjs +1 -0
- package/common/src/functions/utils/networks.utils.mjs +1 -0
- package/common/src/functions/utils/nftTokenFunctions.cjs +1 -0
- package/common/src/functions/utils/nftTokenFunctions.mjs +2 -0
- package/common/src/functions/utils/prepareHinkal.cjs +1 -0
- package/common/src/functions/utils/prepareHinkal.mjs +7 -0
- package/common/src/functions/utils/process.utils.cjs +1 -1
- package/common/src/functions/utils/process.utils.mjs +1 -1
- package/common/src/functions/utils/publicBalance.utils.cjs +1 -1
- package/common/src/functions/utils/publicBalance.utils.mjs +19 -6
- package/common/src/functions/utils/rpc-int-encode.cjs +1 -0
- package/common/src/functions/utils/rpc-int-encode.mjs +1 -0
- package/common/src/functions/utils/solanaMint.utils.cjs +1 -1
- package/common/src/functions/utils/solanaMint.utils.mjs +1 -1
- package/common/src/functions/utils/token-check.utils.cjs +1 -1
- package/common/src/functions/utils/token-check.utils.mjs +2 -0
- package/common/src/functions/utils/transfer-claimable.utils.cjs +1 -0
- package/common/src/functions/utils/transfer-claimable.utils.mjs +12 -0
- package/common/src/functions/utils/tron.utils.cjs +1 -1
- package/common/src/functions/utils/tron.utils.mjs +1 -1
- package/common/src/functions/utils/tx-confirmation.utils.cjs +1 -1
- package/common/src/functions/utils/tx-confirmation.utils.mjs +2 -1
- package/common/src/functions/utils/userAgent.cjs +1 -0
- package/common/src/functions/utils/userAgent.mjs +3 -0
- package/common/src/functions/utils/walletBalances.utils.cjs +1 -0
- package/common/src/functions/utils/walletBalances.utils.mjs +1 -0
- package/common/src/functions/web3/EIP-712.cjs +1 -0
- package/common/src/functions/web3/EIP-712.mjs +1 -0
- package/common/src/functions/web3/connectors.utils.cjs +1 -0
- package/common/src/functions/web3/connectors.utils.mjs +1 -0
- package/common/src/functions/web3/events/balanceChangedHandler.cjs +1 -1
- package/common/src/functions/web3/events/balanceChangedHandler.mjs +1 -0
- package/common/src/functions/web3/events/getInputUtxoAndBalance.cjs +1 -1
- package/common/src/functions/web3/events/getInputUtxoAndBalance.mjs +1 -1
- package/common/src/functions/web3/events/getShieldedBalance.cjs +1 -1
- package/common/src/functions/web3/events/getShieldedBalance.mjs +1 -0
- package/common/src/functions/web3/events/getTransactionLogEvents.cjs +1 -0
- package/common/src/functions/web3/events/getTransactionLogEvents.mjs +2 -0
- package/common/src/functions/web3/events/index.cjs +1 -0
- package/common/src/functions/web3/events/index.mjs +4 -0
- package/common/src/functions/web3/fetchSolanaMerkleTreeRootHash.cjs +1 -1
- package/common/src/functions/web3/fetchSolanaMerkleTreeRootHash.mjs +1 -0
- package/common/src/functions/web3/functionCalls/accessTokenCalls.cjs +1 -1
- package/common/src/functions/web3/functionCalls/accessTokenCalls.mjs +1 -0
- package/common/src/functions/web3/functionCalls/recoverTransactionFromError.cjs +1 -1
- package/common/src/functions/web3/functionCalls/recoverTransactionFromError.mjs +1 -0
- package/common/src/functions/web3/functionCalls/transactCallRelayer.cjs +1 -1
- package/common/src/functions/web3/functionCalls/transactCallRelayer.mjs +2 -0
- package/common/src/functions/web3/getSolanaPriorityFee.cjs +1 -1
- package/common/src/functions/web3/getSolanaPriorityFee.mjs +1 -0
- package/common/src/functions/web3/getTokenHolder.cjs +1 -0
- package/common/src/functions/web3/getTokenHolder.mjs +7 -0
- package/common/src/functions/web3/index.cjs +1 -0
- package/common/src/functions/web3/index.mjs +16 -0
- package/common/src/functions/web3/odosAPI.cjs +1 -1
- package/common/src/functions/web3/odosAPI.mjs +2 -0
- package/common/src/functions/web3/okxAPI.cjs +1 -1
- package/common/src/functions/web3/okxAPI.mjs +1 -1
- package/common/src/functions/web3/oneInchAPI.cjs +1 -1
- package/common/src/functions/web3/oneInchAPI.mjs +3 -0
- package/common/src/functions/web3/runContractFunction.cjs +1 -0
- package/common/src/functions/web3/runContractFunction.mjs +1 -0
- package/common/src/functions/web3/uniswapAPI.cjs +1 -1
- package/common/src/functions/web3/uniswapAPI.mjs +4 -1
- package/common/src/mutexes/mutex.cjs +1 -0
- package/common/src/mutexes/mutex.mjs +3 -0
- package/common/src/providers/TronProviderAdapter.cjs +1 -1
- package/common/src/providers/TronProviderAdapter.mjs +1 -0
- package/common/src/types/hinkal.types.cjs +1 -1
- package/common/src/types/hinkal.types.mjs +1 -1
- package/common/src/types/index.cjs +1 -0
- package/common/src/types/index.mjs +19 -0
- package/common/src/types/kyc.types.cjs +1 -1
- package/common/src/types/kyc.types.mjs +1 -1
- package/common/src/types/new-rewards.type.cjs +1 -1
- package/common/src/types/new-rewards.type.mjs +5 -1
- package/common/src/types/schedule.types.cjs +1 -0
- package/common/src/types/schedule.types.mjs +6 -0
- package/common/src/webworker/logError-D6lww9H-.js +2 -0
- package/common/src/webworker/package.json +1 -1
- package/common/src/webworker/snarkjsWorker/snarkjsWorkerNode.d.ts +0 -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/utxoWorker/utxoWorkerNode.d.ts +0 -1
- package/common/src/webworker/utxoWorkerNode.cjs +1 -1
- package/common/src/webworker/workerFactory.cjs +1 -1
- package/common/src/webworker/workerFactory.mjs +3 -4
- package/common/src/webworker/workerProxy-36ykh-KW.js +1 -0
- package/common/src/webworker/workerThreadsPatch.d.ts +1 -2
- 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/zkProofWorker/zkProofWorkerNode.d.ts +0 -1
- package/common/src/webworker/zkProofWorkerNode.cjs +1 -1
- package/functions/utils/getFeeStructure.cjs +1 -0
- package/functions/utils/index.cjs +1 -1
- package/index.cjs +1 -1
- package/index.mjs +1 -0
- package/package.json +1 -1
- package/services/Hinkal.cjs +1 -1
- package/services/Hinkal.mjs +1 -0
- package/types/balances.types.cjs +1 -0
- package/types/balances.types.mjs +2 -0
- package/types/external-action.types.cjs +1 -0
- package/types/external-action.types.mjs +2 -0
- package/types/index.cjs +1 -0
- package/types/index.mjs +4 -0
- package/common/src/webworker/logError-eAC3f213.js +0 -1
- package/common/src/webworker/workerProxy-zOnSaekD.js +0 -1
- package/common/src/webworker/workerThreadsPatch-ndTPmqlp.js +0 -1
- package/common/src/webworker/workerThreadsPatch.cjs +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`);require(`../../constants/protocol.constants.cjs`);const t=require(`../../functions/pre-transaction/solana.cjs`),n=require(`./hinkalCheckSolanaTokenRegistry.cjs`),r=require(`../../types/admin.types.cjs`),i=require(`../../error-handling/error-codes.constants.cjs`),a=require(`../../functions/web3/etherFunctions.cjs`),o=require(`../utxo/Utxo.cjs`),s=require(`../../functions/utils/solanaMint.utils.cjs`),c=require(`../../functions/utils/addresses.cjs`),l=require(`../../API/API.cjs`),u=require(`../../functions/utils/token-check.utils.cjs`),d=require(`../../functions/snarkjs/common.snarkjs.cjs`),f=require(`../../functions/pre-transaction/constructAdminData.cjs`),p=require(`../../error-handling/retrySolanaError.cjs`),m=require(`../../API/admin-calls.cjs`)
|
|
1
|
+
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`);require(`../../constants/protocol.constants.cjs`);const t=require(`../../functions/pre-transaction/solana.cjs`),n=require(`./hinkalCheckSolanaTokenRegistry.cjs`),r=require(`../../types/admin.types.cjs`),i=require(`../../error-handling/error-codes.constants.cjs`),a=require(`../../functions/web3/etherFunctions.cjs`),o=require(`../utxo/Utxo.cjs`),s=require(`../../functions/utils/solanaMint.utils.cjs`),c=require(`../../functions/utils/addresses.cjs`),l=require(`../../API/API.cjs`),u=require(`../../functions/utils/token-check.utils.cjs`),d=require(`../../functions/snarkjs/common.snarkjs.cjs`),f=require(`../../functions/pre-transaction/constructAdminData.cjs`),p=require(`../../error-handling/retrySolanaError.cjs`),m=require(`../../API/admin-calls.cjs`);require(`../../API/index.cjs`);const h=require(`../../functions/web3/signAndSendSerializedTransaction.cjs`);let g=require(`@coral-xyz/anchor`),_=require(`@solana/web3.js`);var v=async(r,i,a,o,c)=>{if(a.length===0)throw Error(`amounts must not be empty`);if(a.length!==o.length)throw Error(`amounts and stealthAddressStructures length mismatch`);if(a.some(e=>e<=0n))throw Error(`all amounts must be positive`);let d=u.validateAndGetChainId([i]),v=i.erc20TokenAddress,{hinkalIdl:y,hinkalAddress:b,originalDeployer:x}=e.networkRegistry[d].contractData;if(!y)throw Error(`No IDL configured for Solana program on this network`);if(!x)throw Error(`missing original deployer`);let S=f.constructAdminData(c,d,Array(a.length).fill(v),a,await r.getEthereumAddress()),C=r.getSolanaProgram(y),w=r.getSolanaPublicKey(),T=new _.PublicKey(x),E=new _.PublicKey(b),{mintPublicKey:D}=s.formatMintAddress(v),O=D.toString(),k=t.getStorageAccountPublicKey(E,T),A=t.getStorageVaultPublicKey(E,T),j=t.getMerkleAccountPublicKey(E,T),M=o.map(e=>t.buildAnchorStealthAddressStructure(e)),N=a.reduce((e,t)=>e+t,0n),P=await n.hinkalCheckSolanaTokenRegistry(C,new _.PublicKey(T),[v],[N]),F=a.map(e=>e.toString()),I=t.getTokenLimitStorageAccountPublicKey(C.programId,T,D),L=O===`11111111111111111111111111111111`?null:D,R=O===`11111111111111111111111111111111`?null:void 0;for(let e=0;e<10;e+=1){let t=e===9;try{if(P){let{serializedTransaction:e,blockhash:t,lastValidBlockHeight:n}=await l.API.generateMultiPaymentDepositLimitless({amounts:F,payer:w.toBase58(),ethereumAddress:await r.getEthereumAddressByChain(d),mint:v,stealthAddressStructures:M,chainId:d,createBlockedUtxos:!1}),i=await h.signAndSendSerializedTransaction(C.provider,e,t,n);return await m.emitTxPublicData(S),i}let e=await C.methods.multiPaymentDeposit(F.map(e=>new g.BN(e)),M,!1).accounts({mint:L,signer:w,signerAta:R,originalDeployer:T,storageAccount:k,storageVault:A,merkleAccount:j,tokenLimitStorage:I,storageVaultAta:R,accessTokenOwner:null}).rpc();return await m.emitTxPublicData(S),e}catch(e){if(p.shouldRetryForSolanaError(e)&&!t)continue;throw e}}return``},y=async(e,t,n)=>{let i=e.userKeys.getShieldedPrivateKey(),s=d.calcStealthAddressStructure(o.Utxo.findCorrectRandomization(a.randomBigInt(31),i),i);return v(e,n,[t],[s],r.AdminTransactionType.ProoflessDeposit)},b=async(e,t,n,a)=>{if(!c.isValidPrivateAddress(a))throw Error(i.transactionErrorCodes.RECIPIENT_FORMAT_INCORRECT);let o=c.constructStealthAddressStructure(a);return v(e,n,[t],[o],r.AdminTransactionType.PaymentLink)};exports.hinkalSolanaDeposit=y,exports.hinkalSolanaDepositForOther=b,exports.submitSolanaProoflessDeposit=v;
|
|
@@ -14,6 +14,7 @@ import { calcStealthAddressStructure as g } from "../../functions/snarkjs/common
|
|
|
14
14
|
import { constructAdminData as _ } from "../../functions/pre-transaction/constructAdminData.mjs";
|
|
15
15
|
import { shouldRetryForSolanaError as v } from "../../error-handling/retrySolanaError.mjs";
|
|
16
16
|
import { emitTxPublicData as y } from "../../API/admin-calls.mjs";
|
|
17
|
+
import "../../API/index.mjs";
|
|
17
18
|
import { signAndSendSerializedTransaction as b } from "../../functions/web3/signAndSendSerializedTransaction.mjs";
|
|
18
19
|
import { BN as x } from "@coral-xyz/anchor";
|
|
19
20
|
import { PublicKey as S } from "@solana/web3.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../functions/pre-transaction/solana.cjs`),r=require(`./hinkalCheckSolanaTokenRegistry.cjs`),i=require(`../../types/external-action.types.cjs`),a=require(`../../types/scheduled-transactions.types.cjs`)
|
|
1
|
+
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../functions/pre-transaction/solana.cjs`),r=require(`./hinkalCheckSolanaTokenRegistry.cjs`),i=require(`../../types/external-action.types.cjs`),a=require(`../../types/scheduled-transactions.types.cjs`);require(`../../types/index.cjs`);const o=require(`../../error-handling/error-codes.constants.cjs`),s=require(`../../functions/web3/etherFunctions.cjs`),c=require(`../../functions/utils/time.utils.cjs`),l=require(`../utxo/Utxo.cjs`),u=require(`../../functions/utils/solanaMint.utils.cjs`),d=require(`../../functions/utils/addresses.cjs`),f=require(`../../API/API.cjs`),p=require(`../../functions/utils/token-check.utils.cjs`),m=require(`../../functions/snarkjs/common.snarkjs.cjs`),h=require(`../../functions/utils/fees.utils.cjs`),g=require(`../../functions/pre-transaction/constructAdminData.cjs`),_=require(`../../functions/pre-transaction/sendV0Transaction.cjs`),v=require(`../../functions/pre-transaction/getFeeStructure.cjs`),y=require(`../../functions/pre-transaction/waitForDepositedUtxosInMerkleTree.cjs`),b=require(`../../functions/pre-transaction/buildCommitmentValidationData.cjs`);require(`../../functions/pre-transaction/index.cjs`);const x=require(`../../functions/utils/getUtxosFromReceiptSolana.cjs`),S=require(`../../functions/snarkjs/constructSolanaZkProof.cjs`),C=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`),w=require(`../../API/deposit-and-withdraw-status-calls.cjs`),T=require(`../../functions/web3/signAndSendSerializedTransaction.cjs`);require(`../../functions/web3/index.cjs`),require(`../../functions/index.cjs`);let E=require(`ethers`),D=require(`@coral-xyz/anchor`),O=require(`@solana/web3.js`);var k=async(t,i,o,c,d,p,g)=>{let v=o.erc20TokenAddress,y=c.map(e=>e+h.calculateTotalFee(e,p)),{hinkalIdl:b,hinkalAddress:S,originalDeployer:C}=e.networkRegistry[i].contractData;if(!b)throw Error(`No IDL configured for Solana program on this network`);if(!C)throw Error(`missing original deployer`);let E=t.userKeys.getShieldedPrivateKey(),k=t.getSolanaProgram(b),A=t.getSolanaPublicKey(),j=new O.PublicKey(C),M=new O.PublicKey(S),{mintPublicKey:N}=u.formatMintAddress(v),P=N.toString(),F=n.getStorageAccountPublicKey(M,j),I=n.getStorageVaultPublicKey(M,j),L=n.getMerkleAccountPublicKey(M,j),R=y.map(()=>n.buildAnchorStealthAddressStructure(m.calcStealthAddressStructure(l.Utxo.findCorrectRandomization(s.randomBigInt(31),E),E))),z=y.reduce((e,t)=>e+t,0n),B=await r.hinkalCheckSolanaTokenRegistry(k,new O.PublicKey(j),[v],[z]),V=y.map(e=>`${e}`),H=``,U=(await w.updateDepositAndWithdrawStatus({chainId:i,hashedEthereumAddress:g,phase:a.DepositAndWithdrawPhase.BEFORE_DEPOSIT})).id??void 0;if(B){let{serializedTransaction:e,blockhash:n,lastValidBlockHeight:r}=await f.API.generateMultiPaymentDepositLimitless({amounts:V,payer:t.getSolanaPublicKey().toBase58(),ethereumAddress:await t.getEthereumAddressByChain(i),mint:v,stealthAddressStructures:R,chainId:i,createBlockedUtxos:!0}),{wallet:a}=k.provider;if(!a)throw Error(`missing wallet`);H=await T.signAndSendSerializedTransaction(k.provider,e,n,r)}else{let e=n.getTokenLimitStorageAccountPublicKey(k.programId,j,N),t=P===`11111111111111111111111111111111`?null:N,r=P===`11111111111111111111111111111111`?null:void 0;H=await k.methods.multiPaymentDeposit(V.map(e=>new D.BN(e)),R,!0).accounts({mint:t,signer:A,signerAta:r,originalDeployer:j,storageAccount:F,storageVault:I,merkleAccount:L,tokenLimitStorage:e,storageVaultAta:r,accessTokenOwner:null}).rpc();let i=await k.provider.connection.getLatestBlockhash();await k.provider.connection.confirmTransaction({blockhash:i.blockhash,lastValidBlockHeight:i.lastValidBlockHeight,signature:H},`finalized`)}let W=await _.fetchSolanaTransaction(k.provider.connection,H,`finalized`);if(!W)throw Error(`Transaction missing`);await w.safeUpdateDepositAndWithdrawStatus({id:U,chainId:i,hashedEthereumAddress:g,phase:a.DepositAndWithdrawPhase.AFTER_DEPOSIT,depositTxHash:H});let{compressedAddress:G}=u.formatMintAddress(o.erc20TokenAddress),K=x.getOnChainUtxosFromReceiptSolana(W,k,t.userKeys,G),q=[],J=[...K];return d.forEach((e,t)=>{let n=y[t],r=J.find(e=>e.amount===n);if(!r)throw Error(`Could not find newly created UTXO with amount ${n} for recipient ${e}.`);q.push({recipientAddress:e,utxo:r});let i=J.indexOf(r);J.splice(i,1)}),{userDepositedUtxos:q,depositTxHash:H,statusId:U}},A=async(n,r,i,d,f,p,_,v,y,x,T,D)=>{let O=i.erc20TokenAddress;if(d.length===0)throw Error(`userDepositedUtxos must not be empty`);let{hinkalIdl:k,originalDeployer:A}=e.networkRegistry[r].contractData;if(!A||!k)throw Error(`missing data`);let j=n.getSolanaProgram(k),M=await n.getRandomRelay(r,!0);if(!M)throw Error(o.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let N=c.getCurrentTimeInSeconds().toString(),P=n.generateProofRemotely?5:1,F=[];for(let e=0;e<d.length;e+=P){let i=d.slice(e,e+P),a=await Promise.all(i.map(async({recipientAddress:e,utxo:i},a)=>{let{compressedAddress:o}=u.formatMintAddress(t.solanaNativeAddress),c=new l.Utxo({amount:0n,mintAddress:O,erc20TokenAddress:o,shieldedPrivateKey:n.userKeys.getShieldedPrivateKey(),timeStamp:N,tokenId:0}),d=[i,c],p=[c],v=l.Utxo.findCorrectRandomization(s.randomBigInt(31),n.userKeys.getShieldedPrivateKey()),y={tokenNumber:1,nullifierAmount:d.length,outputAmount:p.length},x=m.calcEncryptedOutputs([p])[0][0],C=Array.from(E.ethers.getBytes(x)),w=h.calculateTotalFee(_[a],f),D={feeToken:f.feeToken,flatFee:w,variableRate:0n},k=g.constructAdminData(T,r,[O],[_[a]],await n.getEthereumAddress()),[{proofAArr:P,proofBArr:F,proofCArr:I,publicInputsArr:L},R]=await Promise.all([S.constructSolanaZkProof(n.generateProofRemotely,A,n.merkleTreeHinkalByChain[r],n.merkleTreeAccessTokenByChain[r],n.userKeys,j,[O],[d],[p],v,D.flatFee,D.variableRate,e,M,y,[C],r),b.buildCommitmentValidationData(r,n.userKeys,[O],[d])]),z={recipient:e,mint:O===`11111111111111111111111111111111`?void 0:O};return{relayAddress:M,functionName:`transact`,chainId:r,recipientAmount:_[a].toString(),args:{proofAArr:P,proofBArr:F,proofCArr:I,publicInputsArr:L,encryptedOutputs:[C],relayerFee:D.flatFee.toString(),dimensions:y},accounts:z,adminData:k,commitmentValidationData:R}}));F.push(...a)}await w.safeUpdateDepositAndWithdrawStatus({id:v,chainId:r,hashedEthereumAddress:p,phase:a.DepositAndWithdrawPhase.BEFORE_SCHEDULE_WITHDRAW});let I=await C.solanaTransactCallRelayerBatch(r,F,p,y,x,D);return await w.safeUpdateDepositAndWithdrawStatus({id:v,chainId:r,hashedEthereumAddress:p,phase:a.DepositAndWithdrawPhase.AFTER_SCHEDULE_WITHDRAW,scheduleId:I}),I},j=async(e,t,n,r,a,o,s,c,l)=>{let u=p.validateAndGetChainId([t]),f=t.erc20TokenAddress,m=d.hashEthereumAddress(await e.getEthereumAddressByChain(u)),h=l?d.hashString(l):void 0,g=o??await v.getFeeStructure(u,f,[f],i.ExternalActionId.Transact,[],5n),{userDepositedUtxos:_,depositTxHash:b,statusId:x}=await k(e,u,t,n,r,g,m);return await y.waitForDepositedUtxosInMerkleTree(e,u,_),await A(e,u,t,_,g,m,n,x,a,s,c,h),b};exports.hinkalSolanaDepositAndWithdraw=j;
|
|
@@ -4,6 +4,7 @@ import { buildAnchorStealthAddressStructure as n, getMerkleAccountPublicKey as r
|
|
|
4
4
|
import { hinkalCheckSolanaTokenRegistry as s } from "./hinkalCheckSolanaTokenRegistry.mjs";
|
|
5
5
|
import { ExternalActionId as c } from "../../types/external-action.types.mjs";
|
|
6
6
|
import { DepositAndWithdrawPhase as l } from "../../types/scheduled-transactions.types.mjs";
|
|
7
|
+
import "../../types/index.mjs";
|
|
7
8
|
import { transactionErrorCodes as u } from "../../error-handling/error-codes.constants.mjs";
|
|
8
9
|
import { randomBigInt as d } from "../../functions/web3/etherFunctions.mjs";
|
|
9
10
|
import { getCurrentTimeInSeconds as f } from "../../functions/utils/time.utils.mjs";
|
|
@@ -19,11 +20,14 @@ import { fetchSolanaTransaction as C } from "../../functions/pre-transaction/sen
|
|
|
19
20
|
import { getFeeStructure as w } from "../../functions/pre-transaction/getFeeStructure.mjs";
|
|
20
21
|
import { waitForDepositedUtxosInMerkleTree as T } from "../../functions/pre-transaction/waitForDepositedUtxosInMerkleTree.mjs";
|
|
21
22
|
import { buildCommitmentValidationData as E } from "../../functions/pre-transaction/buildCommitmentValidationData.mjs";
|
|
23
|
+
import "../../functions/pre-transaction/index.mjs";
|
|
22
24
|
import { getOnChainUtxosFromReceiptSolana as D } from "../../functions/utils/getUtxosFromReceiptSolana.mjs";
|
|
23
25
|
import { constructSolanaZkProof as O } from "../../functions/snarkjs/constructSolanaZkProof.mjs";
|
|
24
26
|
import { solanaTransactCallRelayerBatch as k } from "../../functions/web3/functionCalls/transactCallRelayer.mjs";
|
|
25
27
|
import { safeUpdateDepositAndWithdrawStatus as A, updateDepositAndWithdrawStatus as j } from "../../API/deposit-and-withdraw-status-calls.mjs";
|
|
26
28
|
import { signAndSendSerializedTransaction as M } from "../../functions/web3/signAndSendSerializedTransaction.mjs";
|
|
29
|
+
import "../../functions/web3/index.mjs";
|
|
30
|
+
import "../../functions/index.mjs";
|
|
27
31
|
import { ethers as N } from "ethers";
|
|
28
32
|
import { BN as P } from "@coral-xyz/anchor";
|
|
29
33
|
import { PublicKey as F } from "@solana/web3.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../types/external-action.types.cjs`),n=require(`../../types/admin.types.cjs`)
|
|
1
|
+
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../types/external-action.types.cjs`),n=require(`../../types/admin.types.cjs`);require(`../../types/index.cjs`);const r=require(`../../error-handling/error-codes.constants.cjs`),i=require(`../../functions/utils/token-check.utils.cjs`),a=require(`../../functions/utils/create-provider.cjs`),o=require(`../../functions/pre-transaction/constructAdminData.cjs`),s=require(`../AccountActions/AccountActions.cjs`),c=require(`../../functions/pre-transaction/sendV0Transaction.cjs`),l=require(`../../functions/pre-transaction/getFeeStructure.cjs`);require(`../../constants/index.cjs`);const u=require(`../../API/admin-calls.cjs`);require(`../AccountActions/index.cjs`);const d=require(`../../functions/pre-transaction/solanaTransfer.utils.cjs`);let f=require(`@solana/web3.js`);var p=async(e,t)=>{let{addressLookupTableAccount:n,instructionLists:r}=JSON.parse(t).data,i=await Promise.all(n.map(async t=>{let n=await e.getAddressLookupTable(new f.PublicKey(t));if(!n.value)throw Error(`Failed to fetch lookup table: ${t}`);return n.value}));if(r.length===0)throw Error(`No instructions found`);return{instructions:r.map(e=>new f.TransactionInstruction({keys:e.accounts.map(e=>({pubkey:new f.PublicKey(e.pubkey),isSigner:e.isSigner,isWritable:e.isWritable})),programId:new f.PublicKey(e.programId),data:Buffer.from(e.data,`base64`)})),lookupTableAccounts:i}},m=async(e,t)=>{let n=f.VersionedTransaction.deserialize(Buffer.from(t,`base64`)),r=await Promise.all(n.message.addressTableLookups.map(async({accountKey:t})=>{let n=await e.getAddressLookupTable(t);if(!n.value)throw Error(`Failed to fetch lookup table: ${t.toBase58()}`);return n.value})),{instructions:i}=f.TransactionMessage.decompile(n.message,{addressLookupTableAccounts:r});return{instructions:i,lookupTableAccounts:r}},h=async(n,r,i,o)=>{let c=s.AccountActions.getAddressFromSubAccount(n,i);if(!c)throw Error(`Public account address is not available`);let{fetchRpcUrl:l}=e.networkRegistry[n];if(!l)throw Error(`RPC URL not found for the specified chain ID`);let u=a.createCustomSolanaConnection(l),d=new f.PublicKey(c),{instructions:h,lookupTableAccounts:g}=o===t.ExternalActionId.Lifi?await m(u,r):await p(u,r);return{connection:u,walletPublicKey:d,instructions:h,lookupTableAccounts:g}},g=async(e,a,s,p,m,g,_,v,y)=>{let b=i.validateAndGetChainId(a),x=g===t.ExternalActionId.Lifi,[{connection:S,walletPublicKey:C,instructions:w,lookupTableAccounts:T},E,D]=await Promise.all([h(b,p,m,g),x?Promise.resolve(null):e.getRandomRelay(b),e.getEthereumAddressByChain(b)]),O=w;if(!x){if(!E)throw Error(r.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let e=a[1],n=s[1]*(v??await l.getFeeStructure(b,_,a.map(e=>e.erc20TokenAddress),t.ExternalActionId.Emporium)).variableRate/10000n,{instructions:i}=await d.buildSolanaTransferInstructions(S,C,new f.PublicKey(E),e,n);O=[...w,...i]}let k=await c.sendProxyV0Transaction({connection:S,chainId:b,subAccount:m,payerPublicKey:C,instructions:O,lookupTableAccounts:T}),A=x?n.AdminTransactionType.PublicBridgeSwap:n.AdminTransactionType.PublicSwap;return u.emitTxPublicData(o.constructAdminData(y??A,b,a.map(e=>e.erc20TokenAddress),s,D,a)),k};exports.hinkalSolanaProxySwap=g;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { networkRegistry as e } from "../../constants/chains.constants.mjs";
|
|
2
2
|
import { ExternalActionId as t } from "../../types/external-action.types.mjs";
|
|
3
3
|
import { AdminTransactionType as n } from "../../types/admin.types.mjs";
|
|
4
|
+
import "../../types/index.mjs";
|
|
4
5
|
import { transactionErrorCodes as r } from "../../error-handling/error-codes.constants.mjs";
|
|
5
6
|
import { validateAndGetChainId as i } from "../../functions/utils/token-check.utils.mjs";
|
|
6
7
|
import { createCustomSolanaConnection as a } from "../../functions/utils/create-provider.mjs";
|
|
@@ -8,7 +9,9 @@ import { constructAdminData as o } from "../../functions/pre-transaction/constru
|
|
|
8
9
|
import { AccountActions as s } from "../AccountActions/AccountActions.mjs";
|
|
9
10
|
import { sendProxyV0Transaction as c } from "../../functions/pre-transaction/sendV0Transaction.mjs";
|
|
10
11
|
import { getFeeStructure as l } from "../../functions/pre-transaction/getFeeStructure.mjs";
|
|
12
|
+
import "../../constants/index.mjs";
|
|
11
13
|
import { emitTxPublicData as u } from "../../API/admin-calls.mjs";
|
|
14
|
+
import "../AccountActions/index.mjs";
|
|
12
15
|
import { buildSolanaTransferInstructions as d } from "../../functions/pre-transaction/solanaTransfer.utils.mjs";
|
|
13
16
|
import { PublicKey as f, TransactionInstruction as p, TransactionMessage as m, VersionedTransaction as h } from "@solana/web3.js";
|
|
14
17
|
//#region libs/shared/common/src/data-structures/Hinkal/hinkalSolanaProxySwap.ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../functions/pre-transaction/solana.cjs`),r=require(`../../types/external-action.types.cjs`),i=require(`../../types/admin.types.cjs`),a=require(`../../types/cache.types.cjs`)
|
|
1
|
+
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../functions/pre-transaction/solana.cjs`),r=require(`../../types/external-action.types.cjs`),i=require(`../../types/admin.types.cjs`),a=require(`../../types/cache.types.cjs`);require(`../../types/index.cjs`);const o=require(`../../error-handling/error-codes.constants.cjs`),s=require(`../../functions/web3/etherFunctions.cjs`),c=require(`../../functions/utils/time.utils.cjs`),ee=require(`../utxo/Utxo.cjs`),te=require(`../../functions/utils/token-check.utils.cjs`),l=require(`../../functions/web3/events/getShieldedBalance.cjs`),u=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),ne=require(`../../functions/snarkjs/common.snarkjs.cjs`),d=require(`../../functions/pre-transaction/constructAdminData.cjs`),f=require(`../../functions/pre-transaction/convert-okx-instructions.cjs`),p=require(`../../functions/pre-transaction/ensureAmountChanges.cjs`),m=require(`../../functions/pre-transaction/getFeeStructure.cjs`),h=require(`../../functions/pre-transaction/shouldPatchAccessTokenMerkleTree.cjs`),g=require(`../../functions/pre-transaction/buildCommitmentValidationData.cjs`),_=require(`../../functions/snarkjs/constructSolanaZkProof.cjs`),v=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`);let re=require(`ethers`),y=require(`@solana/web3.js`);var b=async(e,t,n,r)=>{let i=[...await l.addPaddingToUtxos(e,t,n,r,6)],a=c.getCurrentTimeInSeconds().toString(),o=[];for(let t=0;t<n.length;t+=1){let{outputUtxos:n}=u.outputUtxoProcessing(e.userKeys,i[t],r[t],a);o.push([n[0]])}return{inputUtxosArray:i,outputUtxosArray:o}},x=async(c,l,u,x,ie,S,ae,oe)=>{let C=te.validateAndGetChainId(l),w=new y.PublicKey(t.solanaNativeAddress),{hinkalAddress:se,originalDeployer:T,hinkalIdl:E}=e.networkRegistry[C].contractData;if(!T||!E)throw Error(`No IDL configured for Solana program on this network`);let D=new y.PublicKey(T),O=new y.PublicKey(se),k=l.map(e=>e.erc20TokenAddress),{userKeys:A,merkleTreeAccessTokenByChain:j,merkleTreeHinkalByChain:M}=c,N=c.getSolanaProgram(E),P=oe??await m.getFeeStructure(C,ae,k,r.ExternalActionId.Transact),F=u[1],I=Number(c.cacheDevice.get(a.StorageKeys.SLIPPAGE_PERCENTAGE)??0),L=l[1],R=s.getAmountInToken(L,F),z=Number(R)*I/100;u[1]-=s.getAmountInWei(L,z.toFixed(L.decimals));let B=F*BigInt(P.variableRate??0)/10000n+P.flatFee;if(u[1]-=B,u[1]<0)throw Error(o.transactionErrorCodes.LOW_OUTPUT_AMOUNT);let V=P.variableRate.toString(),[{patchAccessTokenMerkleTree:H,kycRequired:U,hasAccessToken:W},G,K,{inputUtxosArray:q,outputUtxosArray:J}]=await Promise.all([h.shouldPatchAccessTokenMerkleTree(c,C,k,u),c.getRandomRelay(C,!0),c.getEthereumAddressByChain(C),b(c,C,k,u)]);if(!G)throw Error(o.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let ce=c.userKeys.getShieldedPrivateKey(),le=ee.Utxo.findCorrectRandomization(s.randomBigInt(31),ce),Y={tokenNumber:2,nullifierAmount:q[0].length,outputAmount:1},X=ne.calcEncryptedOutputs(J).map(e=>[...re.ethers.getBytes(e[0])]),Z=n.getSwapperAccountPublicKeyFromSalt(O,D,x),{remainingAccounts:Q,hinkalInstructions:$}=f.convertOKXToHinkalInstructions(ie,Z);p.ensureAmountChanges(q,J,u);let[{proofAArr:ue,proofBArr:de,proofCArr:fe,publicInputsArr:pe},me]=await Promise.all([_.constructSolanaZkProof(c.generateProofRemotely,T,M[C],j[C],A,N,k,q,J,le,P.flatFee,P.variableRate,w.toString(),G,Y,X,C,H,x,$,Q),g.buildCommitmentValidationData(C,A,k,q)]),he=n.getStorageAccountPublicKey(O,D),ge=n.getStorageVaultPublicKey(O,D),_e=l[0].erc20TokenAddress===`11111111111111111111111111111111`?null:new y.PublicKey(l[0].erc20TokenAddress),ve=l[1].erc20TokenAddress===`11111111111111111111111111111111`?null:new y.PublicKey(l[1].erc20TokenAddress),ye={recipient:w.toString(),storageAccount:he.toString(),storageVault:ge.toString(),swapperAccount:Z.toString(),mintFrom:_e?.toString()??null,mintTo:ve?.toString()??null,remainingAccounts:Q.map(e=>({pubkey:e.pubkey.toString(),isSigner:e.isSigner,isWritable:e.isWritable})),addressLookupTableAccount:S},be={encryptedOutputs:X,proofAArr:ue,proofBArr:de,proofCArr:fe,publicInputsArr:pe,relayerFee:P.flatFee.toString(),variableRate:V,dimensions:Y,hinkalInstructions:$.map(e=>({accountIndexes:[...e.accountIndexes],data:[...e.data],programIndex:e.programIndex}))},xe=d.constructAdminData(i.AdminTransactionType.PrivateSwap,C,k,u,K,l);return v.solanaTransactCallRelayer({chainId:C,relayAddress:G,functionName:`swap`,args:be,accounts:ye,commitmentValidationData:me,solanaAccessTokenData:!W&&U?{ethereumAddress:K,accessKey:A.getAccessKey()}:void 0,adminData:xe})};exports.hinkalSolanaSwap=x;
|
|
@@ -4,6 +4,7 @@ import { getStorageAccountPublicKey as n, getStorageVaultPublicKey as r, getSwap
|
|
|
4
4
|
import { ExternalActionId as a } from "../../types/external-action.types.mjs";
|
|
5
5
|
import { AdminTransactionType as o } from "../../types/admin.types.mjs";
|
|
6
6
|
import { StorageKeys as s } from "../../types/cache.types.mjs";
|
|
7
|
+
import "../../types/index.mjs";
|
|
7
8
|
import { transactionErrorCodes as c } from "../../error-handling/error-codes.constants.mjs";
|
|
8
9
|
import { getAmountInToken as l, getAmountInWei as ee, randomBigInt as te } from "../../functions/web3/etherFunctions.mjs";
|
|
9
10
|
import { getCurrentTimeInSeconds as u } from "../../functions/utils/time.utils.mjs";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../types/external-action.types.cjs`)
|
|
1
|
+
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../types/external-action.types.cjs`);require(`../../types/index.cjs`);const r=require(`../../error-handling/error-codes.constants.cjs`),i=require(`../../functions/web3/etherFunctions.cjs`),a=require(`../../functions/utils/time.utils.cjs`),o=require(`../utxo/Utxo.cjs`),s=require(`../../functions/utils/addresses.cjs`),c=require(`../../functions/utils/token-check.utils.cjs`),l=require(`../../functions/web3/events/getShieldedBalance.cjs`),u=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),d=require(`../../functions/snarkjs/common.snarkjs.cjs`),f=require(`../../functions/utils/fees.utils.cjs`),p=require(`../../functions/pre-transaction/constructAdminData.cjs`),m=require(`../../functions/pre-transaction/ensureAmountChanges.cjs`),h=require(`../../functions/pre-transaction/getFeeStructure.cjs`),g=require(`../../functions/pre-transaction/buildCommitmentValidationData.cjs`);require(`../../functions/pre-transaction/index.cjs`);const _=require(`../../functions/snarkjs/constructSolanaZkProof.cjs`),v=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`);let y=require(`ethers`);var b=async(e,t,n,r,i,s)=>{let c=(await l.addPaddingToUtxos(e,t,n,r,6))[0],d=a.getCurrentTimeInSeconds().toString(),{outputUtxos:f}=u.outputUtxoProcessing(e.userKeys,c,r[0],d),[p,m,h]=i.split(`,`);return{inputUtxos:c,senderOutputUtxos:f,recipientUtxo:new o.Utxo({amount:s,erc20TokenAddress:c[0].erc20TokenAddress,mintAddress:c[0].mintAddress,timeStamp:d,randomization:BigInt(p),stealthAddress:m,encryptionKey:h})}},x=async(a,l,u,v,x,S,C)=>{if(!s.isValidPrivateAddress(v))throw Error(r.transactionErrorCodes.RECIPIENT_FORMAT_INCORRECT);let w=c.validateAndGetChainId(l),T=[...u],{originalDeployer:E,hinkalIdl:D}=e.networkRegistry[w].contractData;if(!E||!D)throw Error(`missing data`);let{userKeys:O,merkleTreeAccessTokenByChain:k,merkleTreeHinkalByChain:A}=a,j=l.map(e=>e.erc20TokenAddress);if(j.length>1)throw Error(`Solana Transfer: Only one mint address is supported`);let M=S??await h.getFeeStructure(w,x,j,n.ExternalActionId.Transact,[],5n);M.variableRate||=t.HINKAL_PRIVATE_SEND_VARIABLE_RATE;let N=f.calculateTotalFee(-T[0],M),P=-T[0];T[0]-=N;let[F,I,{inputUtxos:L,senderOutputUtxos:R,recipientUtxo:z}]=await Promise.all([a.getRandomRelay(w,!0),a.getEthereumAddressByChain(w),b(a,w,j,T,v,P)]);if(!F)throw Error(r.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let B=R[0],V=o.Utxo.findCorrectRandomization(i.randomBigInt(31),a.userKeys.getShieldedPrivateKey()),H={tokenNumber:j.length,nullifierAmount:L.length,outputAmount:2},U=a.getSolanaProgram(D),W=d.calcEncryptedOutputs([[B,z]])[0].map(e=>Array.from(y.ethers.getBytes(e)));m.ensureAmountChanges([L],[R],T);let[{proofAArr:G,proofBArr:K,proofCArr:q,publicInputsArr:J},Y]=await Promise.all([_.constructSolanaZkProof(a.generateProofRemotely,E,A[w],k[w],O,U,[j[0]],[L],[[B,z]],V,N,0n,t.solanaNativeAddress,F,H,W,w),g.buildCommitmentValidationData(w,O,j,[L])]),X={recipient:F,mint:j[0]===`11111111111111111111111111111111`?void 0:j[0]};return{chainId:w,relay:F,args:{proofAArr:G,proofBArr:K,proofCArr:q,publicInputsArr:J,encryptedOutputs:W,relayerFee:N.toString(),dimensions:H},accounts:X,adminData:p.constructAdminData(C,w,j,T,I),commitmentValidationData:Y,recipientUtxo:z}},S=async(e,t,n,r,i,a,o,s=!1)=>{if(s)throw Error(`onlyGasEstimate is not supported for Solana transfer`);let c=await x(e,t,n,r,i,a,o);return v.solanaTransactCallRelayer({chainId:c.chainId,relayAddress:c.relay,functionName:`transfer`,args:c.args,accounts:c.accounts,adminData:c.adminData,commitmentValidationData:c.commitmentValidationData})};exports.hinkalSolanaTransfer=S;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { networkRegistry as e } from "../../constants/chains.constants.mjs";
|
|
2
2
|
import { HINKAL_PRIVATE_SEND_VARIABLE_RATE as t, solanaNativeAddress as n } from "../../constants/protocol.constants.mjs";
|
|
3
3
|
import { ExternalActionId as r } from "../../types/external-action.types.mjs";
|
|
4
|
+
import "../../types/index.mjs";
|
|
4
5
|
import { transactionErrorCodes as i } from "../../error-handling/error-codes.constants.mjs";
|
|
5
6
|
import { randomBigInt as a } from "../../functions/web3/etherFunctions.mjs";
|
|
6
7
|
import { getCurrentTimeInSeconds as o } from "../../functions/utils/time.utils.mjs";
|
|
@@ -15,6 +16,7 @@ import { constructAdminData as m } from "../../functions/pre-transaction/constru
|
|
|
15
16
|
import { ensureAmountChanges as h } from "../../functions/pre-transaction/ensureAmountChanges.mjs";
|
|
16
17
|
import { getFeeStructure as g } from "../../functions/pre-transaction/getFeeStructure.mjs";
|
|
17
18
|
import { buildCommitmentValidationData as _ } from "../../functions/pre-transaction/buildCommitmentValidationData.mjs";
|
|
19
|
+
import "../../functions/pre-transaction/index.mjs";
|
|
18
20
|
import { constructSolanaZkProof as v } from "../../functions/snarkjs/constructSolanaZkProof.mjs";
|
|
19
21
|
import { solanaTransactCallRelayer as y } from "../../functions/web3/functionCalls/transactCallRelayer.mjs";
|
|
20
22
|
import { ethers as b } from "ethers";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`);require(`../../constants/protocol.constants.cjs`);const t=require(`../../types/external-action.types.cjs`)
|
|
1
|
+
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`);require(`../../constants/protocol.constants.cjs`);const t=require(`../../types/external-action.types.cjs`);require(`../../types/index.cjs`);const n=require(`../../error-handling/error-codes.constants.cjs`),r=require(`../../functions/web3/etherFunctions.cjs`),i=require(`../../functions/utils/time.utils.cjs`),a=require(`../utxo/Utxo.cjs`),o=require(`../../functions/utils/token-check.utils.cjs`),s=require(`../../functions/web3/events/getShieldedBalance.cjs`),c=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),l=require(`../../functions/snarkjs/common.snarkjs.cjs`),u=require(`../../functions/utils/fees.utils.cjs`),d=require(`../../functions/pre-transaction/constructAdminData.cjs`),f=require(`../../functions/pre-transaction/ensureAmountChanges.cjs`),p=require(`../../functions/pre-transaction/getFeeStructure.cjs`),m=require(`../../functions/pre-transaction/shouldPatchAccessTokenMerkleTree.cjs`),h=require(`../../functions/pre-transaction/buildCommitmentValidationData.cjs`);require(`../../functions/pre-transaction/index.cjs`),require(`../../constants/index.cjs`);const g=require(`../../functions/snarkjs/constructSolanaZkProof.cjs`),_=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`);let v=require(`ethers`);var y=async(e,t,n,r)=>{let a=[...await s.addPaddingToUtxos(e,t,n,r,6)][0],o=i.getCurrentTimeInSeconds().toString(),{outputUtxos:l}=c.outputUtxoProcessing(e.userKeys,a,r[0],o);return{inputUtxos:a,outputUtxos:l}},b=async(i,s,c,b,x,S,C)=>{let w=o.validateAndGetChainId(s),T=s.map(e=>e.erc20TokenAddress),{originalDeployer:E,hinkalIdl:D}=e.networkRegistry[w].contractData;if(!E||!D)throw Error(`missing data`);let{userKeys:O,merkleTreeAccessTokenByChain:k,merkleTreeHinkalByChain:A}=i,j=S??await p.getFeeStructure(w,x,T,t.ExternalActionId.Transact),M=u.calculateTotalFee(-c[0],j),N={feeToken:j.feeToken,flatFee:M,variableRate:0n};c[0]-=N.flatFee;let[{patchAccessTokenMerkleTree:P,kycRequired:F,hasAccessToken:I},L,R,{inputUtxos:z,outputUtxos:B}]=await Promise.all([m.shouldPatchAccessTokenMerkleTree(i,w,T,c),i.getEthereumAddressByChain(w),i.getRandomRelay(w,!0),y(i,w,T,c)]);if(!R)throw Error(n.transactionErrorCodes.RELAYER_NOT_AVAILABLE);if(T.length>1)throw Error(`Solana Withdraw: Only one mint address is supported`);let V=a.Utxo.findCorrectRandomization(r.randomBigInt(31),i.userKeys.getShieldedPrivateKey()),H={tokenNumber:T.length,nullifierAmount:z.length,outputAmount:B.length},U=i.getSolanaProgram(D),W=l.calcEncryptedOutputs([B])[0][0],G=Array.from(v.ethers.getBytes(W));f.ensureAmountChanges([z],[B],c);let[{proofAArr:K,proofBArr:q,proofCArr:J,publicInputsArr:Y},X]=await Promise.all([g.constructSolanaZkProof(i.generateProofRemotely,E,A[w],k[w],O,U,[T[0]],[z],[B],V,N.flatFee,N.variableRate,b,R,H,[G],w,P),h.buildCommitmentValidationData(w,O,T,[z])]),Z={recipient:b,mint:T[0]===`11111111111111111111111111111111`?void 0:T[0]},Q={proofAArr:K,proofBArr:q,proofCArr:J,publicInputsArr:Y,encryptedOutputs:[G],relayerFee:N.flatFee.toString(),dimensions:H},$=d.constructAdminData(C,w,T,c,await i.getEthereumAddress());return _.solanaTransactCallRelayer({chainId:w,relayAddress:R,functionName:`transact`,args:Q,accounts:Z,commitmentValidationData:X,solanaAccessTokenData:!I&&F?{ethereumAddress:L,accessKey:O.getAccessKey()}:void 0,adminData:$})};exports.hinkalSolanaWithdraw=b;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { networkRegistry as e } from "../../constants/chains.constants.mjs";
|
|
2
2
|
import "../../constants/protocol.constants.mjs";
|
|
3
3
|
import { ExternalActionId as t } from "../../types/external-action.types.mjs";
|
|
4
|
+
import "../../types/index.mjs";
|
|
4
5
|
import { transactionErrorCodes as n } from "../../error-handling/error-codes.constants.mjs";
|
|
5
6
|
import { randomBigInt as r } from "../../functions/web3/etherFunctions.mjs";
|
|
6
7
|
import { getCurrentTimeInSeconds as i } from "../../functions/utils/time.utils.mjs";
|
|
@@ -15,6 +16,8 @@ import { ensureAmountChanges as f } from "../../functions/pre-transaction/ensure
|
|
|
15
16
|
import { getFeeStructure as p } from "../../functions/pre-transaction/getFeeStructure.mjs";
|
|
16
17
|
import { shouldPatchAccessTokenMerkleTree as m } from "../../functions/pre-transaction/shouldPatchAccessTokenMerkleTree.mjs";
|
|
17
18
|
import { buildCommitmentValidationData as h } from "../../functions/pre-transaction/buildCommitmentValidationData.mjs";
|
|
19
|
+
import "../../functions/pre-transaction/index.mjs";
|
|
20
|
+
import "../../constants/index.mjs";
|
|
18
21
|
import { constructSolanaZkProof as g } from "../../functions/snarkjs/constructSolanaZkProof.mjs";
|
|
19
22
|
import { solanaTransactCallRelayer as _ } from "../../functions/web3/functionCalls/transactCallRelayer.mjs";
|
|
20
23
|
import { ethers as v } from "ethers";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../constants/protocol.constants.cjs`);const e=require(`../../types/ethereum-network.types.cjs`),t=require(`../../error-handling/error-codes.constants.cjs`),n=require(`../../functions/utils/time.utils.cjs`),r=require(`../../functions/utils/token-check.utils.cjs`),i=require(`../../functions/web3/events/getShieldedBalance.cjs`),a=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),o=require(`../../functions/pre-transaction/constructAdminData.cjs`),s=require(`../../functions/pre-transaction/getFeeStructure.cjs`),c=require(`../../functions/pre-transaction/getKycAndSignatureData.cjs`),l=require(`../../functions/pre-transaction/buildCommitmentValidationData.cjs`)
|
|
1
|
+
require(`../../constants/protocol.constants.cjs`);const e=require(`../../types/ethereum-network.types.cjs`),t=require(`../../error-handling/error-codes.constants.cjs`),n=require(`../../functions/utils/time.utils.cjs`),r=require(`../../functions/utils/token-check.utils.cjs`),i=require(`../../functions/web3/events/getShieldedBalance.cjs`),a=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),o=require(`../../functions/pre-transaction/constructAdminData.cjs`),s=require(`../../functions/pre-transaction/getFeeStructure.cjs`),c=require(`../../functions/pre-transaction/getKycAndSignatureData.cjs`),l=require(`../../functions/pre-transaction/buildCommitmentValidationData.cjs`);require(`../../functions/pre-transaction/index.cjs`);const u=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),d=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`),f=require(`../../functions/pre-transaction/getExternalSwapAddress.cjs`),p=require(`../../functions/pre-transaction/merge-with-fee-structure.cjs`);var m=async(e,t,r,o)=>{let s=[...await i.addPaddingToUtxos(e,t,r,o)],c=[],l=n.getCurrentTimeInSeconds().toString();for(let t=0;t<r.length;t+=1){let{outputUtxos:n}=a.outputUtxoProcessing(e.userKeys,s[t],o[t],l);c.push(n)}return{inputUtxosArray:s,outputUtxosArray:c}},h=async(n,i,a,h,g,_,v,y)=>{let b=r.validateAndGetChainId(i),x=i.map(e=>e.erc20TokenAddress),S=await n.getEthereumAddressByChain(b),C=v??await s.getFeeStructure(b,_,x,h,void 0,35n);p.mergeWithFeeStructure(b,x,a,C);let w={externalActionId:h,externalAddress:f.getExternalSwapAddress(b,h),externalActionMetadata:g},[T,{patchAccessTokenMerkleTree:E,signatureData:D},{inputUtxosArray:O,outputUtxosArray:k}]=await Promise.all([n.getRandomRelay(b,!0),c.getKycAndSignatureData(n,b,x,a,S),m(n,b,x,a)]);if(!T)throw Error(t.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let A=`swapperM${a.length.toString()}x${O[0].length}x1`,j=[!1,!0,!1].slice(0,a.length),[{zkCallData:M,circomData:N,dimData:P},F]=await Promise.all([u.constructZkProof(n.merkleTreeHinkalByChain[b],n.merkleTreeAccessTokenByChain[b],O,k,n.userKeys,A,w.externalActionId,w.externalAddress,w.externalActionMetadata,n.generateProofRemotely,T,b,j,void 0,void 0,E,void 0,C,n.getContractWithFetcher(b,e.ContractType.HinkalHelperContract),D),l.buildCommitmentValidationData(b,n.userKeys,x,O)]);return await d.transactCallRelayer(b,M,P,N,F,void 0,void 0,o.constructAdminData(y,b,x,a,S,i))};exports.hinkalSwap=h;
|
|
@@ -9,6 +9,7 @@ import { constructAdminData as o } from "../../functions/pre-transaction/constru
|
|
|
9
9
|
import { getFeeStructure as s } from "../../functions/pre-transaction/getFeeStructure.mjs";
|
|
10
10
|
import { getKycAndSignatureData as c } from "../../functions/pre-transaction/getKycAndSignatureData.mjs";
|
|
11
11
|
import { buildCommitmentValidationData as l } from "../../functions/pre-transaction/buildCommitmentValidationData.mjs";
|
|
12
|
+
import "../../functions/pre-transaction/index.mjs";
|
|
12
13
|
import { constructZkProof as u } from "../../functions/snarkjs/constructGeneralZkProof.mjs";
|
|
13
14
|
import { transactCallRelayer as d } from "../../functions/web3/functionCalls/transactCallRelayer.mjs";
|
|
14
15
|
import { getExternalSwapAddress as f } from "../../functions/pre-transaction/getExternalSwapAddress.mjs";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../types/ethereum-network.types.cjs`),r=require(`../../types/external-action.types.cjs`)
|
|
1
|
+
const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../types/ethereum-network.types.cjs`),r=require(`../../types/external-action.types.cjs`);require(`../../types/index.cjs`);const i=require(`../../error-handling/error-codes.constants.cjs`),a=require(`../../functions/utils/time.utils.cjs`),o=require(`../../functions/utils/addresses.cjs`),s=require(`../../functions/utils/tron.utils.cjs`),c=require(`../../functions/utils/token-check.utils.cjs`),l=require(`../../functions/web3/events/getShieldedBalance.cjs`),u=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),d=require(`../../functions/utils/fees.utils.cjs`),f=require(`../../functions/pre-transaction/getVolatileTransferAmount.cjs`),p=require(`../../functions/pre-transaction/constructAdminData.cjs`),m=require(`../../functions/pre-transaction/getFeeStructure.cjs`),h=require(`../../functions/pre-transaction/getKycAndSignatureData.cjs`),g=require(`../../functions/pre-transaction/buildCommitmentValidationData.cjs`);require(`../../functions/pre-transaction/index.cjs`);const _=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),v=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`),y=require(`../../functions/pre-transaction/merge-with-fee-structure.cjs`);var b=async(e,t,n,r,i,o)=>{let s=[...await l.addPaddingToUtxos(e,t,n,r)],c=[],d=a.getCurrentTimeInSeconds().toString();for(let t=0;t<n.length;t+=1){let{outputUtxos:n}=u.outputUtxoProcessing(e.userKeys,s[t],r[t],d,void 0,!0,i,t===0?o:0n);c.push(n)}return{inputUtxosArray:s,outputUtxosArray:c}},x=async(a,l,u,x,S,C,w)=>{let T=c.validateAndGetChainId(l),E=e.isTronLike(T);if(!o.isValidPrivateAddress(x))throw Error(i.transactionErrorCodes.RECIPIENT_FORMAT_INCORRECT);let D=s.addressToHexFormat(await a.getEthereumAddressByChain(T)),O=l.map(e=>e.erc20TokenAddress),k=await f.modifyVolatileTokenAmountChanges(T,l,u),A=C??await m.getFeeStructure(T,S,O,r.ExternalActionId.Transact,[],5n);A.variableRate||=t.HINKAL_PRIVATE_SEND_VARIABLE_RATE;let j=d.calculateTotalFee(-k[0],A),M=-k[0],N={feeToken:A.feeToken,flatFee:j,variableRate:0n};if(y.mergeWithFeeStructure(T,O,k,N),!l[0])throw Error(`Transfer Action: No Token Found`);let[P,{patchAccessTokenMerkleTree:F,signatureData:I},{inputUtxosArray:L,outputUtxosArray:R}]=await Promise.all([a.getRandomRelay(T,!0),h.getKycAndSignatureData(a,T,O,k,D),b(a,T,O,k,x,M)]);if(!P)throw Error(i.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let z={externalActionId:0n,externalAddress:P,externalActionMetadata:`0x00`},B=`swapperM${k.length}x${L[0].length}x2`,[{zkCallData:V,circomData:H,dimData:U},W]=await Promise.all([_.constructZkProof(a.merkleTreeHinkalByChain[T],a.merkleTreeAccessTokenByChain[T],L,R,a.userKeys,B,z.externalActionId,z.externalAddress,z.externalActionMetadata,a.generateProofRemotely,P,T,void 0,void 0,void 0,F,void 0,N,a.getContractWithFetcher(T,n.ContractType.HinkalHelperContract),I),g.buildCommitmentValidationData(T,a.userKeys,O,L)]),G=await s.reorderZkCallData(E,V,U,H);return await v.transactCallRelayer(T,V,U,H,W,void 0,void 0,p.constructAdminData(w,T,O,k,D),G)};exports.hinkalTransfer=x;
|
|
@@ -2,6 +2,7 @@ import { isTronLike as e } from "../../constants/chains.constants.mjs";
|
|
|
2
2
|
import { HINKAL_PRIVATE_SEND_VARIABLE_RATE as t } from "../../constants/protocol.constants.mjs";
|
|
3
3
|
import { ContractType as n } from "../../types/ethereum-network.types.mjs";
|
|
4
4
|
import { ExternalActionId as r } from "../../types/external-action.types.mjs";
|
|
5
|
+
import "../../types/index.mjs";
|
|
5
6
|
import { transactionErrorCodes as i } from "../../error-handling/error-codes.constants.mjs";
|
|
6
7
|
import { getCurrentTimeInSeconds as a } from "../../functions/utils/time.utils.mjs";
|
|
7
8
|
import { isValidPrivateAddress as o } from "../../functions/utils/addresses.mjs";
|
|
@@ -15,6 +16,7 @@ import { constructAdminData as m } from "../../functions/pre-transaction/constru
|
|
|
15
16
|
import { getFeeStructure as h } from "../../functions/pre-transaction/getFeeStructure.mjs";
|
|
16
17
|
import { getKycAndSignatureData as g } from "../../functions/pre-transaction/getKycAndSignatureData.mjs";
|
|
17
18
|
import { buildCommitmentValidationData as _ } from "../../functions/pre-transaction/buildCommitmentValidationData.mjs";
|
|
19
|
+
import "../../functions/pre-transaction/index.mjs";
|
|
18
20
|
import { constructZkProof as v } from "../../functions/snarkjs/constructGeneralZkProof.mjs";
|
|
19
21
|
import { transactCallRelayer as y } from "../../functions/web3/functionCalls/transactCallRelayer.mjs";
|
|
20
22
|
import { mergeWithFeeStructure as b } from "../../functions/pre-transaction/merge-with-fee-structure.mjs";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../types/ethereum-network.types.cjs`),r=require(`../../types/external-action.types.cjs`)
|
|
1
|
+
const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../types/ethereum-network.types.cjs`),r=require(`../../types/external-action.types.cjs`);require(`../../types/index.cjs`);const i=require(`../../error-handling/error-codes.constants.cjs`),a=require(`../../functions/utils/time.utils.cjs`),o=require(`../../functions/utils/tron.utils.cjs`),s=require(`../../functions/utils/token-check.utils.cjs`),c=require(`../../functions/web3/events/getShieldedBalance.cjs`),l=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),u=require(`../../functions/utils/fees.utils.cjs`),d=require(`../../functions/pre-transaction/getVolatileTransferAmount.cjs`),f=require(`../../functions/pre-transaction/constructAdminData.cjs`),p=require(`../../functions/pre-transaction/getFeeStructure.cjs`),m=require(`../../functions/pre-transaction/getKycAndSignatureData.cjs`),h=require(`../../functions/pre-transaction/buildCommitmentValidationData.cjs`);require(`../../functions/pre-transaction/index.cjs`);const g=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),_=require(`../../functions/web3/functionCalls/transactCallDirect.cjs`),v=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`),y=require(`../../functions/pre-transaction/merge-with-fee-structure.cjs`);var b=async(e,t,n,r)=>{let i=[...await c.addPaddingToUtxos(e,t,n,r)],o=[],s=a.getCurrentTimeInSeconds().toString();for(let t=0;t<n.length;t+=1){let{outputUtxos:n}=l.outputUtxoProcessing(e.userKeys,i[t],r[t],s);o.push(n)}return{inputUtxosArray:i,outputUtxosArray:o}},x=async(a,c,l,x,S,C,w,T)=>{let E=s.validateAndGetChainId(c),D=e.isTronLike(E),O=o.addressToHexFormat(await a.getEthereumAddressByChain(E)),k=c.map(e=>e.erc20TokenAddress),A=await d.modifyVolatileTokenAmountChanges(E,c,l),j;if(!S){let e=w??await p.getFeeStructure(E,C,k,r.ExternalActionId.Transact),t=u.calculateTotalFee(-A[0],e);j={feeToken:e.feeToken,flatFee:t,variableRate:0n},y.mergeWithFeeStructure(E,k,A,j)}let M=c[0];if(!M)throw Error(`Deposit Action: No Token Found`);let N={externalActionId:0n,externalAddress:o.addressToHexFormat(x),externalActionMetadata:`0x00`},[P,{patchAccessTokenMerkleTree:F,signatureData:I},{inputUtxosArray:L,outputUtxosArray:R}]=await Promise.all([a.getRandomRelay(E,!0),m.getKycAndSignatureData(a,E,k,A,O),b(a,E,k,A)]);if(!S&&!P)throw Error(i.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let z=`swapperM${A.length.toString()}x${L[0].length}x1`,[{zkCallData:B,circomData:V,dimData:H},U]=await Promise.all([g.constructZkProof(a.merkleTreeHinkalByChain[E],a.merkleTreeAccessTokenByChain[E],L,R,a.userKeys,z,N.externalActionId,N.externalAddress,N.externalActionMetadata,a.generateProofRemotely,S?t.zeroAddress:P,E,void 0,void 0,void 0,F,void 0,j,a.getContractWithFetcher(E,n.ContractType.HinkalHelperContract),I,S?O:void 0),h.buildCommitmentValidationData(E,a.userKeys,k,L)]),W=await o.reorderZkCallData(D,B,H,V);if(S){if(!M)throw Error(`Withdraw Action: No Token Found`);return await _.transactCallDirect(a,E,A[0],M,B,V,H)}return await v.transactCallRelayer(E,B,H,V,U,void 0,void 0,f.constructAdminData(T,E,k,A,O),W)};exports.hinkalWithdraw=x;
|
|
@@ -2,6 +2,7 @@ import { isTronLike as e } from "../../constants/chains.constants.mjs";
|
|
|
2
2
|
import { zeroAddress as t } from "../../constants/protocol.constants.mjs";
|
|
3
3
|
import { ContractType as n } from "../../types/ethereum-network.types.mjs";
|
|
4
4
|
import { ExternalActionId as r } from "../../types/external-action.types.mjs";
|
|
5
|
+
import "../../types/index.mjs";
|
|
5
6
|
import { transactionErrorCodes as i } from "../../error-handling/error-codes.constants.mjs";
|
|
6
7
|
import { getCurrentTimeInSeconds as a } from "../../functions/utils/time.utils.mjs";
|
|
7
8
|
import { addressToHexFormat as o, reorderZkCallData as s } from "../../functions/utils/tron.utils.mjs";
|
|
@@ -14,6 +15,7 @@ import { constructAdminData as p } from "../../functions/pre-transaction/constru
|
|
|
14
15
|
import { getFeeStructure as m } from "../../functions/pre-transaction/getFeeStructure.mjs";
|
|
15
16
|
import { getKycAndSignatureData as h } from "../../functions/pre-transaction/getKycAndSignatureData.mjs";
|
|
16
17
|
import { buildCommitmentValidationData as g } from "../../functions/pre-transaction/buildCommitmentValidationData.mjs";
|
|
18
|
+
import "../../functions/pre-transaction/index.mjs";
|
|
17
19
|
import { constructZkProof as _ } from "../../functions/snarkjs/constructGeneralZkProof.mjs";
|
|
18
20
|
import { transactCallDirect as v } from "../../functions/web3/functionCalls/transactCallDirect.mjs";
|
|
19
21
|
import { transactCallRelayer as y } from "../../functions/web3/functionCalls/transactCallRelayer.mjs";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`);require(`../../constants/protocol.constants.cjs`);const t=require(`../../types/ethereum-network.types.cjs`),n=require(`../../functions/utils/amounts.utils.cjs`),r=require(`../../types/external-action.types.cjs`),i=require(`../../types/admin.types.cjs`)
|
|
1
|
+
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`);require(`../../constants/protocol.constants.cjs`);const t=require(`../../types/ethereum-network.types.cjs`),n=require(`../../functions/utils/amounts.utils.cjs`),r=require(`../../types/external-action.types.cjs`),i=require(`../../types/admin.types.cjs`);require(`../../types/index.cjs`);const a=require(`../../error-handling/error-codes.constants.cjs`),o=require(`../../functions/web3/etherFunctions.cjs`),s=require(`../../functions/utils/time.utils.cjs`),c=require(`../utxo/Utxo.cjs`),l=require(`../../functions/utils/encodeTokenWithId.cjs`),u=require(`../../functions/utils/tron.utils.cjs`),d=require(`../../functions/web3/events/getInputUtxoAndBalance.cjs`),f=require(`../../functions/utils/token-check.utils.cjs`),p=require(`../../functions/web3/events/getShieldedBalance.cjs`),m=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),h=require(`../../functions/snarkjs/common.snarkjs.cjs`),g=require(`../../functions/pre-transaction/constructAdminData.cjs`),_=require(`../../functions/pre-transaction/getFeeStructure.cjs`),v=require(`../../functions/pre-transaction/shouldPatchAccessTokenMerkleTree.cjs`),y=require(`../../functions/pre-transaction/getKycAndSignatureData.cjs`),b=require(`../../functions/pre-transaction/buildCommitmentValidationData.cjs`);require(`../../functions/pre-transaction/index.cjs`);const x=require(`../../constants/tx-confirmation.constants.cjs`),S=require(`../../functions/utils/tx-confirmation.utils.cjs`),C=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),w=require(`../../functions/snarkjs/constructSolanaZkProof.cjs`),T=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`),E=require(`../../functions/pre-transaction/merge-with-fee-structure.cjs`);let D=require(`ethers`);var O=async(e,t,n,r)=>{let i=[...await p.addPaddingToUtxos(e,t,n,r,void 0,void 0,!1,!0)],a=[],o=s.getCurrentTimeInSeconds().toString();for(let t=0;t<n.length;t+=1){let{outputUtxos:n}=m.outputUtxoProcessing(e.userKeys,i[t],r[t],o);a.push(n)}return{inputUtxosArray:i,outputUtxosArray:a}},k=async(e,t,n,r)=>{let i=[...await p.addPaddingToUtxos(e,t,n,r,6,void 0,!1,!0)][0],a=s.getCurrentTimeInSeconds().toString(),{outputUtxos:o}=m.outputUtxoProcessing(e.userKeys,i,r[0],a,void 0,!1);return{inputUtxos:i,outputUtxos:o}},A=async(n,o,s,c,l)=>{let d=e.isTronLike(o),f=[s.erc20TokenAddress],p=s.erc20TokenAddress,[m,h,v]=await Promise.all([_.getFeeStructure(o,p,f,r.ExternalActionId.Transact),n.getRandomRelay(o,!0),n.getEthereumAddressByChain(o)]),x=u.addressToHexFormat(v);if(!h)throw Error(a.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let S=u.addressToHexFormat(l),w=c-m.flatFee;if(w<=0n)throw Error(`Insufficient balance to cover fee. Balance: ${c}, Fee: ${m.flatFee}`);let D=[-w];E.mergeWithFeeStructure(o,f,D,m);let k={externalActionId:0n,externalAddress:S,externalActionMetadata:`0x00`},[{patchAccessTokenMerkleTree:A,signatureData:j},{inputUtxosArray:M,outputUtxosArray:N}]=await Promise.all([y.getKycAndSignatureData(n,o,f,D,x),O(n,o,f,D)]),P=`swapperM${D.length.toString()}x${M[0].length}x1`,[{zkCallData:F,circomData:I,dimData:L},R]=await Promise.all([C.constructZkProof(n.merkleTreeHinkalByChain[o],n.merkleTreeAccessTokenByChain[o],M,N,n.userKeys,P,k.externalActionId,k.externalAddress,k.externalActionMetadata,n.generateProofRemotely,h,o,void 0,void 0,void 0,A,void 0,m,n.getContractWithFetcher(o,t.ContractType.HinkalHelperContract),j),b.buildCommitmentValidationData(o,n.userKeys,f,M)]),z=await u.reorderZkCallData(d,F,L,I);return{tx:await T.transactCallRelayer(o,F,L,I,R,void 0,void 0,g.constructAdminData(i.AdminTransactionType.WithdrawOnChainUtxos,o,f,D,x),z),amountToRecipient:w}},j=async(t,n,i,s,l,u)=>{let d=[i.erc20TokenAddress],{originalDeployer:f,hinkalIdl:p}=e.networkRegistry[n].contractData;if(!f||!p)throw Error(`missing data`);let{userKeys:m,merkleTreeAccessTokenByChain:g,merkleTreeHinkalByChain:y}=t,x=i.erc20TokenAddress,[S,C,E]=await Promise.all([_.getFeeStructure(n,x,d,r.ExternalActionId.Transact,void 0,void 0,{mintTo:d[0],recipient:l,nullifierCount:u}),t.getRandomRelay(n,!0),t.getEthereumAddressByChain(n)]);if(!C)throw Error(a.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let O=s-S.flatFee;if(O<=0n)throw Error(`Insufficient balance to cover fee. Balance: ${s}, Fee: ${S.flatFee}`);let A=[-O];A[0]-=S.flatFee;let[{patchAccessTokenMerkleTree:j,kycRequired:M,hasAccessToken:N},{inputUtxos:P,outputUtxos:F}]=await Promise.all([v.shouldPatchAccessTokenMerkleTree(t,n,d,A),k(t,n,d,A)]),I=c.Utxo.findCorrectRandomization(o.randomBigInt(31),t.userKeys.getShieldedPrivateKey()),L={tokenNumber:d.length,nullifierAmount:P.length,outputAmount:F.length},R=t.getSolanaProgram(p),z=h.calcEncryptedOutputs([F])[0][0],B=Array.from(D.ethers.getBytes(z)),[{proofAArr:V,proofBArr:H,proofCArr:U,publicInputsArr:W},G]=await Promise.all([w.constructSolanaZkProof(t.generateProofRemotely,f,y[n],g[n],m,R,[d[0]],[P],[F],I,S.flatFee,S.variableRate,l,C,L,[B],n,j),b.buildCommitmentValidationData(n,m,d,[P])]),K={recipient:l,mint:d[0]===`11111111111111111111111111111111`?void 0:d[0]};return{tx:await T.solanaTransactCallRelayer({chainId:n,relayAddress:C,functionName:`transact`,args:{proofAArr:V,proofBArr:H,proofCArr:U,publicInputsArr:W,encryptedOutputs:[B],relayerFee:S.flatFee.toString(),dimensions:L},accounts:K,commitmentValidationData:G,solanaAccessTokenData:!N&&M?{ethereumAddress:E,accessKey:m.getAccessKey()}:void 0}),amountToRecipient:O}},M=async(t,n,r,i,a,o)=>e.isSolanaLike(n)?j(t,n,r,i,a,o):A(t,n,r,i,a),N=async(e,t,r)=>{let i=[],a=f.validateAndGetChainId([t]),o=l.encodeTokenWithId(a,{erc20TokenAddress:t.erc20TokenAddress,tokenId:0});for(;;){await e.resetMerkleTreesIfNecessary([a]);let s=((await d.getInputUtxoAndBalancePerToken({hinkal:e,sliceIfMore6:!1,useBlockedUtxos:!0,chainId:a,allowRemoteDecryption:e.generateProofRemotely}))?.get(o)??[]).filter(e=>e.amount>0n).sort((e,t)=>Number(t.amount-e.amount)).slice(0,6),c=n.countTotalAmountInUtxos(s);if(!c)break;let{tx:l}=await M(e,a,t,c,r,s.length);await S.waitForTransactionConfirmation(a,l,{solanaCommitment:`finalized`,evmTimeoutMs:x.RELAYER_TX_CONFIRMATION_TIMEOUT}),i.push(l)}return i};exports.hinkalWithdrawStuckUtxos=N;
|
|
@@ -4,6 +4,7 @@ import { ContractType as r } from "../../types/ethereum-network.types.mjs";
|
|
|
4
4
|
import { countTotalAmountInUtxos as i } from "../../functions/utils/amounts.utils.mjs";
|
|
5
5
|
import { ExternalActionId as a } from "../../types/external-action.types.mjs";
|
|
6
6
|
import { AdminTransactionType as o } from "../../types/admin.types.mjs";
|
|
7
|
+
import "../../types/index.mjs";
|
|
7
8
|
import { transactionErrorCodes as s } from "../../error-handling/error-codes.constants.mjs";
|
|
8
9
|
import { randomBigInt as c } from "../../functions/web3/etherFunctions.mjs";
|
|
9
10
|
import { getCurrentTimeInSeconds as l } from "../../functions/utils/time.utils.mjs";
|
|
@@ -20,6 +21,7 @@ import { getFeeStructure as b } from "../../functions/pre-transaction/getFeeStru
|
|
|
20
21
|
import { shouldPatchAccessTokenMerkleTree as x } from "../../functions/pre-transaction/shouldPatchAccessTokenMerkleTree.mjs";
|
|
21
22
|
import { getKycAndSignatureData as S } from "../../functions/pre-transaction/getKycAndSignatureData.mjs";
|
|
22
23
|
import { buildCommitmentValidationData as C } from "../../functions/pre-transaction/buildCommitmentValidationData.mjs";
|
|
24
|
+
import "../../functions/pre-transaction/index.mjs";
|
|
23
25
|
import { RELAYER_TX_CONFIRMATION_TIMEOUT as w } from "../../constants/tx-confirmation.constants.mjs";
|
|
24
26
|
import { waitForTransactionConfirmation as T } from "../../functions/utils/tx-confirmation.utils.mjs";
|
|
25
27
|
import { constructZkProof as E } from "../../functions/snarkjs/constructGeneralZkProof.mjs";
|
|
@@ -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`)
|
|
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/getContractAddress.cjs`),a=require(`../../functions/utils/mutexes.utils.cjs`),o=require(`../../functions/utils/create-provider.cjs`),s=require(`../../functions/web3/events/balanceChangedHandler.cjs`),c=require(`../event-service/evm/ClientBlockchainEventEmitter.cjs`),l=require(`../event-service/solana/ClientSolanaBlockchainEventEmitter.cjs`);require(`../event-service/index.cjs`);const u=require(`../snapshot/SnapshotFetcherService.cjs`),d=require(`../snapshot/solana-snapshots/ClientSolanaCommitmentsSnapshotService.cjs`),f=require(`../snapshot/solana-snapshots/ClientSolanaNullifierSnapshotService.cjs`),p=require(`../snapshot/solana-snapshots/ClientSolanaAccessTokenSnapshotService.cjs`),m=require(`../snapshot/evm-snapshots/ClientAccessTokenSnapshotService.cjs`),h=require(`../snapshot/evm-snapshots/ClientCommitmentsSnapshotService.cjs`),g=require(`../snapshot/evm-snapshots/ClientNullifierSnapshotService.cjs`);require(`../snapshot/index.cjs`);let _=require(`@solana/web3.js`);var v=async(v,y)=>{let b=y??v.getSupportedChains();b.forEach(e=>{v.commitmentsSnapshotServiceByChain[e]?.intervalClear(),v.nullifierSnapshotServiceByChain[e]?.intervalClear(),v.accessTokenSnapshotServiceByChain[e]?.intervalClear()});let x=b.map(async y=>{let{maxPageSize:b,fetchRpcUrl:x,contractData:S}=e.networkRegistry[y],C,w;if(e.isSolanaLike(y)){let e=S.hinkalAddress;if(!x||!e)throw Error(`Fetch RPC URL or Solana program ID is not set`);C=new l.ClientSolanaBlockchainEventEmitter(y,o.createCustomSolanaConnection(x),new _.PublicKey(e),0,a.getChainBalanceFetchingMutex(y),b);let t=S.hinkalIdl;t&&C.setIdl(t);let n=new u.SnapshotFetcherService(y,e);v.commitmentsSnapshotServiceByChain[y]=new d.ClientSolanaCommitmentsSnapshotService(C,n),v.nullifierSnapshotServiceByChain[y]=new f.ClientSolanaNullifierSnapshotService(C,n),v.accessTokenSnapshotServiceByChain[y]=new p.ClientSolanaAccessTokenSnapshotService(C,n)}else{let e=v.getContractWithFetcherByChainId(y,t.ContractType.HinkalContract),n=v.getContractWithFetcherByChainId(y,t.ContractType.DepositOnChainUtxos),o=a.getChainBalanceFetchingMutex(y);C=new c.ClientBlockchainEventEmitter(r.EventCategory.MainContractEvents,y,e,0,o,b,n),w=new c.ClientBlockchainEventEmitter(r.EventCategory.AccessTokenContractEvents,y,v.getContractWithFetcherByChainId(y,t.ContractType.AccessTokenContract),0,o,b);let s=new u.SnapshotFetcherService(y,i.getContractAddress(e));v.commitmentsSnapshotServiceByChain[y]=new h.ClientCommitmentsSnapshotService(C,s),v.nullifierSnapshotServiceByChain[y]=new g.ClientNullifierSnapshotService(C,s),v.accessTokenSnapshotServiceByChain[y]=new m.ClientAccessTokenSnapshotService(w,s)}let T=v.commitmentsSnapshotServiceByChain[y],E=v.nullifierSnapshotServiceByChain[y],D=v.accessTokenSnapshotServiceByChain[y];if(!T||!E||!D)throw Error(`Missing snapshot service for chain ${y}`);await Promise.all([T.init(),E.init(),D.init()]),await Promise.all([C.init(),w?.init()]),v.merkleTreeHinkalByChain[y]=T.merkleTree,v.merkleTreeAccessTokenByChain[y]=D.merkleTree,v.nullifiersByChain[y]=E.nullifiers,v.encryptedOutputsByChain[y]=T.encryptedOutputs,C.onEventsProcessed=e=>{e>0&&s.balanceChangedHandler({updateType:n.PrivateBalanceUpdateType.FreshWithoutLoader,updateTokensListBefore:!0,chainIdToUpdate:y})}});await Promise.allSettled(x)};exports.resetMerkleTrees=v;
|
|
@@ -2,12 +2,14 @@ import { isSolanaLike as e, networkRegistry as t } from "../../constants/chains.
|
|
|
2
2
|
import { ContractType as n } from "../../types/ethereum-network.types.mjs";
|
|
3
3
|
import { PrivateBalanceUpdateType as r } from "../../types/balances.types.mjs";
|
|
4
4
|
import { EventCategory as i } from "../../types/events.types.mjs";
|
|
5
|
+
import "../../types/index.mjs";
|
|
5
6
|
import { getContractAddress as a } from "../../functions/utils/getContractAddress.mjs";
|
|
6
7
|
import { getChainBalanceFetchingMutex as o } from "../../functions/utils/mutexes.utils.mjs";
|
|
7
8
|
import { createCustomSolanaConnection as s } from "../../functions/utils/create-provider.mjs";
|
|
8
9
|
import { balanceChangedHandler as c } from "../../functions/web3/events/balanceChangedHandler.mjs";
|
|
9
10
|
import { ClientBlockchainEventEmitter as l } from "../event-service/evm/ClientBlockchainEventEmitter.mjs";
|
|
10
11
|
import { ClientSolanaBlockchainEventEmitter as u } from "../event-service/solana/ClientSolanaBlockchainEventEmitter.mjs";
|
|
12
|
+
import "../event-service/index.mjs";
|
|
11
13
|
import { SnapshotFetcherService as d } from "../snapshot/SnapshotFetcherService.mjs";
|
|
12
14
|
import { ClientSolanaCommitmentsSnapshotService as f } from "../snapshot/solana-snapshots/ClientSolanaCommitmentsSnapshotService.mjs";
|
|
13
15
|
import { ClientSolanaNullifierSnapshotService as p } from "../snapshot/solana-snapshots/ClientSolanaNullifierSnapshotService.mjs";
|
|
@@ -15,6 +17,7 @@ import { ClientSolanaAccessTokenSnapshotService as m } from "../snapshot/solana-
|
|
|
15
17
|
import { ClientAccessTokenSnapshotService as h } from "../snapshot/evm-snapshots/ClientAccessTokenSnapshotService.mjs";
|
|
16
18
|
import { ClientCommitmentsSnapshotService as g } from "../snapshot/evm-snapshots/ClientCommitmentsSnapshotService.mjs";
|
|
17
19
|
import { ClientNullifierSnapshotService as _ } from "../snapshot/evm-snapshots/ClientNullifierSnapshotService.mjs";
|
|
20
|
+
import "../snapshot/index.mjs";
|
|
18
21
|
import { PublicKey as v } from "@solana/web3.js";
|
|
19
22
|
//#region libs/shared/common/src/data-structures/Hinkal/resetMerkleTrees.ts
|
|
20
23
|
var y = async (y, b) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../types/activities.types.cjs`),t=require(`../../types/cache.types.cjs`)
|
|
1
|
+
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../types/activities.types.cjs`),t=require(`../../types/cache.types.cjs`);require(`../../types/index.cjs`);const n=require(`../../error-handling/error-codes.constants.cjs`),r=require(`../../error-handling/logger.cjs`);require(`../../error-handling/index.cjs`);const i=require(`../../constants/tx-confirmation.constants.cjs`),a=require(`../../functions/utils/tx-confirmation.utils.cjs`);require(`../../functions/index.cjs`);let o=require(`idb-keyval`);var s=class{generateTxId(){return`tx_${new Date().getTime()}_${Math.random().toString(36).substring(2,15)}`}async getTransactionRecord(){return await(0,o.get)(t.StorageKeys.TX_ACTIVITY)||{}}async saveTxRequest(n){let{from:r,to:i,gasInDollar:a,extraNativeTokenFee:s,chainId:c,status:l,txHash:u,activityType:d,tokensReceive:f,tokensSpend:p,tokensApprove:m,activityIcon:h,dappUrl:g,dappName:_,integrationProvider:v,knownPartialSignature:y}=n,b=this.generateTxId(),x={id:b,from:r,to:i,gasInDollar:a?.toString(),extraNativeTokenFee:s?.toString(),chainId:c,txHash:u,activityType:d,status:l??e.ActivityStatus.PENDING,timestamp:new Date,tokensReceive:f,tokensSpend:p,tokensApprove:m,activityIcon:h,dappUrl:g,dappName:_,integrationProvider:v,knownPartialSignature:y};return await(0,o.update)(t.StorageKeys.TX_ACTIVITY,(e={})=>(e[b]=x,e)),b}async getTxRequest(e){return(await this.getTransactionRecord())[e]||null}async getAllTxRequests(e){let t=await this.getTransactionRecord();return Object.values(t).filter(t=>t.chainId===e).sort((e,t)=>new Date(t.timestamp).getTime()-new Date(e.timestamp).getTime())}async updateTxHash(e,n){let r=await this.getTxRequest(e);if(!r)throw Error(`Activity not found`);let i={...r,txHash:n};await(0,o.update)(t.StorageKeys.TX_ACTIVITY,(t={})=>(t[e]=i,t))}async updateTxStatusAndHash(e,n,r){let i=await this.getTxRequest(e);if(!i)throw Error(`Transaction not found`);let a={...i,status:n,txHash:r,timestamp:new Date};return await(0,o.update)(t.StorageKeys.TX_ACTIVITY,(t={})=>(t[e]=a,t)),a}async updateActivity(e,t,n){try{await this.updateTxStatusAndHash(e,t,n)}catch(e){r.Logger.error(`error in updating tx request`,e)}}async removePendingTransactions(e){try{await(0,o.update)(t.StorageKeys.TX_ACTIVITY,(t={})=>(delete t[e],t))}catch(e){r.Logger.error(`error in deleting tx requests`,e)}}async updatePendingTransactions(t,o,s,c){try{let r=await this.getTxRequest(o);if(!r)throw Error(`Transaction not found`);let{chainId:l}=r;if(!t.success){c?.(t.error),await this.updateActivity(o,e.ActivityStatus.FAILED,`erroredTx`in t?t.erroredTx:void 0);return}if(`txHash`in t){let{txHash:r}=t;try{await a.waitForTransactionConfirmation(l,r,{evmTimeoutMs:i.RELAYER_TX_CONFIRMATION_TIMEOUT})}catch(t){let i=t instanceof Error?t:Error(n.transactionErrorCodes.UNKNOWN);c?.(i),await this.updateActivity(o,e.ActivityStatus.FAILED,r);return}s?.(),await this.updateActivity(o,e.ActivityStatus.SUCCESSFUL,r)}}catch(e){r.Logger.error(`error in updating pending transactions`,e)}}},c=new s;exports.ActivityStorage=s,exports.activityStorage=c;
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { ActivityStatus as e } from "../../types/activities.types.mjs";
|
|
2
2
|
import { StorageKeys as t } from "../../types/cache.types.mjs";
|
|
3
|
+
import "../../types/index.mjs";
|
|
3
4
|
import { transactionErrorCodes as n } from "../../error-handling/error-codes.constants.mjs";
|
|
4
5
|
import { Logger as r } from "../../error-handling/logger.mjs";
|
|
6
|
+
import "../../error-handling/index.mjs";
|
|
5
7
|
import { RELAYER_TX_CONFIRMATION_TIMEOUT as i } from "../../constants/tx-confirmation.constants.mjs";
|
|
6
8
|
import { waitForTransactionConfirmation as a } from "../../functions/utils/tx-confirmation.utils.mjs";
|
|
9
|
+
import "../../functions/index.mjs";
|
|
7
10
|
import { get as o, update as s } from "idb-keyval";
|
|
8
|
-
|
|
11
|
+
//#region libs/shared/common/src/data-structures/IndexedDB/activity-db.ts
|
|
12
|
+
var c = class {
|
|
9
13
|
generateTxId() {
|
|
10
14
|
return `tx_${(/* @__PURE__ */ new Date()).getTime()}_${Math.random().toString(36).substring(2, 15)}`;
|
|
11
15
|
}
|
|
@@ -100,6 +104,6 @@ var c = new class {
|
|
|
100
104
|
r.error("error in updating pending transactions", e);
|
|
101
105
|
}
|
|
102
106
|
}
|
|
103
|
-
}();
|
|
107
|
+
}, l = new c();
|
|
104
108
|
//#endregion
|
|
105
|
-
export { c as activityStorage };
|
|
109
|
+
export { c as ActivityStorage, l as activityStorage };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../error-handling/logger.cjs`),t=require(`../../functions/utils/string.utils.cjs`);require(`../../functions/utils/index.cjs`);let n=require(`idb-keyval`);new class{balancesRecordLabel=`walletsBalances`;async getBalances(){return await(0,n.get)(this.balancesRecordLabel)}async getBalancesByWallet(e,n){let r=await this.getBalances();if(r)return r[t.getStateKey(e,n)]}async setBalances(r,i,a,o){let s=[];if(!o)return await(0,n.update)(this.balancesRecordLabel,(e={})=>{let n=t.getStateKey(i,r);return{...e,[n]:a}}),a;if(o.length===0)return await this.getBalancesByWallet(i,r)??[];try{await(0,n.update)(this.balancesRecordLabel,(e={})=>{let n=t.getStateKey(i,r),c=this.createBalanceLookup(e[n]),l=this.createBalanceLookup(a);return o.forEach(({erc20TokenAddress:e})=>{let t=e.toLowerCase();t in l?c[t]=l[t]:delete c[t]}),s=Object.values(c),{...e,[n]:s}})}catch(t){e.Logger.error(`Failed to update wallet balances:`,t)}return s}createBalanceLookup(e=[]){return e.reduce((e,t)=>({...e,[t.token.erc20TokenAddress.toLowerCase()]:t}),{})}};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Logger as e } from "../../error-handling/logger.mjs";
|
|
2
|
+
import { getStateKey as t } from "../../functions/utils/string.utils.mjs";
|
|
3
|
+
import "../../functions/utils/index.mjs";
|
|
4
|
+
import { get as n, update as r } from "idb-keyval";
|
|
5
|
+
new class {
|
|
6
|
+
balancesRecordLabel = "walletsBalances";
|
|
7
|
+
async getBalances() {
|
|
8
|
+
return await n(this.balancesRecordLabel);
|
|
9
|
+
}
|
|
10
|
+
async getBalancesByWallet(e, n) {
|
|
11
|
+
let r = await this.getBalances();
|
|
12
|
+
if (r) return r[t(e, n)];
|
|
13
|
+
}
|
|
14
|
+
async setBalances(n, i, a, o) {
|
|
15
|
+
let s = [];
|
|
16
|
+
if (!o) return await r(this.balancesRecordLabel, (e = {}) => {
|
|
17
|
+
let r = t(i, n);
|
|
18
|
+
return {
|
|
19
|
+
...e,
|
|
20
|
+
[r]: a
|
|
21
|
+
};
|
|
22
|
+
}), a;
|
|
23
|
+
if (o.length === 0) return await this.getBalancesByWallet(i, n) ?? [];
|
|
24
|
+
try {
|
|
25
|
+
await r(this.balancesRecordLabel, (e = {}) => {
|
|
26
|
+
let r = t(i, n), c = this.createBalanceLookup(e[r]), l = this.createBalanceLookup(a);
|
|
27
|
+
return o.forEach(({ erc20TokenAddress: e }) => {
|
|
28
|
+
let t = e.toLowerCase();
|
|
29
|
+
t in l ? c[t] = l[t] : delete c[t];
|
|
30
|
+
}), s = Object.values(c), {
|
|
31
|
+
...e,
|
|
32
|
+
[r]: s
|
|
33
|
+
};
|
|
34
|
+
});
|
|
35
|
+
} catch (t) {
|
|
36
|
+
e.error("Failed to update wallet balances:", t);
|
|
37
|
+
}
|
|
38
|
+
return s;
|
|
39
|
+
}
|
|
40
|
+
createBalanceLookup(e = []) {
|
|
41
|
+
return e.reduce((e, t) => ({
|
|
42
|
+
...e,
|
|
43
|
+
[t.token.erc20TokenAddress.toLowerCase()]: t
|
|
44
|
+
}), {});
|
|
45
|
+
}
|
|
46
|
+
}();
|
|
47
|
+
//#endregion
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../functions/utils/caseInsensitive.utils.cjs`),t=require(`../../error-handling/logger.cjs`);require(`../../functions/index.cjs`);let n=require(`idb-keyval`);new class{STORAGE_KEY=`contacts`;checkForDuplicate(e,t,n){if(e.find(({ethereumAddress:e,nickname:r})=>(e===t.ethereumAddress||r===t.nickname)&&e!==n)!==void 0)throw Error(`Duplicate Contact attribute`)}async createContact(e,t){let r=e.toLowerCase();await(0,n.update)(this.STORAGE_KEY,e=>{let n=e??{},i=n[r]??[];return this.checkForDuplicate(i,t),i.push(t),n[r]=i,n})}async getContacts(e){try{let t=e.toLowerCase(),r=await(0,n.get)(this.STORAGE_KEY);return!r||!r[t]?[]:r[t]}catch(e){return t.Logger.error(`Error while getting contacts:`,e),[]}}async editContact(t,r,i){let a=t.toLowerCase();await(0,n.update)(this.STORAGE_KEY,t=>{let n=t??{},o=n[a];if(!n||!o)throw Error(`Contacts could not be fetched`);this.checkForDuplicate(o,i,r);let s=o.findIndex(({ethereumAddress:t})=>e.caseInsensitiveEqual(t,r));if(s===-1)throw Error(`Contact to be edited was not found`);return o[s]=i,n[a]=o,n})}async deleteContact(e,t){let r=e.toLowerCase();await(0,n.update)(this.STORAGE_KEY,e=>{let n=e??{},i=n[r];if(!n||!i)throw Error(`Contacts could not be fetched`);return n[r]=i.filter(({ethereumAddress:e})=>e!==t),n})}};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { caseInsensitiveEqual as e } from "../../functions/utils/caseInsensitive.utils.mjs";
|
|
2
|
+
import { Logger as t } from "../../error-handling/logger.mjs";
|
|
3
|
+
import "../../functions/index.mjs";
|
|
4
|
+
import { get as n, update as r } from "idb-keyval";
|
|
5
|
+
new class {
|
|
6
|
+
STORAGE_KEY = "contacts";
|
|
7
|
+
checkForDuplicate(e, t, n) {
|
|
8
|
+
if (e.find(({ ethereumAddress: e, nickname: r }) => (e === t.ethereumAddress || r === t.nickname) && e !== n) !== void 0) throw Error("Duplicate Contact attribute");
|
|
9
|
+
}
|
|
10
|
+
async createContact(e, t) {
|
|
11
|
+
let n = e.toLowerCase();
|
|
12
|
+
await r(this.STORAGE_KEY, (e) => {
|
|
13
|
+
let r = e ?? {}, i = r[n] ?? [];
|
|
14
|
+
return this.checkForDuplicate(i, t), i.push(t), r[n] = i, r;
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
async getContacts(e) {
|
|
18
|
+
try {
|
|
19
|
+
let t = e.toLowerCase(), r = await n(this.STORAGE_KEY);
|
|
20
|
+
return !r || !r[t] ? [] : r[t];
|
|
21
|
+
} catch (e) {
|
|
22
|
+
return t.error("Error while getting contacts:", e), [];
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
async editContact(t, n, i) {
|
|
26
|
+
let a = t.toLowerCase();
|
|
27
|
+
await r(this.STORAGE_KEY, (t) => {
|
|
28
|
+
let r = t ?? {}, o = r[a];
|
|
29
|
+
if (!r || !o) throw Error("Contacts could not be fetched");
|
|
30
|
+
this.checkForDuplicate(o, i, n);
|
|
31
|
+
let s = o.findIndex(({ ethereumAddress: t }) => e(t, n));
|
|
32
|
+
if (s === -1) throw Error("Contact to be edited was not found");
|
|
33
|
+
return o[s] = i, r[a] = o, r;
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
async deleteContact(e, t) {
|
|
37
|
+
let n = e.toLowerCase();
|
|
38
|
+
await r(this.STORAGE_KEY, (e) => {
|
|
39
|
+
let r = e ?? {}, i = r[n];
|
|
40
|
+
if (!r || !i) throw Error("Contacts could not be fetched");
|
|
41
|
+
return r[n] = i.filter(({ ethereumAddress: e }) => e !== t), r;
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}();
|
|
45
|
+
//#endregion
|