@hinkal/common 0.2.22 → 0.2.24

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 (243) hide show
  1. package/API/proxyAccountsCalls.cjs +1 -1
  2. package/API/proxyAccountsCalls.mjs +13 -13
  3. package/README.md +63 -267
  4. package/constants/activity.constants.cjs +1 -1
  5. package/constants/activity.constants.mjs +0 -1
  6. package/constants/addresses.constants.cjs +1 -1
  7. package/constants/addresses.constants.mjs +9 -10
  8. package/constants/contracts.constants.cjs +1 -1
  9. package/constants/contracts.constants.d.ts +3 -3
  10. package/constants/contracts.constants.mjs +29 -29
  11. package/constants/server.constants.cjs +1 -1
  12. package/constants/server.constants.mjs +28 -29
  13. package/constants/tasks.constants.cjs +1 -1
  14. package/constants/tasks.constants.mjs +4 -5
  15. package/crypto/poseidon.cjs +1 -1
  16. package/crypto/poseidon.mjs +10 -10
  17. package/data-structures/ApprovalDBs/EventsPublicApprovalsDB.cjs +1 -1
  18. package/data-structures/ApprovalDBs/EventsPublicApprovalsDB.mjs +24 -24
  19. package/data-structures/Hinkal/Hinkal.cjs +1 -1
  20. package/data-structures/Hinkal/Hinkal.mjs +4 -5
  21. package/data-structures/Hinkal/IHinkal.d.ts +2 -2
  22. package/data-structures/Hinkal/hinkalApprove.cjs +1 -1
  23. package/data-structures/Hinkal/hinkalApprove.mjs +40 -40
  24. package/data-structures/Hinkal/hinkalCheckTokenRegistry.cjs +1 -1
  25. package/data-structures/Hinkal/hinkalCheckTokenRegistry.mjs +7 -8
  26. package/data-structures/Hinkal/hinkalDeposit.cjs +1 -1
  27. package/data-structures/Hinkal/hinkalDeposit.mjs +4 -5
  28. package/data-structures/Hinkal/hinkalDepositAndWithdraw.cjs +1 -1
  29. package/data-structures/Hinkal/hinkalDepositAndWithdraw.mjs +27 -28
  30. package/data-structures/Hinkal/hinkalDepositOnChainUtxos.cjs +1 -1
  31. package/data-structures/Hinkal/hinkalDepositOnChainUtxos.d.ts +1 -0
  32. package/data-structures/Hinkal/hinkalDepositOnChainUtxos.mjs +35 -36
  33. package/data-structures/Hinkal/hinkalDepostAndBridge.cjs +1 -1
  34. package/data-structures/Hinkal/hinkalDepostAndBridge.mjs +86 -83
  35. package/data-structures/Hinkal/hinkalInsideTransact.cjs +1 -1
  36. package/data-structures/Hinkal/hinkalInsideTransact.mjs +14 -13
  37. package/data-structures/Hinkal/hinkalPrivateWallet.cjs +1 -1
  38. package/data-structures/Hinkal/hinkalPrivateWallet.mjs +2 -3
  39. package/data-structures/Hinkal/hinkalProoflessDeposit.cjs +1 -1
  40. package/data-structures/Hinkal/hinkalProoflessDeposit.mjs +27 -26
  41. package/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.cjs +1 -1
  42. package/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.mjs +72 -73
  43. package/data-structures/Hinkal/hinkalSolanaSwap.cjs +1 -1
  44. package/data-structures/Hinkal/hinkalSolanaSwap.mjs +16 -17
  45. package/data-structures/Hinkal/hinkalSolanaTransfer.cjs +1 -1
  46. package/data-structures/Hinkal/hinkalSolanaTransfer.mjs +24 -25
  47. package/data-structures/Hinkal/hinkalSolanaWithdraw.cjs +1 -1
  48. package/data-structures/Hinkal/hinkalSolanaWithdraw.mjs +15 -16
  49. package/data-structures/Hinkal/hinkalSwap.cjs +1 -1
  50. package/data-structures/Hinkal/hinkalSwap.mjs +2 -3
  51. package/data-structures/Hinkal/hinkalTransfer.cjs +1 -1
  52. package/data-structures/Hinkal/hinkalTransfer.mjs +2 -3
  53. package/data-structures/Hinkal/hinkalWithdraw.cjs +1 -1
  54. package/data-structures/Hinkal/hinkalWithdraw.mjs +9 -10
  55. package/data-structures/Hinkal/hinkalWithdrawStuckUtxos.cjs +1 -1
  56. package/data-structures/Hinkal/hinkalWithdrawStuckUtxos.mjs +8 -9
  57. package/data-structures/Hinkal/resetMerkleTrees.cjs +1 -1
  58. package/data-structures/Hinkal/resetMerkleTrees.mjs +10 -10
  59. package/data-structures/IndexedDB/activity-db.cjs +1 -1
  60. package/data-structures/IndexedDB/activity-db.mjs +39 -41
  61. package/data-structures/IndexedDB/balances-db.cjs +1 -1
  62. package/data-structures/IndexedDB/balances-db.mjs +8 -9
  63. package/data-structures/IndexedDB/contact-db.cjs +1 -1
  64. package/data-structures/IndexedDB/contact-db.mjs +21 -23
  65. package/data-structures/IndexedDB/signatures-db.cjs +1 -1
  66. package/data-structures/IndexedDB/signatures-db.mjs +2 -3
  67. package/data-structures/TokenDBs/EventsPublicTokensDB.cjs +1 -1
  68. package/data-structures/TokenDBs/EventsPublicTokensDB.mjs +34 -36
  69. package/data-structures/crypto-keys/decodeUTXO.cjs +1 -1
  70. package/data-structures/crypto-keys/decodeUTXO.mjs +45 -45
  71. package/data-structures/crypto-keys/encryptDecryptUtxo.cjs +1 -1
  72. package/data-structures/crypto-keys/encryptDecryptUtxo.mjs +28 -27
  73. package/data-structures/crypto-keys/keys.cjs +1 -1
  74. package/data-structures/crypto-keys/keys.d.ts +2 -3
  75. package/data-structures/crypto-keys/keys.mjs +56 -57
  76. package/data-structures/event-service/evm/AbstractEventService.cjs +1 -1
  77. package/data-structures/event-service/evm/AbstractEventService.mjs +14 -14
  78. package/data-structures/event-service/evm/AbstractNullifierSnapshotService.cjs +1 -1
  79. package/data-structures/event-service/evm/AbstractNullifierSnapshotService.d.ts +2 -3
  80. package/data-structures/event-service/evm/AbstractNullifierSnapshotService.mjs +5 -4
  81. package/data-structures/event-service/evm/AbstractSnapshotService.cjs +1 -1
  82. package/data-structures/event-service/evm/AbstractSnapshotService.mjs +6 -3
  83. package/data-structures/event-service/evm/BlockchainEventEmitter.cjs +1 -1
  84. package/data-structures/event-service/evm/BlockchainEventEmitter.d.ts +1 -1
  85. package/data-structures/event-service/evm/BlockchainEventEmitter.mjs +22 -18
  86. package/data-structures/event-service/solana/AbstractSolanaNullifierSnapshotService.cjs +1 -1
  87. package/data-structures/event-service/solana/AbstractSolanaNullifierSnapshotService.mjs +2 -2
  88. package/data-structures/presale/PresaleContractWrapper.cjs +1 -1
  89. package/data-structures/presale/PresaleContractWrapper.d.ts +3 -3
  90. package/data-structures/presale/PresaleContractWrapper.mjs +10 -10
  91. package/data-structures/provider-adapter/IProviderAdapter.d.ts +7 -7
  92. package/data-structures/snapshot/evm-snapshots/ClientAccessTokenSnapshotService.cjs +1 -1
  93. package/data-structures/snapshot/evm-snapshots/ClientAccessTokenSnapshotService.mjs +16 -14
  94. package/data-structures/snapshot/evm-snapshots/ClientApprovalsSnapshotService.cjs +1 -1
  95. package/data-structures/snapshot/evm-snapshots/ClientApprovalsSnapshotService.mjs +7 -5
  96. package/error-handling/get-error.message.cjs +1 -1
  97. package/error-handling/get-error.message.mjs +2 -3
  98. package/functions/kyc/zkMeHelper.cjs +1 -1
  99. package/functions/kyc/zkMeHelper.mjs +3 -3
  100. package/functions/pre-transaction/getFlatFees.cjs +1 -1
  101. package/functions/pre-transaction/getFlatFees.mjs +2 -3
  102. package/functions/pre-transaction/getSolanaCalldataHash.cjs +1 -1
  103. package/functions/pre-transaction/getSolanaCalldataHash.mjs +21 -21
  104. package/functions/pre-transaction/getVolatileTransferAmount.cjs +1 -1
  105. package/functions/pre-transaction/getVolatileTransferAmount.mjs +2 -3
  106. package/functions/pre-transaction/interaction-to-action.cjs +1 -1
  107. package/functions/pre-transaction/interaction-to-action.mjs +2 -3
  108. package/functions/private-wallet/emporium.helpers.cjs +1 -1
  109. package/functions/private-wallet/emporium.helpers.d.ts +6 -7
  110. package/functions/private-wallet/emporium.helpers.mjs +104 -105
  111. package/functions/private-wallet/emporium.swap.helpers.cjs +1 -1
  112. package/functions/private-wallet/emporium.swap.helpers.mjs +44 -43
  113. package/functions/private-wallet/opProducer.cjs +1 -1
  114. package/functions/private-wallet/opProducer.mjs +1 -1
  115. package/functions/snarkjs/common.snarkjs.cjs +1 -1
  116. package/functions/snarkjs/common.snarkjs.mjs +21 -18
  117. package/functions/snarkjs/constructSolanaZkProof.cjs +1 -1
  118. package/functions/snarkjs/constructSolanaZkProof.mjs +11 -12
  119. package/functions/utils/addresses.cjs +1 -1
  120. package/functions/utils/addresses.mjs +6 -6
  121. package/functions/utils/cacheFunctions.cjs +1 -1
  122. package/functions/utils/cacheFunctions.d.ts +1 -1
  123. package/functions/utils/cacheFunctions.mjs +55 -54
  124. package/functions/utils/convertEmporiumOpToCallInfo.cjs +1 -1
  125. package/functions/utils/convertEmporiumOpToCallInfo.mjs +5 -5
  126. package/functions/utils/create-provider.cjs +1 -1
  127. package/functions/utils/create-provider.d.ts +2 -2
  128. package/functions/utils/create-provider.mjs +5 -5
  129. package/functions/utils/encryptInputForEnclave.cjs +1 -1
  130. package/functions/utils/encryptInputForEnclave.mjs +9 -9
  131. package/functions/utils/ethers-formatter.utils.d.ts +1 -1
  132. package/functions/utils/external-action.utils.cjs +1 -1
  133. package/functions/utils/external-action.utils.mjs +2 -2
  134. package/functions/utils/getContractAddress.cjs +1 -0
  135. package/functions/utils/getContractAddress.d.ts +2 -0
  136. package/functions/utils/getContractAddress.mjs +9 -0
  137. package/functions/utils/getDataFromTransaction.cjs +1 -1
  138. package/functions/utils/getDataFromTransaction.d.ts +0 -11
  139. package/functions/utils/getDataFromTransaction.mjs +26 -50
  140. package/functions/utils/getRecipientInfoFromUserKeys.cjs +1 -1
  141. package/functions/utils/getRecipientInfoFromUserKeys.mjs +1 -1
  142. package/functions/utils/getSignerFromContract.cjs +1 -0
  143. package/functions/utils/getSignerFromContract.d.ts +3 -0
  144. package/functions/utils/getSignerFromContract.mjs +16 -0
  145. package/functions/utils/getUtxosFromReceipt.utils.cjs +1 -1
  146. package/functions/utils/getUtxosFromReceipt.utils.d.ts +1 -1
  147. package/functions/utils/getUtxosFromReceipt.utils.mjs +15 -16
  148. package/functions/utils/inLogicMetadata.cjs +1 -1
  149. package/functions/utils/inLogicMetadata.mjs +2 -2
  150. package/functions/utils/nftTokenFunctions.cjs +1 -1
  151. package/functions/utils/nftTokenFunctions.mjs +2 -3
  152. package/functions/utils/publicBalance.utils.cjs +1 -1
  153. package/functions/utils/publicBalance.utils.d.ts +1 -1
  154. package/functions/utils/publicBalance.utils.mjs +42 -42
  155. package/functions/utils/rpc-int-encode.cjs +1 -1
  156. package/functions/utils/rpc-int-encode.d.ts +1 -2
  157. package/functions/utils/rpc-int-encode.mjs +3 -6
  158. package/functions/utils/solanaMint.utils.cjs +1 -1
  159. package/functions/utils/solanaMint.utils.mjs +6 -6
  160. package/functions/web3/EIP-712.cjs +1 -1
  161. package/functions/web3/EIP-712.d.ts +4 -4
  162. package/functions/web3/EIP-712.mjs +1 -1
  163. package/functions/web3/etherFunctions.cjs +1 -1
  164. package/functions/web3/etherFunctions.mjs +32 -29
  165. package/functions/web3/events/balanceChangedCustomHandler.cjs +1 -1
  166. package/functions/web3/events/balanceChangedCustomHandler.mjs +4 -5
  167. package/functions/web3/events/balanceChangedHandler.cjs +1 -1
  168. package/functions/web3/events/balanceChangedHandler.mjs +2 -3
  169. package/functions/web3/events/getApprovedBalance.cjs +1 -1
  170. package/functions/web3/events/getApprovedBalance.mjs +1 -1
  171. package/functions/web3/events/getInputUtxosEnclave.cjs +1 -1
  172. package/functions/web3/events/getInputUtxosEnclave.mjs +20 -20
  173. package/functions/web3/events/getTransactionLogEvents.cjs +1 -1
  174. package/functions/web3/events/getTransactionLogEvents.d.ts +3 -3
  175. package/functions/web3/events/getTransactionLogEvents.mjs +6 -5
  176. package/functions/web3/events/index.d.ts +0 -1
  177. package/functions/web3/fetchSolanaMerkleTreeRootHash.cjs +1 -1
  178. package/functions/web3/fetchSolanaMerkleTreeRootHash.d.ts +1 -2
  179. package/functions/web3/fetchSolanaMerkleTreeRootHash.mjs +4 -5
  180. package/functions/web3/functionCalls/accessTokenCalls.cjs +1 -1
  181. package/functions/web3/functionCalls/accessTokenCalls.mjs +10 -11
  182. package/functions/web3/functionCalls/approveToken.cjs +1 -1
  183. package/functions/web3/functionCalls/approveToken.mjs +61 -58
  184. package/functions/web3/functionCalls/constructBatchCall.cjs +1 -1
  185. package/functions/web3/functionCalls/constructBatchCall.d.ts +2 -2
  186. package/functions/web3/functionCalls/constructBatchCall.mjs +10 -9
  187. package/functions/web3/functionCalls/estimateGasRelayer.cjs +1 -1
  188. package/functions/web3/functionCalls/estimateGasRelayer.mjs +1 -1
  189. package/functions/web3/functionCalls/inHinkalApprovalCalls.cjs +1 -1
  190. package/functions/web3/functionCalls/inHinkalApprovalCalls.mjs +18 -21
  191. package/functions/web3/functionCalls/recoverTransactionFromError.d.ts +1 -1
  192. package/functions/web3/functionCalls/transactCallDirect.cjs +1 -1
  193. package/functions/web3/functionCalls/transactCallDirect.mjs +38 -34
  194. package/functions/web3/functionCalls/transactCallRelayer.cjs +1 -1
  195. package/functions/web3/functionCalls/transactCallRelayer.mjs +8 -10
  196. package/functions/web3/getContractMetadata.cjs +1 -1
  197. package/functions/web3/getContractMetadata.d.ts +1 -1
  198. package/functions/web3/getContractMetadata.mjs +25 -25
  199. package/functions/web3/getPublicAddressBalance.cjs +1 -1
  200. package/functions/web3/getPublicAddressBalance.mjs +7 -6
  201. package/functions/web3/getTokenHolder.cjs +1 -1
  202. package/functions/web3/getTokenHolder.mjs +16 -15
  203. package/functions/web3/odosAPI.cjs +1 -1
  204. package/functions/web3/odosAPI.mjs +6 -7
  205. package/functions/web3/oneInchAPI.cjs +1 -1
  206. package/functions/web3/oneInchAPI.mjs +2 -3
  207. package/functions/web3/runContractFunction.cjs +1 -1
  208. package/functions/web3/runContractFunction.d.ts +6 -5
  209. package/functions/web3/runContractFunction.mjs +41 -45
  210. package/functions/web3/uniswapAPI.cjs +1 -1
  211. package/functions/web3/uniswapAPI.d.ts +2 -2
  212. package/functions/web3/uniswapAPI.mjs +23 -24
  213. package/index.cjs +1 -1
  214. package/index.mjs +336 -340
  215. package/package.json +3 -4
  216. package/providers/CustomEthersProvider.d.ts +1 -1
  217. package/providers/EthersProviderAdapter.cjs +1 -1
  218. package/providers/EthersProviderAdapter.d.ts +7 -7
  219. package/providers/EthersProviderAdapter.mjs +46 -44
  220. package/providers/SolanaProviderAdapter.d.ts +1 -1
  221. package/providers/WagmiProviderAdapter.cjs +1 -1
  222. package/providers/WagmiProviderAdapter.d.ts +5 -5
  223. package/providers/WagmiProviderAdapter.mjs +37 -33
  224. package/providers/prepareEthersHinkal.cjs +1 -1
  225. package/providers/prepareEthersHinkal.d.ts +2 -2
  226. package/providers/prepareEthersHinkal.mjs +3 -5
  227. package/providers/prepareWagmiHinkal.cjs +1 -1
  228. package/providers/prepareWagmiHinkal.mjs +3 -5
  229. package/types/activities.types.d.ts +2 -3
  230. package/types/big-intable.types.d.ts +3 -2
  231. package/types/ethereum-network.types.d.ts +10 -10
  232. package/types/transactions.types.cjs +1 -1
  233. package/types/transactions.types.d.ts +2 -3
  234. package/types/transactions.types.mjs +6 -7
  235. package/webworker/utxoWorker/utxoWorkerLauncher.cjs +1 -1
  236. package/webworker/utxoWorker/utxoWorkerLauncher.mjs +1 -1
  237. package/webworker/utxoWorker/utxoWorkerLogic.cjs +1 -1
  238. package/webworker/utxoWorker/utxoWorkerLogic.mjs +1 -1
  239. package/webworker/zkProofWorker/zkProofWorkerLauncher.cjs +1 -1
  240. package/webworker/zkProofWorker/zkProofWorkerLauncher.mjs +1 -1
  241. package/functions/web3/events/web3RetrieveEvents.cjs +0 -1
  242. package/functions/web3/events/web3RetrieveEvents.d.ts +0 -14
  243. package/functions/web3/events/web3RetrieveEvents.mjs +0 -9
@@ -1,12 +1,10 @@
1
- import { get as k, update as g } from "idb-keyval";
2
- import { BigNumber as T } from "ethers";
1
+ import { get as S, update as g } from "idb-keyval";
3
2
  import "../../types/circom-data.types.mjs";
4
- import { solanaNativeAddress as P, zeroAddress as C } from "../../constants/protocol.constants.mjs";
5
- import "../../types/transactions.types.mjs";
6
- import { ActivityStatus as f } from "../../types/activities.types.mjs";
3
+ import { solanaNativeAddress as k, zeroAddress as P } from "../../constants/protocol.constants.mjs";
4
+ import { ActivityStatus as T } from "../../types/activities.types.mjs";
7
5
  import { StorageKeys as l } from "../../types/cache.types.mjs";
8
6
  import "../../constants/token-data/index.mjs";
9
- import { isSolanaLike as N } from "../../constants/chains.constants.mjs";
7
+ import { isSolanaLike as C } from "../../constants/chains.constants.mjs";
10
8
  import "../../constants/contracts.constants.mjs";
11
9
  import "../../constants/kyc.constants.mjs";
12
10
  import "../../constants/server.constants.mjs";
@@ -21,13 +19,14 @@ import "../../constants/tasks.constants.mjs";
21
19
  import "../../constants/events.constants.mjs";
22
20
  import "@coral-xyz/anchor";
23
21
  import "@solana/web3.js";
24
- import { fixDecimalsAmount as b } from "../../functions/utils/amounts.utils.mjs";
22
+ import "ethers";
23
+ import { fixDecimalsAmount as q } from "../../functions/utils/amounts.utils.mjs";
25
24
  import "circomlibjs-hinkal-fork";
26
25
  import "../http/HttpClient.mjs";
27
- import { Logger as q } from "../../error-handling/logger.mjs";
26
+ import { Logger as N } from "../../error-handling/logger.mjs";
28
27
  import { getERC20Token as _ } from "../../functions/utils/erc20tokenFunctions.mjs";
29
28
  import "../../functions/utils/convertIntegrationProviderToExternalActionId.mjs";
30
- import { getAmountInToken as E } from "../../functions/web3/etherFunctions.mjs";
29
+ import { getAmountInToken as b } from "../../functions/web3/etherFunctions.mjs";
31
30
  import "../crypto-keys/keys.mjs";
32
31
  import "../../error-handling/error-codes.constants.mjs";
33
32
  import "axios";
@@ -40,19 +39,18 @@ import "../../functions/utils/mutexes.utils.mjs";
40
39
  import "@solana/spl-token";
41
40
  import "../../functions/utils/userAgent.mjs";
42
41
  import "multiformats";
43
- import { API as H } from "../../API/API.mjs";
42
+ import { API as E } from "../../API/API.mjs";
44
43
  import "../../API/tenderly.api.mjs";
45
44
  import "node-forge";
46
45
  import "../../functions/web3/events/getApprovedBalance.mjs";
47
46
  import "../../functions/web3/getTokenHolder.mjs";
48
- import "ethers-v6h";
49
47
  class R {
50
48
  generateTxId() {
51
49
  const t = (/* @__PURE__ */ new Date()).getTime(), o = Math.random().toString(36).substring(2, 15);
52
50
  return `tx_${t}_${o}`;
53
51
  }
54
52
  async getTransactionRecord() {
55
- return await k(l.TX_ACTIVITY) || {};
53
+ return await S(l.TX_ACTIVITY) || {};
56
54
  }
57
55
  async saveTxRequest(t) {
58
56
  const {
@@ -67,14 +65,14 @@ class R {
67
65
  txHash: u,
68
66
  activityType: c,
69
67
  tokensReceive: p,
70
- tokensSpend: v,
71
- tokensApprove: y,
72
- ownerPublicAddress: w,
73
- activityIcon: A,
74
- dappUrl: h,
75
- dappName: x,
76
- integrationProvider: D
77
- } = t, d = this.generateTxId(), S = {
68
+ tokensSpend: I,
69
+ tokensApprove: f,
70
+ ownerPublicAddress: y,
71
+ activityIcon: w,
72
+ dappUrl: A,
73
+ dappName: h,
74
+ integrationProvider: x
75
+ } = t, d = this.generateTxId(), D = {
78
76
  id: d,
79
77
  from: o,
80
78
  to: r,
@@ -85,18 +83,18 @@ class R {
85
83
  chainId: m,
86
84
  txHash: u,
87
85
  activityType: c,
88
- status: e ?? f.PENDING,
86
+ status: e ?? T.PENDING,
89
87
  timestamp: /* @__PURE__ */ new Date(),
90
88
  tokensReceive: p,
91
- tokensSpend: v,
92
- tokensApprove: y,
93
- ownerPublicAddress: w,
94
- activityIcon: A,
95
- dappUrl: h,
96
- dappName: x,
97
- integrationProvider: D
89
+ tokensSpend: I,
90
+ tokensApprove: f,
91
+ ownerPublicAddress: y,
92
+ activityIcon: w,
93
+ dappUrl: A,
94
+ dappName: h,
95
+ integrationProvider: x
98
96
  };
99
- return await g(l.TX_ACTIVITY, (I = {}) => (I[d] = S, I)), d;
97
+ return await g(l.TX_ACTIVITY, (v = {}) => (v[d] = D, v)), d;
100
98
  }
101
99
  async getTxRequest(t) {
102
100
  return (await this.getTransactionRecord())[t] || null;
@@ -142,7 +140,7 @@ class R {
142
140
  if (!t.success) {
143
141
  await this.updateActivity(
144
142
  o,
145
- f.FAILED,
143
+ T.FAILED,
146
144
  "erroredTx" in t ? t.erroredTx?.transactionHash : void 0
147
145
  );
148
146
  return;
@@ -151,13 +149,13 @@ class R {
151
149
  const { tx: r } = t;
152
150
  await this.updateActivity(
153
151
  o,
154
- f.SUCCESSFUL,
152
+ T.SUCCESSFUL,
155
153
  r.hash,
156
- T.from(r.value ?? 0n).toHexString(),
154
+ (r.value ?? 0n).toString(),
157
155
  r.from,
158
156
  r.to,
159
- T.from(r.gas ?? 0n),
160
- T.from(r.gasPrice ?? 0n)
157
+ r.gas ?? 0n,
158
+ r.gasPrice ?? 0n
161
159
  );
162
160
  }
163
161
  } catch (r) {
@@ -167,21 +165,21 @@ class R {
167
165
  getGasInDollar = async (t, o, r) => {
168
166
  if (!(!t || !o))
169
167
  try {
170
- const i = N(r) ? P : C, a = _(i, r);
168
+ const i = C(r) ? k : P, a = _(i, r);
171
169
  if (!a)
172
170
  return;
173
- const { prices: s } = await H.getTokenPrices(r, [a.erc20TokenAddress]), n = s[0];
171
+ const { prices: s } = await E.getTokenPrices(r, [a.erc20TokenAddress]), n = s[0];
174
172
  if (!n)
175
173
  return;
176
- const e = n * Number(E(a, o.toBigInt())) * Number(t.toBigInt());
177
- return b(e);
174
+ const e = n * Number(b(a, o)) * Number(t);
175
+ return q(e);
178
176
  } catch (i) {
179
- q.error("Failed to calculate gas cost in dollars:", { chainId: r, error: i });
177
+ N.error("Failed to calculate gas cost in dollars:", { chainId: r, error: i });
180
178
  return;
181
179
  }
182
180
  };
183
181
  }
184
- const qt = new R();
182
+ const Ct = new R();
185
183
  export {
186
- qt as activityStorage
184
+ Ct as activityStorage
187
185
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("idb-keyval");require("ethers");require("../../constants/chains.constants.cjs");require("@solana/web3.js");require("../http/HttpClient.cjs");const B=require("../../error-handling/logger.cjs");require("../../constants/token-data/index.cjs");require("../../error-handling/error-codes.constants.cjs");require("../../functions/utils/convertIntegrationProviderToExternalActionId.cjs");require("../../types/circom-data.types.cjs");require("../../types/transactions.types.cjs");require("../../types/activities.types.cjs");require("circomlibjs-hinkal-fork");require("../crypto-keys/keys.cjs");require("../../constants/server.constants.cjs");require("../../constants/vite.constants.cjs");require("axios");require("../../API/getServerURL.cjs");require("libsodium-wrappers");require("process");require("buffer");require("../../constants/save-depths.cjs");require("../../constants/reorg-depths.constants.cjs");require("../../functions/utils/mutexes.utils.cjs");require("@coral-xyz/anchor");require("@solana/spl-token");require("../../constants/contracts.constants.cjs");require("../../constants/kyc.constants.cjs");require("../../constants/coingecko.constants.cjs");require("../../constants/addresses.constants.cjs");require("../../constants/token.limits.constants.cjs");require("../../constants/presale.constants.cjs");require("../../constants/activity.constants.cjs");require("../../constants/tasks.constants.cjs");require("../../constants/events.constants.cjs");require("../../functions/utils/userAgent.cjs");const q=require("../../functions/utils/string.utils.cjs");require("multiformats");require("../../API/tenderly.api.cjs");class y{balancesRecordLabel="walletsBalances";async getBalances(){return await c.get(this.balancesRecordLabel)}async getBalancesByWallet(r,a){const e=await this.getBalances();if(!e)return;const i=q.getStateKey(r,a);return e[i]}async setBalances(r,a,e,i){let n=[];if(!i)return await c.update(this.balancesRecordLabel,(t={})=>{const u=q.getStateKey(a,r);return{...t,[u]:e}}),e;if(i.length===0)return await this.getBalancesByWallet(a,r)??[];try{await c.update(this.balancesRecordLabel,(t={})=>{const u=q.getStateKey(a,r),s=this.createBalanceLookup(t[u]),o=this.createBalanceLookup(e);return i.forEach(({erc20TokenAddress:g})=>{const l=g.toLowerCase();l in o?s[l]=o[l]:delete s[l]}),n=Object.values(s),{...t,[u]:n}})}catch(t){B.Logger.error("Failed to update wallet balances:",t)}return n}createBalanceLookup(r=[]){return r.reduce((a,e)=>({...a,[e.token.erc20TokenAddress.toLowerCase()]:e}),{})}}const w=new y;exports.publicBalancesStorage=w;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("idb-keyval");require("../../constants/chains.constants.cjs");require("@solana/web3.js");require("../http/HttpClient.cjs");const B=require("../../error-handling/logger.cjs");require("ethers");require("../../constants/token-data/index.cjs");require("../../error-handling/error-codes.constants.cjs");require("../../functions/utils/convertIntegrationProviderToExternalActionId.cjs");require("../../types/circom-data.types.cjs");require("../../types/activities.types.cjs");require("circomlibjs-hinkal-fork");require("../crypto-keys/keys.cjs");require("../../constants/server.constants.cjs");require("../../constants/vite.constants.cjs");require("axios");require("../../API/getServerURL.cjs");require("libsodium-wrappers");require("process");require("buffer");require("../../constants/save-depths.cjs");require("../../constants/reorg-depths.constants.cjs");require("../../functions/utils/mutexes.utils.cjs");require("@coral-xyz/anchor");require("@solana/spl-token");require("../../constants/contracts.constants.cjs");require("../../constants/kyc.constants.cjs");require("../../constants/coingecko.constants.cjs");require("../../constants/addresses.constants.cjs");require("../../constants/token.limits.constants.cjs");require("../../constants/presale.constants.cjs");require("../../constants/activity.constants.cjs");require("../../constants/tasks.constants.cjs");require("../../constants/events.constants.cjs");require("../../functions/utils/userAgent.cjs");const o=require("../../functions/utils/string.utils.cjs");require("multiformats");require("../../API/tenderly.api.cjs");class y{balancesRecordLabel="walletsBalances";async getBalances(){return await c.get(this.balancesRecordLabel)}async getBalancesByWallet(r,a){const e=await this.getBalances();if(!e)return;const i=o.getStateKey(r,a);return e[i]}async setBalances(r,a,e,i){let n=[];if(!i)return await c.update(this.balancesRecordLabel,(t={})=>{const u=o.getStateKey(a,r);return{...t,[u]:e}}),e;if(i.length===0)return await this.getBalancesByWallet(a,r)??[];try{await c.update(this.balancesRecordLabel,(t={})=>{const u=o.getStateKey(a,r),s=this.createBalanceLookup(t[u]),q=this.createBalanceLookup(e);return i.forEach(({erc20TokenAddress:g})=>{const l=g.toLowerCase();l in q?s[l]=q[l]:delete s[l]}),n=Object.values(s),{...t,[u]:n}})}catch(t){B.Logger.error("Failed to update wallet balances:",t)}return n}createBalanceLookup(r=[]){return r.reduce((a,e)=>({...a,[e.token.erc20TokenAddress.toLowerCase()]:e}),{})}}const w=new y;exports.publicBalancesStorage=w;
@@ -1,14 +1,13 @@
1
- import { get as u, update as s } from "idb-keyval";
2
- import "ethers";
1
+ import { get as u, update as m } from "idb-keyval";
3
2
  import "../../constants/chains.constants.mjs";
4
3
  import "@solana/web3.js";
5
4
  import "../http/HttpClient.mjs";
6
5
  import { Logger as w } from "../../error-handling/logger.mjs";
6
+ import "ethers";
7
7
  import "../../constants/token-data/index.mjs";
8
8
  import "../../error-handling/error-codes.constants.mjs";
9
9
  import "../../functions/utils/convertIntegrationProviderToExternalActionId.mjs";
10
10
  import "../../types/circom-data.types.mjs";
11
- import "../../types/transactions.types.mjs";
12
11
  import "../../types/activities.types.mjs";
13
12
  import "circomlibjs-hinkal-fork";
14
13
  import "../crypto-keys/keys.mjs";
@@ -52,7 +51,7 @@ class g {
52
51
  async setBalances(e, r, t, o) {
53
52
  let l = [];
54
53
  if (!o)
55
- return await s(this.balancesRecordLabel, (a = {}) => {
54
+ return await m(this.balancesRecordLabel, (a = {}) => {
56
55
  const i = c(r, e);
57
56
  return {
58
57
  ...a,
@@ -62,11 +61,11 @@ class g {
62
61
  if (o.length === 0)
63
62
  return await this.getBalancesByWallet(r, e) ?? [];
64
63
  try {
65
- await s(this.balancesRecordLabel, (a = {}) => {
66
- const i = c(r, e), n = this.createBalanceLookup(a[i]), m = this.createBalanceLookup(t);
64
+ await m(this.balancesRecordLabel, (a = {}) => {
65
+ const i = c(r, e), n = this.createBalanceLookup(a[i]), s = this.createBalanceLookup(t);
67
66
  return o.forEach(({ erc20TokenAddress: B }) => {
68
67
  const p = B.toLowerCase();
69
- p in m ? n[p] = m[p] : delete n[p];
68
+ p in s ? n[p] = s[p] : delete n[p];
70
69
  }), l = Object.values(n), {
71
70
  ...a,
72
71
  [i]: l
@@ -87,7 +86,7 @@ class g {
87
86
  );
88
87
  }
89
88
  }
90
- const rt = new g();
89
+ const et = new g();
91
90
  export {
92
- rt as publicBalancesStorage
91
+ et as publicBalancesStorage
93
92
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("idb-keyval"),q=require("../../error-handling/logger.cjs");require("../../types/circom-data.types.cjs");require("../../types/transactions.types.cjs");require("../../types/activities.types.cjs");require("../../constants/chains.constants.cjs");require("@coral-xyz/anchor");require("@solana/web3.js");require("ethers");require("circomlibjs-hinkal-fork");require("../../constants/kyc.constants.cjs");require("../http/HttpClient.cjs");require("../../constants/token-data/index.cjs");require("../../error-handling/error-codes.constants.cjs");require("../../functions/utils/convertIntegrationProviderToExternalActionId.cjs");require("../crypto-keys/keys.cjs");require("../../constants/server.constants.cjs");require("../../constants/vite.constants.cjs");require("axios");const d=require("../../functions/utils/caseInsensitive.utils.cjs");require("../../API/getServerURL.cjs");require("libsodium-wrappers");require("process");require("buffer");require("../../constants/save-depths.cjs");require("../../constants/reorg-depths.constants.cjs");require("../../functions/utils/mutexes.utils.cjs");require("@solana/spl-token");require("../../constants/contracts.constants.cjs");require("../../constants/coingecko.constants.cjs");require("../../constants/addresses.constants.cjs");require("../../constants/token.limits.constants.cjs");require("../../constants/presale.constants.cjs");require("../../constants/activity.constants.cjs");require("../../constants/tasks.constants.cjs");require("../../constants/events.constants.cjs");require("../../functions/utils/userAgent.cjs");require("multiformats");require("../../API/tenderly.api.cjs");require("node-forge");require("../../functions/web3/events/getApprovedBalance.cjs");require("../../functions/web3/getTokenHolder.cjs");require("ethers-v6h");class l{STORAGE_KEY="contacts";checkForDuplicate(o,e,r){if(o.find(({ethereumAddress:t,nickname:i})=>(t===e.ethereumAddress||i===e.nickname)&&t!==r)!==void 0)throw new Error("Duplicate Contact attribute")}async createContact(o,e){const r=o.toLowerCase();await s.update(this.STORAGE_KEY,c=>{const t=c??{},i=t[r]??[];return this.checkForDuplicate(i,e),i.push(e),t[r]=i,t})}async getContacts(o){try{const e=o.toLowerCase(),r=await s.get(this.STORAGE_KEY);return!r||!r[e]?[]:r[e]}catch(e){return q.Logger.error("Error while getting contacts:",e),[]}}async editContact(o,e,r){const c=o.toLowerCase();await s.update(this.STORAGE_KEY,t=>{const i=t??{},a=i[c];if(!i||!a)throw new Error("Contacts could not be fetched");this.checkForDuplicate(a,r,e);const n=a.findIndex(({ethereumAddress:u})=>d.caseInsensitiveEqual(u,e));if(n===-1)throw new Error("Contact to be edited was not found");return a[n]=r,i[c]=a,i})}async deleteContact(o,e){const r=o.toLowerCase();await s.update(this.STORAGE_KEY,c=>{const t=c??{},i=t[r];if(!t||!i)throw new Error("Contacts could not be fetched");const a=i.filter(({ethereumAddress:n})=>n!==e);return t[r]=a,t})}}const w=new l;exports.contactStorage=w;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("idb-keyval"),q=require("../../error-handling/logger.cjs");require("../../types/circom-data.types.cjs");require("../../types/activities.types.cjs");require("../../constants/chains.constants.cjs");require("@coral-xyz/anchor");require("@solana/web3.js");require("ethers");require("circomlibjs-hinkal-fork");require("../../constants/kyc.constants.cjs");require("../http/HttpClient.cjs");require("../../constants/token-data/index.cjs");require("../../error-handling/error-codes.constants.cjs");require("../../functions/utils/convertIntegrationProviderToExternalActionId.cjs");require("../crypto-keys/keys.cjs");require("../../constants/server.constants.cjs");require("../../constants/vite.constants.cjs");require("axios");const d=require("../../functions/utils/caseInsensitive.utils.cjs");require("../../API/getServerURL.cjs");require("libsodium-wrappers");require("process");require("buffer");require("../../constants/save-depths.cjs");require("../../constants/reorg-depths.constants.cjs");require("../../functions/utils/mutexes.utils.cjs");require("@solana/spl-token");require("../../constants/contracts.constants.cjs");require("../../constants/coingecko.constants.cjs");require("../../constants/addresses.constants.cjs");require("../../constants/token.limits.constants.cjs");require("../../constants/presale.constants.cjs");require("../../constants/activity.constants.cjs");require("../../constants/tasks.constants.cjs");require("../../constants/events.constants.cjs");require("../../functions/utils/userAgent.cjs");require("multiformats");require("../../API/tenderly.api.cjs");require("node-forge");require("../../functions/web3/events/getApprovedBalance.cjs");require("../../functions/web3/getTokenHolder.cjs");class l{STORAGE_KEY="contacts";checkForDuplicate(o,e,r){if(o.find(({ethereumAddress:t,nickname:i})=>(t===e.ethereumAddress||i===e.nickname)&&t!==r)!==void 0)throw new Error("Duplicate Contact attribute")}async createContact(o,e){const r=o.toLowerCase();await s.update(this.STORAGE_KEY,c=>{const t=c??{},i=t[r]??[];return this.checkForDuplicate(i,e),i.push(e),t[r]=i,t})}async getContacts(o){try{const e=o.toLowerCase(),r=await s.get(this.STORAGE_KEY);return!r||!r[e]?[]:r[e]}catch(e){return q.Logger.error("Error while getting contacts:",e),[]}}async editContact(o,e,r){const c=o.toLowerCase();await s.update(this.STORAGE_KEY,t=>{const i=t??{},a=i[c];if(!i||!a)throw new Error("Contacts could not be fetched");this.checkForDuplicate(a,r,e);const n=a.findIndex(({ethereumAddress:u})=>d.caseInsensitiveEqual(u,e));if(n===-1)throw new Error("Contact to be edited was not found");return a[n]=r,i[c]=a,i})}async deleteContact(o,e){const r=o.toLowerCase();await s.update(this.STORAGE_KEY,c=>{const t=c??{},i=t[r];if(!t||!i)throw new Error("Contacts could not be fetched");const a=i.filter(({ethereumAddress:n})=>n!==e);return t[r]=a,t})}}const w=new l;exports.contactStorage=w;
@@ -1,7 +1,6 @@
1
1
  import { update as s, get as p } from "idb-keyval";
2
2
  import { Logger as d } from "../../error-handling/logger.mjs";
3
3
  import "../../types/circom-data.types.mjs";
4
- import "../../types/transactions.types.mjs";
5
4
  import "../../types/activities.types.mjs";
6
5
  import "../../constants/chains.constants.mjs";
7
6
  import "@coral-xyz/anchor";
@@ -40,35 +39,34 @@ import "../../API/tenderly.api.mjs";
40
39
  import "node-forge";
41
40
  import "../../functions/web3/events/getApprovedBalance.mjs";
42
41
  import "../../functions/web3/getTokenHolder.mjs";
43
- import "ethers-v6h";
44
42
  class w {
45
43
  STORAGE_KEY = "contacts";
46
- checkForDuplicate(e, t, o) {
47
- if (e.find(
48
- ({ ethereumAddress: r, nickname: i }) => (r === t.ethereumAddress || i === t.nickname) && r !== o
44
+ checkForDuplicate(i, t, o) {
45
+ if (i.find(
46
+ ({ ethereumAddress: r, nickname: e }) => (r === t.ethereumAddress || e === t.nickname) && r !== o
49
47
  ) !== void 0)
50
48
  throw new Error("Duplicate Contact attribute");
51
49
  }
52
- async createContact(e, t) {
53
- const o = e.toLowerCase();
50
+ async createContact(i, t) {
51
+ const o = i.toLowerCase();
54
52
  await s(this.STORAGE_KEY, (c) => {
55
- const r = c ?? {}, i = r[o] ?? [];
56
- return this.checkForDuplicate(i, t), i.push(t), r[o] = i, r;
53
+ const r = c ?? {}, e = r[o] ?? [];
54
+ return this.checkForDuplicate(e, t), e.push(t), r[o] = e, r;
57
55
  });
58
56
  }
59
- async getContacts(e) {
57
+ async getContacts(i) {
60
58
  try {
61
- const t = e.toLowerCase(), o = await p(this.STORAGE_KEY);
59
+ const t = i.toLowerCase(), o = await p(this.STORAGE_KEY);
62
60
  return !o || !o[t] ? [] : o[t];
63
61
  } catch (t) {
64
62
  return d.error("Error while getting contacts:", t), [];
65
63
  }
66
64
  }
67
- async editContact(e, t, o) {
68
- const c = e.toLowerCase();
65
+ async editContact(i, t, o) {
66
+ const c = i.toLowerCase();
69
67
  await s(this.STORAGE_KEY, (r) => {
70
- const i = r ?? {}, a = i[c];
71
- if (!i || !a)
68
+ const e = r ?? {}, a = e[c];
69
+ if (!e || !a)
72
70
  throw new Error("Contacts could not be fetched");
73
71
  this.checkForDuplicate(a, o, t);
74
72
  const n = a.findIndex(
@@ -76,23 +74,23 @@ class w {
76
74
  );
77
75
  if (n === -1)
78
76
  throw new Error("Contact to be edited was not found");
79
- return a[n] = o, i[c] = a, i;
77
+ return a[n] = o, e[c] = a, e;
80
78
  });
81
79
  }
82
- async deleteContact(e, t) {
83
- const o = e.toLowerCase();
80
+ async deleteContact(i, t) {
81
+ const o = i.toLowerCase();
84
82
  await s(this.STORAGE_KEY, (c) => {
85
- const r = c ?? {}, i = r[o];
86
- if (!r || !i)
83
+ const r = c ?? {}, e = r[o];
84
+ if (!r || !e)
87
85
  throw new Error("Contacts could not be fetched");
88
- const a = i.filter(
86
+ const a = e.filter(
89
87
  ({ ethereumAddress: n }) => n !== t
90
88
  );
91
89
  return r[o] = a, r;
92
90
  });
93
91
  }
94
92
  }
95
- const et = new w();
93
+ const rt = new w();
96
94
  export {
97
- et as contactStorage
95
+ rt as contactStorage
98
96
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("idb-keyval");require("../../error-handling/error-codes.constants.cjs");require("ethers");require("../../types/circom-data.types.cjs");require("../../types/transactions.types.cjs");require("../../types/activities.types.cjs");const a=require("../../types/cache.types.cjs");require("../../constants/server.constants.cjs");require("../../API/getServerURL.cjs");require("../http/HttpClient.cjs");require("axios");require("../../constants/chains.constants.cjs");require("circomlibjs-hinkal-fork");require("libsodium-wrappers");require("process");require("buffer");require("../../constants/vite.constants.cjs");require("../../constants/save-depths.cjs");require("../../constants/reorg-depths.constants.cjs");require("../../functions/utils/mutexes.utils.cjs");require("@coral-xyz/anchor");const o=require("../../error-handling/logger.cjs");require("@solana/web3.js");require("../crypto-keys/keys.cjs");class c{generateMessageId(){const e=new Date().getTime(),r=Math.random().toString(36).substring(2,15);return`msg_${e}_${r}`}async saveSignedMessage(e,r,t,n,u,S){try{const s=this.generateMessageId(),g=await i.get(a.StorageKeys.SIGNED_MESSAGES)||{},q={chainId:e,messageText:r,messageType:t,subAccountAddress:n,signature:u,appMetaData:S};g[s]={timestamp:new Date().toISOString(),...q},await i.set(a.StorageKeys.SIGNED_MESSAGES,g)}catch(s){o.Logger.error("Failed to save signed message:",s,{chainId:e,messageType:t})}}async getAllSignedMessages(){try{const e=await i.get(a.StorageKeys.SIGNED_MESSAGES)||{};return Object.values(e).sort((r,t)=>new Date(t.timestamp).getTime()-new Date(r.timestamp).getTime())}catch(e){return o.Logger.error("Failed to retrieve signed messages:",e),[]}}}const d=new c;exports.signedMessagesStorage=d;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("idb-keyval");require("../../error-handling/error-codes.constants.cjs");require("ethers");require("../../types/circom-data.types.cjs");require("../../types/activities.types.cjs");const a=require("../../types/cache.types.cjs");require("../../constants/server.constants.cjs");require("../../API/getServerURL.cjs");require("../http/HttpClient.cjs");require("axios");require("../../constants/chains.constants.cjs");require("circomlibjs-hinkal-fork");require("libsodium-wrappers");require("process");require("buffer");require("../../constants/vite.constants.cjs");require("../../constants/save-depths.cjs");require("../../constants/reorg-depths.constants.cjs");require("../../functions/utils/mutexes.utils.cjs");require("@coral-xyz/anchor");const o=require("../../error-handling/logger.cjs");require("@solana/web3.js");require("../crypto-keys/keys.cjs");class q{generateMessageId(){const e=new Date().getTime(),r=Math.random().toString(36).substring(2,15);return`msg_${e}_${r}`}async saveSignedMessage(e,r,t,n,u,S){try{const s=this.generateMessageId(),g=await i.get(a.StorageKeys.SIGNED_MESSAGES)||{},c={chainId:e,messageText:r,messageType:t,subAccountAddress:n,signature:u,appMetaData:S};g[s]={timestamp:new Date().toISOString(),...c},await i.set(a.StorageKeys.SIGNED_MESSAGES,g)}catch(s){o.Logger.error("Failed to save signed message:",s,{chainId:e,messageType:t})}}async getAllSignedMessages(){try{const e=await i.get(a.StorageKeys.SIGNED_MESSAGES)||{};return Object.values(e).sort((r,t)=>new Date(t.timestamp).getTime()-new Date(r.timestamp).getTime())}catch(e){return o.Logger.error("Failed to retrieve signed messages:",e),[]}}}const d=new q;exports.signedMessagesStorage=d;
@@ -2,7 +2,6 @@ import { get as m, set as c } from "idb-keyval";
2
2
  import "../../error-handling/error-codes.constants.mjs";
3
3
  import "ethers";
4
4
  import "../../types/circom-data.types.mjs";
5
- import "../../types/transactions.types.mjs";
6
5
  import "../../types/activities.types.mjs";
7
6
  import { StorageKeys as s } from "../../types/cache.types.mjs";
8
7
  import "../../constants/server.constants.mjs";
@@ -57,7 +56,7 @@ class d {
57
56
  }
58
57
  }
59
58
  }
60
- const q = new d();
59
+ const k = new d();
61
60
  export {
62
- q as signedMessagesStorage
61
+ k as signedMessagesStorage
63
62
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const k=require("ethers"),T=require("idb-keyval"),_=require("../../API/API.cjs"),m=require("../../constants/chains.constants.cjs"),p=require("../../error-handling/logger.cjs"),E=require("../../functions/utils/caseInsensitive.utils.cjs"),g=require("../../types/cache.types.cjs"),d=require("../../functions/utils/string.utils.cjs"),A=require("../../constants/protocol.constants.cjs"),C=require("async-mutex"),S=require("../../functions/utils/erc20tokenFunctions.cjs"),I=require("./token-visibility-db.cjs");require("../../types/circom-data.types.cjs");require("../../types/transactions.types.cjs");require("../../types/activities.types.cjs");require("@coral-xyz/anchor");require("@solana/web3.js");require("circomlibjs-hinkal-fork");require("../../constants/kyc.constants.cjs");const K=require("../../functions/utils/create-provider.cjs");require("../../functions/utils/convertIntegrationProviderToExternalActionId.cjs");require("../../error-handling/error-codes.constants.cjs");require("../crypto-keys/keys.cjs");require("../../constants/server.constants.cjs");require("../../constants/vite.constants.cjs");require("../http/HttpClient.cjs");require("axios");require("../../API/getServerURL.cjs");require("libsodium-wrappers");require("process");require("buffer");require("../../constants/save-depths.cjs");require("../../constants/reorg-depths.constants.cjs");require("../../functions/utils/mutexes.utils.cjs");require("@solana/spl-token");require("../../constants/token-data/index.cjs");require("../../constants/contracts.constants.cjs");require("../../constants/coingecko.constants.cjs");require("../../constants/addresses.constants.cjs");require("../../constants/token.limits.constants.cjs");require("../../constants/presale.constants.cjs");require("../../constants/activity.constants.cjs");require("../../constants/tasks.constants.cjs");const x=require("../../constants/events.constants.cjs");require("../../functions/utils/userAgent.cjs");require("multiformats");require("../../API/tenderly.api.cjs");require("node-forge");require("../../functions/web3/events/getApprovedBalance.cjs");require("../../functions/web3/getTokenHolder.cjs");require("ethers-v6h");class P{fetchedTokens={};updateMutexes={};transferEventTopic=k.ethers.utils.id("Transfer(address,address,uint256)");getMutex(r){return this.updateMutexes[r]||(this.updateMutexes[r]=new C.Mutex),this.updateMutexes[r]}async getPublicTokens(r,o){const t=d.getStateKey(o,r);return(await T.get(g.StorageKeys.EVENTS_PUBLIC_TOKENS))?.[t]||[]}getFetchedTokens(r,o){const t=d.getStateKey(o,r);return this.fetchedTokens[t]||[]}async fetchAndUpdatePublicTokens(r,o){const t=d.getStateKey(r,o);await this.getMutex(t).runExclusive(async()=>{try{const s=(await this.getPublicTokens(o,r)).map(a=>a.erc20TokenAddress),{toEvents:i,fromEvents:u,latestBlock:c}=await this.getEvents(r,o),q=[...i,...u],{erc20Tokens:l}=await this.fetchPublicTokens(q,o,s),b=await I.tokenVisibilityStorage.hideSpamsAndFetchHiddenTokensAddresses(o,l),B=l.filter(a=>!E.lowerCaseIncludes(b,a.erc20TokenAddress));await T.update(g.StorageKeys.EVENTS_PUBLIC_TOKENS,(a={})=>{const h=a[t]||[],w=h.map(f=>f.erc20TokenAddress),L=B.filter(f=>!E.lowerCaseIncludes(w,f.erc20TokenAddress));h.push(...L);const v=this.updateTokenIds(u,i,h),y={...a,[t]:v};return this.fetchedTokens=y,y}),c&&await this.updateLastProcessedBlock(o,r,c)}catch(e){p.Logger.error("public tokens db error",e)}})}async getLastProcessedBlock(r,o){const t=await T.get(g.StorageKeys.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS)||{},n=d.getStateKey(o,r);return t[n]||x.EVENTS_INITIAL_BLOCKS[r]}async updateLastProcessedBlock(r,o,t){await T.update(g.StorageKeys.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS,(n={})=>{const e=d.getStateKey(o,r);return{...n,[e]:t}})}async getEvents(r,o){try{const{fetchRpcUrl:t}=m.networkRegistry[o];if(!t)throw Error("No fetchRpcUrl in PublicTokensDB");const n=K.createCustomRpcProvider(t),e=await this.getLastProcessedBlock(o,r)+1,s=await n.getBlockNumber(),i=k.ethers.utils.hexZeroPad(r.toLowerCase(),32),u={topics:[this.transferEventTopic,null,i],fromBlock:e,toBlock:s},c={topics:[this.transferEventTopic,i,null],fromBlock:e,toBlock:s},[q,l]=await Promise.all([n.getLogs(u),n.getLogs(c)]);return{toEvents:q,fromEvents:l,latestBlock:s}}catch(t){return p.Logger.error("Error fetching events:",t),{toEvents:[],fromEvents:[],latestBlock:void 0}}}updateTokenIds(r,o,t){const n=new Map;return t.forEach(e=>{if(S.isNFTToken(e)&&e.tokenIds){const s=e.erc20TokenAddress.toLowerCase();n.set(s,[...e.tokenIds])}}),o.forEach(e=>{if(e.topics.length<=3)return;const s=e.address.toLowerCase(),i=k.ethers.BigNumber.from(e.topics[3]).toString();n.has(s)||n.set(s,[]),n.get(s)?.push(i)}),r.forEach(e=>{if(e.topics.length<=3)return;const s=e.address.toLowerCase(),i=n.get(s);if(i?.length){const u=k.ethers.BigNumber.from(e.topics[3]).toString(),c=i.indexOf(u);c!==-1&&i.splice(c,1)}}),t.forEach(e=>{if(S.isNFTToken(e)){const s=e.erc20TokenAddress.toLowerCase(),i=n.get(s);e.tokenIds=i?.length&&i.length>0?i:void 0}}),t}async fetchPublicTokens(r,o,t){try{const n=[A.zeroAddress,...new Set(r.map(s=>s.address))].filter(s=>s&&!E.lowerCaseIncludes(t,s));return n.length?{erc20Tokens:(await _.API.tokensInfoCall(o,n)).filter(s=>!!s)}:{erc20Tokens:[]}}catch(n){return p.Logger.error("Error fetching public tokens:",n),{erc20Tokens:[]}}}}const N=new P;exports.EventsPublicTokensDB=P;exports.eventsPublicTokensDB=N;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("ethers"),k=require("idb-keyval"),_=require("../../API/API.cjs"),A=require("../../constants/chains.constants.cjs"),p=require("../../error-handling/logger.cjs"),f=require("../../functions/utils/caseInsensitive.utils.cjs"),T=require("../../types/cache.types.cjs"),d=require("../../functions/utils/string.utils.cjs"),C=require("../../constants/protocol.constants.cjs"),I=require("async-mutex"),S=require("../../functions/utils/erc20tokenFunctions.cjs"),K=require("./token-visibility-db.cjs");require("../../types/circom-data.types.cjs");require("../../types/activities.types.cjs");require("@coral-xyz/anchor");require("@solana/web3.js");require("circomlibjs-hinkal-fork");require("../../constants/kyc.constants.cjs");const m=require("../../functions/utils/create-provider.cjs");require("../../functions/utils/convertIntegrationProviderToExternalActionId.cjs");require("../../error-handling/error-codes.constants.cjs");require("../crypto-keys/keys.cjs");require("../../constants/server.constants.cjs");require("../../constants/vite.constants.cjs");require("../http/HttpClient.cjs");require("axios");require("../../API/getServerURL.cjs");require("libsodium-wrappers");require("process");require("buffer");require("../../constants/save-depths.cjs");require("../../constants/reorg-depths.constants.cjs");require("../../functions/utils/mutexes.utils.cjs");require("@solana/spl-token");require("../../constants/token-data/index.cjs");require("../../constants/contracts.constants.cjs");require("../../constants/coingecko.constants.cjs");require("../../constants/addresses.constants.cjs");require("../../constants/token.limits.constants.cjs");require("../../constants/presale.constants.cjs");require("../../constants/activity.constants.cjs");require("../../constants/tasks.constants.cjs");const x=require("../../constants/events.constants.cjs");require("../../functions/utils/userAgent.cjs");require("multiformats");require("../../API/tenderly.api.cjs");require("node-forge");require("../../functions/web3/events/getApprovedBalance.cjs");require("../../functions/web3/getTokenHolder.cjs");class P{fetchedTokens={};updateMutexes={};transferEventTopic=y.ethers.id("Transfer(address,address,uint256)");getMutex(t){return this.updateMutexes[t]||(this.updateMutexes[t]=new I.Mutex),this.updateMutexes[t]}async getPublicTokens(t,o){const r=d.getStateKey(o,t);return(await k.get(T.StorageKeys.EVENTS_PUBLIC_TOKENS))?.[r]||[]}getFetchedTokens(t,o){const r=d.getStateKey(o,t);return this.fetchedTokens[r]||[]}async fetchAndUpdatePublicTokens(t,o){const r=d.getStateKey(t,o);await this.getMutex(r).runExclusive(async()=>{try{const s=(await this.getPublicTokens(o,t)).map(a=>a.erc20TokenAddress),{toEvents:i,fromEvents:u,latestBlock:c}=await this.getEvents(t,o),g=[...i,...u],{erc20Tokens:l}=await this.fetchPublicTokens(g,o,s),B=await K.tokenVisibilityStorage.hideSpamsAndFetchHiddenTokensAddresses(o,l),w=l.filter(a=>!f.lowerCaseIncludes(B,a.erc20TokenAddress));await k.update(T.StorageKeys.EVENTS_PUBLIC_TOKENS,(a={})=>{const q=a[r]||[],b=q.map(h=>h.erc20TokenAddress),L=w.filter(h=>!f.lowerCaseIncludes(b,h.erc20TokenAddress));q.push(...L);const v=this.updateTokenIds(u,i,q),E={...a,[r]:v};return this.fetchedTokens=E,E}),c&&await this.updateLastProcessedBlock(o,t,c)}catch(e){p.Logger.error("public tokens db error",e)}})}async getLastProcessedBlock(t,o){const r=await k.get(T.StorageKeys.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS)||{},n=d.getStateKey(o,t);return r[n]||x.EVENTS_INITIAL_BLOCKS[t]}async updateLastProcessedBlock(t,o,r){await k.update(T.StorageKeys.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS,(n={})=>{const e=d.getStateKey(o,t);return{...n,[e]:r}})}async getEvents(t,o){try{const{fetchRpcUrl:r}=A.networkRegistry[o];if(!r)throw Error("No fetchRpcUrl in PublicTokensDB");const n=m.createCustomRpcProvider(r),e=await this.getLastProcessedBlock(o,t)+1,s=await n.getBlockNumber(),i=y.ethers.zeroPadValue(t.toLowerCase(),32),u={topics:[this.transferEventTopic,null,i],fromBlock:e,toBlock:s},c={topics:[this.transferEventTopic,i,null],fromBlock:e,toBlock:s},[g,l]=await Promise.all([n.getLogs(u),n.getLogs(c)]);return{toEvents:g,fromEvents:l,latestBlock:s}}catch(r){return p.Logger.error("Error fetching events:",r),{toEvents:[],fromEvents:[],latestBlock:void 0}}}updateTokenIds(t,o,r){const n=new Map;return r.forEach(e=>{if(S.isNFTToken(e)&&e.tokenIds){const s=e.erc20TokenAddress.toLowerCase();n.set(s,[...e.tokenIds])}}),o.forEach(e=>{if(e.topics.length<=3)return;const s=e.address.toLowerCase(),i=BigInt(e.topics[3]).toString();n.has(s)||n.set(s,[]),n.get(s)?.push(i)}),t.forEach(e=>{if(e.topics.length<=3)return;const s=e.address.toLowerCase(),i=n.get(s);if(i?.length){const u=BigInt(e.topics[3]).toString(),c=i.indexOf(u);c!==-1&&i.splice(c,1)}}),r.forEach(e=>{if(S.isNFTToken(e)){const s=e.erc20TokenAddress.toLowerCase(),i=n.get(s);e.tokenIds=i?.length&&i.length>0?i:void 0}}),r}async fetchPublicTokens(t,o,r){try{const n=[C.zeroAddress,...new Set(t.map(s=>s.address))].filter(s=>s&&!f.lowerCaseIncludes(r,s));return n.length?{erc20Tokens:(await _.API.tokensInfoCall(o,n)).filter(s=>!!s)}:{erc20Tokens:[]}}catch(n){return p.Logger.error("Error fetching public tokens:",n),{erc20Tokens:[]}}}}const N=new P;exports.EventsPublicTokensDB=P;exports.eventsPublicTokensDB=N;
@@ -1,23 +1,22 @@
1
- import { ethers as u } from "ethers";
1
+ import { ethers as E } from "ethers";
2
2
  import { get as B, update as w } from "idb-keyval";
3
3
  import { API as C } from "../../API/API.mjs";
4
4
  import { networkRegistry as v } from "../../constants/chains.constants.mjs";
5
- import { Logger as h } from "../../error-handling/logger.mjs";
6
- import { lowerCaseIncludes as g } from "../../functions/utils/caseInsensitive.utils.mjs";
5
+ import { Logger as T } from "../../error-handling/logger.mjs";
6
+ import { lowerCaseIncludes as h } from "../../functions/utils/caseInsensitive.utils.mjs";
7
7
  import { StorageKeys as k } from "../../types/cache.types.mjs";
8
- import { getStateKey as m } from "../../functions/utils/string.utils.mjs";
9
- import { zeroAddress as x } from "../../constants/protocol.constants.mjs";
8
+ import { getStateKey as d } from "../../functions/utils/string.utils.mjs";
9
+ import { zeroAddress as I } from "../../constants/protocol.constants.mjs";
10
10
  import { Mutex as _ } from "async-mutex";
11
11
  import { isNFTToken as P } from "../../functions/utils/erc20tokenFunctions.mjs";
12
- import { tokenVisibilityStorage as N } from "./token-visibility-db.mjs";
12
+ import { tokenVisibilityStorage as x } from "./token-visibility-db.mjs";
13
13
  import "../../types/circom-data.types.mjs";
14
- import "../../types/transactions.types.mjs";
15
14
  import "../../types/activities.types.mjs";
16
15
  import "@coral-xyz/anchor";
17
16
  import "@solana/web3.js";
18
17
  import "circomlibjs-hinkal-fork";
19
18
  import "../../constants/kyc.constants.mjs";
20
- import { createCustomRpcProvider as I } from "../../functions/utils/create-provider.mjs";
19
+ import { createCustomRpcProvider as N } from "../../functions/utils/create-provider.mjs";
21
20
  import "../../functions/utils/convertIntegrationProviderToExternalActionId.mjs";
22
21
  import "../../error-handling/error-codes.constants.mjs";
23
22
  import "../crypto-keys/keys.mjs";
@@ -48,56 +47,55 @@ import "../../API/tenderly.api.mjs";
48
47
  import "node-forge";
49
48
  import "../../functions/web3/events/getApprovedBalance.mjs";
50
49
  import "../../functions/web3/getTokenHolder.mjs";
51
- import "ethers-v6h";
52
50
  class K {
53
51
  fetchedTokens = {};
54
52
  updateMutexes = {};
55
- transferEventTopic = u.utils.id("Transfer(address,address,uint256)");
53
+ transferEventTopic = E.id("Transfer(address,address,uint256)");
56
54
  getMutex(e) {
57
55
  return this.updateMutexes[e] || (this.updateMutexes[e] = new _()), this.updateMutexes[e];
58
56
  }
59
57
  async getPublicTokens(e, s) {
60
- const o = m(s, e);
58
+ const o = d(s, e);
61
59
  return (await B(k.EVENTS_PUBLIC_TOKENS))?.[o] || [];
62
60
  }
63
61
  getFetchedTokens(e, s) {
64
- const o = m(s, e);
62
+ const o = d(s, e);
65
63
  return this.fetchedTokens[o] || [];
66
64
  }
67
65
  async fetchAndUpdatePublicTokens(e, s) {
68
- const o = m(e, s);
66
+ const o = d(e, s);
69
67
  await this.getMutex(o).runExclusive(async () => {
70
68
  try {
71
- const r = (await this.getPublicTokens(s, e)).map((a) => a.erc20TokenAddress), { toEvents: i, fromEvents: p, latestBlock: c } = await this.getEvents(e, s), l = [...i, ...p], { erc20Tokens: d } = await this.fetchPublicTokens(l, s, r), S = await N.hideSpamsAndFetchHiddenTokensAddresses(
69
+ const r = (await this.getPublicTokens(s, e)).map((a) => a.erc20TokenAddress), { toEvents: i, fromEvents: p, latestBlock: c } = await this.getEvents(e, s), u = [...i, ...p], { erc20Tokens: m } = await this.fetchPublicTokens(u, s, r), S = await x.hideSpamsAndFetchHiddenTokensAddresses(
72
70
  s,
73
- d
74
- ), L = d.filter(
75
- (a) => !g(S, a.erc20TokenAddress)
71
+ m
72
+ ), L = m.filter(
73
+ (a) => !h(S, a.erc20TokenAddress)
76
74
  // filter out hidden tokens
77
75
  );
78
76
  await w(k.EVENTS_PUBLIC_TOKENS, (a = {}) => {
79
- const f = a[o] || [], b = f.map((T) => T.erc20TokenAddress), y = L.filter(
80
- (T) => !g(b, T.erc20TokenAddress)
77
+ const l = a[o] || [], y = l.map((f) => f.erc20TokenAddress), b = L.filter(
78
+ (f) => !h(y, f.erc20TokenAddress)
81
79
  );
82
- f.push(...y);
83
- const A = this.updateTokenIds(p, i, f), E = {
80
+ l.push(...b);
81
+ const A = this.updateTokenIds(p, i, l), g = {
84
82
  ...a,
85
83
  [o]: A
86
84
  };
87
- return this.fetchedTokens = E, E;
85
+ return this.fetchedTokens = g, g;
88
86
  }), c && await this.updateLastProcessedBlock(s, e, c);
89
87
  } catch (t) {
90
- h.error("public tokens db error", t);
88
+ T.error("public tokens db error", t);
91
89
  }
92
90
  });
93
91
  }
94
92
  async getLastProcessedBlock(e, s) {
95
- const o = await B(k.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS) || {}, n = m(s, e);
93
+ const o = await B(k.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS) || {}, n = d(s, e);
96
94
  return o[n] || O[e];
97
95
  }
98
96
  async updateLastProcessedBlock(e, s, o) {
99
97
  await w(k.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS, (n = {}) => {
100
- const t = m(s, e);
98
+ const t = d(s, e);
101
99
  return {
102
100
  ...n,
103
101
  [t]: o
@@ -109,7 +107,7 @@ class K {
109
107
  const { fetchRpcUrl: o } = v[s];
110
108
  if (!o)
111
109
  throw Error("No fetchRpcUrl in PublicTokensDB");
112
- const n = I(o), t = await this.getLastProcessedBlock(s, e) + 1, r = await n.getBlockNumber(), i = u.utils.hexZeroPad(e.toLowerCase(), 32), p = {
110
+ const n = N(o), t = await this.getLastProcessedBlock(s, e) + 1, r = await n.getBlockNumber(), i = E.zeroPadValue(e.toLowerCase(), 32), p = {
113
111
  topics: [this.transferEventTopic, null, i],
114
112
  fromBlock: t,
115
113
  toBlock: r
@@ -117,10 +115,10 @@ class K {
117
115
  topics: [this.transferEventTopic, i, null],
118
116
  fromBlock: t,
119
117
  toBlock: r
120
- }, [l, d] = await Promise.all([n.getLogs(p), n.getLogs(c)]);
121
- return { toEvents: l, fromEvents: d, latestBlock: r };
118
+ }, [u, m] = await Promise.all([n.getLogs(p), n.getLogs(c)]);
119
+ return { toEvents: u, fromEvents: m, latestBlock: r };
122
120
  } catch (o) {
123
- return h.error("Error fetching events:", o), { toEvents: [], fromEvents: [], latestBlock: void 0 };
121
+ return T.error("Error fetching events:", o), { toEvents: [], fromEvents: [], latestBlock: void 0 };
124
122
  }
125
123
  }
126
124
  // First get existed tokenIds from tokens
@@ -136,14 +134,14 @@ class K {
136
134
  }), s.forEach((t) => {
137
135
  if (t.topics.length <= 3)
138
136
  return;
139
- const r = t.address.toLowerCase(), i = u.BigNumber.from(t.topics[3]).toString();
137
+ const r = t.address.toLowerCase(), i = BigInt(t.topics[3]).toString();
140
138
  n.has(r) || n.set(r, []), n.get(r)?.push(i);
141
139
  }), e.forEach((t) => {
142
140
  if (t.topics.length <= 3)
143
141
  return;
144
142
  const r = t.address.toLowerCase(), i = n.get(r);
145
143
  if (i?.length) {
146
- const p = u.BigNumber.from(t.topics[3]).toString(), c = i.indexOf(p);
144
+ const p = BigInt(t.topics[3]).toString(), c = i.indexOf(p);
147
145
  c !== -1 && i.splice(c, 1);
148
146
  }
149
147
  }), o.forEach((t) => {
@@ -155,19 +153,19 @@ class K {
155
153
  }
156
154
  async fetchPublicTokens(e, s, o) {
157
155
  try {
158
- const n = [x, ...new Set(e.map((r) => r.address))].filter(
159
- (r) => r && !g(o, r)
156
+ const n = [I, ...new Set(e.map((r) => r.address))].filter(
157
+ (r) => r && !h(o, r)
160
158
  );
161
159
  return n.length ? { erc20Tokens: (await C.tokensInfoCall(s, n)).filter(
162
160
  (r) => !!r
163
161
  ) } : { erc20Tokens: [] };
164
162
  } catch (n) {
165
- return h.error("Error fetching public tokens:", n), { erc20Tokens: [] };
163
+ return T.error("Error fetching public tokens:", n), { erc20Tokens: [] };
166
164
  }
167
165
  }
168
166
  }
169
- const Ot = new K();
167
+ const xt = new K();
170
168
  export {
171
169
  K as EventsPublicTokensDB,
172
- Ot as eventsPublicTokensDB
170
+ xt as eventsPublicTokensDB
173
171
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("ethers"),O=require("@solana/web3.js"),E=require("../../crypto/poseidon.cjs"),f=require("../../constants/chains.constants.cjs"),z=require("../utxo/Utxo.cjs"),_=require("./keys.cjs"),y="solana-on-chain-utxo:",x=8,N=e=>{if(e.length!==x)throw new Error(`Expected ${x} on-chain fields, received ${e.length}`);const t=e.map((o,r)=>{const n=o instanceof Uint8Array?o:Uint8Array.from(o);if(n.length!==32)throw new Error(`Expected bytes32 length 32 at position ${r}, got ${n.length}`);return`0x${Buffer.from(n).toString("hex")}`});return`${y}${a.ethers.utils.defaultAbiCoder.encode(["bytes32[8]"],[t])}`},H=e=>e.startsWith(y),S=e=>{if(!H(e))throw new Error("Invalid encoded Solana UTXO payload");const[t]=a.ethers.utils.defaultAbiCoder.decode(["bytes32[8]"],e.slice(y.length)),o=t;if(!Array.isArray(o)||o.length!==x)throw new Error("Malformed encoded Solana UTXO payload");const[r,n,s,i,d,c,l,m]=o,u=BigInt(r),h=BigInt(i),A=a.ethers.BigNumber.from(d).toHexString(),g=BigInt(c),b=BigInt(l),B=BigInt(m).toString(),k=Array.from(a.ethers.utils.arrayify(n)),w=Array.from(a.ethers.utils.arrayify(s)),p=Uint8Array.from([...k.slice(16),...w.slice(16)]),T=new O.PublicKey(p).toBase58(),C=E.poseidonHash(BigInt(n),BigInt(s));return{amount:u,erc20TokenAddress:C,mintAddress:T,randomization:h,stealthAddress:A,H0:g,H1:b,timeStamp:B}},U=e=>{const t=a.ethers.utils.defaultAbiCoder.decode(["uint256","address","tuple(uint256, uint256, uint256, uint256)","uint256","uint256"],e),o=t[0].toBigInt(),r=t[1],n=t[2][0].toBigInt(),s=t[2][1].toHexString(),i=t[2][2].toBigInt(),d=t[2][3].toBigInt(),c=t[3].toString(),l=t[4].toNumber();return{amount:o,erc20TokenAddress:r,randomization:n,stealthAddress:s,H0:i,H1:d,timeStamp:c,tokenId:l}},I=(e,t,o)=>{if(f.isSolanaLike(o)){const{amount:l,erc20TokenAddress:m,mintAddress:u,randomization:h,stealthAddress:A,timeStamp:g}=S(e);return{amount:l,erc20TokenAddress:m,mintAddress:u,timeStamp:g,tokenId:0,randomization:h,shieldedPrivateKey:t,stealthAddress:A}}const{amount:r,erc20TokenAddress:n,timeStamp:s,tokenId:i,randomization:d,stealthAddress:c}=U(e);return{amount:r,erc20TokenAddress:n,timeStamp:s,tokenId:i,randomization:d,shieldedPrivateKey:t,stealthAddress:c}},P=(e,t,o)=>new z.Utxo(I(e,t,o)),$=(e,t,o)=>{const{randomization:r,H0:n,H1:s}=f.isSolanaLike(o)?S(e):U(e),i=_.UserKeys.checkSignature(r,n,s,t);if(!i)throw new Error("UTXO doesn't belong to user");return i};exports.abiDecodeUtxo=U;exports.checkUtxoSignature=$;exports.decodeSolanaOnChainUtxo=S;exports.decodeUtxo=P;exports.decodeUtxoConstructorArgs=I;exports.encodeSolanaOnChainUtxo=N;exports.isSolanaOnChainUtxo=H;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const O=require("@solana/web3.js"),E=require("../../crypto/poseidon.cjs"),B=require("../../constants/chains.constants.cjs"),z=require("../utxo/Utxo.cjs"),_=require("./keys.cjs"),a=require("ethers"),y="solana-on-chain-utxo:",x=8,P=e=>{if(e.length!==x)throw new Error(`Expected ${x} on-chain fields, received ${e.length}`);const t=e.map((n,r)=>{const o=n instanceof Uint8Array?n:Uint8Array.from(n);if(o.length!==32)throw new Error(`Expected bytes32 length 32 at position ${r}, got ${o.length}`);return`0x${Buffer.from(o).toString("hex")}`});return`${y}${a.ethers.AbiCoder.defaultAbiCoder().encode(["bytes32[8]"],[t])}`},I=e=>e.startsWith(y),S=e=>{if(!I(e))throw new Error("Invalid encoded Solana UTXO payload");const[t]=a.ethers.AbiCoder.defaultAbiCoder().decode(["bytes32[8]"],e.slice(y.length)),n=t;if(!Array.isArray(n)||n.length!==x)throw new Error("Malformed encoded Solana UTXO payload");const[r,o,s,i,d,c,h,l]=n,m=BigInt(r),u=BigInt(i),A=a.ethers.toBeHex(BigInt(d)),g=BigInt(c),f=BigInt(h),H=BigInt(l).toString(),k=Array.from(a.ethers.getBytes(o)),w=Array.from(a.ethers.getBytes(s)),C=Uint8Array.from([...k.slice(16),...w.slice(16)]),p=new O.PublicKey(C).toBase58(),T=E.poseidonHash(BigInt(o),BigInt(s));return{amount:m,erc20TokenAddress:T,mintAddress:p,randomization:u,stealthAddress:A,H0:g,H1:f,timeStamp:H}},U=e=>{const t=a.ethers.AbiCoder.defaultAbiCoder().decode(["uint256","address","tuple(uint256, uint256, uint256, uint256)","uint256","uint256"],e),n=BigInt(t[0]),r=t[1],o=BigInt(t[2][0]),s=a.ethers.toBeHex(BigInt(t[2][1])),i=BigInt(t[2][2]),d=BigInt(t[2][3]),c=BigInt(t[3]).toString(),h=Number(t[4]);return{amount:n,erc20TokenAddress:r,randomization:o,stealthAddress:s,H0:i,H1:d,timeStamp:c,tokenId:h}},b=(e,t,n)=>{if(B.isSolanaLike(n)){const{amount:h,erc20TokenAddress:l,mintAddress:m,randomization:u,stealthAddress:A,timeStamp:g}=S(e);return{amount:h,erc20TokenAddress:l,mintAddress:m,timeStamp:g,tokenId:0,randomization:u,shieldedPrivateKey:t,stealthAddress:A}}const{amount:r,erc20TokenAddress:o,timeStamp:s,tokenId:i,randomization:d,stealthAddress:c}=U(e);return{amount:r,erc20TokenAddress:o,timeStamp:s,tokenId:i,randomization:d,shieldedPrivateKey:t,stealthAddress:c}},$=(e,t,n)=>new z.Utxo(b(e,t,n)),q=(e,t,n)=>{const{randomization:r,H0:o,H1:s}=B.isSolanaLike(n)?S(e):U(e),i=_.UserKeys.checkSignature(r,o,s,t);if(!i)throw new Error("UTXO doesn't belong to user");return i};exports.abiDecodeUtxo=U;exports.checkUtxoSignature=q;exports.decodeSolanaOnChainUtxo=S;exports.decodeUtxo=$;exports.decodeUtxoConstructorArgs=b;exports.encodeSolanaOnChainUtxo=P;exports.isSolanaOnChainUtxo=I;