@hinkal/common 0.3.11 → 0.3.13

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.
Files changed (200) hide show
  1. package/README.md +13 -13
  2. package/common/src/API/API.cjs +1 -1
  3. package/common/src/API/API.d.ts +3 -0
  4. package/common/src/API/API.mjs +5 -2
  5. package/common/src/API/evm-token-assets.cjs +1 -0
  6. package/common/src/API/evm-token-assets.mjs +14 -0
  7. package/common/src/API/index.cjs +1 -1
  8. package/common/src/API/index.d.ts +1 -0
  9. package/common/src/API/index.mjs +1 -0
  10. package/common/src/API/receiveVaultCalls.cjs +1 -0
  11. package/common/src/API/receiveVaultCalls.d.ts +10 -0
  12. package/common/src/API/receiveVaultCalls.mjs +32 -0
  13. package/common/src/constants/contracts.constants.cjs +1 -1
  14. package/common/src/constants/contracts.constants.mjs +5 -1
  15. package/common/src/constants/deploy-data/deploy-data-arbMainnet.json.cjs +1 -1
  16. package/common/src/constants/deploy-data/deploy-data-arbMainnet.json.mjs +2 -1
  17. package/common/src/constants/deploy-data/deploy-data-arcTestnet.json.cjs +1 -1
  18. package/common/src/constants/deploy-data/deploy-data-arcTestnet.json.mjs +2 -1
  19. package/common/src/constants/deploy-data/deploy-data-base.json.cjs +1 -1
  20. package/common/src/constants/deploy-data/deploy-data-base.json.mjs +2 -1
  21. package/common/src/constants/deploy-data/deploy-data-bnbMainnet.json.cjs +1 -1
  22. package/common/src/constants/deploy-data/deploy-data-bnbMainnet.json.mjs +2 -1
  23. package/common/src/constants/deploy-data/deploy-data-ethMainnet.json.cjs +1 -1
  24. package/common/src/constants/deploy-data/deploy-data-ethMainnet.json.mjs +2 -1
  25. package/common/src/constants/deploy-data/deploy-data-localhost.json.cjs +1 -1
  26. package/common/src/constants/deploy-data/deploy-data-localhost.json.mjs +2 -1
  27. package/common/src/constants/deploy-data/deploy-data-optimism.json.cjs +1 -1
  28. package/common/src/constants/deploy-data/deploy-data-optimism.json.mjs +2 -1
  29. package/common/src/constants/deploy-data/deploy-data-optimismTest.json.cjs +1 -1
  30. package/common/src/constants/deploy-data/deploy-data-optimismTest.json.mjs +2 -1
  31. package/common/src/constants/deploy-data/deploy-data-polygon.json.cjs +1 -1
  32. package/common/src/constants/deploy-data/deploy-data-polygon.json.mjs +2 -1
  33. package/common/src/constants/deploy-data/deploy-data-sepoliaTestnet.json.cjs +1 -1
  34. package/common/src/constants/deploy-data/deploy-data-sepoliaTestnet.json.mjs +2 -1
  35. package/common/src/constants/deploy-data/deploy-data-tempo.json.cjs +1 -1
  36. package/common/src/constants/deploy-data/deploy-data-tempo.json.mjs +2 -1
  37. package/common/src/constants/deploy-data/deploy-data-tronMainnet.json.cjs +1 -1
  38. package/common/src/constants/deploy-data/deploy-data-tronMainnet.json.mjs +2 -1
  39. package/common/src/constants/deploy-data/deploy-data-tronNile.json.cjs +1 -1
  40. package/common/src/constants/deploy-data/deploy-data-tronNile.json.mjs +2 -1
  41. package/common/src/constants/deploy-data/shared-deploy-data-evm.json.cjs +1 -1
  42. package/common/src/constants/deploy-data/shared-deploy-data-evm.json.mjs +2 -1
  43. package/common/src/constants/deploy-data/shared-deploy-data-tron.json.cjs +1 -1
  44. package/common/src/constants/deploy-data/shared-deploy-data-tron.json.mjs +3 -2
  45. package/common/src/constants/events.constants.d.ts +1 -0
  46. package/common/src/constants/protocol.constants.cjs +1 -1
  47. package/common/src/constants/protocol.constants.d.ts +6 -0
  48. package/common/src/constants/protocol.constants.mjs +2 -2
  49. package/common/src/constants/server.constants.cjs +1 -1
  50. package/common/src/constants/server.constants.d.ts +5 -0
  51. package/common/src/constants/server.constants.mjs +5 -0
  52. package/common/src/data-structures/Hinkal/Hinkal.cjs +1 -1
  53. package/common/src/data-structures/Hinkal/Hinkal.d.ts +6 -2
  54. package/common/src/data-structures/Hinkal/Hinkal.mjs +62 -50
  55. package/common/src/data-structures/Hinkal/IHinkal.d.ts +6 -2
  56. package/common/src/data-structures/Hinkal/handleAutoDepositBack.cjs +1 -1
  57. package/common/src/data-structures/Hinkal/handleAutoDepositBack.mjs +10 -10
  58. package/common/src/data-structures/Hinkal/hinkalActionReceive.cjs +1 -1
  59. package/common/src/data-structures/Hinkal/hinkalActionReceive.mjs +4 -4
  60. package/common/src/data-structures/Hinkal/hinkalBridgePrivateToPrivate.cjs +1 -1
  61. package/common/src/data-structures/Hinkal/hinkalBridgePrivateToPrivate.mjs +24 -24
  62. package/common/src/data-structures/Hinkal/hinkalDepositAndBridge.cjs +1 -1
  63. package/common/src/data-structures/Hinkal/hinkalDepositAndBridge.mjs +33 -33
  64. package/common/src/data-structures/Hinkal/hinkalDepositAndWithdraw.cjs +1 -1
  65. package/common/src/data-structures/Hinkal/hinkalDepositAndWithdraw.mjs +8 -8
  66. package/common/src/data-structures/Hinkal/hinkalProoflessDeposit.cjs +1 -1
  67. package/common/src/data-structures/Hinkal/hinkalProoflessDeposit.d.ts +1 -1
  68. package/common/src/data-structures/Hinkal/hinkalProoflessDeposit.mjs +22 -22
  69. package/common/src/data-structures/Hinkal/hinkalProoflessDeposit.utils.cjs +1 -1
  70. package/common/src/data-structures/Hinkal/hinkalProoflessDeposit.utils.mjs +8 -8
  71. package/common/src/data-structures/Hinkal/hinkalProxySwap.cjs +1 -1
  72. package/common/src/data-structures/Hinkal/hinkalProxySwap.mjs +5 -5
  73. package/common/src/data-structures/Hinkal/hinkalProxyToPrivate.cjs +1 -1
  74. package/common/src/data-structures/Hinkal/hinkalProxyToPrivate.mjs +4 -4
  75. package/common/src/data-structures/Hinkal/hinkalReceiveVaultAccount.cjs +1 -0
  76. package/common/src/data-structures/Hinkal/hinkalReceiveVaultAccount.d.ts +3 -0
  77. package/common/src/data-structures/Hinkal/hinkalReceiveVaultAccount.mjs +20 -0
  78. package/common/src/data-structures/Hinkal/hinkalReceiveVaultCreate.cjs +1 -0
  79. package/common/src/data-structures/Hinkal/hinkalReceiveVaultCreate.d.ts +3 -0
  80. package/common/src/data-structures/Hinkal/hinkalReceiveVaultCreate.mjs +33 -0
  81. package/common/src/data-structures/Hinkal/hinkalReceiveVaultRecover.cjs +1 -0
  82. package/common/src/data-structures/Hinkal/hinkalReceiveVaultRecover.d.ts +5 -0
  83. package/common/src/data-structures/Hinkal/hinkalReceiveVaultRecover.mjs +59 -0
  84. package/common/src/data-structures/Hinkal/hinkalReceiveVaultSettle.cjs +1 -0
  85. package/common/src/data-structures/Hinkal/hinkalReceiveVaultSettle.d.ts +6 -0
  86. package/common/src/data-structures/Hinkal/hinkalReceiveVaultSettle.mjs +8 -0
  87. package/common/src/data-structures/Hinkal/hinkalSolanaDeposit.cjs +1 -1
  88. package/common/src/data-structures/Hinkal/hinkalSolanaDeposit.d.ts +2 -2
  89. package/common/src/data-structures/Hinkal/hinkalSolanaDeposit.mjs +61 -49
  90. package/common/src/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.cjs +1 -1
  91. package/common/src/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.mjs +7 -7
  92. package/common/src/data-structures/Hinkal/hinkalSolanaProxyShield.cjs +1 -1
  93. package/common/src/data-structures/Hinkal/hinkalSolanaProxyShield.mjs +8 -8
  94. package/common/src/data-structures/Hinkal/hinkalSolanaProxySwap.cjs +1 -1
  95. package/common/src/data-structures/Hinkal/hinkalSolanaProxySwap.d.ts +1 -1
  96. package/common/src/data-structures/Hinkal/hinkalSolanaProxySwap.mjs +55 -40
  97. package/common/src/data-structures/Hinkal/hinkalSolanaTransfer.cjs +1 -1
  98. package/common/src/data-structures/Hinkal/hinkalSolanaTransfer.mjs +1 -1
  99. package/common/src/data-structures/Hinkal/hinkalSolanaWithdraw.cjs +1 -1
  100. package/common/src/data-structures/Hinkal/hinkalSolanaWithdraw.mjs +1 -1
  101. package/common/src/data-structures/Hinkal/hinkalTransact.cjs +1 -1
  102. package/common/src/data-structures/Hinkal/hinkalTransact.mjs +7 -6
  103. package/common/src/data-structures/Hinkal/hinkalTransfer.cjs +1 -1
  104. package/common/src/data-structures/Hinkal/hinkalTransfer.mjs +4 -4
  105. package/common/src/data-structures/Hinkal/index.d.ts +4 -0
  106. package/common/src/data-structures/TokenDBs/AlchemyPublicTokensDB.d.ts +0 -3
  107. package/common/src/data-structures/TokenDBs/EventsPublicTokensDB.d.ts +0 -1
  108. package/common/src/data-structures/TokenDBs/TronPublicTokensDB.d.ts +0 -2
  109. package/common/src/data-structures/crypto-keys/index.cjs +1 -1
  110. package/common/src/data-structures/crypto-keys/index.mjs +1 -1
  111. package/common/src/error-handling/error-codes.constants.cjs +1 -1
  112. package/common/src/error-handling/error-codes.constants.d.ts +4 -0
  113. package/common/src/error-handling/error-codes.constants.mjs +5 -2
  114. package/common/src/error-handling/get-error.message.cjs +1 -1
  115. package/common/src/error-handling/get-error.message.mjs +50 -49
  116. package/common/src/functions/index.cjs +1 -1
  117. package/common/src/functions/index.mjs +2 -1
  118. package/common/src/functions/pre-transaction/build-proofless-deposit-fee.cjs +1 -0
  119. package/common/src/functions/pre-transaction/build-proofless-deposit-fee.d.ts +4 -0
  120. package/common/src/functions/pre-transaction/build-proofless-deposit-fee.mjs +3 -0
  121. package/common/src/functions/pre-transaction/index.cjs +1 -1
  122. package/common/src/functions/pre-transaction/index.d.ts +1 -0
  123. package/common/src/functions/pre-transaction/index.mjs +1 -0
  124. package/common/src/functions/snarkjs/constructTxEnclaveVerify.cjs +1 -1
  125. package/common/src/functions/snarkjs/constructTxEnclaveVerify.mjs +2 -1
  126. package/common/src/functions/utils/abi.utils.cjs +1 -1
  127. package/common/src/functions/utils/abi.utils.mjs +4 -1
  128. package/common/src/functions/utils/encryptInputForEnclave.cjs +1 -1
  129. package/common/src/functions/utils/encryptInputForEnclave.d.ts +2 -1
  130. package/common/src/functions/utils/encryptInputForEnclave.mjs +1 -1
  131. package/common/src/functions/utils/erc20tokenFunctions.cjs +1 -1
  132. package/common/src/functions/utils/erc20tokenFunctions.mjs +11 -11
  133. package/common/src/functions/utils/fees.utils.cjs +1 -1
  134. package/common/src/functions/utils/fees.utils.mjs +1 -1
  135. package/common/src/functions/utils/getSignerFromContract.cjs +1 -1
  136. package/common/src/functions/utils/getSignerFromContract.d.ts +1 -1
  137. package/common/src/functions/utils/getSignerFromContract.mjs +2 -2
  138. package/common/src/functions/utils/getUtxosFromReceipt.utils.cjs +1 -1
  139. package/common/src/functions/utils/getUtxosFromReceipt.utils.mjs +1 -1
  140. package/common/src/functions/utils/getUtxosFromReceiptSolana.cjs +1 -1
  141. package/common/src/functions/utils/getUtxosFromReceiptSolana.mjs +1 -1
  142. package/common/src/functions/utils/index.cjs +1 -1
  143. package/common/src/functions/utils/index.d.ts +1 -0
  144. package/common/src/functions/utils/index.mjs +2 -1
  145. package/common/src/functions/utils/isSigner.cjs +1 -0
  146. package/common/src/functions/utils/isSigner.d.ts +2 -0
  147. package/common/src/functions/utils/isSigner.mjs +7 -0
  148. package/common/src/functions/utils/receive-vault-account.utils.cjs +1 -0
  149. package/common/src/functions/utils/receive-vault-account.utils.d.ts +8 -0
  150. package/common/src/functions/utils/receive-vault-account.utils.mjs +23 -0
  151. package/common/src/functions/utils/receive-vault-scan.utils.cjs +1 -0
  152. package/common/src/functions/utils/receive-vault-scan.utils.d.ts +2 -0
  153. package/common/src/functions/utils/receive-vault-scan.utils.mjs +60 -0
  154. package/common/src/functions/utils/receive-vault.utils.cjs +2 -0
  155. package/common/src/functions/utils/receive-vault.utils.d.ts +29 -0
  156. package/common/src/functions/utils/receive-vault.utils.mjs +151 -0
  157. package/common/src/functions/utils/string.utils.cjs +1 -1
  158. package/common/src/functions/utils/string.utils.mjs +12 -4
  159. package/common/src/functions/utils/temporary-wallet-recovery.utils.cjs +1 -1
  160. package/common/src/functions/utils/temporary-wallet-recovery.utils.mjs +1 -1
  161. package/common/src/functions/utils/transfer-claimable.utils.cjs +1 -1
  162. package/common/src/functions/utils/transfer-claimable.utils.mjs +1 -1
  163. package/common/src/functions/utils/wallet-token-discovery.utils.cjs +1 -0
  164. package/common/src/functions/utils/wallet-token-discovery.utils.d.ts +4 -0
  165. package/common/src/functions/utils/wallet-token-discovery.utils.mjs +36 -0
  166. package/common/src/functions/web3/functionCalls/transactCallDirect.cjs +1 -1
  167. package/common/src/functions/web3/functionCalls/transactCallDirect.mjs +11 -11
  168. package/common/src/types/ethereum-network.types.cjs +1 -1
  169. package/common/src/types/ethereum-network.types.d.ts +4 -1
  170. package/common/src/types/ethereum-network.types.mjs +1 -1
  171. package/common/src/types/external-action.types.cjs +1 -1
  172. package/common/src/types/external-action.types.d.ts +2 -1
  173. package/common/src/types/external-action.types.mjs +1 -1
  174. package/common/src/types/index.cjs +1 -1
  175. package/common/src/types/index.d.ts +1 -0
  176. package/common/src/types/index.mjs +1 -0
  177. package/common/src/types/receive-vault.types.cjs +1 -0
  178. package/common/src/types/receive-vault.types.d.ts +68 -0
  179. package/common/src/types/receive-vault.types.mjs +6 -0
  180. package/common/src/types/remote-tx-build.types.d.ts +5 -0
  181. package/common/src/webworker/{logError-cvFNxc-0.js → logError-BeXPKuv9.js} +1 -1
  182. package/common/src/webworker/package.json +10 -1
  183. package/common/src/webworker/snarkjsWorker/snarkjsWorkerLauncher.ts?worker&url.cjs +1 -1
  184. package/common/src/webworker/snarkjsWorker/snarkjsWorkerLauncher.ts?worker&url.mjs +1 -1
  185. package/common/src/webworker/snarkjsWorkerNode.cjs +1 -1
  186. package/common/src/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url.cjs +1 -1
  187. package/common/src/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url.mjs +1 -1
  188. package/common/src/webworker/utxoWorkerNode.cjs +1 -1
  189. package/common/src/webworker/viteWorkerURL.constant.cjs +3 -3
  190. package/common/src/webworker/viteWorkerURL.constant.mjs +3 -3
  191. package/common/src/webworker/workerProxy-DF35H7vU.js +1 -0
  192. package/common/src/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.cjs +1 -1
  193. package/common/src/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.mjs +1 -1
  194. package/common/src/webworker/zkProofWorkerNode.cjs +1 -1
  195. package/package.json +10 -1
  196. package/services/Hinkal.cjs +1 -1
  197. package/services/Hinkal.d.ts +1 -1
  198. package/services/Hinkal.mjs +2 -2
  199. package/types/IHinkal.d.ts +1 -1
  200. package/common/src/webworker/workerProxy-BHzCZ9HT.js +0 -1
@@ -1,85 +1,86 @@
1
- import { DIRECTLY_SHOW_MESSAGE_ERROR_CODES as e, UserFriendlyErrorCodes as t, insufficientResourcesErrorCodes as n, transactionErrorCodes as r } from "./error-codes.constants.mjs";
2
- import { ErrorWithAmount as i } from "./customErrors/ErrorWithAmount.mjs";
3
- import { FeeOverTransactionValueError as a } from "./customErrors/FeeOverTransactionValueError.mjs";
4
- import { ErrorCategory as o } from "./types.mjs";
5
- import { getGenericFeeOverTransactionValueErrorMessage as s } from "./customErrors/customErrors.helpers.mjs";
1
+ import { DIRECTLY_SHOW_MESSAGE_ERROR_CODES as e, TRON_ACCOUNT_NOT_ACTIVATED_PATTERN as t, UserFriendlyErrorCodes as n, insufficientResourcesErrorCodes as r, transactionErrorCodes as i } from "./error-codes.constants.mjs";
2
+ import { ErrorWithAmount as a } from "./customErrors/ErrorWithAmount.mjs";
3
+ import { FeeOverTransactionValueError as o } from "./customErrors/FeeOverTransactionValueError.mjs";
4
+ import { ErrorCategory as s } from "./types.mjs";
5
+ import { getGenericFeeOverTransactionValueErrorMessage as c } from "./customErrors/customErrors.helpers.mjs";
6
6
  import "./customErrors/index.mjs";
7
- import { TransactionRequestType as c } from "../types/transaction.types.mjs";
7
+ import { TransactionRequestType as l } from "../types/transaction.types.mjs";
8
8
  import "../types/index.mjs";
9
- import { isInsufficientFundsError as l } from "./isInsufficientFundsError.mjs";
9
+ import { isInsufficientFundsError as u } from "./isInsufficientFundsError.mjs";
10
10
  //#region libs/shared/common/src/error-handling/get-error.message.ts
11
- var u = (e, t) => {
11
+ var d = (e, t) => {
12
12
  let n = t.reduce((e, t) => {
13
13
  if (!(typeof e != "object" || !e || !(t in e))) return e[t];
14
14
  }, e);
15
15
  return typeof n == "string" && n ? n : void 0;
16
- }, d = (e) => {
16
+ }, f = (e) => {
17
17
  if (typeof e == "object" && e) {
18
- let t = u(e, [
18
+ let t = d(e, [
19
19
  "response",
20
20
  "data",
21
21
  "message"
22
- ]) ?? u(e, [
22
+ ]) ?? d(e, [
23
23
  "response",
24
24
  "data",
25
25
  "detail"
26
- ]) ?? u(e, ["data", "message"]) ?? u(e, ["data", "detail"]);
26
+ ]) ?? d(e, ["data", "message"]) ?? d(e, ["data", "detail"]);
27
27
  if (t) return t;
28
28
  if ("message" in e && typeof e.message == "string" && e.message) return e.message;
29
29
  if ("error" in e && typeof e.error == "string" && e.error) return e.error;
30
30
  }
31
31
  if (e instanceof Error) return e.message;
32
32
  if (typeof e == "string") return e;
33
- }, f = (e) => {
33
+ }, p = (e) => {
34
34
  switch (e) {
35
- case o.DEPOSIT: return "Deposit failed";
36
- case o.SWAP: return "Swap failed";
37
- case o.BRIDGE: return "Bridge failed";
38
- case o.WITHDRAW: return "Send failed";
39
- case o.Fund: return "Unshield failed";
40
- case o.Receive: return "Shield failed";
41
- case o.DappTransaction: return "DApp transaction failed";
42
- case o.Approve: return "Approval failed";
43
- default: return r.UNKNOWN;
35
+ case s.DEPOSIT: return "Deposit failed";
36
+ case s.SWAP: return "Swap failed";
37
+ case s.BRIDGE: return "Bridge failed";
38
+ case s.WITHDRAW: return "Send failed";
39
+ case s.Fund: return "Unshield failed";
40
+ case s.Receive: return "Shield failed";
41
+ case s.DappTransaction: return "DApp transaction failed";
42
+ case s.Approve: return "Approval failed";
43
+ default: return i.UNKNOWN;
44
44
  }
45
- }, p = (o, c) => {
46
- if (o instanceof a) return s(o, c);
47
- if (o instanceof i) return o.message;
48
- let u = d(o);
49
- if (u && l(u)) return n.INSUFFICIENT_FUNDS;
50
- if (u) {
51
- let n = u.toLowerCase(), i = Object.keys(r).find((e) => n === r[e].toLowerCase());
52
- if (i && i in t) return t[i];
53
- let a = Object.entries(r).find(([e, t]) => n.includes(t.toLowerCase()));
54
- if (a) return t[a[0]] ?? a[1];
55
- if (Object.values(e).find((e) => n.includes(e.toLowerCase()))) return u;
45
+ }, m = (s, l) => {
46
+ if (s instanceof o) return c(s, l);
47
+ if (s instanceof a) return s.message;
48
+ let d = f(s);
49
+ if (d && u(d)) return r.INSUFFICIENT_FUNDS;
50
+ if (d && t.test(d)) return n.TRON_ACCOUNT_NOT_ACTIVATED;
51
+ if (d) {
52
+ let t = d.toLowerCase(), r = Object.keys(i).find((e) => t === i[e].toLowerCase());
53
+ if (r && r in n) return n[r];
54
+ let a = Object.entries(i).find(([e, n]) => t.includes(n.toLowerCase()));
55
+ if (a) return n[a[0]] ?? a[1];
56
+ if (Object.values(e).find((e) => t.includes(e.toLowerCase()))) return d;
56
57
  }
57
- return c ? f(c) : r.UNKNOWN;
58
- }, m = (e, t) => {
58
+ return l ? p(l) : i.UNKNOWN;
59
+ }, h = (e, t) => {
59
60
  let n;
60
61
  switch (t) {
61
- case c.Send:
62
- case c.ProxySend:
63
- n = o.WITHDRAW;
62
+ case l.Send:
63
+ case l.ProxySend:
64
+ n = s.WITHDRAW;
64
65
  break;
65
- case c.SwapTokens:
66
- case c.ProxySwapTokens:
67
- n = o.SWAP;
66
+ case l.SwapTokens:
67
+ case l.ProxySwapTokens:
68
+ n = s.SWAP;
68
69
  break;
69
- case c.ReceiveFromShieldedAccount:
70
- n = o.Receive;
70
+ case l.ReceiveFromShieldedAccount:
71
+ n = s.Receive;
71
72
  break;
72
- case c.Fund:
73
- n = o.Fund;
73
+ case l.Fund:
74
+ n = s.Fund;
74
75
  break;
75
- case c.PrivateTransactionFromProxy:
76
- n = o.DappTransaction;
76
+ case l.PrivateTransactionFromProxy:
77
+ n = s.DappTransaction;
77
78
  break;
78
79
  default:
79
80
  n = void 0;
80
81
  break;
81
82
  }
82
- return p(e, n);
83
+ return m(e, n);
83
84
  };
84
85
  //#endregion
85
- export { d as extractMessage, p as getErrorMessage, m as getErrorMessageFromTransactionRequest };
86
+ export { f as extractMessage, m as getErrorMessage, h as getErrorMessageFromTransactionRequest };
@@ -1 +1 @@
1
- require(`./utils/abi.utils.cjs`),require(`./utils/serialize.utils.cjs`),require(`./utils/caseInsensitive.utils.cjs`),require(`./utils/amounts.utils.cjs`),require(`./web3/etherFunctions.cjs`),require(`./utils/time.utils.cjs`),require(`./utils/upToDateState.cjs`),require(`./utils/cacheFunctions.cjs`),require(`./utils/encodeTokenWithId.cjs`),require(`./utils/enclaveHandshakeService.cjs`),require(`./utils/encryptInputForEnclave.cjs`),require(`./utils/solanaMint.utils.cjs`),require(`./utils/serialize-utxos.utils.cjs`),require(`./utils/customEnclaveFunctionsRegister.cjs`),require(`./utils/tron.utils.cjs`),require(`./utils/addresses.cjs`),require(`./web3/events/getInputUtxoAndBalance.cjs`),require(`./utils/legacyKeys.cjs`),require(`./utils/auth.utils.cjs`),require(`./utils/string.utils.cjs`),require(`./utils/token-check.utils.cjs`),require(`./utils/map.utils.cjs`),require(`./utils/mutexes.utils.cjs`),require(`./utils/erc20tokenFunctions.cjs`),require(`./web3/events/getShieldedBalance.cjs`),require(`./pre-transaction/outputUtxoProcessing.cjs`),require(`./utils/external-action.utils.cjs`),require(`./snarkjs/common.snarkjs.cjs`),require(`./pre-transaction/solana.cjs`),require(`./snarkjs/signedMessageHash.cjs`),require(`./pre-transaction/process-gas-estimates.cjs`),require(`./pre-transaction/getVolatileTransferAmount.cjs`),require(`./pre-transaction/constructAdminData.cjs`),require(`./utils/create-provider.cjs`),require(`./pre-transaction/calculateSolanaNullifierCount.cjs`),require(`./pre-transaction/convert-okx-instructions.cjs`),require(`./utils/process.utils.cjs`),require(`./pre-transaction/sendV0Transaction.cjs`),require(`./utils/bytes32.utils.cjs`),require(`./pre-transaction/getFeeStructure.cjs`),require(`./pre-transaction/getExternalSwapAddress.cjs`),require(`./pre-transaction/speculativeUtxo.cjs`),require(`./pre-transaction/buildCommitmentValidationData.cjs`),require(`./pre-transaction/index.cjs`),require(`./snarkjs/generateZkProof.cjs`),require(`./snarkjs/generateMainAndCommitmentZkProof.cjs`),require(`./web3/getContractMetadata.cjs`),require(`./utils/solana-program.utils.cjs`),require(`./snarkjs/fetchOnChainRootHashes.cjs`),require(`./utils/getContractAddress.cjs`),require(`./private-wallet/emporium.helpers.cjs`),require(`./snarkjs/constructGeneralZkProof.cjs`),require(`./utils/getSignerFromContract.cjs`),require(`./utils/tronSimulation.utils.cjs`),require(`./utils/resolve-sync.utils.cjs`),require(`./utils/cacheDevice.utils.cjs`),require(`./utils/involves-permit2-op.cjs`),require(`./utils/convertEmporiumOpToCallInfo.cjs`),require(`./utils/getRecipientInfoFromUserKeys.cjs`),require(`./utils/publicBalance.utils.cjs`),require(`./utils/postToOffscreen.cjs`),require(`./utils/fees.utils.cjs`),require(`./utils/proxyAvatar.utils.cjs`),require(`./utils/enclave-utxo-storage.cjs`),require(`./utils/enclave-signature-storage.cjs`),require(`./utils/tx-confirmation.utils.cjs`),require(`./utils/bridge-arrival.utils.cjs`),require(`./utils/solana-sponsored.utils.cjs`),require(`./utils/temp-wallet.utils.cjs`),require(`./utils/mnemonics.cjs`),require(`./utils/nearIntents.utils.cjs`),require(`./utils/index.cjs`),require(`./web3/lifiAPI.cjs`),require(`./web3/okxAPI.cjs`),require(`./web3/index.cjs`),require(`./snarkjs/constructSolanaZkProof.cjs`),require(`./snarkjs/index.cjs`),require(`./private-wallet/emporium.swap.helpers.cjs`),require(`./private-wallet/index.cjs`),require(`./auto-deposit-back-helpers/get-tokens-to-deposit-back.cjs`),require(`./auto-deposit-back-helpers/get-gas-token-records.cjs`),require(`./auto-deposit-back-helpers/select-gas-token.cjs`),require(`./auto-deposit-back-helpers/update-hinkal.cjs`),require(`./auto-deposit-back-helpers/index.cjs`);
1
+ require(`./utils/abi.utils.cjs`),require(`./utils/serialize.utils.cjs`),require(`./utils/caseInsensitive.utils.cjs`),require(`./utils/amounts.utils.cjs`),require(`./web3/etherFunctions.cjs`),require(`./utils/time.utils.cjs`),require(`./utils/upToDateState.cjs`),require(`./utils/cacheFunctions.cjs`),require(`./utils/encodeTokenWithId.cjs`),require(`./utils/enclaveHandshakeService.cjs`),require(`./utils/encryptInputForEnclave.cjs`),require(`./utils/solanaMint.utils.cjs`),require(`./utils/serialize-utxos.utils.cjs`),require(`./utils/customEnclaveFunctionsRegister.cjs`),require(`./utils/tron.utils.cjs`),require(`./utils/addresses.cjs`),require(`./web3/events/getInputUtxoAndBalance.cjs`),require(`./utils/legacyKeys.cjs`),require(`./utils/auth.utils.cjs`),require(`./utils/receive-vault.utils.cjs`),require(`./utils/string.utils.cjs`),require(`./utils/token-check.utils.cjs`),require(`./utils/map.utils.cjs`),require(`./utils/mutexes.utils.cjs`),require(`./utils/erc20tokenFunctions.cjs`),require(`./web3/events/getShieldedBalance.cjs`),require(`./pre-transaction/outputUtxoProcessing.cjs`),require(`./utils/external-action.utils.cjs`),require(`./snarkjs/common.snarkjs.cjs`),require(`./pre-transaction/solana.cjs`),require(`./snarkjs/signedMessageHash.cjs`),require(`./pre-transaction/process-gas-estimates.cjs`),require(`./pre-transaction/getVolatileTransferAmount.cjs`),require(`./pre-transaction/constructAdminData.cjs`),require(`./utils/create-provider.cjs`),require(`./pre-transaction/calculateSolanaNullifierCount.cjs`),require(`./pre-transaction/convert-okx-instructions.cjs`),require(`./utils/process.utils.cjs`),require(`./pre-transaction/sendV0Transaction.cjs`),require(`./utils/bytes32.utils.cjs`),require(`./pre-transaction/getFeeStructure.cjs`),require(`./utils/fees.utils.cjs`),require(`./pre-transaction/getExternalSwapAddress.cjs`),require(`./pre-transaction/speculativeUtxo.cjs`),require(`./pre-transaction/buildCommitmentValidationData.cjs`),require(`./pre-transaction/index.cjs`),require(`./snarkjs/generateZkProof.cjs`),require(`./snarkjs/generateMainAndCommitmentZkProof.cjs`),require(`./web3/getContractMetadata.cjs`),require(`./utils/solana-program.utils.cjs`),require(`./snarkjs/fetchOnChainRootHashes.cjs`),require(`./utils/getContractAddress.cjs`),require(`./private-wallet/emporium.helpers.cjs`),require(`./snarkjs/constructGeneralZkProof.cjs`),require(`./utils/getSignerFromContract.cjs`),require(`./utils/tronSimulation.utils.cjs`),require(`./utils/resolve-sync.utils.cjs`),require(`./utils/cacheDevice.utils.cjs`),require(`./utils/involves-permit2-op.cjs`),require(`./utils/convertEmporiumOpToCallInfo.cjs`),require(`./utils/getRecipientInfoFromUserKeys.cjs`),require(`./utils/publicBalance.utils.cjs`),require(`./utils/postToOffscreen.cjs`),require(`./utils/proxyAvatar.utils.cjs`),require(`./utils/enclave-utxo-storage.cjs`),require(`./utils/enclave-signature-storage.cjs`),require(`./utils/tx-confirmation.utils.cjs`),require(`./utils/bridge-arrival.utils.cjs`),require(`./utils/solana-sponsored.utils.cjs`),require(`./utils/temp-wallet.utils.cjs`),require(`./utils/mnemonics.cjs`),require(`./utils/nearIntents.utils.cjs`),require(`./utils/index.cjs`),require(`./web3/lifiAPI.cjs`),require(`./web3/okxAPI.cjs`),require(`./web3/index.cjs`),require(`./snarkjs/constructSolanaZkProof.cjs`),require(`./snarkjs/index.cjs`),require(`./private-wallet/emporium.swap.helpers.cjs`),require(`./private-wallet/index.cjs`),require(`./auto-deposit-back-helpers/get-tokens-to-deposit-back.cjs`),require(`./auto-deposit-back-helpers/get-gas-token-records.cjs`),require(`./auto-deposit-back-helpers/select-gas-token.cjs`),require(`./auto-deposit-back-helpers/update-hinkal.cjs`),require(`./auto-deposit-back-helpers/index.cjs`);
@@ -17,6 +17,7 @@ import "./utils/addresses.mjs";
17
17
  import "./web3/events/getInputUtxoAndBalance.mjs";
18
18
  import "./utils/legacyKeys.mjs";
19
19
  import "./utils/auth.utils.mjs";
20
+ import "./utils/receive-vault.utils.mjs";
20
21
  import "./utils/string.utils.mjs";
21
22
  import "./utils/token-check.utils.mjs";
22
23
  import "./utils/map.utils.mjs";
@@ -38,6 +39,7 @@ import "./utils/process.utils.mjs";
38
39
  import "./pre-transaction/sendV0Transaction.mjs";
39
40
  import "./utils/bytes32.utils.mjs";
40
41
  import "./pre-transaction/getFeeStructure.mjs";
42
+ import "./utils/fees.utils.mjs";
41
43
  import "./pre-transaction/getExternalSwapAddress.mjs";
42
44
  import "./pre-transaction/speculativeUtxo.mjs";
43
45
  import "./pre-transaction/buildCommitmentValidationData.mjs";
@@ -59,7 +61,6 @@ import "./utils/convertEmporiumOpToCallInfo.mjs";
59
61
  import "./utils/getRecipientInfoFromUserKeys.mjs";
60
62
  import "./utils/publicBalance.utils.mjs";
61
63
  import "./utils/postToOffscreen.mjs";
62
- import "./utils/fees.utils.mjs";
63
64
  import "./utils/proxyAvatar.utils.mjs";
64
65
  import "./utils/enclave-utxo-storage.mjs";
65
66
  import "./utils/enclave-signature-storage.mjs";
@@ -0,0 +1 @@
1
+ require(`../../types/hinkal.types.cjs`),require(`../../error-handling/error-codes.constants.cjs`),require(`../utils/fees.utils.cjs`);
@@ -0,0 +1,4 @@
1
+ import { IHinkal } from '../../data-structures/Hinkal/IHinkal';
2
+ import { ERC20Token } from '../../types/token.types';
3
+ import { ProoflessFeeStructure } from '../../types/hinkal.types';
4
+ export declare const buildProoflessDepositFee: (hinkal: IHinkal, chainId: number, erc20Tokens: ERC20Token[], amountChanges: bigint[], variableRate: bigint) => Promise<ProoflessFeeStructure>;
@@ -0,0 +1,3 @@
1
+ import "../../types/hinkal.types.mjs";
2
+ import "../../error-handling/error-codes.constants.mjs";
3
+ import "../utils/fees.utils.mjs";
@@ -1 +1 @@
1
- require(`./outputUtxoProcessing.cjs`),require(`./solana.cjs`),require(`./process-gas-estimates.cjs`),require(`./getVolatileTransferAmount.cjs`),require(`./constructAdminData.cjs`),require(`./calculateSolanaNullifierCount.cjs`),require(`./addressTableLookup.cjs`),require(`./convert-okx-instructions.cjs`),require(`./sendV0Transaction.cjs`),require(`./store-proof.cjs`),require(`./sendInitNullifiersTransaction.cjs`),require(`./store-instructions.cjs`),require(`./ensureAmountChanges.cjs`),require(`./getFeeStructure.cjs`),require(`./getExternalSwapAddress.cjs`),require(`./speculativeUtxo.cjs`),require(`./buildCommitmentValidationData.cjs`);
1
+ require(`./outputUtxoProcessing.cjs`),require(`./solana.cjs`),require(`./process-gas-estimates.cjs`),require(`./getVolatileTransferAmount.cjs`),require(`./constructAdminData.cjs`),require(`./calculateSolanaNullifierCount.cjs`),require(`./addressTableLookup.cjs`),require(`./convert-okx-instructions.cjs`),require(`./sendV0Transaction.cjs`),require(`./store-proof.cjs`),require(`./sendInitNullifiersTransaction.cjs`),require(`./store-instructions.cjs`),require(`./ensureAmountChanges.cjs`),require(`./getFeeStructure.cjs`),require(`./build-proofless-deposit-fee.cjs`),require(`./getExternalSwapAddress.cjs`),require(`./speculativeUtxo.cjs`),require(`./buildCommitmentValidationData.cjs`);
@@ -13,6 +13,7 @@ export * from './sendInitNullifiersTransaction';
13
13
  export * from './store-instructions';
14
14
  export * from './ensureAmountChanges';
15
15
  export * from './getFeeStructure';
16
+ export * from './build-proofless-deposit-fee';
16
17
  export * from './getExternalSwapAddress';
17
18
  export * from './waitForDepositedUtxosInMerkleTree';
18
19
  export * from './speculativeUtxo';
@@ -12,6 +12,7 @@ import "./sendInitNullifiersTransaction.mjs";
12
12
  import "./store-instructions.mjs";
13
13
  import "./ensureAmountChanges.mjs";
14
14
  import "./getFeeStructure.mjs";
15
+ import "./build-proofless-deposit-fee.mjs";
15
16
  import "./getExternalSwapAddress.mjs";
16
17
  import "./speculativeUtxo.mjs";
17
18
  import "./buildCommitmentValidationData.mjs";
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../types/hinkal.types.cjs`),r=require(`../../crypto/poseidon.cjs`),i=require(`../../data-structures/crypto-keys/keys.cjs`),a=require(`../../data-structures/utxo/Utxo.cjs`),o=require(`../utils/solanaMint.utils.cjs`),s=require(`./common.snarkjs.cjs`),c=require(`./signedMessageHash.cjs`),l=require(`../pre-transaction/getSolanaCalldataHash.cjs`);let u=require(`ethers`),d=require(`@solana/web3.js`);var f=e=>e?.inputUtxos.flat().filter(e=>BigInt(e.amount)>0n).map(e=>new a.Utxo({amount:BigInt(e.amount),erc20TokenAddress:e.erc20TokenAddress,stealthAddress:e.stealthAddress,H0:[BigInt(e.H0[0]),BigInt(e.H0[1])],timeStamp:e.timeStamp}).getCommitment()),p=e=>{if(Array.isArray(e))return`[${e.map(p).join(`,`)}]`;if(e&&typeof e==`object`){let t=e;return`{${Object.keys(t).filter(e=>t[e]!==void 0).sort().map(e=>`${JSON.stringify(e)}:${p(t[e])}`).join(`,`)}}`}return JSON.stringify(e)},m=(e,t)=>{if(p({chainId:String(e.chainId),hinkalAddress:e.hinkalAddress??``,erc20Addresses:e.erc20Addresses,amountChanges:e.amountChanges,externalAddress:e.externalAddress,...e.originalSender?{originalSender:e.originalSender}:{},relay:e.relay??``,feeStructure:e.feeStructure?{feeToken:e.feeStructure.feeToken,flatFee:e.feeStructure.flatFee.toString(),variableRate:e.feeStructure.variableRate.toString()}:null,externalActionId:e.externalActionId??``,externalActionMetadata:e.externalActionMetadata??``,onChainCreation:e.onChainCreation??null,recipientAddress:e.recipientAddress??null,recipientAmounts:e.recipientAmounts??null,selfOutputAmounts:e.selfOutputAmounts??null,inputCommitments:e.inputCommitments??null,useBlockedUtxos:e.useBlockedUtxos??!1,createBlockedUtxos:e.createBlockedUtxos??!1,...e.forceEmptyUtxos?{forceEmptyUtxos:!0}:{},messageSeed:e.messageSeed??``,skipLock:e.skipLock??!1,...e.speculative?{speculative:e.speculative}:{},slippageValues:e.slippageValues??null})!==p(t))throw Error(`Enclave prepare-tx response does not match the request sent - refusing to sign`)},h=(e,t,n,r,i,o,s,c)=>{let l=s.map(BigInt),u=new Set,d=e.map((e,s)=>t[s].map((t,c)=>{let d=BigInt(t);if(d===0n)return`0`;let f=new a.Utxo({amount:d,erc20TokenAddress:e,nullifyingKey:o,spendingPublicKey:l,H0:[BigInt(n[s][c]),BigInt(r[s][c])],timeStamp:i[s][c]});return u.add(f.getCommitment()),f.getNullifier()}));if(c&&(u.size!==c.length||!c.every(e=>u.has(e))))throw Error(`Enclave prepare-tx spent a different set of notes than the caller authorized - refusing to sign`);return d},g=(e,t)=>e===0n?`0`:new a.Utxo({amount:e,...t}).getCommitment(),_=(e,t,n,r,i,a,o,s,c,l)=>{if((c?.length??0)!==(l?.length??0))throw Error(`Enclave prepare-tx request has mismatched recipientAddress/recipientAmounts - refusing to sign`);let u=t?.length??1,d=s.map(BigInt);return e.map((e,t)=>{let s=Array.from({length:u},(s,c)=>g(BigInt(n[t][c]),{erc20TokenAddress:e,nullifyingKey:o,spendingPublicKey:d,H0:[BigInt(r[t][c]),BigInt(i[t][c])],timeStamp:a})),f=(c??[]).map((n,r)=>{let[i,o,s]=n.split(`,`);return g(BigInt(l[r][t]),{erc20TokenAddress:e,stealthAddress:i,H0:[BigInt(o),BigInt(s)],timeStamp:a})});return[...s,...f]})},v=(e,t,n,r,i)=>{r&&r.forEach((e,t)=>{if(n[0][t]!==e)throw Error(`Enclave prepare-tx self-output amounts do not match the requested selfOutputAmounts - refusing to sign`)});let a=r?.length??1;e.forEach((e,r)=>{let o=t[r].reduce((e,t)=>e+BigInt(t),0n),s=n[r].slice(0,a).reduce((e,t)=>e+BigInt(t),0n);if(o+BigInt(i[r])!==s)throw Error(`Enclave prepare-tx self-output amount does not match input total + requested amountChanges - refusing to sign`)})},y=e=>e.erc20Addresses.map((t,n)=>BigInt(e.amountChanges[n])+(e.recipientAmounts??[]).reduce((e,t)=>e+BigInt(t[n]),0n)),b=e=>e<0n?t.CIRCOM_P+e:e,x=(t,n,r)=>r.length===0?`mainEVMCircuitMin0`:`${e.isTronLike(t)?`mainTronCircuit`:`mainEVMCircuit`}${n.length}x${n[0].length}x${r[0].length}`,S=(t,n,r)=>e.isTronLike(t)?c.computeSignedMessageHashTron(n):c.computeSignedMessageHashEvm({...n,...r}),C=(e,i,a,o)=>{let c=r.poseidonFunction(BigInt(i.messageSeed)),l=e.relay||t.zeroAddress,u=l!==t.zeroAddress&&e.feeStructure?e.feeStructure:n.zeroFeeStructure,d=e.externalActionMetadata||`0x00`,f=e.erc20Addresses.map((t,n)=>e.onChainCreation?.[n]??!1),p=y(e),m=e.slippageValues?e.slippageValues.map(BigInt):s.getSlippageValues(p);return{calldataHash:s.createCallDataHash(s.calcPublicSignalCount(x(e.chainId,a,o),e.erc20Addresses,p,a,o),l,e.externalAddress,e.externalActionId??0n,c,d,i.encryptedOutputs,i.onChainEncryptedOutput,void 0,m,f,u,e.originalSender,void 0,e.chainId,e.createBlockedUtxos??!1),message:c,amountChangesModWrapped:p.map(b)}},w=(e,t,n,r,a,o)=>{if(!e?.some(Boolean))return;let[s,c]=i.UserKeys.getH1FromH0([BigInt(t),BigInt(n)],o);if(s!==BigInt(r)||c!==BigInt(a))throw Error(`Enclave prepare-tx tx-level stealth pair is not derived from the caller's own key - refusing to sign`)},T=(e,t,n,r,i,a,o,s)=>{if(S(e,{rootHashHinkal:BigInt(n.rootHashHinkal),erc20TokenAddresses:n.request.erc20Addresses,amountChanges:s,outTimeStamp:BigInt(n.outTimeStamp),inNullifiers:r,outCommitments:i,calldataHash:a,message:o,chainId:BigInt(e),verifyingContract:t},{outH1Ax:BigInt(n.outH1Ax),outH1Ay:BigInt(n.outH1Ay),H0Ax:BigInt(n.h0Ax),H0Ay:BigInt(n.h0Ay)})!==BigInt(n.signedMessageHash))throw Error(`Enclave prepare-tx signedMessageHash does not match one built from the caller's own data - refusing to sign`)},E=e=>e.map(e=>o.formatMintAddress(e).compressedAddress),D=e=>e.mintAddresses.map((t,n)=>BigInt(e.amountChanges[n])+(e.recipientAmounts?BigInt(e.recipientAmounts[n]):0n)),O=(e,t,n)=>{if(e.tokenNumber!==t.tokenNumber||e.nullifierAmount!==t.nullifierAmount||e.outputAmount!==t.outputAmount)throw Error(`Enclave ${n} dimensions do not match the caller's own data - refusing to sign`)},k=(e,t,n,i)=>{let a=r.poseidonFunction(BigInt(t.messageSeed));O(t.dimensions,{tokenNumber:e.mintAddresses.length,nullifierAmount:n[0]?.length??0,outputAmount:i[0]?.length??0},`prepare-solana-tx`);let o=e.mintAddresses.map((t,n)=>e.onChainCreation?.[n]??!1),s=o.some(Boolean),c=t.encryptedOutputs.flatMap((e,t)=>o[t]?e.map(()=>[]):e.map(e=>Array.from(u.ethers.getBytes(e)))),f=s?t.onChainEncryptedOutput:`0x`,p=(e.hinkalInstructions??[]).map(e=>({accountIndexes:Buffer.from(e.accountIndexes),data:Buffer.from(e.data),programIndex:e.programIndex})),m=(e.remainingAccounts??[]).map(e=>({pubkey:new d.PublicKey(e.pubkey),isSigner:e.isSigner,isWritable:e.isWritable}));return{calldataHash:l.getSolanaCalldataHash(t.dimensions,new d.PublicKey(e.recipient),new d.PublicKey(e.signer??e.relayAddress),c,f,BigInt(e.relayerFee??`0`),BigInt(e.variableRate??`0`),p,m),message:a}},A=(e,t,n,r,i,a,o,s,l)=>{if(c.computeSignedMessageHashSolana({rootHashHinkal:BigInt(e.rootHashHinkal),mintAccountPart1:t,mintAccountPart2:n,amountChanges:s,outTimeStamp:BigInt(e.outTimeStamp),inNullifiers:r,outCommitments:i,calldataHash:a,message:o,swapperAccountAdditionalSeed:l,outH1Ay:BigInt(e.outH1Ay),H0Ax:BigInt(e.h0Ax),H0Ay:BigInt(e.h0Ay)})!==BigInt(e.signedMessageHash))throw Error(`Enclave prepare-solana-tx signedMessageHash does not match one built from the caller's own data - refusing to sign`)},j=(e,t)=>{let n={chainId:String(e.chainId),mintAddresses:e.mintAddresses,amountChanges:e.amountChanges,relayAddress:e.relayAddress,recipient:e.recipient,signer:e.signer??e.relayAddress,functionName:e.functionName??`transact`,accounts:e.accounts,onChainCreation:e.onChainCreation??null,relayerFee:e.relayerFee??`0`,variableRate:e.variableRate??`0`,hinkalInstructions:e.hinkalInstructions??null,remainingAccounts:e.remainingAccounts??null,swapperAccountSalt:e.swapperAccountSalt??`0`,recipientAddress:e.recipientAddress??``,recipientAmounts:e.recipientAmounts??null,inputCommitments:e.inputCommitments??null,useBlockedUtxos:e.useBlockedUtxos??!1,messageSeed:e.messageSeed??``};if(e.recipientAmount&&(n.recipientAmount=e.recipientAmount),e.displayRecipient&&(n.displayRecipient=e.displayRecipient),e.speculative&&(n.speculative=e.speculative),p(n)!==p(t))throw Error(`Enclave prepare-solana-tx response does not match the request sent - refusing to sign`)},M=(e,t,n,i,a,o,c,l,u)=>{let d=h([n],u.inAmounts,u.inH0Ax,u.inH0Ay,u.inTimeStamps,c,l,void 0),f=_([n],void 0,u.outAmounts,u.outNoteH0Ax,u.outNoteH0Ay,u.outTimeStamp,c,l,void 0,void 0),p=[-u.inAmounts[0].reduce((e,t)=>e+BigInt(t),0n)];v([n],u.inAmounts,u.outAmounts,void 0,p.map(String));let m=p.map(b),g=r.poseidonFunction(BigInt(u.messageSeed)),y=s.getSlippageValues(p),C=s.createCallDataHash(s.calcPublicSignalCount(x(e,d,f),[n],m,d,f),i,a,0n,g,`0x00`,u.encryptedOutputs,u.onChainEncryptedOutput,void 0,y,[!1],o,void 0,void 0,e,!1);if(S(e,{rootHashHinkal:BigInt(u.rootHashHinkal),erc20TokenAddresses:[n],amountChanges:m,outTimeStamp:BigInt(u.outTimeStamp),inNullifiers:d,outCommitments:f,calldataHash:C,message:g,chainId:BigInt(e),verifyingContract:t},{outH1Ax:BigInt(u.outH1Ax),outH1Ay:BigInt(u.outH1Ay),H0Ax:BigInt(u.h0Ax),H0Ay:BigInt(u.h0Ay)})!==BigInt(u.signedMessageHash))throw Error(`Enclave prepare-stuck-withdraw job signedMessageHash does not match one built from the caller's own data - refusing to sign`)},N=(e,t,n,i,a,s,f)=>{let{compressedAddress:p,mintAccountPart1:m,mintAccountPart2:g}=o.formatMintAddress(e),y=h([p],f.inAmounts,f.inH0Ax,f.inH0Ay,f.inTimeStamps,a,s,void 0),x=_([p],void 0,f.outAmounts,f.outNoteH0Ax,f.outNoteH0Ay,f.outTimeStamp,a,s,void 0,void 0),S=[-f.inAmounts[0].reduce((e,t)=>e+BigInt(t),0n)];v([p],f.inAmounts,f.outAmounts,void 0,S.map(String));let C=S.map(b),w=r.poseidonFunction(BigInt(f.messageSeed)),T=f.encryptedOutputs.flatMap(e=>e.map(e=>Array.from(u.ethers.getBytes(e))));O(f.dimensions,{tokenNumber:1,nullifierAmount:y[0].length,outputAmount:x[0].length},`prepare-solana-stuck-withdraw`);let E=l.getSolanaCalldataHash(f.dimensions,new d.PublicKey(n),new d.PublicKey(t),T,`0x`,i.flatFee,i.variableRate,[],[]);if(c.computeSignedMessageHashSolana({rootHashHinkal:BigInt(f.rootHashHinkal),mintAccountPart1:[m],mintAccountPart2:[g],amountChanges:C,outTimeStamp:BigInt(f.outTimeStamp),inNullifiers:y,outCommitments:x,calldataHash:E,message:w,swapperAccountAdditionalSeed:r.poseidonFunction(0n),outH1Ay:BigInt(f.outH1Ay),H0Ax:BigInt(f.h0Ax),H0Ay:BigInt(f.h0Ay)})!==BigInt(f.signedMessageHash))throw Error(`Enclave prepare-solana-stuck-withdraw job signedMessageHash does not match one built from the caller's own data - refusing to sign`)},P=(e,t)=>{if(p({chainId:String(e.chainId),hinkalAddress:e.hinkalAddress??``,erc20Address:e.erc20Address,externalAddress:e.externalAddress,relay:e.relay,feeStructure:{feeToken:e.feeStructure.feeToken,flatFee:e.feeStructure.flatFee.toString(),variableRate:e.feeStructure.variableRate.toString()},hashedEthereumAddress:e.hashedEthereumAddress})!==p(t))throw Error(`Enclave prepare-stuck-withdraw response does not match the request sent - refusing to sign`)},F=(e,t)=>{if(p({chainId:String(e.chainId),mintAddress:e.mintAddress,recipient:e.recipient,relayAddress:e.relayAddress,signer:e.relayAddress,accounts:e.accounts,feeStructures:e.feeStructures,hashedEthereumAddress:e.hashedEthereumAddress})!==p(t))throw Error(`Enclave prepare-solana-stuck-withdraw response does not match the request sent - refusing to sign`)},I=(e,t)=>{m(e,t.request);let n=e.inputCommitments??f(e.speculative)??(e.forceEmptyUtxos?[]:void 0),r=h(e.erc20Addresses,t.inAmounts,t.inH0Ax,t.inH0Ay,t.inTimeStamps,e.nullifyingKey,e.spendingPublicKey,n),i=_(e.erc20Addresses,e.selfOutputAmounts,t.outAmounts,t.outNoteH0Ax,t.outNoteH0Ay,t.outTimeStamp,e.nullifyingKey,e.spendingPublicKey,e.recipientAddress,e.recipientAmounts);v(e.erc20Addresses,t.inAmounts,t.outAmounts,e.selfOutputAmounts,e.amountChanges),w(e.onChainCreation,t.h0Ax,t.h0Ay,t.outH1Ax,t.outH1Ay,e.nullifyingKey);let{calldataHash:a,message:o,amountChangesModWrapped:s}=C(e,t,r,i);T(e.chainId,e.hinkalAddress??``,t,r,i,a,o,s)},L=(e,t)=>{j(e,t.request);let n=E(e.mintAddresses),i=e.recipientAddress?[e.recipientAddress]:void 0,a=e.recipientAmounts?[e.recipientAmounts]:void 0,s=h(n,t.inAmounts,t.inH0Ax,t.inH0Ay,t.inTimeStamps,e.nullifyingKey,e.spendingPublicKey,e.inputCommitments??f(e.speculative)),c=_(n,void 0,t.outAmounts,t.outNoteH0Ax,t.outNoteH0Ay,t.outTimeStamp,e.nullifyingKey,e.spendingPublicKey,i,a);v(n,t.inAmounts,t.outAmounts,void 0,e.amountChanges);let{calldataHash:l,message:u}=k(e,t,s,c),d=D(e).map(b),p=e.mintAddresses.map(e=>o.formatMintAddress(e)),m=r.poseidonFunction(BigInt(e.swapperAccountSalt??`0`));A(t,p.map(e=>e.mintAccountPart1),p.map(e=>e.mintAccountPart2),s,c,l,u,d,m)},R=(e,t)=>{P(e,t.request),t.jobs.forEach(t=>M(e.chainId,e.hinkalAddress??``,e.erc20Address,e.relay,e.externalAddress,e.feeStructure,e.nullifyingKey,e.spendingPublicKey,t))},z=(e,t)=>{F(e,t.request),t.jobs.forEach(t=>{let n=t.inAmounts[0].filter(e=>BigInt(e)>0n).length,r=e.feeStructures[String(n)];if(!r)throw Error(`Enclave prepare-solana-stuck-withdraw response uses nullifierCount ${n} with no matching feeStructure - refusing to sign`);N(e.mintAddress,e.relayAddress,e.recipient,{feeToken:r.feeToken,flatFee:BigInt(r.flatFee),variableRate:BigInt(r.variableRate)},e.nullifyingKey,e.spendingPublicKey,t)})};exports.verifyPrepareSolanaStuckWithdrawResponse=z,exports.verifyPrepareSolanaTxResponse=L,exports.verifyPrepareStuckWithdrawResponse=R,exports.verifyPrepareTxResponse=I;
1
+ require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../types/hinkal.types.cjs`),r=require(`../../crypto/poseidon.cjs`),i=require(`../../data-structures/crypto-keys/keys.cjs`),a=require(`../../data-structures/utxo/Utxo.cjs`),o=require(`../utils/solanaMint.utils.cjs`),s=require(`./common.snarkjs.cjs`),c=require(`./signedMessageHash.cjs`),l=require(`../pre-transaction/getSolanaCalldataHash.cjs`);let u=require(`ethers`),d=require(`@solana/web3.js`);var f=e=>e?.inputUtxos.flat().filter(e=>BigInt(e.amount)>0n).map(e=>new a.Utxo({amount:BigInt(e.amount),erc20TokenAddress:e.erc20TokenAddress,stealthAddress:e.stealthAddress,H0:[BigInt(e.H0[0]),BigInt(e.H0[1])],timeStamp:e.timeStamp}).getCommitment()),p=e=>{if(Array.isArray(e))return`[${e.map(p).join(`,`)}]`;if(e&&typeof e==`object`){let t=e;return`{${Object.keys(t).filter(e=>t[e]!==void 0).sort().map(e=>`${JSON.stringify(e)}:${p(t[e])}`).join(`,`)}}`}return JSON.stringify(e)},m=(e,t)=>{if(p({chainId:String(e.chainId),hinkalAddress:e.hinkalAddress??``,erc20Addresses:e.erc20Addresses,amountChanges:e.amountChanges,externalAddress:e.externalAddress,...e.originalSender?{originalSender:e.originalSender}:{},relay:e.relay??``,feeStructure:e.feeStructure?{feeToken:e.feeStructure.feeToken,flatFee:e.feeStructure.flatFee.toString(),variableRate:e.feeStructure.variableRate.toString()}:null,externalActionId:e.externalActionId??``,externalActionMetadata:e.externalActionMetadata??``,onChainCreation:e.onChainCreation??null,recipientAddress:e.recipientAddress??null,recipientAmounts:e.recipientAmounts??null,selfOutputAmounts:e.selfOutputAmounts??null,inputCommitments:e.inputCommitments??null,useBlockedUtxos:e.useBlockedUtxos??!1,createBlockedUtxos:e.createBlockedUtxos??!1,...e.forceEmptyUtxos?{forceEmptyUtxos:!0}:{},messageSeed:e.messageSeed??``,skipLock:e.skipLock??!1,...e.speculative?{speculative:e.speculative}:{},slippageValues:e.slippageValues??null,...e.receiveVaultAddress?{receiveVaultAddress:e.receiveVaultAddress}:{}})!==p(t))throw Error(`Enclave prepare-tx response does not match the request sent - refusing to sign`)},h=(e,t,n,r,i,o,s,c)=>{let l=s.map(BigInt),u=new Set,d=e.map((e,s)=>t[s].map((t,c)=>{let d=BigInt(t);if(d===0n)return`0`;let f=new a.Utxo({amount:d,erc20TokenAddress:e,nullifyingKey:o,spendingPublicKey:l,H0:[BigInt(n[s][c]),BigInt(r[s][c])],timeStamp:i[s][c]});return u.add(f.getCommitment()),f.getNullifier()}));if(c&&(u.size!==c.length||!c.every(e=>u.has(e))))throw Error(`Enclave prepare-tx spent a different set of notes than the caller authorized - refusing to sign`);return d},g=(e,t)=>e===0n?`0`:new a.Utxo({amount:e,...t}).getCommitment(),_=(e,t,n,r,i,a,o,s,c,l)=>{if((c?.length??0)!==(l?.length??0))throw Error(`Enclave prepare-tx request has mismatched recipientAddress/recipientAmounts - refusing to sign`);let u=t?.length??1,d=s.map(BigInt);return e.map((e,t)=>{let s=Array.from({length:u},(s,c)=>g(BigInt(n[t][c]),{erc20TokenAddress:e,nullifyingKey:o,spendingPublicKey:d,H0:[BigInt(r[t][c]),BigInt(i[t][c])],timeStamp:a})),f=(c??[]).map((n,r)=>{let[i,o,s]=n.split(`,`);return g(BigInt(l[r][t]),{erc20TokenAddress:e,stealthAddress:i,H0:[BigInt(o),BigInt(s)],timeStamp:a})});return[...s,...f]})},v=(e,t,n,r,i)=>{r&&r.forEach((e,t)=>{if(n[0][t]!==e)throw Error(`Enclave prepare-tx self-output amounts do not match the requested selfOutputAmounts - refusing to sign`)});let a=r?.length??1;e.forEach((e,r)=>{let o=t[r].reduce((e,t)=>e+BigInt(t),0n),s=n[r].slice(0,a).reduce((e,t)=>e+BigInt(t),0n);if(o+BigInt(i[r])!==s)throw Error(`Enclave prepare-tx self-output amount does not match input total + requested amountChanges - refusing to sign`)})},y=e=>e.erc20Addresses.map((t,n)=>BigInt(e.amountChanges[n])+(e.recipientAmounts??[]).reduce((e,t)=>e+BigInt(t[n]),0n)),b=e=>e<0n?t.CIRCOM_P+e:e,x=(t,n,r)=>r.length===0?`mainEVMCircuitMin0`:`${e.isTronLike(t)?`mainTronCircuit`:`mainEVMCircuit`}${n.length}x${n[0].length}x${r[0].length}`,S=(t,n,r)=>e.isTronLike(t)?c.computeSignedMessageHashTron(n):c.computeSignedMessageHashEvm({...n,...r}),C=(e,i,a,o)=>{let c=r.poseidonFunction(BigInt(i.messageSeed)),l=e.relay||t.zeroAddress,u=l!==t.zeroAddress&&e.feeStructure?e.feeStructure:n.zeroFeeStructure,d=e.externalActionMetadata||`0x00`,f=e.erc20Addresses.map((t,n)=>e.onChainCreation?.[n]??!1),p=y(e),m=e.slippageValues?e.slippageValues.map(BigInt):s.getSlippageValues(p);return{calldataHash:s.createCallDataHash(s.calcPublicSignalCount(x(e.chainId,a,o),e.erc20Addresses,p,a,o),l,e.externalAddress,e.externalActionId??0n,c,d,i.encryptedOutputs,i.onChainEncryptedOutput,void 0,m,f,u,e.originalSender,void 0,e.chainId,e.createBlockedUtxos??!1),message:c,amountChangesModWrapped:p.map(b)}},w=(e,t,n,r,a,o)=>{if(!e?.some(Boolean))return;let[s,c]=i.UserKeys.getH1FromH0([BigInt(t),BigInt(n)],o);if(s!==BigInt(r)||c!==BigInt(a))throw Error(`Enclave prepare-tx tx-level stealth pair is not derived from the caller's own key - refusing to sign`)},T=(e,t,n,r,i,a,o,s)=>{if(S(e,{rootHashHinkal:BigInt(n.rootHashHinkal),erc20TokenAddresses:n.request.erc20Addresses,amountChanges:s,outTimeStamp:BigInt(n.outTimeStamp),inNullifiers:r,outCommitments:i,calldataHash:a,message:o,chainId:BigInt(e),verifyingContract:t},{outH1Ax:BigInt(n.outH1Ax),outH1Ay:BigInt(n.outH1Ay),H0Ax:BigInt(n.h0Ax),H0Ay:BigInt(n.h0Ay)})!==BigInt(n.signedMessageHash))throw Error(`Enclave prepare-tx signedMessageHash does not match one built from the caller's own data - refusing to sign`)},E=e=>e.map(e=>o.formatMintAddress(e).compressedAddress),D=e=>e.mintAddresses.map((t,n)=>BigInt(e.amountChanges[n])+(e.recipientAmounts?BigInt(e.recipientAmounts[n]):0n)),O=(e,t,n)=>{if(e.tokenNumber!==t.tokenNumber||e.nullifierAmount!==t.nullifierAmount||e.outputAmount!==t.outputAmount)throw Error(`Enclave ${n} dimensions do not match the caller's own data - refusing to sign`)},k=(e,t,n,i)=>{let a=r.poseidonFunction(BigInt(t.messageSeed));O(t.dimensions,{tokenNumber:e.mintAddresses.length,nullifierAmount:n[0]?.length??0,outputAmount:i[0]?.length??0},`prepare-solana-tx`);let o=e.mintAddresses.map((t,n)=>e.onChainCreation?.[n]??!1),s=o.some(Boolean),c=t.encryptedOutputs.flatMap((e,t)=>o[t]?e.map(()=>[]):e.map(e=>Array.from(u.ethers.getBytes(e)))),f=s?t.onChainEncryptedOutput:`0x`,p=(e.hinkalInstructions??[]).map(e=>({accountIndexes:Buffer.from(e.accountIndexes),data:Buffer.from(e.data),programIndex:e.programIndex})),m=(e.remainingAccounts??[]).map(e=>({pubkey:new d.PublicKey(e.pubkey),isSigner:e.isSigner,isWritable:e.isWritable}));return{calldataHash:l.getSolanaCalldataHash(t.dimensions,new d.PublicKey(e.recipient),new d.PublicKey(e.signer??e.relayAddress),c,f,BigInt(e.relayerFee??`0`),BigInt(e.variableRate??`0`),p,m),message:a}},A=(e,t,n,r,i,a,o,s,l)=>{if(c.computeSignedMessageHashSolana({rootHashHinkal:BigInt(e.rootHashHinkal),mintAccountPart1:t,mintAccountPart2:n,amountChanges:s,outTimeStamp:BigInt(e.outTimeStamp),inNullifiers:r,outCommitments:i,calldataHash:a,message:o,swapperAccountAdditionalSeed:l,outH1Ay:BigInt(e.outH1Ay),H0Ax:BigInt(e.h0Ax),H0Ay:BigInt(e.h0Ay)})!==BigInt(e.signedMessageHash))throw Error(`Enclave prepare-solana-tx signedMessageHash does not match one built from the caller's own data - refusing to sign`)},j=(e,t)=>{let n={chainId:String(e.chainId),mintAddresses:e.mintAddresses,amountChanges:e.amountChanges,relayAddress:e.relayAddress,recipient:e.recipient,signer:e.signer??e.relayAddress,functionName:e.functionName??`transact`,accounts:e.accounts,onChainCreation:e.onChainCreation??null,relayerFee:e.relayerFee??`0`,variableRate:e.variableRate??`0`,hinkalInstructions:e.hinkalInstructions??null,remainingAccounts:e.remainingAccounts??null,swapperAccountSalt:e.swapperAccountSalt??`0`,recipientAddress:e.recipientAddress??``,recipientAmounts:e.recipientAmounts??null,inputCommitments:e.inputCommitments??null,useBlockedUtxos:e.useBlockedUtxos??!1,messageSeed:e.messageSeed??``};if(e.recipientAmount&&(n.recipientAmount=e.recipientAmount),e.displayRecipient&&(n.displayRecipient=e.displayRecipient),e.speculative&&(n.speculative=e.speculative),p(n)!==p(t))throw Error(`Enclave prepare-solana-tx response does not match the request sent - refusing to sign`)},M=(e,t,n,i,a,o,c,l,u)=>{let d=h([n],u.inAmounts,u.inH0Ax,u.inH0Ay,u.inTimeStamps,c,l,void 0),f=_([n],void 0,u.outAmounts,u.outNoteH0Ax,u.outNoteH0Ay,u.outTimeStamp,c,l,void 0,void 0),p=[-u.inAmounts[0].reduce((e,t)=>e+BigInt(t),0n)];v([n],u.inAmounts,u.outAmounts,void 0,p.map(String));let m=p.map(b),g=r.poseidonFunction(BigInt(u.messageSeed)),y=s.getSlippageValues(p),C=s.createCallDataHash(s.calcPublicSignalCount(x(e,d,f),[n],m,d,f),i,a,0n,g,`0x00`,u.encryptedOutputs,u.onChainEncryptedOutput,void 0,y,[!1],o,void 0,void 0,e,!1);if(S(e,{rootHashHinkal:BigInt(u.rootHashHinkal),erc20TokenAddresses:[n],amountChanges:m,outTimeStamp:BigInt(u.outTimeStamp),inNullifiers:d,outCommitments:f,calldataHash:C,message:g,chainId:BigInt(e),verifyingContract:t},{outH1Ax:BigInt(u.outH1Ax),outH1Ay:BigInt(u.outH1Ay),H0Ax:BigInt(u.h0Ax),H0Ay:BigInt(u.h0Ay)})!==BigInt(u.signedMessageHash))throw Error(`Enclave prepare-stuck-withdraw job signedMessageHash does not match one built from the caller's own data - refusing to sign`)},N=(e,t,n,i,a,s,f)=>{let{compressedAddress:p,mintAccountPart1:m,mintAccountPart2:g}=o.formatMintAddress(e),y=h([p],f.inAmounts,f.inH0Ax,f.inH0Ay,f.inTimeStamps,a,s,void 0),x=_([p],void 0,f.outAmounts,f.outNoteH0Ax,f.outNoteH0Ay,f.outTimeStamp,a,s,void 0,void 0),S=[-f.inAmounts[0].reduce((e,t)=>e+BigInt(t),0n)];v([p],f.inAmounts,f.outAmounts,void 0,S.map(String));let C=S.map(b),w=r.poseidonFunction(BigInt(f.messageSeed)),T=f.encryptedOutputs.flatMap(e=>e.map(e=>Array.from(u.ethers.getBytes(e))));O(f.dimensions,{tokenNumber:1,nullifierAmount:y[0].length,outputAmount:x[0].length},`prepare-solana-stuck-withdraw`);let E=l.getSolanaCalldataHash(f.dimensions,new d.PublicKey(n),new d.PublicKey(t),T,`0x`,i.flatFee,i.variableRate,[],[]);if(c.computeSignedMessageHashSolana({rootHashHinkal:BigInt(f.rootHashHinkal),mintAccountPart1:[m],mintAccountPart2:[g],amountChanges:C,outTimeStamp:BigInt(f.outTimeStamp),inNullifiers:y,outCommitments:x,calldataHash:E,message:w,swapperAccountAdditionalSeed:r.poseidonFunction(0n),outH1Ay:BigInt(f.outH1Ay),H0Ax:BigInt(f.h0Ax),H0Ay:BigInt(f.h0Ay)})!==BigInt(f.signedMessageHash))throw Error(`Enclave prepare-solana-stuck-withdraw job signedMessageHash does not match one built from the caller's own data - refusing to sign`)},P=(e,t)=>{if(p({chainId:String(e.chainId),hinkalAddress:e.hinkalAddress??``,erc20Address:e.erc20Address,externalAddress:e.externalAddress,relay:e.relay,feeStructure:{feeToken:e.feeStructure.feeToken,flatFee:e.feeStructure.flatFee.toString(),variableRate:e.feeStructure.variableRate.toString()},hashedEthereumAddress:e.hashedEthereumAddress})!==p(t))throw Error(`Enclave prepare-stuck-withdraw response does not match the request sent - refusing to sign`)},F=(e,t)=>{if(p({chainId:String(e.chainId),mintAddress:e.mintAddress,recipient:e.recipient,relayAddress:e.relayAddress,signer:e.relayAddress,accounts:e.accounts,feeStructures:e.feeStructures,hashedEthereumAddress:e.hashedEthereumAddress})!==p(t))throw Error(`Enclave prepare-solana-stuck-withdraw response does not match the request sent - refusing to sign`)},I=(e,t)=>{m(e,t.request);let n=e.inputCommitments??f(e.speculative)??(e.forceEmptyUtxos?[]:void 0),r=h(e.erc20Addresses,t.inAmounts,t.inH0Ax,t.inH0Ay,t.inTimeStamps,e.nullifyingKey,e.spendingPublicKey,n),i=_(e.erc20Addresses,e.selfOutputAmounts,t.outAmounts,t.outNoteH0Ax,t.outNoteH0Ay,t.outTimeStamp,e.nullifyingKey,e.spendingPublicKey,e.recipientAddress,e.recipientAmounts);v(e.erc20Addresses,t.inAmounts,t.outAmounts,e.selfOutputAmounts,e.amountChanges),w(e.onChainCreation,t.h0Ax,t.h0Ay,t.outH1Ax,t.outH1Ay,e.nullifyingKey);let{calldataHash:a,message:o,amountChangesModWrapped:s}=C(e,t,r,i);T(e.chainId,e.hinkalAddress??``,t,r,i,a,o,s)},L=(e,t)=>{j(e,t.request);let n=E(e.mintAddresses),i=e.recipientAddress?[e.recipientAddress]:void 0,a=e.recipientAmounts?[e.recipientAmounts]:void 0,s=h(n,t.inAmounts,t.inH0Ax,t.inH0Ay,t.inTimeStamps,e.nullifyingKey,e.spendingPublicKey,e.inputCommitments??f(e.speculative)),c=_(n,void 0,t.outAmounts,t.outNoteH0Ax,t.outNoteH0Ay,t.outTimeStamp,e.nullifyingKey,e.spendingPublicKey,i,a);v(n,t.inAmounts,t.outAmounts,void 0,e.amountChanges);let{calldataHash:l,message:u}=k(e,t,s,c),d=D(e).map(b),p=e.mintAddresses.map(e=>o.formatMintAddress(e)),m=r.poseidonFunction(BigInt(e.swapperAccountSalt??`0`));A(t,p.map(e=>e.mintAccountPart1),p.map(e=>e.mintAccountPart2),s,c,l,u,d,m)},R=(e,t)=>{P(e,t.request),t.jobs.forEach(t=>M(e.chainId,e.hinkalAddress??``,e.erc20Address,e.relay,e.externalAddress,e.feeStructure,e.nullifyingKey,e.spendingPublicKey,t))},z=(e,t)=>{F(e,t.request),t.jobs.forEach(t=>{let n=t.inAmounts[0].filter(e=>BigInt(e)>0n).length,r=e.feeStructures[String(n)];if(!r)throw Error(`Enclave prepare-solana-stuck-withdraw response uses nullifierCount ${n} with no matching feeStructure - refusing to sign`);N(e.mintAddress,e.relayAddress,e.recipient,{feeToken:r.feeToken,flatFee:BigInt(r.flatFee),variableRate:BigInt(r.variableRate)},e.nullifyingKey,e.spendingPublicKey,t)})};exports.verifyPrepareSolanaStuckWithdrawResponse=z,exports.verifyPrepareSolanaTxResponse=L,exports.verifyPrepareStuckWithdrawResponse=R,exports.verifyPrepareTxResponse=I;
@@ -51,7 +51,8 @@ var _ = (e) => e?.inputUtxos.flat().filter((e) => BigInt(e.amount) > 0n).map((e)
51
51
  messageSeed: e.messageSeed ?? "",
52
52
  skipLock: e.skipLock ?? !1,
53
53
  ...e.speculative ? { speculative: e.speculative } : {},
54
- slippageValues: e.slippageValues ?? null
54
+ slippageValues: e.slippageValues ?? null,
55
+ ...e.receiveVaultAddress ? { receiveVaultAddress: e.receiveVaultAddress } : {}
55
56
  }) !== v(t)) throw Error("Enclave prepare-tx response does not match the request sent - refusing to sign");
56
57
  }, b = (e, t, n, r, i, a, s, c) => {
57
58
  let l = s.map(BigInt), u = /* @__PURE__ */ new Set(), d = e.map((e, s) => t[s].map((t, c) => {
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`);let e=require(`ethers`);var t=t=>JSON.parse(new e.ethers.Interface(t).formatJson()),n=e=>Object.fromEntries(Object.entries(e).map(([e,n])=>[e,t(n)]));exports.toJsonAbi=t,exports.withJsonAbis=n;
1
+ require(`../../../../_virtual/_rolldown/runtime.cjs`);let e=require(`ethers`);var t=t=>JSON.parse(new e.ethers.Interface(t).formatJson()).map(e=>e.type===`function`&&!e.stateMutability?{...e,stateMutability:`nonpayable`}:e),n=e=>Object.fromEntries(Object.entries(e).map(([e,n])=>[e,t(n)]));exports.toJsonAbi=t,exports.withJsonAbis=n;
@@ -1,5 +1,8 @@
1
1
  import { ethers as e } from "ethers";
2
2
  //#region libs/shared/common/src/functions/utils/abi.utils.ts
3
- var t = (t) => JSON.parse(new e.Interface(t).formatJson()), n = (e) => Object.fromEntries(Object.entries(e).map(([e, n]) => [e, t(n)]));
3
+ var t = (t) => JSON.parse(new e.Interface(t).formatJson()).map((e) => e.type === "function" && !e.stateMutability ? {
4
+ ...e,
5
+ stateMutability: "nonpayable"
6
+ } : e), n = (e) => Object.fromEntries(Object.entries(e).map(([e, n]) => [e, t(n)]));
4
7
  //#endregion
5
8
  export { t as toJsonAbi, n as withJsonAbis };
@@ -1 +1 @@
1
- const e=require(`../../../../_virtual/_rolldown/runtime.cjs`),t=require(`./serialize.utils.cjs`),n=require(`../../data-structures/http/HttpClient.cjs`);require(`../../data-structures/http/index.cjs`);const r=require(`./enclaveHandshakeService.cjs`),i=require(`../snarkjs/verifySignedEnclaveResponse.cjs`);let a=require(`ethers`),o=require(`libsodium-wrappers`);o=e.__toESM(o);let s=require(`node-forge`);s=e.__toESM(s);var c=e=>typeof e==`bigint`||typeof e==`number`?e.toString():e,l=e=>s.util.hexToBytes(e.replace(`0x`,``)),u=e=>{let t=structuredClone(e);return Object.entries(t).forEach(([e,n])=>{t[e]=c(n),Array.isArray(n)&&(Array.isArray(n[0])?t[e]=n.map(e=>e.map(c)):t[e]=n.map(c))}),t},d=(e,t)=>{let n=s.util.decode64(e),r=s.asn1.fromDer(s.util.createBuffer(n)),i=s.pki.publicKeyFromAsn1(r),a=s.util.binary.raw.encode(t),o=i.encrypt(a,`RSA-OAEP`,{md:s.md.sha1.create(),mgf1:{md:s.md.sha1.create()}});return s.util.encode64(o)},f=(e,t)=>{let n=o.default.randombytes_buf(o.default.crypto_secretbox_NONCEBYTES),r=o.default.crypto_secretbox_easy(t,n,e),i=l(a.ethers.hexlify(n)+a.ethers.hexlify(r).slice(2));return s.util.encode64(i)},p=(e,t)=>{let n=o.default.randombytes_buf(o.default.crypto_secretbox_KEYBYTES);return{keyCiphertext:d(t,n),inputCiphertext:f(n,e),key:n}},m=(e,n)=>{let r=typeof e==`string`?e:t.safeJsonStringify(u(e));return p(new TextEncoder().encode(r),n)},h=async e=>m(e,await r.enclaveHandshakeService.getPublicKey()),g=async e=>p(e,await r.enclaveHandshakeService.getPublicKey()),_=async()=>{let e=await r.enclaveHandshakeService.getPublicKey(),t=o.default.randombytes_buf(o.default.crypto_secretbox_KEYBYTES);return{keyCiphertext:d(e,t),key:t}},v=(e,t)=>{if(!e||typeof e!=`object`||!(`encrypted`in e))throw Error(`Enclave answered in plaintext - refusing an unencrypted response`);let n=o.default.from_base64(e.encrypted,o.default.base64_variants.ORIGINAL),r=n.slice(0,o.default.crypto_secretbox_NONCEBYTES),i=n.slice(o.default.crypto_secretbox_NONCEBYTES),a=o.default.crypto_secretbox_open_easy(i,r,t);return JSON.parse(new TextDecoder().decode(a))},y=async(e,t,r)=>v(await n.httpClient.post(e,t),r),b=async(e,t)=>{let{keyCiphertext:r,inputCiphertext:a,key:o}=await h(t),{data:s,signature:c}=v(await n.httpClient.post(e,{key:r,inputs:a}),o);return i.verifySignedEnclaveResponse(s,c)};exports.enclavePostSealed=y,exports.enclavePostSealedSigned=b,exports.makeEnclaveHandshakeAndEncryptInput=h,exports.makeEnclaveHandshakeAndEncryptUint8Array=g,exports.makeEnclaveKeyHandshake=_;
1
+ const e=require(`../../../../_virtual/_rolldown/runtime.cjs`),t=require(`./serialize.utils.cjs`),n=require(`../../data-structures/http/HttpClient.cjs`);require(`../../data-structures/http/index.cjs`);const r=require(`./enclaveHandshakeService.cjs`),i=require(`../snarkjs/verifySignedEnclaveResponse.cjs`);let a=require(`ethers`),o=require(`libsodium-wrappers`);o=e.__toESM(o);let s=require(`node-forge`);s=e.__toESM(s);var c=e=>typeof e==`bigint`||typeof e==`number`?e.toString():e,l=e=>s.util.hexToBytes(e.replace(`0x`,``)),u=e=>{let t=structuredClone(e);return Object.entries(t).forEach(([e,n])=>{t[e]=c(n),Array.isArray(n)&&(Array.isArray(n[0])?t[e]=n.map(e=>e.map(c)):t[e]=n.map(c))}),t},d=(e,t)=>{let n=s.util.decode64(e),r=s.asn1.fromDer(s.util.createBuffer(n)),i=s.pki.publicKeyFromAsn1(r),a=s.util.binary.raw.encode(t),o=i.encrypt(a,`RSA-OAEP`,{md:s.md.sha1.create(),mgf1:{md:s.md.sha1.create()}});return s.util.encode64(o)},f=(e,t)=>{let n=o.default.randombytes_buf(o.default.crypto_secretbox_NONCEBYTES),r=o.default.crypto_secretbox_easy(t,n,e),i=l(a.ethers.hexlify(n)+a.ethers.hexlify(r).slice(2));return s.util.encode64(i)},p=(e,t)=>{let n=o.default.randombytes_buf(o.default.crypto_secretbox_KEYBYTES);return{keyCiphertext:d(t,n),inputCiphertext:f(n,e),key:n}},m=(e,n)=>{let r=typeof e==`string`?e:t.safeJsonStringify(u(e));return p(new TextEncoder().encode(r),n)},h=async e=>m(e,await r.enclaveHandshakeService.getPublicKey()),g=async e=>p(e,await r.enclaveHandshakeService.getPublicKey()),_=async()=>{let e=await r.enclaveHandshakeService.getPublicKey(),t=o.default.randombytes_buf(o.default.crypto_secretbox_KEYBYTES);return{keyCiphertext:d(e,t),key:t}},v=(e,t)=>{if(!e||typeof e!=`object`||!(`encrypted`in e))throw Error(`Enclave answered in plaintext - refusing an unencrypted response`);let n=o.default.from_base64(e.encrypted,o.default.base64_variants.ORIGINAL),r=n.slice(0,o.default.crypto_secretbox_NONCEBYTES),i=n.slice(o.default.crypto_secretbox_NONCEBYTES),a=o.default.crypto_secretbox_open_easy(i,r,t);return JSON.parse(new TextDecoder().decode(a))},y=async(e,t,r,i)=>v(await n.httpClient.post(e,t,i),r),b=async(e,t)=>{let{keyCiphertext:r,inputCiphertext:a,key:o}=await h(t),{data:s,signature:c}=v(await n.httpClient.post(e,{key:r,inputs:a}),o);return i.verifySignedEnclaveResponse(s,c)};exports.enclavePostSealed=y,exports.enclavePostSealedSigned=b,exports.makeEnclaveHandshakeAndEncryptInput=h,exports.makeEnclaveHandshakeAndEncryptUint8Array=g,exports.makeEnclaveKeyHandshake=_;
@@ -1,3 +1,4 @@
1
+ import { AxiosRequestConfig } from 'axios';
1
2
  export declare const makeEnclaveHandshakeAndEncryptInput: (input: any) => Promise<{
2
3
  keyCiphertext: string;
3
4
  inputCiphertext: string;
@@ -12,5 +13,5 @@ export declare const makeEnclaveKeyHandshake: () => Promise<{
12
13
  keyCiphertext: string;
13
14
  key: Uint8Array;
14
15
  }>;
15
- export declare const enclavePostSealed: <T>(url: string, body: Record<string, unknown>, key: Uint8Array) => Promise<T>;
16
+ export declare const enclavePostSealed: <T>(url: string, body: Record<string, unknown>, key: Uint8Array, config?: AxiosRequestConfig) => Promise<T>;
16
17
  export declare const enclavePostSealedSigned: <T>(url: string, payload: unknown) => Promise<T>;
@@ -41,7 +41,7 @@ var s = (e) => typeof e == "bigint" || typeof e == "number" ? e.toString() : e,
41
41
  if (!e || typeof e != "object" || !("encrypted" in e)) throw Error("Enclave answered in plaintext - refusing an unencrypted response");
42
42
  let n = a.from_base64(e.encrypted, a.base64_variants.ORIGINAL), r = n.slice(0, a.crypto_secretbox_NONCEBYTES), i = n.slice(a.crypto_secretbox_NONCEBYTES), o = a.crypto_secretbox_open_easy(i, r, t);
43
43
  return JSON.parse(new TextDecoder().decode(o));
44
- }, v = async (e, n, r) => _(await t.post(e, n), r), y = async (e, n) => {
44
+ }, v = async (e, n, r, i) => _(await t.post(e, n, i), r), y = async (e, n) => {
45
45
  let { keyCiphertext: i, inputCiphertext: a, key: o } = await m(n), { data: s, signature: c } = _(await t.post(e, {
46
46
  key: i,
47
47
  inputs: a
@@ -1 +1 @@
1
- require(`../../constants/chains.constants.cjs`);const e=require(`../../constants/protocol.constants.cjs`);require(`../web3/etherFunctions.cjs`);const t=require(`../../API/token-calls.cjs`);require(`../../constants/tokens.constants.cjs`);var n=async(e,n)=>{let[r]=await t.tokensInfoCall(e,[n]);return r},r=async(e,n)=>n.length===0?[]:t.tokensInfoCall(e,n),i=async(e,t)=>{let r=await n(e,t);if(!r)throw Error(`Token not found: ${t} on chain ${e}`);return r},a=async(e,t)=>{if(t.length===0)return[];let n=await r(e,t);return t.map((t,r)=>{let i=n[r];if(!i)throw Error(`Token not found: ${t} on chain ${e}`);return i})},o=async e=>await t.getTokensForChainCall(e),s=async(e,n)=>await t.getTokensBySymbolsCall(n,e),c=t=>t.nftTokenType===e.TokenType.ERC721||t.nftTokenType===e.TokenType.ERC1155||t.nftTokenType===e.TokenType.MetaplexNFT||t.nftTokenType===e.TokenType.Token2022NFT||t.nftTokenType===e.TokenType.CompressedNFT;exports.getErc20TokenFromAPI=n,exports.getErc20TokensBySymbolsFromAPI=s,exports.getErc20TokensForChainAPI=o,exports.getErc20TokensFromAPI=r,exports.isNFTToken=c,exports.resolveErc20Token=i,exports.resolveErc20Tokens=a;
1
+ const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`);require(`../web3/etherFunctions.cjs`);const n=require(`../../API/token-calls.cjs`);require(`../../constants/tokens.constants.cjs`);var r=async(e,t)=>{let[r]=await n.tokensInfoCall(e,[t]);return r},i=async(e,t)=>t.length===0?[]:n.tokensInfoCall(e,t),a=async(e,t)=>{let n=await r(e,t);if(!n)throw Error(`Token not found: ${t} on chain ${e}`);return n},o=async(e,t)=>{if(t.length===0)return[];let n=await i(e,t);return t.map((t,r)=>{let i=n[r];if(!i)throw Error(`Token not found: ${t} on chain ${e}`);return i})},s=async e=>await n.getTokensForChainCall(e),c=async(e,t)=>await n.getTokensBySymbolsCall(t,e),l=e=>e.nftTokenType===t.TokenType.ERC721||e.nftTokenType===t.TokenType.ERC1155||e.nftTokenType===t.TokenType.MetaplexNFT||e.nftTokenType===t.TokenType.Token2022NFT||e.nftTokenType===t.TokenType.CompressedNFT,u=n=>n.chainId===e.chainIds.arcTestnet&&n.erc20TokenAddress===t.zeroAddress;exports.getErc20TokenFromAPI=r,exports.getErc20TokensBySymbolsFromAPI=c,exports.getErc20TokensForChainAPI=s,exports.getErc20TokensFromAPI=i,exports.isArcNativeToken=u,exports.isNFTToken=l,exports.resolveErc20Token=a,exports.resolveErc20Tokens=o;
@@ -1,24 +1,24 @@
1
- import "../../constants/chains.constants.mjs";
2
- import { TokenType as e } from "../../constants/protocol.constants.mjs";
1
+ import { chainIds as e } from "../../constants/chains.constants.mjs";
2
+ import { TokenType as t, zeroAddress as n } from "../../constants/protocol.constants.mjs";
3
3
  import "../web3/etherFunctions.mjs";
4
- import { getTokensBySymbolsCall as t, getTokensForChainCall as n, tokensInfoCall as r } from "../../API/token-calls.mjs";
4
+ import { getTokensBySymbolsCall as r, getTokensForChainCall as i, tokensInfoCall as a } from "../../API/token-calls.mjs";
5
5
  import "../../constants/tokens.constants.mjs";
6
6
  //#region libs/shared/common/src/functions/utils/erc20tokenFunctions.ts
7
- var i = async (e, t) => {
8
- let [n] = await r(e, [t]);
7
+ var o = async (e, t) => {
8
+ let [n] = await a(e, [t]);
9
9
  return n;
10
- }, a = async (e, t) => t.length === 0 ? [] : r(e, t), o = async (e, t) => {
11
- let n = await i(e, t);
10
+ }, s = async (e, t) => t.length === 0 ? [] : a(e, t), c = async (e, t) => {
11
+ let n = await o(e, t);
12
12
  if (!n) throw Error(`Token not found: ${t} on chain ${e}`);
13
13
  return n;
14
- }, s = async (e, t) => {
14
+ }, l = async (e, t) => {
15
15
  if (t.length === 0) return [];
16
- let n = await a(e, t);
16
+ let n = await s(e, t);
17
17
  return t.map((t, r) => {
18
18
  let i = n[r];
19
19
  if (!i) throw Error(`Token not found: ${t} on chain ${e}`);
20
20
  return i;
21
21
  });
22
- }, c = async (e) => await n(e), l = async (e, n) => await t(n, e), u = (t) => t.nftTokenType === e.ERC721 || t.nftTokenType === e.ERC1155 || t.nftTokenType === e.MetaplexNFT || t.nftTokenType === e.Token2022NFT || t.nftTokenType === e.CompressedNFT;
22
+ }, u = async (e) => await i(e), d = async (e, t) => await r(t, e), f = (e) => e.nftTokenType === t.ERC721 || e.nftTokenType === t.ERC1155 || e.nftTokenType === t.MetaplexNFT || e.nftTokenType === t.Token2022NFT || e.nftTokenType === t.CompressedNFT, p = (t) => t.chainId === e.arcTestnet && t.erc20TokenAddress === n;
23
23
  //#endregion
24
- export { i as getErc20TokenFromAPI, l as getErc20TokensBySymbolsFromAPI, c as getErc20TokensForChainAPI, a as getErc20TokensFromAPI, u as isNFTToken, o as resolveErc20Token, s as resolveErc20Tokens };
24
+ export { o as getErc20TokenFromAPI, d as getErc20TokensBySymbolsFromAPI, u as getErc20TokensForChainAPI, s as getErc20TokensFromAPI, p as isArcNativeToken, f as isNFTToken, c as resolveErc20Token, l as resolveErc20Tokens };
@@ -1 +1 @@
1
- const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../constants/fees.constants.cjs`),r=require(`./caseInsensitive.utils.cjs`),i=require(`../web3/etherFunctions.cjs`),a=require(`../../error-handling/logger.cjs`),o=require(`../../API/getTokenPrice.cjs`),s=require(`./erc20tokenFunctions.cjs`);var c=async r=>{if(!r)return n.EXTENDED_NON_NATIVE_GAS_COST_TOKEN_SYMBOL_OPTIONS;let i=t.zeroAddress;e.isSolanaLike(r)&&(i=t.solanaNativeAddress),e.isTempo(r)&&(i=n.TEMPO_DEFAULT_GAS_TOKEN_ADDRESS);let a=(await s.getErc20TokenFromAPI(r,i))?.symbol;return e.isSolanaLike(r)&&a?[a]:a&&!n.NON_NATIVE_GAS_COST_TOKEN_SYMBOL_OPTIONS(r).includes(a)?[a,...n.NON_NATIVE_GAS_COST_TOKEN_SYMBOL_OPTIONS(r)]:n.NON_NATIVE_GAS_COST_TOKEN_SYMBOL_OPTIONS(r)},l=(e,t)=>{let r=e*t.variableRate/n.BPS_DENOMINATOR;return t.flatFee+r},u=async(e,t,c,u)=>{let d=await s.getErc20TokenFromAPI(e,u.feeToken),f;if(!d||r.caseInsensitiveEqual(u.feeToken,t.erc20TokenAddress)||u.variableRate===0n)f=l(c,u);else{let r=0n;try{let[a,s]=t.chainId===e?(await o.getTokenPrices(e,[t.erc20TokenAddress,d.erc20TokenAddress])).prices:await Promise.all([(await o.getTokenPrices(t.chainId,[t.erc20TokenAddress])).prices[0],(await o.getTokenPrices(e,[d.erc20TokenAddress])).prices[0]]);if(!a||!s)throw Error(`failed to get token prices`);r=i.getAmountInWei(d,(Number(i.getAmountInToken(t,c))*a*Number(u.variableRate)/Number(n.BPS_DENOMINATOR)/s).toFixed(d.decimals))}catch(e){a.Logger.error(`error calculating modified fee structure`,e)}f=u.flatFee+r}return{feeToken:u.feeToken,flatFee:f,variableRate:0n}},d=async(e,t,n,r)=>{let i={...r,flatFee:0n},a=await Promise.all(t.map((t,r)=>u(e,t,n[r]??0n,i)));return{feeToken:r.feeToken,flatFee:a.reduce((e,{flatFee:t})=>e+t,r.flatFee),variableRate:0n}},f=(e,t)=>{let n=e/t;return e%t===0n?n:n+1n},p=(e,t)=>e<=0n||t<=0n?0n:f(e*t,n.BPS_DENOMINATOR);exports.calculateModifiedFeeStructure=u,exports.calculateModifiedFeeStructureForTokens=d,exports.calculateTotalFee=l,exports.calculateVariableFee=p,exports.getGasTokenSymbols=c;
1
+ const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../constants/fees.constants.cjs`),r=require(`./caseInsensitive.utils.cjs`),i=require(`../web3/etherFunctions.cjs`),a=require(`../../error-handling/logger.cjs`),o=require(`../../API/getTokenPrice.cjs`),s=require(`./erc20tokenFunctions.cjs`);var c=async r=>{if(!r)return n.EXTENDED_NON_NATIVE_GAS_COST_TOKEN_SYMBOL_OPTIONS;let i=t.zeroAddress;e.isSolanaLike(r)&&(i=t.solanaNativeAddress),e.isTempo(r)&&(i=n.TEMPO_DEFAULT_GAS_TOKEN_ADDRESS);let a=(await s.getErc20TokenFromAPI(r,i))?.symbol;return e.isSolanaLike(r)&&a?[a]:a&&!n.NON_NATIVE_GAS_COST_TOKEN_SYMBOL_OPTIONS(r).includes(a)?[a,...n.NON_NATIVE_GAS_COST_TOKEN_SYMBOL_OPTIONS(r)]:n.NON_NATIVE_GAS_COST_TOKEN_SYMBOL_OPTIONS(r)},l=(e,t)=>{let r=e*t.variableRate/n.BPS_DENOMINATOR;return t.flatFee+r},u=async(e,t,c,u)=>{let d=await s.getErc20TokenFromAPI(e,u.feeToken),f;if(!d||r.caseInsensitiveEqual(u.feeToken,t.erc20TokenAddress)&&t.chainId===e||u.variableRate===0n)f=l(c,u);else{let r=0n;try{let[a,s]=t.chainId===e?(await o.getTokenPrices(e,[t.erc20TokenAddress,d.erc20TokenAddress])).prices:await Promise.all([(await o.getTokenPrices(t.chainId,[t.erc20TokenAddress])).prices[0],(await o.getTokenPrices(e,[d.erc20TokenAddress])).prices[0]]);if(!a||!s)throw Error(`failed to get token prices`);r=i.getAmountInWei(d,(Number(i.getAmountInToken(t,c))*a*Number(u.variableRate)/Number(n.BPS_DENOMINATOR)/s).toFixed(d.decimals))}catch(e){a.Logger.error(`error calculating modified fee structure`,e)}f=u.flatFee+r}return{feeToken:u.feeToken,flatFee:f,variableRate:0n}},d=async(e,t,n,r)=>{let i={...r,flatFee:0n},a=await Promise.all(t.map((t,r)=>u(e,t,n[r]??0n,i)));return{feeToken:r.feeToken,flatFee:a.reduce((e,{flatFee:t})=>e+t,r.flatFee),variableRate:0n}},f=(e,t)=>{let n=e/t;return e%t===0n?n:n+1n},p=(e,t)=>e<=0n||t<=0n?0n:f(e*t,n.BPS_DENOMINATOR);exports.calculateModifiedFeeStructure=u,exports.calculateModifiedFeeStructureForTokens=d,exports.calculateTotalFee=l,exports.calculateVariableFee=p,exports.getGasTokenSymbols=c;
@@ -18,7 +18,7 @@ var m = async (i) => {
18
18
  return t.flatFee + n;
19
19
  }, g = async (e, t, n, r) => {
20
20
  let a = await p(e, r.feeToken), o;
21
- if (!a || c(r.feeToken, t.erc20TokenAddress) || r.variableRate === 0n) o = h(n, r);
21
+ if (!a || c(r.feeToken, t.erc20TokenAddress) && t.chainId === e || r.variableRate === 0n) o = h(n, r);
22
22
  else {
23
23
  let s = 0n;
24
24
  try {
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`);let e=require(`ethers`);var t=t=>{let{runner:n}=t;if(!(n instanceof e.ethers.AbstractSigner))throw Error(`expected signer`);return n},n=e=>{let{runner:t}=e;if(!t)throw Error(`expected provider`);return t.provider??t};exports.getProviderFromContract=n,exports.getSignerFromContract=t;
1
+ const e=require(`./isSigner.cjs`);var t=t=>{let{runner:n}=t;if(!e.isSigner(n))throw Error(`expected signer`);return n},n=e=>{let{runner:t}=e;if(!t)throw Error(`expected provider`);return t.provider??t};exports.getProviderFromContract=n,exports.getSignerFromContract=t;
@@ -1,3 +1,3 @@
1
1
  import { ethers } from 'ethers';
2
- export declare const getSignerFromContract: (contract: ethers.Contract) => ethers.AbstractSigner<any>;
2
+ export declare const getSignerFromContract: (contract: ethers.Contract) => ethers.Signer;
3
3
  export declare const getProviderFromContract: (contract: ethers.Contract) => ethers.Provider;
@@ -1,8 +1,8 @@
1
- import { ethers as e } from "ethers";
1
+ import { isSigner as e } from "./isSigner.mjs";
2
2
  //#region libs/shared/common/src/functions/utils/getSignerFromContract.ts
3
3
  var t = (t) => {
4
4
  let { runner: n } = t;
5
- if (!(n instanceof e.AbstractSigner)) throw Error("expected signer");
5
+ if (!e(n)) throw Error("expected signer");
6
6
  return n;
7
7
  }, n = (e) => {
8
8
  let { runner: t } = e;
@@ -1 +1 @@
1
- require(`../../constants/chains.constants.cjs`),require(`../../data-structures/crypto-keys/keys.cjs`),require(`../../types/index.cjs`),require(`../../data-structures/crypto-keys/encryptDecryptUtxo.cjs`),require(`../web3/getContractMetadata.cjs`),require(`../../data-structures/crypto-keys/decodeUTXO.cjs`),require(`ethers`);
1
+ require(`../../constants/chains.constants.cjs`),require(`../../data-structures/crypto-keys/keys.cjs`),require(`../../types/index.cjs`),require(`../../data-structures/crypto-keys/decodeUTXO.cjs`),require(`../../data-structures/crypto-keys/encryptDecryptUtxo.cjs`),require(`../web3/getContractMetadata.cjs`),require(`ethers`);
@@ -1,7 +1,7 @@
1
1
  import "../../constants/chains.constants.mjs";
2
2
  import "../../data-structures/crypto-keys/keys.mjs";
3
3
  import "../../types/index.mjs";
4
+ import "../../data-structures/crypto-keys/decodeUTXO.mjs";
4
5
  import "../../data-structures/crypto-keys/encryptDecryptUtxo.mjs";
5
6
  import "../web3/getContractMetadata.mjs";
6
- import "../../data-structures/crypto-keys/decodeUTXO.mjs";
7
7
  import "ethers";
@@ -1 +1 @@
1
- require(`../../constants/chains.constants.cjs`),require(`../../crypto/poseidon.cjs`),require(`../../data-structures/utxo/Utxo.cjs`),require(`../../data-structures/crypto-keys/encryptDecryptUtxo.cjs`),require(`./bytes32.utils.cjs`),require(`../../data-structures/crypto-keys/decodeUTXO.cjs`),require(`ethers`),require(`@solana/web3.js`),require(`@coral-xyz/anchor`);
1
+ require(`../../constants/chains.constants.cjs`),require(`../../crypto/poseidon.cjs`),require(`../../data-structures/utxo/Utxo.cjs`),require(`../../data-structures/crypto-keys/decodeUTXO.cjs`),require(`../../data-structures/crypto-keys/encryptDecryptUtxo.cjs`),require(`./bytes32.utils.cjs`),require(`ethers`),require(`@solana/web3.js`),require(`@coral-xyz/anchor`);
@@ -1,9 +1,9 @@
1
1
  import "../../constants/chains.constants.mjs";
2
2
  import "../../crypto/poseidon.mjs";
3
3
  import "../../data-structures/utxo/Utxo.mjs";
4
+ import "../../data-structures/crypto-keys/decodeUTXO.mjs";
4
5
  import "../../data-structures/crypto-keys/encryptDecryptUtxo.mjs";
5
6
  import "./bytes32.utils.mjs";
6
- import "../../data-structures/crypto-keys/decodeUTXO.mjs";
7
7
  import "ethers";
8
8
  import "@solana/web3.js";
9
9
  import "@coral-xyz/anchor";
@@ -1 +1 @@
1
- require(`./abi.utils.cjs`),require(`./serialize.utils.cjs`),require(`./caseInsensitive.utils.cjs`),require(`./amounts.utils.cjs`),require(`./time.utils.cjs`),require(`./upToDateState.cjs`),require(`./cacheFunctions.cjs`),require(`./encodeTokenWithId.cjs`),require(`./enclaveHandshakeService.cjs`),require(`./encryptInputForEnclave.cjs`),require(`./solanaMint.utils.cjs`),require(`./serialize-utxos.utils.cjs`),require(`./customEnclaveFunctionsRegister.cjs`),require(`./tron.utils.cjs`),require(`./addresses.cjs`),require(`./legacyKeys.cjs`),require(`./auth.utils.cjs`),require(`./string.utils.cjs`),require(`./token-check.utils.cjs`),require(`./map.utils.cjs`),require(`./mutexes.utils.cjs`),require(`./erc20tokenFunctions.cjs`),require(`../pre-transaction/outputUtxoProcessing.cjs`),require(`./external-action.utils.cjs`),require(`../pre-transaction/solana.cjs`),require(`../pre-transaction/process-gas-estimates.cjs`),require(`../pre-transaction/getVolatileTransferAmount.cjs`),require(`../pre-transaction/constructAdminData.cjs`),require(`./create-provider.cjs`),require(`../pre-transaction/calculateSolanaNullifierCount.cjs`),require(`../pre-transaction/convert-okx-instructions.cjs`),require(`./process.utils.cjs`),require(`../pre-transaction/sendV0Transaction.cjs`),require(`./bytes32.utils.cjs`),require(`../pre-transaction/getFeeStructure.cjs`),require(`../pre-transaction/getExternalSwapAddress.cjs`),require(`../pre-transaction/speculativeUtxo.cjs`),require(`../pre-transaction/buildCommitmentValidationData.cjs`),require(`../pre-transaction/index.cjs`),require(`./solana-program.utils.cjs`),require(`./getContractAddress.cjs`),require(`./getSignerFromContract.cjs`),require(`./tronSimulation.utils.cjs`),require(`./resolve-domain-address.cjs`),require(`./resolve-sync.utils.cjs`),require(`./convertIntegrationProviderToExternalActionId.cjs`),require(`./evmNetworkFunctions.cjs`),require(`./userAgent.cjs`),require(`./cacheDevice.utils.cjs`),require(`./getBlockExplorerUrl.cjs`),require(`./involves-permit2-op.cjs`),require(`./convertEmporiumOpToCallInfo.cjs`),require(`./getRecipientInfoFromUserKeys.cjs`),require(`./publicBalance.utils.cjs`),require(`./rpc-int-encode.cjs`),require(`./walletBalances.utils.cjs`),require(`./nftTokenFunctions.cjs`),require(`./inLogicMetadata.cjs`),require(`./networks.utils.cjs`),require(`./postToOffscreen.cjs`),require(`./solanaSendPreflight.utils.cjs`),require(`./voidWallets.utils.cjs`),require(`./prepareHinkal.cjs`),require(`./getUtxosFromReceipt.utils.cjs`),require(`./getUtxosFromReceiptSolana.cjs`),require(`./fees.utils.cjs`),require(`./recovery-balance.utils.cjs`),require(`./proxyAvatar.utils.cjs`),require(`./enclave-utxo-storage.cjs`),require(`./enclave-signature-storage.cjs`),require(`./tx-confirmation.utils.cjs`),require(`./buildClaimableDepositPlan.cjs`),require(`./deposit-claimable.utils.cjs`),require(`./formatter.cjs`),require(`./transfer-claimable.utils.cjs`),require(`./bridge-arrival.utils.cjs`),require(`./bridge-flow.utils.cjs`),require(`./bridge-claimable.utils.cjs`),require(`./solana-sponsored.utils.cjs`),require(`./temp-wallet.utils.cjs`),require(`./enclave-recipient-info-storage.cjs`),require(`./temporary-wallet-recovery.utils.cjs`),require(`./dispatchBalanceRefreshes.cjs`),require(`./lifi.utils.cjs`),require(`./solana-memo.cjs`),require(`./mnemonics.cjs`),require(`./nearIntents.utils.cjs`),require(`./enclaveSessionSigning.cjs`),require(`./validateWalletAddress.cjs`),require(`./waasStamp.cjs`),require(`./sponsored-shield.utils.cjs`);
1
+ require(`./abi.utils.cjs`),require(`./serialize.utils.cjs`),require(`./caseInsensitive.utils.cjs`),require(`./amounts.utils.cjs`),require(`./time.utils.cjs`),require(`./upToDateState.cjs`),require(`./cacheFunctions.cjs`),require(`./encodeTokenWithId.cjs`),require(`./enclaveHandshakeService.cjs`),require(`./encryptInputForEnclave.cjs`),require(`./solanaMint.utils.cjs`),require(`./serialize-utxos.utils.cjs`),require(`./customEnclaveFunctionsRegister.cjs`),require(`./tron.utils.cjs`),require(`./addresses.cjs`),require(`./legacyKeys.cjs`),require(`./auth.utils.cjs`),require(`./receive-vault.utils.cjs`),require(`./string.utils.cjs`),require(`./token-check.utils.cjs`),require(`./map.utils.cjs`),require(`./mutexes.utils.cjs`),require(`./erc20tokenFunctions.cjs`),require(`../pre-transaction/outputUtxoProcessing.cjs`),require(`./external-action.utils.cjs`),require(`../pre-transaction/solana.cjs`),require(`../pre-transaction/process-gas-estimates.cjs`),require(`../pre-transaction/getVolatileTransferAmount.cjs`),require(`../pre-transaction/constructAdminData.cjs`),require(`./create-provider.cjs`),require(`../pre-transaction/calculateSolanaNullifierCount.cjs`),require(`../pre-transaction/convert-okx-instructions.cjs`),require(`./process.utils.cjs`),require(`../pre-transaction/sendV0Transaction.cjs`),require(`./bytes32.utils.cjs`),require(`../pre-transaction/getFeeStructure.cjs`),require(`./fees.utils.cjs`),require(`../pre-transaction/getExternalSwapAddress.cjs`),require(`../pre-transaction/speculativeUtxo.cjs`),require(`../pre-transaction/buildCommitmentValidationData.cjs`),require(`../pre-transaction/index.cjs`),require(`./solana-program.utils.cjs`),require(`./getContractAddress.cjs`),require(`./getSignerFromContract.cjs`),require(`./tronSimulation.utils.cjs`),require(`./resolve-domain-address.cjs`),require(`./resolve-sync.utils.cjs`),require(`./convertIntegrationProviderToExternalActionId.cjs`),require(`./evmNetworkFunctions.cjs`),require(`./userAgent.cjs`),require(`./cacheDevice.utils.cjs`),require(`./getBlockExplorerUrl.cjs`),require(`./involves-permit2-op.cjs`),require(`./convertEmporiumOpToCallInfo.cjs`),require(`./getRecipientInfoFromUserKeys.cjs`),require(`./publicBalance.utils.cjs`),require(`./rpc-int-encode.cjs`),require(`./walletBalances.utils.cjs`),require(`./nftTokenFunctions.cjs`),require(`./inLogicMetadata.cjs`),require(`./networks.utils.cjs`),require(`./postToOffscreen.cjs`),require(`./solanaSendPreflight.utils.cjs`),require(`./voidWallets.utils.cjs`),require(`./prepareHinkal.cjs`),require(`./getUtxosFromReceipt.utils.cjs`),require(`./getUtxosFromReceiptSolana.cjs`),require(`./recovery-balance.utils.cjs`),require(`./proxyAvatar.utils.cjs`),require(`./enclave-utxo-storage.cjs`),require(`./enclave-signature-storage.cjs`),require(`./tx-confirmation.utils.cjs`),require(`./buildClaimableDepositPlan.cjs`),require(`./deposit-claimable.utils.cjs`),require(`./formatter.cjs`),require(`./transfer-claimable.utils.cjs`),require(`./bridge-arrival.utils.cjs`),require(`./bridge-flow.utils.cjs`),require(`./bridge-claimable.utils.cjs`),require(`./solana-sponsored.utils.cjs`),require(`./temp-wallet.utils.cjs`),require(`./enclave-recipient-info-storage.cjs`),require(`./temporary-wallet-recovery.utils.cjs`),require(`./dispatchBalanceRefreshes.cjs`),require(`./lifi.utils.cjs`),require(`./solana-memo.cjs`),require(`./mnemonics.cjs`),require(`./nearIntents.utils.cjs`),require(`./enclaveSessionSigning.cjs`),require(`./validateWalletAddress.cjs`),require(`./waasStamp.cjs`),require(`./sponsored-shield.utils.cjs`);
@@ -26,6 +26,7 @@ export * from './upToDateState';
26
26
  export * from './serialize.utils';
27
27
  export * from './convertEmporiumOpToCallInfo';
28
28
  export * from './getRecipientInfoFromUserKeys';
29
+ export * from './receive-vault.utils';
29
30
  export * from './publicBalance.utils';
30
31
  export * from './rpc-int-encode';
31
32
  export * from './token-check.utils';
@@ -15,6 +15,7 @@ import "./tron.utils.mjs";
15
15
  import "./addresses.mjs";
16
16
  import "./legacyKeys.mjs";
17
17
  import "./auth.utils.mjs";
18
+ import "./receive-vault.utils.mjs";
18
19
  import "./string.utils.mjs";
19
20
  import "./token-check.utils.mjs";
20
21
  import "./map.utils.mjs";
@@ -33,6 +34,7 @@ import "./process.utils.mjs";
33
34
  import "../pre-transaction/sendV0Transaction.mjs";
34
35
  import "./bytes32.utils.mjs";
35
36
  import "../pre-transaction/getFeeStructure.mjs";
37
+ import "./fees.utils.mjs";
36
38
  import "../pre-transaction/getExternalSwapAddress.mjs";
37
39
  import "../pre-transaction/speculativeUtxo.mjs";
38
40
  import "../pre-transaction/buildCommitmentValidationData.mjs";
@@ -63,7 +65,6 @@ import "./voidWallets.utils.mjs";
63
65
  import "./prepareHinkal.mjs";
64
66
  import "./getUtxosFromReceipt.utils.mjs";
65
67
  import "./getUtxosFromReceiptSolana.mjs";
66
- import "./fees.utils.mjs";
67
68
  import "./recovery-balance.utils.mjs";
68
69
  import "./proxyAvatar.utils.mjs";
69
70
  import "./enclave-utxo-storage.mjs";
@@ -0,0 +1 @@
1
+ var e=e=>{let t=e;return typeof t?.getAddress==`function`&&typeof t?.sendTransaction==`function`};exports.isSigner=e;
@@ -0,0 +1,2 @@
1
+ import { ethers } from 'ethers';
2
+ export declare const isSigner: (runner: unknown) => runner is ethers.Signer;
@@ -0,0 +1,7 @@
1
+ //#region libs/shared/common/src/functions/utils/isSigner.ts
2
+ var e = (e) => {
3
+ let t = e;
4
+ return typeof t?.getAddress == "function" && typeof t?.sendTransaction == "function";
5
+ };
6
+ //#endregion
7
+ export { e as isSigner };
@@ -0,0 +1 @@
1
+ require(`../../constants/protocol.constants.cjs`);const e=require(`./caseInsensitive.utils.cjs`),t=require(`./receive-vault.utils.cjs`),n=require(`../../API/receiveVaultCalls.cjs`);var r=new Map,i=async r=>{let{records:i,blocks:a}=await n.fetchReceiveVaultAccount(await t.signReceiveVaultAccount(r,BigInt(Math.floor(Date.now()/1e3)+300)));return{records:i.filter(n=>{try{return e.caseInsensitiveEqual(t.buildReceiveVaultRecord(r,n).vaultAddress,n.vaultAddress)}catch{return!1}}),blocks:a}},a=e=>{let n=t.getReceiveVaultAccountKey(e),a=i(e).finally(()=>r.delete(n));return r.set(n,a),a},o=e=>r.get(t.getReceiveVaultAccountKey(e))??a(e);exports.getReceiveVaultAccountSnapshot=o;
@@ -0,0 +1,8 @@
1
+ import { UserKeys } from '../../data-structures/crypto-keys';
2
+ import { ReceiveVaultBlock, ReceiveVaultRecord } from '../../types/receive-vault.types';
3
+ type ReceiveVaultAccountSnapshot = {
4
+ records: ReceiveVaultRecord[];
5
+ blocks: ReceiveVaultBlock[];
6
+ };
7
+ export declare const getReceiveVaultAccountSnapshot: (userKeys: UserKeys) => Promise<ReceiveVaultAccountSnapshot>;
8
+ export {};
@@ -0,0 +1,23 @@
1
+ import "../../constants/protocol.constants.mjs";
2
+ import { caseInsensitiveEqual as e } from "./caseInsensitive.utils.mjs";
3
+ import { buildReceiveVaultRecord as t, getReceiveVaultAccountKey as n, signReceiveVaultAccount as r } from "./receive-vault.utils.mjs";
4
+ import { fetchReceiveVaultAccount as i } from "../../API/receiveVaultCalls.mjs";
5
+ //#region libs/shared/common/src/functions/utils/receive-vault-account.utils.ts
6
+ var a = /* @__PURE__ */ new Map(), o = async (n) => {
7
+ let { records: a, blocks: o } = await i(await r(n, BigInt(Math.floor(Date.now() / 1e3) + 300)));
8
+ return {
9
+ records: a.filter((r) => {
10
+ try {
11
+ return e(t(n, r).vaultAddress, r.vaultAddress);
12
+ } catch {
13
+ return !1;
14
+ }
15
+ }),
16
+ blocks: o
17
+ };
18
+ }, s = (e) => {
19
+ let t = n(e), r = o(e).finally(() => a.delete(t));
20
+ return a.set(t, r), r;
21
+ }, c = (e) => a.get(n(e)) ?? s(e);
22
+ //#endregion
23
+ export { c as getReceiveVaultAccountSnapshot };