@hinkal/common 0.3.13 → 0.3.14
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 +67 -4
- package/common/src/API/API.cjs +1 -1
- package/common/src/API/API.d.ts +0 -2
- package/common/src/API/API.mjs +92 -94
- package/common/src/API/admin-calls.cjs +1 -1
- package/common/src/API/admin-calls.d.ts +2 -1
- package/common/src/API/admin-calls.mjs +1 -0
- package/common/src/API/evm-token-assets.cjs +1 -1
- package/common/src/API/evm-token-assets.mjs +2 -13
- package/common/src/API/get-token-price-chart-data.cjs +1 -1
- package/common/src/API/get-token-price-chart-data.mjs +2 -2
- package/common/src/API/getTokenPrice.cjs +1 -1
- package/common/src/API/getTokenPrice.mjs +2 -2
- package/common/src/API/index.cjs +1 -1
- package/common/src/API/index.d.ts +1 -0
- package/common/src/API/index.mjs +1 -0
- package/common/src/API/privacy-score-calls.cjs +1 -1
- package/common/src/API/privacy-score-calls.mjs +2 -2
- package/common/src/API/receiveVaultCalls.cjs +1 -1
- package/common/src/API/receiveVaultCalls.d.ts +4 -2
- package/common/src/API/receiveVaultCalls.mjs +8 -4
- package/common/src/constants/chains.constants.cjs +1 -1
- package/common/src/constants/chains.constants.d.ts +2 -0
- package/common/src/constants/chains.constants.mjs +106 -93
- package/common/src/constants/coingecko.constants.cjs +1 -1
- package/common/src/constants/coingecko.constants.d.ts +2 -0
- package/common/src/constants/coingecko.constants.mjs +1 -1
- package/common/src/constants/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-arcTestnet.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-arcTestnet.json.mjs +3 -2
- 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-polygon.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-polygon.json.mjs +2 -1
- package/common/src/constants/deploy-data/deploy-data-solanaDevnet.json.cjs +1 -0
- package/common/src/constants/deploy-data/deploy-data-solanaDevnet.json.mjs +6 -0
- package/common/src/constants/deploy-data/deploy-data-tempo.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-tempo.json.mjs +2 -1
- package/common/src/constants/deploy-data/deploy-data-tronMainnet.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-tronMainnet.json.mjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-tronNile.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-tronNile.json.mjs +1 -1
- package/common/src/constants/deploy-data/index.cjs +1 -1
- package/common/src/constants/deploy-data/index.d.ts +2 -1
- package/common/src/constants/deploy-data/index.mjs +7 -6
- package/common/src/constants/deploy-data/shared-deploy-data-evm.json.cjs +1 -1
- package/common/src/constants/deploy-data/shared-deploy-data-evm.json.mjs +1 -1
- package/common/src/constants/deploy-data/shared-deploy-data-solana.json.cjs +1 -1
- package/common/src/constants/deploy-data/shared-deploy-data-solana.json.mjs +1 -1
- package/common/src/constants/deploy-data/shared-deploy-data-tron.json.cjs +1 -1
- package/common/src/constants/deploy-data/shared-deploy-data-tron.json.mjs +1 -1
- package/common/src/constants/index.cjs +1 -1
- package/common/src/constants/index.mjs +1 -1
- package/common/src/constants/protocol.constants.cjs +2 -2
- package/common/src/constants/protocol.constants.d.ts +0 -2
- package/common/src/constants/protocol.constants.mjs +2 -2
- package/common/src/constants/save-depths.cjs +1 -1
- package/common/src/constants/save-depths.d.ts +1 -0
- package/common/src/constants/save-depths.mjs +1 -0
- package/common/src/constants/server.constants.cjs +1 -1
- package/common/src/constants/server.constants.d.ts +8 -6
- package/common/src/constants/server.constants.mjs +8 -6
- package/common/src/constants/tokens.constants.cjs +1 -1
- package/common/src/constants/tokens.constants.mjs +1 -1
- package/common/src/data-structures/Hinkal/Hinkal.cjs +1 -1
- package/common/src/data-structures/Hinkal/Hinkal.d.ts +4 -4
- package/common/src/data-structures/Hinkal/Hinkal.mjs +37 -37
- package/common/src/data-structures/Hinkal/IHinkal.d.ts +4 -4
- package/common/src/data-structures/Hinkal/handleAutoDepositBack.cjs +1 -1
- package/common/src/data-structures/Hinkal/handleAutoDepositBack.mjs +5 -5
- 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/hinkalDepositAndBridge.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalDepositAndBridge.mjs +55 -54
- package/common/src/data-structures/Hinkal/hinkalDepositAndWithdraw.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalDepositAndWithdraw.mjs +60 -57
- package/common/src/data-structures/Hinkal/hinkalPrivateWallet.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalPrivateWallet.d.ts +1 -1
- package/common/src/data-structures/Hinkal/hinkalPrivateWallet.mjs +29 -29
- package/common/src/data-structures/Hinkal/hinkalProoflessDeposit.utils.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalProoflessDeposit.utils.mjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalProxySwap.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalProxySwap.mjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalReceiveVaultAccount.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalReceiveVaultAccount.mjs +7 -15
- package/common/src/data-structures/Hinkal/hinkalReceiveVaultCreate.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalReceiveVaultCreate.d.ts +2 -2
- package/common/src/data-structures/Hinkal/hinkalReceiveVaultCreate.mjs +24 -28
- package/common/src/data-structures/Hinkal/hinkalReceiveVaultRecover.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalReceiveVaultRecover.mjs +47 -40
- package/common/src/data-structures/Hinkal/hinkalReceiveVaultSettle.d.ts +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaDeposit.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaDeposit.mjs +22 -42
- package/common/src/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.mjs +72 -70
- package/common/src/data-structures/Hinkal/hinkalSolanaProxySend.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaProxySend.mjs +9 -9
- package/common/src/data-structures/Hinkal/hinkalSolanaProxyShield.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaProxyShield.mjs +15 -15
- 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 +47 -45
- package/common/src/data-structures/Hinkal/hinkalSolanaReceiveVault.cjs +1 -0
- package/common/src/data-structures/Hinkal/hinkalSolanaReceiveVault.d.ts +5 -0
- package/common/src/data-structures/Hinkal/hinkalSolanaReceiveVault.mjs +60 -0
- package/common/src/data-structures/Hinkal/hinkalWithdraw.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalWithdraw.mjs +35 -26
- package/common/src/data-structures/Hinkal/index.d.ts +1 -0
- package/common/src/data-structures/Hinkal/resetMerkleTrees.cjs +1 -1
- package/common/src/data-structures/Hinkal/resetMerkleTrees.mjs +13 -13
- package/common/src/error-handling/error-codes.constants.cjs +1 -1
- package/common/src/error-handling/error-codes.constants.d.ts +2 -0
- package/common/src/error-handling/error-codes.constants.mjs +2 -0
- package/common/src/error-handling/get-error.message.cjs +1 -1
- package/common/src/error-handling/get-error.message.mjs +10 -1
- package/common/src/functions/index.cjs +1 -1
- package/common/src/functions/index.mjs +6 -2
- package/common/src/functions/pre-transaction/addressTableLookup.d.ts +1 -0
- package/common/src/functions/pre-transaction/calculateSolanaNullifierCount.cjs +1 -1
- package/common/src/functions/pre-transaction/calculateSolanaNullifierCount.mjs +7 -7
- package/common/src/functions/pre-transaction/constructAdminData.cjs +1 -1
- package/common/src/functions/pre-transaction/constructAdminData.mjs +4 -3
- package/common/src/functions/pre-transaction/sendV0Transaction.cjs +1 -1
- package/common/src/functions/pre-transaction/sendV0Transaction.d.ts +1 -0
- package/common/src/functions/pre-transaction/sendV0Transaction.mjs +22 -2
- package/common/src/functions/private-wallet/emporium.helpers.cjs +1 -1
- package/common/src/functions/private-wallet/emporium.helpers.mjs +15 -15
- package/common/src/functions/snarkjs/fetchOnChainRootHashes.cjs +1 -1
- package/common/src/functions/snarkjs/fetchOnChainRootHashes.mjs +6 -6
- package/common/src/functions/utils/addresses.cjs +1 -1
- package/common/src/functions/utils/addresses.d.ts +4 -0
- package/common/src/functions/utils/addresses.mjs +17 -17
- package/common/src/functions/utils/admin-dimensions.cjs +1 -0
- package/common/src/functions/utils/admin-dimensions.d.ts +4 -0
- package/common/src/functions/utils/admin-dimensions.mjs +206 -0
- package/common/src/functions/utils/create-provider.cjs +1 -1
- package/common/src/functions/utils/create-provider.mjs +5 -1
- package/common/src/functions/utils/fees.utils.cjs +1 -1
- package/common/src/functions/utils/fees.utils.d.ts +2 -0
- package/common/src/functions/utils/fees.utils.mjs +31 -33
- package/common/src/functions/utils/gas-token.utils.cjs +1 -0
- package/common/src/functions/utils/gas-token.utils.d.ts +3 -0
- package/common/src/functions/utils/gas-token.utils.mjs +7 -0
- package/common/src/functions/utils/getUtxosFromReceiptSolana.d.ts +9 -4
- package/common/src/functions/utils/index.cjs +1 -1
- package/common/src/functions/utils/index.d.ts +4 -0
- package/common/src/functions/utils/index.mjs +5 -1
- package/common/src/functions/utils/publicBalance.utils.cjs +1 -1
- package/common/src/functions/utils/publicBalance.utils.mjs +7 -7
- package/common/src/functions/utils/receive-vault-account.utils.cjs +1 -1
- package/common/src/functions/utils/receive-vault-account.utils.d.ts +2 -1
- package/common/src/functions/utils/receive-vault-account.utils.mjs +16 -15
- package/common/src/functions/utils/receive-vault-scan.utils.cjs +1 -1
- package/common/src/functions/utils/receive-vault-scan.utils.mjs +37 -42
- package/common/src/functions/utils/receive-vault-solana.utils.cjs +1 -0
- package/common/src/functions/utils/receive-vault-solana.utils.d.ts +8 -0
- package/common/src/functions/utils/receive-vault-solana.utils.mjs +45 -0
- package/common/src/functions/utils/receive-vault.utils.cjs +2 -2
- package/common/src/functions/utils/receive-vault.utils.d.ts +13 -11
- package/common/src/functions/utils/receive-vault.utils.mjs +97 -82
- package/common/src/functions/utils/token-check.utils.d.ts +1 -0
- package/common/src/functions/utils/wallet-token-discovery.utils.cjs +1 -1
- package/common/src/functions/utils/wallet-token-discovery.utils.d.ts +5 -0
- package/common/src/functions/utils/wallet-token-discovery.utils.mjs +25 -31
- package/common/src/functions/web3/getContractMetadata.cjs +1 -1
- package/common/src/functions/web3/getContractMetadata.mjs +6 -6
- package/common/src/functions/web3/index.cjs +1 -1
- package/common/src/functions/web3/index.mjs +1 -1
- package/common/src/types/admin.types.cjs +1 -1
- package/common/src/types/admin.types.d.ts +64 -9
- package/common/src/types/admin.types.mjs +10 -2
- package/common/src/types/connector.types.d.ts +1 -0
- package/common/src/types/ethereum-network.types.d.ts +1 -0
- package/common/src/types/external-action.types.cjs +1 -1
- package/common/src/types/external-action.types.d.ts +2 -1
- package/common/src/types/external-action.types.mjs +1 -1
- package/common/src/types/receive-vault.types.cjs +1 -1
- package/common/src/types/receive-vault.types.d.ts +15 -20
- package/common/src/types/receive-vault.types.mjs +4 -2
- package/common/src/webworker/{logError-BeXPKuv9.js → logError-C-ej_TX9.js} +1 -1
- package/common/src/webworker/package.json +1 -1
- 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-CE-rYA3W.js +1 -0
- package/common/src/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.cjs +1 -1
- package/common/src/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.mjs +1 -1
- package/common/src/webworker/zkProofWorkerNode.cjs +1 -1
- package/index.cjs +1 -1
- package/index.mjs +3 -2
- package/internal/monitorConnectedAddress.cjs +1 -1
- package/internal/monitorConnectedAddress.d.ts +1 -1
- package/internal/monitorConnectedAddress.mjs +1 -3
- package/package.json +1 -1
- package/providers/prepareEthersHinkal.cjs +1 -1
- package/providers/prepareEthersHinkal.mjs +1 -1
- package/providers/prepareSolanaHinkal.cjs +1 -1
- package/providers/prepareSolanaHinkal.mjs +1 -1
- package/providers/prepareTronHinkal.cjs +1 -1
- package/providers/prepareTronHinkal.mjs +1 -1
- package/providers/prepareWagmiHinkal.cjs +1 -1
- package/providers/prepareWagmiHinkal.mjs +1 -1
- package/services/Hinkal.cjs +1 -1
- package/services/Hinkal.d.ts +6 -2
- package/services/Hinkal.mjs +74 -51
- package/types/IHinkal.d.ts +6 -1
- package/types/index.cjs +1 -1
- package/types/index.d.ts +1 -0
- package/types/index.mjs +2 -0
- package/types/receive-vault.types.cjs +1 -0
- package/types/receive-vault.types.d.ts +14 -0
- package/types/receive-vault.types.mjs +2 -0
- package/common/src/API/getOdosPriceForToken.cjs +0 -1
- package/common/src/API/getOdosPriceForToken.d.ts +0 -1
- package/common/src/API/getOdosPriceForToken.mjs +0 -14
- package/common/src/webworker/workerProxy-DF35H7vU.js +0 -1
|
@@ -8,7 +8,6 @@ export declare const API_CONFIG: {
|
|
|
8
8
|
callOkxAPI: string;
|
|
9
9
|
callNearIntentsQuote: string;
|
|
10
10
|
callNearIntentsTokens: string;
|
|
11
|
-
getOdosPriceForToken: (chainId: number, tokenAddress: string) => string;
|
|
12
11
|
monitor: string;
|
|
13
12
|
monitorBatch: string;
|
|
14
13
|
checkRisk: (address: string) => string;
|
|
@@ -25,6 +24,8 @@ export declare const API_CONFIG: {
|
|
|
25
24
|
addTemporaryWalletNonce: string;
|
|
26
25
|
registerReceiveVault: string;
|
|
27
26
|
receiveVaultAccount: string;
|
|
27
|
+
receiveVaultNextIndex: string;
|
|
28
|
+
checkReceiveVault: string;
|
|
28
29
|
listReceiveVaults: string;
|
|
29
30
|
markReceiveVaultBlocked: string;
|
|
30
31
|
markReceiveVaultSettled: string;
|
|
@@ -67,7 +68,6 @@ export declare const API_CONFIG: {
|
|
|
67
68
|
};
|
|
68
69
|
export declare const RELAYER_CONFIG: {
|
|
69
70
|
getGasEstimate: (tokenAddress: string, externalActionId: string, erc20TokenAddressLength: number, gasAmount?: number) => string;
|
|
70
|
-
getTokenPrices: string;
|
|
71
71
|
TRANSACT: string;
|
|
72
72
|
TRANSACT_BATCH: string;
|
|
73
73
|
SOLANA_TRANSACT: string;
|
|
@@ -77,14 +77,16 @@ export declare const RELAYER_CONFIG: {
|
|
|
77
77
|
getIdleRelay: string;
|
|
78
78
|
emitTxPublicData: string;
|
|
79
79
|
emitReferralTx: string;
|
|
80
|
+
emitOnboardingEvent: string;
|
|
80
81
|
getScheduledTransactionById: (scheduleId: string) => string;
|
|
81
82
|
getScheduledTransactionsNullifierIndexes: string;
|
|
82
|
-
getTokenPriceChartData: string;
|
|
83
|
-
getTokenPreviousDayPrices: string;
|
|
84
|
-
getPrivateTransactionsRatio: (hashedOwner: string) => string;
|
|
85
|
-
savePrivacyScoreAndGetPrivacyRank: string;
|
|
86
83
|
};
|
|
87
84
|
export declare const DATA_SERVER_CONFIG: {
|
|
85
|
+
getPrivateTransactionsRatio: (hashedOwner: string) => string;
|
|
86
|
+
savePrivacyScoreAndGetPrivacyRank: string;
|
|
87
|
+
getTokenPrices: string;
|
|
88
|
+
getTokenPriceChartData: string;
|
|
89
|
+
getTokenPreviousDayPrices: string;
|
|
88
90
|
createPresaleReferral: string;
|
|
89
91
|
updatePresaleReferralList: string;
|
|
90
92
|
getUserAnalytics: string;
|
|
@@ -9,7 +9,6 @@ var n = { ROUTES: {
|
|
|
9
9
|
callOkxAPI: "/OkxSwapData",
|
|
10
10
|
callNearIntentsQuote: "/near-intents/quote",
|
|
11
11
|
callNearIntentsTokens: "/near-intents/tokens",
|
|
12
|
-
getOdosPriceForToken: (e, t) => `/getOdosPriceForToken/${e}/${t}`,
|
|
13
12
|
monitor: "/monitor",
|
|
14
13
|
monitorBatch: "/monitor/batch",
|
|
15
14
|
checkRisk: (e) => `/check-risk/${e}`,
|
|
@@ -26,6 +25,8 @@ var n = { ROUTES: {
|
|
|
26
25
|
addTemporaryWalletNonce: "/temporary-wallets/add-nonce",
|
|
27
26
|
registerReceiveVault: "/receive-vault/register",
|
|
28
27
|
receiveVaultAccount: "/receive-vault/account",
|
|
28
|
+
receiveVaultNextIndex: "/receive-vault/next-index",
|
|
29
|
+
checkReceiveVault: "/receive-vault/check",
|
|
29
30
|
listReceiveVaults: "/receive-vault/list",
|
|
30
31
|
markReceiveVaultBlocked: "/receive-vault/blocked",
|
|
31
32
|
markReceiveVaultSettled: "/receive-vault/settled",
|
|
@@ -66,7 +67,6 @@ var n = { ROUTES: {
|
|
|
66
67
|
evmNftAssets: "/evm-nft-assets"
|
|
67
68
|
} }, r = {
|
|
68
69
|
getGasEstimate: (e, t, n, r) => `/gas-estimation/${e}/${n}/${t}/${r}`,
|
|
69
|
-
getTokenPrices: "/get-token-prices",
|
|
70
70
|
TRANSACT: "/general-transact",
|
|
71
71
|
TRANSACT_BATCH: "/general-transact-batch",
|
|
72
72
|
SOLANA_TRANSACT: "/solana-transact",
|
|
@@ -76,13 +76,15 @@ var n = { ROUTES: {
|
|
|
76
76
|
getIdleRelay: "/get-idle-relay",
|
|
77
77
|
emitTxPublicData: "/emit-tx-public-data",
|
|
78
78
|
emitReferralTx: "/emit-referral-tx",
|
|
79
|
+
emitOnboardingEvent: "/emit-onboarding-event",
|
|
79
80
|
getScheduledTransactionById: (e) => `/scheduled-transactions/${e}`,
|
|
80
|
-
getScheduledTransactionsNullifierIndexes: "/scheduled-transactions/nullifier-indexes"
|
|
81
|
+
getScheduledTransactionsNullifierIndexes: "/scheduled-transactions/nullifier-indexes"
|
|
82
|
+
}, i = {
|
|
83
|
+
getPrivateTransactionsRatio: (e) => `/get-private-transactions-ratio/${e}`,
|
|
84
|
+
savePrivacyScoreAndGetPrivacyRank: "/save-privacy-score-and-get-privacy-rank",
|
|
85
|
+
getTokenPrices: "/get-token-prices",
|
|
81
86
|
getTokenPriceChartData: "/get-token-price-chart-data",
|
|
82
87
|
getTokenPreviousDayPrices: "/get-token-previous-day-prices",
|
|
83
|
-
getPrivateTransactionsRatio: (e) => `/get-private-transactions-ratio/${e}`,
|
|
84
|
-
savePrivacyScoreAndGetPrivacyRank: "/save-privacy-score-and-get-privacy-rank"
|
|
85
|
-
}, i = {
|
|
86
88
|
createPresaleReferral: "/create-presale-referral",
|
|
87
89
|
updatePresaleReferralList: "/update-presale-referral-list",
|
|
88
90
|
getUserAnalytics: "/get-user-analytics",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`./chains.constants.cjs`);var t=new Set([`0x23d7cffd0876f3abb6b074287ba2aeefbc83825d`,`0xd2a530170d71a9cfe1651fb468e2b98f7ed7456b`]);e.chainIds.ethMainnet,e.chainIds.arbMainnet,e.chainIds.optimism,e.chainIds.optimismTest,e.chainIds.base,e.chainIds.arcTestnet,e.chainIds.tempo,e.chainIds.sepoliaTestnet,e.chainIds.polygon,e.chainIds.solanaMainnet,e.chainIds.solanaLocalnet,e.chainIds.bnbMainnet,e.chainIds.avalanche,e.chainIds.cronos,e.chainIds.monad,e.chainIds.plasma,e.chainIds.ink,e.chainIds.hyperEvm,exports.NON_STANDARD_STORAGE_TOKENS=t;
|
|
1
|
+
const e=require(`./chains.constants.cjs`);var t=new Set([`0x23d7cffd0876f3abb6b074287ba2aeefbc83825d`,`0xd2a530170d71a9cfe1651fb468e2b98f7ed7456b`]);e.chainIds.ethMainnet,e.chainIds.arbMainnet,e.chainIds.optimism,e.chainIds.optimismTest,e.chainIds.base,e.chainIds.arcTestnet,e.chainIds.tempo,e.chainIds.sepoliaTestnet,e.chainIds.polygon,e.chainIds.solanaMainnet,e.chainIds.solanaLocalnet,e.chainIds.solanaDevnet,e.chainIds.bnbMainnet,e.chainIds.avalanche,e.chainIds.cronos,e.chainIds.monad,e.chainIds.plasma,e.chainIds.ink,e.chainIds.hyperEvm,exports.NON_STANDARD_STORAGE_TOKENS=t;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { chainIds as e } from "./chains.constants.mjs";
|
|
2
2
|
//#region libs/shared/common/src/constants/tokens.constants.ts
|
|
3
3
|
var t = new Set(["0x23d7cffd0876f3abb6b074287ba2aeefbc83825d", "0xd2a530170d71a9cfe1651fb468e2b98f7ed7456b"]);
|
|
4
|
-
e.ethMainnet, e.arbMainnet, e.optimism, e.optimismTest, e.base, e.arcTestnet, e.tempo, e.sepoliaTestnet, e.polygon, e.solanaMainnet, e.solanaLocalnet, e.bnbMainnet, e.avalanche, e.cronos, e.monad, e.plasma, e.ink, e.hyperEvm;
|
|
4
|
+
e.ethMainnet, e.arbMainnet, e.optimism, e.optimismTest, e.base, e.arcTestnet, e.tempo, e.sepoliaTestnet, e.polygon, e.solanaMainnet, e.solanaLocalnet, e.solanaDevnet, e.bnbMainnet, e.avalanche, e.cronos, e.monad, e.plasma, e.ink, e.hyperEvm;
|
|
5
5
|
//#endregion
|
|
6
6
|
export { t as NON_STANDARD_STORAGE_TOKENS };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../functions/utils/serialize.utils.cjs`),t=require(`../../constants/chains.constants.cjs`),n=require(`../../constants/protocol.constants.cjs`),r=require(`../../types/hinkal.types.cjs`),i=require(`../../crypto/poseidon.cjs`),a=require(`../../error-handling/error-codes.constants.cjs`),o=require(`../crypto-keys/keys.cjs`),s=require(`../../API/scheduled-transactions-calls.cjs`),c=require(`../../API/API.cjs`),l=require(`../../functions/utils/token-check.utils.cjs`),u=require(`../../functions/web3/events/getShieldedBalance.cjs`),d=require(`../../functions/web3/getContractMetadata.cjs`),f=require(`../../functions/snarkjs/fetchOnChainRootHashes.cjs`),p=require(`./hinkalDeposit.cjs`),m=require(`../../functions/utils/cacheDevice.utils.cjs`),h=require(`../../providers/SolanaProviderAdapter.cjs`),g=require(`../../functions/utils/enclave-signature-storage.cjs`),_=require(`../../functions/utils/mnemonics.cjs`),v=require(`./hinkalDepositAndWithdraw.cjs`),y=require(`./hinkalSolanaDeposit.cjs`),b=require(`./hinkalSwap.cjs`),x=require(`./hinkalWithdraw.cjs`),S=require(`../merkle-tree/MerkleTree.cjs`);require(`../merkle-tree/index.cjs`);const C=require(`./resetMerkleTrees.cjs`);require(`../../API/index.cjs`);const w=require(`../MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.cjs`),T=require(`./hinkalPrivateWallet.cjs`),E=require(`./hinkalReceiveVaultAccount.cjs`),D=require(`./hinkalReceiveVaultCreate.cjs`),O=require(`./hinkalReceiveVaultRecover.cjs`),k=require(`./hinkalGetRecipientInfo.cjs`),A=require(`./hinkalSignSubAccount.cjs`),j=require(`./hinkalActionReceive.cjs`),M=require(`./hinkalProoflessDeposit.cjs`),N=require(`./hinkalProxySwap.cjs`),P=require(`./hinkalTransfer.cjs`),F=require(`./hinkalProxyToPrivate.cjs`),I=require(`../../providers/TronProviderAdapter.cjs`),L=require(`./hinkalSolanaDepositAndWithdraw.cjs`),R=require(`./hinkalSolanaWithdraw.cjs`),z=require(`./hinkalSolanaTransfer.cjs`),B=require(`./hinkalSolanaSwap.cjs`),V=require(`./hinkalSolanaProxySwap.cjs`),H=require(`./hinkalSolanaProxyShield.cjs`),U=require(`./hinkalDepositAndBridge.cjs`),W=require(`./hinkalBridgePrivateToPrivate.cjs`),G=require(`./hinkalNearDepositAndBridge.cjs`),K=require(`./hinkalClaimUtxo.cjs`),q=require(`./hinkalSolanaProoflessDeposit.cjs`),J=require(`./hinkalSolanaClaimUtxo.cjs`),Y=require(`./hinkalWithdrawStuckUtxos.cjs`),X=require(`../private-balances/HinkalPrivateBalanceController.cjs`);require(`../private-balances/index.cjs`);const Z=require(`./hinkalProxySend.cjs`);let Q=require(`@solana/web3.js`);var $=class{ethereumProviderAdapter;solanaProviderAdapter;tronProviderAdapter;userKeys;legacySignature;merkleTreeHinkalByChain={};nullifiersByChain={};encryptedOutputsByChain={};commitmentsSnapshotServiceByChain={};nullifierSnapshotServiceByChain={};privateBalances=new X.HinkalPrivateBalanceController(this);utxoUtils;lastCallState=new Map;cacheDevice;balanceFetchingMutexByChain=new Map;generateProofRemotely;disableMerkleTreeUpdates;allowParallelBalanceLocalDecryption;constructor(e){this.userKeys=new o.UserKeys(void 0),e?.tronChainOverride&&t.setHinkalTronChainId(e.tronChainOverride),t.HINKAL_SUPPORTED_CHAINS.forEach(e=>{this.merkleTreeHinkalByChain[e]=S.MerkleTree.create(i.poseidonFunction,0n),this.nullifiersByChain[e]=new Set,this.encryptedOutputsByChain[e]=[]}),this.generateProofRemotely=e?.generateProofRemotely??!0,this.utxoUtils=new w.MultiThreadedUtxoUtils,this.cacheDevice=m.createCacheDevice(e),this.disableMerkleTreeUpdates=e?.disableMerkleTreeUpdates??!1,this.allowParallelBalanceLocalDecryption=e?.allowParallelBalanceLocalDecryption??!1}enforceRateLimit(t,n,r=1e3){let i=Date.now(),a=e.CustomJSONStringify(n),o=this.lastCallState.get(t);if(o&&o.argsKey===a&&i-o.timestamp<r)throw Error(`${t} was already called with the same arguments`);this.lastCallState.set(t,{timestamp:i,argsKey:a})}getProviderAdapter(e){let n=e;n||=this.ethereumProviderAdapter?t.chainIds.ethMainnet:this.solanaProviderAdapter?t.currentSolanaChainId:t.chainIds.tronMainnet;let r;if(r=t.isSolanaLike(n)?this.solanaProviderAdapter:t.isTronLike(n)?this.tronProviderAdapter:this.ethereumProviderAdapter,!r)throw Error(`ProviderAdapter is not initialized`);return r}async initProviderAdapter(e,n){let r=t.chainIds.ethMainnet;n instanceof h.SolanaProviderAdapter?r=t.currentSolanaChainId:n instanceof I.TronProviderAdapter&&(r=t.currentTronChainId),await this.updateProviderAdapter(r,n),n.initConnector(e);let i=await n.connectAndPatchProvider(e);await n.init(i),await this.setListeners()}getSigningMessage(e=r.LoginMessageMode.SDK){switch(e){case r.LoginMessageMode.SDK:return n.SDK_SIGNING_MESSAGE;case r.LoginMessageMode.HINKAL_DAPP:default:return n.DAPP_SIGNING_MESSAGE}}async signHinkalMessage(e=r.LoginMessageMode.SDK){let t=this.getSigningMessage(e);return this.getProviderAdapter().signMessage(t)}async signSolanaLedgerMessage(){let e=new Q.Transaction({blockhash:n.DETERMINISTIC_SOLANA_LEDGER_BLOCKHASH,lastValidBlockHeight:n.DETERMINISTIC_SOLANA_LEDGER_LAST_VALID_BLOCK_HEIGHT,feePayer:this.getSolanaPublicKey()}),t=await this.getProviderAdapter().signTransactionWithoutBroadcast?.(e);if(!t)throw Error(`Failed to sign transaction without broadcast`);return t}async initUserKeys(e=r.LoginMessageMode.SDK){this.userKeys=new o.UserKeys(await this.signHinkalMessage(e))}initUserKeysWithSignature(e){this.userKeys=new o.UserKeys(e)}initUserKeysWithNullifyingKey(e){this.userKeys=new o.UserKeys(void 0,e)}async initUserKeysFromSeedPhrases(e){let t=_.generateHashFromSeedPhrases(e);this.userKeys=new o.UserKeys(t)}async initUserKeysWithEnclaveSignature(e=r.LoginMessageMode.SDK){if(!await this.getEthereumAddress())throw Error(`Connected address not found`);let t=this.getProviderAdapter().isSolanaLedger?.()?await this.signSolanaLedgerMessage():await this.getProviderAdapter().signMessage(this.getSigningMessage(e)),n=await this.storeAndGetInitialSignature(t);this.initUserKeysWithSignature(n??t)}async storeAndGetInitialSignature(e){let t=await this.getEthereumAddress();if(!t)throw Error(`Connected address not found`);return g.storeAndGetSignatureFromEnclave(t,e)}async resetMerkle(e){this.disableMerkleTreeUpdates||(e?.every(e=>this.isSelectedNetworkSupported(e))??!0)&&await C.resetMerkleTrees(this,e)}getTronWeb(){let e=this.tronProviderAdapter;if(!e)throw Error(`Tron provider adapter not initialized`);if(!(e instanceof I.TronProviderAdapter))throw Error(`Tron provider adapter is not a TronProviderAdapter`);let t=e.getTronWeb();if(!t)throw Error(`TronWeb not available`);return t}getSupportedChains(){return this.ethereumProviderAdapter&&this.solanaProviderAdapter?t.WALLET_SUPPORTED_CHAINS:this.ethereumProviderAdapter?t.HINKAL_SUPPORTED_CHAINS.filter(e=>!t.isSolanaLike(e)&&!t.isTronLike(e)):this.solanaProviderAdapter?t.HINKAL_SUPPORTED_CHAINS.filter(e=>t.isSolanaLike(e)):this.tronProviderAdapter?[t.currentTronChainId]:[]}async waitForTransaction(e,t,n=1){return!!await this.getProviderAdapter(e).waitForTransaction(e,t,n)}getContract(e,t,n=void 0){return this.getProviderAdapter(e).getContract(e,t,n)}getContractWithFetcherByChainId(e,t,n=void 0){return d.getContractWithFetcherByChainId(e,t,n)}async signMessage(e){return await this.getProviderAdapter().signMessage(e)}async signTypedData(e,t,n){return await this.getProviderAdapter().signTypedData(e,t,n)}async signWithSubAccount(e,t,n,r){return A.hinkalSignSubAccount(e,t,n,r)}getContractWithSigner(e,t,n=``){return this.getProviderAdapter(e).getContractWithSigner(e,t,n)}getContractWithFetcher(e,t,n=``){return this.getProviderAdapter(e).getContractWithFetcher(e,t,n)}isSelectedNetworkSupported(e){return!!t.networkRegistry[e]}async switchNetwork(e){let n=this.getProviderAdapter(),r=n.getChainId(),i=r!==void 0&&t.isSameOnchainNetwork(e.chainId,r);if(!(e.chainId===r||i))try{await n.switchNetwork(e)}catch{throw Error(a.transactionErrorCodes.FAILED_TO_SWITCH_NETWORKS)}}async disconnectFromConnector(){await this.ethereumProviderAdapter?.disconnectFromConnector(),await this.solanaProviderAdapter?.disconnectFromConnector(),await this.tronProviderAdapter?.disconnectFromConnector()}async resetProviderAdapters(){this.ethereumProviderAdapter?.release(),this.solanaProviderAdapter?.release(),this.tronProviderAdapter?.release(),this.ethereumProviderAdapter=void 0,this.solanaProviderAdapter=void 0,this.tronProviderAdapter=void 0}async updateProviderAdapter(e,n){try{t.isSolanaLike(e)?(this.solanaProviderAdapter&&this.solanaProviderAdapter.release(),this.solanaProviderAdapter=n):t.isTronLike(e)?(this.tronProviderAdapter&&this.tronProviderAdapter.release(),this.tronProviderAdapter=n):(this.ethereumProviderAdapter&&this.ethereumProviderAdapter.release(),this.ethereumProviderAdapter=n)}catch(e){throw console.error(e),Error(`updateProviderAdapter failed, please try again.`)}}async setListeners(){this.ethereumProviderAdapter?.setChainEventListener({onAccountChanged:()=>{this.onAccountChanged()},onChainChanged:e=>{this.onChainChanged(e)}}),this.solanaProviderAdapter?.setChainEventListener({onAccountChanged:()=>{this.onAccountChanged()},onChainChanged:e=>{this.onChainChanged(e)}}),this.tronProviderAdapter?.setChainEventListener({onAccountChanged:()=>{this.onAccountChanged()},onChainChanged:e=>{this.onChainChanged(e)}})}async onAccountChanged(){await this.ethereumProviderAdapter?.onAccountChanged(),await this.solanaProviderAdapter?.onAccountChanged(),await this.tronProviderAdapter?.onAccountChanged();let e=r.EventType.AccountChanged;typeof document<`u`?document?.dispatchEvent(new Event(e)):process?.emit(`message`,e,void 0)}async onChainChanged(e){e?await this.getProviderAdapter(e).onChainChanged(e):await this.disconnectFromConnector()}async monitorConnectedAddress(e){await c.API.monitor(await this.getEthereumAddressByChain(e))}async getTotalBalances(e,t,n,r=!1,i,a=!1){let o=t??this.userKeys,s=new Map(await Promise.all(e.map(async e=>[e,n??await this.getEthereumAddressByChain(e)])));return u.getShieldedBalances(this,s,o.getShieldedPrivateKey(),o.getShieldedPublicKey(),r,i,a)}async getStuckShieldedBalances(e,t,n,r=!1,i=!1){let a=await this.getTotalBalances(e,t,n,r,i,!0);return new Map([...a].map(([e,t])=>[e,t.filter(e=>e.balance>0n)]))}get privateBalancesWithUSD(){return this.privateBalances.getSnapshot()}onPrivateBalancesWithUSDChange(e){return this.privateBalances.onPrivateBalancesWithUSDChange(e)}async getHinkalTreeRootHash(e){return(await f.fetchOnChainRootHashes(e)).hinkalRootHash}async resetMerkleTreesIfNecessary(e){let t=(await Promise.all((e??this.getSupportedChains()).map(async e=>{if(this.generateProofRemotely)return{chainId:e,needsReset:!1};let t=await this.getHinkalTreeRootHash(e);return{chainId:e,needsReset:BigInt(t)!==this.merkleTreeHinkalByChain[e].getRootHash()}}))).filter(e=>e.needsReset).map(e=>e.chainId);t.length>0&&(console.log(`resetting merkle tree in resetMerkleTreesIfNecessary for chains:`,t),await this.resetMerkle(t))}async getEthereumAddress(){let e=this.ethereumProviderAdapter??this.solanaProviderAdapter??this.tronProviderAdapter;if(!e)throw Error(`No provider adapter initialized`);return e.getAddress()}getEthereumAddressByChain(e){return this.getProviderAdapter(e).getAddress()}async getRandomRelay(e,t=!1){return(await c.API.getIdleRelay(e,t)).relay}getGasPrice(e){let t=this.getProviderAdapter(e);if(!t)throw Error(`Illegal State of providerAdapter in Hinkal: no providerAdapter initialized`);return t.getGasPrice(e)}getAPI(){return c.API}snapshotsClearInterval(){this.getSupportedChains().forEach(e=>{this.commitmentsSnapshotServiceByChain[e]?.intervalClear(),this.nullifierSnapshotServiceByChain[e]?.intervalClear()})}async destroy(){this.snapshotsClearInterval(),this.privateBalances.dispose(),await this.resetProviderAdapters()}getRecipientInfo(){return k.getRecipientInfo(this)}async deposit(e,t,n=!0,r=!1){return p.hinkalDeposit(this,e,t,n,r)}async depositSolana(e,t,n=!1){return y.hinkalSolanaDeposit(this,e,t,n)}async depositForOther(e,t,n,r=!0,i=!1,a){return this.enforceRateLimit(this.depositForOther.name,[e,t,n]),p.hinkalDepositForOther(this,e,t,n,r,i,a)}async depositSolanaForOther(e,t,n,r=!1,i=0n,a){return this.enforceRateLimit(this.depositSolanaForOther.name,[e,t,n]),y.hinkalSolanaDepositForOther(this,e,t,n,r,i,a)}async depositAndWithdraw(e,n,r,i,a,o,s,c,u=!0){return t.isSolanaLike(l.validateAndGetChainId([e]))?L.hinkalSolanaDepositAndWithdraw(this,e,n,r,i,a,o,s,c):v.hinkalDepositAndWithdraw(this,e,n,r,i,a,o,s,c,u)}async claimUtxo(e,n,r,i){return t.isSolanaLike(l.validateAndGetChainId([e]))?J.hinkalSolanaClaimUtxo(this,e,n,r,i):K.hinkalClaimUtxo(this,e,n,r,i)}async depositAndBridge(e,t,n,r,i,a,o,s=!0){return U.hinkalDepositAndBridge(this,e,t,n,r,i,a,o,s)}async bridgePrivateToPrivate(e,t,n,r,i,a,o,s){return this.enforceRateLimit(this.bridgePrivateToPrivate.name,[e,t,n]),W.hinkalBridgePrivateToPrivate(this,e,t,n,r,i,a,o,s)}async checkSendTransactionStatus(e){return s.getScheduledTransactionById(e)}async nearDepositAndBridge(e,t,n,r,i,a,o,s,c){return this.enforceRateLimit(this.nearDepositAndBridge.name,[e,t,n,r]),G.hinkalNearDepositAndBridge(this,e,t,n,r,i,a,o,s,c)}async prooflessDeposit(e,n,i,a,o=!1,s=r.zeroProoflessFeeStructure,c=``,u,d=!1,f=!1){return t.isSolanaLike(l.validateAndGetChainId(e))?q.hinkalSolanaProoflessDeposit(this,e,n,i,a,o,u,f):M.hinkalProoflessDeposit(this,e,n,i,a,o,s,c,u,d,f)}getSolanaProgram(e){if(!this.solanaProviderAdapter)throw Error(`No provider adapter initialized`);if(!(`getSolanaProgram`in this.solanaProviderAdapter))throw Error(`Current provider adapter is not a Solana provider adapter`);return this.solanaProviderAdapter.getSolanaProgram(e)}getSolanaPublicKey(){if(!this.solanaProviderAdapter)throw Error(`No provider adapter initialized`);if(!(`getSolanaPublicKey`in this.solanaProviderAdapter))throw Error(`Current provider adapter is not a Solana provider adapter`);return this.solanaProviderAdapter.getSolanaPublicKey()}async transfer(e,n,r,i,a,o){return this.enforceRateLimit(this.transfer.name,[e,n,r]),t.isSolanaLike(l.validateAndGetChainId(e))?z.hinkalSolanaTransfer(this,e,n,r,i,a,o):P.hinkalTransfer(this,e,n,r,i,a,o)}async withdraw(e,n,r,i,a,o,s,c){return t.isSolanaLike(l.validateAndGetChainId(e))?R.hinkalSolanaWithdraw(this,e,n,r,a,o,s,c):x.hinkalWithdraw(this,e,n,r,i,a,o,s,c)}async withdrawStuckUtxos(e,t){return Y.hinkalWithdrawStuckUtxos(this,e,t)}async createReceiveAddress(e,t,n=!1){return D.hinkalReceiveVaultCreate(this,e,t,n)}async getReceiveVaultAccount(){return E.hinkalGetReceiveVaultAccount(this)}async recoverReceiveVault(e,t,n,r,i=!1){return O.hinkalReceiveVaultRecover(this,e,t,n,r,i)}async swap(e,n,r,i,a,o,s,c){return t.isSolanaLike(l.validateAndGetChainId(e))?this.swapSolana(e,n,i,a,o,c):b.hinkalSwap(this,e,n,r,i,a,o,s,c)}async swapSolana(e,t,n,r,i,a){let o=JSON.parse(n),s=BigInt(o.swapperAccountSalt),{instructionLists:c,addressLookupTableAccount:l}=o.data;return B.hinkalSolanaSwap(this,e,t,s,c,l,r,i,a)}async actionReceive(e,n,r,i,a,o){if(!a)throw Error(`subAccount is required`);return t.isSolanaLike(l.validateAndGetChainId(e))?H.hinkalSolanaProxyShield(this,e[0],n[0],a,void 0,!1,i?.variableRate,o):j.hinkalActionReceive(this,e,n,r,i,a,o)}async actionPrivateWallet(e,t,n,r,i,a,o,s,c,l,u=!1,d,f,p){return this.enforceRateLimit(this.actionPrivateWallet.name,[e,t,n,r,i,a,o,s,c,p]),T.hinkalPrivateWallet(this,e,t,n,r,i,a,o,s,c,l,u,d,f,p)}async proxySwap(e,n,r,i,a,o,s,c,u=!1,d,f,p,m){return t.isSolanaLike(l.validateAndGetChainId(e))?V.hinkalSolanaProxySwap(this,e,n,i,o,r,a,s,c,m,f,p):N.hinkalProxySwap(this,e,n,r,i,a,o,s,c,u,d,m,f,p)}async proxyToPrivate(e,n,r,i,a,o,s){return t.isSolanaLike(l.validateAndGetChainId(e))?(this.enforceRateLimit(this.proxyToPrivate.name,[e[0],n[0],r,i]),H.hinkalSolanaProxyShield(this,e[0],n[0],r,i,!1,o?.variableRate,s)):F.hinkalProxyToPrivate(this,e,n,i,a,o,r,s)}async proxySend(e,t,n,r,i,a,o){return Z.hinkalProxySend(this,e,t,n,r,i,a,o)}areMerkleTreeUpdatesDisabled(){return this.disableMerkleTreeUpdates}updateMerkleTreeUpdates(e){this.disableMerkleTreeUpdates=e}};exports.Hinkal=$;
|
|
1
|
+
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../functions/utils/serialize.utils.cjs`),t=require(`../../constants/chains.constants.cjs`),n=require(`../../constants/protocol.constants.cjs`),r=require(`../../types/hinkal.types.cjs`),i=require(`../../crypto/poseidon.cjs`),a=require(`../../error-handling/error-codes.constants.cjs`),o=require(`../crypto-keys/keys.cjs`),s=require(`../../API/scheduled-transactions-calls.cjs`),c=require(`../../functions/web3/getContractMetadata.cjs`),l=require(`../../API/API.cjs`),u=require(`../../functions/utils/token-check.utils.cjs`),d=require(`../../functions/web3/events/getShieldedBalance.cjs`),f=require(`../../functions/snarkjs/fetchOnChainRootHashes.cjs`),p=require(`./hinkalDeposit.cjs`),m=require(`../../functions/utils/cacheDevice.utils.cjs`),h=require(`../../providers/SolanaProviderAdapter.cjs`),g=require(`../../functions/utils/enclave-signature-storage.cjs`),_=require(`../../functions/utils/mnemonics.cjs`),v=require(`./hinkalDepositAndWithdraw.cjs`),y=require(`./hinkalSolanaDeposit.cjs`),b=require(`./hinkalSwap.cjs`),x=require(`./hinkalWithdraw.cjs`),S=require(`../merkle-tree/MerkleTree.cjs`);require(`../merkle-tree/index.cjs`);const C=require(`./resetMerkleTrees.cjs`);require(`../../API/index.cjs`);const w=require(`../MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.cjs`),T=require(`./hinkalPrivateWallet.cjs`),E=require(`./hinkalReceiveVaultAccount.cjs`),D=require(`./hinkalReceiveVaultCreate.cjs`),O=require(`./hinkalReceiveVaultRecover.cjs`),k=require(`./hinkalGetRecipientInfo.cjs`),A=require(`./hinkalSignSubAccount.cjs`),j=require(`./hinkalActionReceive.cjs`),M=require(`./hinkalProoflessDeposit.cjs`),N=require(`./hinkalProxySwap.cjs`),P=require(`./hinkalTransfer.cjs`),F=require(`./hinkalProxyToPrivate.cjs`),I=require(`../../providers/TronProviderAdapter.cjs`),L=require(`./hinkalSolanaDepositAndWithdraw.cjs`),R=require(`./hinkalSolanaWithdraw.cjs`),z=require(`./hinkalSolanaTransfer.cjs`),B=require(`./hinkalSolanaSwap.cjs`),V=require(`./hinkalSolanaProxySwap.cjs`),H=require(`./hinkalSolanaProxyShield.cjs`),U=require(`./hinkalDepositAndBridge.cjs`),W=require(`./hinkalBridgePrivateToPrivate.cjs`),G=require(`./hinkalNearDepositAndBridge.cjs`),K=require(`./hinkalClaimUtxo.cjs`),q=require(`./hinkalSolanaProoflessDeposit.cjs`),J=require(`./hinkalSolanaClaimUtxo.cjs`),Y=require(`./hinkalWithdrawStuckUtxos.cjs`),X=require(`../private-balances/HinkalPrivateBalanceController.cjs`);require(`../private-balances/index.cjs`);const Z=require(`./hinkalProxySend.cjs`);let Q=require(`@solana/web3.js`);var $=class{ethereumProviderAdapter;solanaProviderAdapter;tronProviderAdapter;userKeys;legacySignature;merkleTreeHinkalByChain={};nullifiersByChain={};encryptedOutputsByChain={};commitmentsSnapshotServiceByChain={};nullifierSnapshotServiceByChain={};privateBalances=new X.HinkalPrivateBalanceController(this);utxoUtils;lastCallState=new Map;cacheDevice;balanceFetchingMutexByChain=new Map;generateProofRemotely;disableMerkleTreeUpdates;allowParallelBalanceLocalDecryption;constructor(e){this.userKeys=new o.UserKeys(void 0),e?.tronChainOverride&&t.setHinkalTronChainId(e.tronChainOverride),t.HINKAL_SUPPORTED_CHAINS.forEach(e=>{this.merkleTreeHinkalByChain[e]=S.MerkleTree.create(i.poseidonFunction,0n),this.nullifiersByChain[e]=new Set,this.encryptedOutputsByChain[e]=[]}),this.generateProofRemotely=e?.generateProofRemotely??!0,this.utxoUtils=new w.MultiThreadedUtxoUtils,this.cacheDevice=m.createCacheDevice(e),this.disableMerkleTreeUpdates=e?.disableMerkleTreeUpdates??!1,this.allowParallelBalanceLocalDecryption=e?.allowParallelBalanceLocalDecryption??!1}enforceRateLimit(t,n,r=1e3){let i=Date.now(),a=e.CustomJSONStringify(n),o=this.lastCallState.get(t);if(o&&o.argsKey===a&&i-o.timestamp<r)throw Error(`${t} was already called with the same arguments`);this.lastCallState.set(t,{timestamp:i,argsKey:a})}getProviderAdapter(e){let n=e;n||=this.ethereumProviderAdapter?t.chainIds.ethMainnet:this.solanaProviderAdapter?t.currentSolanaChainId:t.chainIds.tronMainnet;let r;if(r=t.isSolanaLike(n)?this.solanaProviderAdapter:t.isTronLike(n)?this.tronProviderAdapter:this.ethereumProviderAdapter,!r)throw Error(`ProviderAdapter is not initialized`);return r}async initProviderAdapter(e,n){let r=t.chainIds.ethMainnet;n instanceof h.SolanaProviderAdapter?r=t.currentSolanaChainId:n instanceof I.TronProviderAdapter&&(r=t.currentTronChainId),await this.updateProviderAdapter(r,n),n.initConnector(e);let i=await n.connectAndPatchProvider(e);return await n.init(i),await this.setListeners(),r}getSigningMessage(e=r.LoginMessageMode.SDK){switch(e){case r.LoginMessageMode.SDK:return n.SDK_SIGNING_MESSAGE;case r.LoginMessageMode.HINKAL_DAPP:default:return n.DAPP_SIGNING_MESSAGE}}async signHinkalMessage(e=r.LoginMessageMode.SDK){let t=this.getSigningMessage(e);return this.getProviderAdapter().signMessage(t)}async signSolanaLedgerMessage(){let e=new Q.Transaction({blockhash:n.DETERMINISTIC_SOLANA_LEDGER_BLOCKHASH,lastValidBlockHeight:n.DETERMINISTIC_SOLANA_LEDGER_LAST_VALID_BLOCK_HEIGHT,feePayer:this.getSolanaPublicKey()}),t=await this.getProviderAdapter().signTransactionWithoutBroadcast?.(e);if(!t)throw Error(`Failed to sign transaction without broadcast`);return t}async initUserKeys(e=r.LoginMessageMode.SDK){this.userKeys=new o.UserKeys(await this.signHinkalMessage(e))}initUserKeysWithSignature(e){this.userKeys=new o.UserKeys(e)}initUserKeysWithNullifyingKey(e){this.userKeys=new o.UserKeys(void 0,e)}async initUserKeysFromSeedPhrases(e){let t=_.generateHashFromSeedPhrases(e);this.userKeys=new o.UserKeys(t)}async initUserKeysWithEnclaveSignature(e=r.LoginMessageMode.SDK){if(!await this.getEthereumAddress())throw Error(`Connected address not found`);let t=this.getProviderAdapter().isSolanaLedger?.()?await this.signSolanaLedgerMessage():await this.getProviderAdapter().signMessage(this.getSigningMessage(e)),n=await this.storeAndGetInitialSignature(t);this.initUserKeysWithSignature(n??t)}async storeAndGetInitialSignature(e){let t=await this.getEthereumAddress();if(!t)throw Error(`Connected address not found`);return g.storeAndGetSignatureFromEnclave(t,e)}async resetMerkle(e){this.disableMerkleTreeUpdates||(e?.every(e=>this.isSelectedNetworkSupported(e))??!0)&&await C.resetMerkleTrees(this,e)}getTronWeb(){let e=this.tronProviderAdapter;if(!e)throw Error(`Tron provider adapter not initialized`);if(!(e instanceof I.TronProviderAdapter))throw Error(`Tron provider adapter is not a TronProviderAdapter`);let t=e.getTronWeb();if(!t)throw Error(`TronWeb not available`);return t}getSupportedChains(){return this.ethereumProviderAdapter&&this.solanaProviderAdapter?t.WALLET_SUPPORTED_CHAINS:this.ethereumProviderAdapter?t.HINKAL_SUPPORTED_CHAINS.filter(e=>!t.isSolanaLike(e)&&!t.isTronLike(e)):this.solanaProviderAdapter?t.HINKAL_SUPPORTED_CHAINS.filter(e=>t.isSolanaLike(e)):this.tronProviderAdapter?[t.currentTronChainId]:[]}async waitForTransaction(e,t,n=1){return!!await this.getProviderAdapter(e).waitForTransaction(e,t,n)}getContract(e,t,n=void 0){return this.getProviderAdapter(e).getContract(e,t,n)}getContractWithFetcherByChainId(e,t,n=void 0){return c.getContractWithFetcherByChainId(e,t,n)}async signMessage(e){return await this.getProviderAdapter().signMessage(e)}async signTypedData(e,t,n){return await this.getProviderAdapter().signTypedData(e,t,n)}async signWithSubAccount(e,t,n,r){return A.hinkalSignSubAccount(e,t,n,r)}getContractWithSigner(e,t,n=``){return this.getProviderAdapter(e).getContractWithSigner(e,t,n)}getContractWithFetcher(e,t,n=``){return this.getProviderAdapter(e).getContractWithFetcher(e,t,n)}isSelectedNetworkSupported(e){return!!t.networkRegistry[e]}async switchNetwork(e){let n=this.getProviderAdapter(),r=n.getChainId(),i=r!==void 0&&t.isSameOnchainNetwork(e.chainId,r);if(!(e.chainId===r||i))try{await n.switchNetwork(e)}catch{throw Error(a.transactionErrorCodes.FAILED_TO_SWITCH_NETWORKS)}}async disconnectFromConnector(){await this.ethereumProviderAdapter?.disconnectFromConnector(),await this.solanaProviderAdapter?.disconnectFromConnector(),await this.tronProviderAdapter?.disconnectFromConnector()}async resetProviderAdapters(){this.ethereumProviderAdapter?.release(),this.solanaProviderAdapter?.release(),this.tronProviderAdapter?.release(),this.ethereumProviderAdapter=void 0,this.solanaProviderAdapter=void 0,this.tronProviderAdapter=void 0}async updateProviderAdapter(e,n){try{t.isSolanaLike(e)?(this.solanaProviderAdapter&&this.solanaProviderAdapter.release(),this.solanaProviderAdapter=n):t.isTronLike(e)?(this.tronProviderAdapter&&this.tronProviderAdapter.release(),this.tronProviderAdapter=n):(this.ethereumProviderAdapter&&this.ethereumProviderAdapter.release(),this.ethereumProviderAdapter=n)}catch(e){throw console.error(e),Error(`updateProviderAdapter failed, please try again.`)}}async setListeners(){this.ethereumProviderAdapter?.setChainEventListener({onAccountChanged:()=>{this.onAccountChanged()},onChainChanged:e=>{this.onChainChanged(e)}}),this.solanaProviderAdapter?.setChainEventListener({onAccountChanged:()=>{this.onAccountChanged()},onChainChanged:e=>{this.onChainChanged(e)}}),this.tronProviderAdapter?.setChainEventListener({onAccountChanged:()=>{this.onAccountChanged()},onChainChanged:e=>{this.onChainChanged(e)}})}async onAccountChanged(){await this.ethereumProviderAdapter?.onAccountChanged(),await this.solanaProviderAdapter?.onAccountChanged(),await this.tronProviderAdapter?.onAccountChanged();let e=r.EventType.AccountChanged;typeof document<`u`?document?.dispatchEvent(new Event(e)):process?.emit(`message`,e,void 0)}async onChainChanged(e){e?await this.getProviderAdapter(e).onChainChanged(e):await this.disconnectFromConnector()}async monitorConnectedAddress(e){await l.API.monitor(await this.getEthereumAddressByChain(e))}async getTotalBalances(e,t,n,r=!1,i,a=!1){let o=t??this.userKeys,s=new Map(await Promise.all(e.map(async e=>[e,n??await this.getEthereumAddressByChain(e)])));return d.getShieldedBalances(this,s,o.getShieldedPrivateKey(),o.getShieldedPublicKey(),r,i,a)}async getStuckShieldedBalances(e,t,n,r=!1,i=!1){let a=await this.getTotalBalances(e,t,n,r,i,!0);return new Map([...a].map(([e,t])=>[e,t.filter(e=>e.balance>0n)]))}get privateBalancesWithUSD(){return this.privateBalances.getSnapshot()}onPrivateBalancesWithUSDChange(e){return this.privateBalances.onPrivateBalancesWithUSDChange(e)}async getHinkalTreeRootHash(e){return(await f.fetchOnChainRootHashes(e)).hinkalRootHash}async resetMerkleTreesIfNecessary(e){let t=(await Promise.all((e??this.getSupportedChains()).map(async e=>{if(this.generateProofRemotely)return{chainId:e,needsReset:!1};let t=await this.getHinkalTreeRootHash(e);return{chainId:e,needsReset:BigInt(t)!==this.merkleTreeHinkalByChain[e].getRootHash()}}))).filter(e=>e.needsReset).map(e=>e.chainId);t.length>0&&(console.log(`resetting merkle tree in resetMerkleTreesIfNecessary for chains:`,t),await this.resetMerkle(t))}async getEthereumAddress(){let e=this.ethereumProviderAdapter??this.solanaProviderAdapter??this.tronProviderAdapter;if(!e)throw Error(`No provider adapter initialized`);return e.getAddress()}getEthereumAddressByChain(e){return this.getProviderAdapter(e).getAddress()}async getRandomRelay(e,t=!1){return(await l.API.getIdleRelay(e,t)).relay}getGasPrice(e){let t=this.getProviderAdapter(e);if(!t)throw Error(`Illegal State of providerAdapter in Hinkal: no providerAdapter initialized`);return t.getGasPrice(e)}getAPI(){return l.API}snapshotsClearInterval(){this.getSupportedChains().forEach(e=>{this.commitmentsSnapshotServiceByChain[e]?.intervalClear(),this.nullifierSnapshotServiceByChain[e]?.intervalClear()})}async destroy(){this.snapshotsClearInterval(),this.privateBalances.dispose(),await this.resetProviderAdapters()}getRecipientInfo(){return k.getRecipientInfo(this)}async deposit(e,t,n=!0,r=!1){return p.hinkalDeposit(this,e,t,n,r)}async depositSolana(e,t,n=!1){return y.hinkalSolanaDeposit(this,e,t,n)}async depositForOther(e,t,n,r=!0,i=!1,a){return this.enforceRateLimit(this.depositForOther.name,[e,t,n]),p.hinkalDepositForOther(this,e,t,n,r,i,a)}async depositSolanaForOther(e,t,n,r=!1,i=0n,a){return this.enforceRateLimit(this.depositSolanaForOther.name,[e,t,n]),y.hinkalSolanaDepositForOther(this,e,t,n,r,i,a)}async depositAndWithdraw(e,n,r,i,a,o,s,c,l=!0){return t.isSolanaLike(u.validateAndGetChainId([e]))?L.hinkalSolanaDepositAndWithdraw(this,e,n,r,i,a,o,s,c):v.hinkalDepositAndWithdraw(this,e,n,r,i,a,o,s,c,l)}async claimUtxo(e,n,r,i){return t.isSolanaLike(u.validateAndGetChainId([e]))?J.hinkalSolanaClaimUtxo(this,e,n,r,i):K.hinkalClaimUtxo(this,e,n,r,i)}async depositAndBridge(e,t,n,r,i,a,o,s=!0){return U.hinkalDepositAndBridge(this,e,t,n,r,i,a,o,s)}async bridgePrivateToPrivate(e,t,n,r,i,a,o,s){return this.enforceRateLimit(this.bridgePrivateToPrivate.name,[e,t,n]),W.hinkalBridgePrivateToPrivate(this,e,t,n,r,i,a,o,s)}async checkSendTransactionStatus(e){return s.getScheduledTransactionById(e)}async nearDepositAndBridge(e,t,n,r,i,a,o,s,c){return this.enforceRateLimit(this.nearDepositAndBridge.name,[e,t,n,r]),G.hinkalNearDepositAndBridge(this,e,t,n,r,i,a,o,s,c)}async prooflessDeposit(e,n,i,a,o=!1,s=r.zeroProoflessFeeStructure,c=``,l,d=!1,f=!1){return t.isSolanaLike(u.validateAndGetChainId(e))?q.hinkalSolanaProoflessDeposit(this,e,n,i,a,o,l,f):M.hinkalProoflessDeposit(this,e,n,i,a,o,s,c,l,d,f)}getSolanaProgram(e){if(!this.solanaProviderAdapter)throw Error(`No provider adapter initialized`);if(!(`getSolanaProgram`in this.solanaProviderAdapter))throw Error(`Current provider adapter is not a Solana provider adapter`);return this.solanaProviderAdapter.getSolanaProgram(e)}getSolanaPublicKey(){if(!this.solanaProviderAdapter)throw Error(`No provider adapter initialized`);if(!(`getSolanaPublicKey`in this.solanaProviderAdapter))throw Error(`Current provider adapter is not a Solana provider adapter`);return this.solanaProviderAdapter.getSolanaPublicKey()}async transfer(e,n,r,i,a,o){return this.enforceRateLimit(this.transfer.name,[e,n,r]),t.isSolanaLike(u.validateAndGetChainId(e))?z.hinkalSolanaTransfer(this,e,n,r,i,a,o):P.hinkalTransfer(this,e,n,r,i,a,o)}async withdraw(e,n,r,i,a,o,s,c){return t.isSolanaLike(u.validateAndGetChainId(e))?R.hinkalSolanaWithdraw(this,e,n,r,a,o,s,c):x.hinkalWithdraw(this,e,n,r,i,a,o,s,c)}async withdrawStuckUtxos(e,t){return Y.hinkalWithdrawStuckUtxos(this,e,t)}async createReceiveAddress(e,t=!1){return D.hinkalReceiveVaultCreate(this,e,t)}async getReceiveVaultAccount(){return E.hinkalGetReceiveVaultAccount(this)}async recoverReceiveVault(e,t,n,r,i=!1){return O.hinkalReceiveVaultRecover(this,e,t,n,r,i)}async swap(e,n,r,i,a,o,s,c){return t.isSolanaLike(u.validateAndGetChainId(e))?this.swapSolana(e,n,i,a,o,c):b.hinkalSwap(this,e,n,r,i,a,o,s,c)}async swapSolana(e,t,n,r,i,a){let o=JSON.parse(n),s=BigInt(o.swapperAccountSalt),{instructionLists:c,addressLookupTableAccount:l}=o.data;return B.hinkalSolanaSwap(this,e,t,s,c,l,r,i,a)}async actionReceive(e,n,r,i,a,o){if(!a)throw Error(`subAccount is required`);return t.isSolanaLike(u.validateAndGetChainId(e))?H.hinkalSolanaProxyShield(this,e[0],n[0],a,void 0,!1,i?.variableRate,o):j.hinkalActionReceive(this,e,n,r,i,a,o)}async actionPrivateWallet(e,t,n,r,i,a,o,s,c,l,u=!1,d,f,p,m){return this.enforceRateLimit(this.actionPrivateWallet.name,[e,t,n,r,i,a,o,s,c,p]),T.hinkalPrivateWallet(this,e,t,n,r,i,a,o,s,c,l,u,d,f,p,m)}async proxySwap(e,n,r,i,a,o,s,c,l=!1,d,f,p,m){return t.isSolanaLike(u.validateAndGetChainId(e))?V.hinkalSolanaProxySwap(this,e,n,i,o,r,a,s,c,m,f,p):N.hinkalProxySwap(this,e,n,r,i,a,o,s,c,l,d,m,f,p)}async proxyToPrivate(e,n,r,i,a,o,s){return t.isSolanaLike(u.validateAndGetChainId(e))?(this.enforceRateLimit(this.proxyToPrivate.name,[e[0],n[0],r,i]),H.hinkalSolanaProxyShield(this,e[0],n[0],r,i,!1,o?.variableRate,s)):F.hinkalProxyToPrivate(this,e,n,i,a,o,r,s)}async proxySend(e,t,n,r,i,a,o){return Z.hinkalProxySend(this,e,t,n,r,i,a,o)}areMerkleTreeUpdatesDisabled(){return this.disableMerkleTreeUpdates}updateMerkleTreeUpdates(e){this.disableMerkleTreeUpdates=e}};exports.Hinkal=$;
|
|
@@ -11,7 +11,7 @@ import { IProviderAdapter } from '../provider-adapter/IProviderAdapter';
|
|
|
11
11
|
import { IHinkal } from './IHinkal';
|
|
12
12
|
import { MerkleTree } from '../merkle-tree';
|
|
13
13
|
import { IAPI } from '../../API';
|
|
14
|
-
import { ReceiveVaultAccount, ReceiveVaultRecord } from '../../types/receive-vault.types';
|
|
14
|
+
import { ReceiveVaultAccount, ReceiveVaultNetwork, ReceiveVaultRecord } from '../../types/receive-vault.types';
|
|
15
15
|
import { ICacheDevice } from '../../types/ICacheDevice';
|
|
16
16
|
import { StealthAddressStructure, TypedData } from '../../types/circom-data.types';
|
|
17
17
|
import { SubAccount } from '../../types/proxy.types';
|
|
@@ -48,7 +48,7 @@ export declare class Hinkal<ConnectorType> implements IHinkal {
|
|
|
48
48
|
constructor(hinkalConfig?: HinkalConfig);
|
|
49
49
|
private enforceRateLimit;
|
|
50
50
|
getProviderAdapter(chainId?: number): IProviderAdapter<ConnectorType>;
|
|
51
|
-
initProviderAdapter(connector: ConnectorType, providerAdapter: IProviderAdapter<ConnectorType>): Promise<
|
|
51
|
+
initProviderAdapter(connector: ConnectorType, providerAdapter: IProviderAdapter<ConnectorType>): Promise<number>;
|
|
52
52
|
getSigningMessage(mode?: LoginMessageMode): string;
|
|
53
53
|
signHinkalMessage(mode?: LoginMessageMode): Promise<string>;
|
|
54
54
|
signSolanaLedgerMessage(): Promise<string>;
|
|
@@ -109,13 +109,13 @@ export declare class Hinkal<ConnectorType> implements IHinkal {
|
|
|
109
109
|
transfer(erc20Tokens: ERC20Token[], amountChanges: bigint[], recipientAddress: string, feeToken?: string, feeStructureOverride?: FeeStructure, action?: AdminTransactionType): Promise<string>;
|
|
110
110
|
withdraw(erc20Tokens: ERC20Token[], deltaAmounts: bigint[], recipientAddress: string, isRelayerOff: boolean, feeToken?: string, feeStructureOverride?: FeeStructure, variableRateOverride?: bigint, action?: AdminTransactionType): Promise<ethers.TransactionResponse | string>;
|
|
111
111
|
withdrawStuckUtxos(erc20Token: ERC20Token, recipientAddress: string): Promise<string[]>;
|
|
112
|
-
createReceiveAddress(
|
|
112
|
+
createReceiveAddress(network: ReceiveVaultNetwork, forceFresh?: boolean): Promise<ReceiveVaultRecord>;
|
|
113
113
|
getReceiveVaultAccount(): Promise<ReceiveVaultAccount>;
|
|
114
114
|
recoverReceiveVault(record: ReceiveVaultRecord, token: string, chainId: number, to: string, returnTxData?: boolean): Promise<string | ethers.TransactionRequest | TronWebTypes.Transaction<TronWebTypes.TriggerSmartContract>>;
|
|
115
115
|
swap(erc20Tokens: ERC20Token[], deltaAmounts: bigint[], externalActionId: ExternalActionId, swapData: string, feeToken?: string, feeStructureOverride?: FeeStructure, slippagePercentage?: number, action?: AdminTransactionType): Promise<string>;
|
|
116
116
|
swapSolana(erc20Tokens: ERC20Token[], deltaAmounts: bigint[], swapData: string, feeToken?: string, feeStructureOverride?: FeeStructure, action?: AdminTransactionType): Promise<string>;
|
|
117
117
|
actionReceive(erc20Tokens: ERC20Token[], deltaAmounts: bigint[], feeToken?: string, feeStructureOverride?: FeeStructure, subAccount?: SubAccount, action?: AdminTransactionType): Promise<string>;
|
|
118
|
-
actionPrivateWallet(chainId: number, erc20Tokens: ERC20Token[], deltaAmounts: bigint[], onChainCreation: boolean[], ops: string[], emporiumTokenChanges: TokenChanges<bigint>[], subAccount?: SubAccount, feeToken?: string, feeStructureOverride?: FeeStructure, relayOverride?: string, autoDepositBack?: boolean, maxGasInDollar?: string, action?: AdminTransactionType, privateRecipientInfo?: PrivateRecipientInfo): Promise<string>;
|
|
118
|
+
actionPrivateWallet(chainId: number, erc20Tokens: ERC20Token[], deltaAmounts: bigint[], onChainCreation: boolean[], ops: string[], emporiumTokenChanges: TokenChanges<bigint>[], subAccount?: SubAccount, feeToken?: string, feeStructureOverride?: FeeStructure, relayOverride?: string, autoDepositBack?: boolean, maxGasInDollar?: string, action?: AdminTransactionType, privateRecipientInfo?: PrivateRecipientInfo, bridgedToken?: ERC20Token): Promise<string>;
|
|
119
119
|
proxySwap(erc20Tokens: ERC20Token[], deltaAmounts: bigint[], externalActionId: ExternalActionId, swapData: string, isTheSameChainSwap: boolean, subAccount: SubAccount, feeToken?: string, feeStructureOverride?: FeeStructure, autoDepositBack?: boolean, maxGasInDollar?: string, bridgedToken?: ERC20Token, bridgedTokenAmount?: bigint, action?: AdminTransactionType): Promise<string>;
|
|
120
120
|
proxyToPrivate(erc20Tokens: ERC20Token[], deltaAmountsBase: bigint[], subAccount: SubAccount, recipientInfo: string, feeToken?: string, feeStructureOverride?: FeeStructure, action?: AdminTransactionType): Promise<string>;
|
|
121
121
|
proxySend(erc20Tokens: ERC20Token[], amounts: bigint[], subAccount: SubAccount, recipientAddress: string, feeToken?: string, feeStructureOverride?: FeeStructure, action?: AdminTransactionType): Promise<string>;
|
|
@@ -3,13 +3,13 @@ import { HINKAL_SUPPORTED_CHAINS as t, WALLET_SUPPORTED_CHAINS as n, chainIds as
|
|
|
3
3
|
import { DAPP_SIGNING_MESSAGE as d, DETERMINISTIC_SOLANA_LEDGER_BLOCKHASH as f, DETERMINISTIC_SOLANA_LEDGER_LAST_VALID_BLOCK_HEIGHT as p, SDK_SIGNING_MESSAGE as m } from "../../constants/protocol.constants.mjs";
|
|
4
4
|
import { EventType as ee, LoginMessageMode as h, zeroProoflessFeeStructure as g } from "../../types/hinkal.types.mjs";
|
|
5
5
|
import { poseidonFunction as _ } from "../../crypto/poseidon.mjs";
|
|
6
|
-
import { transactionErrorCodes as
|
|
7
|
-
import { UserKeys as
|
|
8
|
-
import { getScheduledTransactionById as
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
6
|
+
import { transactionErrorCodes as v } from "../../error-handling/error-codes.constants.mjs";
|
|
7
|
+
import { UserKeys as y } from "../crypto-keys/keys.mjs";
|
|
8
|
+
import { getScheduledTransactionById as te } from "../../API/scheduled-transactions-calls.mjs";
|
|
9
|
+
import { getContractWithFetcherByChainId as b } from "../../functions/web3/getContractMetadata.mjs";
|
|
10
|
+
import { API as x } from "../../API/API.mjs";
|
|
11
|
+
import { validateAndGetChainId as S } from "../../functions/utils/token-check.utils.mjs";
|
|
12
|
+
import { getShieldedBalances as C } from "../../functions/web3/events/getShieldedBalance.mjs";
|
|
13
13
|
import { fetchOnChainRootHashes as w } from "../../functions/snarkjs/fetchOnChainRootHashes.mjs";
|
|
14
14
|
import { hinkalDeposit as T, hinkalDepositForOther as E } from "./hinkalDeposit.mjs";
|
|
15
15
|
import { createCacheDevice as D } from "../../functions/utils/cacheDevice.utils.mjs";
|
|
@@ -29,8 +29,8 @@ import { hinkalPrivateWallet as z } from "./hinkalPrivateWallet.mjs";
|
|
|
29
29
|
import { hinkalGetReceiveVaultAccount as B } from "./hinkalReceiveVaultAccount.mjs";
|
|
30
30
|
import { hinkalReceiveVaultCreate as V } from "./hinkalReceiveVaultCreate.mjs";
|
|
31
31
|
import { hinkalReceiveVaultRecover as H } from "./hinkalReceiveVaultRecover.mjs";
|
|
32
|
-
import { getRecipientInfo as
|
|
33
|
-
import { hinkalSignSubAccount as
|
|
32
|
+
import { getRecipientInfo as U } from "./hinkalGetRecipientInfo.mjs";
|
|
33
|
+
import { hinkalSignSubAccount as ne } from "./hinkalSignSubAccount.mjs";
|
|
34
34
|
import { hinkalActionReceive as W } from "./hinkalActionReceive.mjs";
|
|
35
35
|
import { hinkalProoflessDeposit as G } from "./hinkalProoflessDeposit.mjs";
|
|
36
36
|
import { hinkalProxySwap as K } from "./hinkalProxySwap.mjs";
|
|
@@ -75,7 +75,7 @@ var he = class {
|
|
|
75
75
|
disableMerkleTreeUpdates;
|
|
76
76
|
allowParallelBalanceLocalDecryption;
|
|
77
77
|
constructor(e) {
|
|
78
|
-
this.userKeys = new
|
|
78
|
+
this.userKeys = new y(void 0), e?.tronChainOverride && u(e.tronChainOverride), t.forEach((e) => {
|
|
79
79
|
this.merkleTreeHinkalByChain[e] = I.create(_, 0n), this.nullifiersByChain[e] = /* @__PURE__ */ new Set(), this.encryptedOutputsByChain[e] = [];
|
|
80
80
|
}), this.generateProofRemotely = e?.generateProofRemotely ?? !0, this.utxoUtils = new R(), this.cacheDevice = D(e), this.disableMerkleTreeUpdates = e?.disableMerkleTreeUpdates ?? !1, this.allowParallelBalanceLocalDecryption = e?.allowParallelBalanceLocalDecryption ?? !1;
|
|
81
81
|
}
|
|
@@ -98,7 +98,7 @@ var he = class {
|
|
|
98
98
|
let n = r.ethMainnet;
|
|
99
99
|
t instanceof O ? n = i : t instanceof Y && (n = a), await this.updateProviderAdapter(n, t), t.initConnector(e);
|
|
100
100
|
let o = await t.connectAndPatchProvider(e);
|
|
101
|
-
await t.init(o), await this.setListeners();
|
|
101
|
+
return await t.init(o), await this.setListeners(), n;
|
|
102
102
|
}
|
|
103
103
|
getSigningMessage(e = h.SDK) {
|
|
104
104
|
switch (e) {
|
|
@@ -121,17 +121,17 @@ var he = class {
|
|
|
121
121
|
return t;
|
|
122
122
|
}
|
|
123
123
|
async initUserKeys(e = h.SDK) {
|
|
124
|
-
this.userKeys = new
|
|
124
|
+
this.userKeys = new y(await this.signHinkalMessage(e));
|
|
125
125
|
}
|
|
126
126
|
initUserKeysWithSignature(e) {
|
|
127
|
-
this.userKeys = new
|
|
127
|
+
this.userKeys = new y(e);
|
|
128
128
|
}
|
|
129
129
|
initUserKeysWithNullifyingKey(e) {
|
|
130
|
-
this.userKeys = new
|
|
130
|
+
this.userKeys = new y(void 0, e);
|
|
131
131
|
}
|
|
132
132
|
async initUserKeysFromSeedPhrases(e) {
|
|
133
133
|
let t = A(e);
|
|
134
|
-
this.userKeys = new
|
|
134
|
+
this.userKeys = new y(t);
|
|
135
135
|
}
|
|
136
136
|
async initUserKeysWithEnclaveSignature(e = h.SDK) {
|
|
137
137
|
if (!await this.getEthereumAddress()) throw Error("Connected address not found");
|
|
@@ -164,7 +164,7 @@ var he = class {
|
|
|
164
164
|
return this.getProviderAdapter(e).getContract(e, t, n);
|
|
165
165
|
}
|
|
166
166
|
getContractWithFetcherByChainId(e, t, n = void 0) {
|
|
167
|
-
return
|
|
167
|
+
return b(e, t, n);
|
|
168
168
|
}
|
|
169
169
|
async signMessage(e) {
|
|
170
170
|
return await this.getProviderAdapter().signMessage(e);
|
|
@@ -173,7 +173,7 @@ var he = class {
|
|
|
173
173
|
return await this.getProviderAdapter().signTypedData(e, t, n);
|
|
174
174
|
}
|
|
175
175
|
async signWithSubAccount(e, t, n, r) {
|
|
176
|
-
return
|
|
176
|
+
return ne(e, t, n, r);
|
|
177
177
|
}
|
|
178
178
|
getContractWithSigner(e, t, n = "") {
|
|
179
179
|
return this.getProviderAdapter(e).getContractWithSigner(e, t, n);
|
|
@@ -189,7 +189,7 @@ var he = class {
|
|
|
189
189
|
if (!(e.chainId === n || r)) try {
|
|
190
190
|
await t.switchNetwork(e);
|
|
191
191
|
} catch {
|
|
192
|
-
throw Error(
|
|
192
|
+
throw Error(v.FAILED_TO_SWITCH_NETWORKS);
|
|
193
193
|
}
|
|
194
194
|
}
|
|
195
195
|
async disconnectFromConnector() {
|
|
@@ -238,11 +238,11 @@ var he = class {
|
|
|
238
238
|
e ? await this.getProviderAdapter(e).onChainChanged(e) : await this.disconnectFromConnector();
|
|
239
239
|
}
|
|
240
240
|
async monitorConnectedAddress(e) {
|
|
241
|
-
await
|
|
241
|
+
await x.monitor(await this.getEthereumAddressByChain(e));
|
|
242
242
|
}
|
|
243
243
|
async getTotalBalances(e, t, n, r = !1, i, a = !1) {
|
|
244
244
|
let o = t ?? this.userKeys, s = new Map(await Promise.all(e.map(async (e) => [e, n ?? await this.getEthereumAddressByChain(e)])));
|
|
245
|
-
return
|
|
245
|
+
return C(this, s, o.getShieldedPrivateKey(), o.getShieldedPublicKey(), r, i, a);
|
|
246
246
|
}
|
|
247
247
|
async getStuckShieldedBalances(e, t, n, r = !1, i = !1) {
|
|
248
248
|
let a = await this.getTotalBalances(e, t, n, r, i, !0);
|
|
@@ -280,7 +280,7 @@ var he = class {
|
|
|
280
280
|
return this.getProviderAdapter(e).getAddress();
|
|
281
281
|
}
|
|
282
282
|
async getRandomRelay(e, t = !1) {
|
|
283
|
-
return (await
|
|
283
|
+
return (await x.getIdleRelay(e, t)).relay;
|
|
284
284
|
}
|
|
285
285
|
getGasPrice(e) {
|
|
286
286
|
let t = this.getProviderAdapter(e);
|
|
@@ -288,7 +288,7 @@ var he = class {
|
|
|
288
288
|
return t.getGasPrice(e);
|
|
289
289
|
}
|
|
290
290
|
getAPI() {
|
|
291
|
-
return
|
|
291
|
+
return x;
|
|
292
292
|
}
|
|
293
293
|
snapshotsClearInterval() {
|
|
294
294
|
this.getSupportedChains().forEach((e) => {
|
|
@@ -299,7 +299,7 @@ var he = class {
|
|
|
299
299
|
this.snapshotsClearInterval(), this.privateBalances.dispose(), await this.resetProviderAdapters();
|
|
300
300
|
}
|
|
301
301
|
getRecipientInfo() {
|
|
302
|
-
return
|
|
302
|
+
return U(this);
|
|
303
303
|
}
|
|
304
304
|
async deposit(e, t, n = !0, r = !1) {
|
|
305
305
|
return T(this, e, t, n, r);
|
|
@@ -322,10 +322,10 @@ var he = class {
|
|
|
322
322
|
]), N(this, e, t, n, r, i, a);
|
|
323
323
|
}
|
|
324
324
|
async depositAndWithdraw(e, t, n, r, i, a, o, c, l = !0) {
|
|
325
|
-
return s(
|
|
325
|
+
return s(S([e])) ? X(this, e, t, n, r, i, a, o, c) : j(this, e, t, n, r, i, a, o, c, l);
|
|
326
326
|
}
|
|
327
327
|
async claimUtxo(e, t, n, r) {
|
|
328
|
-
return s(
|
|
328
|
+
return s(S([e])) ? ue(this, e, t, n, r) : ce(this, e, t, n, r);
|
|
329
329
|
}
|
|
330
330
|
async depositAndBridge(e, t, n, r, i, a, o, s = !0) {
|
|
331
331
|
return oe(this, e, t, n, r, i, a, o, s);
|
|
@@ -338,7 +338,7 @@ var he = class {
|
|
|
338
338
|
]), $(this, e, t, n, r, i, a, o, s);
|
|
339
339
|
}
|
|
340
340
|
async checkSendTransactionStatus(e) {
|
|
341
|
-
return
|
|
341
|
+
return te(e);
|
|
342
342
|
}
|
|
343
343
|
async nearDepositAndBridge(e, t, n, r, i, a, o, s, c) {
|
|
344
344
|
return this.enforceRateLimit(this.nearDepositAndBridge.name, [
|
|
@@ -349,7 +349,7 @@ var he = class {
|
|
|
349
349
|
]), se(this, e, t, n, r, i, a, o, s, c);
|
|
350
350
|
}
|
|
351
351
|
async prooflessDeposit(e, t, n, r, i = !1, a = g, o = "", c, l = !1, u = !1) {
|
|
352
|
-
return s(
|
|
352
|
+
return s(S(e)) ? le(this, e, t, n, r, i, c, u) : G(this, e, t, n, r, i, a, o, c, l, u);
|
|
353
353
|
}
|
|
354
354
|
getSolanaProgram(e) {
|
|
355
355
|
if (!this.solanaProviderAdapter) throw Error("No provider adapter initialized");
|
|
@@ -366,16 +366,16 @@ var he = class {
|
|
|
366
366
|
e,
|
|
367
367
|
t,
|
|
368
368
|
n
|
|
369
|
-
]), s(
|
|
369
|
+
]), s(S(e)) ? re(this, e, t, n, r, i, a) : q(this, e, t, n, r, i, a);
|
|
370
370
|
}
|
|
371
371
|
async withdraw(e, t, n, r, i, a, o, c) {
|
|
372
|
-
return s(
|
|
372
|
+
return s(S(e)) ? Z(this, e, t, n, i, a, o, c) : F(this, e, t, n, r, i, a, o, c);
|
|
373
373
|
}
|
|
374
374
|
async withdrawStuckUtxos(e, t) {
|
|
375
375
|
return de(this, e, t);
|
|
376
376
|
}
|
|
377
|
-
async createReceiveAddress(e, t
|
|
378
|
-
return V(this, e, t
|
|
377
|
+
async createReceiveAddress(e, t = !1) {
|
|
378
|
+
return V(this, e, t);
|
|
379
379
|
}
|
|
380
380
|
async getReceiveVaultAccount() {
|
|
381
381
|
return B(this);
|
|
@@ -384,7 +384,7 @@ var he = class {
|
|
|
384
384
|
return H(this, e, t, n, r, i);
|
|
385
385
|
}
|
|
386
386
|
async swap(e, t, n, r, i, a, o, c) {
|
|
387
|
-
return s(
|
|
387
|
+
return s(S(e)) ? this.swapSolana(e, t, r, i, a, c) : P(this, e, t, n, r, i, a, o, c);
|
|
388
388
|
}
|
|
389
389
|
async swapSolana(e, t, n, r, i, a) {
|
|
390
390
|
let o = JSON.parse(n), s = BigInt(o.swapperAccountSalt), { instructionLists: c, addressLookupTableAccount: l } = o.data;
|
|
@@ -392,9 +392,9 @@ var he = class {
|
|
|
392
392
|
}
|
|
393
393
|
async actionReceive(e, t, n, r, i, a) {
|
|
394
394
|
if (!i) throw Error("subAccount is required");
|
|
395
|
-
return s(
|
|
395
|
+
return s(S(e)) ? Q(this, e[0], t[0], i, void 0, !1, r?.variableRate, a) : W(this, e, t, n, r, i, a);
|
|
396
396
|
}
|
|
397
|
-
async actionPrivateWallet(e, t, n, r, i, a, o, s, c, l, u = !1, d, f, p) {
|
|
397
|
+
async actionPrivateWallet(e, t, n, r, i, a, o, s, c, l, u = !1, d, f, p, m) {
|
|
398
398
|
return this.enforceRateLimit(this.actionPrivateWallet.name, [
|
|
399
399
|
e,
|
|
400
400
|
t,
|
|
@@ -406,13 +406,13 @@ var he = class {
|
|
|
406
406
|
s,
|
|
407
407
|
c,
|
|
408
408
|
p
|
|
409
|
-
]), z(this, e, t, n, r, i, a, o, s, c, l, u, d, f, p);
|
|
409
|
+
]), z(this, e, t, n, r, i, a, o, s, c, l, u, d, f, p, m);
|
|
410
410
|
}
|
|
411
411
|
async proxySwap(e, t, n, r, i, a, o, c, l = !1, u, d, f, p) {
|
|
412
|
-
return s(
|
|
412
|
+
return s(S(e)) ? ae(this, e, t, r, a, n, i, o, c, p, d, f) : K(this, e, t, n, r, i, a, o, c, l, u, p, d, f);
|
|
413
413
|
}
|
|
414
414
|
async proxyToPrivate(e, t, n, r, i, a, o) {
|
|
415
|
-
return s(
|
|
415
|
+
return s(S(e)) ? (this.enforceRateLimit(this.proxyToPrivate.name, [
|
|
416
416
|
e[0],
|
|
417
417
|
t[0],
|
|
418
418
|
n,
|
|
@@ -20,7 +20,7 @@ import { PublicKey } from '@solana/web3.js';
|
|
|
20
20
|
import { PrivateBridgeRecipient, PrivateBridgeResult, PublicBridgeRecipient } from '../../types/bridging-tx.types';
|
|
21
21
|
import { NearBridgeParams, NearBridgeResult } from '../../types/near-intents.types';
|
|
22
22
|
import { PrivateBalancesState } from '../../types/balances.types';
|
|
23
|
-
import { ReceiveVaultAccount, ReceiveVaultRecord } from '../../types/receive-vault.types';
|
|
23
|
+
import { ReceiveVaultAccount, ReceiveVaultNetwork, ReceiveVaultRecord } from '../../types/receive-vault.types';
|
|
24
24
|
import { Utxo } from '../utxo/Utxo';
|
|
25
25
|
import { ScheduledTransactionByIdResponse } from '../../API/scheduled-transactions-calls';
|
|
26
26
|
import { DepositAndSendExtendedResult } from '../../types/scheduled-transactions.types';
|
|
@@ -70,7 +70,7 @@ export interface IHinkal<ConnectorType = unknown> {
|
|
|
70
70
|
transfer(erc20Tokens: ERC20Token[], amountChanges: bigint[], recipientAddress: string, feeToken?: string, feeStructureOverride?: FeeStructure, action?: AdminTransactionType): Promise<string>;
|
|
71
71
|
withdraw(erc20Tokens: ERC20Token[], deltaAmounts: bigint[], recipientAddress: string, isRelayerOff: boolean, feeToken?: string, feeStructureOverride?: FeeStructure, variableRateOverride?: bigint, action?: AdminTransactionType): Promise<ethers.TransactionResponse | string>;
|
|
72
72
|
withdrawStuckUtxos(erc20Token: ERC20Token, recipientAddress: string): Promise<string[]>;
|
|
73
|
-
createReceiveAddress(
|
|
73
|
+
createReceiveAddress(network: ReceiveVaultNetwork, forceFresh?: boolean): Promise<ReceiveVaultRecord>;
|
|
74
74
|
getReceiveVaultAccount(): Promise<ReceiveVaultAccount>;
|
|
75
75
|
recoverReceiveVault(record: ReceiveVaultRecord, token: string, chainId: number, to: string, returnTxData?: boolean): Promise<string | ethers.TransactionRequest | TronWebTypes.Transaction<TronWebTypes.TriggerSmartContract>>;
|
|
76
76
|
swap(erc20Tokens: ERC20Token[], deltaAmounts: bigint[], externalActionId: ExternalActionId, swapData: string, feeToken?: string, feeStructureOverride?: FeeStructure, slippagePercentage?: number, action?: AdminTransactionType): Promise<string>;
|
|
@@ -85,7 +85,7 @@ export interface IHinkal<ConnectorType = unknown> {
|
|
|
85
85
|
initUserKeysFromSeedPhrases(seedPhrases: string[]): Promise<void>;
|
|
86
86
|
initUserKeysWithEnclaveSignature(signInMode?: LoginMessageMode): Promise<void>;
|
|
87
87
|
storeAndGetInitialSignature(authSignature: string): Promise<string>;
|
|
88
|
-
initProviderAdapter(connector: ConnectorType, providerAdapter: IProviderAdapter<ConnectorType>): Promise<
|
|
88
|
+
initProviderAdapter(connector: ConnectorType, providerAdapter: IProviderAdapter<ConnectorType>): Promise<number>;
|
|
89
89
|
disconnectFromConnector(): Promise<void>;
|
|
90
90
|
resetProviderAdapters(): Promise<void>;
|
|
91
91
|
setListeners(providerAdapter: IProviderAdapter): Promise<void>;
|
|
@@ -100,7 +100,7 @@ export interface IHinkal<ConnectorType = unknown> {
|
|
|
100
100
|
signMessage(message: string): Promise<string>;
|
|
101
101
|
signTypedData(domain: ethers.TypedDataDomain, types: Record<string, ethers.TypedDataField[]>, value: Record<string, unknown>): Promise<string>;
|
|
102
102
|
signWithSubAccount(chainId: number, messageToSign: string | undefined, typedData: TypedData | undefined, subAccount: SubAccount): Promise<string>;
|
|
103
|
-
actionPrivateWallet(chainId: number, erc20Tokens: ERC20Token[], deltaAmounts: bigint[], onChainCreation: boolean[], ops: string[], emporiumTokenChanges: TokenChanges<bigint>[], subAccount?: SubAccount, feeToken?: string, feeStructureOverride?: FeeStructure, relayOverride?: string, autoDepositBack?: boolean, maxGasInDollar?: string, action?: AdminTransactionType, privateRecipientInfo?: PrivateRecipientInfo): Promise<string>;
|
|
103
|
+
actionPrivateWallet(chainId: number, erc20Tokens: ERC20Token[], deltaAmounts: bigint[], onChainCreation: boolean[], ops: string[], emporiumTokenChanges: TokenChanges<bigint>[], subAccount?: SubAccount, feeToken?: string, feeStructureOverride?: FeeStructure, relayOverride?: string, autoDepositBack?: boolean, maxGasInDollar?: string, action?: AdminTransactionType, privateRecipientInfo?: PrivateRecipientInfo, bridgedToken?: ERC20Token): Promise<string>;
|
|
104
104
|
actionReceive(erc20Tokens: ERC20Token[], deltaAmounts: bigint[], feeTokens?: string, feeStructureOverride?: FeeStructure, subAccount?: SubAccount, action?: AdminTransactionType): Promise<string>;
|
|
105
105
|
proxySwap(erc20Tokens: ERC20Token[], deltaAmounts: bigint[], externalActionId: ExternalActionId, swapData: string, isTheSameChainSwap: boolean, subAccount: SubAccount, feeToken?: string, feeStructureOverride?: FeeStructure, autoDepositBack?: boolean, maxGasInDollar?: string, bridgedToken?: ERC20Token, bridgedTokenAmount?: bigint, action?: AdminTransactionType): Promise<string>;
|
|
106
106
|
proxyToPrivate(erc20Tokens: ERC20Token[], deltaAmountsBase: bigint[], subAccount: SubAccount, recipientInfo: string, feeToken?: string, feeStructureOverride?: FeeStructure, action?: AdminTransactionType): Promise<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../constants/chains.constants.cjs`),t=require(`../../functions/utils/caseInsensitive.utils.cjs`),n=require(`../../error-handling/error-codes.constants.cjs`),r=require(`../../functions/web3/etherFunctions.cjs`),i=require(`../../functions/utils/time.utils.cjs`),a=require(`../../error-handling/customErrors/ErrorWithTx.cjs`),o=require(`../../error-handling/logger.cjs`),s=require(`../../types/external-action.types.cjs`),c=require(`../../types/transactions.types.cjs`),l=require(`../../types/admin.types.cjs`),u=require(`../../types/activities.types.cjs`),d=require(`../../types/transaction.types.cjs`),f=require(`../../types/offscreen.types.cjs`);require(`../../types/index.cjs`);const ee=require(`../../API/API.cjs`),
|
|
1
|
+
const e=require(`../../constants/chains.constants.cjs`),t=require(`../../functions/utils/caseInsensitive.utils.cjs`),n=require(`../../error-handling/error-codes.constants.cjs`),r=require(`../../functions/web3/etherFunctions.cjs`),i=require(`../../functions/utils/time.utils.cjs`),a=require(`../../error-handling/customErrors/ErrorWithTx.cjs`),o=require(`../../error-handling/logger.cjs`),s=require(`../../types/external-action.types.cjs`),c=require(`../../types/transactions.types.cjs`),l=require(`../../types/admin.types.cjs`),u=require(`../../types/activities.types.cjs`),d=require(`../../types/transaction.types.cjs`),f=require(`../../types/offscreen.types.cjs`);require(`../../types/index.cjs`);const ee=require(`../../functions/utils/create-provider.cjs`),p=require(`../../API/API.cjs`),m=require(`../../functions/utils/erc20tokenFunctions.cjs`),h=require(`../../error-handling/get-error.message.cjs`);require(`../../error-handling/index.cjs`);const g=require(`../../functions/pre-transaction/getVolatileTransferAmount.cjs`),_=require(`../../functions/pre-transaction/getFeeStructure.cjs`),v=require(`../../functions/utils/fees.utils.cjs`),y=require(`../../functions/private-wallet/emporium.helpers.cjs`),b=require(`../../functions/utils/convertEmporiumOpToCallInfo.cjs`),x=require(`../../functions/utils/postToOffscreen.cjs`),S=require(`../../functions/auto-deposit-back-helpers/get-tokens-to-deposit-back.cjs`),C=require(`../../functions/auto-deposit-back-helpers/get-gas-token-records.cjs`),w=require(`../../functions/auto-deposit-back-helpers/select-gas-token.cjs`),T=require(`../../functions/auto-deposit-back-helpers/update-hinkal.cjs`);require(`../../functions/index.cjs`);const E=require(`../IndexedDB/activity-db.cjs`);require(`../IndexedDB/index.cjs`);var D=3*1e3,O=13*1e3,k=async(k,A,j,M,N,P,F,I)=>{if(!j||F.length===0)return;let L;try{let a=ee.createJsonRpcProvider(A);await i.waitLittle(A===e.chainIds.ethMainnet?O:D);let o=await S.getTokensToDepositBack(F,N,j,a);if(!o.length){x.postToOffscreen(f.MessagesFromOffscreen.AutoShieldTxStatus,{message:n.transactionErrorCodes.AUTO_SHIELD_SKIPPED});return}let d=(await m.getErc20TokensBySymbolsFromAPI(await v.getGasTokenSymbols(A),A)).filter(e=>e!==void 0),{prices:h}=await p.API.getTokenPrices(A,d.map(e=>e.erc20TokenAddress)),R=new Map(h.map((e,t)=>[d[t].erc20TokenAddress.toLowerCase(),e])),z=o.map(({token:e})=>e),B=o.map(({balance:e})=>e),V=z.map(({erc20TokenAddress:e})=>e),H=y.createTransaferEmporiumOpsBatch(k,A,V,await g.modifyVolatileTokenAmountChanges(A,z,B,j)),U=await _.getFeeStructure(A,N,V,s.ExternalActionId.Emporium,H.map(e=>b.convertEmporiumOpToCallInfo(e,j,A))),{flatFee:W}=U??{},G=await m.getErc20TokenFromAPI(A,U.feeToken);if(!G)return;let K=r.getAmountInToken(G,W),q=(R.get(G.erc20TokenAddress.toLowerCase())??0)*Number(K),J=await w.selectGasToken(N,q,A,z,H,await C.getGasTokenRecords(d,A,k,j,a,R),U,V,j);if(!J)return;let{feeToken:Y,feeStructure:X}=J??{};if(P&&Number(P)<q){x.postToOffscreen(f.MessagesFromOffscreen.AutoShieldTxStatus,{message:n.gasErrorCodes.GAS_PRICE_EXCEEDS_AUTOSHIELD_LIMIT});return}let Z=z.findIndex(e=>t.caseInsensitiveEqual(e.erc20TokenAddress,Y));Z!==-1&&(B[Z]-=X?.flatFee??0n);let{hinkalAddress:Q}=e.networkRegistry[A].contractData,$={activityType:u.ActivityTypes.AUTO_SHIELD,chainId:A,from:j,to:Q,gasInDollar:q.toString(),tokensReceive:z.map((e,t)=>({amount:r.getAmountInToken(e,B[t]),token:e}))};if(L=await E.activityStorage.saveTxRequest($),x.postToOffscreen(f.MessagesFromOffscreen.AutoShieldTxStatus,{status:c.TransactionStatus.Loading}),I)T.updateHinkal(A,k,I.inputNullifiers?.flat(),I.outCommitments?.flat(),I.encryptedOutputs?.flat());else if(!k.generateProofRemotely)throw Error(`Circomdata should be passed if tx is done locally`);let te={id:0,success:!0,txHash:await k.actionReceive(z,B,Y,X,M,l.AdminTransactionType.AutoShield)};await E.activityStorage.updatePendingTransactions(te,L),x.postToOffscreen(f.MessagesFromOffscreen.AutoShieldTxStatus,{status:c.TransactionStatus.Confirmed,activityRequest:$})}catch(e){let t;e instanceof a.ErrorWithRelayerTransaction&&(t=e.txHash);let n={error:e,id:0,success:!1,...t?{erroredTx:t}:{}};L&&await E.activityStorage.updatePendingTransactions(n,L),x.postToOffscreen(f.MessagesFromOffscreen.AutoShieldTxStatus,{status:c.TransactionStatus.Failed,error:h.getErrorMessageFromTransactionRequest(e,d.TransactionRequestType.ReceiveFromShieldedAccount)}),o.Logger.error(`Error in auto deposit back:`,e)}};exports.handleAutoDepositBack=k;
|
|
@@ -12,12 +12,12 @@ import { ActivityTypes as d } from "../../types/activities.types.mjs";
|
|
|
12
12
|
import { TransactionRequestType as f } from "../../types/transaction.types.mjs";
|
|
13
13
|
import { MessagesFromOffscreen as p } from "../../types/offscreen.types.mjs";
|
|
14
14
|
import "../../types/index.mjs";
|
|
15
|
-
import {
|
|
15
|
+
import { createJsonRpcProvider as m } from "../../functions/utils/create-provider.mjs";
|
|
16
|
+
import { API as te } from "../../API/API.mjs";
|
|
16
17
|
import { getErc20TokenFromAPI as h, getErc20TokensBySymbolsFromAPI as g } from "../../functions/utils/erc20tokenFunctions.mjs";
|
|
17
18
|
import { getErrorMessageFromTransactionRequest as _ } from "../../error-handling/get-error.message.mjs";
|
|
18
19
|
import "../../error-handling/index.mjs";
|
|
19
|
-
import { modifyVolatileTokenAmountChanges as
|
|
20
|
-
import { createJsonRpcProvider as v } from "../../functions/utils/create-provider.mjs";
|
|
20
|
+
import { modifyVolatileTokenAmountChanges as v } from "../../functions/pre-transaction/getVolatileTransferAmount.mjs";
|
|
21
21
|
import { getFeeStructure as y } from "../../functions/pre-transaction/getFeeStructure.mjs";
|
|
22
22
|
import { getGasTokenSymbols as b } from "../../functions/utils/fees.utils.mjs";
|
|
23
23
|
import { createTransaferEmporiumOpsBatch as x } from "../../functions/private-wallet/emporium.helpers.mjs";
|
|
@@ -35,14 +35,14 @@ var k = 3 * 1e3, ne = 13 * 1e3, A = async (A, j, M, N, P, F, I, L) => {
|
|
|
35
35
|
if (!M || I.length === 0) return;
|
|
36
36
|
let R;
|
|
37
37
|
try {
|
|
38
|
-
let o =
|
|
38
|
+
let o = m(j);
|
|
39
39
|
await ee(j === e.ethMainnet ? ne : k);
|
|
40
40
|
let s = await w(I, P, M, o);
|
|
41
41
|
if (!s.length) {
|
|
42
42
|
C(p.AutoShieldTxStatus, { message: i.AUTO_SHIELD_SKIPPED });
|
|
43
43
|
return;
|
|
44
44
|
}
|
|
45
|
-
let f = (await g(await b(j), j)).filter((e) => e !== void 0), { prices: _ } = await
|
|
45
|
+
let f = (await g(await b(j), j)).filter((e) => e !== void 0), { prices: _ } = await te.getTokenPrices(j, f.map((e) => e.erc20TokenAddress)), z = new Map(_.map((e, t) => [f[t].erc20TokenAddress.toLowerCase(), e])), B = s.map(({ token: e }) => e), V = s.map(({ balance: e }) => e), H = B.map(({ erc20TokenAddress: e }) => e), U = x(A, j, H, await v(j, B, V, M)), W = await y(j, P, H, c.Emporium, U.map((e) => S(e, M, j))), { flatFee: G } = W ?? {}, K = await h(j, W.feeToken);
|
|
46
46
|
if (!K) return;
|
|
47
47
|
let q = a(K, G), J = (z.get(K.erc20TokenAddress.toLowerCase()) ?? 0) * Number(q), Y = await E(P, J, j, B, U, await T(f, j, A, M, o, z), W, H, M);
|
|
48
48
|
if (!Y) return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../functions/utils/caseInsensitive.utils.cjs`),r=require(`../../error-handling/error-codes.constants.cjs`),i=require(`../../functions/web3/etherFunctions.cjs`),a=require(`../../functions/utils/addresses.cjs`),o=require(`../../types/external-action.types.cjs`),s=require(`../../types/token.types.cjs`),c=require(`../../API/API.cjs`),l=require(`../../functions/utils/erc20tokenFunctions.cjs`),u=require(`../AccountActions/AccountActions.cjs`),d=require(`../../functions/pre-transaction/getFeeStructure.cjs`),f=require(`../../functions/utils/fees.utils.cjs`),p=require(`../../functions/private-wallet/emporium.helpers.cjs`),m=require(`../../constants/addresses.constants.cjs`),h=require(`../../constants/bridging.constants.cjs`),g=require(`../../functions/utils/convertEmporiumOpToCallInfo.cjs`),_=require(`../../functions/utils/enclave-utxo-storage.cjs`),v=require(`../../functions/utils/bridge-arrival.utils.cjs`),y=require(`../../functions/utils/temp-wallet.utils.cjs`),b=require(`../../API/callNearIntentsAPI.cjs`),x=require(`../../functions/utils/nearIntents.utils.cjs`),S=require(`../../functions/web3/lifiAPI.cjs`),C=require(`../../functions/utils/bridge-claimable-utxo.utils.cjs`);var w=async(e,r,d,f,h,g,_,v)=>{let{chainId:b}=r,x=d.chainId,C=r.erc20TokenAddress,w=m.SWAP_ROUTER_ADDRESSES[o.ExternalActionId.Lifi][b];if(!w)throw Error(`LIFI not configured for chain ${b}`);let T=i.randomBigInt(6),{sourceSubAccount:E,destinationSubAccount:D}=y.deriveBridgeTempWallets(e,b,x,T),O=u.AccountActions.getAddressFromSubAccount(b,E),k=u.AccountActions.getAddressFromSubAccount(x,D);if(!O||!k)throw Error(`Missing temp wallet address for LIFI bridge`);let{lifiDataValue:A,outSwapAmountValue:j,extraNativeTokenFee:M}=await S.getLifiPrice(r,d,f,h,O,k),N={calldata:A,expectedAmount:j,nativeFee:M},P=i.getAmountInWei(r,f),F=Array.from(new Set([b,x])),I=a.hashEthereumAddress(await e.getEthereumAddress());await Promise.all(F.map(e=>c.API.addTemporaryWalletNonce(e,I,Number(T),s.TemporaryWalletRecoveryDestination.Confidential)));let L=n.caseInsensitiveEqual(C,t.zeroAddress),R=N.nativeFee>0n&&!L,z=L?P+N.nativeFee:P,B=[r],V=[-z];if(R){let e=await l.getErc20TokenFromAPI(b,t.zeroAddress);if(!e)throw Error(`Native token not found for bridge fee`);B.push(e),V.push(-N.nativeFee)}let H=p.createLifiBridgeOps(e,b,O,w,C,z,P,N),U=B.map((e,t)=>({token:e,amount:V[t]}));return{tempSubAccount:D,sourceTxHash:await e.actionPrivateWallet(b,B,V,V.map(()=>!1),H,U,E,g??C,_,void 0,!1,void 0,v,void 0),expectedAmount:N.expectedAmount}},T=async(e,t,n,r,o,l,d,f)=>{let p=n.chainId,m=i.randomBigInt(6),g=y.buildTempSubAccountForChain(e,p,m),_=u.AccountActions.getAddressFromSubAccount(p,g);if(!_)throw Error(`Missing temp wallet address for NEAR bridge`);let v=a.hashEthereumAddress(await e.getEthereumAddress());await c.API.addTemporaryWalletNonce(p,v,Number(m),s.TemporaryWalletRecoveryDestination.Confidential);let[S,C]=await Promise.all([x.resolveNearAssetId(t.chainId,t.erc20TokenAddress),x.resolveNearAssetId(p,n.erc20TokenAddress)]),w=i.getAmountInWei(t,r),T=new Date(Date.now()+h.NEAR_BRIDGE_QUOTE_DEADLINE_BUFFER_MS).toISOString(),{quote:E}=await b.getNearIntentsQuote({dry:!1,swapType:`EXACT_INPUT`,slippageTolerance:Math.round(o*1e4)||100,originAsset:S,depositType:`ORIGIN_CHAIN`,destinationAsset:C,amount:w.toString(),recipient:_,recipientType:`DESTINATION_CHAIN`,refundTo:e.userKeys.getNearIntentsAccountId(),refundType:`INTENTS`,deadline:T});if(!E.depositAddress)throw Error(`NEAR Intents quote returned no deposit address`);let D=await e.withdraw([t],[-w],E.depositAddress,!1,l??t.erc20TokenAddress,d,void 0,f);return{tempSubAccount:g,sourceTxHash:typeof D==`string`?D:D.hash,expectedAmount:BigInt(E.amountOut)}},E=async(n,i,a,s,c)=>{let l=i.chainId,m=i.erc20TokenAddress,h=u.AccountActions.getAddressFromSubAccount(l,a);if(!h)throw Error(`Missing temp wallet address for bridge shield`);let{recipientInfo:v,claimable:y}=C.resolveBridgeRecipient(n,c);if(y&&await _.storeClaimableKeyInEnclave(await n.getEthereumAddressByChain(l),y.ethAddress,y.keys.getShieldedPrivateKey(),l,y.signature,n.userKeys.getSignature()),e.isSolanaLike(l))return C.hinkalSolanaShieldBridged(n,i,a,s,v,t.HINKAL_SHIELD_VARIABLE_RATE);let b=p.createTransaferEmporiumOpsBatch(n,l,[m],[s]),x=await f.calculateModifiedFeeStructure(l,i,s,await d.getFeeStructure(l,m,[m],o.ExternalActionId.Emporium,b.map(e=>g.convertEmporiumOpToCallInfo(e,h,l)),t.HINKAL_PRIVATE_SEND_VARIABLE_RATE)),S=s-f.calculateTotalFee(s,x);if(S<=0n)throw Error(r.transactionErrorCodes.INSUFFICIENT_FUNDS_TO_TRANSACT);return{destTxHash:await n.proxyToPrivate([i],[S],a,v,x.feeToken,x),shieldedAmount:S}},D=async(t,n,r,i,a,o=h.DEFAULT_BRIDGING_SLIPPAGE_DECIMAL,s,c,l)=>{let{tempSubAccount:d,sourceTxHash:f,expectedAmount:p}=e.isNearIntentsBridgeSource(n.chainId)?await T(t,n,r,i,o,s,c,l):await w(t,n,r,i,o,s,c,l),m=u.AccountActions.getAddressFromSubAccount(r.chainId,d);if(!m)throw Error(`Missing temp wallet address for bridge`);let{destTxHash:g,shieldedAmount:_}=await E(t,r,d,await v.waitForBridgeArrival(r.chainId,m,r.erc20TokenAddress,p,o),a);return{sourceTxHash:f,destTxHash:g,destinationTokenAmount:_.toString()}};exports.hinkalBridgePrivateToPrivate=D;
|
|
1
|
+
const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../functions/utils/caseInsensitive.utils.cjs`),r=require(`../../error-handling/error-codes.constants.cjs`),i=require(`../../functions/web3/etherFunctions.cjs`),a=require(`../../functions/utils/addresses.cjs`),o=require(`../../types/external-action.types.cjs`),s=require(`../../types/token.types.cjs`),c=require(`../../API/API.cjs`),l=require(`../../functions/utils/erc20tokenFunctions.cjs`),u=require(`../AccountActions/AccountActions.cjs`),d=require(`../../functions/pre-transaction/getFeeStructure.cjs`),f=require(`../../functions/utils/fees.utils.cjs`),p=require(`../../functions/private-wallet/emporium.helpers.cjs`),m=require(`../../constants/addresses.constants.cjs`),h=require(`../../constants/bridging.constants.cjs`),g=require(`../../functions/utils/convertEmporiumOpToCallInfo.cjs`),_=require(`../../functions/utils/enclave-utxo-storage.cjs`),v=require(`../../functions/utils/bridge-arrival.utils.cjs`),y=require(`../../functions/utils/temp-wallet.utils.cjs`),b=require(`../../API/callNearIntentsAPI.cjs`),x=require(`../../functions/utils/nearIntents.utils.cjs`),S=require(`../../functions/web3/lifiAPI.cjs`),C=require(`../../functions/utils/bridge-claimable-utxo.utils.cjs`);var w=async(e,r,d,f,h,g,_,v)=>{let{chainId:b}=r,x=d.chainId,C=r.erc20TokenAddress,w=m.SWAP_ROUTER_ADDRESSES[o.ExternalActionId.Lifi][b];if(!w)throw Error(`LIFI not configured for chain ${b}`);let T=i.randomBigInt(6),{sourceSubAccount:E,destinationSubAccount:D}=y.deriveBridgeTempWallets(e,b,x,T),O=u.AccountActions.getAddressFromSubAccount(b,E),k=u.AccountActions.getAddressFromSubAccount(x,D);if(!O||!k)throw Error(`Missing temp wallet address for LIFI bridge`);let{lifiDataValue:A,outSwapAmountValue:j,extraNativeTokenFee:M}=await S.getLifiPrice(r,d,f,h,O,k),N={calldata:A,expectedAmount:j,nativeFee:M},P=i.getAmountInWei(r,f),F=Array.from(new Set([b,x])),I=a.hashEthereumAddress(await e.getEthereumAddress());await Promise.all(F.map(e=>c.API.addTemporaryWalletNonce(e,I,Number(T),s.TemporaryWalletRecoveryDestination.Confidential)));let L=n.caseInsensitiveEqual(C,t.zeroAddress),R=N.nativeFee>0n&&!L,z=L?P+N.nativeFee:P,B=[r],V=[-z];if(R){let e=await l.getErc20TokenFromAPI(b,t.zeroAddress);if(!e)throw Error(`Native token not found for bridge fee`);B.push(e),V.push(-N.nativeFee)}let H=p.createLifiBridgeOps(e,b,O,w,C,z,P,N),U=B.map((e,t)=>({token:e,amount:V[t]}));return{tempSubAccount:D,sourceTxHash:await e.actionPrivateWallet(b,B,V,V.map(()=>!1),H,U,E,g??C,_,void 0,!1,void 0,v,void 0,d),expectedAmount:N.expectedAmount}},T=async(e,t,n,r,o,l,d,f)=>{let p=n.chainId,m=i.randomBigInt(6),g=y.buildTempSubAccountForChain(e,p,m),_=u.AccountActions.getAddressFromSubAccount(p,g);if(!_)throw Error(`Missing temp wallet address for NEAR bridge`);let v=a.hashEthereumAddress(await e.getEthereumAddress());await c.API.addTemporaryWalletNonce(p,v,Number(m),s.TemporaryWalletRecoveryDestination.Confidential);let[S,C]=await Promise.all([x.resolveNearAssetId(t.chainId,t.erc20TokenAddress),x.resolveNearAssetId(p,n.erc20TokenAddress)]),w=i.getAmountInWei(t,r),T=new Date(Date.now()+h.NEAR_BRIDGE_QUOTE_DEADLINE_BUFFER_MS).toISOString(),{quote:E}=await b.getNearIntentsQuote({dry:!1,swapType:`EXACT_INPUT`,slippageTolerance:Math.round(o*1e4)||100,originAsset:S,depositType:`ORIGIN_CHAIN`,destinationAsset:C,amount:w.toString(),recipient:_,recipientType:`DESTINATION_CHAIN`,refundTo:e.userKeys.getNearIntentsAccountId(),refundType:`INTENTS`,deadline:T});if(!E.depositAddress)throw Error(`NEAR Intents quote returned no deposit address`);let D=await e.withdraw([t],[-w],E.depositAddress,!1,l??t.erc20TokenAddress,d,void 0,f);return{tempSubAccount:g,sourceTxHash:typeof D==`string`?D:D.hash,expectedAmount:BigInt(E.amountOut)}},E=async(n,i,a,s,c)=>{let l=i.chainId,m=i.erc20TokenAddress,h=u.AccountActions.getAddressFromSubAccount(l,a);if(!h)throw Error(`Missing temp wallet address for bridge shield`);let{recipientInfo:v,claimable:y}=C.resolveBridgeRecipient(n,c);if(y&&await _.storeClaimableKeyInEnclave(await n.getEthereumAddressByChain(l),y.ethAddress,y.keys.getShieldedPrivateKey(),l,y.signature,n.userKeys.getSignature()),e.isSolanaLike(l))return C.hinkalSolanaShieldBridged(n,i,a,s,v,t.HINKAL_SHIELD_VARIABLE_RATE);let b=p.createTransaferEmporiumOpsBatch(n,l,[m],[s]),x=await f.calculateModifiedFeeStructure(l,i,s,await d.getFeeStructure(l,m,[m],o.ExternalActionId.Emporium,b.map(e=>g.convertEmporiumOpToCallInfo(e,h,l)),t.HINKAL_PRIVATE_SEND_VARIABLE_RATE)),S=s-f.calculateTotalFee(s,x);if(S<=0n)throw Error(r.transactionErrorCodes.INSUFFICIENT_FUNDS_TO_TRANSACT);return{destTxHash:await n.proxyToPrivate([i],[S],a,v,x.feeToken,x),shieldedAmount:S}},D=async(t,n,r,i,a,o=h.DEFAULT_BRIDGING_SLIPPAGE_DECIMAL,s,c,l)=>{let{tempSubAccount:d,sourceTxHash:f,expectedAmount:p}=e.isNearIntentsBridgeSource(n.chainId)?await T(t,n,r,i,o,s,c,l):await w(t,n,r,i,o,s,c,l),m=u.AccountActions.getAddressFromSubAccount(r.chainId,d);if(!m)throw Error(`Missing temp wallet address for bridge`);let{destTxHash:g,shieldedAmount:_}=await E(t,r,d,await v.waitForBridgeArrival(r.chainId,m,r.erc20TokenAddress,p,o),a);return{sourceTxHash:f,destTxHash:g,destinationTokenAmount:_.toString()}};exports.hinkalBridgePrivateToPrivate=D;
|
|
@@ -46,7 +46,7 @@ var N = async (e, t, n, r, o, h, g, _) => {
|
|
|
46
46
|
}));
|
|
47
47
|
return {
|
|
48
48
|
tempSubAccount: E,
|
|
49
|
-
sourceTxHash: await e.actionPrivateWallet(y, V, H, H.map(() => !1), U, W, T, h ?? S, g, void 0, !1, void 0, _, void 0),
|
|
49
|
+
sourceTxHash: await e.actionPrivateWallet(y, V, H, H.map(() => !1), U, W, T, h ?? S, g, void 0, !1, void 0, _, void 0, n),
|
|
50
50
|
expectedAmount: P.expectedAmount
|
|
51
51
|
};
|
|
52
52
|
}, P = async (e, t, n, r, i, a, o, u) => {
|