@hinkal/common 0.3.2 → 0.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -18
- package/common/src/API/API.cjs +1 -1
- package/common/src/API/API.d.ts +5 -5
- package/common/src/API/API.mjs +78 -78
- package/common/src/API/callRelayer.d.ts +3 -0
- package/common/src/API/enclaveUtxoCalls.cjs +1 -1
- package/common/src/API/enclaveUtxoCalls.d.ts +8 -7
- package/common/src/API/enclaveUtxoCalls.mjs +5 -3
- package/common/src/API/getOdosPriceForToken.cjs +1 -0
- package/common/src/API/getOdosPriceForToken.d.ts +1 -0
- package/common/src/API/getOdosPriceForToken.mjs +14 -0
- package/common/src/API/getWebsiteURL.d.ts +0 -1
- package/common/src/API/index.cjs +1 -1
- package/common/src/API/index.d.ts +0 -1
- package/common/src/API/index.mjs +1 -2
- package/common/src/API/rewardsUserCalls.cjs +1 -1
- package/common/src/API/rewardsUserCalls.d.ts +0 -2
- package/common/src/API/rewardsUserCalls.mjs +2 -3
- package/common/src/API/tenderly.api.cjs +1 -1
- package/common/src/API/tenderly.api.d.ts +5 -10
- package/common/src/API/tenderly.api.mjs +1 -1
- package/common/src/constants/addresses.constants.cjs +1 -1
- package/common/src/constants/addresses.constants.d.ts +4 -46
- package/common/src/constants/addresses.constants.mjs +19 -60
- package/common/src/constants/balance.constants.cjs +1 -0
- package/common/src/constants/balance.constants.d.ts +1 -0
- package/common/src/constants/balance.constants.mjs +4 -0
- package/common/src/constants/chains.constants.cjs +1 -1
- package/common/src/constants/chains.constants.d.ts +3 -1
- package/common/src/constants/chains.constants.mjs +117 -131
- package/common/src/constants/coingecko.constants.cjs +1 -1
- package/common/src/constants/coingecko.constants.d.ts +2 -0
- package/common/src/constants/coingecko.constants.mjs +1 -1
- package/common/src/constants/contracts.constants.cjs +1 -1
- package/common/src/constants/contracts.constants.d.ts +0 -109
- package/common/src/constants/contracts.constants.mjs +13 -22
- package/common/src/constants/deploy-data/deploy-data-arbMainnet.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-arbMainnet.json.mjs +1 -3
- package/common/src/constants/deploy-data/deploy-data-arcTestnet.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-arcTestnet.json.mjs +6 -6
- package/common/src/constants/deploy-data/deploy-data-base.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-base.json.mjs +1 -3
- package/common/src/constants/deploy-data/deploy-data-bnbMainnet.json.cjs +1 -0
- package/common/src/constants/deploy-data/deploy-data-bnbMainnet.json.mjs +10 -0
- package/common/src/constants/deploy-data/deploy-data-ethMainnet.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-ethMainnet.json.mjs +1 -3
- package/common/src/constants/deploy-data/deploy-data-localhost.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-localhost.json.mjs +0 -3
- package/common/src/constants/deploy-data/deploy-data-optimism.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-optimism.json.mjs +6 -8
- package/common/src/constants/deploy-data/deploy-data-optimismTest.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-optimismTest.json.mjs +1 -4
- package/common/src/constants/deploy-data/deploy-data-polygon.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-polygon.json.mjs +1 -3
- package/common/src/constants/deploy-data/deploy-data-sepoliaTestnet.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-sepoliaTestnet.json.mjs +0 -1
- package/common/src/constants/deploy-data/deploy-data-solana.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-solana.json.mjs +2 -2
- package/common/src/constants/deploy-data/deploy-data-tempo.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-tempo.json.mjs +6 -7
- package/common/src/constants/deploy-data/deploy-data-tronMainnet.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-tronMainnet.json.mjs +2 -4
- package/common/src/constants/deploy-data/deploy-data-tronNile.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-tronNile.json.mjs +2 -4
- package/common/src/constants/deploy-data/index.cjs +1 -1
- package/common/src/constants/deploy-data/index.d.ts +2 -1
- package/common/src/constants/deploy-data/index.mjs +16 -15
- package/common/src/constants/deploy-data/shared-deploy-data-solana.json.cjs +1 -1
- package/common/src/constants/deploy-data/shared-deploy-data-solana.json.mjs +1 -1
- package/common/src/constants/deploy-data/shared-deploy-data-tron.json.cjs +1 -1
- package/common/src/constants/deploy-data/shared-deploy-data-tron.json.mjs +2 -35
- package/common/src/constants/events.constants.cjs +1 -1
- package/common/src/constants/events.constants.mjs +3 -2
- package/common/src/constants/fees.constants.cjs +1 -1
- package/common/src/constants/fees.constants.mjs +2 -2
- package/common/src/constants/index.cjs +1 -1
- package/common/src/constants/index.d.ts +0 -1
- package/common/src/constants/index.mjs +1 -0
- package/common/src/constants/protocol.constants.cjs +2 -2
- package/common/src/constants/protocol.constants.d.ts +3 -1
- package/common/src/constants/protocol.constants.mjs +2 -2
- package/common/src/constants/server.constants.cjs +1 -1
- package/common/src/constants/server.constants.d.ts +1 -2
- package/common/src/constants/server.constants.mjs +1 -2
- package/common/src/constants/tokens.constants.cjs +1 -1
- package/common/src/constants/tokens.constants.mjs +1 -1
- package/common/src/data-structures/Hinkal/Hinkal.cjs +1 -1
- package/common/src/data-structures/Hinkal/Hinkal.mjs +26 -22
- package/common/src/data-structures/Hinkal/handleAutoDepositBack.cjs +1 -1
- package/common/src/data-structures/Hinkal/handleAutoDepositBack.d.ts +1 -1
- package/common/src/data-structures/Hinkal/handleAutoDepositBack.mjs +36 -35
- package/common/src/data-structures/Hinkal/hinkalActionReceive.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalActionReceive.mjs +3 -3
- package/common/src/data-structures/Hinkal/hinkalBridgePrivateToPrivate.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalBridgePrivateToPrivate.mjs +60 -58
- package/common/src/data-structures/Hinkal/hinkalClaimUtxo.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalClaimUtxo.mjs +42 -47
- package/common/src/data-structures/Hinkal/hinkalDeposit.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalDeposit.d.ts +1 -0
- package/common/src/data-structures/Hinkal/hinkalDeposit.mjs +50 -116
- package/common/src/data-structures/Hinkal/hinkalDepositAndBridge.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalDepositAndBridge.mjs +102 -92
- package/common/src/data-structures/Hinkal/hinkalDepositAndWithdraw.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalDepositAndWithdraw.d.ts +3 -2
- package/common/src/data-structures/Hinkal/hinkalDepositAndWithdraw.mjs +104 -59
- package/common/src/data-structures/Hinkal/hinkalDepositOnChainUtxos.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalDepositOnChainUtxos.mjs +4 -4
- package/common/src/data-structures/Hinkal/hinkalNearDepositAndBridge.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalNearDepositAndBridge.mjs +7 -3
- package/common/src/data-structures/Hinkal/hinkalPrivateWallet.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalPrivateWallet.mjs +51 -39
- package/common/src/data-structures/Hinkal/hinkalProoflessDeposit.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalProoflessDeposit.d.ts +1 -2
- package/common/src/data-structures/Hinkal/hinkalProoflessDeposit.mjs +53 -131
- package/common/src/data-structures/Hinkal/hinkalProoflessDeposit.utils.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalProoflessDeposit.utils.d.ts +1 -1
- package/common/src/data-structures/Hinkal/hinkalProoflessDeposit.utils.mjs +29 -47
- package/common/src/data-structures/Hinkal/hinkalProxyToPrivate.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalProxyToPrivate.mjs +3 -3
- package/common/src/data-structures/Hinkal/hinkalSolanaClaimUtxo.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaClaimUtxo.mjs +70 -45
- package/common/src/data-structures/Hinkal/hinkalSolanaDeposit.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaDeposit.d.ts +2 -2
- package/common/src/data-structures/Hinkal/hinkalSolanaDeposit.mjs +47 -45
- package/common/src/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.d.ts +8 -4
- package/common/src/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.mjs +133 -81
- package/common/src/data-structures/Hinkal/hinkalSolanaProoflessDeposit.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaProoflessDeposit.d.ts +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaProoflessDeposit.mjs +16 -12
- package/common/src/data-structures/Hinkal/hinkalSolanaProxyShield.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaProxyShield.d.ts +2 -2
- package/common/src/data-structures/Hinkal/hinkalSolanaProxyShield.mjs +61 -54
- package/common/src/data-structures/Hinkal/hinkalSolanaProxySwap.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaProxySwap.mjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaSwap.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaSwap.mjs +87 -51
- package/common/src/data-structures/Hinkal/hinkalSolanaTransfer.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaTransfer.d.ts +1 -0
- package/common/src/data-structures/Hinkal/hinkalSolanaTransfer.mjs +95 -50
- package/common/src/data-structures/Hinkal/hinkalSolanaWithdraw.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaWithdraw.mjs +60 -34
- package/common/src/data-structures/Hinkal/hinkalSwap.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSwap.mjs +29 -32
- package/common/src/data-structures/Hinkal/hinkalTransact.cjs +1 -0
- package/common/src/data-structures/Hinkal/hinkalTransact.d.ts +3 -0
- package/common/src/data-structures/Hinkal/hinkalTransact.mjs +90 -0
- package/common/src/data-structures/Hinkal/hinkalTransfer.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalTransfer.mjs +40 -45
- package/common/src/data-structures/Hinkal/hinkalTronDepositToSelf.cjs +1 -0
- package/common/src/data-structures/Hinkal/hinkalTronDepositToSelf.d.ts +8 -0
- package/common/src/data-structures/Hinkal/hinkalTronDepositToSelf.mjs +30 -0
- package/common/src/data-structures/Hinkal/hinkalWithdraw.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalWithdraw.mjs +35 -45
- package/common/src/data-structures/Hinkal/hinkalWithdrawStuckUtxos.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalWithdrawStuckUtxos.mjs +167 -95
- package/common/src/data-structures/Hinkal/prepareTronDepositToSelf.cjs +1 -0
- package/common/src/data-structures/Hinkal/prepareTronDepositToSelf.d.ts +27 -0
- package/common/src/data-structures/Hinkal/prepareTronDepositToSelf.mjs +31 -0
- package/common/src/data-structures/Hinkal/resetMerkleTrees.cjs +1 -1
- package/common/src/data-structures/Hinkal/resetMerkleTrees.mjs +1 -0
- package/common/src/data-structures/IndexedDB/activity-db.cjs +1 -1
- package/common/src/data-structures/IndexedDB/activity-db.mjs +34 -34
- package/common/src/data-structures/IndexedDB/signatures-db.cjs +1 -1
- package/common/src/data-structures/IndexedDB/signatures-db.mjs +11 -11
- package/common/src/data-structures/TokenDBs/AlchemyPublicTokensDB.cjs +1 -1
- package/common/src/data-structures/TokenDBs/AlchemyPublicTokensDB.mjs +11 -10
- package/common/src/data-structures/TokenDBs/ArcPublicTokensDB.cjs +1 -1
- package/common/src/data-structures/TokenDBs/ArcPublicTokensDB.mjs +14 -14
- package/common/src/data-structures/TokenDBs/EventsPublicTokensDB.cjs +1 -1
- package/common/src/data-structures/TokenDBs/EventsPublicTokensDB.mjs +26 -26
- package/common/src/data-structures/TokenDBs/PrivateTokensDB.cjs +1 -1
- package/common/src/data-structures/TokenDBs/PrivateTokensDB.mjs +15 -15
- package/common/src/data-structures/TokenDBs/TempoPublicTokensDB.cjs +1 -1
- package/common/src/data-structures/TokenDBs/TempoPublicTokensDB.mjs +12 -16
- package/common/src/data-structures/TokenDBs/TronPublicTokensDB.cjs +1 -1
- package/common/src/data-structures/TokenDBs/TronPublicTokensDB.d.ts +1 -0
- package/common/src/data-structures/TokenDBs/TronPublicTokensDB.mjs +8 -4
- package/common/src/data-structures/crypto-keys/decodeUTXO.cjs +1 -1
- package/common/src/data-structures/crypto-keys/decodeUTXO.d.ts +1 -0
- package/common/src/data-structures/crypto-keys/decodeUTXO.mjs +12 -12
- package/common/src/data-structures/event-service/evm/BlockchainEventEmitter.cjs +1 -1
- package/common/src/data-structures/event-service/evm/BlockchainEventEmitter.mjs +12 -12
- package/common/src/data-structures/event-service/helpers/ClientEventHelper.cjs +1 -1
- package/common/src/data-structures/event-service/helpers/ClientEventHelper.mjs +6 -6
- package/common/src/data-structures/event-service/solana/AbstractSolanaCommitmentsSnapshotService.cjs +1 -1
- package/common/src/data-structures/event-service/solana/AbstractSolanaCommitmentsSnapshotService.mjs +27 -23
- package/common/src/data-structures/merkle-tree/MerkleTree.cjs +1 -1
- package/common/src/data-structures/merkle-tree/MerkleTree.d.ts +10 -0
- package/common/src/data-structures/merkle-tree/MerkleTree.mjs +9 -1
- package/common/src/data-structures/private-balances/HinkalPrivateBalanceController.cjs +1 -1
- package/common/src/data-structures/private-balances/HinkalPrivateBalanceController.d.ts +3 -0
- package/common/src/data-structures/private-balances/HinkalPrivateBalanceController.mjs +64 -54
- package/common/src/error-handling/error-codes.constants.cjs +1 -1
- package/common/src/error-handling/error-codes.constants.d.ts +6 -11
- package/common/src/error-handling/error-codes.constants.mjs +8 -13
- package/common/src/error-handling/get-error.message.cjs +1 -1
- package/common/src/error-handling/get-error.message.mjs +27 -14
- package/common/src/externalABIs/index.cjs +1 -1
- package/common/src/externalABIs/index.d.ts +1 -113
- package/common/src/externalABIs/index.mjs +2 -6
- 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 +8 -8
- package/common/src/functions/index.cjs +1 -1
- package/common/src/functions/index.d.ts +0 -1
- package/common/src/functions/index.mjs +12 -15
- package/common/src/functions/pre-transaction/calculateSolanaNullifierCount.cjs +1 -1
- package/common/src/functions/pre-transaction/calculateSolanaNullifierCount.mjs +39 -5
- package/common/src/functions/pre-transaction/getExternalSwapAddress.cjs +1 -1
- package/common/src/functions/pre-transaction/getExternalSwapAddress.mjs +2 -18
- package/common/src/functions/pre-transaction/getSolanaCalldataHash.cjs +1 -1
- package/common/src/functions/pre-transaction/getSolanaCalldataHash.d.ts +1 -1
- package/common/src/functions/pre-transaction/getSolanaCalldataHash.mjs +11 -10
- package/common/src/functions/pre-transaction/getVolatileTransferAmount.cjs +1 -1
- package/common/src/functions/pre-transaction/getVolatileTransferAmount.mjs +12 -12
- package/common/src/functions/pre-transaction/index.cjs +1 -1
- package/common/src/functions/pre-transaction/index.d.ts +1 -2
- package/common/src/functions/pre-transaction/index.mjs +1 -2
- package/common/src/functions/pre-transaction/outputUtxoProcessing.cjs +1 -1
- package/common/src/functions/pre-transaction/outputUtxoProcessing.d.ts +1 -1
- package/common/src/functions/pre-transaction/outputUtxoProcessing.mjs +7 -8
- package/common/src/functions/pre-transaction/solana.cjs +1 -1
- package/common/src/functions/pre-transaction/solana.d.ts +13 -0
- package/common/src/functions/pre-transaction/solana.mjs +46 -22
- package/common/src/functions/pre-transaction/store-proof.cjs +1 -1
- package/common/src/functions/pre-transaction/store-proof.d.ts +1 -1
- package/common/src/functions/pre-transaction/store-proof.mjs +1 -0
- package/common/src/functions/pre-transaction/waitForDepositedUtxosInMerkleTree.cjs +1 -1
- package/common/src/functions/pre-transaction/waitForDepositedUtxosInMerkleTree.mjs +1 -1
- package/common/src/functions/private-wallet/emporium.helpers.cjs +1 -1
- package/common/src/functions/private-wallet/emporium.helpers.mjs +12 -13
- package/common/src/functions/private-wallet/emporium.swap.helpers.cjs +1 -1
- package/common/src/functions/private-wallet/emporium.swap.helpers.d.ts +0 -1
- package/common/src/functions/private-wallet/emporium.swap.helpers.mjs +38 -80
- package/common/src/functions/private-wallet/index.cjs +1 -1
- package/common/src/functions/private-wallet/index.d.ts +0 -1
- package/common/src/functions/private-wallet/index.mjs +0 -1
- package/common/src/functions/snarkjs/common.snarkjs.cjs +1 -1
- package/common/src/functions/snarkjs/common.snarkjs.d.ts +2 -2
- package/common/src/functions/snarkjs/common.snarkjs.mjs +89 -52
- package/common/src/functions/snarkjs/constant.cjs +1 -1
- package/common/src/functions/snarkjs/constant.d.ts +32 -0
- package/common/src/functions/snarkjs/constant.mjs +32 -0
- package/common/src/functions/snarkjs/constructGeneralZkProof.cjs +1 -1
- package/common/src/functions/snarkjs/constructGeneralZkProof.d.ts +1 -1
- package/common/src/functions/snarkjs/constructGeneralZkProof.mjs +78 -65
- package/common/src/functions/snarkjs/constructSolanaZkProof.cjs +1 -1
- package/common/src/functions/snarkjs/constructSolanaZkProof.d.ts +4 -1
- package/common/src/functions/snarkjs/constructSolanaZkProof.mjs +44 -39
- package/common/src/functions/snarkjs/constructTxEnclave.cjs +1 -0
- package/common/src/functions/snarkjs/constructTxEnclave.d.ts +32 -0
- package/common/src/functions/snarkjs/constructTxEnclave.mjs +162 -0
- package/common/src/functions/snarkjs/fetchTronInsertionSiblings.cjs +1 -0
- package/common/src/functions/snarkjs/fetchTronInsertionSiblings.d.ts +7 -0
- package/common/src/functions/snarkjs/fetchTronInsertionSiblings.mjs +13 -0
- package/common/src/functions/snarkjs/generateCircomData.cjs +1 -1
- package/common/src/functions/snarkjs/generateCircomData.d.ts +1 -1
- package/common/src/functions/snarkjs/generateCircomData.mjs +33 -27
- package/common/src/functions/snarkjs/generateMainAndCommitmentZkProof.cjs +1 -1
- package/common/src/functions/snarkjs/generateMainAndCommitmentZkProof.d.ts +1 -1
- package/common/src/functions/snarkjs/generateMainAndCommitmentZkProof.mjs +7 -7
- package/common/src/functions/snarkjs/generateZkProof.cjs +1 -1
- package/common/src/functions/snarkjs/generateZkProof.d.ts +1 -1
- package/common/src/functions/snarkjs/generateZkProof.mjs +9 -16
- package/common/src/functions/snarkjs/signedMessageHash.cjs +1 -1
- package/common/src/functions/snarkjs/signedMessageHash.d.ts +11 -0
- package/common/src/functions/snarkjs/signedMessageHash.mjs +21 -3
- package/common/src/functions/snarkjs/verifySignedEnclaveResponse.cjs +1 -0
- package/common/src/functions/snarkjs/verifySignedEnclaveResponse.d.ts +1 -0
- package/common/src/functions/snarkjs/verifySignedEnclaveResponse.mjs +11 -0
- package/common/src/functions/utils/addresses.cjs +1 -1
- package/common/src/functions/utils/addresses.d.ts +1 -0
- package/common/src/functions/utils/addresses.mjs +6 -2
- package/common/src/functions/utils/buildClaimableDepositPlan.d.ts +2 -2
- package/common/src/functions/utils/convertIntegrationProviderToExternalActionId.cjs +1 -1
- package/common/src/functions/utils/convertIntegrationProviderToExternalActionId.mjs +1 -1
- package/common/src/functions/utils/deposit-claimable.utils.cjs +1 -1
- package/common/src/functions/utils/deposit-claimable.utils.d.ts +1 -1
- package/common/src/functions/utils/deposit-claimable.utils.mjs +3 -1
- package/common/src/functions/utils/enclave-utxo-storage.cjs +1 -1
- package/common/src/functions/utils/enclave-utxo-storage.mjs +1 -1
- package/common/src/functions/utils/fees.utils.cjs +1 -1
- package/common/src/functions/utils/fees.utils.mjs +31 -31
- package/common/src/functions/utils/formatter.d.ts +1 -0
- package/common/src/functions/utils/getUtxosFromReceipt.utils.cjs +1 -1
- package/common/src/functions/utils/getUtxosFromReceipt.utils.mjs +6 -6
- package/common/src/functions/utils/getUtxosFromReceiptSolana.cjs +1 -1
- package/common/src/functions/utils/getUtxosFromReceiptSolana.mjs +11 -10
- package/common/src/functions/utils/index.cjs +1 -1
- package/common/src/functions/utils/index.d.ts +2 -2
- package/common/src/functions/utils/index.mjs +11 -10
- package/common/src/functions/utils/process.utils.cjs +1 -1
- package/common/src/functions/utils/process.utils.d.ts +0 -1
- package/common/src/functions/utils/process.utils.mjs +2 -11
- package/common/src/functions/utils/publicBalance.utils.cjs +1 -1
- package/common/src/functions/utils/publicBalance.utils.mjs +2 -1
- package/common/src/functions/utils/transfer-claimable.utils.cjs +1 -1
- package/common/src/functions/utils/transfer-claimable.utils.mjs +2 -2
- package/common/src/functions/utils/tron.utils.cjs +1 -1
- package/common/src/functions/utils/tron.utils.d.ts +5 -14
- package/common/src/functions/utils/tron.utils.mjs +91 -127
- package/common/src/functions/utils/waasStamp.cjs +1 -0
- package/common/src/functions/utils/waasStamp.d.ts +5 -0
- package/common/src/functions/utils/waasStamp.mjs +2 -0
- package/common/src/functions/web3/events/getInputUtxoAndBalance.cjs +1 -1
- package/common/src/functions/web3/events/getInputUtxoAndBalance.d.ts +3 -8
- package/common/src/functions/web3/events/getInputUtxoAndBalance.mjs +44 -48
- package/common/src/functions/web3/events/getInputUtxosEnclave.cjs +1 -1
- package/common/src/functions/web3/events/getInputUtxosEnclave.d.ts +4 -3
- package/common/src/functions/web3/events/getInputUtxosEnclave.mjs +34 -25
- package/common/src/functions/web3/events/getShieldedBalance.cjs +1 -1
- package/common/src/functions/web3/events/getShieldedBalance.d.ts +1 -1
- package/common/src/functions/web3/events/getShieldedBalance.mjs +88 -76
- package/common/src/functions/web3/fetchSolanaMerkleTreeRootHash.cjs +1 -1
- package/common/src/functions/web3/fetchSolanaMerkleTreeRootHash.mjs +9 -6
- package/common/src/functions/web3/functionCalls/approveToken.cjs +1 -1
- package/common/src/functions/web3/functionCalls/approveToken.mjs +12 -12
- package/common/src/functions/web3/functionCalls/submitProof.cjs +1 -0
- package/common/src/functions/web3/functionCalls/submitProof.d.ts +5 -0
- package/common/src/functions/web3/functionCalls/submitProof.mjs +26 -0
- package/common/src/functions/web3/functionCalls/transactCallDirectTron.cjs +1 -1
- package/common/src/functions/web3/functionCalls/transactCallDirectTron.d.ts +7 -3
- package/common/src/functions/web3/functionCalls/transactCallDirectTron.mjs +81 -87
- package/common/src/functions/web3/functionCalls/transactCallRelayer.cjs +1 -1
- package/common/src/functions/web3/functionCalls/transactCallRelayer.d.ts +6 -11
- package/common/src/functions/web3/functionCalls/transactCallRelayer.mjs +4 -2
- package/common/src/functions/web3/functionCalls/waitForErc20Approvals.cjs +1 -1
- package/common/src/functions/web3/functionCalls/waitForErc20Approvals.mjs +6 -6
- package/common/src/functions/web3/getContractMetadata.cjs +1 -1
- package/common/src/functions/web3/getContractMetadata.mjs +1 -1
- package/common/src/functions/web3/getTokenHolder.cjs +1 -1
- package/common/src/functions/web3/getTokenHolder.mjs +3 -2
- package/common/src/functions/web3/index.cjs +1 -1
- package/common/src/functions/web3/index.d.ts +0 -3
- package/common/src/functions/web3/index.mjs +0 -3
- package/common/src/functions/web3/lifiAPI.cjs +1 -1
- package/common/src/functions/web3/lifiAPI.mjs +1 -1
- package/common/src/providers/TronProviderAdapter.cjs +1 -1
- package/common/src/providers/TronProviderAdapter.mjs +7 -1
- package/common/src/providers/WagmiProviderAdapter.cjs +1 -1
- package/common/src/providers/WagmiProviderAdapter.mjs +5 -5
- package/common/src/types/activities.types.cjs +1 -1
- package/common/src/types/activities.types.d.ts +0 -9
- package/common/src/types/activities.types.mjs +1 -1
- package/common/src/types/admin.types.cjs +1 -1
- package/common/src/types/admin.types.d.ts +3 -1
- package/common/src/types/admin.types.mjs +1 -1
- package/common/src/types/bridging-tx.types.d.ts +8 -0
- package/common/src/types/cache.types.cjs +1 -1
- package/common/src/types/cache.types.d.ts +2 -1
- package/common/src/types/cache.types.mjs +1 -1
- package/common/src/types/circom-data.types.d.ts +6 -0
- package/common/src/types/commitments.types.d.ts +2 -0
- package/common/src/types/dashboard-transaction.types.d.ts +3 -0
- package/common/src/types/ethereum-network.types.cjs +1 -1
- package/common/src/types/ethereum-network.types.d.ts +6 -15
- package/common/src/types/ethereum-network.types.mjs +1 -1
- package/common/src/types/external-action.types.cjs +1 -1
- package/common/src/types/external-action.types.d.ts +2 -5
- package/common/src/types/external-action.types.mjs +1 -1
- package/common/src/types/hinkal.types.cjs +1 -1
- package/common/src/types/hinkal.types.d.ts +4 -7
- package/common/src/types/hinkal.types.mjs +1 -1
- package/common/src/types/index.cjs +1 -1
- package/common/src/types/index.d.ts +2 -0
- package/common/src/types/index.mjs +1 -0
- package/common/src/types/near-intents.types.d.ts +1 -0
- package/common/src/types/offscreen.types.cjs +1 -1
- package/common/src/types/offscreen.types.d.ts +0 -1
- package/common/src/types/offscreen.types.mjs +1 -1
- package/common/src/types/pay-activities.types.d.ts +3 -0
- package/common/src/types/remote-proof.types.d.ts +0 -6
- package/common/src/types/remote-tx-build.types.d.ts +242 -0
- package/common/src/types/scheduled-transactions.types.d.ts +3 -0
- package/common/src/types/solana.types.d.ts +7 -0
- package/common/src/types/tenderly.api.types.d.ts +70 -0
- package/common/src/types/transact.types.cjs +1 -0
- package/common/src/types/transact.types.d.ts +53 -0
- package/common/src/types/transact.types.mjs +6 -0
- package/common/src/webworker/{logError-uy41lNp1.js → logError-CxZzSALU.js} +1 -1
- package/common/src/webworker/package.json +12 -12
- package/common/src/webworker/snarkjsWorker/snarkjsWorkerLauncher.ts?worker&url.cjs +1 -1
- package/common/src/webworker/snarkjsWorker/snarkjsWorkerLauncher.ts?worker&url.mjs +1 -1
- package/common/src/webworker/snarkjsWorkerNode.cjs +1 -1
- package/common/src/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url.cjs +1 -1
- package/common/src/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url.mjs +1 -1
- package/common/src/webworker/utxoWorkerNode.cjs +1 -1
- package/common/src/webworker/viteWorkerURL.constant.cjs +3 -3
- package/common/src/webworker/viteWorkerURL.constant.mjs +3 -3
- package/common/src/webworker/workerProxy-swwPYw6e.js +1 -0
- package/common/src/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.cjs +1 -1
- package/common/src/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.mjs +1 -1
- package/common/src/webworker/zkProofWorkerNode.cjs +1 -1
- package/index.cjs +1 -1
- package/index.mjs +1 -1
- package/internal/swapApi.cjs +1 -1
- package/internal/swapApi.d.ts +3 -3
- package/internal/swapApi.mjs +22 -25
- package/package.json +12 -12
- package/services/Hinkal.cjs +1 -1
- package/services/Hinkal.d.ts +3 -3
- package/services/Hinkal.mjs +7 -7
- package/types/IHinkal.d.ts +3 -3
- package/types/swap.types.d.ts +3 -20
- package/common/src/API/callOdosAPI.cjs +0 -1
- package/common/src/API/callOdosAPI.d.ts +0 -63
- package/common/src/API/callOdosAPI.mjs +0 -18
- package/common/src/API/callOneInchAPI.cjs +0 -1
- package/common/src/API/callOneInchAPI.d.ts +0 -24
- package/common/src/API/callOneInchAPI.mjs +0 -16
- package/common/src/constants/rewards.constants.d.ts +0 -2
- package/common/src/externalABIs/IQuoterV2.json.cjs +0 -1
- package/common/src/externalABIs/IQuoterV2.json.mjs +0 -203
- package/common/src/externalABIs/ISwapRouter.json.cjs +0 -1
- package/common/src/externalABIs/ISwapRouter.json.mjs +0 -537
- package/common/src/externalABIs/IUniswapV3Factory.json.cjs +0 -1
- package/common/src/externalABIs/IUniswapV3Factory.json.mjs +0 -188
- package/common/src/externalABIs/IUniswapV3Pool.json.cjs +0 -1
- package/common/src/externalABIs/IUniswapV3Pool.json.mjs +0 -938
- package/common/src/externalABIs/UniswapV2PoolAbi.json.cjs +0 -1
- package/common/src/externalABIs/UniswapV2PoolAbi.json.mjs +0 -78
- package/common/src/functions/pre-transaction/interaction-to-action.cjs +0 -1
- package/common/src/functions/pre-transaction/interaction-to-action.d.ts +0 -2
- package/common/src/functions/pre-transaction/interaction-to-action.mjs +0 -1
- package/common/src/functions/pre-transaction/recipientUtxoProcessing.cjs +0 -1
- package/common/src/functions/pre-transaction/recipientUtxoProcessing.d.ts +0 -3
- package/common/src/functions/pre-transaction/recipientUtxoProcessing.mjs +0 -30
- package/common/src/functions/private-wallet/opProducer.cjs +0 -1
- package/common/src/functions/private-wallet/opProducer.d.ts +0 -5
- package/common/src/functions/private-wallet/opProducer.mjs +0 -3
- package/common/src/functions/snarkjs/generateZkProofEnclave.cjs +0 -1
- package/common/src/functions/snarkjs/generateZkProofEnclave.d.ts +0 -5
- package/common/src/functions/snarkjs/generateZkProofEnclave.mjs +0 -27
- package/common/src/functions/utils/get-signature-header.cjs +0 -1
- package/common/src/functions/utils/get-signature-header.d.ts +0 -5
- package/common/src/functions/utils/get-signature-header.mjs +0 -4
- package/common/src/functions/web3/odosAPI.cjs +0 -1
- package/common/src/functions/web3/odosAPI.d.ts +0 -5
- package/common/src/functions/web3/odosAPI.mjs +0 -35
- package/common/src/functions/web3/oneInchAPI.cjs +0 -1
- package/common/src/functions/web3/oneInchAPI.d.ts +0 -5
- package/common/src/functions/web3/oneInchAPI.mjs +0 -44
- package/common/src/functions/web3/uniswapAPI.cjs +0 -1
- package/common/src/functions/web3/uniswapAPI.d.ts +0 -16
- package/common/src/functions/web3/uniswapAPI.mjs +0 -60
- package/common/src/webworker/workerProxy-MheXtWa4.js +0 -1
|
@@ -10,18 +10,18 @@ import "../../types/index.mjs";
|
|
|
10
10
|
import { validateAndGetChainId as u } from "../../functions/utils/token-check.utils.mjs";
|
|
11
11
|
import { addPaddingToUtxos as d } from "../../functions/web3/events/getShieldedBalance.mjs";
|
|
12
12
|
import { outputUtxoProcessing as f } from "../../functions/pre-transaction/outputUtxoProcessing.mjs";
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
13
|
+
import { getStorageAccountPublicKey as p, getStorageVaultPublicKey as m, getSwapperAccountPublicKeyFromSalt as h } from "../../functions/pre-transaction/solana.mjs";
|
|
14
|
+
import { constructAdminData as g } from "../../functions/pre-transaction/constructAdminData.mjs";
|
|
15
|
+
import { finalizeSolanaTxEnclaveCallRelay as _, prepareSolanaTxEnclaveCall as v } from "../../functions/snarkjs/constructTxEnclave.mjs";
|
|
16
|
+
import { calculateSolanaNullifierCount as y } from "../../functions/pre-transaction/calculateSolanaNullifierCount.mjs";
|
|
17
|
+
import { convertOKXToHinkalInstructions as ee } from "../../functions/pre-transaction/convert-okx-instructions.mjs";
|
|
18
|
+
import { ensureAmountChanges as te } from "../../functions/pre-transaction/ensureAmountChanges.mjs";
|
|
19
|
+
import { getFeeStructure as ne } from "../../functions/pre-transaction/getFeeStructure.mjs";
|
|
20
20
|
import { solanaTransactCallRelayer as b } from "../../functions/web3/functionCalls/transactCallRelayer.mjs";
|
|
21
|
-
import {
|
|
21
|
+
import { constructSolanaZkProof as x } from "../../functions/snarkjs/constructSolanaZkProof.mjs";
|
|
22
22
|
import { PublicKey as S } from "@solana/web3.js";
|
|
23
23
|
//#region libs/shared/common/src/data-structures/Hinkal/hinkalSolanaSwap.ts
|
|
24
|
-
var
|
|
24
|
+
var re = async (e, t, n, r) => {
|
|
25
25
|
let i = [...await d(e, t, n, r, 6)], a = s().toString(), o = [];
|
|
26
26
|
for (let t = 0; t < n.length; t += 1) {
|
|
27
27
|
let { outputUtxos: n } = f(e.userKeys, i[t], r[t], a);
|
|
@@ -31,61 +31,97 @@ var ne = async (e, t, n, r) => {
|
|
|
31
31
|
inputUtxosArray: i,
|
|
32
32
|
outputUtxosArray: o
|
|
33
33
|
};
|
|
34
|
-
},
|
|
35
|
-
let
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
s
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
34
|
+
}, ie = async (e, t, n, r, i, a, o, s, c, l, u, d, f, p) => {
|
|
35
|
+
let { jobId: m, signedMessageHash: h } = await v(e, {
|
|
36
|
+
chainId: t,
|
|
37
|
+
mintAddresses: n,
|
|
38
|
+
amountChanges: r,
|
|
39
|
+
relayAddress: a,
|
|
40
|
+
recipient: o,
|
|
41
|
+
signer: a,
|
|
42
|
+
functionName: "swap",
|
|
43
|
+
accounts: s,
|
|
44
|
+
onChainCreation: i,
|
|
45
|
+
relayerFee: c,
|
|
46
|
+
variableRate: l,
|
|
47
|
+
hinkalInstructions: u,
|
|
48
|
+
remainingAccounts: d,
|
|
49
|
+
swapperAccountSalt: f
|
|
50
|
+
}), { R8: g, S: y } = e.userKeys.signEddsa(BigInt(h));
|
|
51
|
+
return _(m, {
|
|
52
|
+
R8: g,
|
|
53
|
+
S: y
|
|
54
|
+
}, t, { adminData: p });
|
|
55
|
+
}, C = async (s, d, f, _, v, C, w, T, E) => {
|
|
56
|
+
let D = u(d), O = new S(t), { hinkalAddress: k, originalDeployer: A } = e[D].contractData;
|
|
57
|
+
if (!A) throw Error("No IDL configured for Solana program on this network");
|
|
58
|
+
let j = new S(A), M = new S(k), N = d.map((e) => e.erc20TokenAddress), { userKeys: ae, merkleTreeHinkalByChain: oe } = s, se = w ?? N[1];
|
|
59
|
+
if (w && w !== N[1]) throw Error("Solana swap fee token must match the output token");
|
|
60
|
+
let ce = {
|
|
61
|
+
mintFrom: N[0],
|
|
62
|
+
mintTo: N[1],
|
|
63
|
+
nullifierCount: await y(s, D, N, f),
|
|
64
|
+
rootInsertCount: 2
|
|
65
|
+
}, P = T ?? await ne(D, se, N, c.Okx, [], void 0, ce), F = f[1], I = Number(s.cacheDevice.get(l.SLIPPAGE_PERCENTAGE) ?? 0), L = d[1], R = r(L, F), z = Number(R) * I / 100;
|
|
66
|
+
f[1] -= i(L, z.toFixed(L.decimals));
|
|
67
|
+
let B = F * BigInt(P.variableRate ?? 0) / 10000n + P.flatFee;
|
|
68
|
+
if (f[1] -= B, f[1] < 0) throw Error(n.LOW_OUTPUT_AMOUNT);
|
|
69
|
+
let V = P.variableRate.toString(), [H, U] = await Promise.all([s.getRandomRelay(D, !0), s.getEthereumAddressByChain(D)]);
|
|
70
|
+
if (!H) throw Error(n.RELAYER_NOT_AVAILABLE);
|
|
71
|
+
let W = h(M, j, _), { remainingAccounts: G, hinkalInstructions: K } = ee(v, W), le = p(M, j), ue = m(M, j), de = d[0].erc20TokenAddress === "11111111111111111111111111111111" ? null : new S(d[0].erc20TokenAddress), fe = d[1].erc20TokenAddress === "11111111111111111111111111111111" ? null : new S(d[1].erc20TokenAddress), q = {
|
|
72
|
+
recipient: O.toString(),
|
|
73
|
+
storageAccount: le.toString(),
|
|
74
|
+
storageVault: ue.toString(),
|
|
75
|
+
swapperAccount: W.toString(),
|
|
76
|
+
mintFrom: de?.toString() ?? null,
|
|
77
|
+
mintTo: fe?.toString() ?? null,
|
|
78
|
+
remainingAccounts: G.map((e) => ({
|
|
61
79
|
pubkey: e.pubkey.toString(),
|
|
62
80
|
isSigner: e.isSigner,
|
|
63
81
|
isWritable: e.isWritable
|
|
64
82
|
})),
|
|
65
|
-
addressLookupTableAccount:
|
|
83
|
+
addressLookupTableAccount: C
|
|
84
|
+
}, J = g(E, D, N, f, U, d), Y = [!1, !0];
|
|
85
|
+
if (s.generateProofRemotely) {
|
|
86
|
+
let e = K.map((e) => ({
|
|
87
|
+
accountIndexes: [...e.accountIndexes],
|
|
88
|
+
data: [...e.data],
|
|
89
|
+
programIndex: e.programIndex
|
|
90
|
+
}));
|
|
91
|
+
return ie(s, D, N, f, Y, H, O.toString(), q, P.flatFee, P.variableRate, e, q.remainingAccounts, _, J);
|
|
92
|
+
}
|
|
93
|
+
let { inputUtxosArray: X, outputUtxosArray: Z } = await re(s, D, N, f), pe = s.userKeys.getShieldedPrivateKey(), Q = o.findCorrectRandomization(a(31), pe), $ = {
|
|
94
|
+
tokenNumber: 2,
|
|
95
|
+
nullifierAmount: X[0].length,
|
|
96
|
+
outputAmount: 1
|
|
66
97
|
};
|
|
98
|
+
te(X, Z, f);
|
|
99
|
+
let { proofAArr: me, proofBArr: he, proofCArr: ge, publicInputsArr: _e, commitmentValidationData: ve, rootHashHinkalIndex: ye, encryptedOutputs: be, onChainEncryptedOutput: xe } = await x(oe[D], ae, N, X, Z, Q, P.flatFee, P.variableRate, O.toString(), H, $, Y, D, K, G, _);
|
|
67
100
|
return b({
|
|
68
|
-
chainId:
|
|
69
|
-
relayAddress:
|
|
101
|
+
chainId: D,
|
|
102
|
+
relayAddress: H,
|
|
70
103
|
functionName: "swap",
|
|
71
104
|
args: {
|
|
72
|
-
encryptedOutputs:
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
105
|
+
encryptedOutputs: be,
|
|
106
|
+
onChainEncryptedOutput: xe,
|
|
107
|
+
onChainCreation: Y,
|
|
108
|
+
proofAArr: me,
|
|
109
|
+
proofBArr: he,
|
|
110
|
+
proofCArr: ge,
|
|
111
|
+
publicInputsArr: _e,
|
|
112
|
+
relayerFee: P.flatFee.toString(),
|
|
113
|
+
variableRate: V,
|
|
114
|
+
dimensions: $,
|
|
115
|
+
rootHashIndex: ye.toString(),
|
|
116
|
+
hinkalInstructions: K.map((e) => ({
|
|
81
117
|
accountIndexes: [...e.accountIndexes],
|
|
82
118
|
data: [...e.data],
|
|
83
119
|
programIndex: e.programIndex
|
|
84
120
|
}))
|
|
85
121
|
},
|
|
86
|
-
accounts:
|
|
87
|
-
commitmentValidationData:
|
|
88
|
-
adminData:
|
|
122
|
+
accounts: q,
|
|
123
|
+
commitmentValidationData: ve,
|
|
124
|
+
adminData: J
|
|
89
125
|
});
|
|
90
126
|
};
|
|
91
127
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../error-handling/error-codes.constants.cjs`),r=require(`../../functions/web3/etherFunctions.cjs`),i=require(`../crypto-keys/keys.cjs`),a=require(`../../functions/utils/time.utils.cjs`),o=require(`../../functions/utils/addresses.cjs`),s=require(`../../types/external-action.types.cjs`);require(`../../types/index.cjs`);const 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/pre-transaction/constructAdminData.cjs`),f=require(`../../functions/snarkjs/constructTxEnclave.cjs`),p=require(`../../functions/pre-transaction/calculateSolanaNullifierCount.cjs`),m=require(`../../functions/pre-transaction/ensureAmountChanges.cjs`),h=require(`../../functions/pre-transaction/getFeeStructure.cjs`);require(`../../functions/pre-transaction/index.cjs`);const g=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`),_=require(`../../functions/utils/fees.utils.cjs`),v=require(`../../functions/snarkjs/constructSolanaZkProof.cjs`);var y=async(e,t,n,r,i,o)=>{let s=(await l.addPaddingToUtxos(e,t,n,r,6))[0],c=a.getCurrentTimeInSeconds().toString(),{outputUtxos:d}=u.outputUtxoProcessing(e.userKeys,s,r[0],c,!0,[i],[o]);return{inputUtxos:s,senderUtxo:d[0],recipientUtxo:d[1]}},b=async(e,n,r,i,a,o,s,c,l,u)=>{let{jobId:d,signedMessageHash:p}=await f.prepareSolanaTxEnclaveCall(e,{chainId:n,mintAddresses:r,amountChanges:i,relayAddress:s,recipient:t.solanaNativeAddress,signer:s,functionName:`transfer`,accounts:c,relayerFee:l,variableRate:0n,hinkalInstructions:[],remainingAccounts:[],recipientAddress:a,recipientAmounts:[o]}),{R8:m,S:h}=e.userKeys.signEddsa(BigInt(p));return f.finalizeSolanaTxEnclaveCallRelay(d,{R8:m,S:h},n,{adminData:u})},x=async(a,l,u,f,g,b,x)=>{if(!o.isValidPrivateAddress(f))throw Error(n.transactionErrorCodes.RECIPIENT_FORMAT_INCORRECT);let S=c.validateAndGetChainId(l),C=[...u],{originalDeployer:w}=e.networkRegistry[S].contractData;if(!w)throw Error(`missing data`);let{userKeys:T,merkleTreeHinkalByChain:E}=a,D=l.map(e=>e.erc20TokenAddress);if(D.length>1)throw Error(`Solana Transfer: Only one mint address is supported`);let O=g??D[0],k={mintTo:O,nullifierCount:await p.calculateSolanaNullifierCount(a,S,D,C),rootInsertCount:2},A=b??await h.getFeeStructure(S,O,D,s.ExternalActionId.Transact,[],5n,k);A.variableRate||=t.HINKAL_PRIVATE_SEND_VARIABLE_RATE;let j=_.calculateTotalFee(-C[0],A),M=-C[0];C[0]-=j;let[N,P,{inputUtxos:F,senderUtxo:I,recipientUtxo:L}]=await Promise.all([a.getRandomRelay(S,!0),a.getEthereumAddressByChain(S),y(a,S,D,C,f,M)]);if(!N)throw Error(n.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let R=i.UserKeys.findCorrectRandomization(r.randomBigInt(31),a.userKeys.getShieldedPrivateKey()),z={tokenNumber:D.length,nullifierAmount:F.length,outputAmount:2};m.ensureAmountChanges([F],[[I]],C);let{proofAArr:B,proofBArr:V,proofCArr:H,publicInputsArr:U,commitmentValidationData:W,rootHashHinkalIndex:G,encryptedOutputs:K}=await v.constructSolanaZkProof(E[S],T,[D[0]],[F],[[I,L]],R,j,0n,t.solanaNativeAddress,N,z,void 0,S),q={recipient:N,mint:D[0]===`11111111111111111111111111111111`?void 0:D[0]};return{chainId:S,relay:N,args:{proofAArr:B,proofBArr:V,proofCArr:H,publicInputsArr:U,encryptedOutputs:K,relayerFee:j.toString(),dimensions:z,rootHashIndex:G.toString()},accounts:q,adminData:d.constructAdminData(x,S,D,C,P),commitmentValidationData:W,recipientUtxo:L}},S=async(e,r,i,a,l,u,f,m=!1)=>{if(m)throw Error(`onlyGasEstimate is not supported for Solana transfer`);if(!o.isValidPrivateAddress(a))throw Error(n.transactionErrorCodes.RECIPIENT_FORMAT_INCORRECT);let v=c.validateAndGetChainId(r),y=[...i],S=r.map(e=>e.erc20TokenAddress);if(S.length>1)throw Error(`Solana Transfer: Only one mint address is supported`);if(e.generateProofRemotely){let r=u??await h.getFeeStructure(v,l,S,s.ExternalActionId.Transact,[],5n,{mintTo:l??S[0],nullifierCount:await p.calculateSolanaNullifierCount(e,v,S,y),rootInsertCount:2});r.variableRate||=t.HINKAL_PRIVATE_SEND_VARIABLE_RATE;let i=_.calculateTotalFee(-y[0],r),o=-y[0];y[0]-=i;let[c,m]=await Promise.all([e.getRandomRelay(v,!0),e.getEthereumAddressByChain(v)]);if(!c)throw Error(n.transactionErrorCodes.RELAYER_NOT_AVAILABLE);return b(e,v,S,y,a,o,c,{recipient:c,mint:S[0]===`11111111111111111111111111111111`?void 0:S[0]},i,d.constructAdminData(f,v,S,y,m))}let C=await x(e,r,i,a,l,u,f);return g.solanaTransactCallRelayer({chainId:C.chainId,relayAddress:C.relay,functionName:`transfer`,args:C.args,accounts:C.accounts,adminData:C.adminData,commitmentValidationData:C.commitmentValidationData})};exports.hinkalSolanaTransfer=S;
|
|
@@ -10,78 +10,123 @@ import "../../types/index.mjs";
|
|
|
10
10
|
import { validateAndGetChainId as l } from "../../functions/utils/token-check.utils.mjs";
|
|
11
11
|
import { addPaddingToUtxos as u } from "../../functions/web3/events/getShieldedBalance.mjs";
|
|
12
12
|
import { outputUtxoProcessing as d } from "../../functions/pre-transaction/outputUtxoProcessing.mjs";
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
13
|
+
import { constructAdminData as f } from "../../functions/pre-transaction/constructAdminData.mjs";
|
|
14
|
+
import { finalizeSolanaTxEnclaveCallRelay as p, prepareSolanaTxEnclaveCall as m } from "../../functions/snarkjs/constructTxEnclave.mjs";
|
|
15
|
+
import { calculateSolanaNullifierCount as h } from "../../functions/pre-transaction/calculateSolanaNullifierCount.mjs";
|
|
16
|
+
import { ensureAmountChanges as g } from "../../functions/pre-transaction/ensureAmountChanges.mjs";
|
|
17
|
+
import { getFeeStructure as _ } from "../../functions/pre-transaction/getFeeStructure.mjs";
|
|
17
18
|
import "../../functions/pre-transaction/index.mjs";
|
|
18
|
-
import { calculateTotalFee as g } from "../../functions/utils/fees.utils.mjs";
|
|
19
|
-
import { constructSolanaZkProof as _ } from "../../functions/snarkjs/constructSolanaZkProof.mjs";
|
|
20
19
|
import { solanaTransactCallRelayer as v } from "../../functions/web3/functionCalls/transactCallRelayer.mjs";
|
|
21
|
-
import {
|
|
20
|
+
import { calculateTotalFee as y } from "../../functions/utils/fees.utils.mjs";
|
|
21
|
+
import { constructSolanaZkProof as b } from "../../functions/snarkjs/constructSolanaZkProof.mjs";
|
|
22
22
|
//#region libs/shared/common/src/data-structures/Hinkal/hinkalSolanaTransfer.ts
|
|
23
|
-
var
|
|
24
|
-
let s = (await u(e, t, n, r, 6))[0], c = o().toString(), { outputUtxos: l } = d(e.userKeys, s, r[0], c, !0, i, a);
|
|
23
|
+
var x = async (e, t, n, r, i, a) => {
|
|
24
|
+
let s = (await u(e, t, n, r, 6))[0], c = o().toString(), { outputUtxos: l } = d(e.userKeys, s, r[0], c, !0, [i], [a]);
|
|
25
25
|
return {
|
|
26
26
|
inputUtxos: s,
|
|
27
27
|
senderUtxo: l[0],
|
|
28
28
|
recipientUtxo: l[1]
|
|
29
29
|
};
|
|
30
|
-
},
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
30
|
+
}, S = async (e, t, r, i, a, o, s, c, l, u) => {
|
|
31
|
+
let { jobId: d, signedMessageHash: f } = await m(e, {
|
|
32
|
+
chainId: t,
|
|
33
|
+
mintAddresses: r,
|
|
34
|
+
amountChanges: i,
|
|
35
|
+
relayAddress: s,
|
|
36
|
+
recipient: n,
|
|
37
|
+
signer: s,
|
|
38
|
+
functionName: "transfer",
|
|
39
|
+
accounts: c,
|
|
40
|
+
relayerFee: l,
|
|
41
|
+
variableRate: 0n,
|
|
42
|
+
hinkalInstructions: [],
|
|
43
|
+
remainingAccounts: [],
|
|
44
|
+
recipientAddress: a,
|
|
45
|
+
recipientAmounts: [o]
|
|
46
|
+
}), { R8: h, S: g } = e.userKeys.signEddsa(BigInt(f));
|
|
47
|
+
return p(d, {
|
|
48
|
+
R8: h,
|
|
49
|
+
S: g
|
|
50
|
+
}, t, { adminData: u });
|
|
51
|
+
}, C = async (o, u, d, p, m, v, S) => {
|
|
52
|
+
if (!s(p)) throw Error(r.RECIPIENT_FORMAT_INCORRECT);
|
|
53
|
+
let C = l(u), w = [...d], { originalDeployer: T } = e[C].contractData;
|
|
54
|
+
if (!T) throw Error("missing data");
|
|
55
|
+
let { userKeys: E, merkleTreeHinkalByChain: D } = o, O = u.map((e) => e.erc20TokenAddress);
|
|
56
|
+
if (O.length > 1) throw Error("Solana Transfer: Only one mint address is supported");
|
|
57
|
+
let k = m ?? O[0], A = {
|
|
58
|
+
mintTo: k,
|
|
59
|
+
nullifierCount: await h(o, C, O, w),
|
|
60
|
+
rootInsertCount: 2
|
|
61
|
+
}, j = v ?? await _(C, k, O, c.Transact, [], 5n, A);
|
|
62
|
+
j.variableRate ||= t;
|
|
63
|
+
let M = y(-w[0], j), N = -w[0];
|
|
64
|
+
w[0] -= M;
|
|
65
|
+
let [P, F, { inputUtxos: I, senderUtxo: L, recipientUtxo: R }] = await Promise.all([
|
|
66
|
+
o.getRandomRelay(C, !0),
|
|
67
|
+
o.getEthereumAddressByChain(C),
|
|
68
|
+
x(o, C, O, w, p, N)
|
|
44
69
|
]);
|
|
45
|
-
if (!
|
|
46
|
-
let
|
|
47
|
-
tokenNumber:
|
|
48
|
-
nullifierAmount:
|
|
70
|
+
if (!P) throw Error(r.RELAYER_NOT_AVAILABLE);
|
|
71
|
+
let z = a.findCorrectRandomization(i(31), o.userKeys.getShieldedPrivateKey()), B = {
|
|
72
|
+
tokenNumber: O.length,
|
|
73
|
+
nullifierAmount: I.length,
|
|
49
74
|
outputAmount: 2
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
let { proofAArr: V, proofBArr: H, proofCArr: U, publicInputsArr: W, commitmentValidationData: G } = await
|
|
53
|
-
recipient:
|
|
54
|
-
mint:
|
|
75
|
+
};
|
|
76
|
+
g([I], [[L]], w);
|
|
77
|
+
let { proofAArr: V, proofBArr: H, proofCArr: U, publicInputsArr: W, commitmentValidationData: G, rootHashHinkalIndex: K, encryptedOutputs: q } = await b(D[C], E, [O[0]], [I], [[L, R]], z, M, 0n, n, P, B, void 0, C), J = {
|
|
78
|
+
recipient: P,
|
|
79
|
+
mint: O[0] === "11111111111111111111111111111111" ? void 0 : O[0]
|
|
55
80
|
};
|
|
56
81
|
return {
|
|
57
|
-
chainId:
|
|
58
|
-
relay:
|
|
82
|
+
chainId: C,
|
|
83
|
+
relay: P,
|
|
59
84
|
args: {
|
|
60
85
|
proofAArr: V,
|
|
61
86
|
proofBArr: H,
|
|
62
87
|
proofCArr: U,
|
|
63
88
|
publicInputsArr: W,
|
|
64
|
-
encryptedOutputs:
|
|
65
|
-
relayerFee:
|
|
66
|
-
dimensions:
|
|
89
|
+
encryptedOutputs: q,
|
|
90
|
+
relayerFee: M.toString(),
|
|
91
|
+
dimensions: B,
|
|
92
|
+
rootHashIndex: K.toString()
|
|
67
93
|
},
|
|
68
|
-
accounts:
|
|
69
|
-
adminData:
|
|
94
|
+
accounts: J,
|
|
95
|
+
adminData: f(S, C, O, w, F),
|
|
70
96
|
commitmentValidationData: G,
|
|
71
|
-
recipientUtxo:
|
|
97
|
+
recipientUtxo: R
|
|
72
98
|
};
|
|
73
|
-
},
|
|
74
|
-
if (
|
|
75
|
-
|
|
99
|
+
}, w = async (e, n, i, a, o, u, d, p = !1) => {
|
|
100
|
+
if (p) throw Error("onlyGasEstimate is not supported for Solana transfer");
|
|
101
|
+
if (!s(a)) throw Error(r.RECIPIENT_FORMAT_INCORRECT);
|
|
102
|
+
let m = l(n), g = [...i], b = n.map((e) => e.erc20TokenAddress);
|
|
103
|
+
if (b.length > 1) throw Error("Solana Transfer: Only one mint address is supported");
|
|
104
|
+
if (e.generateProofRemotely) {
|
|
105
|
+
let n = u ?? await _(m, o, b, c.Transact, [], 5n, {
|
|
106
|
+
mintTo: o ?? b[0],
|
|
107
|
+
nullifierCount: await h(e, m, b, g),
|
|
108
|
+
rootInsertCount: 2
|
|
109
|
+
});
|
|
110
|
+
n.variableRate ||= t;
|
|
111
|
+
let i = y(-g[0], n), s = -g[0];
|
|
112
|
+
g[0] -= i;
|
|
113
|
+
let [l, p] = await Promise.all([e.getRandomRelay(m, !0), e.getEthereumAddressByChain(m)]);
|
|
114
|
+
if (!l) throw Error(r.RELAYER_NOT_AVAILABLE);
|
|
115
|
+
return S(e, m, b, g, a, s, l, {
|
|
116
|
+
recipient: l,
|
|
117
|
+
mint: b[0] === "11111111111111111111111111111111" ? void 0 : b[0]
|
|
118
|
+
}, i, f(d, m, b, g, p));
|
|
119
|
+
}
|
|
120
|
+
let x = await C(e, n, i, a, o, u, d);
|
|
76
121
|
return v({
|
|
77
|
-
chainId:
|
|
78
|
-
relayAddress:
|
|
122
|
+
chainId: x.chainId,
|
|
123
|
+
relayAddress: x.relay,
|
|
79
124
|
functionName: "transfer",
|
|
80
|
-
args:
|
|
81
|
-
accounts:
|
|
82
|
-
adminData:
|
|
83
|
-
commitmentValidationData:
|
|
125
|
+
args: x.args,
|
|
126
|
+
accounts: x.accounts,
|
|
127
|
+
adminData: x.adminData,
|
|
128
|
+
commitmentValidationData: x.commitmentValidationData
|
|
84
129
|
});
|
|
85
130
|
};
|
|
86
131
|
//#endregion
|
|
87
|
-
export {
|
|
132
|
+
export { w as hinkalSolanaTransfer };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const e=require(`../../constants/chains.constants.cjs`);require(`../../constants/protocol.constants.cjs`);const t=require(`../../error-handling/error-codes.constants.cjs`),n=require(`../../functions/web3/etherFunctions.cjs`),r=require(`../crypto-keys/keys.cjs`),i=require(`../../functions/utils/time.utils.cjs`),a=require(`../../types/external-action.types.cjs`);require(`../../types/index.cjs`);const 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/pre-transaction/constructAdminData.cjs`),u=require(`../../functions/snarkjs/constructTxEnclave.cjs`),d=require(`../../functions/pre-transaction/calculateSolanaNullifierCount.cjs`),f=require(`../../functions/pre-transaction/ensureAmountChanges.cjs`),p=require(`../../functions/pre-transaction/getFeeStructure.cjs`);require(`../../functions/pre-transaction/index.cjs`);const m=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`);require(`../../constants/index.cjs`);const h=require(`../../functions/utils/fees.utils.cjs`),g=require(`../../functions/snarkjs/constructSolanaZkProof.cjs`);var _=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}},v=async(e,t,n,r,i,a,o,s,c)=>{let{jobId:l,signedMessageHash:d}=await u.prepareSolanaTxEnclaveCall(e,{chainId:t,mintAddresses:n,amountChanges:r,relayAddress:a,recipient:i,signer:a,functionName:`transact`,accounts:o,relayerFee:s.flatFee,variableRate:s.variableRate,hinkalInstructions:[],remainingAccounts:[]}),{R8:f,S:p}=e.userKeys.signEddsa(BigInt(d));return u.finalizeSolanaTxEnclaveCallRelay(l,{R8:f,S:p},t,{adminData:c})},y=async(i,s,c,u,y,b,x)=>{let S=o.validateAndGetChainId(s),C=s.map(e=>e.erc20TokenAddress),w=s[0];if(!w)throw Error(`Solana Withdraw: No Token Found`);let{originalDeployer:T}=e.networkRegistry[S].contractData;if(!T)throw Error(`missing data`);let{userKeys:E,merkleTreeHinkalByChain:D}=i,O=y??C[0],k={mintTo:C[0],recipient:u,nullifierCount:await d.calculateSolanaNullifierCount(i,S,C,c)},A=b??await p.getFeeStructure(S,O,C,a.ExternalActionId.Transact,[],void 0,k),j=await h.calculateModifiedFeeStructure(S,w,-c[0],A);c[0]-=j.flatFee;let[M,N]=await Promise.all([i.getRandomRelay(S,!0),i.getEthereumAddress()]);if(!M)throw Error(t.transactionErrorCodes.RELAYER_NOT_AVAILABLE);if(C.length>1)throw Error(`Solana Withdraw: Only one mint address is supported`);let P={recipient:u,mint:C[0]===`11111111111111111111111111111111`?void 0:C[0]},F=l.constructAdminData(x,S,C,c,N);if(i.generateProofRemotely)return v(i,S,C,c,u,M,P,j,F);let{inputUtxos:I,outputUtxos:L}=await _(i,S,C,c),R=r.UserKeys.findCorrectRandomization(n.randomBigInt(31),i.userKeys.getShieldedPrivateKey()),z={tokenNumber:C.length,nullifierAmount:I.length,outputAmount:L.length};f.ensureAmountChanges([I],[L],c);let{proofAArr:B,proofBArr:V,proofCArr:H,publicInputsArr:U,commitmentValidationData:W,rootHashHinkalIndex:G,encryptedOutputs:K}=await g.constructSolanaZkProof(D[S],E,[C[0]],[I],[L],R,j.flatFee,j.variableRate,u,M,z,void 0,S);return m.solanaTransactCallRelayer({chainId:S,relayAddress:M,functionName:`transact`,args:{proofAArr:B,proofBArr:V,proofCArr:H,publicInputsArr:U,encryptedOutputs:K,relayerFee:j.flatFee.toString(),dimensions:z,rootHashIndex:G.toString()},accounts:P,commitmentValidationData:W,adminData:F})};exports.hinkalSolanaWithdraw=y;
|
|
@@ -9,60 +9,86 @@ import "../../types/index.mjs";
|
|
|
9
9
|
import { validateAndGetChainId as o } from "../../functions/utils/token-check.utils.mjs";
|
|
10
10
|
import { addPaddingToUtxos as s } from "../../functions/web3/events/getShieldedBalance.mjs";
|
|
11
11
|
import { outputUtxoProcessing as c } from "../../functions/pre-transaction/outputUtxoProcessing.mjs";
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
12
|
+
import { constructAdminData as l } from "../../functions/pre-transaction/constructAdminData.mjs";
|
|
13
|
+
import { finalizeSolanaTxEnclaveCallRelay as u, prepareSolanaTxEnclaveCall as d } from "../../functions/snarkjs/constructTxEnclave.mjs";
|
|
14
|
+
import { calculateSolanaNullifierCount as f } from "../../functions/pre-transaction/calculateSolanaNullifierCount.mjs";
|
|
15
|
+
import { ensureAmountChanges as p } from "../../functions/pre-transaction/ensureAmountChanges.mjs";
|
|
16
|
+
import { getFeeStructure as m } from "../../functions/pre-transaction/getFeeStructure.mjs";
|
|
16
17
|
import "../../functions/pre-transaction/index.mjs";
|
|
17
|
-
import "../../constants/index.mjs";
|
|
18
|
-
import { calculateModifiedFeeStructure as p } from "../../functions/utils/fees.utils.mjs";
|
|
19
|
-
import { constructSolanaZkProof as m } from "../../functions/snarkjs/constructSolanaZkProof.mjs";
|
|
20
18
|
import { solanaTransactCallRelayer as h } from "../../functions/web3/functionCalls/transactCallRelayer.mjs";
|
|
21
|
-
import
|
|
19
|
+
import "../../constants/index.mjs";
|
|
20
|
+
import { calculateModifiedFeeStructure as g } from "../../functions/utils/fees.utils.mjs";
|
|
21
|
+
import { constructSolanaZkProof as _ } from "../../functions/snarkjs/constructSolanaZkProof.mjs";
|
|
22
22
|
//#region libs/shared/common/src/data-structures/Hinkal/hinkalSolanaWithdraw.ts
|
|
23
|
-
var
|
|
23
|
+
var v = async (e, t, n, r) => {
|
|
24
24
|
let a = [...await s(e, t, n, r, 6)][0], o = i().toString(), { outputUtxos: l } = c(e.userKeys, a, r[0], o);
|
|
25
25
|
return {
|
|
26
26
|
inputUtxos: a,
|
|
27
27
|
outputUtxos: l
|
|
28
28
|
};
|
|
29
|
-
},
|
|
29
|
+
}, y = async (e, t, n, r, i, a, o, s, c) => {
|
|
30
|
+
let { jobId: l, signedMessageHash: f } = await d(e, {
|
|
31
|
+
chainId: t,
|
|
32
|
+
mintAddresses: n,
|
|
33
|
+
amountChanges: r,
|
|
34
|
+
relayAddress: a,
|
|
35
|
+
recipient: i,
|
|
36
|
+
signer: a,
|
|
37
|
+
functionName: "transact",
|
|
38
|
+
accounts: o,
|
|
39
|
+
relayerFee: s.flatFee,
|
|
40
|
+
variableRate: s.variableRate,
|
|
41
|
+
hinkalInstructions: [],
|
|
42
|
+
remainingAccounts: []
|
|
43
|
+
}), { R8: p, S: m } = e.userKeys.signEddsa(BigInt(f));
|
|
44
|
+
return u(l, {
|
|
45
|
+
R8: p,
|
|
46
|
+
S: m
|
|
47
|
+
}, t, { adminData: c });
|
|
48
|
+
}, b = async (i, s, c, u, d, b, x) => {
|
|
30
49
|
let S = o(s), C = s.map((e) => e.erc20TokenAddress), w = s[0];
|
|
31
50
|
if (!w) throw Error("Solana Withdraw: No Token Found");
|
|
32
51
|
let { originalDeployer: T } = e[S].contractData;
|
|
33
52
|
if (!T) throw Error("missing data");
|
|
34
|
-
let { userKeys: E, merkleTreeHinkalByChain: D } = i, O =
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
53
|
+
let { userKeys: E, merkleTreeHinkalByChain: D } = i, O = d ?? C[0], k = {
|
|
54
|
+
mintTo: C[0],
|
|
55
|
+
recipient: u,
|
|
56
|
+
nullifierCount: await f(i, S, C, c)
|
|
57
|
+
}, A = b ?? await m(S, O, C, a.Transact, [], void 0, k), j = await g(S, w, -c[0], A);
|
|
58
|
+
c[0] -= j.flatFee;
|
|
59
|
+
let [M, N] = await Promise.all([i.getRandomRelay(S, !0), i.getEthereumAddress()]);
|
|
60
|
+
if (!M) throw Error(t.RELAYER_NOT_AVAILABLE);
|
|
38
61
|
if (C.length > 1) throw Error("Solana Withdraw: Only one mint address is supported");
|
|
39
|
-
let
|
|
40
|
-
|
|
41
|
-
nullifierAmount: j.length,
|
|
42
|
-
outputAmount: M.length
|
|
43
|
-
}, F = l([M])[0][0], I = Array.from(g.getBytes(F));
|
|
44
|
-
d([j], [M], c);
|
|
45
|
-
let { proofAArr: L, proofBArr: R, proofCArr: z, publicInputsArr: B, commitmentValidationData: V } = await m(i.generateProofRemotely, D[S], E, [C[0]], [j], [M], N, k.flatFee, k.variableRate, v, A, P, [I], S), H = {
|
|
46
|
-
recipient: v,
|
|
62
|
+
let P = {
|
|
63
|
+
recipient: u,
|
|
47
64
|
mint: C[0] === "11111111111111111111111111111111" ? void 0 : C[0]
|
|
65
|
+
}, F = l(x, S, C, c, N);
|
|
66
|
+
if (i.generateProofRemotely) return y(i, S, C, c, u, M, P, j, F);
|
|
67
|
+
let { inputUtxos: I, outputUtxos: L } = await v(i, S, C, c), R = r.findCorrectRandomization(n(31), i.userKeys.getShieldedPrivateKey()), z = {
|
|
68
|
+
tokenNumber: C.length,
|
|
69
|
+
nullifierAmount: I.length,
|
|
70
|
+
outputAmount: L.length
|
|
48
71
|
};
|
|
72
|
+
p([I], [L], c);
|
|
73
|
+
let { proofAArr: B, proofBArr: V, proofCArr: H, publicInputsArr: U, commitmentValidationData: W, rootHashHinkalIndex: G, encryptedOutputs: K } = await _(D[S], E, [C[0]], [I], [L], R, j.flatFee, j.variableRate, u, M, z, void 0, S);
|
|
49
74
|
return h({
|
|
50
75
|
chainId: S,
|
|
51
|
-
relayAddress:
|
|
76
|
+
relayAddress: M,
|
|
52
77
|
functionName: "transact",
|
|
53
78
|
args: {
|
|
54
|
-
proofAArr:
|
|
55
|
-
proofBArr:
|
|
56
|
-
proofCArr:
|
|
57
|
-
publicInputsArr:
|
|
58
|
-
encryptedOutputs:
|
|
59
|
-
relayerFee:
|
|
60
|
-
dimensions:
|
|
79
|
+
proofAArr: B,
|
|
80
|
+
proofBArr: V,
|
|
81
|
+
proofCArr: H,
|
|
82
|
+
publicInputsArr: U,
|
|
83
|
+
encryptedOutputs: K,
|
|
84
|
+
relayerFee: j.flatFee.toString(),
|
|
85
|
+
dimensions: z,
|
|
86
|
+
rootHashIndex: G.toString()
|
|
61
87
|
},
|
|
62
|
-
accounts:
|
|
63
|
-
commitmentValidationData:
|
|
64
|
-
adminData:
|
|
88
|
+
accounts: P,
|
|
89
|
+
commitmentValidationData: W,
|
|
90
|
+
adminData: F
|
|
65
91
|
});
|
|
66
92
|
};
|
|
67
93
|
//#endregion
|
|
68
|
-
export {
|
|
94
|
+
export { b as hinkalSolanaWithdraw };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../constants/protocol.constants.cjs`);const e=require(`../../error-handling/error-codes.constants.cjs`),t=require(`../../
|
|
1
|
+
require(`../../constants/protocol.constants.cjs`);const e=require(`../../error-handling/error-codes.constants.cjs`),t=require(`../../types/transact.types.cjs`),n=require(`../../functions/utils/token-check.utils.cjs`),r=require(`../../functions/pre-transaction/constructAdminData.cjs`),i=require(`../../functions/pre-transaction/getFeeStructure.cjs`),a=require(`../../functions/pre-transaction/getExternalSwapAddress.cjs`);require(`../../functions/pre-transaction/index.cjs`);const o=require(`./hinkalTransact.cjs`),s=require(`../../functions/pre-transaction/merge-with-fee-structure.cjs`);var c=async(c,l,u,d,f,p,m,h)=>{let g=n.validateAndGetChainId(l),_=l.map(e=>e.erc20TokenAddress),v=await c.getEthereumAddressByChain(g),y=m??await i.getFeeStructure(g,p,_,d,void 0,35n);await s.mergeWithFeeStructure(g,_,u,y);let b=a.getExternalSwapAddress(g,d),x=[!1,!0,!1].slice(0,u.length),S=await c.getRandomRelay(g,!0);if(!S)throw Error(e.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let C=r.constructAdminData(h,g,_,u,v,l);return o.hinkalTransact(c,{chainId:g,erc20Addresses:_,amountChanges:u,externalAddress:b,externalActionId:d,externalActionMetadata:f,onChainCreation:x,feeStructure:y,relay:S,submit:{mode:t.SubmitMode.Relayer,adminData:C}})};exports.hinkalSwap=c;
|
|
@@ -1,42 +1,39 @@
|
|
|
1
1
|
import "../../constants/protocol.constants.mjs";
|
|
2
2
|
import { transactionErrorCodes as e } from "../../error-handling/error-codes.constants.mjs";
|
|
3
|
-
import {
|
|
3
|
+
import { SubmitMode as t } from "../../types/transact.types.mjs";
|
|
4
4
|
import { validateAndGetChainId as n } from "../../functions/utils/token-check.utils.mjs";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { getFeeStructure as o } from "../../functions/pre-transaction/getFeeStructure.mjs";
|
|
5
|
+
import { constructAdminData as r } from "../../functions/pre-transaction/constructAdminData.mjs";
|
|
6
|
+
import { getFeeStructure as i } from "../../functions/pre-transaction/getFeeStructure.mjs";
|
|
7
|
+
import { getExternalSwapAddress as a } from "../../functions/pre-transaction/getExternalSwapAddress.mjs";
|
|
9
8
|
import "../../functions/pre-transaction/index.mjs";
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import { getExternalSwapAddress as l } from "../../functions/pre-transaction/getExternalSwapAddress.mjs";
|
|
13
|
-
import { mergeWithFeeStructure as u } from "../../functions/pre-transaction/merge-with-fee-structure.mjs";
|
|
9
|
+
import { hinkalTransact as o } from "./hinkalTransact.mjs";
|
|
10
|
+
import { mergeWithFeeStructure as s } from "../../functions/pre-transaction/merge-with-fee-structure.mjs";
|
|
14
11
|
//#region libs/shared/common/src/data-structures/Hinkal/hinkalSwap.ts
|
|
15
|
-
var
|
|
16
|
-
let
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
c.push(n);
|
|
20
|
-
}
|
|
21
|
-
return {
|
|
22
|
-
inputUtxosArray: s,
|
|
23
|
-
outputUtxosArray: c
|
|
24
|
-
};
|
|
25
|
-
}, f = async (t, r, i, f, p, m, h, g) => {
|
|
26
|
-
let _ = n(r), v = r.map((e) => e.erc20TokenAddress), y = await t.getEthereumAddressByChain(_), b = h ?? await o(_, m, v, f, void 0, 35n);
|
|
27
|
-
await u(_, v, i, b);
|
|
28
|
-
let x = {
|
|
29
|
-
externalActionId: f,
|
|
30
|
-
externalAddress: l(_, f),
|
|
31
|
-
externalActionMetadata: p
|
|
32
|
-
}, [S, { inputUtxosArray: C, outputUtxosArray: w }] = await Promise.all([t.getRandomRelay(_, !0), d(t, _, v, i)]);
|
|
33
|
-
if (!S) throw Error(e.RELAYER_NOT_AVAILABLE);
|
|
34
|
-
let T = [
|
|
12
|
+
var c = async (c, l, u, d, f, p, m, h) => {
|
|
13
|
+
let g = n(l), _ = l.map((e) => e.erc20TokenAddress), v = await c.getEthereumAddressByChain(g), y = m ?? await i(g, p, _, d, void 0, 35n);
|
|
14
|
+
await s(g, _, u, y);
|
|
15
|
+
let b = a(g, d), x = [
|
|
35
16
|
!1,
|
|
36
17
|
!0,
|
|
37
18
|
!1
|
|
38
|
-
].slice(0,
|
|
39
|
-
|
|
19
|
+
].slice(0, u.length), S = await c.getRandomRelay(g, !0);
|
|
20
|
+
if (!S) throw Error(e.RELAYER_NOT_AVAILABLE);
|
|
21
|
+
let C = r(h, g, _, u, v, l);
|
|
22
|
+
return o(c, {
|
|
23
|
+
chainId: g,
|
|
24
|
+
erc20Addresses: _,
|
|
25
|
+
amountChanges: u,
|
|
26
|
+
externalAddress: b,
|
|
27
|
+
externalActionId: d,
|
|
28
|
+
externalActionMetadata: f,
|
|
29
|
+
onChainCreation: x,
|
|
30
|
+
feeStructure: y,
|
|
31
|
+
relay: S,
|
|
32
|
+
submit: {
|
|
33
|
+
mode: t.Relayer,
|
|
34
|
+
adminData: C
|
|
35
|
+
}
|
|
36
|
+
});
|
|
40
37
|
};
|
|
41
38
|
//#endregion
|
|
42
|
-
export {
|
|
39
|
+
export { c as hinkalSwap };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require(`../../constants/protocol.constants.cjs`),t=require(`../../types/hinkal.types.cjs`),n=require(`../../functions/utils/time.utils.cjs`),r=require(`../utxo/Utxo.cjs`),i=require(`../../types/transact.types.cjs`),a=require(`../../functions/web3/events/getShieldedBalance.cjs`),o=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),s=require(`../../functions/snarkjs/common.snarkjs.cjs`),c=require(`../../functions/snarkjs/constructTxEnclave.cjs`),l=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),u=require(`../../functions/web3/functionCalls/submitProof.cjs`);var d=2,f=6,p=(e,t)=>{let n=Math.max(...t.map(e=>e.length))<=d?d:f;return t.map(t=>{let i=t[0];if(!i)throw Error(`hinkalTransact: inputUtxos must contain at least one note per token`);let a=[...t];for(;a.length<n;)a.push(new r.Utxo({amount:0n,erc20TokenAddress:i.erc20TokenAddress,mintAddress:i.mintAddress,nullifyingKey:e.getShieldedPrivateKey(),spendingPublicKey:e.getSpendingKeyPair().pubSpendingBJJPoint}));return a})},m=async(r,i,s)=>{let{chainId:c,erc20Addresses:u,amountChanges:d,externalAddress:f,externalActionId:m,externalActionMetadata:h,feeStructure:g,relay:_,onChainCreation:v,recipientAddress:y,recipientAmounts:b,useBlockedUtxos:x,inputUtxos:S,forceEmptyUtxos:C,originalSender:w,subAccountPrivateKey:T,emporiumOps:E}=i,D=S?p(s,S):[...await a.addPaddingToUtxos(r,c,u,d,void 0,C,x)],O=n.getCurrentTimeInSeconds().toString(),k=u.map((e,t)=>o.outputUtxoProcessing(s,D[t],d[t],O,!0,y,y===void 0?void 0:b?.map(e=>e[t]??0n)).outputUtxos),{zkCallData:A,circomData:j,dimData:M,commitmentValidationData:N}=await l.constructZkProof(r.merkleTreeHinkalByChain[c],D,k,s,m??0n,f,E??h??`0x00`,g??t.zeroFeeStructure,_??e.zeroAddress,c,v,void 0,w,T);return{zkCallData:A,circomData:j,dimData:M,commitmentValidationData:N}},h=async(e,t,n)=>{let{chainId:r,erc20Addresses:i,externalAddress:a,amountChanges:o,relay:s,feeStructure:l,externalActionId:u,externalActionMetadata:d,onChainCreation:f,recipientAddress:p,recipientAmounts:m,useBlockedUtxos:h,createBlockedUtxos:g,skipLock:_,selfOutputAmounts:v,forceEmptyUtxos:y,messageSeed:b,inputUtxos:x,originalSender:S}=t,{jobId:C,signedMessageHash:w}=await c.prepareTxEnclaveCall(e,{chainId:r,erc20Addresses:i,externalAddress:a,originalSender:S,amountChanges:o,relay:s,feeStructure:l,externalActionId:u,externalActionMetadata:d,onChainCreation:f,recipientAddress:p,recipientAmounts:m,useBlockedUtxos:h,createBlockedUtxos:g,skipLock:_,selfOutputAmounts:v,forceEmptyUtxos:y,messageSeed:b,inputCommitments:x?.flat().filter(e=>e.amount>0n).map(e=>e.getCommitment())},n),{R8:T,S:E}=n.signEddsa(BigInt(w));return{jobId:C,eddsaSignature:{R8:T,S:E}}},g=async(e,t,n)=>{let r=await u.submitProof(e,t,n);return t.submit.mode!==i.SubmitMode.ProofOnly&&t.onTxSubmitLocally?.(n.circomData),r},_=async(e,t)=>{if(t.userKeys&&!t.inputUtxos)throw Error(`hinkalTransact: userKeys requires explicit inputUtxos`);let n=t.userKeys??e.userKeys,{chainId:r,submit:a}=t;if(e.generateProofRemotely){let{jobId:o,eddsaSignature:l}=await h(e,t,n);if(a.mode===i.SubmitMode.Relayer)return c.finalizeTxEnclaveCallRelay(o,l,r,{adminData:a.adminData,authorizationData:a.authorizationData,withUniswapWorkAround:a.withUniswapWorkAround});let{zkCallData:u,circomData:d,dimData:f,commitmentValidationData:p,tronProofSignature:m}=await c.finalizeTxEnclaveCall(o,l);return g(e,t,{zkCallData:u,circomData:s.deserializeCircomData(d),dimData:f,commitmentValidationData:p,tronProofSignature:m})}return g(e,t,await m(e,t,n))};exports.hinkalTransact=_;
|