@hinkal/common 0.3.8 → 0.3.10
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 +2 -8
- package/common/src/API/API.cjs +1 -1
- package/common/src/API/API.d.ts +4 -5
- package/common/src/API/API.mjs +79 -80
- package/common/src/API/dashboardTransactionCalls.cjs +1 -1
- package/common/src/API/dashboardTransactionCalls.d.ts +4 -1
- package/common/src/API/dashboardTransactionCalls.mjs +2 -2
- package/common/src/API/enclaveRecipientInfoCalls.d.ts +0 -2
- package/common/src/API/enclaveSignatureCalls.cjs +1 -1
- package/common/src/API/enclaveSignatureCalls.d.ts +2 -1
- package/common/src/API/enclaveSignatureCalls.mjs +5 -8
- package/common/src/API/enclaveUtxoCalls.cjs +1 -1
- package/common/src/API/enclaveUtxoCalls.d.ts +12 -8
- package/common/src/API/enclaveUtxoCalls.mjs +17 -20
- package/common/src/API/privateSendRecipientInfoCalls.cjs +1 -1
- package/common/src/API/privateSendRecipientInfoCalls.d.ts +3 -6
- package/common/src/API/privateSendRecipientInfoCalls.mjs +12 -6
- package/common/src/API/scheduled-transactions-calls.cjs +1 -1
- package/common/src/API/scheduled-transactions-calls.d.ts +1 -5
- package/common/src/API/scheduled-transactions-calls.mjs +2 -6
- package/common/src/constants/bridging.constants.cjs +1 -1
- package/common/src/constants/bridging.constants.d.ts +1 -0
- package/common/src/constants/bridging.constants.mjs +1 -1
- package/common/src/constants/chains.constants.cjs +1 -1
- package/common/src/constants/chains.constants.d.ts +18 -17
- package/common/src/constants/chains.constants.mjs +108 -89
- package/common/src/constants/deploy-data/deploy-data-arbMainnet.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-arbMainnet.json.mjs +2 -1
- package/common/src/constants/deploy-data/deploy-data-base.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-base.json.mjs +2 -1
- package/common/src/constants/deploy-data/deploy-data-bnbMainnet.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-bnbMainnet.json.mjs +2 -1
- package/common/src/constants/deploy-data/deploy-data-ethMainnet.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-ethMainnet.json.mjs +2 -1
- package/common/src/constants/deploy-data/deploy-data-optimism.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-optimism.json.mjs +2 -1
- package/common/src/constants/deploy-data/deploy-data-polygon.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-polygon.json.mjs +2 -1
- package/common/src/constants/events.constants.cjs +1 -1
- package/common/src/constants/events.constants.mjs +1 -16
- package/common/src/constants/protocol.constants.d.ts +1 -3
- package/common/src/constants/server.constants.cjs +1 -1
- package/common/src/constants/server.constants.d.ts +1 -4
- package/common/src/constants/server.constants.mjs +1 -4
- package/common/src/constants/tx-confirmation.constants.cjs +1 -1
- package/common/src/constants/tx-confirmation.constants.d.ts +1 -0
- package/common/src/constants/tx-confirmation.constants.mjs +2 -2
- package/common/src/data-structures/Hinkal/Hinkal.cjs +1 -1
- package/common/src/data-structures/Hinkal/Hinkal.d.ts +6 -9
- package/common/src/data-structures/Hinkal/Hinkal.mjs +129 -160
- package/common/src/data-structures/Hinkal/IHinkal.d.ts +5 -9
- package/common/src/data-structures/Hinkal/handleAutoDepositBack.cjs +1 -1
- package/common/src/data-structures/Hinkal/handleAutoDepositBack.mjs +23 -23
- package/common/src/data-structures/Hinkal/hinkalBridgePrivateToPrivate.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalBridgePrivateToPrivate.mjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalDeposit.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalDeposit.mjs +10 -10
- package/common/src/data-structures/Hinkal/hinkalDepositAndWithdraw.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalDepositAndWithdraw.mjs +18 -18
- package/common/src/data-structures/Hinkal/hinkalNearDepositAndBridge.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalNearDepositAndBridge.mjs +3 -2
- package/common/src/data-structures/Hinkal/hinkalProxySend.cjs +1 -0
- package/common/src/data-structures/Hinkal/hinkalProxySend.d.ts +6 -0
- package/common/src/data-structures/Hinkal/hinkalProxySend.mjs +16 -0
- package/common/src/data-structures/Hinkal/hinkalSolanaSwap.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaSwap.mjs +44 -47
- package/common/src/data-structures/Hinkal/hinkalSolanaTransact.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaTransact.mjs +2 -2
- package/common/src/data-structures/Hinkal/hinkalTransact.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalTransact.mjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalTransfer.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalTransfer.mjs +4 -4
- package/common/src/data-structures/Hinkal/hinkalWithdrawStuckUtxos.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalWithdrawStuckUtxos.mjs +101 -94
- package/common/src/data-structures/Hinkal/index.d.ts +0 -1
- 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/index.cjs +1 -1
- package/common/src/data-structures/IndexedDB/index.d.ts +1 -0
- package/common/src/data-structures/IndexedDB/index.mjs +1 -0
- package/common/src/data-structures/IndexedDB/scheduled-transactions-db.cjs +1 -0
- package/common/src/data-structures/IndexedDB/scheduled-transactions-db.d.ts +11 -0
- package/common/src/data-structures/IndexedDB/scheduled-transactions-db.mjs +34 -0
- 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/PrivateTokensDB.cjs +1 -1
- package/common/src/data-structures/TokenDBs/PrivateTokensDB.mjs +18 -19
- package/common/src/data-structures/event-service/evm/BlockchainEventEmitter.cjs +1 -1
- package/common/src/data-structures/event-service/evm/BlockchainEventEmitter.mjs +11 -11
- 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/private-balances/HinkalPrivateBalanceController.cjs +1 -1
- package/common/src/data-structures/private-balances/HinkalPrivateBalanceController.d.ts +1 -0
- package/common/src/data-structures/private-balances/HinkalPrivateBalanceController.mjs +79 -75
- package/common/src/data-structures/provider-adapter/IProviderAdapter.d.ts +1 -4
- package/common/src/error-handling/error-codes.constants.cjs +1 -1
- package/common/src/error-handling/error-codes.constants.d.ts +6 -0
- package/common/src/error-handling/error-codes.constants.mjs +10 -4
- package/common/src/functions/auto-deposit-back-helpers/get-gas-token-records.cjs +1 -1
- package/common/src/functions/auto-deposit-back-helpers/get-gas-token-records.mjs +7 -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.mjs +1 -2
- package/common/src/functions/pre-transaction/getVolatileTransferAmount.cjs +1 -1
- package/common/src/functions/pre-transaction/getVolatileTransferAmount.mjs +12 -12
- package/common/src/functions/private-wallet/emporium.helpers.cjs +1 -1
- package/common/src/functions/private-wallet/emporium.helpers.mjs +13 -13
- package/common/src/functions/private-wallet/emporium.swap.helpers.cjs +1 -1
- package/common/src/functions/private-wallet/emporium.swap.helpers.mjs +13 -13
- package/common/src/functions/snarkjs/constructGeneralZkProof.cjs +1 -1
- package/common/src/functions/snarkjs/constructGeneralZkProof.mjs +4 -4
- package/common/src/functions/snarkjs/constructSolanaZkProof.cjs +1 -1
- package/common/src/functions/snarkjs/constructSolanaZkProof.mjs +5 -5
- package/common/src/functions/snarkjs/constructTxEnclave.cjs +1 -1
- package/common/src/functions/snarkjs/constructTxEnclave.d.ts +1 -1
- package/common/src/functions/snarkjs/constructTxEnclave.mjs +61 -133
- package/common/src/functions/snarkjs/constructTxEnclaveVerify.cjs +1 -0
- package/common/src/functions/snarkjs/constructTxEnclaveVerify.d.ts +5 -0
- package/common/src/functions/snarkjs/constructTxEnclaveVerify.mjs +295 -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 +13 -12
- package/common/src/functions/utils/bridge-arrival.utils.cjs +1 -1
- package/common/src/functions/utils/bridge-arrival.utils.mjs +12 -11
- package/common/src/functions/utils/create-provider.cjs +1 -1
- package/common/src/functions/utils/create-provider.mjs +4 -1
- package/common/src/functions/utils/enclave-recipient-info-storage.cjs +1 -1
- package/common/src/functions/utils/enclave-recipient-info-storage.d.ts +4 -1
- package/common/src/functions/utils/enclave-recipient-info-storage.mjs +1 -0
- package/common/src/functions/utils/enclave-signature-storage.cjs +1 -1
- package/common/src/functions/utils/enclave-signature-storage.d.ts +1 -1
- package/common/src/functions/utils/enclave-signature-storage.mjs +3 -3
- package/common/src/functions/utils/enclave-utxo-storage.cjs +1 -1
- package/common/src/functions/utils/enclave-utxo-storage.d.ts +3 -3
- package/common/src/functions/utils/enclave-utxo-storage.mjs +8 -5
- package/common/src/functions/utils/encryptInputForEnclave.cjs +1 -1
- package/common/src/functions/utils/encryptInputForEnclave.d.ts +8 -0
- package/common/src/functions/utils/encryptInputForEnclave.mjs +43 -23
- package/common/src/functions/utils/erc20tokenFunctions.cjs +1 -1
- package/common/src/functions/utils/erc20tokenFunctions.mjs +2 -15
- package/common/src/functions/utils/fees.utils.cjs +1 -1
- package/common/src/functions/utils/fees.utils.mjs +6 -6
- package/common/src/functions/utils/index.cjs +1 -1
- package/common/src/functions/utils/index.d.ts +1 -0
- package/common/src/functions/utils/index.mjs +3 -3
- package/common/src/functions/utils/ipfs.d.ts +2 -3
- package/common/src/functions/utils/lifi.utils.d.ts +2 -0
- package/common/src/functions/utils/nearIntents.utils.cjs +1 -1
- package/common/src/functions/utils/nearIntents.utils.mjs +6 -6
- package/common/src/functions/utils/publicBalance.utils.cjs +1 -1
- package/common/src/functions/utils/publicBalance.utils.mjs +9 -10
- package/common/src/functions/utils/temporary-wallet-recovery.utils.cjs +1 -0
- package/common/src/functions/utils/temporary-wallet-recovery.utils.d.ts +7 -0
- package/common/src/functions/utils/temporary-wallet-recovery.utils.mjs +10 -0
- package/common/src/functions/utils/tron.utils.cjs +1 -1
- package/common/src/functions/utils/tron.utils.mjs +16 -29
- package/common/src/functions/utils/tx-confirmation.utils.cjs +1 -1
- package/common/src/functions/utils/tx-confirmation.utils.d.ts +1 -0
- package/common/src/functions/utils/tx-confirmation.utils.mjs +16 -13
- package/common/src/functions/web3/events/getInputUtxoAndBalance.cjs +1 -1
- package/common/src/functions/web3/events/getInputUtxoAndBalance.mjs +5 -5
- package/common/src/functions/web3/events/getInputUtxosEnclave.cjs +1 -1
- package/common/src/functions/web3/events/getInputUtxosEnclave.d.ts +1 -1
- package/common/src/functions/web3/events/getInputUtxosEnclave.mjs +19 -11
- package/common/src/functions/web3/events/getShieldedBalance.cjs +1 -1
- package/common/src/functions/web3/events/getShieldedBalance.d.ts +4 -4
- package/common/src/functions/web3/events/getShieldedBalance.mjs +113 -102
- package/common/src/functions/web3/functionCalls/transactCallDirectTron.cjs +1 -1
- package/common/src/functions/web3/functionCalls/transactCallDirectTron.mjs +16 -16
- package/common/src/providers/SolanaProviderAdapter.cjs +1 -1
- package/common/src/providers/SolanaProviderAdapter.d.ts +1 -4
- package/common/src/providers/SolanaProviderAdapter.mjs +3 -6
- package/common/src/providers/WagmiProviderAdapter.cjs +1 -1
- package/common/src/providers/WagmiProviderAdapter.mjs +5 -5
- 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/enclaveApi.types.d.ts +2 -3
- package/common/src/types/ethereum-network.types.d.ts +1 -0
- package/common/src/types/events.types.d.ts +1 -0
- package/common/src/types/near-intents.types.d.ts +1 -0
- package/common/src/types/remote-proof.types.d.ts +5 -0
- package/common/src/types/remote-tx-build.types.d.ts +37 -4
- package/common/src/types/scheduled-transactions.types.d.ts +18 -0
- package/common/src/types/solana.types.d.ts +0 -3
- package/common/src/webworker/{logError-RKYfeI6h.js → logError-CIIt1CO3.js} +1 -1
- package/common/src/webworker/package.json +5 -6
- 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-BHzCZ9HT.js +1 -0
- package/common/src/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.cjs +1 -1
- package/common/src/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.mjs +1 -1
- package/common/src/webworker/zkProofWorkerNode.cjs +1 -1
- package/package.json +5 -6
- package/services/Hinkal.cjs +1 -1
- package/services/Hinkal.d.ts +6 -2
- package/services/Hinkal.mjs +9 -4
- package/types/IHinkal.d.ts +6 -2
- package/common/src/API/evm-token-assets.cjs +0 -1
- package/common/src/API/evm-token-assets.mjs +0 -20
- package/common/src/API/getAnyRecipientInfo.d.ts +0 -1
- package/common/src/API/solana-nft-assets.cjs +0 -1
- package/common/src/API/solana-nft-assets.mjs +0 -11
- package/common/src/data-structures/Hinkal/hinkalSolanaSponsoredProxySend.d.ts +0 -5
- package/common/src/data-structures/TokenDBs/AlchemyPublicTokensDB.cjs +0 -1
- package/common/src/data-structures/TokenDBs/AlchemyPublicTokensDB.mjs +0 -109
- package/common/src/data-structures/TokenDBs/ArcPublicTokensDB.cjs +0 -1
- package/common/src/data-structures/TokenDBs/ArcPublicTokensDB.mjs +0 -94
- package/common/src/data-structures/TokenDBs/EventsPublicTokensDB.cjs +0 -1
- package/common/src/data-structures/TokenDBs/EventsPublicTokensDB.mjs +0 -134
- package/common/src/data-structures/TokenDBs/PublicTokensDB.cjs +0 -1
- package/common/src/data-structures/TokenDBs/PublicTokensDB.mjs +0 -32
- package/common/src/data-structures/TokenDBs/TempoPublicTokensDB.cjs +0 -1
- package/common/src/data-structures/TokenDBs/TempoPublicTokensDB.mjs +0 -37
- package/common/src/data-structures/TokenDBs/TronPublicTokensDB.cjs +0 -1
- package/common/src/data-structures/TokenDBs/TronPublicTokensDB.mjs +0 -51
- package/common/src/data-structures/TokenDBs/index.cjs +0 -1
- package/common/src/data-structures/TokenDBs/index.mjs +0 -6
- package/common/src/functions/utils/ipfs.cjs +0 -1
- package/common/src/functions/utils/ipfs.mjs +0 -1
- package/common/src/functions/utils/reloadPage.cjs +0 -1
- package/common/src/functions/utils/reloadPage.mjs +0 -4
- package/common/src/webworker/workerProxy-COB7g4Qc.js +0 -1
|
@@ -141,12 +141,15 @@ var e = {
|
|
|
141
141
|
TRON_CONFIRMATION_DECLINED: "Confirmation declined by user",
|
|
142
142
|
BLACKLISTED_INPUT_COMMITMENT_ADDRESS: "One of the source addresses is restricted from private transactions",
|
|
143
143
|
ACCOUNT_RESOURCE_INSUFFICIENT_ERROR: "Account resource insufficient error",
|
|
144
|
-
TRON_ROOT_HASH_STALE: "Hinkal Root Hash Is Stale For
|
|
145
|
-
TRON_TX_IN_FLIGHT: "Another Hinkal transaction is in progress"
|
|
144
|
+
TRON_ROOT_HASH_STALE: "Hinkal Root Hash Is Stale For Insertion",
|
|
145
|
+
TRON_TX_IN_FLIGHT: "Another Hinkal transaction is in progress",
|
|
146
|
+
SOLANA_CONFIRMATION_TIMEOUT: "Transaction was not confirmed in",
|
|
147
|
+
BRIDGE_ARRIVAL_TIMEOUT: "Bridge did not land on destination temp wallet"
|
|
146
148
|
}, i = "Not enough memory. Please, close some tabs/applications to free up memory and try again", a = "Your transaction didn’t go through due to price slippage. Try increasing your slippage tolerance", o = {
|
|
147
149
|
USER_REJECTED_TRANSACTION: "You cancelled the transaction",
|
|
148
150
|
SOME_ERROR: "Some error has occurred. Please try again in a few minutes. If the issue persists, please report it in Discord",
|
|
149
151
|
TOO_HIGH_AMOUNT: "The amount you provided is too high, please adjust the amount",
|
|
152
|
+
NOT_ENOUGH_TOKENS: "Transfer amount exceeds balance. Try lowering amount or add funds and retry.",
|
|
150
153
|
WC_NO_MATCHING_KEY: "Wallet Connect error. Please, try again",
|
|
151
154
|
RPC_PROVIDER_LIMIT_ERROR: "Rate Limit: please, use different rpc provider in your wallet",
|
|
152
155
|
INSUFFICIENT_FUNDS_GAS: "Your balance is too low to cover the transaction fees. Please add funds to proceed",
|
|
@@ -223,11 +226,14 @@ var e = {
|
|
|
223
226
|
NO_SWAP_QUOTES: "No swap route available for this token pair on the selected network at the moment. Please try again later or adjust the swap parameters.",
|
|
224
227
|
TRON_ROOT_HASH_STALE: "Another transaction was processed just before yours. Please try again",
|
|
225
228
|
TRON_TX_IN_FLIGHT: "Another transaction is currently being processed. Please try again in a few seconds",
|
|
226
|
-
NO_LIFI_PRICE: "Li-Fi provider couldn't fetch the price. please, retry in a few seconds."
|
|
229
|
+
NO_LIFI_PRICE: "Li-Fi provider couldn't fetch the price. please, retry in a few seconds.",
|
|
230
|
+
SOLANA_CONFIRMATION_TIMEOUT: "Network didn't confirm your transfer in time. It may still be confirmed - please, check Solscan before retrying.",
|
|
231
|
+
BRIDGE_ARRIVAL_TIMEOUT: "The bridge is taking longer than usual. Your funds left the source chain and are not lost - once they arrive, claim them from Recovery Funds."
|
|
227
232
|
}, s = {
|
|
228
233
|
UTXO_LIMITATIONS: "Your transaction exceeds the UTXO limit",
|
|
229
234
|
INSUFFICIENT_BALANCE_FOR_FEES: "Fees are high right now and would consume a large portion of your balance. Consider reducing the amount or retrying later.",
|
|
230
|
-
HIGH_FEE_WARNING: "Total fees exceed your available balance. Consider adding funds or retry later when fees decrease."
|
|
235
|
+
HIGH_FEE_WARNING: "Total fees exceed your available balance. Consider adding funds or retry later when fees decrease.",
|
|
236
|
+
INSUFFICIENT_FUNDS_FOR_RECOVERY_FEES: "Insufficient funds to cover recovery fees"
|
|
231
237
|
};
|
|
232
238
|
//#endregion
|
|
233
239
|
export { s as DIRECTLY_SHOW_MESSAGE_ERROR_CODES, o as UserFriendlyErrorCodes, n as gasErrorCodes, t as insufficientResourcesErrorCodes, r as transactionErrorCodes };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../web3/etherFunctions.cjs`),t=require(`../../error-handling/logger.cjs`),n=require(`../utils/publicBalance.utils.cjs`);require(`../utils/index.cjs`),require(`../web3/index.cjs`);var
|
|
1
|
+
const e=require(`../web3/etherFunctions.cjs`),t=require(`../../error-handling/logger.cjs`),n=require(`../web3/events/getShieldedBalance.cjs`),r=require(`../utils/publicBalance.utils.cjs`);require(`../utils/index.cjs`),require(`../web3/index.cjs`);var i=async(i,a,o,s,c,l)=>{try{let t=await o.getEthereumAddressByChain(a),u=(await n.getShieldedBalances(o,new Map([[a,t]]),o.userKeys.getShieldedPrivateKey(),o.userKeys.getShieldedPublicKey())).get(a)??[];return await Promise.all(i.map(async t=>{let n=t.erc20TokenAddress.toLowerCase(),i=u.find(e=>e.token.erc20TokenAddress.toLowerCase()===n)?.balance??0n,a=(await r.getPublicBalance(c,s,t))?.balance??0n,o=l.get(n)??0,d=parseFloat(e.getAmountInToken(t,i))*o,f=parseFloat(e.getAmountInToken(t,a))*o;return{erc20Token:t,privateUsdBalance:d,publicUsdBalance:f,totalUsdBalance:d+f}}))}catch(e){return t.Logger.error(`Error getting gas token records`,e),[]}};exports.getGasTokenRecords=i;
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { getAmountInToken as e } from "../web3/etherFunctions.mjs";
|
|
2
2
|
import { Logger as t } from "../../error-handling/logger.mjs";
|
|
3
|
-
import {
|
|
3
|
+
import { getShieldedBalances as n } from "../web3/events/getShieldedBalance.mjs";
|
|
4
|
+
import { getPublicBalance as r } from "../utils/publicBalance.utils.mjs";
|
|
4
5
|
import "../utils/index.mjs";
|
|
5
6
|
import "../web3/index.mjs";
|
|
6
7
|
//#region libs/shared/common/src/functions/auto-deposit-back-helpers/get-gas-token-records.ts
|
|
7
|
-
var
|
|
8
|
+
var i = async (i, a, o, s, c, l) => {
|
|
8
9
|
try {
|
|
9
|
-
let t = await
|
|
10
|
-
return await Promise.all(
|
|
11
|
-
let
|
|
10
|
+
let t = await o.getEthereumAddressByChain(a), u = (await n(o, new Map([[a, t]]), o.userKeys.getShieldedPrivateKey(), o.userKeys.getShieldedPublicKey())).get(a) ?? [];
|
|
11
|
+
return await Promise.all(i.map(async (t) => {
|
|
12
|
+
let n = t.erc20TokenAddress.toLowerCase(), i = u.find((e) => e.token.erc20TokenAddress.toLowerCase() === n)?.balance ?? 0n, a = (await r(c, s, t))?.balance ?? 0n, o = l.get(n) ?? 0, d = parseFloat(e(t, i)) * o, f = parseFloat(e(t, a)) * o;
|
|
12
13
|
return {
|
|
13
14
|
erc20Token: t,
|
|
14
15
|
privateUsdBalance: d,
|
|
@@ -21,4 +22,4 @@ var r = async (r, i, a, o, s, c) => {
|
|
|
21
22
|
}
|
|
22
23
|
};
|
|
23
24
|
//#endregion
|
|
24
|
-
export {
|
|
25
|
+
export { i as getGasTokenRecords };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../utils/caseInsensitive.utils.cjs`),t=require(`../../error-handling/error-codes.constants.cjs`),n=require(`../../
|
|
1
|
+
const e=require(`../utils/caseInsensitive.utils.cjs`),t=require(`../../error-handling/error-codes.constants.cjs`),n=require(`../../error-handling/logger.cjs`),r=require(`../../types/external-action.types.cjs`),i=require(`../../types/offscreen.types.cjs`);require(`../../types/index.cjs`),require(`../../error-handling/index.cjs`);const a=require(`../pre-transaction/getFeeStructure.cjs`);require(`../pre-transaction/index.cjs`);const o=require(`../utils/convertEmporiumOpToCallInfo.cjs`),s=require(`../utils/postToOffscreen.cjs`);require(`../utils/index.cjs`);var c=async(c,l,u,d,f,p,m,h,g)=>{try{if(!((p.find(({erc20Token:t})=>e.caseInsensitiveEqual(t.erc20TokenAddress,c))?.totalUsdBalance??0)>=l)){let n=p.find(t=>t.totalUsdBalance<=l?!1:d.find(({erc20TokenAddress:n})=>e.caseInsensitiveEqual(n,t.erc20Token.erc20TokenAddress))?t.publicUsdBalance>l:!0);if(!n){s.postToOffscreen(i.MessagesFromOffscreen.AutoShieldTxStatus,{message:t.transactionErrorCodes.AUTO_SHIELD_INSUFFICIENT_GAS});return}c=n.erc20Token.erc20TokenAddress,m=await a.getFeeStructure(u,c,h,r.ExternalActionId.Emporium,f.map(e=>o.convertEmporiumOpToCallInfo(e,g,u)))}return{feeToken:c,feeStructure:m}}catch(e){n.Logger.error(`selectGasToken error`,{error:e});return}};exports.selectGasToken=c;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { caseInsensitiveEqual as e } from "../utils/caseInsensitive.utils.mjs";
|
|
2
2
|
import { transactionErrorCodes as t } from "../../error-handling/error-codes.constants.mjs";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { Logger as n } from "../../error-handling/logger.mjs";
|
|
4
|
+
import { ExternalActionId as r } from "../../types/external-action.types.mjs";
|
|
5
|
+
import { MessagesFromOffscreen as i } from "../../types/offscreen.types.mjs";
|
|
5
6
|
import "../../types/index.mjs";
|
|
6
|
-
import { Logger as i } from "../../error-handling/logger.mjs";
|
|
7
7
|
import "../../error-handling/index.mjs";
|
|
8
8
|
import { getFeeStructure as a } from "../pre-transaction/getFeeStructure.mjs";
|
|
9
9
|
import "../pre-transaction/index.mjs";
|
|
@@ -14,19 +14,19 @@ import "../utils/index.mjs";
|
|
|
14
14
|
var c = async (c, l, u, d, f, p, m, h, g) => {
|
|
15
15
|
try {
|
|
16
16
|
if (!((p.find(({ erc20Token: t }) => e(t.erc20TokenAddress, c))?.totalUsdBalance ?? 0) >= l)) {
|
|
17
|
-
let
|
|
18
|
-
if (!
|
|
19
|
-
s(
|
|
17
|
+
let n = p.find((t) => t.totalUsdBalance <= l ? !1 : d.find(({ erc20TokenAddress: n }) => e(n, t.erc20Token.erc20TokenAddress)) ? t.publicUsdBalance > l : !0);
|
|
18
|
+
if (!n) {
|
|
19
|
+
s(i.AutoShieldTxStatus, { message: t.AUTO_SHIELD_INSUFFICIENT_GAS });
|
|
20
20
|
return;
|
|
21
21
|
}
|
|
22
|
-
c =
|
|
22
|
+
c = n.erc20Token.erc20TokenAddress, m = await a(u, c, h, r.Emporium, f.map((e) => o(e, g, u)));
|
|
23
23
|
}
|
|
24
24
|
return {
|
|
25
25
|
feeToken: c,
|
|
26
26
|
feeStructure: m
|
|
27
27
|
};
|
|
28
28
|
} catch (e) {
|
|
29
|
-
|
|
29
|
+
n.error("selectGasToken error", { error: e });
|
|
30
30
|
return;
|
|
31
31
|
}
|
|
32
32
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`./utils/abi.utils.cjs`),require(`./utils/serialize.utils.cjs`),require(`./utils/caseInsensitive.utils.cjs`),require(`./utils/amounts.utils.cjs`),require(`./web3/etherFunctions.cjs`),require(`./utils/time.utils.cjs`),require(`./utils/upToDateState.cjs`),require(`./utils/cacheFunctions.cjs`),require(`./utils/encodeTokenWithId.cjs`),require(`./utils/enclaveHandshakeService.cjs`),require(`./utils/encryptInputForEnclave.cjs`),require(`./utils/solanaMint.utils.cjs`),require(`./utils/serialize-utxos.utils.cjs`),require(`./utils/customEnclaveFunctionsRegister.cjs`),require(`./utils/
|
|
1
|
+
require(`./utils/abi.utils.cjs`),require(`./utils/serialize.utils.cjs`),require(`./utils/caseInsensitive.utils.cjs`),require(`./utils/amounts.utils.cjs`),require(`./web3/etherFunctions.cjs`),require(`./utils/time.utils.cjs`),require(`./utils/upToDateState.cjs`),require(`./utils/cacheFunctions.cjs`),require(`./utils/encodeTokenWithId.cjs`),require(`./utils/enclaveHandshakeService.cjs`),require(`./utils/encryptInputForEnclave.cjs`),require(`./utils/solanaMint.utils.cjs`),require(`./utils/serialize-utxos.utils.cjs`),require(`./utils/customEnclaveFunctionsRegister.cjs`),require(`./utils/tron.utils.cjs`),require(`./utils/addresses.cjs`),require(`./web3/events/getInputUtxoAndBalance.cjs`),require(`./utils/legacyKeys.cjs`),require(`./utils/auth.utils.cjs`),require(`./utils/string.utils.cjs`),require(`./utils/token-check.utils.cjs`),require(`./utils/map.utils.cjs`),require(`./utils/mutexes.utils.cjs`),require(`./utils/erc20tokenFunctions.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/process-gas-estimates.cjs`),require(`./pre-transaction/getVolatileTransferAmount.cjs`),require(`./pre-transaction/constructAdminData.cjs`),require(`./utils/create-provider.cjs`),require(`./pre-transaction/calculateSolanaNullifierCount.cjs`),require(`./pre-transaction/convert-okx-instructions.cjs`),require(`./utils/process.utils.cjs`),require(`./pre-transaction/sendV0Transaction.cjs`),require(`./utils/bytes32.utils.cjs`),require(`./pre-transaction/getFeeStructure.cjs`),require(`./pre-transaction/getExternalSwapAddress.cjs`),require(`./pre-transaction/speculativeUtxo.cjs`),require(`./pre-transaction/buildCommitmentValidationData.cjs`),require(`./pre-transaction/index.cjs`),require(`./snarkjs/generateZkProof.cjs`),require(`./snarkjs/generateMainAndCommitmentZkProof.cjs`),require(`./web3/getContractMetadata.cjs`),require(`./utils/solana-program.utils.cjs`),require(`./snarkjs/fetchOnChainRootHashes.cjs`),require(`./utils/getContractAddress.cjs`),require(`./private-wallet/emporium.helpers.cjs`),require(`./snarkjs/constructGeneralZkProof.cjs`),require(`./utils/getSignerFromContract.cjs`),require(`./utils/tronSimulation.utils.cjs`),require(`./utils/resolve-sync.utils.cjs`),require(`./utils/cacheDevice.utils.cjs`),require(`./utils/involves-permit2-op.cjs`),require(`./utils/convertEmporiumOpToCallInfo.cjs`),require(`./utils/getRecipientInfoFromUserKeys.cjs`),require(`./utils/publicBalance.utils.cjs`),require(`./utils/postToOffscreen.cjs`),require(`./utils/fees.utils.cjs`),require(`./utils/proxyAvatar.utils.cjs`),require(`./utils/enclave-utxo-storage.cjs`),require(`./utils/enclave-signature-storage.cjs`),require(`./utils/tx-confirmation.utils.cjs`),require(`./utils/bridge-arrival.utils.cjs`),require(`./utils/solana-sponsored.utils.cjs`),require(`./utils/temp-wallet.utils.cjs`),require(`./utils/mnemonics.cjs`),require(`./utils/nearIntents.utils.cjs`),require(`./utils/index.cjs`),require(`./web3/lifiAPI.cjs`),require(`./web3/okxAPI.cjs`),require(`./web3/index.cjs`),require(`./snarkjs/constructSolanaZkProof.cjs`),require(`./snarkjs/index.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`);
|
|
@@ -12,8 +12,8 @@ import "./utils/encryptInputForEnclave.mjs";
|
|
|
12
12
|
import "./utils/solanaMint.utils.mjs";
|
|
13
13
|
import "./utils/serialize-utxos.utils.mjs";
|
|
14
14
|
import "./utils/customEnclaveFunctionsRegister.mjs";
|
|
15
|
-
import "./utils/addresses.mjs";
|
|
16
15
|
import "./utils/tron.utils.mjs";
|
|
16
|
+
import "./utils/addresses.mjs";
|
|
17
17
|
import "./web3/events/getInputUtxoAndBalance.mjs";
|
|
18
18
|
import "./utils/legacyKeys.mjs";
|
|
19
19
|
import "./utils/auth.utils.mjs";
|
|
@@ -53,7 +53,6 @@ import "./snarkjs/constructGeneralZkProof.mjs";
|
|
|
53
53
|
import "./utils/getSignerFromContract.mjs";
|
|
54
54
|
import "./utils/tronSimulation.utils.mjs";
|
|
55
55
|
import "./utils/resolve-sync.utils.mjs";
|
|
56
|
-
import "./utils/reloadPage.mjs";
|
|
57
56
|
import "./utils/cacheDevice.utils.mjs";
|
|
58
57
|
import "./utils/involves-permit2-op.mjs";
|
|
59
58
|
import "./utils/convertEmporiumOpToCallInfo.mjs";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../
|
|
1
|
+
const e=require(`../../error-handling/logger.cjs`),t=require(`../../API/simulate-transaction.cjs`);require(`../../error-handling/index.cjs`);const n=require(`../../data-structures/token-price-fetcher/TokenChecker.cjs`);var r=async(r,i,a,o)=>{try{let e=i.map((e,t)=>{let r=a[t];return e&&n.TokenChecker.isPotentiallyVolatile(e)?{tokenAddress:e.erc20TokenAddress,amount:r.toString(),...o===void 0?{}:{targetAddress:o},originalIndex:t}:null}).filter(e=>e!==null);if(e.length===0)return a;let s=await t.simulateVolatileTokenTransfer(r,e);return a.map((t,n)=>{let r=e.findIndex(e=>e.originalIndex===n);if(r!==-1&&s[r].success){let e=s[r].balanceDifference;return e?BigInt(e):t}return t})}catch(t){return e.Logger.error(`Volatile transfer simulation failed:`,t),a}};exports.modifyVolatileTokenAmountChanges=r;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { Logger as e } from "../../error-handling/logger.mjs";
|
|
2
|
+
import { simulateVolatileTokenTransfer as t } from "../../API/simulate-transaction.mjs";
|
|
3
3
|
import "../../error-handling/index.mjs";
|
|
4
4
|
import { TokenChecker as n } from "../../data-structures/token-price-fetcher/TokenChecker.mjs";
|
|
5
5
|
//#region libs/shared/common/src/functions/pre-transaction/getVolatileTransferAmount.ts
|
|
6
6
|
var r = async (r, i, a, o) => {
|
|
7
7
|
try {
|
|
8
|
-
let
|
|
8
|
+
let e = i.map((e, t) => {
|
|
9
9
|
let r = a[t];
|
|
10
10
|
return e && n.isPotentiallyVolatile(e) ? {
|
|
11
11
|
tokenAddress: e.erc20TokenAddress,
|
|
@@ -14,18 +14,18 @@ var r = async (r, i, a, o) => {
|
|
|
14
14
|
originalIndex: t
|
|
15
15
|
} : null;
|
|
16
16
|
}).filter((e) => e !== null);
|
|
17
|
-
if (
|
|
18
|
-
let s = await
|
|
19
|
-
return a.map((
|
|
20
|
-
let r =
|
|
17
|
+
if (e.length === 0) return a;
|
|
18
|
+
let s = await t(r, e);
|
|
19
|
+
return a.map((t, n) => {
|
|
20
|
+
let r = e.findIndex((e) => e.originalIndex === n);
|
|
21
21
|
if (r !== -1 && s[r].success) {
|
|
22
|
-
let
|
|
23
|
-
return
|
|
22
|
+
let e = s[r].balanceDifference;
|
|
23
|
+
return e ? BigInt(e) : t;
|
|
24
24
|
}
|
|
25
|
-
return
|
|
25
|
+
return t;
|
|
26
26
|
});
|
|
27
|
-
} catch (
|
|
28
|
-
return
|
|
27
|
+
} catch (t) {
|
|
28
|
+
return e.error("Volatile transfer simulation failed:", t), a;
|
|
29
29
|
}
|
|
30
30
|
};
|
|
31
31
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../utils/caseInsensitive.utils.cjs`),r=require(`../../
|
|
1
|
+
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../utils/caseInsensitive.utils.cjs`),r=require(`../../error-handling/logger.cjs`),i=require(`../../types/ethereum-network.types.cjs`),a=require(`../utils/create-provider.cjs`),o=require(`../../data-structures/AccountActions/AccountActions.cjs`),s=require(`../web3/getContractMetadata.cjs`),c=require(`../utils/getContractAddress.cjs`);let l=require(`ethers`);var u=e=>{if(typeof e.target==`string`)return e.target;if(e.address)return e.address;throw Error(`Contract address not found`)},d=`tuple(address endpoint, bool invokeWallet, uint128 value, bytes callData)`,f=`tuple(uint8 v, bytes32 r, bytes32 s, address signerAddress, ${d}[] ops, uint256 maxFee, uint256 deadline)`,p=1200,m=e=>{let[t]=l.ethers.AbiCoder.defaultAbiCoder().decode([d],e);return{endpoint:t.endpoint,invokeWallet:t.invokeWallet,value:BigInt(t.value),callData:t.callData}},h=({contract:e,func:t,args:n,callDataString:r,invokeWallet:i,value:a})=>{let o,s=r??`0x`;if(typeof e==`object`){if(o=u(e),r?.length&&r?.length>0)throw Error(`If function and args are providedm no calldata is needed`);t&&n&&!r&&(s=e.interface.encodeFunctionData(t,n))}else o=e;return l.ethers.AbiCoder.defaultAbiCoder().encode([d],[{endpoint:o,invokeWallet:!!i,value:a??0n,callData:s}])},g=async(n,r,i,a,s,c,u)=>{let d=e.getOnchainChainId(n),h=a.map(m),g=0n,_=i&&c?await(async()=>{if(u===void 0)throw Error(`maxFee required if making tx from emporium`);return g=BigInt(Math.floor(Date.now()/1e3)+p),o.AccountActions.signTypedDataFromPrivateKey(d,i,{name:`Emporium`,version:`1.0.0`,chainId:d,verifyingContract:r},{EmporiumSignature:[{name:`message`,type:`uint256`},{name:`ops`,type:`EmporiumOperation[]`},{name:`maxFee`,type:`uint256`},{name:`deadline`,type:`uint256`}],EmporiumOperation:[{name:`endpoint`,type:`address`},{name:`invokeWallet`,type:`bool`},{name:`value`,type:`uint128`},{name:`callData`,type:`bytes`}]},{message:s,ops:h,maxFee:u,deadline:g})})():void 0,{v,r:y,s:b}=_?l.ethers.Signature.from(_):{v:0,r:l.ethers.ZeroHash,s:l.ethers.ZeroHash};return l.ethers.AbiCoder.defaultAbiCoder().encode([f],[{v,r:y,s:b,signerAddress:c??t.zeroAddress,ops:h,maxFee:u??0n,deadline:g}])},_=(e,t,n,r)=>h(e?{contract:e,func:`transfer`,args:[t,n],invokeWallet:r}:{contract:t,value:n,invokeWallet:r}),v=(e,r,a,o,s)=>{let l=e.getContractWithFetcherByChainId(r,i.ContractType.HinkalContract);return a.map((a,u)=>_(n.caseInsensitiveEqual(a,t.zeroAddress)?void 0:e.getContractWithFetcherByChainId(r,i.ContractType.ERC20Contract,a),s??c.getContractAddress(l),o[u],!0))},y=(e,t,n,r)=>h({contract:e,func:`approve`,args:[t,n],invokeWallet:r}),b=(e,r,a,o,c,l,u)=>{let d=[];for(let o=0;o<r.length;o+=1){let c=r[o],u=n.caseInsensitiveEqual(c,t.zeroAddress)?void 0:s.getContractWithFetcherByChainId(e,i.ContractType.ERC20Contract,c);d.push(_(u,l,a[o],!1))}if(u)for(let r=0;r<o.length;r+=1){let a=o[r];if(!n.caseInsensitiveEqual(a,t.zeroAddress)){let t=s.getContractWithFetcherByChainId(e,i.ContractType.ERC20Contract,a);d.push(y(t,u,c[r],!0))}}return d},x=(e,r,i,a,o,s,c,l)=>{let u=[],d=[o],f=[s];l.nativeFee>0n&&!n.caseInsensitiveEqual(o,t.zeroAddress)&&(d.push(t.zeroAddress),f.push(l.nativeFee));let p=b(r,d,f,[o],[c],i,a);u.push(...p);let m=l.nativeFee;return n.caseInsensitiveEqual(o,t.zeroAddress)&&(m+=c),u.push(h({contract:a,callDataString:l.calldata,value:m>0n?m:void 0,invokeWallet:!0})),u},S=`0xef0100`,C=async(e,t)=>{try{let n=a.createJsonRpcProvider(e),r=await n.getCode(t);if(r===`0x`||!r)return{delegated:!1,implementation:void 0,nonce:void 0};if(r.toLowerCase().startsWith(S)&&r.length===48){let e=`0x${r.slice(8)}`,i=await n.getTransactionCount(t);return{delegated:!0,implementation:l.ethers.getAddress(e),nonce:i}}else throw Error(`checkEOAWithDelegation: It is a contract`)}catch(e){throw r.Logger.error(`checkEOAWithDelegation error`,{error:e}),e}},w=r=>{let{hinkalWalletAddress:i}=e.networkRegistry[r].contractData;if(!i||n.caseInsensitiveEqual(i,t.zeroAddress))throw Error(`Hinkal Wallet Address is not set`);return i},T=async(t,r)=>{if(t===e.chainIds.localhost||!r)return;let i=e.getOnchainChainId(t),{delegated:a,implementation:s}=await C(t,o.AccountActions.getSignerAddressFromPrivateKey(t,r)),c=w(t);if(!a||!n.caseInsensitiveEqual(s,c)){let e=await o.AccountActions.authorizeDelegation(i,r,c);return{v:e.signature.v.toString(),r:e.signature.r,s:e.signature.s,nonce:e.nonce.toString(),address:c,chainId:String(i)}}};exports.checkEOAWithDelegation=C,exports.createApproveEmporiumOp=y,exports.createLifiBridgeOps=x,exports.createTransaferEmporiumOpsBatch=v,exports.createTransferToEmporiumOp=_,exports.emporiumOp=h,exports.encodeEmporiumMetadata=g,exports.generateFundAndApproveOps=b,exports.getAuthorizationDataIfNeeded=T;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { chainIds as e, getOnchainChainId as t, networkRegistry as n } from "../../constants/chains.constants.mjs";
|
|
2
2
|
import { zeroAddress as r } from "../../constants/protocol.constants.mjs";
|
|
3
3
|
import { caseInsensitiveEqual as i } from "../utils/caseInsensitive.utils.mjs";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { Logger as a } from "../../error-handling/logger.mjs";
|
|
5
|
+
import { ContractType as o } from "../../types/ethereum-network.types.mjs";
|
|
6
6
|
import { createJsonRpcProvider as s } from "../utils/create-provider.mjs";
|
|
7
7
|
import { AccountActions as c } from "../../data-structures/AccountActions/AccountActions.mjs";
|
|
8
8
|
import { getContractWithFetcherByChainId as l } from "../web3/getContractMetadata.mjs";
|
|
@@ -107,24 +107,24 @@ var f = (e) => {
|
|
|
107
107
|
contract: t,
|
|
108
108
|
value: n,
|
|
109
109
|
invokeWallet: r
|
|
110
|
-
}), b = (e, t, n,
|
|
111
|
-
let c = e.getContractWithFetcherByChainId(t,
|
|
112
|
-
return n.map((n, l) => y(i(n, r) ? void 0 : e.getContractWithFetcherByChainId(t,
|
|
110
|
+
}), b = (e, t, n, a, s) => {
|
|
111
|
+
let c = e.getContractWithFetcherByChainId(t, o.HinkalContract);
|
|
112
|
+
return n.map((n, l) => y(i(n, r) ? void 0 : e.getContractWithFetcherByChainId(t, o.ERC20Contract, n), s ?? u(c), a[l], !0));
|
|
113
113
|
}, x = (e, t, n, r) => _({
|
|
114
114
|
contract: e,
|
|
115
115
|
func: "approve",
|
|
116
116
|
args: [t, n],
|
|
117
117
|
invokeWallet: r
|
|
118
|
-
}), S = (e, t, n,
|
|
118
|
+
}), S = (e, t, n, a, s, c, u) => {
|
|
119
119
|
let d = [];
|
|
120
|
-
for (let
|
|
121
|
-
let s = t[
|
|
122
|
-
d.push(y(u, c, n[
|
|
120
|
+
for (let a = 0; a < t.length; a += 1) {
|
|
121
|
+
let s = t[a], u = i(s, r) ? void 0 : l(e, o.ERC20Contract, s);
|
|
122
|
+
d.push(y(u, c, n[a], !1));
|
|
123
123
|
}
|
|
124
|
-
if (u) for (let t = 0; t <
|
|
125
|
-
let n =
|
|
124
|
+
if (u) for (let t = 0; t < a.length; t += 1) {
|
|
125
|
+
let n = a[t];
|
|
126
126
|
if (!i(n, r)) {
|
|
127
|
-
let r = l(e,
|
|
127
|
+
let r = l(e, o.ERC20Contract, n);
|
|
128
128
|
d.push(x(r, u, s[t], !0));
|
|
129
129
|
}
|
|
130
130
|
}
|
|
@@ -158,7 +158,7 @@ var f = (e) => {
|
|
|
158
158
|
};
|
|
159
159
|
} else throw Error("checkEOAWithDelegation: It is a contract");
|
|
160
160
|
} catch (e) {
|
|
161
|
-
throw
|
|
161
|
+
throw a.error("checkEOAWithDelegation error", { error: e }), e;
|
|
162
162
|
}
|
|
163
163
|
}, E = (e) => {
|
|
164
164
|
let { hinkalWalletAddress: t } = n[e].contractData;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/protocol.constants.cjs`),t=require(`../utils/caseInsensitive.utils.cjs`),n=require(`../../
|
|
1
|
+
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/protocol.constants.cjs`),t=require(`../utils/caseInsensitive.utils.cjs`),n=require(`../../error-handling/logger.cjs`),r=require(`../../types/ethereum-network.types.cjs`),i=require(`../../types/external-action.types.cjs`),a=require(`../utils/string.utils.cjs`),o=require(`../utils/erc20tokenFunctions.cjs`),s=require(`../pre-transaction/getExternalSwapAddress.cjs`),c=require(`../utils/getContractAddress.cjs`),l=require(`./emporium.helpers.cjs`),u=require(`../../constants/addresses.constants.cjs`);let d=require(`ethers`);var f=(e,t,n,r,i,o,c=!1)=>l.emporiumOp({contract:n,callDataString:a.replaceAllInstances(r,s.getExternalSwapAddress(e,t).slice(2),i.slice(2)),value:o,invokeWallet:c}),p=async(e,n)=>{let r=(await o.getErc20TokensForChainAPI(n)).find(e=>e.symbol===`USDT`);return r?t.caseInsensitiveEqual(e,r.erc20TokenAddress):!1},m=async(e,t,r,i,a,o)=>{if(await p(c.getContractAddress(r),e))try{await r.allowance(i,a)>0n&&t.push(l.createApproveEmporiumOp(r,a,0n,o))}catch(e){n.Logger.error(`Error in nullifyUsdtApprovalIfNeeded`,e)}},h=async(t,n,i,a,o,s,c,f)=>{if(i!==e.zeroAddress){let f=u.SWAP_FEE_TAKER_ADDRESSES[n],p=t.getContractWithFetcher(n,r.ContractType.ERC20Contract,i),h=await p.balanceOf(a);await m(n,s,p,a,f,c),s.push(l.createApproveEmporiumOp(p,f,2n**256n-1n,c));let g=new d.ethers.Contract(f,[`function takeSwapFee(address token, uint256 beforeBalance, uint256 variableRate, address relay) external payable`]),_=o;s.push(l.emporiumOp({contract:g,func:`takeSwapFee`,args:[i,h,e.HINKAL_SWAP_VARIABLE_RATE,_],invokeWallet:c}))}else{let t=o;s.push(l.emporiumOp({contract:t,value:f*e.HINKAL_SWAP_VARIABLE_RATE/10000n,invokeWallet:c}))}},g=async(t,n,a,o,s,c,u,d,p,m,g,_,v=!1)=>{if(a!==i.ExternalActionId.Lifi)throw Error(`Unsupported swap external action for emporium ops: ${a}`);let y=u<0n?-1n*u:u,b=[];if(c!==e.zeroAddress){let e=t.getContractWithFetcher(n,r.ContractType.ERC20Contract,c);b.push(l.createApproveEmporiumOp(e,o,y,v))}let x=0n;c===e.zeroAddress&&(x+=y),d&&p===e.zeroAddress&&d<0n&&(x+=-1n*d);let S=x>0n?x:void 0;return b.push(f(n,a,o,s,g,S,v)),m&&p&&d!==void 0&&await h(t,n,p,g,_,b,v,d),b};exports.createSwapToEmporiumOps=g;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { HINKAL_SWAP_VARIABLE_RATE as e, zeroAddress as t } from "../../constants/protocol.constants.mjs";
|
|
2
2
|
import { caseInsensitiveEqual as n } from "../utils/caseInsensitive.utils.mjs";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { Logger as r } from "../../error-handling/logger.mjs";
|
|
4
|
+
import { ContractType as i } from "../../types/ethereum-network.types.mjs";
|
|
5
|
+
import { ExternalActionId as a } from "../../types/external-action.types.mjs";
|
|
6
6
|
import { replaceAllInstances as o } from "../utils/string.utils.mjs";
|
|
7
7
|
import { getErc20TokensForChainAPI as s } from "../utils/erc20tokenFunctions.mjs";
|
|
8
8
|
import { getExternalSwapAddress as c } from "../pre-transaction/getExternalSwapAddress.mjs";
|
|
@@ -19,16 +19,16 @@ var m = (e, t, n, r, i, a, s = !1) => d({
|
|
|
19
19
|
}), h = async (e, t) => {
|
|
20
20
|
let r = (await s(t)).find((e) => e.symbol === "USDT");
|
|
21
21
|
return r ? n(e, r.erc20TokenAddress) : !1;
|
|
22
|
-
}, g = async (e, t, n,
|
|
22
|
+
}, g = async (e, t, n, i, a, o) => {
|
|
23
23
|
if (await h(l(n), e)) try {
|
|
24
|
-
await n.allowance(
|
|
24
|
+
await n.allowance(i, a) > 0n && t.push(u(n, a, 0n, o));
|
|
25
25
|
} catch (e) {
|
|
26
|
-
|
|
26
|
+
r.error("Error in nullifyUsdtApprovalIfNeeded", e);
|
|
27
27
|
}
|
|
28
|
-
}, _ = async (n,
|
|
28
|
+
}, _ = async (n, r, a, o, s, c, l, m) => {
|
|
29
29
|
if (a !== t) {
|
|
30
|
-
let t = f[
|
|
31
|
-
await g(
|
|
30
|
+
let t = f[r], m = n.getContractWithFetcher(r, i.ERC20Contract, a), h = await m.balanceOf(o);
|
|
31
|
+
await g(r, c, m, o, t, l), c.push(u(m, t, 2n ** 256n - 1n, l));
|
|
32
32
|
let _ = new p.Contract(t, ["function takeSwapFee(address token, uint256 beforeBalance, uint256 variableRate, address relay) external payable"]), v = s;
|
|
33
33
|
c.push(d({
|
|
34
34
|
contract: _,
|
|
@@ -49,17 +49,17 @@ var m = (e, t, n, r, i, a, s = !1) => d({
|
|
|
49
49
|
invokeWallet: l
|
|
50
50
|
}));
|
|
51
51
|
}
|
|
52
|
-
}, v = async (e, n,
|
|
53
|
-
if (
|
|
52
|
+
}, v = async (e, n, r, o, s, c, l, d, f, p, h, g, v = !1) => {
|
|
53
|
+
if (r !== a.Lifi) throw Error(`Unsupported swap external action for emporium ops: ${r}`);
|
|
54
54
|
let y = l < 0n ? -1n * l : l, b = [];
|
|
55
55
|
if (c !== t) {
|
|
56
|
-
let t = e.getContractWithFetcher(n,
|
|
56
|
+
let t = e.getContractWithFetcher(n, i.ERC20Contract, c);
|
|
57
57
|
b.push(u(t, o, y, v));
|
|
58
58
|
}
|
|
59
59
|
let x = 0n;
|
|
60
60
|
c === t && (x += y), d && f === t && d < 0n && (x += -1n * d);
|
|
61
61
|
let S = x > 0n ? x : void 0;
|
|
62
|
-
return b.push(m(n,
|
|
62
|
+
return b.push(m(n, r, o, s, h, S, v)), p && f && d !== void 0 && await _(e, n, f, h, g, b, v, d), b;
|
|
63
63
|
};
|
|
64
64
|
//#endregion
|
|
65
65
|
export { v as createSwapToEmporiumOps };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../crypto/poseidon.cjs`),r=require(`../web3/etherFunctions.cjs`),i=require(`../../data-structures/crypto-keys/keys.cjs`),ee=require(`../utils/time.utils.cjs`);require(`../../types/circom-data.types.cjs`);const
|
|
1
|
+
const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../crypto/poseidon.cjs`),r=require(`../web3/etherFunctions.cjs`),i=require(`../../data-structures/crypto-keys/keys.cjs`),ee=require(`../utils/time.utils.cjs`),te=require(`../../error-handling/logger.cjs`);require(`../../types/circom-data.types.cjs`);const a=require(`../../types/external-action.types.cjs`),o=require(`./common.snarkjs.cjs`),s=require(`./signedMessageHash.cjs`),c=require(`./generateCircomData.cjs`),ne=require(`../../data-structures/AccountActions/AccountActions.cjs`),re=require(`./generateMainAndCommitmentZkProof.cjs`),ie=require(`./getMerkleTreeSiblingsAndRootHashes.cjs`),l=require(`../private-wallet/emporium.helpers.cjs`),u=require(`./fetchTronInsertionSiblings.cjs`);var d=async(d,f,p,m,h,g,_,v,y=t.zeroAddress,b=e.chainIds.localhost,x=f.map(()=>!1),S=void 0,C,w,T=`0x`,E=!1,ae=!1,oe)=>{let{hinkalAddress:D}=e.networkRegistry[b].contractData,O=e.isTronLike(b),k=o.getZkProofVerifierName(f,p,O),A=o.calcAmountChanges(f,p),j=f.map(e=>e[0].erc20TokenAddress),M=o.calcEncryptedOutputs(p),N=m.getShieldedPrivateKey(),{pubSpendingBJJPoint:se}=m.getSpendingKeyPair(),P=o.calcStealthAddressStructure(i.UserKeys.findCorrectRandomization(r.randomBigInt(31),N),N,m.getSpendingKeyPair().pubSpendingBJJPoint),F=o.calcOnchainEncryptedOutput(i.UserKeys.getEncryptionKeyPair(N).publicKey,P),{inCommitmentSiblings:ce,inCommitmentSiblingSides:le,rootHashHinkal:I,rootHashHinkalIndex:ue,inNullifiers:L}=await ie.getDataFromWorkers(b,d,f.map(e=>e.map(e=>e.getConstructableParams())),ae),R=o.buildOutCommitments(p),z=r.randomBigInt(31),B=n.poseidonFunction(z),V=BigInt(p.length>0?p[0][0].timeStamp:ee.getCurrentTimeInSeconds()),H={rootHashHinkal:I,spendingPublicKey:se,nullifyingPrivateKey:N,erc20TokenAddresses:j,amountChanges:A,inAmounts:f.map(e=>e.map(e=>e.amount.toString())),inH0Ax:f.map(e=>e.map(e=>o.getUtxoCircuitH0Coords(e)[0].toString())),inH0Ay:f.map(e=>e.map(e=>o.getUtxoCircuitH0Coords(e)[1].toString())),inTimeStamps:f.map(e=>e.map(e=>e.timeStamp)),inNullifiers:L,inCommitmentSiblings:ce,inCommitmentSiblingSides:le,outAmounts:p.map(e=>e.map(e=>e.amount.toString())),outTimeStamp:V,outPublicKeys:p.map(e=>e.map(e=>e.getStealthAddress())),outCommitments:R,calldataHash:0n,messageSeed:z},U;if(O){let e=await u.fetchTronInsertionSiblings(b,R);H.insertionSiblings=e.insertionSiblings,H.insertionSiblingSides=e.insertionSiblingSides,U=BigInt(e.insertedLeafIndex),H.insertedLeafIndex=e.insertedLeafIndex}else H.H0Ax=P.H0x,H.H0Ay=P.H0y;let W=o.calcPublicSignalCount(k,H.erc20TokenAddresses,H.amountChanges,H.inNullifiers,H.outCommitments),G=o.calcAmountChanges(f,p,!0),K=oe??o.getSlippageValues(G);te.Logger.log({publicSignalCount:W});let q=Array.isArray(_)?_:[_],J=e.getOnchainChainId(b),de=w?ne.AccountActions.getSignerAddressFromPrivateKey(J,w):void 0,Y;Y=h===a.ExternalActionId.Emporium?await l.encodeEmporiumMetadata(b,g??t.zeroAddress,w,q,B,de,v.flatFee):h===0n?`0x`:q[0]??`0x`,H.calldataHash=o.createCallDataHash(W,y,g,h,B,Y,M,F,S,K,x,v,C,T,b,E);let X=O?s.computeSignedMessageHashTron({rootHashHinkal:I,erc20TokenAddresses:j,amountChanges:A,outTimeStamp:V,inNullifiers:L,outCommitments:R,calldataHash:H.calldataHash,message:B,chainId:BigInt(J),verifyingContract:D}):s.computeSignedMessageHashEvm({rootHashHinkal:I,erc20TokenAddresses:j,amountChanges:A,outTimeStamp:V,inNullifiers:L,outCommitments:R,calldataHash:H.calldataHash,message:B,outH1Ax:P.H1x,outH1Ay:P.H1y,H0Ax:H.H0Ax,H0Ay:P.H0y,chainId:BigInt(J),verifyingContract:D}),{R8:Z,S:Q}=m.signEddsa(X);H.eddsaSignature=[Z[0],Z[1],Q],H.signedMessageHash=X;let $=k.startsWith(`mainEVMCircuitMin0`),fe={outTimeStamp:V,calldataHash:H.calldataHash,messageSeed:z},{zkCallData:pe,publicSignals:me,commitmentValidationData:he}=await re.generateMainAndCommitmentZkProof(b,m,j,f,k,$?fe:H);return{zkCallData:pe,circomData:c.generateCircomData(R,L,I,ue,G,j,p,M,F,W,h,g,B,Y,y,H.calldataHash,P,x,S,$?Number(V):void 0,K,v,C,O,me,T,U,E),dimData:{tokenNumber:f.length,nullifierAmount:f.length>0?f[0].length:0,outputAmount:p.length>0?p[0].length:0},encryptedOutputs:M,commitmentValidationData:he}};exports.constructZkProof=d;
|
|
@@ -4,9 +4,9 @@ import { poseidonFunction as ne } from "../../crypto/poseidon.mjs";
|
|
|
4
4
|
import { randomBigInt as r } from "../web3/etherFunctions.mjs";
|
|
5
5
|
import { UserKeys as i } from "../../data-structures/crypto-keys/keys.mjs";
|
|
6
6
|
import { getCurrentTimeInSeconds as re } from "../utils/time.utils.mjs";
|
|
7
|
+
import { Logger as ie } from "../../error-handling/logger.mjs";
|
|
7
8
|
import "../../types/circom-data.types.mjs";
|
|
8
|
-
import { ExternalActionId as
|
|
9
|
-
import { Logger as ae } from "../../error-handling/logger.mjs";
|
|
9
|
+
import { ExternalActionId as ae } from "../../types/external-action.types.mjs";
|
|
10
10
|
import { buildOutCommitments as oe, calcAmountChanges as a, calcEncryptedOutputs as se, calcOnchainEncryptedOutput as o, calcPublicSignalCount as s, calcStealthAddressStructure as c, createCallDataHash as l, getSlippageValues as ce, getUtxoCircuitH0Coords as u, getZkProofVerifierName as le } from "./common.snarkjs.mjs";
|
|
11
11
|
import { computeSignedMessageHashEvm as ue, computeSignedMessageHashTron as de } from "./signedMessageHash.mjs";
|
|
12
12
|
import { generateCircomData as fe } from "./generateCircomData.mjs";
|
|
@@ -42,9 +42,9 @@ var d = async (d, f, p, m, h, g, _, v, y = n, b = e.localhost, x = f.map(() => !
|
|
|
42
42
|
U.insertionSiblings = e.insertionSiblings, U.insertionSiblingSides = e.insertionSiblingSides, W = BigInt(e.insertedLeafIndex), U.insertedLeafIndex = e.insertedLeafIndex;
|
|
43
43
|
} else U.H0Ax = F.H0x, U.H0Ay = F.H0y;
|
|
44
44
|
let G = s(k, U.erc20TokenAddresses, U.amountChanges, U.inNullifiers, U.outCommitments), K = a(f, p, !0), q = ye ?? ce(K);
|
|
45
|
-
|
|
45
|
+
ie.log({ publicSignalCount: G });
|
|
46
46
|
let J = Array.isArray(_) ? _ : [_], Y = t(b), Ce = w ? pe.getSignerAddressFromPrivateKey(Y, w) : void 0, X;
|
|
47
|
-
X = h ===
|
|
47
|
+
X = h === ae.Emporium ? await ge(b, g ?? n, w, J, V, Ce, v.flatFee) : h === 0n ? "0x" : J[0] ?? "0x", U.calldataHash = l(G, y, g, h, V, X, M, I, S, q, x, v, C, T, b, E);
|
|
48
48
|
let Z = O ? de({
|
|
49
49
|
rootHashHinkal: L,
|
|
50
50
|
erc20TokenAddresses: j,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../crypto/poseidon.cjs`),n=require(`../web3/etherFunctions.cjs`),r=require(`../../data-structures/crypto-keys/keys.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
|
|
1
|
+
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../crypto/poseidon.cjs`),n=require(`../web3/etherFunctions.cjs`),r=require(`../../data-structures/crypto-keys/keys.cjs`),i=require(`../utils/solanaMint.utils.cjs`),a=require(`./common.snarkjs.cjs`),o=require(`../pre-transaction/solana.cjs`),s=require(`./signedMessageHash.cjs`),c=require(`../pre-transaction/getSolanaCalldataHash.cjs`);require(`../pre-transaction/index.cjs`);const l=require(`./generateMainAndCommitmentZkProof.cjs`),u=require(`./getMerkleTreeSiblingsAndRootHashes.cjs`);require(`../web3/index.cjs`);let d=require(`ethers`),f=require(`@solana/web3.js`);var p=async(p,m,h,g,_,v,y,b,x,S,C=[],w=e.chainIds.solanaLocalnet,T=[],E=[],D=0n,O=!1)=>{let k=new f.PublicKey(b),A=new f.PublicKey(x),j=m.getShieldedPrivateKey(),{pubSpendingBJJPoint:ee}=m.getSpendingKeyPair(),M=a.calcStealthAddressStructure(r.UserKeys.findCorrectRandomization(n.randomBigInt(31),j),j,m.getSpendingKeyPair().pubSpendingBJJPoint),N=C.some(Boolean)?a.calcOnchainEncryptedOutput(r.UserKeys.getEncryptionKeyPair(j).publicKey,M):`0x`,P=a.calcEncryptedOutputs(_).flatMap((e,t)=>C[t]?e.map(()=>[]):e.map(e=>[...d.ethers.getBytes(e)])),F=n.randomBigInt(31),I=t.poseidonFunction(F),L=t.poseidonFunction(D),R=h.map(e=>i.formatMintAddress(e)),z=R.map(e=>e.mintAccountPart1),B=R.map(e=>e.mintAccountPart2),V=c.getSolanaCalldataHash(S,k,A,P,N,v,y,T,E),H=`${S.tokenNumber}x${S.nullifierAmount}x${S.outputAmount}`,U=a.calcAmountChanges(g,_),{inCommitmentSiblings:W,inCommitmentSiblingSides:G,rootHashHinkal:K,rootHashHinkalIndex:q,inNullifiers:J}=await u.getDataFromWorkers(w,p,g.map(e=>e.map(e=>e.getConstructableParams())),O),Y=a.buildOutCommitments(_),X=M.H0x,Z=M.H0y,Q=s.computeSignedMessageHashSolana({rootHashHinkal:K,mintAccountPart1:z,mintAccountPart2:B,amountChanges:U,outTimeStamp:BigInt(_[0][0].timeStamp),inNullifiers:J,outCommitments:Y,calldataHash:V,message:I,swapperAccountAdditionalSeed:L,outH1Ay:M.H1y,H0Ax:X,H0Ay:Z}),{R8:$,S:te}=m.signEddsa(Q),ne={rootHashHinkal:K,spendingPublicKey:ee,eddsaSignature:[$[0],$[1],te],signedMessageHash:Q,nullifyingPrivateKey:j,mintAccountPart1:z,mintAccountPart2:B,amountChanges:U,inAmounts:g.map(e=>e.map(e=>e.amount.toString())),inH0Ax:g.map(e=>e.map(e=>a.getUtxoCircuitH0Coords(e)[0].toString())),inH0Ay:g.map(e=>e.map(e=>a.getUtxoCircuitH0Coords(e)[1].toString())),inTimeStamps:g.map(e=>e.map(e=>e.timeStamp)),inNullifiers:J,inCommitmentSiblings:W,inCommitmentSiblingSides:G,outAmounts:_.map(e=>e.map(e=>e.amount.toString())),outTimeStamp:BigInt(_[0][0].timeStamp),outPublicKeys:_.map(e=>e.map(e=>e.getStealthAddress())),outCommitments:Y,calldataHash:V,messageSeed:F,swapperAccountSalt:D,H0Ax:X,H0Ay:Z},{zkCallData:re,publicSignals:ie,commitmentValidationData:ae}=await l.generateMainAndCommitmentZkProof(w,m,h,g,`mainSolanaCircuit${H}`,ne),[oe,se,ce]=re;return{proofAArr:oe.map(BigInt).map(o.encodeToByte32Array).flat(),proofBArr:se.flat().map(BigInt).map(o.encodeToByte32Array).flat(),proofCArr:ce.map(BigInt).map(o.encodeToByte32Array).flat(),publicInputsArr:ie.map(BigInt).map(o.encodeToByte32Array),commitmentValidationData:ae,rootHashHinkalIndex:q,encryptedOutputs:P,onChainEncryptedOutput:N}};exports.constructSolanaZkProof=p;
|
|
@@ -6,16 +6,16 @@ import { formatMintAddress as i } from "../utils/solanaMint.utils.mjs";
|
|
|
6
6
|
import { buildOutCommitments as a, calcAmountChanges as o, calcEncryptedOutputs as s, calcOnchainEncryptedOutput as c, calcStealthAddressStructure as l, getUtxoCircuitH0Coords as u } from "./common.snarkjs.mjs";
|
|
7
7
|
import { encodeToByte32Array as d } from "../pre-transaction/solana.mjs";
|
|
8
8
|
import { computeSignedMessageHashSolana as f } from "./signedMessageHash.mjs";
|
|
9
|
+
import { getSolanaCalldataHash as ee } from "../pre-transaction/getSolanaCalldataHash.mjs";
|
|
9
10
|
import "../pre-transaction/index.mjs";
|
|
10
|
-
import { generateMainAndCommitmentZkProof as
|
|
11
|
-
import { getDataFromWorkers as
|
|
11
|
+
import { generateMainAndCommitmentZkProof as te } from "./generateMainAndCommitmentZkProof.mjs";
|
|
12
|
+
import { getDataFromWorkers as ne } from "./getMerkleTreeSiblingsAndRootHashes.mjs";
|
|
12
13
|
import "../web3/index.mjs";
|
|
13
|
-
import { getSolanaCalldataHash as ne } from "../pre-transaction/getSolanaCalldataHash.mjs";
|
|
14
14
|
import { ethers as p } from "ethers";
|
|
15
15
|
import { PublicKey as m } from "@solana/web3.js";
|
|
16
16
|
//#region libs/shared/common/src/functions/snarkjs/constructSolanaZkProof.ts
|
|
17
17
|
var h = async (h, g, _, v, y, b, x, S, C, w, T = [], E = e.solanaLocalnet, re = [], ie = [], D = 0n, ae = !1) => {
|
|
18
|
-
let O = new m(S), k = new m(C), A = g.getShieldedPrivateKey(), { pubSpendingBJJPoint: j } = g.getSpendingKeyPair(), M = l(r.findCorrectRandomization(n(31), A), A, g.getSpendingKeyPair().pubSpendingBJJPoint), N = T.some(Boolean) ? c(r.getEncryptionKeyPair(A).publicKey, M) : "0x", P = s(y).flatMap((e, t) => T[t] ? e.map(() => []) : e.map((e) => [...p.getBytes(e)])), F = n(31), I = t(F), L = t(D), R = _.map((e) => i(e)), z = R.map((e) => e.mintAccountPart1), B = R.map((e) => e.mintAccountPart2), V =
|
|
18
|
+
let O = new m(S), k = new m(C), A = g.getShieldedPrivateKey(), { pubSpendingBJJPoint: j } = g.getSpendingKeyPair(), M = l(r.findCorrectRandomization(n(31), A), A, g.getSpendingKeyPair().pubSpendingBJJPoint), N = T.some(Boolean) ? c(r.getEncryptionKeyPair(A).publicKey, M) : "0x", P = s(y).flatMap((e, t) => T[t] ? e.map(() => []) : e.map((e) => [...p.getBytes(e)])), F = n(31), I = t(F), L = t(D), R = _.map((e) => i(e)), z = R.map((e) => e.mintAccountPart1), B = R.map((e) => e.mintAccountPart2), V = ee(w, O, k, P, N, b, x, re, ie), H = `${w.tokenNumber}x${w.nullifierAmount}x${w.outputAmount}`, U = o(v, y), { inCommitmentSiblings: oe, inCommitmentSiblingSides: W, rootHashHinkal: G, rootHashHinkalIndex: K, inNullifiers: q } = await ne(E, h, v.map((e) => e.map((e) => e.getConstructableParams())), ae), J = a(y), Y = M.H0x, X = M.H0y, Z = f({
|
|
19
19
|
rootHashHinkal: G,
|
|
20
20
|
mintAccountPart1: z,
|
|
21
21
|
mintAccountPart2: B,
|
|
@@ -58,7 +58,7 @@ var h = async (h, g, _, v, y, b, x, S, C, w, T = [], E = e.solanaLocalnet, re =
|
|
|
58
58
|
swapperAccountSalt: D,
|
|
59
59
|
H0Ax: Y,
|
|
60
60
|
H0Ay: X
|
|
61
|
-
}, { zkCallData: le, publicSignals: $, commitmentValidationData: ue } = await
|
|
61
|
+
}, { zkCallData: le, publicSignals: $, commitmentValidationData: ue } = await te(E, g, _, v, `mainSolanaCircuit${H}`, ce), [de, fe, pe] = le;
|
|
62
62
|
return {
|
|
63
63
|
proofAArr: de.map(BigInt).map(d).flat(),
|
|
64
64
|
proofBArr: fe.flat().map(BigInt).map(d).flat(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`./constant.cjs`),t=require(`../../data-structures/http/HttpClient.cjs`);require(`../../data-structures/http/index.cjs`);const n=require(`../utils/encryptInputForEnclave.cjs`),
|
|
1
|
+
const e=require(`./constant.cjs`),t=require(`../../data-structures/http/HttpClient.cjs`);require(`../../data-structures/http/index.cjs`);const n=require(`./verifySignedEnclaveResponse.cjs`),r=require(`../utils/encryptInputForEnclave.cjs`),i=require(`./constructTxEnclaveVerify.cjs`);var a=e=>e?.flat().filter(e=>e.amount>0n).map(e=>e.getCommitment()),o=async(i,a)=>{let{keyCiphertext:o,inputCiphertext:s}=await r.makeEnclaveHandshakeAndEncryptInput(a),c=await t.httpClient.post(`${e.ENCLAVE_URL}${i}`,{key:o,inputs:s});return n.verifySignedEnclaveResponse(c.data,c.signature)},s=e=>({R8:e.R8.map(String),S:e.S.toString()}),c=e=>({feeToken:e.feeToken,flatFee:e.flatFee.toString(),variableRate:e.variableRate.toString()}),l=async(t,n,a=t.userKeys)=>{let o={...n,amountChanges:n.amountChanges.map(String),recipientAmounts:n.recipientAmounts?.map(e=>e.map(String)),selfOutputAmounts:n.selfOutputAmounts?.map(String),messageSeed:n.messageSeed?.toString(),nullifyingKey:a.getShieldedPrivateKey(),spendingPublicKey:a.getSpendingKeyPair().pubSpendingBJJPoint.map(String),slippageValues:n.slippageValues?.map(String)},s=await r.enclavePostSealedSigned(`${e.ENCLAVE_URL}/prepare-tx`,o);return i.verifyPrepareTxResponse(o,s),s},u=async(e,t)=>{let{nullifierCount:n}=await o(`/estimate-nullifiers`,{...t,amountChanges:t.amountChanges.map(String),nullifyingKey:e.userKeys.getShieldedPrivateKey(),spendingPublicKey:e.userKeys.getSpendingKeyPair().pubSpendingBJJPoint.map(String)});return n},d=async(t,n,a=t.userKeys)=>{let o={...n,amountChanges:n.amountChanges.map(String),relayerFee:n.relayerFee?.toString(),variableRate:n.variableRate?.toString(),swapperAccountSalt:n.swapperAccountSalt?.toString(),recipientAmounts:n.recipientAmounts?.map(String),messageSeed:n.messageSeed?.toString(),nullifyingKey:a.getShieldedPrivateKey(),spendingPublicKey:a.getSpendingKeyPair().pubSpendingBJJPoint.map(String)},s=await r.enclavePostSealedSigned(`${e.ENCLAVE_URL}/prepare-solana-tx`,o);return i.verifyPrepareSolanaTxResponse(o,s),s},f=async(t,n)=>{let a={...n,nullifyingKey:t.userKeys.getShieldedPrivateKey(),spendingPublicKey:t.userKeys.getSpendingKeyPair().pubSpendingBJJPoint.map(String)},o=await r.enclavePostSealedSigned(`${e.ENCLAVE_URL}/prepare-stuck-withdraw`,a);return i.verifyPrepareStuckWithdrawResponse(a,o),o.jobs},p=async(t,n)=>{let a=Object.fromEntries(Object.entries(n.feeStructures).map(([e,t])=>[e,c(t)])),o={...n,feeStructures:a,nullifyingKey:t.userKeys.getShieldedPrivateKey(),spendingPublicKey:t.userKeys.getSpendingKeyPair().pubSpendingBJJPoint.map(String)},s=await r.enclavePostSealedSigned(`${e.ENCLAVE_URL}/prepare-solana-stuck-withdraw`,o);return i.verifyPrepareSolanaStuckWithdrawResponse(o,s),s.jobs},m=async(e,t)=>o(`/finalize-tx`,{jobId:e,eddsaSignature:s(t)}),h=async(e,t)=>o(`/finalize-solana-tx`,{jobId:e,eddsaSignature:s(t)}),g=async(e,t,n,r)=>{let{txHash:i}=await o(`/finalize-tx-relay`,{jobId:e,eddsaSignature:s(t),chainId:n,adminData:r?.adminData,authorizationData:r?.authorizationData,withUniswapWorkAround:r?.withUniswapWorkAround});return i},_=async(e,t,n,r)=>{let{txHash:i}=await o(`/finalize-solana-tx-relay`,{jobId:e,eddsaSignature:s(t),chainId:n,adminData:r?.adminData});return i};exports.collectInputCommitments=a,exports.estimateNullifiersEnclaveCall=u,exports.finalizeSolanaTxEnclaveCall=h,exports.finalizeSolanaTxEnclaveCallRelay=_,exports.finalizeTxEnclaveCall=m,exports.finalizeTxEnclaveCallRelay=g,exports.prepareSolanaStuckWithdrawEnclaveCall=p,exports.prepareSolanaTxEnclaveCall=d,exports.prepareStuckWithdrawEnclaveCall=f,exports.prepareTxEnclaveCall=l;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { IHinkal } from '../../data-structures/Hinkal/IHinkal';
|
|
2
2
|
import { UserKeys } from '../../data-structures/crypto-keys/keys';
|
|
3
3
|
import { Utxo } from '../../data-structures/utxo/Utxo';
|
|
4
|
+
import { AuthorizationData } from '../../types/hinkal.types';
|
|
4
5
|
import { EstimateNullifiersParams, FinalizeSolanaTxResponseType, FinalizeTxResponseType, PreparedJobType, PrepareSolanaStuckWithdrawParams, PrepareSolanaTxParams, PrepareSolanaTxResponseType, PrepareStuckWithdrawRequestType, PrepareTxParams, PrepareTxResponseType } from '../../types/remote-tx-build.types';
|
|
5
6
|
import { AdminDataType } from '../../types/admin.types';
|
|
6
|
-
import { AuthorizationData } from '../../types/hinkal.types';
|
|
7
7
|
export declare const collectInputCommitments: (inputUtxos?: Utxo[][]) => string[] | undefined;
|
|
8
8
|
export declare const prepareTxEnclaveCall: (hinkal: IHinkal, params: PrepareTxParams, userKeys?: UserKeys) => Promise<PrepareTxResponseType>;
|
|
9
9
|
export declare const estimateNullifiersEnclaveCall: (hinkal: IHinkal, params: EstimateNullifiersParams) => Promise<number>;
|