@hinkal/common 0.2.33 → 0.2.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/API/callNearIntentsAPI.cjs +1 -0
- package/API/callNearIntentsAPI.d.ts +3 -0
- package/API/callNearIntentsAPI.mjs +8 -0
- package/API/enclaveSignatureCalls.cjs +1 -1
- package/API/enclaveSignatureCalls.d.ts +1 -1
- package/API/enclaveSignatureCalls.mjs +1 -1
- package/API/index.cjs +1 -1
- package/API/index.d.ts +1 -0
- package/API/index.mjs +1 -0
- package/constants/bridging.constants.cjs +1 -1
- package/constants/bridging.constants.d.ts +15 -1
- package/constants/bridging.constants.mjs +25 -5
- package/constants/chains.constants.cjs +1 -1
- package/constants/chains.constants.d.ts +12 -1
- package/constants/chains.constants.mjs +94 -26
- package/constants/index.cjs +1 -1
- package/constants/index.mjs +1 -0
- package/constants/protocol.constants.cjs +1 -1
- package/constants/protocol.constants.d.ts +3 -0
- package/constants/protocol.constants.mjs +2 -2
- package/constants/server.constants.cjs +1 -1
- package/constants/server.constants.d.ts +2 -0
- package/constants/server.constants.mjs +2 -0
- package/constants/token-data/ERC20Registry.cjs +1 -1
- package/constants/token-data/ERC20Registry.mjs +49 -14
- package/constants/token-data/avalancheRegistry.json.cjs +1 -0
- package/constants/token-data/avalancheRegistry.json.mjs +44 -0
- package/constants/token-data/bnbMainnetRegistry.json.cjs +1 -0
- package/constants/token-data/bnbMainnetRegistry.json.mjs +44 -0
- package/constants/token-data/cronosRegistry.json.cjs +1 -0
- package/constants/token-data/cronosRegistry.json.mjs +44 -0
- package/constants/token-data/hyperEvmRegistry.json.cjs +1 -0
- package/constants/token-data/hyperEvmRegistry.json.mjs +36 -0
- package/constants/token-data/index.cjs +1 -1
- package/constants/token-data/index.d.ts +58 -1
- package/constants/token-data/index.mjs +10 -2
- package/constants/token-data/inkRegistry.json.cjs +1 -0
- package/constants/token-data/inkRegistry.json.mjs +28 -0
- package/constants/token-data/monadRegistry.json.cjs +1 -0
- package/constants/token-data/monadRegistry.json.mjs +36 -0
- package/constants/token-data/plasmaRegistry.json.cjs +1 -0
- package/constants/token-data/plasmaRegistry.json.mjs +28 -0
- package/constants/token-data/popularNonRebasingTokens.cjs +1 -0
- package/constants/token-data/popularNonRebasingTokens.d.ts +2 -0
- package/constants/token-data/popularNonRebasingTokens.mjs +11 -0
- package/constants/tokens.constants.cjs +1 -1
- package/constants/tokens.constants.mjs +8 -1
- package/data-structures/Hinkal/Hinkal.cjs +1 -1
- package/data-structures/Hinkal/Hinkal.d.ts +8 -2
- package/data-structures/Hinkal/Hinkal.mjs +123 -101
- package/data-structures/Hinkal/IHinkal.d.ts +8 -2
- package/data-structures/Hinkal/handleAutoDepositBack.cjs +1 -1
- package/data-structures/Hinkal/handleAutoDepositBack.mjs +15 -15
- package/data-structures/Hinkal/hinkalClaimUtxo.cjs +1 -1
- package/data-structures/Hinkal/hinkalClaimUtxo.mjs +33 -35
- package/data-structures/Hinkal/hinkalDepositAndBridge.cjs +1 -1
- package/data-structures/Hinkal/hinkalDepositAndBridge.mjs +43 -49
- package/data-structures/Hinkal/hinkalDepositAndWithdraw.cjs +1 -1
- package/data-structures/Hinkal/hinkalDepositAndWithdraw.mjs +38 -40
- package/data-structures/Hinkal/hinkalNearDepositAndBridge.cjs +1 -0
- package/data-structures/Hinkal/hinkalNearDepositAndBridge.d.ts +6 -0
- package/data-structures/Hinkal/hinkalNearDepositAndBridge.mjs +43 -0
- package/data-structures/Hinkal/hinkalPrivateWallet.cjs +1 -1
- package/data-structures/Hinkal/hinkalPrivateWallet.mjs +21 -26
- package/data-structures/Hinkal/hinkalSolanaClaimUtxo.cjs +1 -1
- package/data-structures/Hinkal/hinkalSolanaClaimUtxo.mjs +62 -64
- package/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.cjs +1 -1
- package/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.d.ts +2 -2
- package/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.mjs +36 -36
- package/data-structures/Hinkal/hinkalSolanaProxySend.cjs +1 -1
- package/data-structures/Hinkal/hinkalSolanaProxySend.mjs +7 -7
- package/data-structures/Hinkal/hinkalSolanaProxyShield.cjs +1 -1
- package/data-structures/Hinkal/hinkalSolanaProxyShield.mjs +9 -9
- package/data-structures/Hinkal/hinkalSolanaProxySwap.cjs +1 -1
- package/data-structures/Hinkal/hinkalSolanaProxySwap.mjs +8 -8
- package/data-structures/Hinkal/hinkalSolanaSwap.cjs +1 -1
- package/data-structures/Hinkal/hinkalSolanaSwap.mjs +50 -51
- package/data-structures/Hinkal/hinkalSolanaTransfer.cjs +1 -1
- package/data-structures/Hinkal/hinkalSolanaTransfer.mjs +45 -46
- package/data-structures/Hinkal/hinkalSolanaWithdraw.cjs +1 -1
- package/data-structures/Hinkal/hinkalSolanaWithdraw.mjs +38 -39
- package/data-structures/Hinkal/hinkalSwap.cjs +1 -1
- package/data-structures/Hinkal/hinkalSwap.mjs +18 -19
- package/data-structures/Hinkal/hinkalTransfer.cjs +1 -1
- package/data-structures/Hinkal/hinkalTransfer.mjs +21 -22
- package/data-structures/Hinkal/hinkalWithdraw.cjs +1 -1
- package/data-structures/Hinkal/hinkalWithdraw.mjs +24 -25
- package/data-structures/Hinkal/hinkalWithdrawStuckUtxos.cjs +1 -1
- package/data-structures/Hinkal/hinkalWithdrawStuckUtxos.mjs +39 -41
- package/data-structures/Hinkal/index.cjs +1 -1
- package/data-structures/Hinkal/index.d.ts +1 -0
- package/data-structures/Hinkal/index.mjs +1 -0
- package/data-structures/crypto-keys/keys.cjs +1 -1
- package/data-structures/crypto-keys/keys.d.ts +18 -0
- package/data-structures/crypto-keys/keys.mjs +10 -0
- package/data-structures/index.cjs +1 -1
- package/data-structures/index.mjs +1 -0
- package/error-handling/error-codes.constants.cjs +1 -1
- package/error-handling/error-codes.constants.d.ts +4 -0
- package/error-handling/error-codes.constants.mjs +4 -0
- package/error-handling/get-error.message.cjs +1 -1
- package/error-handling/get-error.message.mjs +2 -1
- package/functions/index.cjs +1 -1
- package/functions/index.mjs +8 -6
- package/functions/pre-transaction/buildCommitmentValidationData.cjs +1 -1
- package/functions/pre-transaction/buildCommitmentValidationData.d.ts +12 -2
- package/functions/pre-transaction/buildCommitmentValidationData.mjs +43 -36
- package/functions/pre-transaction/sendV0Transaction.cjs +2 -1
- package/functions/pre-transaction/sendV0Transaction.d.ts +2 -2
- package/functions/pre-transaction/sendV0Transaction.mjs +65 -60
- package/functions/snarkjs/constructGeneralZkProof.cjs +1 -1
- package/functions/snarkjs/constructGeneralZkProof.d.ts +1 -0
- package/functions/snarkjs/constructGeneralZkProof.mjs +6 -5
- package/functions/snarkjs/constructSolanaZkProof.cjs +1 -1
- package/functions/snarkjs/constructSolanaZkProof.d.ts +1 -0
- package/functions/snarkjs/constructSolanaZkProof.mjs +35 -34
- package/functions/snarkjs/generateMainAndCommitmentZkProof.cjs +1 -0
- package/functions/snarkjs/generateMainAndCommitmentZkProof.d.ts +11 -0
- package/functions/snarkjs/generateMainAndCommitmentZkProof.mjs +16 -0
- package/functions/snarkjs/generateZkProof.cjs +1 -1
- package/functions/snarkjs/generateZkProof.d.ts +3 -3
- package/functions/snarkjs/generateZkProof.mjs +5 -9
- package/functions/snarkjs/generateZkProofEnclave.cjs +1 -1
- package/functions/snarkjs/generateZkProofEnclave.d.ts +2 -2
- package/functions/snarkjs/generateZkProofEnclave.mjs +8 -8
- package/functions/snarkjs/generateZkProofSelf.cjs +1 -1
- package/functions/snarkjs/generateZkProofSelf.mjs +5 -5
- package/functions/snarkjs/index.cjs +1 -1
- package/functions/snarkjs/index.d.ts +1 -0
- package/functions/snarkjs/index.mjs +1 -0
- package/functions/snarkjs/verifyCommitmentValidationData.cjs +1 -1
- package/functions/snarkjs/verifyCommitmentValidationData.mjs +5 -5
- package/functions/utils/customEnclaveFunctionsRegister.d.ts +3 -3
- package/functions/utils/enclave-signature-storage.cjs +1 -1
- package/functions/utils/enclave-signature-storage.d.ts +1 -1
- package/functions/utils/enclave-signature-storage.mjs +1 -1
- package/functions/utils/index.cjs +1 -1
- package/functions/utils/index.d.ts +1 -0
- package/functions/utils/index.mjs +6 -5
- package/functions/utils/nearIntents.utils.cjs +1 -0
- package/functions/utils/nearIntents.utils.d.ts +11 -0
- package/functions/utils/nearIntents.utils.mjs +36 -0
- package/functions/utils/time.utils.cjs +1 -1
- package/functions/utils/time.utils.d.ts +1 -0
- package/functions/utils/time.utils.mjs +2 -2
- package/functions/web3/oneInchAPI.cjs +1 -1
- package/functions/web3/oneInchAPI.mjs +1 -1
- package/index.cjs +1 -1
- package/index.mjs +320 -315
- package/package.json +1 -1
- package/types/index.d.ts +1 -0
- package/types/near-intents.types.d.ts +60 -0
- package/types/solana.types.d.ts +1 -0
- package/webworker/{logError-fCJ4HXQz.js → logError-DoUkEIFE.js} +14 -14
- package/webworker/package.json +1 -1
- package/webworker/snarkjsWorker/snarkjsWorkerLauncher.ts?worker&url.cjs +1 -1
- package/webworker/snarkjsWorker/snarkjsWorkerLauncher.ts?worker&url.mjs +1 -1
- package/webworker/snarkjsWorkerNode.cjs +1 -1
- package/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url.cjs +1 -1
- package/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url.mjs +1 -1
- package/webworker/utxoWorkerNode.cjs +1 -1
- package/webworker/viteWorkerURL.constant.cjs +3 -3
- package/webworker/viteWorkerURL.constant.mjs +3 -3
- package/webworker/{workerProxy-BNBqYien.js → workerProxy-DQJE57Ye.js} +1 -1
- package/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.cjs +1 -1
- package/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.mjs +1 -1
- package/webworker/zkProofWorkerNode.cjs +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../types/transaction.types.cjs`);require(`../types/index.cjs`);const t=require(`./error-codes.constants.cjs`),n=require(`./customErrors/ErrorWithAmount.cjs`),r=require(`./customErrors/FeeOverTransactionValueError.cjs`),i=require(`./types.cjs`),a=require(`./customErrors/customErrors.helpers.cjs`);require(`./customErrors/index.cjs`);const o=require(`./isInsufficientFundsError.cjs`);var s=e=>{if(typeof e==`object`&&e){if(`response`in e&&typeof e.response==`object`&&e.response!==null&&`data`in e.response&&typeof e.response.data==`object`&&e.response.data!==null&&`message`in e.response.data&&typeof e.response.data.message==`string`)return e.response.data.message;if(`data`in e&&typeof e.data==`object`&&e.data!==null&&`message`in e.data&&typeof e.data.message==`string`)return e.data.message;if(`message`in e&&typeof e.message==`string`)return e.
|
|
1
|
+
const e=require(`../types/transaction.types.cjs`);require(`../types/index.cjs`);const t=require(`./error-codes.constants.cjs`),n=require(`./customErrors/ErrorWithAmount.cjs`),r=require(`./customErrors/FeeOverTransactionValueError.cjs`),i=require(`./types.cjs`),a=require(`./customErrors/customErrors.helpers.cjs`);require(`./customErrors/index.cjs`);const o=require(`./isInsufficientFundsError.cjs`);var s=e=>{if(typeof e==`object`&&e){if(`response`in e&&typeof e.response==`object`&&e.response!==null&&`data`in e.response&&typeof e.response.data==`object`&&e.response.data!==null&&`message`in e.response.data&&typeof e.response.data.message==`string`)return e.response.data.message;if(`data`in e&&typeof e.data==`object`&&e.data!==null&&`message`in e.data&&typeof e.data.message==`string`)return e.data.message;if(`message`in e&&typeof e.message==`string`&&e.message)return e.message;if(`error`in e&&typeof e.error==`string`&&e.error)return e.error}if(e instanceof Error)return e.message;if(typeof e==`string`)return e},c=e=>{switch(e){case i.ErrorCategory.DEPOSIT:return`Deposit failed`;case i.ErrorCategory.SWAP:return`Swap failed`;case i.ErrorCategory.BRIDGE:return`Bridge failed`;case i.ErrorCategory.WITHDRAW:return`Send failed`;case i.ErrorCategory.Fund:return`Unshield failed`;case i.ErrorCategory.Receive:return`Shield failed`;case i.ErrorCategory.DappTransaction:return`DApp transaction failed`;case i.ErrorCategory.Approve:return`Approval failed`;default:return t.transactionErrorCodes.UNKNOWN}},l=(e,i)=>{if(e instanceof r.FeeOverTransactionValueError)return a.getGenericFeeOverTransactionValueErrorMessage(e,i);if(e instanceof n.ErrorWithAmount){let{amount:t,message:n}=e;return`${n} ${t}`}let l=s(e);if(l&&o.isInsufficientFundsError(l))return t.insufficientResourcesErrorCodes.INSUFFICIENT_FUNDS;if(l){let e=l.toLowerCase(),n=Object.keys(t.transactionErrorCodes).find(n=>e===t.transactionErrorCodes[n].toLowerCase());if(n&&n in t.UserFriendlyErrorCodes)return t.UserFriendlyErrorCodes[n];let r=Object.entries(t.transactionErrorCodes).find(([t,n])=>e.includes(n.toLowerCase()));if(r)return t.UserFriendlyErrorCodes[r[0]]??r[1];if(Object.values(t.DIRECTLY_SHOW_MESSAGE_ERROR_CODES).find(t=>e.includes(t.toLowerCase())))return l}return i?c(i):t.transactionErrorCodes.UNKNOWN},u=(t,n)=>{let r;switch(n){case e.TransactionRequestType.Send:case e.TransactionRequestType.ProxySend:r=i.ErrorCategory.WITHDRAW;break;case e.TransactionRequestType.SwapTokens:case e.TransactionRequestType.ProxySwapTokens:r=i.ErrorCategory.SWAP;break;case e.TransactionRequestType.ReceiveFromShieldedAccount:r=i.ErrorCategory.Receive;break;case e.TransactionRequestType.Fund:r=i.ErrorCategory.Fund;break;case e.TransactionRequestType.PrivateTransactionFromProxy:r=i.ErrorCategory.DappTransaction;break;default:r=void 0;break}return l(t,r)};exports.extractMessage=s,exports.getErrorMessage=l,exports.getErrorMessageFromTransactionRequest=u;
|
|
@@ -12,7 +12,8 @@ var u = (e) => {
|
|
|
12
12
|
if (typeof e == "object" && e) {
|
|
13
13
|
if ("response" in e && typeof e.response == "object" && e.response !== null && "data" in e.response && typeof e.response.data == "object" && e.response.data !== null && "message" in e.response.data && typeof e.response.data.message == "string") return e.response.data.message;
|
|
14
14
|
if ("data" in e && typeof e.data == "object" && e.data !== null && "message" in e.data && typeof e.data.message == "string") return e.data.message;
|
|
15
|
-
if ("message" in e && typeof e.message == "string") return e.message;
|
|
15
|
+
if ("message" in e && typeof e.message == "string" && e.message) return e.message;
|
|
16
|
+
if ("error" in e && typeof e.error == "string" && e.error) return e.error;
|
|
16
17
|
}
|
|
17
18
|
if (e instanceof Error) return e.message;
|
|
18
19
|
if (typeof e == "string") return e;
|
package/functions/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`./utils/serialize.utils.cjs`),require(`./utils/get-signature-header.cjs`),require(`./utils/caseInsensitive.utils.cjs`),require(`./utils/addresses.cjs`),require(`./utils/auth.utils.cjs`),require(`./kyc/openDefaultPassportWindow.cjs`),require(`./web3/etherFunctions.cjs`),require(`./utils/amounts.utils.cjs`),require(`./utils/erc20tokenFunctions.cjs`),require(`./utils/bytes32.utils.cjs`),require(`./utils/time.utils.cjs`),require(`./utils/bit.operations.cjs`),require(`./utils/upToDateState.cjs`),require(`./utils/getDataFromTransaction.cjs`),require(`./utils/cacheFunctions.cjs`),require(`./utils/encryptInputForEnclave.cjs`),require(`./utils/solanaMint.utils.cjs`),require(`./utils/customEnclaveFunctionsRegister.cjs`),require(`./utils/tron.utils.cjs`),require(`./web3/events/getInputUtxoAndBalance.cjs`),require(`./utils/string.utils.cjs`),require(`./utils/token-check.utils.cjs`),require(`./utils/mutexes.utils.cjs`),require(`./web3/events/getShieldedBalance.cjs`),require(`./pre-transaction/outputUtxoProcessing.cjs`),require(`./utils/external-action.utils.cjs`),require(`./snarkjs/common.snarkjs.cjs`),require(`./pre-transaction/solana.cjs`),require(`./snarkjs/signedMessageHash.cjs`),require(`./
|
|
1
|
+
require(`./utils/serialize.utils.cjs`),require(`./utils/get-signature-header.cjs`),require(`./utils/caseInsensitive.utils.cjs`),require(`./utils/addresses.cjs`),require(`./utils/auth.utils.cjs`),require(`./kyc/openDefaultPassportWindow.cjs`),require(`./web3/etherFunctions.cjs`),require(`./utils/amounts.utils.cjs`),require(`./utils/erc20tokenFunctions.cjs`),require(`./utils/bytes32.utils.cjs`),require(`./utils/time.utils.cjs`),require(`./utils/bit.operations.cjs`),require(`./utils/upToDateState.cjs`),require(`./utils/getDataFromTransaction.cjs`),require(`./utils/cacheFunctions.cjs`),require(`./utils/encryptInputForEnclave.cjs`),require(`./utils/solanaMint.utils.cjs`),require(`./utils/customEnclaveFunctionsRegister.cjs`),require(`./utils/tron.utils.cjs`),require(`./web3/events/getInputUtxoAndBalance.cjs`),require(`./utils/string.utils.cjs`),require(`./utils/token-check.utils.cjs`),require(`./utils/mutexes.utils.cjs`),require(`./web3/events/getShieldedBalance.cjs`),require(`./pre-transaction/outputUtxoProcessing.cjs`),require(`./utils/external-action.utils.cjs`),require(`./snarkjs/common.snarkjs.cjs`),require(`./pre-transaction/solana.cjs`),require(`./snarkjs/signedMessageHash.cjs`),require(`./pre-transaction/interaction-to-action.cjs`),require(`./pre-transaction/process-gas-estimates.cjs`),require(`./pre-transaction/getFlatFees.cjs`),require(`./pre-transaction/getVolatileTransferAmount.cjs`),require(`./pre-transaction/constructAdminData.cjs`),require(`./utils/create-provider.cjs`),require(`./pre-transaction/calculateSolanaNullifierCount.cjs`),require(`./pre-transaction/addressTableLookup.cjs`),require(`./pre-transaction/solana-public-signals.cjs`),require(`./pre-transaction/convert-okx-instructions.cjs`),require(`./web3/getSolanaPriorityFee.cjs`),require(`./utils/process.utils.cjs`),require(`./pre-transaction/sendV0Transaction.cjs`),require(`./pre-transaction/store-proof.cjs`),require(`./pre-transaction/sendInitNullifiersTransaction.cjs`),require(`./pre-transaction/recipientUtxoProcessing.cjs`),require(`./pre-transaction/store-instructions.cjs`),require(`./pre-transaction/ensureAmountChanges.cjs`),require(`./pre-transaction/getFeeStructure.cjs`),require(`./pre-transaction/waitForDepositedUtxosInMerkleTree.cjs`),require(`./pre-transaction/buildCommitmentValidationData.cjs`),require(`./pre-transaction/index.cjs`),require(`./snarkjs/generateZkProof.cjs`),require(`./snarkjs/generateMainAndCommitmentZkProof.cjs`),require(`./utils/serialize-utxos.utils.cjs`),require(`./utils/requireEnv.cjs`),require(`./utils/resolve-sync.utils.cjs`),require(`./utils/convertIntegrationProviderToExternalActionId.cjs`),require(`./utils/evmNetworkFunctions.cjs`),require(`./utils/userAgent.cjs`),require(`./utils/reloadPage.cjs`),require(`./utils/nickname.utils.cjs`),require(`./utils/cacheDevice.utils.cjs`),require(`./utils/getBlockExplorerUrl.cjs`),require(`./utils/involves-permit2-op.cjs`),require(`./utils/convertEmporiumOpToCallInfo.cjs`),require(`./utils/getRecipientInfoFromUserKeys.cjs`),require(`./utils/publicBalance.utils.cjs`),require(`./utils/rpc-int-encode.cjs`),require(`./utils/arraysMatch.cjs`),require(`./utils/trimFieldValues.cjs`),require(`./utils/walletBalances.utils.cjs`),require(`./utils/nftTokenFunctions.cjs`),require(`./utils/inLogicMetadata.cjs`),require(`./utils/networks.utils.cjs`),require(`./utils/is-valid-url.cjs`),require(`./utils/postToOffscreen.cjs`),require(`./utils/solanaSendPreflight.utils.cjs`),require(`./utils/prepareHinkal.cjs`),require(`./utils/getContractAddress.cjs`),require(`./utils/getUtxosFromReceipt.utils.cjs`),require(`./utils/getUtxosFromReceiptSolana.cjs`),require(`./utils/fees.utils.cjs`),require(`./utils/proxyAvatar.utils.cjs`),require(`./utils/validateUsername.cjs`),require(`./utils/enclave-utxo-storage.cjs`),require(`./utils/enclave-signature-storage.cjs`),require(`./utils/tx-confirmation.utils.cjs`),require(`./utils/buildClaimableDepositPlan.cjs`),require(`./utils/pay-routing.utils.cjs`),require(`./utils/formatter.cjs`),require(`./utils/tronSimulation.utils.cjs`),require(`./utils/getSignerFromContract.cjs`),require(`./utils/deposit-claimable.utils.cjs`),require(`./utils/transfer-claimable.utils.cjs`),require(`./utils/getWalletGroupKey.utils.cjs`),require(`./web3/events/balanceChangedHandler.cjs`),require(`./utils/dispatchBalanceRefreshes.cjs`),require(`./utils/lifi.utils.cjs`),require(`./utils/enclave-recipient-info-storage.cjs`),require(`./utils/solana-memo.cjs`),require(`./utils/mnemonics.cjs`),require(`./utils/nearIntents.utils.cjs`),require(`./utils/index.cjs`),require(`./snarkjs/fetchOnChainRootHashes.cjs`),require(`./private-wallet/emporium.helpers.cjs`),require(`./snarkjs/constructGeneralZkProof.cjs`),require(`./web3/events/getTransactionLogEvents.cjs`),require(`./web3/uniswapAPI.cjs`),require(`./web3/odosAPI.cjs`),require(`./web3/oneInchAPI.cjs`),require(`./web3/lifiAPI.cjs`),require(`./web3/okxAPI.cjs`),require(`./web3/runContractFunction.cjs`),require(`./web3/getTokenHolder.cjs`),require(`./web3/EIP-712.cjs`),require(`./web3/signAndSendSerializedTransaction.cjs`),require(`./web3/connectors.utils.cjs`),require(`./web3/crypto.cjs`),require(`./web3/index.cjs`),require(`./snarkjs/constructSolanaZkProof.cjs`),require(`./snarkjs/verifyCommitmentValidationData.cjs`),require(`./snarkjs/index.cjs`),require(`./kyc/passportHelper.cjs`),require(`./kyc/checkTokenLimitsUSD.cjs`),require(`./kyc/index.cjs`),require(`./private-wallet/opProducer.cjs`),require(`./private-wallet/emporium.swap.helpers.cjs`),require(`./private-wallet/index.cjs`),require(`./auto-deposit-back-helpers/get-tokens-to-deposit-back.cjs`),require(`./auto-deposit-back-helpers/get-gas-token-records.cjs`),require(`./auto-deposit-back-helpers/select-gas-token.cjs`),require(`./auto-deposit-back-helpers/update-hinkal.cjs`),require(`./auto-deposit-back-helpers/index.cjs`);
|
package/functions/index.mjs
CHANGED
|
@@ -27,17 +27,12 @@ import "./utils/external-action.utils.mjs";
|
|
|
27
27
|
import "./snarkjs/common.snarkjs.mjs";
|
|
28
28
|
import "./pre-transaction/solana.mjs";
|
|
29
29
|
import "./snarkjs/signedMessageHash.mjs";
|
|
30
|
-
import "./snarkjs/generateZkProof.mjs";
|
|
31
|
-
import "./utils/serialize-utxos.utils.mjs";
|
|
32
|
-
import "./utils/create-provider.mjs";
|
|
33
|
-
import "./utils/requireEnv.mjs";
|
|
34
|
-
import "./utils/resolve-sync.utils.mjs";
|
|
35
|
-
import "./utils/convertIntegrationProviderToExternalActionId.mjs";
|
|
36
30
|
import "./pre-transaction/interaction-to-action.mjs";
|
|
37
31
|
import "./pre-transaction/process-gas-estimates.mjs";
|
|
38
32
|
import "./pre-transaction/getFlatFees.mjs";
|
|
39
33
|
import "./pre-transaction/getVolatileTransferAmount.mjs";
|
|
40
34
|
import "./pre-transaction/constructAdminData.mjs";
|
|
35
|
+
import "./utils/create-provider.mjs";
|
|
41
36
|
import "./pre-transaction/calculateSolanaNullifierCount.mjs";
|
|
42
37
|
import "./pre-transaction/addressTableLookup.mjs";
|
|
43
38
|
import "./pre-transaction/solana-public-signals.mjs";
|
|
@@ -54,6 +49,12 @@ import "./pre-transaction/getFeeStructure.mjs";
|
|
|
54
49
|
import "./pre-transaction/waitForDepositedUtxosInMerkleTree.mjs";
|
|
55
50
|
import "./pre-transaction/buildCommitmentValidationData.mjs";
|
|
56
51
|
import "./pre-transaction/index.mjs";
|
|
52
|
+
import "./snarkjs/generateZkProof.mjs";
|
|
53
|
+
import "./snarkjs/generateMainAndCommitmentZkProof.mjs";
|
|
54
|
+
import "./utils/serialize-utxos.utils.mjs";
|
|
55
|
+
import "./utils/requireEnv.mjs";
|
|
56
|
+
import "./utils/resolve-sync.utils.mjs";
|
|
57
|
+
import "./utils/convertIntegrationProviderToExternalActionId.mjs";
|
|
57
58
|
import "./utils/evmNetworkFunctions.mjs";
|
|
58
59
|
import "./utils/userAgent.mjs";
|
|
59
60
|
import "./utils/reloadPage.mjs";
|
|
@@ -98,6 +99,7 @@ import "./utils/lifi.utils.mjs";
|
|
|
98
99
|
import "./utils/enclave-recipient-info-storage.mjs";
|
|
99
100
|
import "./utils/solana-memo.mjs";
|
|
100
101
|
import "./utils/mnemonics.mjs";
|
|
102
|
+
import "./utils/nearIntents.utils.mjs";
|
|
101
103
|
import "./utils/index.mjs";
|
|
102
104
|
import "./snarkjs/fetchOnChainRootHashes.mjs";
|
|
103
105
|
import "./private-wallet/emporium.helpers.mjs";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../constants/chains.constants.cjs`),t=require(`../../data-structures/crypto-keys/keys.cjs`),n=require(`../utils/solanaMint.utils.cjs`),r=require(`../snarkjs/common.snarkjs.cjs`),i=require(`../../webworker/worker.registry.cjs`),a=require(`../../webworker/performTaskWithWorker.cjs`),o=require(
|
|
1
|
+
const e=require(`../../constants/chains.constants.cjs`),t=require(`../../data-structures/crypto-keys/keys.cjs`),n=require(`../utils/solanaMint.utils.cjs`),r=require(`../snarkjs/common.snarkjs.cjs`),i=require(`../../webworker/worker.registry.cjs`),a=require(`../../webworker/performTaskWithWorker.cjs`),o=require(`../../webworker/zkProofWorker/zkProofWorker.types.cjs`);var s=async(s,c,l,u)=>{let d=e.isSolanaLike(s),f=u.map(e=>e.map(e=>e.amount.toString())),p=u.map(e=>e.map(e=>e.timeStamp)),m=u.map(e=>e.map(e=>r.getUtxoCircuitInRandomization(e))),h=u.map(e=>e.map(e=>e.getConstructableParams())),g=u.map(e=>e.map(e=>e.amount===0n?`0`:BigInt(e.getCommitment()).toString())),_=await a.performTaskWithWorker({type:i.WorkerVariant.ZKProof,payload:{type:o.ZKProofWorkerActionType.BUILD_IN_NULLIFIERS,data:{inputUtxosSerialized:h}}}),v=c.getShieldedPrivateKey(),y=c.getSpendingKeyPair().pubSpendingBJJPoint,b=d?l.map(e=>{let{compressedAddress:t}=n.formatMintAddress(e);return BigInt(t).toString()}):l.map(e=>BigInt(e).toString());u.forEach((e,n)=>{e.forEach((e,r)=>{let i=e.getStealthAddress(),a=e.spendingPublicKey??y,o=e.isNewStyle&&e.H0?t.UserKeys.getStealthAddressNewStyle(e.H0,v,a):t.UserKeys.getStealthAddress(BigInt(e.randomization),v);if(BigInt(i).toString()!==BigInt(o).toString())throw Error(`Commitment validation stealth mismatch at tokenIdx=${n}, utxoIdx=${r}`)})});let x={nullifyingPrivateKey:v,spendingPublicKey:y,erc20TokenAddresses:b,inAmounts:f,inRandomizations:m,inH0Ax:u.map(e=>e.map(e=>r.getUtxoCircuitH0Coords(e)[0].toString())),inH0Ay:u.map(e=>e.map(e=>r.getUtxoCircuitH0Coords(e)[1].toString())),isNewStyle:u.map(e=>e.map(e=>!!e.isNewStyle)),inTimeStamps:p,inCommitments:g,inNullifiers:_};if(!(!l.length||!u[0]?.length))return{tokenAddresses:b,inAmounts:f,inTimeStamps:p,inRandomizations:m,inCommitments:g,inNullifiers:_,verifierName:`commitmentCalculator${l.length}x${u[0].length}`,commitmentInput:x}},c=(e,t)=>{if(!(!e||!t))return{tokenAddresses:e.tokenAddresses,inAmounts:e.inAmounts,inTimeStamps:e.inTimeStamps,inRandomizations:e.inRandomizations,inCommitments:e.inCommitments,inNullifiers:e.inNullifiers,proof:{a:t.zkCallData[0],b:t.zkCallData[1],c:t.zkCallData[2]}}};exports.buildCommitmentValidationData=s,exports.buildCommitmentValidationDataFromProof=c;
|
|
@@ -1,4 +1,14 @@
|
|
|
1
1
|
import { UserKeys } from '../../data-structures/crypto-keys/keys';
|
|
2
2
|
import { Utxo } from '../../data-structures/utxo/Utxo';
|
|
3
|
-
import { CommitmentValidationDataType } from '../../types';
|
|
4
|
-
|
|
3
|
+
import { CommitmentValidationDataType } from '../../types/circom-data.types';
|
|
4
|
+
import { NewZkCallDataType } from '../../types/snark.types';
|
|
5
|
+
interface BuildCommitmentValidationData extends Omit<CommitmentValidationDataType, 'proof'> {
|
|
6
|
+
verifierName: string;
|
|
7
|
+
commitmentInput: any;
|
|
8
|
+
}
|
|
9
|
+
export declare const buildCommitmentValidationData: (chainId: number, userKeys: UserKeys, erc20Addresses: string[], inputUtxosArray: Utxo[][]) => Promise<BuildCommitmentValidationData | undefined>;
|
|
10
|
+
export declare const buildCommitmentValidationDataFromProof: (commitmentValidationData: BuildCommitmentValidationData | undefined, commitmentValidationProofResponse: {
|
|
11
|
+
zkCallData: NewZkCallDataType;
|
|
12
|
+
publicSignals: string[];
|
|
13
|
+
} | undefined) => CommitmentValidationDataType | undefined;
|
|
14
|
+
export {};
|
|
@@ -4,55 +4,62 @@ import { formatMintAddress as n } from "../utils/solanaMint.utils.mjs";
|
|
|
4
4
|
import { getUtxoCircuitH0Coords as r, getUtxoCircuitInRandomization as i } from "../snarkjs/common.snarkjs.mjs";
|
|
5
5
|
import { WorkerVariant as a } from "../../webworker/worker.registry.mjs";
|
|
6
6
|
import { performTaskWithWorker as o } from "../../webworker/performTaskWithWorker.mjs";
|
|
7
|
-
import {
|
|
8
|
-
import { ZKProofWorkerActionType as c } from "../../webworker/zkProofWorker/zkProofWorker.types.mjs";
|
|
7
|
+
import { ZKProofWorkerActionType as s } from "../../webworker/zkProofWorker/zkProofWorker.types.mjs";
|
|
9
8
|
//#region libs/shared/common/src/functions/pre-transaction/buildCommitmentValidationData.ts
|
|
10
|
-
var
|
|
11
|
-
let
|
|
9
|
+
var c = async (c, l, u, d) => {
|
|
10
|
+
let f = e(c), p = d.map((e) => e.map((e) => e.amount.toString())), m = d.map((e) => e.map((e) => e.timeStamp)), h = d.map((e) => e.map((e) => i(e))), g = d.map((e) => e.map((e) => e.getConstructableParams())), _ = d.map((e) => e.map((e) => e.amount === 0n ? "0" : BigInt(e.getCommitment()).toString())), v = await o({
|
|
12
11
|
type: a.ZKProof,
|
|
13
12
|
payload: {
|
|
14
|
-
type:
|
|
15
|
-
data: { inputUtxosSerialized:
|
|
13
|
+
type: s.BUILD_IN_NULLIFIERS,
|
|
14
|
+
data: { inputUtxosSerialized: g }
|
|
16
15
|
}
|
|
17
|
-
}),
|
|
16
|
+
}), y = l.getShieldedPrivateKey(), b = l.getSpendingKeyPair().pubSpendingBJJPoint, x = f ? u.map((e) => {
|
|
18
17
|
let { compressedAddress: t } = n(e);
|
|
19
18
|
return BigInt(t).toString();
|
|
20
|
-
}) :
|
|
21
|
-
|
|
19
|
+
}) : u.map((e) => BigInt(e).toString());
|
|
20
|
+
d.forEach((e, n) => {
|
|
22
21
|
e.forEach((e, r) => {
|
|
23
|
-
let i = e.getStealthAddress(), a = e.spendingPublicKey ??
|
|
22
|
+
let i = e.getStealthAddress(), a = e.spendingPublicKey ?? b, o = e.isNewStyle && e.H0 ? t.getStealthAddressNewStyle(e.H0, y, a) : t.getStealthAddress(BigInt(e.randomization), y);
|
|
24
23
|
if (BigInt(i).toString() !== BigInt(o).toString()) throw Error(`Commitment validation stealth mismatch at tokenIdx=${n}, utxoIdx=${r}`);
|
|
25
24
|
});
|
|
26
25
|
});
|
|
27
|
-
let
|
|
28
|
-
nullifyingPrivateKey:
|
|
29
|
-
spendingPublicKey:
|
|
30
|
-
erc20TokenAddresses:
|
|
31
|
-
inAmounts:
|
|
32
|
-
inRandomizations:
|
|
33
|
-
inH0Ax:
|
|
34
|
-
inH0Ay:
|
|
35
|
-
isNewStyle:
|
|
36
|
-
inTimeStamps:
|
|
37
|
-
inCommitments:
|
|
38
|
-
inNullifiers:
|
|
26
|
+
let S = {
|
|
27
|
+
nullifyingPrivateKey: y,
|
|
28
|
+
spendingPublicKey: b,
|
|
29
|
+
erc20TokenAddresses: x,
|
|
30
|
+
inAmounts: p,
|
|
31
|
+
inRandomizations: h,
|
|
32
|
+
inH0Ax: d.map((e) => e.map((e) => r(e)[0].toString())),
|
|
33
|
+
inH0Ay: d.map((e) => e.map((e) => r(e)[1].toString())),
|
|
34
|
+
isNewStyle: d.map((e) => e.map((e) => !!e.isNewStyle)),
|
|
35
|
+
inTimeStamps: m,
|
|
36
|
+
inCommitments: _,
|
|
37
|
+
inNullifiers: v
|
|
39
38
|
};
|
|
40
|
-
if (!
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
39
|
+
if (!(!u.length || !d[0]?.length)) return {
|
|
40
|
+
tokenAddresses: x,
|
|
41
|
+
inAmounts: p,
|
|
42
|
+
inTimeStamps: m,
|
|
43
|
+
inRandomizations: h,
|
|
44
|
+
inCommitments: _,
|
|
45
|
+
inNullifiers: v,
|
|
46
|
+
verifierName: `commitmentCalculator${u.length}x${d[0].length}`,
|
|
47
|
+
commitmentInput: S
|
|
48
|
+
};
|
|
49
|
+
}, l = (e, t) => {
|
|
50
|
+
if (!(!e || !t)) return {
|
|
51
|
+
tokenAddresses: e.tokenAddresses,
|
|
52
|
+
inAmounts: e.inAmounts,
|
|
53
|
+
inTimeStamps: e.inTimeStamps,
|
|
54
|
+
inRandomizations: e.inRandomizations,
|
|
55
|
+
inCommitments: e.inCommitments,
|
|
56
|
+
inNullifiers: e.inNullifiers,
|
|
50
57
|
proof: {
|
|
51
|
-
a:
|
|
52
|
-
b:
|
|
53
|
-
c:
|
|
58
|
+
a: t.zkCallData[0],
|
|
59
|
+
b: t.zkCallData[1],
|
|
60
|
+
c: t.zkCallData[2]
|
|
54
61
|
}
|
|
55
62
|
};
|
|
56
63
|
};
|
|
57
64
|
//#endregion
|
|
58
|
-
export {
|
|
65
|
+
export { c as buildCommitmentValidationData, l as buildCommitmentValidationDataFromProof };
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../utils/serialize.utils.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../data-structures/AccountActions/AccountActions.cjs`),r=require(`../../types/fee.types.cjs`),i=require(`../web3/getSolanaPriorityFee.cjs`),a=require(`../utils/process.utils.cjs`),o=require(`../../error-handling/retrySolanaError.cjs`);let s=require(`@solana/web3.js`),c=require(`@solana/spl-token`);var l=5e3,u=6e4,d=7,f=async(e,t,n=`confirmed`)=>await a.pollForValue(()=>e.getTransaction(t,{commitment:n,maxSupportedTransactionVersion:0}),{timeoutMs:u,intervalMs:l})??null,p=async(e,n,r,i)=>{try{let{blockhash:
|
|
1
|
+
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../utils/serialize.utils.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../data-structures/AccountActions/AccountActions.cjs`),r=require(`../../types/fee.types.cjs`),i=require(`../web3/getSolanaPriorityFee.cjs`),a=require(`../utils/process.utils.cjs`),o=require(`../../error-handling/retrySolanaError.cjs`);let s=require(`@solana/web3.js`),c=require(`@solana/spl-token`);var l=5e3,u=6e4,d=7,f=async(e,t,n=`confirmed`)=>await a.pollForValue(()=>e.getTransaction(t,{commitment:n,maxSupportedTransactionVersion:0}),{timeoutMs:u,intervalMs:l})??null,p=async(e,n,r,i,a=!1)=>{try{let{blockhash:o}=await e.getLatestBlockhash(),c=new s.VersionedTransaction(new s.TransactionMessage({payerKey:n,recentBlockhash:o,instructions:[s.ComputeBudgetProgram.setComputeUnitLimit({units:t.MAX_COMPUTE_UNIT_LIMIT}),...a?[s.ComputeBudgetProgram.requestHeapFrame({bytes:t.MAX_SOLANA_HEAP_FRAME_BYTES})]:[],...r]}).compileToV0Message(i)),{unitsConsumed:l}=(await e.simulateTransaction(c,{sigVerify:!1,replaceRecentBlockhash:!0})).value;if(!l)return t.MAX_COMPUTE_UNIT_LIMIT;let u=Math.ceil(l*(1+t.COMPUTE_UNIT_PADDING_PERCENTAGE));return Math.max(t.MIN_COMPUTE_UNIT_LIMIT,Math.min(u,t.MAX_COMPUTE_UNIT_LIMIT))}catch{return t.MAX_COMPUTE_UNIT_LIMIT}},m=(e,t,n,r)=>{let i=new Set;return t&&i.add(t.toBase58()),n?.forEach(e=>i.add(e.toBase58())),e.forEach(e=>{i.add(e.programId.toBase58()),e.keys.forEach(e=>{i.add(e.pubkey.toBase58())})}),r&&r.forEach(e=>{i.add(e.key.toBase58()),e.state.addresses.forEach(e=>{i.add(e.toBase58())})}),[...i].map(e=>new s.PublicKey(e))},h=t=>{if(!t)throw Error(`Failed to fetch Solana transaction details for signature`);if(t.meta?.err){let n=e.safeJsonStringify(t.meta.err),r=t.meta.logMessages?.join(`
|
|
2
|
+
`);throw Error(r?`Solana transaction failed on-chain: ${n}\n${r}`:`Solana transaction failed on-chain: ${n}`)}},g=async(e,n,r,a,o,c=!1)=>{if(r.some(e=>e.programId.equals(s.ComputeBudgetProgram.programId)))return r.map(e=>e.programId.equals(s.ComputeBudgetProgram.programId)&&e.data[0]===2?s.ComputeBudgetProgram.setComputeUnitLimit({units:t.MAX_COMPUTE_UNIT_LIMIT}):e);let l=r.filter(e=>!e.programId.equals(s.ComputeBudgetProgram.programId)),u=await p(e,n,l,a,c),d=s.ComputeBudgetProgram.setComputeUnitLimit({units:u}),f=e.rpcEndpoint.includes(`helius`)?await i.getSolanaPriorityFee(m(l,n,[s.ComputeBudgetProgram.programId],a),o):0;return[d,s.ComputeBudgetProgram.setComputeUnitPrice({microLamports:f}),...c?[s.ComputeBudgetProgram.requestHeapFrame({bytes:t.MAX_SOLANA_HEAP_FRAME_BYTES})]:[],...l]},_=async(e,t,n,i,a,c=!1)=>{if(t.length===0)return``;for(let l=0;l<10;l+=1){let u=l===9;try{let o=await g(e,n.publicKey,t,a,l>=d?r.SolanaPriorityFeeMode.HIGH:r.SolanaPriorityFeeMode.RECOMMENDED,c),{blockhash:u,lastValidBlockHeight:p}=await e.getLatestBlockhash(),m=new s.VersionedTransaction(new s.TransactionMessage({payerKey:n.publicKey,instructions:o,recentBlockhash:u}).compileToV0Message(a));m.sign(i);let _=await e.sendTransaction(m);return await e.confirmTransaction({signature:_,blockhash:u,lastValidBlockHeight:p},`confirmed`),h(await f(e,_)),_}catch(e){if(o.shouldRetryForSolanaError(e)&&!u)continue;throw e}}return``},v=async(e,t,n,r)=>{if(!n)return null;let i=await(0,c.getAssociatedTokenAddress)(n,r,!0,c.TOKEN_PROGRAM_ID,c.ASSOCIATED_TOKEN_PROGRAM_ID);return await e.getAccountInfo(i)||await _(e,[(0,c.createAssociatedTokenAccountInstruction)(t.publicKey,i,r,n,c.TOKEN_PROGRAM_ID,c.ASSOCIATED_TOKEN_PROGRAM_ID)],t,[t]),i},y=async({connection:e,chainId:t,subAccount:i,payerPublicKey:a,instructions:c,lookupTableAccounts:l})=>{let u=n.AccountActions.getPrivateKeyFromSubAccount(t,i);if(!u)throw Error(`Private key is not available`);for(let t=0;t<10;t+=1){let i=t===9;try{let t=await g(e,a,c,l,i?r.SolanaPriorityFeeMode.HIGH:r.SolanaPriorityFeeMode.RECOMMENDED),{blockhash:o,lastValidBlockHeight:d}=await e.getLatestBlockhash(),p=new s.VersionedTransaction(new s.TransactionMessage({payerKey:a,recentBlockhash:o,instructions:t}).compileToV0Message(l)),m=await n.AccountActions.sendAndSignSolanaTransactionFromPrivateKey(e,u,p,!0);return await e.confirmTransaction({signature:m,blockhash:o,lastValidBlockHeight:d},`confirmed`),h(await f(e,m)),m}catch(e){if(o.shouldRetryForSolanaError(e)&&!i)continue;throw e}}throw Error(`Failed to send proxy v0 transaction due to expired blockheight after all retries`)},b=async(e,t,n,r)=>{let{blockhash:i}=await e.getLatestBlockhash(),a=new s.VersionedTransaction(new s.TransactionMessage({payerKey:t,recentBlockhash:i,instructions:await g(e,t,n,r)}).compileToV0Message(r));return Buffer.from(a.serialize()).toString(`base64`)};exports.ensureAtaExists=v,exports.estimateComputeUnitLimit=p,exports.fetchSolanaTransaction=f,exports.getAccountsFromInstructions=m,exports.sendProxyV0Transaction=y,exports.sendV0Transaction=_,exports.serializeProxyV0Transaction=b;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { AddressLookupTableAccount, Connection, Finality, Keypair, PublicKey, TransactionInstruction, VersionedTransactionResponse } from '@solana/web3.js';
|
|
2
2
|
import { SubAccount } from '../../types/proxy.types';
|
|
3
3
|
export declare const fetchSolanaTransaction: (connection: Connection, signature: string, finality?: Finality) => Promise<VersionedTransactionResponse | null>;
|
|
4
|
-
export declare const estimateComputeUnitLimit: (connection: Connection, payerKey: PublicKey, instructions: TransactionInstruction[], lookupTableAccounts?: AddressLookupTableAccount[]) => Promise<number>;
|
|
4
|
+
export declare const estimateComputeUnitLimit: (connection: Connection, payerKey: PublicKey, instructions: TransactionInstruction[], lookupTableAccounts?: AddressLookupTableAccount[], requestHeapFrame?: boolean) => Promise<number>;
|
|
5
5
|
export declare const getAccountsFromInstructions: (instructions: TransactionInstruction[], payerKey?: PublicKey, additionalAccounts?: PublicKey[], lookupTableAccounts?: AddressLookupTableAccount[]) => PublicKey[];
|
|
6
|
-
export declare const sendV0Transaction: (connection: Connection, instructions: TransactionInstruction[], payer: Keypair, signers: Keypair[], lookupTableAccounts?: AddressLookupTableAccount[]) => Promise<string>;
|
|
6
|
+
export declare const sendV0Transaction: (connection: Connection, instructions: TransactionInstruction[], payer: Keypair, signers: Keypair[], lookupTableAccounts?: AddressLookupTableAccount[], requestHeapFrame?: boolean) => Promise<string>;
|
|
7
7
|
export declare const ensureAtaExists: (connection: Connection, payer: Keypair, mintPubkey: PublicKey | null, owner: PublicKey) => Promise<PublicKey | null>;
|
|
8
8
|
type SendProxyV0TransactionParams = {
|
|
9
9
|
connection: Connection;
|
|
@@ -1,36 +1,40 @@
|
|
|
1
1
|
import { safeJsonStringify as e } from "../utils/serialize.utils.mjs";
|
|
2
|
-
import { COMPUTE_UNIT_PADDING_PERCENTAGE as t, MAX_COMPUTE_UNIT_LIMIT as n,
|
|
3
|
-
import { AccountActions as
|
|
4
|
-
import { SolanaPriorityFeeMode as
|
|
5
|
-
import { getSolanaPriorityFee as
|
|
6
|
-
import { pollForValue as
|
|
7
|
-
import { shouldRetryForSolanaError as
|
|
8
|
-
import { ComputeBudgetProgram as
|
|
9
|
-
import { ASSOCIATED_TOKEN_PROGRAM_ID as
|
|
2
|
+
import { COMPUTE_UNIT_PADDING_PERCENTAGE as t, MAX_COMPUTE_UNIT_LIMIT as n, MAX_SOLANA_HEAP_FRAME_BYTES as r, MIN_COMPUTE_UNIT_LIMIT as i } from "../../constants/protocol.constants.mjs";
|
|
3
|
+
import { AccountActions as a } from "../../data-structures/AccountActions/AccountActions.mjs";
|
|
4
|
+
import { SolanaPriorityFeeMode as o } from "../../types/fee.types.mjs";
|
|
5
|
+
import { getSolanaPriorityFee as s } from "../web3/getSolanaPriorityFee.mjs";
|
|
6
|
+
import { pollForValue as c } from "../utils/process.utils.mjs";
|
|
7
|
+
import { shouldRetryForSolanaError as l } from "../../error-handling/retrySolanaError.mjs";
|
|
8
|
+
import { ComputeBudgetProgram as u, PublicKey as d, TransactionMessage as f, VersionedTransaction as p } from "@solana/web3.js";
|
|
9
|
+
import { ASSOCIATED_TOKEN_PROGRAM_ID as m, TOKEN_PROGRAM_ID as h, createAssociatedTokenAccountInstruction as g, getAssociatedTokenAddress as _ } from "@solana/spl-token";
|
|
10
10
|
//#region libs/shared/common/src/functions/pre-transaction/sendV0Transaction.ts
|
|
11
|
-
var
|
|
11
|
+
var v = 5e3, y = 6e4, b = 7, x = async (e, t, n = "confirmed") => await c(() => e.getTransaction(t, {
|
|
12
12
|
commitment: n,
|
|
13
13
|
maxSupportedTransactionVersion: 0
|
|
14
14
|
}), {
|
|
15
|
-
timeoutMs:
|
|
16
|
-
intervalMs:
|
|
17
|
-
}) ?? null,
|
|
15
|
+
timeoutMs: y,
|
|
16
|
+
intervalMs: v
|
|
17
|
+
}) ?? null, S = async (e, a, o, s, c = !1) => {
|
|
18
18
|
try {
|
|
19
|
-
let { blockhash:
|
|
20
|
-
payerKey:
|
|
21
|
-
recentBlockhash:
|
|
22
|
-
instructions: [
|
|
23
|
-
|
|
19
|
+
let { blockhash: l } = await e.getLatestBlockhash(), d = new p(new f({
|
|
20
|
+
payerKey: a,
|
|
21
|
+
recentBlockhash: l,
|
|
22
|
+
instructions: [
|
|
23
|
+
u.setComputeUnitLimit({ units: n }),
|
|
24
|
+
...c ? [u.requestHeapFrame({ bytes: r })] : [],
|
|
25
|
+
...o
|
|
26
|
+
]
|
|
27
|
+
}).compileToV0Message(s)), { unitsConsumed: m } = (await e.simulateTransaction(d, {
|
|
24
28
|
sigVerify: !1,
|
|
25
29
|
replaceRecentBlockhash: !0
|
|
26
30
|
})).value;
|
|
27
|
-
if (!
|
|
28
|
-
let
|
|
29
|
-
return Math.max(
|
|
31
|
+
if (!m) return n;
|
|
32
|
+
let h = Math.ceil(m * (1 + t));
|
|
33
|
+
return Math.max(i, Math.min(h, n));
|
|
30
34
|
} catch {
|
|
31
35
|
return n;
|
|
32
36
|
}
|
|
33
|
-
},
|
|
37
|
+
}, C = (e, t, n, r) => {
|
|
34
38
|
let i = /* @__PURE__ */ new Set();
|
|
35
39
|
return t && i.add(t.toBase58()), n?.forEach((e) => i.add(e.toBase58())), e.forEach((e) => {
|
|
36
40
|
i.add(e.programId.toBase58()), e.keys.forEach((e) => {
|
|
@@ -40,77 +44,78 @@ var _ = 5e3, v = 6e4, y = 7, b = async (e, t, n = "confirmed") => await s(() =>
|
|
|
40
44
|
i.add(e.key.toBase58()), e.state.addresses.forEach((e) => {
|
|
41
45
|
i.add(e.toBase58());
|
|
42
46
|
});
|
|
43
|
-
}), [...i].map((e) => new
|
|
44
|
-
},
|
|
47
|
+
}), [...i].map((e) => new d(e));
|
|
48
|
+
}, w = (t) => {
|
|
45
49
|
if (!t) throw Error("Failed to fetch Solana transaction details for signature");
|
|
46
50
|
if (t.meta?.err) {
|
|
47
|
-
let n = e(t.meta.err);
|
|
48
|
-
throw Error(`Solana transaction failed on-chain: ${n}`);
|
|
51
|
+
let n = e(t.meta.err), r = t.meta.logMessages?.join("\n");
|
|
52
|
+
throw Error(r ? `Solana transaction failed on-chain: ${n}\n${r}` : `Solana transaction failed on-chain: ${n}`);
|
|
49
53
|
}
|
|
50
|
-
},
|
|
51
|
-
if (
|
|
52
|
-
let
|
|
54
|
+
}, T = async (e, t, i, a, o, c = !1) => {
|
|
55
|
+
if (i.some((e) => e.programId.equals(u.programId))) return i.map((e) => e.programId.equals(u.programId) && e.data[0] === 2 ? u.setComputeUnitLimit({ units: n }) : e);
|
|
56
|
+
let l = i.filter((e) => !e.programId.equals(u.programId)), d = await S(e, t, l, a, c), f = u.setComputeUnitLimit({ units: d }), p = e.rpcEndpoint.includes("helius") ? await s(C(l, t, [u.programId], a), o) : 0;
|
|
53
57
|
return [
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
...
|
|
58
|
+
f,
|
|
59
|
+
u.setComputeUnitPrice({ microLamports: p }),
|
|
60
|
+
...c ? [u.requestHeapFrame({ bytes: r })] : [],
|
|
61
|
+
...l
|
|
57
62
|
];
|
|
58
|
-
},
|
|
63
|
+
}, E = async (e, t, n, r, i, a = !1) => {
|
|
59
64
|
if (t.length === 0) return "";
|
|
60
|
-
for (let
|
|
61
|
-
let
|
|
65
|
+
for (let s = 0; s < 10; s += 1) {
|
|
66
|
+
let c = s === 9;
|
|
62
67
|
try {
|
|
63
|
-
let
|
|
68
|
+
let c = await T(e, n.publicKey, t, i, s >= b ? o.HIGH : o.RECOMMENDED, a), { blockhash: l, lastValidBlockHeight: u } = await e.getLatestBlockhash(), d = new p(new f({
|
|
64
69
|
payerKey: n.publicKey,
|
|
65
|
-
instructions:
|
|
66
|
-
recentBlockhash:
|
|
70
|
+
instructions: c,
|
|
71
|
+
recentBlockhash: l
|
|
67
72
|
}).compileToV0Message(i));
|
|
68
|
-
|
|
69
|
-
let
|
|
73
|
+
d.sign(r);
|
|
74
|
+
let m = await e.sendTransaction(d);
|
|
70
75
|
return await e.confirmTransaction({
|
|
71
|
-
signature:
|
|
72
|
-
blockhash:
|
|
73
|
-
lastValidBlockHeight:
|
|
74
|
-
}, "confirmed"),
|
|
76
|
+
signature: m,
|
|
77
|
+
blockhash: l,
|
|
78
|
+
lastValidBlockHeight: u
|
|
79
|
+
}, "confirmed"), w(await x(e, m)), m;
|
|
75
80
|
} catch (e) {
|
|
76
|
-
if (
|
|
81
|
+
if (l(e) && !c) continue;
|
|
77
82
|
throw e;
|
|
78
83
|
}
|
|
79
84
|
}
|
|
80
85
|
return "";
|
|
81
|
-
},
|
|
86
|
+
}, D = async (e, t, n, r) => {
|
|
82
87
|
if (!n) return null;
|
|
83
|
-
let i = await
|
|
84
|
-
return await e.getAccountInfo(i) || await
|
|
85
|
-
},
|
|
86
|
-
let
|
|
87
|
-
if (!
|
|
88
|
+
let i = await _(n, r, !0, h, m);
|
|
89
|
+
return await e.getAccountInfo(i) || await E(e, [g(t.publicKey, i, r, n, h, m)], t, [t]), i;
|
|
90
|
+
}, O = async ({ connection: e, chainId: t, subAccount: n, payerPublicKey: r, instructions: i, lookupTableAccounts: s }) => {
|
|
91
|
+
let c = a.getPrivateKeyFromSubAccount(t, n);
|
|
92
|
+
if (!c) throw Error("Private key is not available");
|
|
88
93
|
for (let t = 0; t < 10; t += 1) {
|
|
89
94
|
let n = t === 9;
|
|
90
95
|
try {
|
|
91
|
-
let t = await
|
|
96
|
+
let t = await T(e, r, i, s, n ? o.HIGH : o.RECOMMENDED), { blockhash: l, lastValidBlockHeight: u } = await e.getLatestBlockhash(), d = new p(new f({
|
|
92
97
|
payerKey: r,
|
|
93
|
-
recentBlockhash:
|
|
98
|
+
recentBlockhash: l,
|
|
94
99
|
instructions: t
|
|
95
|
-
}).compileToV0Message(s)), m = await
|
|
100
|
+
}).compileToV0Message(s)), m = await a.sendAndSignSolanaTransactionFromPrivateKey(e, c, d, !0);
|
|
96
101
|
return await e.confirmTransaction({
|
|
97
102
|
signature: m,
|
|
98
|
-
blockhash:
|
|
103
|
+
blockhash: l,
|
|
99
104
|
lastValidBlockHeight: u
|
|
100
|
-
}, "confirmed"),
|
|
105
|
+
}, "confirmed"), w(await x(e, m)), m;
|
|
101
106
|
} catch (e) {
|
|
102
|
-
if (
|
|
107
|
+
if (l(e) && !n) continue;
|
|
103
108
|
throw e;
|
|
104
109
|
}
|
|
105
110
|
}
|
|
106
111
|
throw Error("Failed to send proxy v0 transaction due to expired blockheight after all retries");
|
|
107
|
-
},
|
|
108
|
-
let { blockhash: i } = await e.getLatestBlockhash(), a = new
|
|
112
|
+
}, k = async (e, t, n, r) => {
|
|
113
|
+
let { blockhash: i } = await e.getLatestBlockhash(), a = new p(new f({
|
|
109
114
|
payerKey: t,
|
|
110
115
|
recentBlockhash: i,
|
|
111
|
-
instructions: await
|
|
116
|
+
instructions: await T(e, t, n, r)
|
|
112
117
|
}).compileToV0Message(r));
|
|
113
118
|
return Buffer.from(a.serialize()).toString("base64");
|
|
114
119
|
};
|
|
115
120
|
//#endregion
|
|
116
|
-
export {
|
|
121
|
+
export { D as ensureAtaExists, S as estimateComputeUnitLimit, x as fetchSolanaTransaction, C as getAccountsFromInstructions, O as sendProxyV0Transaction, E as sendV0Transaction, k as serializeProxyV0Transaction };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../types/external-action.types.cjs`),t=require(`../../constants/chains.constants.cjs`),n=require(`../../constants/protocol.constants.cjs`),r=require(`../web3/etherFunctions.cjs`),ee=require(`../../crypto/poseidon.cjs`),te=require(`../../data-structures/crypto-keys/keys.cjs`),ne=require(`../utils/time.utils.cjs`),i=require(`../utils/bit.operations.cjs`),a=require(`../../error-handling/logger.cjs`),o=require(`./common.snarkjs.cjs`),s=require(`./signedMessageHash.cjs`),c=require(`./generateCircomData.cjs`),l=require(
|
|
1
|
+
const e=require(`../../types/external-action.types.cjs`),t=require(`../../constants/chains.constants.cjs`),n=require(`../../constants/protocol.constants.cjs`),r=require(`../web3/etherFunctions.cjs`),ee=require(`../../crypto/poseidon.cjs`),te=require(`../../data-structures/crypto-keys/keys.cjs`),ne=require(`../utils/time.utils.cjs`),i=require(`../utils/bit.operations.cjs`),a=require(`../../error-handling/logger.cjs`),o=require(`./common.snarkjs.cjs`),s=require(`./signedMessageHash.cjs`),c=require(`./generateCircomData.cjs`),l=require(`../../data-structures/AccountActions/AccountActions.cjs`),u=require(`./generateMainAndCommitmentZkProof.cjs`),d=require(`./getMerkleTreeSiblingsAndRootHashes.cjs`),f=require(`../private-wallet/emporium.helpers.cjs`);var p=async(p,m,h,g,_,v,y,b,x,S=n.zeroAddress,C=t.chainIds.localhost,w=m.map(()=>!1),T=void 0,E,D)=>{let O=o.getZkProofVerifierName(m,h),k=o.calcAmountChanges(m,h),A=m.map(e=>e[0].erc20TokenAddress),j=o.calcEncryptedOutputs(h),M=n.defaultSignatureData,N=g.getShieldedPrivateKey(),{pubSpendingBJJPoint:P}=g.getSpendingKeyPair(),F=o.calcStealthAddressStructure(te.UserKeys.findCorrectRandomization(r.randomBigInt(31),N),N,g.getSpendingKeyPair().pubSpendingBJJPoint),{inCommitmentSiblings:I,inCommitmentSiblingSides:re,rootHashHinkal:L,inNullifiers:R}=await d.getDataFromWorkers(C,p,m.map(e=>e.map(e=>e.getConstructableParams()))),z=o.buildOutCommitments(h),B=r.randomBigInt(31),V=ee.poseidonFunction(B),H=BigInt(h.length>0?h[0][0].timeStamp:ne.getCurrentTimeInSeconds()),U={rootHashHinkal:L,spendingPublicKey:P,nullifyingPrivateKey:N,erc20TokenAddresses:A,amountChanges:k,inAmounts:m.map(e=>e.map(e=>e.amount.toString())),inRandomizations:m.map(e=>e.map(e=>o.getUtxoCircuitInRandomization(e))),inH0Ax:m.map(e=>e.map(e=>o.getUtxoCircuitH0Coords(e)[0].toString())),inH0Ay:m.map(e=>e.map(e=>o.getUtxoCircuitH0Coords(e)[1].toString())),isNewStyle:m.map(e=>e.map(e=>!!e.isNewStyle)),inTimeStamps:m.map(e=>e.map(e=>e.timeStamp)),inNullifiers:R,inCommitmentSiblings:I,inCommitmentSiblingSides:re,outAmounts:h.map(e=>e.map(e=>e.amount.toString())),outTimeStamp:H,outPublicKeys:h.map(e=>e.map(e=>e.getStealthAddress())),outCommitments:z,calldataHash:0n,messageSeed:B,H0Ax:i.takeOffHighestBit(F.extraRandomization),H0Ay:F.H0},W=o.calcPublicSignalCount(O,U.erc20TokenAddresses,U.amountChanges,U.inNullifiers,U.outCommitments),G=o.calcAmountChanges(m,h,!0),K=o.getSlippageValues(G);a.Logger.log({publicSignalCount:W});let q=Array.isArray(y)?y:[y],J=t.getOnchainChainId(C),Y=D?l.AccountActions.getSignerAddressFromPrivateKey(J,D):void 0,X=_===e.ExternalActionId.Emporium?await f.encodeEmporiumMetadata(C,v??n.zeroAddress,D,q,V,Y):await f.encodeEmporiumMetadata(C,n.zeroAddress,void 0,_===0n?[]:q,V,n.zeroAddress);U.calldataHash=o.createCallDataHash(W,S,v,_,X,j,T,K,w,x,M,E);let Z=s.computeSignedMessageHashEvm({rootHashHinkal:L,erc20TokenAddresses:A,amountChanges:k,outTimeStamp:H,inNullifiers:R,outCommitments:z,calldataHash:U.calldataHash,message:V,outH1Ay:F.H1,H0Ax:U.H0Ax,H0Ay:F.H0}),{R8:Q,S:ie}=g.signEddsa(Z);U.eddsaSignature=[Q[0],Q[1],ie],U.signedMessageHash=Z;let $=O.startsWith(`mainEVMCircuitMin0`),ae={outTimeStamp:H,calldataHash:U.calldataHash,messageSeed:B},{zkCallData:oe,commitmentValidationData:se}=await u.generateMainAndCommitmentZkProof(C,g,A,m,O,$?ae:U,b);return{zkCallData:oe,circomData:c.generateCircomData(z,R,L,G,A,h,j,W,_,v,X,S,U.calldataHash,F,w,T,$?Number(H):void 0,K,x,M,E),dimData:{tokenNumber:m.length,nullifierAmount:m.length>0?m[0].length:0,outputAmount:h.length>0?h[0].length:0},encryptedOutputs:j,commitmentValidationData:se}};exports.constructZkProof=p;
|
|
@@ -10,8 +10,8 @@ import { Logger as ie } from "../../error-handling/logger.mjs";
|
|
|
10
10
|
import { buildOutCommitments as ae, calcAmountChanges as o, calcEncryptedOutputs as s, calcPublicSignalCount as c, calcStealthAddressStructure as l, createCallDataHash as u, getSlippageValues as d, getUtxoCircuitH0Coords as f, getUtxoCircuitInRandomization as oe, getZkProofVerifierName as se } from "./common.snarkjs.mjs";
|
|
11
11
|
import { computeSignedMessageHashEvm as ce } from "./signedMessageHash.mjs";
|
|
12
12
|
import { generateCircomData as le } from "./generateCircomData.mjs";
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
13
|
+
import { AccountActions as ue } from "../../data-structures/AccountActions/AccountActions.mjs";
|
|
14
|
+
import { generateMainAndCommitmentZkProof as de } from "./generateMainAndCommitmentZkProof.mjs";
|
|
15
15
|
import { getDataFromWorkers as p } from "./getMerkleTreeSiblingsAndRootHashes.mjs";
|
|
16
16
|
import { encodeEmporiumMetadata as m } from "../private-wallet/emporium.helpers.mjs";
|
|
17
17
|
//#region libs/shared/common/src/functions/snarkjs/constructGeneralZkProof.ts
|
|
@@ -41,7 +41,7 @@ var h = async (h, g, _, v, y, b, x, fe, S, C = i, w = t.localhost, T = g.map(()
|
|
|
41
41
|
H0Ay: I.H0
|
|
42
42
|
}, K = c(k, G.erc20TokenAddresses, G.amountChanges, G.inNullifiers, G.outCommitments), q = o(g, _, !0), J = d(q);
|
|
43
43
|
ie.log({ publicSignalCount: K });
|
|
44
|
-
let Y = Array.isArray(x) ? x : [x], pe = n(w), me = O ?
|
|
44
|
+
let Y = Array.isArray(x) ? x : [x], pe = n(w), me = O ? ue.getSignerAddressFromPrivateKey(pe, O) : void 0, X = y === e.Emporium ? await m(w, b ?? i, O, Y, U, me) : await m(w, i, void 0, y === 0n ? [] : Y, U, i);
|
|
45
45
|
G.calldataHash = u(K, C, b, y, X, M, E, J, T, S, N, D);
|
|
46
46
|
let Z = ce({
|
|
47
47
|
rootHashHinkal: z,
|
|
@@ -65,7 +65,7 @@ var h = async (h, g, _, v, y, b, x, fe, S, C = i, w = t.localhost, T = g.map(()
|
|
|
65
65
|
outTimeStamp: W,
|
|
66
66
|
calldataHash: G.calldataHash,
|
|
67
67
|
messageSeed: H
|
|
68
|
-
}, { zkCallData: _e } = await
|
|
68
|
+
}, { zkCallData: _e, commitmentValidationData: ve } = await de(w, v, j, g, k, $ ? ge : G, fe);
|
|
69
69
|
return {
|
|
70
70
|
zkCallData: _e,
|
|
71
71
|
circomData: le(V, B, z, q, j, _, M, K, y, b, X, C, G.calldataHash, I, T, E, $ ? Number(W) : void 0, J, S, N, D),
|
|
@@ -74,7 +74,8 @@ var h = async (h, g, _, v, y, b, x, fe, S, C = i, w = t.localhost, T = g.map(()
|
|
|
74
74
|
nullifierAmount: g.length > 0 ? g[0].length : 0,
|
|
75
75
|
outputAmount: _.length > 0 ? _[0].length : 0
|
|
76
76
|
},
|
|
77
|
-
encryptedOutputs: M
|
|
77
|
+
encryptedOutputs: M,
|
|
78
|
+
commitmentValidationData: ve
|
|
78
79
|
};
|
|
79
80
|
};
|
|
80
81
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../web3/etherFunctions.cjs`),n=require(`../../crypto/poseidon.cjs`),r=require(`../utils/bit.operations.cjs`),i=require(`../utils/solanaMint.utils.cjs`),a=require(`./common.snarkjs.cjs`),o=require(`../pre-transaction/solana.cjs`),s=require(`./signedMessageHash.cjs`)
|
|
1
|
+
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../web3/etherFunctions.cjs`),n=require(`../../crypto/poseidon.cjs`),r=require(`../utils/bit.operations.cjs`),i=require(`../utils/solanaMint.utils.cjs`),a=require(`./common.snarkjs.cjs`),o=require(`../pre-transaction/solana.cjs`),s=require(`./signedMessageHash.cjs`);require(`../pre-transaction/index.cjs`);const c=require(`./generateMainAndCommitmentZkProof.cjs`);require(`../utils/index.cjs`);const l=require(`./getMerkleTreeSiblingsAndRootHashes.cjs`),u=require(`../pre-transaction/getSolanaCalldataHash.cjs`);require(`../web3/index.cjs`);let d=require(`@solana/web3.js`);var f=async(f,p,m,h,g,_,v,y,b,x,S,C,w,T=e.chainIds.solanaLocalnet,E=[],D=[],O=0n)=>{let k=new d.PublicKey(x),A=new d.PublicKey(S),j=m.getShieldedPrivateKey(),{pubSpendingBJJPoint:M}=m.getSpendingKeyPair(),N=a.calcStealthAddressStructure(v,j,m.getSpendingKeyPair().pubSpendingBJJPoint),P=t.randomBigInt(31),F=n.poseidonFunction(P),I=n.poseidonFunction(O),L=h.map(e=>i.formatMintAddress(e)),R=L.map(e=>e.mintAccountPart1),z=L.map(e=>e.mintAccountPart2),B=u.getSolanaCalldataHash(C,k,A,w,y,b,E,D),V=`${C.tokenNumber}x${C.nullifierAmount}x${C.outputAmount}`,H=a.calcAmountChanges(g,_),{inCommitmentSiblings:U,inCommitmentSiblingSides:W,rootHashHinkal:G,inNullifiers:K}=await l.getDataFromWorkers(T,p,g.map(e=>e.map(e=>e.getConstructableParams()))),q=a.buildOutCommitments(_),J=r.takeOffHighestBit(N.extraRandomization),Y=N.H0,X=s.computeSignedMessageHashSolana({rootHashHinkal:G,mintAccountPart1:R,mintAccountPart2:z,amountChanges:H,outTimeStamp:BigInt(_[0][0].timeStamp),inNullifiers:K,outCommitments:q,calldataHash:B,message:F,swapperAccountAdditionalSeed:I,outH1Ay:N.H1,H0Ax:J,H0Ay:Y}),{R8:Z,S:Q}=m.signEddsa(X),$={rootHashHinkal:G,spendingPublicKey:M,eddsaSignature:[Z[0],Z[1],Q],signedMessageHash:X,nullifyingPrivateKey:j,mintAccountPart1:R,mintAccountPart2:z,amountChanges:H,inAmounts:g.map(e=>e.map(e=>e.amount.toString())),inRandomizations:g.map(e=>e.map(e=>a.getUtxoCircuitInRandomization(e))),inH0Ax:g.map(e=>e.map(e=>a.getUtxoCircuitH0Coords(e)[0].toString())),inH0Ay:g.map(e=>e.map(e=>a.getUtxoCircuitH0Coords(e)[1].toString())),isNewStyle:g.map(e=>e.map(e=>!!e.isNewStyle)),inTimeStamps:g.map(e=>e.map(e=>e.timeStamp)),inNullifiers:K,inCommitmentSiblings:U,inCommitmentSiblingSides:W,outAmounts:_.map(e=>e.map(e=>e.amount.toString())),outTimeStamp:BigInt(_[0][0].timeStamp),outPublicKeys:_.map(e=>e.map(e=>e.getStealthAddress())),outCommitments:q,calldataHash:B,messageSeed:P,swapperAccountSalt:O,H0Ax:J,H0Ay:Y},{zkCallData:ee,publicSignals:te,commitmentValidationData:ne}=await c.generateMainAndCommitmentZkProof(T,m,h,g,`mainSolanaCircuit${V}`,$,f),[re,ie,ae]=ee;return{proofAArr:re.map(BigInt).map(o.encodeToByte32Array).flat(),proofBArr:ie.flat().map(BigInt).map(o.encodeToByte32Array).flat(),proofCArr:ae.map(BigInt).map(o.encodeToByte32Array).flat(),publicInputsArr:te.map(BigInt).map(o.encodeToByte32Array),commitmentValidationData:ne}};exports.constructSolanaZkProof=f;
|