@hinkal/common 0.3.9 → 0.3.11
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 +26 -10
- 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/callRelayer.d.ts +1 -0
- 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.cjs +1 -1
- package/common/src/constants/protocol.constants.d.ts +11 -8
- package/common/src/constants/protocol.constants.mjs +1 -1
- 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 +8 -10
- package/common/src/data-structures/Hinkal/Hinkal.mjs +132 -160
- package/common/src/data-structures/Hinkal/IHinkal.d.ts +7 -10
- 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/hinkalActionReceive.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalActionReceive.mjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalBridgePrivateToPrivate.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalBridgePrivateToPrivate.mjs +57 -57
- 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 +19 -19
- 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/hinkalProxySwap.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalProxySwap.d.ts +1 -1
- package/common/src/data-structures/Hinkal/hinkalProxySwap.mjs +13 -12
- package/common/src/data-structures/Hinkal/hinkalProxyToPrivate.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalProxyToPrivate.mjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.mjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaProxySwap.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaProxySwap.d.ts +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaProxySwap.mjs +9 -9
- package/common/src/data-structures/Hinkal/hinkalSolanaSponsoredShield.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaSponsoredShield.d.ts +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaSponsoredShield.mjs +15 -14
- 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/hinkalSolanaTransfer.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaTransfer.mjs +1 -1
- 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/MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.cjs +1 -1
- package/common/src/data-structures/MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.d.ts +1 -0
- package/common/src/data-structures/MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.mjs +6 -3
- 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/crypto-keys/keys.cjs +1 -1
- package/common/src/data-structures/crypto-keys/keys.d.ts +1 -0
- package/common/src/data-structures/crypto-keys/keys.mjs +3 -0
- 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/data-structures/token-price-fetcher/TokenChecker.cjs +1 -1
- package/common/src/data-structures/token-price-fetcher/TokenChecker.d.ts +1 -0
- package/common/src/data-structures/token-price-fetcher/TokenChecker.mjs +1 -0
- 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 +13 -13
- 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/bridge-claimable-utxo.utils.cjs +1 -1
- package/common/src/functions/utils/bridge-claimable-utxo.utils.d.ts +1 -1
- package/common/src/functions/utils/bridge-claimable-utxo.utils.mjs +4 -4
- 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 +7 -7
- package/common/src/functions/utils/publicBalance.utils.cjs +1 -1
- package/common/src/functions/utils/publicBalance.utils.mjs +10 -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 -101
- 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-cvFNxc-0.js} +1 -1
- package/common/src/webworker/package.json +1 -2
- 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/utxoWorker.types.d.ts +4 -2
- 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 +1 -2
- package/providers/prepareEthersHinkal.cjs +1 -1
- package/providers/prepareEthersHinkal.d.ts +1 -0
- package/providers/prepareEthersHinkal.mjs +2 -2
- package/providers/prepareSolanaHinkal.cjs +1 -1
- package/providers/prepareSolanaHinkal.d.ts +1 -0
- package/providers/prepareSolanaHinkal.mjs +2 -2
- package/providers/prepareTronHinkal.cjs +1 -1
- package/providers/prepareTronHinkal.d.ts +1 -0
- package/providers/prepareTronHinkal.mjs +2 -2
- package/providers/prepareWagmiHinkal.cjs +1 -1
- package/providers/prepareWagmiHinkal.d.ts +1 -0
- package/providers/prepareWagmiHinkal.mjs +2 -2
- package/services/Hinkal.cjs +1 -1
- package/services/Hinkal.d.ts +8 -2
- package/services/Hinkal.mjs +15 -4
- package/types/IHinkal.d.ts +8 -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
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { transactionErrorCodes as e } from "../../error-handling/error-codes.constants.mjs";
|
|
2
|
+
import { waitLittle as t } from "./time.utils.mjs";
|
|
3
|
+
import { BRIDGE_ARRIVAL_POLL_INTERVAL_MS as n, BRIDGE_ARRIVAL_TIMEOUT_MS as r, SLIPPAGE_SCALING_FACTOR as i } from "../../constants/bridging.constants.mjs";
|
|
4
|
+
import { getPublicBalanceByTokenAddress as a } from "./publicBalance.utils.mjs";
|
|
4
5
|
//#region libs/shared/common/src/functions/utils/bridge-arrival.utils.ts
|
|
5
|
-
var
|
|
6
|
-
let
|
|
7
|
-
for (; Date.now() <
|
|
8
|
-
let
|
|
9
|
-
if (
|
|
10
|
-
await
|
|
6
|
+
var o = async (o, s, c, l, u) => {
|
|
7
|
+
let d = l - l * BigInt(Math.round(u * i)) / BigInt(i), f = d > 0n ? d : 1n, p = Date.now() + r;
|
|
8
|
+
for (; Date.now() < p;) {
|
|
9
|
+
let e = await a(o, s, c);
|
|
10
|
+
if (e !== null && e >= f) return e;
|
|
11
|
+
await t(n);
|
|
11
12
|
}
|
|
12
|
-
throw Error(
|
|
13
|
+
throw Error(`${e.BRIDGE_ARRIVAL_TIMEOUT} ${s} on chain ${o} within timeout.`);
|
|
13
14
|
};
|
|
14
15
|
//#endregion
|
|
15
|
-
export {
|
|
16
|
+
export { o as waitForBridgeArrival };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../data-structures/crypto-keys/keys.cjs`),t=require(`./getRecipientInfoFromUserKeys.cjs`),n=require(`../../data-structures/Hinkal/hinkalSolanaSponsoredShield.cjs`);var r=(n,r)=>{if(`recipientInfo`in r)return{recipientInfo:r.recipientInfo};let i=n.userKeys.getClaimableSignatureFromNonce(r.claimableNonce),a=new e.UserKeys(i);return{recipientInfo:t.getRecipientInfoFromUserKeys(a),claimable:{signature:i,keys:a,ethAddress:r.recipientEthAddress}}},i=async(e,t,r,i,a)=>{let{txHash:
|
|
1
|
+
const e=require(`../../data-structures/crypto-keys/keys.cjs`),t=require(`./getRecipientInfoFromUserKeys.cjs`),n=require(`../../data-structures/Hinkal/hinkalSolanaSponsoredShield.cjs`);var r=(n,r)=>{if(`recipientInfo`in r)return{recipientInfo:r.recipientInfo};let i=n.userKeys.getClaimableSignatureFromNonce(r.claimableNonce),a=new e.UserKeys(i);return{recipientInfo:t.getRecipientInfoFromUserKeys(a),claimable:{signature:i,keys:a,ethAddress:r.recipientEthAddress}}},i=async(e,t,r,i,a,o)=>{let{txHash:s,shieldedAmount:c}=await n.hinkalSolanaSponsoredShield(e,t,r,i,a,void 0,o);return{destTxHash:s,shieldedAmount:c}};exports.hinkalSolanaShieldBridged=i,exports.resolveBridgeRecipient=r;
|
|
@@ -13,7 +13,7 @@ export interface BridgeResolvedRecipient {
|
|
|
13
13
|
claimable?: BridgeClaimableRecipient;
|
|
14
14
|
}
|
|
15
15
|
export declare const resolveBridgeRecipient: (hinkal: IHinkal, recipient: PrivateBridgeRecipient) => BridgeResolvedRecipient;
|
|
16
|
-
export declare const hinkalSolanaShieldBridged: (hinkal: IHinkal, token: ERC20Token, tempSubAccount: SubAccount, landedAmount: bigint, recipientInfo: string) => Promise<{
|
|
16
|
+
export declare const hinkalSolanaShieldBridged: (hinkal: IHinkal, token: ERC20Token, tempSubAccount: SubAccount, landedAmount: bigint, recipientInfo: string, variableRate?: bigint) => Promise<{
|
|
17
17
|
destTxHash: string;
|
|
18
18
|
shieldedAmount: bigint;
|
|
19
19
|
}>;
|
|
@@ -13,11 +13,11 @@ var r = (n, r) => {
|
|
|
13
13
|
ethAddress: r.recipientEthAddress
|
|
14
14
|
}
|
|
15
15
|
};
|
|
16
|
-
}, i = async (e, t, r, i, a) => {
|
|
17
|
-
let { txHash:
|
|
16
|
+
}, i = async (e, t, r, i, a, o) => {
|
|
17
|
+
let { txHash: s, shieldedAmount: c } = await n(e, t, r, i, a, void 0, o);
|
|
18
18
|
return {
|
|
19
|
-
destTxHash:
|
|
20
|
-
shieldedAmount:
|
|
19
|
+
destTxHash: s,
|
|
20
|
+
shieldedAmount: c
|
|
21
21
|
};
|
|
22
22
|
};
|
|
23
23
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../API/solana-rpc-fallback.cjs`),n=require(`../../API/evm-rpc-fallback.cjs`);let r=require(`ethers`),i=require(`@solana/web3.js`);var a=class extends r.JsonRpcProvider{isPaidRpc;constructor(e,t,n){super(t,n,{staticNetwork:!0}),this.chainId=e,this.isPaidRpc=t.includes(`.g.alchemy.com/`)}async _perform(t){if(this.isPaidRpc||e.isTempo(this.chainId))return super._perform(t);if(t.method===`getTransactionReceipt`)return n.getEvmRpcResultFromServer(this.chainId,`eth_getTransactionReceipt`,[t.hash]);if(t.method===`getLogs`)return n.getEvmRpcResultFromServer(this.chainId,`eth_getLogs`,[t.filter]);try{return await super._perform(t)}catch(e){let r=this.getRpcRequest(t);if(!r)throw e;return n.getEvmRpcResultFromServer(this.chainId,r.method,r.args)}}},o=t=>{let{rpcUrl:n}=e.networkRegistry[t];return new a(t,e.isTronLike(t)&&!n.includes(`.g.alchemy.com/`)?`${n}/jsonrpc`:n,e.getOnchainChainId(t))},s=(e,n=`confirmed`)=>{let r=new i.Connection(e,n),a=e.includes(`helius-rpc.com`),o=r._rpcRequest.bind(r),s=new Set([`getLatestBlockhash`,`getBlockHeight`,`getTokenAccountsByOwner`]);return r._rpcRequest=async(e,n)=>{if(a)return o(e,n);if(s.has(e))return t.getSolanaRpcResultFromServer(e,n);try{return await o(e,n)}catch{return t.getSolanaRpcResultFromServer(e,n)}},r};exports.createCustomSolanaConnection=s,exports.createJsonRpcProvider=o;
|
|
1
|
+
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../API/solana-rpc-fallback.cjs`),n=require(`../../API/evm-rpc-fallback.cjs`);let r=require(`ethers`),i=require(`@solana/web3.js`);var a=class extends r.JsonRpcProvider{isPaidRpc;constructor(e,t,n){super(t,n,{staticNetwork:!0}),this.chainId=e,this.isPaidRpc=t.includes(`.g.alchemy.com/`)}async _perform(t){if(this.isPaidRpc||e.isTempo(this.chainId))return super._perform(t);if(t.method===`getTransactionReceipt`)return n.getEvmRpcResultFromServer(this.chainId,`eth_getTransactionReceipt`,[t.hash]);if(t.method===`getLogs`)return n.getEvmRpcResultFromServer(this.chainId,`eth_getLogs`,[t.filter]);try{return await super._perform(t)}catch(e){let r=this.getRpcRequest(t);if(!r)throw e;return n.getEvmRpcResultFromServer(this.chainId,r.method,r.args)}}},o=t=>{let{rpcUrl:n}=e.networkRegistry[t];return new a(t,e.isTronLike(t)&&!n.includes(`.g.alchemy.com/`)?`${n}/jsonrpc`:n,e.getOnchainChainId(t))},s=(e,n=`confirmed`)=>{let r=new i.Connection(e,n),a=e.includes(`helius-rpc.com`),o=r._rpcRequest.bind(r),s=new Set([`getLatestBlockhash`,`getBlockHeight`,`getTokenAccountsByOwner`,`getBalance`,`getAccountInfo`,`getTokenAccountBalance`]);return r._rpcRequest=async(e,n)=>{if(a)return o(e,n);if(s.has(e))return t.getSolanaRpcResultFromServer(e,n);try{return await o(e,n)}catch{return t.getSolanaRpcResultFromServer(e,n)}},r};exports.createCustomSolanaConnection=s,exports.createJsonRpcProvider=o;
|
|
@@ -28,7 +28,10 @@ var c = class extends o {
|
|
|
28
28
|
let n = new s(e, t), r = e.includes("helius-rpc.com"), a = n._rpcRequest.bind(n), o = new Set([
|
|
29
29
|
"getLatestBlockhash",
|
|
30
30
|
"getBlockHeight",
|
|
31
|
-
"getTokenAccountsByOwner"
|
|
31
|
+
"getTokenAccountsByOwner",
|
|
32
|
+
"getBalance",
|
|
33
|
+
"getAccountInfo",
|
|
34
|
+
"getTokenAccountBalance"
|
|
32
35
|
]);
|
|
33
36
|
return n._rpcRequest = async (e, t) => {
|
|
34
37
|
if (r) return a(e, t);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`./encryptInputForEnclave.cjs`),require(`../../API/enclaveRecipientInfoCalls.cjs`);
|
|
1
|
+
require(`./encryptInputForEnclave.cjs`),require(`../../API/privateSendRecipientInfoCalls.cjs`),require(`../../API/enclaveRecipientInfoCalls.cjs`);
|
|
@@ -1,2 +1,5 @@
|
|
|
1
|
+
import { PrivateSendAllocation } from '../../API/privateSendRecipientInfoCalls';
|
|
1
2
|
import { IHinkal } from '../../data-structures/Hinkal/IHinkal';
|
|
2
|
-
export declare const
|
|
3
|
+
export declare const ensureRecipientInfoPoolForSignature: (address: string, signature: string) => Promise<void>;
|
|
4
|
+
export declare const ensureRecipientInfoPool: (hinkal: IHinkal, address: string) => Promise<void>;
|
|
5
|
+
export declare const allocateRecipientInfos: (recipientAddresses: string[], allowStale: boolean) => Promise<PrivateSendAllocation[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`./encryptInputForEnclave.cjs`),t=require(`../../API/enclaveSignatureCalls.cjs`);var n=async(n,r
|
|
1
|
+
const e=require(`./encryptInputForEnclave.cjs`),t=require(`../../API/enclaveSignatureCalls.cjs`);var n=async(n,r)=>{let{signature:i}=await t.storeAndGetSignatureEnclaveCall(n,await e.makeEnclaveHandshakeAndEncryptInput(r));return i};exports.storeAndGetSignatureFromEnclave=n;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const storeAndGetSignatureFromEnclave: (ethAddress: string, authSignature: string
|
|
1
|
+
export declare const storeAndGetSignatureFromEnclave: (ethAddress: string, authSignature: string) => Promise<string>;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { makeEnclaveHandshakeAndEncryptInput as e } from "./encryptInputForEnclave.mjs";
|
|
2
2
|
import { storeAndGetSignatureEnclaveCall as t } from "../../API/enclaveSignatureCalls.mjs";
|
|
3
3
|
//#region libs/shared/common/src/functions/utils/enclave-signature-storage.ts
|
|
4
|
-
var n = async (n, r
|
|
5
|
-
let {
|
|
6
|
-
return
|
|
4
|
+
var n = async (n, r) => {
|
|
5
|
+
let { signature: i } = await t(n, await e(r));
|
|
6
|
+
return i;
|
|
7
7
|
};
|
|
8
8
|
//#endregion
|
|
9
9
|
export { n as storeAndGetSignatureFromEnclave };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../data-structures/utxo/Utxo.cjs`);const e=require(`./encryptInputForEnclave.cjs`)
|
|
1
|
+
require(`../../data-structures/utxo/Utxo.cjs`);const e=require(`./encryptInputForEnclave.cjs`);require(`../../error-handling/logger.cjs`);const t=require(`../../API/enclaveUtxoCalls.cjs`);var n=async(n,r,i,a,o,s)=>{let{keyCiphertext:c,inputCiphertext:l}=await e.makeEnclaveHandshakeAndEncryptInput({shieldedPrivateKey:i,senderAddress:n,claimableSignature:o,recipientEthAddress:r,chainId:a,senderSignature:s});await t.storeClaimableKeyEnclaveCall(l,c)};exports.storeClaimableKeyInEnclave=n;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EnclaveClaimableUtxo, Proof, RecoverUtxosResponse } from '../../API/enclaveUtxoCalls';
|
|
2
|
-
export declare const storeClaimableKeyInEnclave: (senderAddress: string, recipientEthAddress: string, shieldedPrivateKey: string, chainId: number, claimableSignature: string) => Promise<void>;
|
|
3
|
-
export declare const markClaimableKeyClaimedInEnclave: (ethAddress: string, signature: string, shieldedPrivateKey: string, claimableSignature: string, senderAddress: string, chainId: number
|
|
2
|
+
export declare const storeClaimableKeyInEnclave: (senderAddress: string, recipientEthAddress: string, shieldedPrivateKey: string, chainId: number, claimableSignature: string, senderSignature: string) => Promise<void>;
|
|
3
|
+
export declare const markClaimableKeyClaimedInEnclave: (ethAddress: string, signature: string, shieldedPrivateKey: string, claimableSignature: string, senderAddress: string, chainId: number) => Promise<void>;
|
|
4
4
|
export declare const getFundRecoveryMessage: (withdrawalAddress: string) => string;
|
|
5
5
|
export declare const recoverUtxosViaEnclave: (signature: string, requestSignature?: string, addressForLoginSignatureVerify?: string, addressForAuthorizationSignatureVerify?: string, ethereumWithdrawalAddress?: string, solanaWithdrawalAddress?: string, mnemonicProof?: Proof) => Promise<RecoverUtxosResponse>;
|
|
6
|
-
export declare const getUtxosFromEnclave: (ethAddress: string, signature: string, chainId: number
|
|
6
|
+
export declare const getUtxosFromEnclave: (ethAddress: string, signature: string, chainId: number) => Promise<EnclaveClaimableUtxo[]>;
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
import "../../data-structures/utxo/Utxo.mjs";
|
|
2
2
|
import { makeEnclaveHandshakeAndEncryptInput as e } from "./encryptInputForEnclave.mjs";
|
|
3
|
-
import { storeClaimableKeyEnclaveCall as t } from "../../API/enclaveUtxoCalls.mjs";
|
|
4
3
|
import "../../error-handling/logger.mjs";
|
|
4
|
+
import { storeClaimableKeyEnclaveCall as t } from "../../API/enclaveUtxoCalls.mjs";
|
|
5
5
|
//#region libs/shared/common/src/functions/utils/enclave-utxo-storage.ts
|
|
6
|
-
var n = async (n, r, i, a, o) => {
|
|
7
|
-
let { keyCiphertext:
|
|
6
|
+
var n = async (n, r, i, a, o, s) => {
|
|
7
|
+
let { keyCiphertext: c, inputCiphertext: l } = await e({
|
|
8
8
|
shieldedPrivateKey: i,
|
|
9
9
|
senderAddress: n,
|
|
10
|
-
claimableSignature: o
|
|
10
|
+
claimableSignature: o,
|
|
11
|
+
recipientEthAddress: r,
|
|
12
|
+
chainId: a,
|
|
13
|
+
senderSignature: s
|
|
11
14
|
});
|
|
12
|
-
await t(
|
|
15
|
+
await t(l, c);
|
|
13
16
|
};
|
|
14
17
|
//#endregion
|
|
15
18
|
export { n as storeClaimableKeyInEnclave };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../../../_virtual/_rolldown/runtime.cjs`),t=require(`./serialize.utils.cjs`),n=require(`./enclaveHandshakeService.cjs`);let
|
|
1
|
+
const e=require(`../../../../_virtual/_rolldown/runtime.cjs`),t=require(`./serialize.utils.cjs`),n=require(`../../data-structures/http/HttpClient.cjs`);require(`../../data-structures/http/index.cjs`);const r=require(`./enclaveHandshakeService.cjs`),i=require(`../snarkjs/verifySignedEnclaveResponse.cjs`);let a=require(`ethers`),o=require(`libsodium-wrappers`);o=e.__toESM(o);let s=require(`node-forge`);s=e.__toESM(s);var c=e=>typeof e==`bigint`||typeof e==`number`?e.toString():e,l=e=>s.util.hexToBytes(e.replace(`0x`,``)),u=e=>{let t=structuredClone(e);return Object.entries(t).forEach(([e,n])=>{t[e]=c(n),Array.isArray(n)&&(Array.isArray(n[0])?t[e]=n.map(e=>e.map(c)):t[e]=n.map(c))}),t},d=(e,t)=>{let n=s.util.decode64(e),r=s.asn1.fromDer(s.util.createBuffer(n)),i=s.pki.publicKeyFromAsn1(r),a=s.util.binary.raw.encode(t),o=i.encrypt(a,`RSA-OAEP`,{md:s.md.sha1.create(),mgf1:{md:s.md.sha1.create()}});return s.util.encode64(o)},f=(e,t)=>{let n=o.default.randombytes_buf(o.default.crypto_secretbox_NONCEBYTES),r=o.default.crypto_secretbox_easy(t,n,e),i=l(a.ethers.hexlify(n)+a.ethers.hexlify(r).slice(2));return s.util.encode64(i)},p=(e,t)=>{let n=o.default.randombytes_buf(o.default.crypto_secretbox_KEYBYTES);return{keyCiphertext:d(t,n),inputCiphertext:f(n,e),key:n}},m=(e,n)=>{let r=typeof e==`string`?e:t.safeJsonStringify(u(e));return p(new TextEncoder().encode(r),n)},h=async e=>m(e,await r.enclaveHandshakeService.getPublicKey()),g=async e=>p(e,await r.enclaveHandshakeService.getPublicKey()),_=async()=>{let e=await r.enclaveHandshakeService.getPublicKey(),t=o.default.randombytes_buf(o.default.crypto_secretbox_KEYBYTES);return{keyCiphertext:d(e,t),key:t}},v=(e,t)=>{if(!e||typeof e!=`object`||!(`encrypted`in e))throw Error(`Enclave answered in plaintext - refusing an unencrypted response`);let n=o.default.from_base64(e.encrypted,o.default.base64_variants.ORIGINAL),r=n.slice(0,o.default.crypto_secretbox_NONCEBYTES),i=n.slice(o.default.crypto_secretbox_NONCEBYTES),a=o.default.crypto_secretbox_open_easy(i,r,t);return JSON.parse(new TextDecoder().decode(a))},y=async(e,t,r)=>v(await n.httpClient.post(e,t),r),b=async(e,t)=>{let{keyCiphertext:r,inputCiphertext:a,key:o}=await h(t),{data:s,signature:c}=v(await n.httpClient.post(e,{key:r,inputs:a}),o);return i.verifySignedEnclaveResponse(s,c)};exports.enclavePostSealed=y,exports.enclavePostSealedSigned=b,exports.makeEnclaveHandshakeAndEncryptInput=h,exports.makeEnclaveHandshakeAndEncryptUint8Array=g,exports.makeEnclaveKeyHandshake=_;
|
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
export declare const makeEnclaveHandshakeAndEncryptInput: (input: any) => Promise<{
|
|
2
2
|
keyCiphertext: string;
|
|
3
3
|
inputCiphertext: string;
|
|
4
|
+
key: Uint8Array<ArrayBufferLike>;
|
|
4
5
|
}>;
|
|
5
6
|
export declare const makeEnclaveHandshakeAndEncryptUint8Array: (inputUint8Array: Uint8Array) => Promise<{
|
|
6
7
|
keyCiphertext: string;
|
|
7
8
|
inputCiphertext: string;
|
|
9
|
+
key: Uint8Array<ArrayBufferLike>;
|
|
8
10
|
}>;
|
|
11
|
+
export declare const makeEnclaveKeyHandshake: () => Promise<{
|
|
12
|
+
keyCiphertext: string;
|
|
13
|
+
key: Uint8Array;
|
|
14
|
+
}>;
|
|
15
|
+
export declare const enclavePostSealed: <T>(url: string, body: Record<string, unknown>, key: Uint8Array) => Promise<T>;
|
|
16
|
+
export declare const enclavePostSealedSigned: <T>(url: string, payload: unknown) => Promise<T>;
|
|
@@ -1,32 +1,52 @@
|
|
|
1
1
|
import { safeJsonStringify as e } from "./serialize.utils.mjs";
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
2
|
+
import { httpClient as t } from "../../data-structures/http/HttpClient.mjs";
|
|
3
|
+
import "../../data-structures/http/index.mjs";
|
|
4
|
+
import { enclaveHandshakeService as n } from "./enclaveHandshakeService.mjs";
|
|
5
|
+
import { verifySignedEnclaveResponse as r } from "../snarkjs/verifySignedEnclaveResponse.mjs";
|
|
6
|
+
import { ethers as i } from "ethers";
|
|
7
|
+
import a from "libsodium-wrappers";
|
|
8
|
+
import * as o from "node-forge";
|
|
6
9
|
//#region libs/shared/common/src/functions/utils/encryptInputForEnclave.ts
|
|
7
|
-
var
|
|
10
|
+
var s = (e) => typeof e == "bigint" || typeof e == "number" ? e.toString() : e, c = (e) => o.util.hexToBytes(e.replace("0x", "")), l = (e) => {
|
|
8
11
|
let t = structuredClone(e);
|
|
9
12
|
return Object.entries(t).forEach(([e, n]) => {
|
|
10
|
-
t[e] =
|
|
13
|
+
t[e] = s(n), Array.isArray(n) && (Array.isArray(n[0]) ? t[e] = n.map((e) => e.map(s)) : t[e] = n.map(s));
|
|
11
14
|
}), t;
|
|
12
|
-
}, c = (e, t) => {
|
|
13
|
-
let n = i.util.decode64(e), r = i.asn1.fromDer(i.util.createBuffer(n)), a = i.pki.publicKeyFromAsn1(r), o = i.util.binary.raw.encode(t), s = a.encrypt(o, "RSA-OAEP", {
|
|
14
|
-
md: i.md.sha1.create(),
|
|
15
|
-
mgf1: { md: i.md.sha1.create() }
|
|
16
|
-
});
|
|
17
|
-
return i.util.encode64(s);
|
|
18
|
-
}, l = (e, t) => {
|
|
19
|
-
let a = r.randombytes_buf(r.crypto_secretbox_NONCEBYTES), s = r.crypto_secretbox_easy(t, a, e), c = o(n.hexlify(a) + n.hexlify(s).slice(2));
|
|
20
|
-
return i.util.encode64(c);
|
|
21
15
|
}, u = (e, t) => {
|
|
22
|
-
let n = r.
|
|
16
|
+
let n = o.util.decode64(e), r = o.asn1.fromDer(o.util.createBuffer(n)), i = o.pki.publicKeyFromAsn1(r), a = o.util.binary.raw.encode(t), s = i.encrypt(a, "RSA-OAEP", {
|
|
17
|
+
md: o.md.sha1.create(),
|
|
18
|
+
mgf1: { md: o.md.sha1.create() }
|
|
19
|
+
});
|
|
20
|
+
return o.util.encode64(s);
|
|
21
|
+
}, d = (e, t) => {
|
|
22
|
+
let n = a.randombytes_buf(a.crypto_secretbox_NONCEBYTES), r = a.crypto_secretbox_easy(t, n, e), s = c(i.hexlify(n) + i.hexlify(r).slice(2));
|
|
23
|
+
return o.util.encode64(s);
|
|
24
|
+
}, f = (e, t) => {
|
|
25
|
+
let n = a.randombytes_buf(a.crypto_secretbox_KEYBYTES);
|
|
26
|
+
return {
|
|
27
|
+
keyCiphertext: u(t, n),
|
|
28
|
+
inputCiphertext: d(n, e),
|
|
29
|
+
key: n
|
|
30
|
+
};
|
|
31
|
+
}, p = (t, n) => {
|
|
32
|
+
let r = typeof t == "string" ? t : e(l(t));
|
|
33
|
+
return f(new TextEncoder().encode(r), n);
|
|
34
|
+
}, m = async (e) => p(e, await n.getPublicKey()), h = async (e) => f(e, await n.getPublicKey()), g = async () => {
|
|
35
|
+
let e = await n.getPublicKey(), t = a.randombytes_buf(a.crypto_secretbox_KEYBYTES);
|
|
23
36
|
return {
|
|
24
|
-
keyCiphertext:
|
|
25
|
-
|
|
37
|
+
keyCiphertext: u(e, t),
|
|
38
|
+
key: t
|
|
26
39
|
};
|
|
27
|
-
},
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
40
|
+
}, _ = (e, t) => {
|
|
41
|
+
if (!e || typeof e != "object" || !("encrypted" in e)) throw Error("Enclave answered in plaintext - refusing an unencrypted response");
|
|
42
|
+
let n = a.from_base64(e.encrypted, a.base64_variants.ORIGINAL), r = n.slice(0, a.crypto_secretbox_NONCEBYTES), i = n.slice(a.crypto_secretbox_NONCEBYTES), o = a.crypto_secretbox_open_easy(i, r, t);
|
|
43
|
+
return JSON.parse(new TextDecoder().decode(o));
|
|
44
|
+
}, v = async (e, n, r) => _(await t.post(e, n), r), y = async (e, n) => {
|
|
45
|
+
let { keyCiphertext: i, inputCiphertext: a, key: o } = await m(n), { data: s, signature: c } = _(await t.post(e, {
|
|
46
|
+
key: i,
|
|
47
|
+
inputs: a
|
|
48
|
+
}), o);
|
|
49
|
+
return r(s, c);
|
|
50
|
+
};
|
|
31
51
|
//#endregion
|
|
32
|
-
export {
|
|
52
|
+
export { v as enclavePostSealed, y as enclavePostSealedSigned, m as makeEnclaveHandshakeAndEncryptInput, h as makeEnclaveHandshakeAndEncryptUint8Array, g as makeEnclaveKeyHandshake };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../constants/chains.constants.cjs`);const e=require(`../../constants/protocol.constants.cjs`);require(`../web3/etherFunctions.cjs`);const t=require(`../../API/token-calls.cjs`);require(`../../constants/tokens.constants.cjs`);var n=async(e,n)=>{let[r]=await t.tokensInfoCall(e,[n]);return r},r=async(e,n)=>n.length===0?[]:t.tokensInfoCall(e,n),i=async(e,t)=>{let r=await n(e,t);if(!r)throw Error(`Token not found: ${t} on chain ${e}`);return r},a=async(e,t)=>{if(t.length===0)return[];let n=await r(e,t);return t.map((t,r)=>{let i=n[r];if(!i)throw Error(`Token not found: ${t} on chain ${e}`);return i})},o=async e=>await t.getTokensForChainCall(e),s=async(e,n)=>await t.getTokensBySymbolsCall(n,e),c=
|
|
1
|
+
require(`../../constants/chains.constants.cjs`);const e=require(`../../constants/protocol.constants.cjs`);require(`../web3/etherFunctions.cjs`);const t=require(`../../API/token-calls.cjs`);require(`../../constants/tokens.constants.cjs`);var n=async(e,n)=>{let[r]=await t.tokensInfoCall(e,[n]);return r},r=async(e,n)=>n.length===0?[]:t.tokensInfoCall(e,n),i=async(e,t)=>{let r=await n(e,t);if(!r)throw Error(`Token not found: ${t} on chain ${e}`);return r},a=async(e,t)=>{if(t.length===0)return[];let n=await r(e,t);return t.map((t,r)=>{let i=n[r];if(!i)throw Error(`Token not found: ${t} on chain ${e}`);return i})},o=async e=>await t.getTokensForChainCall(e),s=async(e,n)=>await t.getTokensBySymbolsCall(n,e),c=t=>t.nftTokenType===e.TokenType.ERC721||t.nftTokenType===e.TokenType.ERC1155||t.nftTokenType===e.TokenType.MetaplexNFT||t.nftTokenType===e.TokenType.Token2022NFT||t.nftTokenType===e.TokenType.CompressedNFT;exports.getErc20TokenFromAPI=n,exports.getErc20TokensBySymbolsFromAPI=s,exports.getErc20TokensForChainAPI=o,exports.getErc20TokensFromAPI=r,exports.isNFTToken=c,exports.resolveErc20Token=i,exports.resolveErc20Tokens=a;
|
|
@@ -19,19 +19,6 @@ var i = async (e, t) => {
|
|
|
19
19
|
if (!i) throw Error(`Token not found: ${t} on chain ${e}`);
|
|
20
20
|
return i;
|
|
21
21
|
});
|
|
22
|
-
}, c = async (e) => await n(e), l = async (e, n) => await t(n, e), u =
|
|
23
|
-
if (e.length === 0) return [];
|
|
24
|
-
let n = await a(t, e.map((e) => e.erc20TokenAddress));
|
|
25
|
-
return e.map((e, t) => {
|
|
26
|
-
let r = n[t];
|
|
27
|
-
return r ? {
|
|
28
|
-
...e,
|
|
29
|
-
name: r.name,
|
|
30
|
-
symbol: r.symbol,
|
|
31
|
-
logoURI: r.logoURI,
|
|
32
|
-
decimals: r.decimals
|
|
33
|
-
} : e;
|
|
34
|
-
});
|
|
35
|
-
}, d = (t) => t.nftTokenType === e.ERC721 || t.nftTokenType === e.ERC1155 || t.nftTokenType === e.MetaplexNFT || t.nftTokenType === e.Token2022NFT || t.nftTokenType === e.CompressedNFT;
|
|
22
|
+
}, c = async (e) => await n(e), l = async (e, n) => await t(n, e), u = (t) => t.nftTokenType === e.ERC721 || t.nftTokenType === e.ERC1155 || t.nftTokenType === e.MetaplexNFT || t.nftTokenType === e.Token2022NFT || t.nftTokenType === e.CompressedNFT;
|
|
36
23
|
//#endregion
|
|
37
|
-
export { i as getErc20TokenFromAPI, l as getErc20TokensBySymbolsFromAPI, c as getErc20TokensForChainAPI, a as getErc20TokensFromAPI,
|
|
24
|
+
export { i as getErc20TokenFromAPI, l as getErc20TokensBySymbolsFromAPI, c as getErc20TokensForChainAPI, a as getErc20TokensFromAPI, u as isNFTToken, o as resolveErc20Token, s as resolveErc20Tokens };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../constants/fees.constants.cjs`),r=require(`./caseInsensitive.utils.cjs`),i=require(`../web3/etherFunctions.cjs`),a=require(`../../
|
|
1
|
+
const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../constants/fees.constants.cjs`),r=require(`./caseInsensitive.utils.cjs`),i=require(`../web3/etherFunctions.cjs`),a=require(`../../error-handling/logger.cjs`),o=require(`../../API/getTokenPrice.cjs`),s=require(`./erc20tokenFunctions.cjs`);var c=async r=>{if(!r)return n.EXTENDED_NON_NATIVE_GAS_COST_TOKEN_SYMBOL_OPTIONS;let i=t.zeroAddress;e.isSolanaLike(r)&&(i=t.solanaNativeAddress),e.isTempo(r)&&(i=n.TEMPO_DEFAULT_GAS_TOKEN_ADDRESS);let a=(await s.getErc20TokenFromAPI(r,i))?.symbol;return e.isSolanaLike(r)&&a?[a]:a&&!n.NON_NATIVE_GAS_COST_TOKEN_SYMBOL_OPTIONS(r).includes(a)?[a,...n.NON_NATIVE_GAS_COST_TOKEN_SYMBOL_OPTIONS(r)]:n.NON_NATIVE_GAS_COST_TOKEN_SYMBOL_OPTIONS(r)},l=(e,t)=>{let r=e*t.variableRate/n.BPS_DENOMINATOR;return t.flatFee+r},u=async(e,t,c,u)=>{let d=await s.getErc20TokenFromAPI(e,u.feeToken),f;if(!d||r.caseInsensitiveEqual(u.feeToken,t.erc20TokenAddress)||u.variableRate===0n)f=l(c,u);else{let r=0n;try{let[a,s]=t.chainId===e?(await o.getTokenPrices(e,[t.erc20TokenAddress,d.erc20TokenAddress])).prices:await Promise.all([(await o.getTokenPrices(t.chainId,[t.erc20TokenAddress])).prices[0],(await o.getTokenPrices(e,[d.erc20TokenAddress])).prices[0]]);if(!a||!s)throw Error(`failed to get token prices`);r=i.getAmountInWei(d,(Number(i.getAmountInToken(t,c))*a*Number(u.variableRate)/Number(n.BPS_DENOMINATOR)/s).toFixed(d.decimals))}catch(e){a.Logger.error(`error calculating modified fee structure`,e)}f=u.flatFee+r}return{feeToken:u.feeToken,flatFee:f,variableRate:0n}},d=async(e,t,n,r)=>{let i={...r,flatFee:0n},a=await Promise.all(t.map((t,r)=>u(e,t,n[r]??0n,i)));return{feeToken:r.feeToken,flatFee:a.reduce((e,{flatFee:t})=>e+t,r.flatFee),variableRate:0n}},f=(e,t)=>{let n=e/t;return e%t===0n?n:n+1n},p=(e,t)=>e<=0n||t<=0n?0n:f(e*t,n.BPS_DENOMINATOR);exports.calculateModifiedFeeStructure=u,exports.calculateModifiedFeeStructureForTokens=d,exports.calculateTotalFee=l,exports.calculateVariableFee=p,exports.getGasTokenSymbols=c;
|
|
@@ -3,8 +3,8 @@ import { solanaNativeAddress as n, zeroAddress as r } from "../../constants/prot
|
|
|
3
3
|
import { BPS_DENOMINATOR as i, EXTENDED_NON_NATIVE_GAS_COST_TOKEN_SYMBOL_OPTIONS as a, NON_NATIVE_GAS_COST_TOKEN_SYMBOL_OPTIONS as o, TEMPO_DEFAULT_GAS_TOKEN_ADDRESS as s } from "../../constants/fees.constants.mjs";
|
|
4
4
|
import { caseInsensitiveEqual as c } from "./caseInsensitive.utils.mjs";
|
|
5
5
|
import { getAmountInToken as l, getAmountInWei as u } from "../web3/etherFunctions.mjs";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
6
|
+
import { Logger as d } from "../../error-handling/logger.mjs";
|
|
7
|
+
import { getTokenPrices as f } from "../../API/getTokenPrice.mjs";
|
|
8
8
|
import { getErc20TokenFromAPI as p } from "./erc20tokenFunctions.mjs";
|
|
9
9
|
//#region libs/shared/common/src/functions/utils/fees.utils.ts
|
|
10
10
|
var m = async (i) => {
|
|
@@ -22,11 +22,11 @@ var m = async (i) => {
|
|
|
22
22
|
else {
|
|
23
23
|
let s = 0n;
|
|
24
24
|
try {
|
|
25
|
-
let
|
|
26
|
-
if (!
|
|
27
|
-
s = u(a, (Number(l(t, n)) *
|
|
25
|
+
let [o, c] = t.chainId === e ? (await f(e, [t.erc20TokenAddress, a.erc20TokenAddress])).prices : await Promise.all([(await f(t.chainId, [t.erc20TokenAddress])).prices[0], (await f(e, [a.erc20TokenAddress])).prices[0]]);
|
|
26
|
+
if (!o || !c) throw Error("failed to get token prices");
|
|
27
|
+
s = u(a, (Number(l(t, n)) * o * Number(r.variableRate) / Number(i) / c).toFixed(a.decimals));
|
|
28
28
|
} catch (e) {
|
|
29
|
-
|
|
29
|
+
d.error("error calculating modified fee structure", e);
|
|
30
30
|
}
|
|
31
31
|
o = r.flatFee + s;
|
|
32
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`./abi.utils.cjs`),require(`./serialize.utils.cjs`),require(`./caseInsensitive.utils.cjs`),require(`./amounts.utils.cjs`),require(`./time.utils.cjs`),require(`./upToDateState.cjs`),require(`./cacheFunctions.cjs`),require(`./encodeTokenWithId.cjs`),require(`./enclaveHandshakeService.cjs`),require(`./encryptInputForEnclave.cjs`),require(`./solanaMint.utils.cjs`),require(`./serialize-utxos.utils.cjs`),require(`./customEnclaveFunctionsRegister.cjs`),require(`./
|
|
1
|
+
require(`./abi.utils.cjs`),require(`./serialize.utils.cjs`),require(`./caseInsensitive.utils.cjs`),require(`./amounts.utils.cjs`),require(`./time.utils.cjs`),require(`./upToDateState.cjs`),require(`./cacheFunctions.cjs`),require(`./encodeTokenWithId.cjs`),require(`./enclaveHandshakeService.cjs`),require(`./encryptInputForEnclave.cjs`),require(`./solanaMint.utils.cjs`),require(`./serialize-utxos.utils.cjs`),require(`./customEnclaveFunctionsRegister.cjs`),require(`./tron.utils.cjs`),require(`./addresses.cjs`),require(`./legacyKeys.cjs`),require(`./auth.utils.cjs`),require(`./string.utils.cjs`),require(`./token-check.utils.cjs`),require(`./map.utils.cjs`),require(`./mutexes.utils.cjs`),require(`./erc20tokenFunctions.cjs`),require(`../pre-transaction/outputUtxoProcessing.cjs`),require(`./external-action.utils.cjs`),require(`../pre-transaction/solana.cjs`),require(`../pre-transaction/process-gas-estimates.cjs`),require(`../pre-transaction/getVolatileTransferAmount.cjs`),require(`../pre-transaction/constructAdminData.cjs`),require(`./create-provider.cjs`),require(`../pre-transaction/calculateSolanaNullifierCount.cjs`),require(`../pre-transaction/convert-okx-instructions.cjs`),require(`./process.utils.cjs`),require(`../pre-transaction/sendV0Transaction.cjs`),require(`./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(`./solana-program.utils.cjs`),require(`./getContractAddress.cjs`),require(`./getSignerFromContract.cjs`),require(`./tronSimulation.utils.cjs`),require(`./resolve-domain-address.cjs`),require(`./resolve-sync.utils.cjs`),require(`./convertIntegrationProviderToExternalActionId.cjs`),require(`./evmNetworkFunctions.cjs`),require(`./userAgent.cjs`),require(`./cacheDevice.utils.cjs`),require(`./getBlockExplorerUrl.cjs`),require(`./involves-permit2-op.cjs`),require(`./convertEmporiumOpToCallInfo.cjs`),require(`./getRecipientInfoFromUserKeys.cjs`),require(`./publicBalance.utils.cjs`),require(`./rpc-int-encode.cjs`),require(`./walletBalances.utils.cjs`),require(`./nftTokenFunctions.cjs`),require(`./inLogicMetadata.cjs`),require(`./networks.utils.cjs`),require(`./postToOffscreen.cjs`),require(`./solanaSendPreflight.utils.cjs`),require(`./voidWallets.utils.cjs`),require(`./prepareHinkal.cjs`),require(`./getUtxosFromReceipt.utils.cjs`),require(`./getUtxosFromReceiptSolana.cjs`),require(`./fees.utils.cjs`),require(`./recovery-balance.utils.cjs`),require(`./proxyAvatar.utils.cjs`),require(`./enclave-utxo-storage.cjs`),require(`./enclave-signature-storage.cjs`),require(`./tx-confirmation.utils.cjs`),require(`./buildClaimableDepositPlan.cjs`),require(`./deposit-claimable.utils.cjs`),require(`./formatter.cjs`),require(`./transfer-claimable.utils.cjs`),require(`./bridge-arrival.utils.cjs`),require(`./bridge-flow.utils.cjs`),require(`./bridge-claimable.utils.cjs`),require(`./solana-sponsored.utils.cjs`),require(`./temp-wallet.utils.cjs`),require(`./enclave-recipient-info-storage.cjs`),require(`./temporary-wallet-recovery.utils.cjs`),require(`./dispatchBalanceRefreshes.cjs`),require(`./lifi.utils.cjs`),require(`./solana-memo.cjs`),require(`./mnemonics.cjs`),require(`./nearIntents.utils.cjs`),require(`./enclaveSessionSigning.cjs`),require(`./validateWalletAddress.cjs`),require(`./waasStamp.cjs`),require(`./sponsored-shield.utils.cjs`);
|
|
@@ -69,6 +69,7 @@ export * from './bridge-claimable.utils';
|
|
|
69
69
|
export * from './bridge-flow.utils';
|
|
70
70
|
export * from './solana-sponsored.utils';
|
|
71
71
|
export * from './temp-wallet.utils';
|
|
72
|
+
export * from './temporary-wallet-recovery.utils';
|
|
72
73
|
export * from './auth.utils';
|
|
73
74
|
export * from './getWalletGroupKey.utils';
|
|
74
75
|
export * from './encryptInputForEnclave';
|
|
@@ -11,8 +11,8 @@ import "./encryptInputForEnclave.mjs";
|
|
|
11
11
|
import "./solanaMint.utils.mjs";
|
|
12
12
|
import "./serialize-utxos.utils.mjs";
|
|
13
13
|
import "./customEnclaveFunctionsRegister.mjs";
|
|
14
|
-
import "./addresses.mjs";
|
|
15
14
|
import "./tron.utils.mjs";
|
|
15
|
+
import "./addresses.mjs";
|
|
16
16
|
import "./legacyKeys.mjs";
|
|
17
17
|
import "./auth.utils.mjs";
|
|
18
18
|
import "./string.utils.mjs";
|
|
@@ -46,7 +46,6 @@ import "./resolve-sync.utils.mjs";
|
|
|
46
46
|
import "./convertIntegrationProviderToExternalActionId.mjs";
|
|
47
47
|
import "./evmNetworkFunctions.mjs";
|
|
48
48
|
import "./userAgent.mjs";
|
|
49
|
-
import "./reloadPage.mjs";
|
|
50
49
|
import "./cacheDevice.utils.mjs";
|
|
51
50
|
import "./getBlockExplorerUrl.mjs";
|
|
52
51
|
import "./involves-permit2-op.mjs";
|
|
@@ -79,9 +78,10 @@ import "./bridge-flow.utils.mjs";
|
|
|
79
78
|
import "./bridge-claimable.utils.mjs";
|
|
80
79
|
import "./solana-sponsored.utils.mjs";
|
|
81
80
|
import "./temp-wallet.utils.mjs";
|
|
81
|
+
import "./enclave-recipient-info-storage.mjs";
|
|
82
|
+
import "./temporary-wallet-recovery.utils.mjs";
|
|
82
83
|
import "./dispatchBalanceRefreshes.mjs";
|
|
83
84
|
import "./lifi.utils.mjs";
|
|
84
|
-
import "./enclave-recipient-info-storage.mjs";
|
|
85
85
|
import "./solana-memo.mjs";
|
|
86
86
|
import "./mnemonics.mjs";
|
|
87
87
|
import "./nearIntents.utils.mjs";
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* Formats URL correctly for use retrieving assets hosted on IPFS.
|
|
3
3
|
*
|
|
4
4
|
* @param ipfsUrl - The IFPS URL pointed at the asset.
|
|
5
|
-
* @
|
|
6
|
-
* @returns A formatted URL, with the user's preferred IPFS gateway and format (subdomain or not), pointing to an asset hosted on IPFS.
|
|
5
|
+
* @returns A formatted URL, with the user's preferred IPFS gateway, pointing to an asset hosted on IPFS.
|
|
7
6
|
*/
|
|
8
|
-
export declare const getFormattedIpfsUrl: (ipfsUrl: string
|
|
7
|
+
export declare const getFormattedIpfsUrl: (ipfsUrl: string) => string;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { ERC20Token } from '../../types/token.types';
|
|
2
2
|
export declare const getLifiScanURL: (txHash: string) => string;
|
|
3
|
+
export declare const getLifiQuoteOutputRatio: (fromAmountUSD: string, toAmountUSD: string) => number | undefined;
|
|
4
|
+
export declare const isLifiQuotePlausible: (fromAmountUSD: string, toAmountUSD: string) => boolean;
|
|
3
5
|
export declare const isLifiQuoteAcceptable: (fromAmountUSD: string, toAmountUSD: string, executionDurationSeconds: number | undefined) => boolean;
|
|
4
6
|
export declare const getEquivalentBridgedTokenForTempo: (sourceToken: ERC20Token, destChainId: number, destTokenList: ERC20Token[]) => ERC20Token | undefined;
|
|
5
7
|
export declare const getEquivalentNativeToken: (sourceChainId: number, destChainId: number, fullTokenList: ERC20Token[]) => ERC20Token | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`./caseInsensitive.utils.cjs`),r=require(`./
|
|
1
|
+
const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`./caseInsensitive.utils.cjs`),r=require(`./tron.utils.cjs`),i=require(`./addresses.cjs`),a=require(`../../types/external-action.types.cjs`);require(`./erc20tokenFunctions.cjs`);const o=require(`../pre-transaction/getFeeStructure.cjs`),s=require(`../../constants/bridging.constants.cjs`),c=require(`../../API/callNearIntentsAPI.cjs`);var l=(t,n)=>{if(!n||!e.isTronLike(t))return n;try{return r.addressToHexFormat(n)}catch{return n}},u=async(e,t)=>{let r=s.NEAR_INTENTS_BLOCKCHAIN_BY_CHAIN_ID[e];if(!r)throw Error(`NEAR Intents does not support chain ${e}`);let a=(await c.getNearIntentsTokens()).filter(e=>e.blockchain===r),o=i.isNativePlaceholderAddress(t)?a.find(e=>!e.contractAddress):a.find(r=>r.contractAddress&&n.caseInsensitiveEqual(l(e,r.contractAddress),t));if(!o)throw Error(`No NEAR Intents asset for token ${t} on chain ${e}`);return o.assetId},d=(e,n,r)=>o.getFeeStructure(e,n.erc20TokenAddress,[n.erc20TokenAddress],a.ExternalActionId.Transact,[],t.PAY_SEND_VARIABLE_RATE,{mintTo:n.erc20TokenAddress,recipient:r,nullifierCount:n.erc20TokenAddress===`11111111111111111111111111111111`?0:1});exports.buildNearBridgeFeeStructure=d,exports.resolveNearAssetId=u;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { isTronLike as e } from "../../constants/chains.constants.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { PAY_SEND_VARIABLE_RATE as t } from "../../constants/protocol.constants.mjs";
|
|
3
3
|
import { caseInsensitiveEqual as n } from "./caseInsensitive.utils.mjs";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { addressToHexFormat as r } from "./tron.utils.mjs";
|
|
5
|
+
import { isNativePlaceholderAddress as i } from "./addresses.mjs";
|
|
6
6
|
import { ExternalActionId as a } from "../../types/external-action.types.mjs";
|
|
7
7
|
import "./erc20tokenFunctions.mjs";
|
|
8
8
|
import { getFeeStructure as o } from "../pre-transaction/getFeeStructure.mjs";
|
|
@@ -12,14 +12,14 @@ import { getNearIntentsTokens as c } from "../../API/callNearIntentsAPI.mjs";
|
|
|
12
12
|
var l = (t, n) => {
|
|
13
13
|
if (!n || !e(t)) return n;
|
|
14
14
|
try {
|
|
15
|
-
return
|
|
15
|
+
return r(n);
|
|
16
16
|
} catch {
|
|
17
17
|
return n;
|
|
18
18
|
}
|
|
19
19
|
}, u = async (e, t) => {
|
|
20
|
-
let
|
|
21
|
-
if (!
|
|
22
|
-
let a = (await c()).filter((e) => e.blockchain ===
|
|
20
|
+
let r = s[e];
|
|
21
|
+
if (!r) throw Error(`NEAR Intents does not support chain ${e}`);
|
|
22
|
+
let a = (await c()).filter((e) => e.blockchain === r), o = i(t) ? a.find((e) => !e.contractAddress) : a.find((r) => r.contractAddress && n(l(e, r.contractAddress), t));
|
|
23
23
|
if (!o) throw Error(`No NEAR Intents asset for token ${t} on chain ${e}`);
|
|
24
24
|
return o.assetId;
|
|
25
25
|
}, d = (e, n, r) => o(e, n.erc20TokenAddress, [n.erc20TokenAddress], a.Transact, [], t, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`);require(`../../data-structures/http/index.cjs`);const n=require(`./solanaMint.utils.cjs`),r=require(
|
|
1
|
+
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`);require(`../../data-structures/http/index.cjs`);const n=require(`./solanaMint.utils.cjs`),r=require(`../../error-handling/logger.cjs`),i=require(`./addresses.cjs`),a=require(`./erc20tokenFunctions.cjs`);require(`../../data-structures/token-price-fetcher/TokenChecker.cjs`);const o=require(`./create-provider.cjs`);require(`../../externalABIs/index.cjs`);const s=require(`../../externalABIs/swapAbi.cjs`);require(`../../data-structures/IndexedDB/key-val-store.cjs`);let c=require(`ethers`),l=require(`@solana/web3.js`);var u=async(e,n,r)=>{try{let i=r.erc20TokenAddress,a,o=new c.ethers.Contract(r.erc20TokenAddress,s.ERC20ABI,e);a=i===t.zeroAddress?await e.getBalance(n):await o?.balanceOf(n);let l=a;return l<=0n?null:{token:r,balance:l}}catch{return null}},d=async(e,t,r)=>{if(r.erc20TokenAddress===`11111111111111111111111111111111`)return BigInt(await e.getBalance(t));let i=await n.getSolanaAtaAddress(r,t);if(!await e.getAccountInfo(i))return 0n;let a=await e.getTokenAccountBalance(i);return BigInt(a.value.amount)},f=async(n,u,f)=>{try{if(e.isSolanaLike(n)){if(!i.isValidSolanaPublicKey(u))return null;let{rpcUrl:t}=e.networkRegistry[n],r=o.createCustomSolanaConnection(t),s=new l.PublicKey(u);if(f===`11111111111111111111111111111111`)return BigInt(await r.getBalance(s));let c=await a.getErc20TokenFromAPI(n,f);return c?d(r,s,c):null}let r=o.createJsonRpcProvider(n),p=new c.ethers.Contract(f,s.ERC20ABI,r),m;return m=f===t.zeroAddress?await r.getBalance(u):await p?.balanceOf(u),m}catch{return r.Logger.error(`Failed to fetch public balance for address ${u}`),null}};exports.getPublicBalance=u,exports.getPublicBalanceByTokenAddress=f;
|
|
@@ -2,13 +2,13 @@ import { isSolanaLike as e, networkRegistry as t } from "../../constants/chains.
|
|
|
2
2
|
import { zeroAddress as n } from "../../constants/protocol.constants.mjs";
|
|
3
3
|
import "../../data-structures/http/index.mjs";
|
|
4
4
|
import { getSolanaAtaAddress as r } from "./solanaMint.utils.mjs";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
5
|
+
import { Logger as i } from "../../error-handling/logger.mjs";
|
|
6
|
+
import { isValidSolanaPublicKey as a } from "./addresses.mjs";
|
|
7
7
|
import { getErc20TokenFromAPI as o } from "./erc20tokenFunctions.mjs";
|
|
8
|
+
import "../../data-structures/token-price-fetcher/TokenChecker.mjs";
|
|
8
9
|
import { createCustomSolanaConnection as s, createJsonRpcProvider as c } from "./create-provider.mjs";
|
|
9
10
|
import "../../externalABIs/index.mjs";
|
|
10
11
|
import { ERC20ABI as l } from "../../externalABIs/swapAbi.mjs";
|
|
11
|
-
import "./ipfs.mjs";
|
|
12
12
|
import "../../data-structures/IndexedDB/key-val-store.mjs";
|
|
13
13
|
import { ethers as u } from "ethers";
|
|
14
14
|
import { PublicKey as d } from "@solana/web3.js";
|
|
@@ -34,16 +34,16 @@ var f = async (e, t, r) => {
|
|
|
34
34
|
}, m = async (r, f, m) => {
|
|
35
35
|
try {
|
|
36
36
|
if (e(r)) {
|
|
37
|
-
if (!
|
|
38
|
-
let { rpcUrl: e } = t[r], n = s(e),
|
|
39
|
-
if (m === "11111111111111111111111111111111") return BigInt(await n.getBalance(
|
|
37
|
+
if (!a(f)) return null;
|
|
38
|
+
let { rpcUrl: e } = t[r], n = s(e), i = new d(f);
|
|
39
|
+
if (m === "11111111111111111111111111111111") return BigInt(await n.getBalance(i));
|
|
40
40
|
let c = await o(r, m);
|
|
41
|
-
return c ? p(n,
|
|
41
|
+
return c ? p(n, i, c) : null;
|
|
42
42
|
}
|
|
43
|
-
let
|
|
44
|
-
return g = m === n ? await
|
|
43
|
+
let i = c(r), h = new u.Contract(m, l, i), g;
|
|
44
|
+
return g = m === n ? await i.getBalance(f) : await h?.balanceOf(f), g;
|
|
45
45
|
} catch {
|
|
46
|
-
return
|
|
46
|
+
return i.error(`Failed to fetch public balance for address ${f}`), null;
|
|
47
47
|
}
|
|
48
48
|
};
|
|
49
49
|
//#endregion
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require(`../../error-handling/error-codes.constants.cjs`),require(`../web3/etherFunctions.cjs`),require(`../../data-structures/crypto-keys/keys.cjs`),require(`./addresses.cjs`),require(`../pre-transaction/getFeeStructure.cjs`),require(`./getRecipientInfoFromUserKeys.cjs`),require(`./fees.utils.cjs`),require(`./enclave-utxo-storage.cjs`),require(`../../data-structures/Hinkal/hinkalSolanaSponsoredShield.cjs`),require(`./enclave-recipient-info-storage.cjs`);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { IHinkal } from '../../data-structures/Hinkal/IHinkal';
|
|
2
|
+
import { CallInfo } from '../../types/API.types';
|
|
3
|
+
import { SubAccount } from '../../types/proxy.types';
|
|
4
|
+
import { ERC20Token } from '../../types/token.types';
|
|
5
|
+
export declare const resolveRecoveryRecipientInfo: (hinkal: IHinkal, chainId: number, shieldEligible: boolean, enteredAddress: string | undefined) => Promise<string | null>;
|
|
6
|
+
export declare const recoverSolanaBalance: (hinkal: IHinkal, chainId: number, token: ERC20Token, amount: bigint, subAccount: SubAccount, shieldEligible: boolean, enteredAddress: string | undefined) => Promise<void>;
|
|
7
|
+
export declare const recoverEvmBalance: (hinkal: IHinkal, chainId: number, token: ERC20Token, amount: bigint, subAccount: SubAccount, recipientAddress: string, shieldEligible: boolean, enteredAddress: string | undefined, withdrawCalls: CallInfo[]) => Promise<void>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import "../../error-handling/error-codes.constants.mjs";
|
|
2
|
+
import "../web3/etherFunctions.mjs";
|
|
3
|
+
import "../../data-structures/crypto-keys/keys.mjs";
|
|
4
|
+
import "./addresses.mjs";
|
|
5
|
+
import "../pre-transaction/getFeeStructure.mjs";
|
|
6
|
+
import "./getRecipientInfoFromUserKeys.mjs";
|
|
7
|
+
import "./fees.utils.mjs";
|
|
8
|
+
import "./enclave-utxo-storage.mjs";
|
|
9
|
+
import "../../data-structures/Hinkal/hinkalSolanaSponsoredShield.mjs";
|
|
10
|
+
import "./enclave-recipient-info-storage.mjs";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../snarkjs/constant.cjs`),r=require(`../../data-structures/http/HttpClient.cjs`);let i=require(`ethers`),a=require(`tronweb`);var o=2000n,s=e=>{let t=e.trim(),n=t.startsWith(`0x`)?t.slice(2):t;if(!/^[0-9a-fA-F]{64}$/.test(n))throw Error(`Tron private key must be 32 bytes (64 hex characters), with or without 0x prefix`);return n},c=(t,n)=>{let{rpcUrl:r}=e.networkRegistry[t],i=n?s(n):void 0,o=i?new a.TronWeb({fullHost:r,privateKey:i}):new a.TronWeb({fullHost:r});return n||o.setAddress(`T9yD14Nj9j7xAB4dbGeiX9h8unkKHxuWwb`),o},l=e=>e?.startsWith(`T`)?e:a.TronWeb.address.fromHex(e),u=e=>e.startsWith(`0x`)?l(e):e,d=e=>{if(e.startsWith(`0x`))return e;if(e.startsWith(`41`))return e.replace(`41`,`0x`);if(e.startsWith(`T`))return d(a.TronWeb.address.toHex(e));throw Error(`Failed to convert address to hex format`)},f=t=>{if(t===e.chainIds.tronNile)return`https://nile.trongrid.io`;if(t===e.chainIds.tronMainnet)return`https://api.trongrid.io`;throw Error(`Unsupported Tron chain for wallet RPC: ${t}`)},p=(e,t)=>e.map(e=>Array.isArray(e)?p(e,t):t(e)),m=(e,t,n)=>{let r=new i.ethers.Interface(e);if(!r.getFunction(t))throw Error(`${t} ABI is missing for Tron call data creation`);let a=p(n,e=>typeof e==`string`&&e.startsWith(`T`)?d(e):e);return r.encodeFunctionData(t,a)},h=(e,t,n)=>e?BigInt(Math.max((e[t]??0)-(e[n]??0),0)):0n,g=(e,t)=>{let n=e.find(e=>e.key===t);if(!n||typeof n.value!=`number`)throw Error(`Missing Tron chain parameter: ${t}`);return BigInt(n.value)},_=async e=>{let t=`${f(e)}/wallet/getchainparameters`,n=await r.httpClient.post(t,{});if(!n?.chainParameter?.length)throw Error(`Failed to fetch Tron chain parameters from wallet RPC`);return n.chainParameter},v=async(e,t)=>{let n=`${f(e)}/wallet/getaccountresource`,i=d(t),a=i.startsWith(`0x`)?`41${i.slice(2)}`:i;return await r.httpClient.post(n,{address:a,visible:!1})},y=async(e,n,r,i,a,s)=>{let c={input:a,callValue:Number(s),feeLimit:t.TRON_DEFAULT_FEE_LIMIT_SUN},[l,u]=await Promise.all([e.transactionBuilder.estimateEnergy(r,``,c,[],i),e.transactionBuilder.triggerConstantContract(r,``,c,[],i)]),d=await _(n),f=g(d,`getEnergyFee`),p=g(d,`getTransactionFee`),m=await v(n,i),y=BigInt(l?.energy_required??u?.energy_used??0),b=h(m,`EnergyLimit`,`EnergyUsed`),x=(y>b?y-b:0n)*f,S=BigInt(Math.ceil((u?.transaction?.raw_data_hex?.length??0)/2)),C=h(m,`freeNetLimit`,`freeNetUsed`)+h(m,`NetLimit`,`NetUsed`),w=x+(S>C?S-C:0n)*p,T=w+w*o/10000n;return T>BigInt(1e9)?BigInt(t.TRON_DEFAULT_FEE_LIMIT_SUN):T},b=e=>{let t=e[0].map(BigInt),n=e[1][0].map(BigInt),r=e[1][1].map(BigInt),i=e[2].map(BigInt),a=e[3].map(BigInt);return{a:t,b:[[n[1],n[0]],[r[1],r[0]]],c:i,publicSignals:a}},x=
|
|
1
|
+
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../snarkjs/constant.cjs`),r=require(`../../data-structures/http/HttpClient.cjs`);let i=require(`ethers`),a=require(`tronweb`);var o=2000n,s=e=>{let t=e.trim(),n=t.startsWith(`0x`)?t.slice(2):t;if(!/^[0-9a-fA-F]{64}$/.test(n))throw Error(`Tron private key must be 32 bytes (64 hex characters), with or without 0x prefix`);return n},c=(t,n)=>{let{rpcUrl:r}=e.networkRegistry[t],i=n?s(n):void 0,o=i?new a.TronWeb({fullHost:r,privateKey:i}):new a.TronWeb({fullHost:r});return n||o.setAddress(`T9yD14Nj9j7xAB4dbGeiX9h8unkKHxuWwb`),o},l=e=>e?.startsWith(`T`)?e:a.TronWeb.address.fromHex(e),u=e=>e.startsWith(`0x`)?l(e):e,d=e=>{if(e.startsWith(`0x`))return e;if(e.startsWith(`41`))return e.replace(`41`,`0x`);if(e.startsWith(`T`))return d(a.TronWeb.address.toHex(e));throw Error(`Failed to convert address to hex format`)},f=t=>{if(t===e.chainIds.tronNile)return`https://nile.trongrid.io`;if(t===e.chainIds.tronMainnet)return`https://api.trongrid.io`;throw Error(`Unsupported Tron chain for wallet RPC: ${t}`)},p=(e,t)=>e.map(e=>Array.isArray(e)?p(e,t):t(e)),m=(e,t,n)=>{let r=new i.ethers.Interface(e);if(!r.getFunction(t))throw Error(`${t} ABI is missing for Tron call data creation`);let a=p(n,e=>typeof e==`string`&&e.startsWith(`T`)?d(e):e);return r.encodeFunctionData(t,a)},h=(e,t,n)=>e?BigInt(Math.max((e[t]??0)-(e[n]??0),0)):0n,g=(e,t)=>{let n=e.find(e=>e.key===t);if(!n||typeof n.value!=`number`)throw Error(`Missing Tron chain parameter: ${t}`);return BigInt(n.value)},_=async e=>{let t=`${f(e)}/wallet/getchainparameters`,n=await r.httpClient.post(t,{});if(!n?.chainParameter?.length)throw Error(`Failed to fetch Tron chain parameters from wallet RPC`);return n.chainParameter},v=async(e,t)=>{let n=`${f(e)}/wallet/getaccountresource`,i=d(t),a=i.startsWith(`0x`)?`41${i.slice(2)}`:i;return await r.httpClient.post(n,{address:a,visible:!1})},y=async(e,n,r,i,a,s)=>{let c={input:a,callValue:Number(s),feeLimit:t.TRON_DEFAULT_FEE_LIMIT_SUN},[l,u]=await Promise.all([e.transactionBuilder.estimateEnergy(r,``,c,[],i),e.transactionBuilder.triggerConstantContract(r,``,c,[],i)]),d=await _(n),f=g(d,`getEnergyFee`),p=g(d,`getTransactionFee`),m=await v(n,i),y=BigInt(l?.energy_required??u?.energy_used??0),b=h(m,`EnergyLimit`,`EnergyUsed`),x=(y>b?y-b:0n)*f,S=BigInt(Math.ceil((u?.transaction?.raw_data_hex?.length??0)/2)),C=h(m,`freeNetLimit`,`freeNetUsed`)+h(m,`NetLimit`,`NetUsed`),w=x+(S>C?S-C:0n)*p,T=w+w*o/10000n;return T>BigInt(1e9)?BigInt(t.TRON_DEFAULT_FEE_LIMIT_SUN):T},b=e=>{let t=e[0].map(BigInt),n=e[1][0].map(BigInt),r=e[1][1].map(BigInt),i=e[2].map(BigInt),a=e[3].map(BigInt);return{a:t,b:[[n[1],n[0]],[r[1],r[0]]],c:i,publicSignals:a}},x=async(e,t,a,o,s,c,l,u=!1)=>{let d=e.map(String),f=a.map(String),p=o.map(String),m={chainId:l,a:d,b:[t[0].map(String),t[1].map(String)],c:f,inputs:p,externalActionId:String(c),tokenNumber:s.tokenNumber,nullifierAmount:s.nullifierAmount,outputAmount:s.outputAmount,skipLock:u},h=await r.httpClient.post(`${n.ENCLAVE_URL}/sign-proof`,m),{v:g,r:_,s:v}=i.ethers.Signature.from(h.signature.trim());return{v:g,r:_,s:v}},S=e=>{if(e.newRootHash===void 0)throw Error(`circomData.newRootHash is required for Tron transactions`);if(e.insertedLeafIndex===void 0)throw Error(`circomData.insertedLeafIndex is required for Tron transactions`);return[e.rootHashHinkal,e.rootHashHinkalIndex,e.erc20TokenAddresses,e.amountChanges,e.newRootHash,e.inputNullifiers,e.outCommitments,e.encryptedOutputs,e.slippageValues,[e.feeStructure.feeToken,e.feeStructure.flatFee,e.feeStructure.variableRate],e.timeStamp,e.calldataHash,e.emporiumMessage,e.publicSignalCount,e.relay,[e.externalActionData.externalAddress,e.externalActionData.externalActionId,e.externalActionData.externalActionMetadata],[e.hookData.preHookContract,e.hookData.postHookContract,e.hookData.preHookMetadata,e.hookData.postHookMetadata],e.originalSender,e.extraData,e.insertedLeafIndex,e.createBlockedUtxos??!1]},C=e=>{e[1]=[[e[1][0][1],e[1][0][0]],[e[1][1][1],e[1][1][0]]]},w=async(e,t,n,r,i,a=!0,o=!1)=>{if(e){let{a:e,b:s,c,publicSignals:l}=b(t),u=await x(e,s,c,l,n,BigInt(r.externalActionData.externalActionId),i,o),d={v:u.v,r:u.r,s:u.s};return a&&C(t),d}};exports.addressToHexFormat=d,exports.circomDataToArray=S,exports.createTronCallData=m,exports.createTronWeb=c,exports.estimateTronFeeSunWithPadding=y,exports.evmHexToTronBase58Address=l,exports.fetchTronAccountResources=v,exports.fetchTronChainParameters=_,exports.generateProofSignatureRemotely=x,exports.getAvailableResource=h,exports.getChainParameterValue=g,exports.getTronWalletRpcUrl=f,exports.normalizeTronPrivateKey=s,exports.parseZkCalldata=b,exports.reorderZkCallData=w,exports.swapTronBCoordinate=C,exports.toTronBase58IfHex=u;
|