@matrix-privacy/wallet 0.0.1

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 (270) hide show
  1. package/.eslintrc.js +73 -0
  2. package/.prettierrc.js +21 -0
  3. package/LICENSE +21 -0
  4. package/README.md +7 -0
  5. package/dist/__tests__/index.test.d.ts +1 -0
  6. package/dist/__tests__/index.test.js +13 -0
  7. package/dist/__tests__/index.test.js.map +1 -0
  8. package/dist/index.d.ts +4 -0
  9. package/dist/index.js +20 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/services/artifacts/__tests__/artifact-downloader.test.d.ts +1 -0
  12. package/dist/services/artifacts/__tests__/artifact-downloader.test.js +172 -0
  13. package/dist/services/artifacts/__tests__/artifact-downloader.test.js.map +1 -0
  14. package/dist/services/artifacts/artifact-downloader.d.ts +13 -0
  15. package/dist/services/artifacts/artifact-downloader.js +142 -0
  16. package/dist/services/artifacts/artifact-downloader.js.map +1 -0
  17. package/dist/services/artifacts/artifact-hash.d.ts +3 -0
  18. package/dist/services/artifacts/artifact-hash.js +53 -0
  19. package/dist/services/artifacts/artifact-hash.js.map +1 -0
  20. package/dist/services/artifacts/artifact-store.d.ts +11 -0
  21. package/dist/services/artifacts/artifact-store.js +15 -0
  22. package/dist/services/artifacts/artifact-store.js.map +1 -0
  23. package/dist/services/artifacts/artifact-util.d.ts +7 -0
  24. package/dist/services/artifacts/artifact-util.js +64 -0
  25. package/dist/services/artifacts/artifact-util.js.map +1 -0
  26. package/dist/services/artifacts/index.d.ts +2 -0
  27. package/dist/services/artifacts/index.js +19 -0
  28. package/dist/services/artifacts/index.js.map +1 -0
  29. package/dist/services/artifacts/json/artifact-v2-hashes.json +467 -0
  30. package/dist/services/ethers/__tests__/ethers-util.test.d.ts +1 -0
  31. package/dist/services/ethers/__tests__/ethers-util.test.js +19 -0
  32. package/dist/services/ethers/__tests__/ethers-util.test.js.map +1 -0
  33. package/dist/services/ethers/ethers-util.d.ts +1 -0
  34. package/dist/services/ethers/ethers-util.js +9 -0
  35. package/dist/services/ethers/ethers-util.js.map +1 -0
  36. package/dist/services/ethers/index.d.ts +1 -0
  37. package/dist/services/ethers/index.js +18 -0
  38. package/dist/services/ethers/index.js.map +1 -0
  39. package/dist/services/index.d.ts +4 -0
  40. package/dist/services/index.js +21 -0
  41. package/dist/services/index.js.map +1 -0
  42. package/dist/services/matrix/core/__tests__/engine.test.d.ts +1 -0
  43. package/dist/services/matrix/core/__tests__/engine.test.js +30 -0
  44. package/dist/services/matrix/core/__tests__/engine.test.js.map +1 -0
  45. package/dist/services/matrix/core/__tests__/providers.test.d.ts +1 -0
  46. package/dist/services/matrix/core/__tests__/providers.test.js +54 -0
  47. package/dist/services/matrix/core/__tests__/providers.test.js.map +1 -0
  48. package/dist/services/matrix/core/artifacts.d.ts +10 -0
  49. package/dist/services/matrix/core/artifacts.js +70 -0
  50. package/dist/services/matrix/core/artifacts.js.map +1 -0
  51. package/dist/services/matrix/core/engine.d.ts +4 -0
  52. package/dist/services/matrix/core/engine.js +21 -0
  53. package/dist/services/matrix/core/engine.js.map +1 -0
  54. package/dist/services/matrix/core/index.d.ts +8 -0
  55. package/dist/services/matrix/core/index.js +25 -0
  56. package/dist/services/matrix/core/index.js.map +1 -0
  57. package/dist/services/matrix/core/init.d.ts +21 -0
  58. package/dist/services/matrix/core/init.js +79 -0
  59. package/dist/services/matrix/core/init.js.map +1 -0
  60. package/dist/services/matrix/core/load-provider.d.ts +9 -0
  61. package/dist/services/matrix/core/load-provider.js +100 -0
  62. package/dist/services/matrix/core/load-provider.js.map +1 -0
  63. package/dist/services/matrix/core/merkletree.d.ts +5 -0
  64. package/dist/services/matrix/core/merkletree.js +40 -0
  65. package/dist/services/matrix/core/merkletree.js.map +1 -0
  66. package/dist/services/matrix/core/prover.d.ts +3 -0
  67. package/dist/services/matrix/core/prover.js +14 -0
  68. package/dist/services/matrix/core/prover.js.map +1 -0
  69. package/dist/services/matrix/core/providers.d.ts +9 -0
  70. package/dist/services/matrix/core/providers.js +31 -0
  71. package/dist/services/matrix/core/providers.js.map +1 -0
  72. package/dist/services/matrix/core/shields.d.ts +11 -0
  73. package/dist/services/matrix/core/shields.js +24 -0
  74. package/dist/services/matrix/core/shields.js.map +1 -0
  75. package/dist/services/matrix/history/__tests__/transaction-history.test.d.ts +1 -0
  76. package/dist/services/matrix/history/__tests__/transaction-history.test.js +249 -0
  77. package/dist/services/matrix/history/__tests__/transaction-history.test.js.map +1 -0
  78. package/dist/services/matrix/history/transaction-history.d.ts +4 -0
  79. package/dist/services/matrix/history/transaction-history.js +182 -0
  80. package/dist/services/matrix/history/transaction-history.js.map +1 -0
  81. package/dist/services/matrix/index.d.ts +4 -0
  82. package/dist/services/matrix/index.js +21 -0
  83. package/dist/services/matrix/index.js.map +1 -0
  84. package/dist/services/matrix/process/extract-transaction-data.d.ts +3 -0
  85. package/dist/services/matrix/process/extract-transaction-data.js +19 -0
  86. package/dist/services/matrix/process/extract-transaction-data.js.map +1 -0
  87. package/dist/services/matrix/process/index.d.ts +1 -0
  88. package/dist/services/matrix/process/index.js +18 -0
  89. package/dist/services/matrix/process/index.js.map +1 -0
  90. package/dist/services/matrix/quick-sync/V3/__tests__/quick-sync-events-graph-v3.test.d.ts +1 -0
  91. package/dist/services/matrix/quick-sync/V3/__tests__/quick-sync-events-graph-v3.test.js +56 -0
  92. package/dist/services/matrix/quick-sync/V3/__tests__/quick-sync-events-graph-v3.test.js.map +1 -0
  93. package/dist/services/matrix/quick-sync/V3/graph-type-formatters-v3.d.ts +8 -0
  94. package/dist/services/matrix/quick-sync/V3/graph-type-formatters-v3.js +103 -0
  95. package/dist/services/matrix/quick-sync/V3/graph-type-formatters-v3.js.map +1 -0
  96. package/dist/services/matrix/quick-sync/V3/graphql/.graphclient/sources/mumbai/introspectionSchema.d.ts +2 -0
  97. package/dist/services/matrix/quick-sync/V3/graphql/.graphclient/sources/mumbai/introspectionSchema.js +19861 -0
  98. package/dist/services/matrix/quick-sync/V3/graphql/.graphclient/sources/mumbai/introspectionSchema.js.map +1 -0
  99. package/dist/services/matrix/quick-sync/V3/graphql/.graphclient/sources/mumbai/types.d.ts +1352 -0
  100. package/dist/services/matrix/quick-sync/V3/graphql/.graphclient/sources/mumbai/types.js +4 -0
  101. package/dist/services/matrix/quick-sync/V3/graphql/.graphclient/sources/mumbai/types.js.map +1 -0
  102. package/dist/services/matrix/quick-sync/V3/graphql/index.d.ts +1680 -0
  103. package/dist/services/matrix/quick-sync/V3/graphql/index.js +348 -0
  104. package/dist/services/matrix/quick-sync/V3/graphql/index.js.map +1 -0
  105. package/dist/services/matrix/quick-sync/V3/quick-sync-events-graph-v3.d.ts +2 -0
  106. package/dist/services/matrix/quick-sync/V3/quick-sync-events-graph-v3.js +99 -0
  107. package/dist/services/matrix/quick-sync/V3/quick-sync-events-graph-v3.js.map +1 -0
  108. package/dist/services/matrix/quick-sync/graph-query.d.ts +5 -0
  109. package/dist/services/matrix/quick-sync/graph-query.js +26 -0
  110. package/dist/services/matrix/quick-sync/graph-query.js.map +1 -0
  111. package/dist/services/matrix/quick-sync/quick-sync-events.d.ts +2 -0
  112. package/dist/services/matrix/quick-sync/quick-sync-events.js +9 -0
  113. package/dist/services/matrix/quick-sync/quick-sync-events.js.map +1 -0
  114. package/dist/services/matrix/quick-sync/shared-formatters.d.ts +8 -0
  115. package/dist/services/matrix/quick-sync/shared-formatters.js +36 -0
  116. package/dist/services/matrix/quick-sync/shared-formatters.js.map +1 -0
  117. package/dist/services/matrix/util/__tests__/bytes-util.test.d.ts +1 -0
  118. package/dist/services/matrix/util/__tests__/bytes-util.test.js +23 -0
  119. package/dist/services/matrix/util/__tests__/bytes-util.test.js.map +1 -0
  120. package/dist/services/matrix/util/__tests__/crypto-util.test.d.ts +1 -0
  121. package/dist/services/matrix/util/__tests__/crypto-util.test.js +62 -0
  122. package/dist/services/matrix/util/__tests__/crypto-util.test.js.map +1 -0
  123. package/dist/services/matrix/util/bytes.d.ts +5 -0
  124. package/dist/services/matrix/util/bytes.js +22 -0
  125. package/dist/services/matrix/util/bytes.js.map +1 -0
  126. package/dist/services/matrix/util/crypto.d.ts +14 -0
  127. package/dist/services/matrix/util/crypto.js +80 -0
  128. package/dist/services/matrix/util/crypto.js.map +1 -0
  129. package/dist/services/matrix/util/graph-util.d.ts +3 -0
  130. package/dist/services/matrix/util/graph-util.js +13 -0
  131. package/dist/services/matrix/util/graph-util.js.map +1 -0
  132. package/dist/services/matrix/util/index.d.ts +2 -0
  133. package/dist/services/matrix/util/index.js +19 -0
  134. package/dist/services/matrix/util/index.js.map +1 -0
  135. package/dist/services/matrix/util/runtime.d.ts +2 -0
  136. package/dist/services/matrix/util/runtime.js +8 -0
  137. package/dist/services/matrix/util/runtime.js.map +1 -0
  138. package/dist/services/matrix/wallets/__tests__/balances-live.test.d.ts +1 -0
  139. package/dist/services/matrix/wallets/__tests__/balances-live.test.js +48 -0
  140. package/dist/services/matrix/wallets/__tests__/balances-live.test.js.map +1 -0
  141. package/dist/services/matrix/wallets/__tests__/balances-update.test.d.ts +1 -0
  142. package/dist/services/matrix/wallets/__tests__/balances-update.test.js +85 -0
  143. package/dist/services/matrix/wallets/__tests__/balances-update.test.js.map +1 -0
  144. package/dist/services/matrix/wallets/__tests__/balances.test.d.ts +1 -0
  145. package/dist/services/matrix/wallets/__tests__/balances.test.js +59 -0
  146. package/dist/services/matrix/wallets/__tests__/balances.test.js.map +1 -0
  147. package/dist/services/matrix/wallets/__tests__/wallets.test.d.ts +1 -0
  148. package/dist/services/matrix/wallets/__tests__/wallets.test.js +80 -0
  149. package/dist/services/matrix/wallets/__tests__/wallets.test.js.map +1 -0
  150. package/dist/services/matrix/wallets/balance-update.d.ts +10 -0
  151. package/dist/services/matrix/wallets/balance-update.js +126 -0
  152. package/dist/services/matrix/wallets/balance-update.js.map +1 -0
  153. package/dist/services/matrix/wallets/balances.d.ts +3 -0
  154. package/dist/services/matrix/wallets/balances.js +32 -0
  155. package/dist/services/matrix/wallets/balances.js.map +1 -0
  156. package/dist/services/matrix/wallets/index.d.ts +4 -0
  157. package/dist/services/matrix/wallets/index.js +21 -0
  158. package/dist/services/matrix/wallets/index.js.map +1 -0
  159. package/dist/services/matrix/wallets/wallets.d.ts +22 -0
  160. package/dist/services/matrix/wallets/wallets.js +252 -0
  161. package/dist/services/matrix/wallets/wallets.js.map +1 -0
  162. package/dist/services/transactions/__tests__/json/formatted-relay-adapt-error-logs.json +216 -0
  163. package/dist/services/transactions/__tests__/proof-cache.test.d.ts +1 -0
  164. package/dist/services/transactions/__tests__/proof-cache.test.js +114 -0
  165. package/dist/services/transactions/__tests__/proof-cache.test.js.map +1 -0
  166. package/dist/services/transactions/__tests__/tx-cross-contract-calls.test.d.ts +1 -0
  167. package/dist/services/transactions/__tests__/tx-cross-contract-calls.test.js +376 -0
  168. package/dist/services/transactions/__tests__/tx-cross-contract-calls.test.js.map +1 -0
  169. package/dist/services/transactions/__tests__/tx-gas-details.test.d.ts +1 -0
  170. package/dist/services/transactions/__tests__/tx-gas-details.test.js +109 -0
  171. package/dist/services/transactions/__tests__/tx-gas-details.test.js.map +1 -0
  172. package/dist/services/transactions/__tests__/tx-notes.test.d.ts +1 -0
  173. package/dist/services/transactions/__tests__/tx-notes.test.js +193 -0
  174. package/dist/services/transactions/__tests__/tx-notes.test.js.map +1 -0
  175. package/dist/services/transactions/__tests__/tx-shield-base-token.test.d.ts +1 -0
  176. package/dist/services/transactions/__tests__/tx-shield-base-token.test.js +99 -0
  177. package/dist/services/transactions/__tests__/tx-shield-base-token.test.js.map +1 -0
  178. package/dist/services/transactions/__tests__/tx-shield.test.d.ts +1 -0
  179. package/dist/services/transactions/__tests__/tx-shield.test.js +146 -0
  180. package/dist/services/transactions/__tests__/tx-shield.test.js.map +1 -0
  181. package/dist/services/transactions/__tests__/tx-transfer.test.d.ts +1 -0
  182. package/dist/services/transactions/__tests__/tx-transfer.test.js +263 -0
  183. package/dist/services/transactions/__tests__/tx-transfer.test.js.map +1 -0
  184. package/dist/services/transactions/__tests__/tx-unshield.test.d.ts +1 -0
  185. package/dist/services/transactions/__tests__/tx-unshield.test.js +759 -0
  186. package/dist/services/transactions/__tests__/tx-unshield.test.js.map +1 -0
  187. package/dist/services/transactions/index.d.ts +13 -0
  188. package/dist/services/transactions/index.js +30 -0
  189. package/dist/services/transactions/index.js.map +1 -0
  190. package/dist/services/transactions/proof-cache.d.ts +27 -0
  191. package/dist/services/transactions/proof-cache.js +130 -0
  192. package/dist/services/transactions/proof-cache.js.map +1 -0
  193. package/dist/services/transactions/tx-cross-contract-calls.d.ts +12 -0
  194. package/dist/services/transactions/tx-cross-contract-calls.js +210 -0
  195. package/dist/services/transactions/tx-cross-contract-calls.js.map +1 -0
  196. package/dist/services/transactions/tx-gas-broadcaster-fee-estimator.d.ts +5 -0
  197. package/dist/services/transactions/tx-gas-broadcaster-fee-estimator.js +110 -0
  198. package/dist/services/transactions/tx-gas-broadcaster-fee-estimator.js.map +1 -0
  199. package/dist/services/transactions/tx-gas-details.d.ts +5 -0
  200. package/dist/services/transactions/tx-gas-details.js +101 -0
  201. package/dist/services/transactions/tx-gas-details.js.map +1 -0
  202. package/dist/services/transactions/tx-generator.d.ts +13 -0
  203. package/dist/services/transactions/tx-generator.js +168 -0
  204. package/dist/services/transactions/tx-generator.js.map +1 -0
  205. package/dist/services/transactions/tx-notes.d.ts +11 -0
  206. package/dist/services/transactions/tx-notes.js +153 -0
  207. package/dist/services/transactions/tx-notes.js.map +1 -0
  208. package/dist/services/transactions/tx-nullifiers.d.ts +2 -0
  209. package/dist/services/transactions/tx-nullifiers.js +17 -0
  210. package/dist/services/transactions/tx-nullifiers.js.map +1 -0
  211. package/dist/services/transactions/tx-proof-transfer.d.ts +3 -0
  212. package/dist/services/transactions/tx-proof-transfer.js +39 -0
  213. package/dist/services/transactions/tx-proof-transfer.js.map +1 -0
  214. package/dist/services/transactions/tx-proof-unshield.d.ts +5 -0
  215. package/dist/services/transactions/tx-proof-unshield.js +132 -0
  216. package/dist/services/transactions/tx-proof-unshield.js.map +1 -0
  217. package/dist/services/transactions/tx-shield-base-token.d.ts +3 -0
  218. package/dist/services/transactions/tx-shield-base-token.js +55 -0
  219. package/dist/services/transactions/tx-shield-base-token.js.map +1 -0
  220. package/dist/services/transactions/tx-shield.d.ts +6 -0
  221. package/dist/services/transactions/tx-shield.js +77 -0
  222. package/dist/services/transactions/tx-shield.js.map +1 -0
  223. package/dist/services/transactions/tx-transfer.d.ts +3 -0
  224. package/dist/services/transactions/tx-transfer.js +39 -0
  225. package/dist/services/transactions/tx-transfer.js.map +1 -0
  226. package/dist/services/transactions/tx-unshield.d.ts +11 -0
  227. package/dist/services/transactions/tx-unshield.js +224 -0
  228. package/dist/services/transactions/tx-unshield.js.map +1 -0
  229. package/dist/tests/local-e2e.d.ts +13 -0
  230. package/dist/tests/local-e2e.js +487 -0
  231. package/dist/tests/local-e2e.js.map +1 -0
  232. package/dist/tests/mocks.test.d.ts +40 -0
  233. package/dist/tests/mocks.test.js +171 -0
  234. package/dist/tests/mocks.test.js.map +1 -0
  235. package/dist/tests/setup.test.d.ts +7 -0
  236. package/dist/tests/setup.test.js +88 -0
  237. package/dist/tests/setup.test.js.map +1 -0
  238. package/dist/tests/stubs/engine-stubs.test.d.ts +7 -0
  239. package/dist/tests/stubs/engine-stubs.test.js +72 -0
  240. package/dist/tests/stubs/engine-stubs.test.js.map +1 -0
  241. package/dist/utils/__tests__/blocked-address.test.d.ts +1 -0
  242. package/dist/utils/__tests__/blocked-address.test.js +23 -0
  243. package/dist/utils/__tests__/blocked-address.test.js.map +1 -0
  244. package/dist/utils/__tests__/logger.test.d.ts +1 -0
  245. package/dist/utils/__tests__/logger.test.js +28 -0
  246. package/dist/utils/__tests__/logger.test.js.map +1 -0
  247. package/dist/utils/__tests__/utils.test.d.ts +1 -0
  248. package/dist/utils/__tests__/utils.test.js +21 -0
  249. package/dist/utils/__tests__/utils.test.js.map +1 -0
  250. package/dist/utils/blocked-address.d.ts +2 -0
  251. package/dist/utils/blocked-address.js +17 -0
  252. package/dist/utils/blocked-address.js.map +1 -0
  253. package/dist/utils/error.d.ts +1 -0
  254. package/dist/utils/error.js +20 -0
  255. package/dist/utils/error.js.map +1 -0
  256. package/dist/utils/gas-price.d.ts +6 -0
  257. package/dist/utils/gas-price.js +19 -0
  258. package/dist/utils/gas-price.js.map +1 -0
  259. package/dist/utils/index.d.ts +2 -0
  260. package/dist/utils/index.js +19 -0
  261. package/dist/utils/index.js.map +1 -0
  262. package/dist/utils/logger.d.ts +3 -0
  263. package/dist/utils/logger.js +21 -0
  264. package/dist/utils/logger.js.map +1 -0
  265. package/dist/utils/utils.d.ts +4 -0
  266. package/dist/utils/utils.js +54 -0
  267. package/dist/utils/utils.js.map +1 -0
  268. package/package.json +94 -0
  269. package/postinstall.js +52 -0
  270. package/react-native-shims.js +42 -0
@@ -0,0 +1,171 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MOCK_FALLBACK_PROVIDER_JSON_CONFIG_ETHEREUM = exports.MOCK_FALLBACK_PROVIDER_JSON_CONFIG_SEPOLIA = exports.MOCK_FALLBACK_PROVIDER_JSON_CONFIG_POLYGON = exports.MOCK_BALANCES_UPDATE_CALLBACK = exports.MOCK_TRANSACTION_GAS_DETAILS_SERIALIZED_TYPE_2 = exports.MOCK_FEE_TOKEN_DETAILS = exports.MOCK_TOKEN_FEE = exports.MOCK_NFT_AMOUNT_RECIPIENTS_UNSHIELD = exports.MOCK_NFT_AMOUNT_RECIPIENTS = exports.MOCK_FORMATTED_BROADCASTER_FEE_COMMITMENT_CIPHERTEXT_V3 = exports.MOCK_COMMITMENT_HASH = exports.MOCK_BOUND_PARAMS_V3 = exports.MOCK_NULLIFIERS = exports.MOCK_COMMITMENTS = exports.MOCK_NFT_AMOUNTS = exports.MOCK_ERC20_RECIPIENTS = exports.MOCK_TOKEN_AMOUNTS = exports.MOCK_TOKEN_AMOUNTS_TOKEN_1_ONLY = exports.TEST_WALLET_SOURCE = exports.TEST_POLYGON_RPC = exports.MOCK_NFT_ADDRESS = exports.MOCK_TOKEN_ADDRESS_2 = exports.MOCK_TOKEN_ADDRESS = exports.MOCK_ETH_WALLET_ADDRESS = exports.MOCK_MATRIX_WALLET_ADDRESS = exports.MOCK_MEMO = exports.MOCK_DB_ENCRYPTION_KEY = exports.MOCK_MNEMONIC_2 = exports.MOCK_MNEMONIC = void 0;
4
+ const shared_models_1 = require("@matrix-privacy/shared-models");
5
+ exports.MOCK_MNEMONIC = 'test test test test test test test test test test test junk';
6
+ exports.MOCK_MNEMONIC_2 = 'pause crystal tornado alcohol genre cement fade large song like bag where';
7
+ exports.MOCK_DB_ENCRYPTION_KEY = '0101010101010101010101010101010101010101010101010101010101010101';
8
+ exports.MOCK_MEMO = 'A nice little mock memo, and how bout a little more for ya? 🤩';
9
+ exports.MOCK_MATRIX_WALLET_ADDRESS = '0zk1q8hxknrs97q8pjxaagwthzc0df99rzmhl2xnlxmgv9akv32sua0kfrv7j6fe3z53llhxknrs97q8pjxaagwthzc0df99rzmhl2xnlxmgv9akv32sua0kg0zpzts';
10
+ exports.MOCK_ETH_WALLET_ADDRESS = '0x9E9F988356f46744Ee0374A17a5Fa1a3A3cC3777';
11
+ exports.MOCK_TOKEN_ADDRESS = '0x5FbDB2315678afecb367f032d93F642f64180aa3';
12
+ exports.MOCK_TOKEN_ADDRESS_2 = '0xe76C6c83af64e4C60245D8C7dE953DF673a7A33D';
13
+ exports.MOCK_NFT_ADDRESS = '0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d';
14
+ exports.TEST_POLYGON_RPC = 'https://polygon-rpc.com';
15
+ exports.TEST_WALLET_SOURCE = 'test engine';
16
+ exports.MOCK_TOKEN_AMOUNTS_TOKEN_1_ONLY = [
17
+ {
18
+ tokenAddress: exports.MOCK_TOKEN_ADDRESS,
19
+ amount: BigInt(0x100),
20
+ },
21
+ ];
22
+ exports.MOCK_TOKEN_AMOUNTS = [
23
+ {
24
+ tokenAddress: exports.MOCK_TOKEN_ADDRESS,
25
+ amount: BigInt(0x100),
26
+ },
27
+ {
28
+ tokenAddress: exports.MOCK_TOKEN_ADDRESS_2,
29
+ amount: BigInt(0x200),
30
+ },
31
+ ];
32
+ exports.MOCK_ERC20_RECIPIENTS = [
33
+ {
34
+ tokenAddress: exports.MOCK_TOKEN_ADDRESS,
35
+ recipientAddress: exports.MOCK_MATRIX_WALLET_ADDRESS,
36
+ },
37
+ {
38
+ tokenAddress: exports.MOCK_TOKEN_ADDRESS_2,
39
+ recipientAddress: exports.MOCK_MATRIX_WALLET_ADDRESS,
40
+ },
41
+ ];
42
+ exports.MOCK_NFT_AMOUNTS = [
43
+ {
44
+ nftAddress: exports.MOCK_NFT_ADDRESS,
45
+ nftTokenType: shared_models_1.NFTTokenType.ERC721,
46
+ tokenSubID: '0x01',
47
+ amount: BigInt(0x01),
48
+ },
49
+ {
50
+ nftAddress: exports.MOCK_NFT_ADDRESS,
51
+ nftTokenType: shared_models_1.NFTTokenType.ERC1155,
52
+ tokenSubID: '0x02',
53
+ amount: BigInt(0x02),
54
+ },
55
+ ];
56
+ exports.MOCK_COMMITMENTS = [
57
+ '0x0000000000000000000000000000000000000000000000000000000000000003',
58
+ ];
59
+ exports.MOCK_NULLIFIERS = [
60
+ '0x0000000000000000000000000000000000000000000000000000000000000001',
61
+ '0x0000000000000000000000000000000000000000000000000000000000000002',
62
+ ];
63
+ exports.MOCK_BOUND_PARAMS_V3 = {
64
+ local: {
65
+ commitmentCiphertext: [
66
+ {
67
+ ciphertext: '0x7d6854cd1fc49f0602ccd933422ed2e2ee070a9f1806843d5c81c082531349508f54329134103720a7dac44d6f2a632ff18e7599b9bc1bf39d639e998a223b80ed1ec36daf72e389fc567b2b5507fb6bff80b601bd3c0c441e4e97f28551f2f2ede74ef3a06347178de5e4204f6bf8c475be62bcdb9911bd31be952f2e8af096',
68
+ blindedSenderViewingKey: '0x898bc07d416014a2854f756b9f8873bde925b043e9e01ea6d97183b91217b5b6',
69
+ blindedReceiverViewingKey: '0x898bc07d416014a2854f756b9f8873bde925b043e9e01ea6d97183b91217b5b6',
70
+ },
71
+ ],
72
+ },
73
+ };
74
+ exports.MOCK_COMMITMENT_HASH = '0x2b13bccd4974c797df42a89221ed6e19e50c32055058cdcc5a8ea836233e4cab';
75
+ exports.MOCK_FORMATTED_BROADCASTER_FEE_COMMITMENT_CIPHERTEXT_V3 = {
76
+ blindedReceiverViewingKey: '898bc07d416014a2854f756b9f8873bde925b043e9e01ea6d97183b91217b5b6',
77
+ blindedSenderViewingKey: '898bc07d416014a2854f756b9f8873bde925b043e9e01ea6d97183b91217b5b6',
78
+ ciphertext: {
79
+ algorithm: shared_models_1.XChaChaEncryptionAlgorithm.XChaChaPoly1305,
80
+ nonce: '7d6854cd1fc49f0602ccd933422ed2e2',
81
+ bundle: 'ee070a9f1806843d5c81c082531349508f54329134103720a7dac44d6f2a632ff18e7599b9bc1bf39d639e998a223b80ed1ec36daf72e389fc567b2b5507fb6bff80b601bd3c0c441e4e97f28551f2f2ede74ef3a06347178de5e4204f6bf8c475be62bcdb9911bd31be952f2e8af096',
82
+ },
83
+ };
84
+ exports.MOCK_NFT_AMOUNT_RECIPIENTS = exports.MOCK_NFT_AMOUNTS.map(nftAmount => ({
85
+ ...nftAmount,
86
+ recipientAddress: exports.MOCK_MATRIX_WALLET_ADDRESS,
87
+ }));
88
+ exports.MOCK_NFT_AMOUNT_RECIPIENTS_UNSHIELD = exports.MOCK_NFT_AMOUNT_RECIPIENTS.map(nftAmountRecipient => ({
89
+ ...nftAmountRecipient,
90
+ recipientAddress: exports.MOCK_ETH_WALLET_ADDRESS,
91
+ }));
92
+ exports.MOCK_TOKEN_FEE = {
93
+ tokenAddress: exports.MOCK_TOKEN_ADDRESS,
94
+ amount: BigInt(0x0300),
95
+ };
96
+ exports.MOCK_FEE_TOKEN_DETAILS = {
97
+ tokenAddress: exports.MOCK_TOKEN_ADDRESS,
98
+ feePerUnitGas: BigInt('0x2000000000000000000'), // 2x
99
+ };
100
+ exports.MOCK_TRANSACTION_GAS_DETAILS_SERIALIZED_TYPE_2 = {
101
+ evmGasType: shared_models_1.EVMGasType.Type2,
102
+ gasEstimate: 0n,
103
+ maxFeePerGas: BigInt('0x1234567890'),
104
+ maxPriorityFeePerGas: BigInt('0x123456'),
105
+ };
106
+ const MOCK_BALANCES_UPDATE_CALLBACK = () => {
107
+ // noop
108
+ };
109
+ exports.MOCK_BALANCES_UPDATE_CALLBACK = MOCK_BALANCES_UPDATE_CALLBACK;
110
+ exports.MOCK_FALLBACK_PROVIDER_JSON_CONFIG_POLYGON = {
111
+ chainId: 137,
112
+ providers: [
113
+ {
114
+ provider: 'https://rpc-mainnet.matic.quiknode.pro',
115
+ priority: 3,
116
+ weight: 3,
117
+ maxLogsPerBatch: 2,
118
+ stallTimeout: 2500,
119
+ },
120
+ {
121
+ provider: 'https://polygon-bor-rpc.publicnode.com',
122
+ priority: 3,
123
+ weight: 2,
124
+ maxLogsPerBatch: 5,
125
+ stallTimeout: 2500,
126
+ },
127
+ {
128
+ provider: 'https://rpc.ankr.com/polygon',
129
+ priority: 3,
130
+ weight: 2,
131
+ maxLogsPerBatch: 5,
132
+ },
133
+ ],
134
+ };
135
+ exports.MOCK_FALLBACK_PROVIDER_JSON_CONFIG_SEPOLIA = {
136
+ chainId: 11155111,
137
+ providers: [
138
+ {
139
+ provider: 'https://sepolia.drpc.org',
140
+ priority: 3,
141
+ weight: 3,
142
+ maxLogsPerBatch: 2,
143
+ stallTimeout: 2500,
144
+ },
145
+ {
146
+ provider: 'https://ethereum-sepolia-rpc.publicnode.com',
147
+ priority: 3,
148
+ weight: 2,
149
+ maxLogsPerBatch: 5,
150
+ },
151
+ ],
152
+ };
153
+ exports.MOCK_FALLBACK_PROVIDER_JSON_CONFIG_ETHEREUM = {
154
+ chainId: 1,
155
+ providers: [
156
+ {
157
+ provider: 'https://eth.llamarpc.com',
158
+ priority: 3,
159
+ weight: 3,
160
+ maxLogsPerBatch: 2,
161
+ stallTimeout: 2500,
162
+ },
163
+ {
164
+ provider: 'https://rpc.ankr.com/eth',
165
+ priority: 3,
166
+ weight: 2,
167
+ maxLogsPerBatch: 5,
168
+ },
169
+ ],
170
+ };
171
+ //# sourceMappingURL=mocks.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mocks.test.js","sourceRoot":"","sources":["../../src/tests/mocks.test.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n FallbackProviderJsonConfig,\n FeeTokenDetails,\n EVMGasType,\n MatrixERC20Amount,\n MatrixNFTAmountRecipient,\n NFTTokenType,\n MatrixNFTAmount,\n TransactionGasDetails,\n MatrixERC20Recipient,\n XChaChaEncryptionAlgorithm,\n} from '@matrix-privacy/shared-models';\nimport {\n BalancesUpdatedCallback,\n} from '../services/matrix/wallets/balance-update';\nimport {\n CommitmentCiphertextV3,\n} from '@matrix-privacy/engine';\n\nexport const MOCK_MNEMONIC =\n 'test test test test test test test test test test test junk';\n\nexport const MOCK_MNEMONIC_2 =\n 'pause crystal tornado alcohol genre cement fade large song like bag where';\n\nexport const MOCK_DB_ENCRYPTION_KEY =\n '0101010101010101010101010101010101010101010101010101010101010101';\n\nexport const MOCK_MEMO =\n 'A nice little mock memo, and how bout a little more for ya? 🤩';\n\nexport const MOCK_MATRIX_WALLET_ADDRESS =\n '0zk1q8hxknrs97q8pjxaagwthzc0df99rzmhl2xnlxmgv9akv32sua0kfrv7j6fe3z53llhxknrs97q8pjxaagwthzc0df99rzmhl2xnlxmgv9akv32sua0kg0zpzts';\n\nexport const MOCK_ETH_WALLET_ADDRESS =\n '0x9E9F988356f46744Ee0374A17a5Fa1a3A3cC3777';\n\nexport const MOCK_TOKEN_ADDRESS = '0x5FbDB2315678afecb367f032d93F642f64180aa3';\nexport const MOCK_TOKEN_ADDRESS_2 =\n '0xe76C6c83af64e4C60245D8C7dE953DF673a7A33D';\n\nexport const MOCK_NFT_ADDRESS = '0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d';\n\nexport const TEST_POLYGON_RPC = 'https://polygon-rpc.com';\n\nexport const TEST_WALLET_SOURCE = 'test engine';\n\nexport const MOCK_TOKEN_AMOUNTS_TOKEN_1_ONLY: MatrixERC20Amount[] = [\n {\n tokenAddress: MOCK_TOKEN_ADDRESS,\n amount: BigInt(0x100),\n },\n];\n\nexport const MOCK_TOKEN_AMOUNTS: MatrixERC20Amount[] = [\n {\n tokenAddress: MOCK_TOKEN_ADDRESS,\n amount: BigInt(0x100),\n },\n {\n tokenAddress: MOCK_TOKEN_ADDRESS_2,\n amount: BigInt(0x200),\n },\n];\n\nexport const MOCK_ERC20_RECIPIENTS: MatrixERC20Recipient[] = [\n {\n tokenAddress: MOCK_TOKEN_ADDRESS,\n recipientAddress: MOCK_MATRIX_WALLET_ADDRESS,\n },\n {\n tokenAddress: MOCK_TOKEN_ADDRESS_2,\n recipientAddress: MOCK_MATRIX_WALLET_ADDRESS,\n },\n];\n\nexport const MOCK_NFT_AMOUNTS: MatrixNFTAmount[] = [\n {\n nftAddress: MOCK_NFT_ADDRESS,\n nftTokenType: NFTTokenType.ERC721,\n tokenSubID: '0x01',\n amount: BigInt(0x01),\n },\n {\n nftAddress: MOCK_NFT_ADDRESS,\n nftTokenType: NFTTokenType.ERC1155,\n tokenSubID: '0x02',\n amount: BigInt(0x02),\n },\n];\n\nexport const MOCK_COMMITMENTS: string[] = [\n '0x0000000000000000000000000000000000000000000000000000000000000003',\n];\n\nexport const MOCK_NULLIFIERS: string[] = [\n '0x0000000000000000000000000000000000000000000000000000000000000001',\n '0x0000000000000000000000000000000000000000000000000000000000000002',\n];\n\nexport const MOCK_BOUND_PARAMS_V3 = {\n local: {\n commitmentCiphertext: [\n {\n ciphertext:\n '0x7d6854cd1fc49f0602ccd933422ed2e2ee070a9f1806843d5c81c082531349508f54329134103720a7dac44d6f2a632ff18e7599b9bc1bf39d639e998a223b80ed1ec36daf72e389fc567b2b5507fb6bff80b601bd3c0c441e4e97f28551f2f2ede74ef3a06347178de5e4204f6bf8c475be62bcdb9911bd31be952f2e8af096',\n blindedSenderViewingKey:\n '0x898bc07d416014a2854f756b9f8873bde925b043e9e01ea6d97183b91217b5b6',\n blindedReceiverViewingKey:\n '0x898bc07d416014a2854f756b9f8873bde925b043e9e01ea6d97183b91217b5b6',\n },\n ],\n },\n};\n\nexport const MOCK_COMMITMENT_HASH =\n '0x2b13bccd4974c797df42a89221ed6e19e50c32055058cdcc5a8ea836233e4cab';\n\nexport const MOCK_FORMATTED_BROADCASTER_FEE_COMMITMENT_CIPHERTEXT_V3: CommitmentCiphertextV3 =\n {\n blindedReceiverViewingKey:\n '898bc07d416014a2854f756b9f8873bde925b043e9e01ea6d97183b91217b5b6',\n blindedSenderViewingKey:\n '898bc07d416014a2854f756b9f8873bde925b043e9e01ea6d97183b91217b5b6',\n ciphertext: {\n algorithm: XChaChaEncryptionAlgorithm.XChaChaPoly1305,\n nonce: '7d6854cd1fc49f0602ccd933422ed2e2',\n bundle:\n 'ee070a9f1806843d5c81c082531349508f54329134103720a7dac44d6f2a632ff18e7599b9bc1bf39d639e998a223b80ed1ec36daf72e389fc567b2b5507fb6bff80b601bd3c0c441e4e97f28551f2f2ede74ef3a06347178de5e4204f6bf8c475be62bcdb9911bd31be952f2e8af096',\n },\n };\n\nexport const MOCK_NFT_AMOUNT_RECIPIENTS: MatrixNFTAmountRecipient[] =\n MOCK_NFT_AMOUNTS.map(nftAmount => ({\n ...nftAmount,\n recipientAddress: MOCK_MATRIX_WALLET_ADDRESS,\n }));\n\nexport const MOCK_NFT_AMOUNT_RECIPIENTS_UNSHIELD: MatrixNFTAmountRecipient[] =\n MOCK_NFT_AMOUNT_RECIPIENTS.map(nftAmountRecipient => ({\n ...nftAmountRecipient,\n recipientAddress: MOCK_ETH_WALLET_ADDRESS,\n }));\n\nexport const MOCK_TOKEN_FEE: MatrixERC20Amount = {\n tokenAddress: MOCK_TOKEN_ADDRESS,\n amount: BigInt(0x0300),\n};\n\nexport const MOCK_FEE_TOKEN_DETAILS: FeeTokenDetails = {\n tokenAddress: MOCK_TOKEN_ADDRESS,\n feePerUnitGas: BigInt('0x2000000000000000000'), // 2x\n};\n\nexport const MOCK_TRANSACTION_GAS_DETAILS_SERIALIZED_TYPE_2: TransactionGasDetails =\n {\n evmGasType: EVMGasType.Type2,\n gasEstimate: 0n,\n maxFeePerGas: BigInt('0x1234567890'),\n maxPriorityFeePerGas: BigInt('0x123456'),\n };\n\nexport const MOCK_BALANCES_UPDATE_CALLBACK: BalancesUpdatedCallback = () => {\n // noop\n};\n\nexport const MOCK_FALLBACK_PROVIDER_JSON_CONFIG_POLYGON: FallbackProviderJsonConfig =\n {\n chainId: 137,\n providers: [\n {\n provider: 'https://rpc-mainnet.matic.quiknode.pro',\n priority: 3,\n weight: 3,\n maxLogsPerBatch: 2,\n stallTimeout: 2500,\n },\n {\n provider: 'https://polygon-bor-rpc.publicnode.com',\n priority: 3,\n weight: 2,\n maxLogsPerBatch: 5,\n stallTimeout: 2500,\n },\n {\n provider: 'https://rpc.ankr.com/polygon',\n priority: 3,\n weight: 2,\n maxLogsPerBatch: 5,\n },\n ],\n };\n\nexport const MOCK_FALLBACK_PROVIDER_JSON_CONFIG_SEPOLIA: FallbackProviderJsonConfig =\n {\n chainId: 11155111,\n providers: [\n {\n provider: 'https://sepolia.drpc.org',\n priority: 3,\n weight: 3,\n maxLogsPerBatch: 2,\n stallTimeout: 2500,\n },\n {\n provider: 'https://ethereum-sepolia-rpc.publicnode.com',\n priority: 3,\n weight: 2,\n maxLogsPerBatch: 5,\n },\n ],\n };\n\nexport const MOCK_FALLBACK_PROVIDER_JSON_CONFIG_ETHEREUM: FallbackProviderJsonConfig =\n {\n chainId: 1,\n providers: [\n {\n provider: 'https://eth.llamarpc.com',\n priority: 3,\n weight: 3,\n maxLogsPerBatch: 2,\n stallTimeout: 2500,\n },\n {\n provider: 'https://rpc.ankr.com/eth',\n priority: 3,\n weight: 2,\n maxLogsPerBatch: 5,\n },\n ],\n };\n"]}
@@ -0,0 +1,7 @@
1
+ import { MerkletreeScanUpdateEvent, NetworkName } from '@matrix-privacy/shared-models';
2
+ export declare const utxoMerkletreeHistoryScanCallback: (scanData: MerkletreeScanUpdateEvent) => void;
3
+ export declare const clearAllMerkletreeScanStatus: () => void;
4
+ export declare const initTestEngine: (useNativeArtifacts?: boolean) => Promise<void>;
5
+ export declare const initTestEngineNetworks: (networkName?: NetworkName, mockConfig?: import("@matrix-privacy/shared-models").FallbackProviderJsonConfig) => Promise<void>;
6
+ export declare const closeTestEngine: () => Promise<void>;
7
+ export declare const pollUntilUTXOMerkletreeScanned: () => Promise<void>;
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.pollUntilUTXOMerkletreeScanned = exports.closeTestEngine = exports.initTestEngineNetworks = exports.initTestEngine = exports.clearAllMerkletreeScanStatus = exports.utxoMerkletreeHistoryScanCallback = void 0;
7
+ /// <reference types="../types/global" />
8
+ /* eslint-disable import/no-extraneous-dependencies */
9
+ /* eslint-disable no-console */
10
+ const leveldown_1 = __importDefault(require("leveldown"));
11
+ const fs_1 = __importDefault(require("fs"));
12
+ const shared_models_1 = require("@matrix-privacy/shared-models");
13
+ const mocks_test_1 = require("./mocks.test");
14
+ const artifact_store_1 = require("../services/artifacts/artifact-store");
15
+ const balance_update_1 = require("../services/matrix/wallets/balance-update");
16
+ const core_1 = require("../services/matrix/core");
17
+ const snarkjs_1 = require("snarkjs");
18
+ const utils_1 = require("../utils");
19
+ const ENGINE_TEST_DB = 'test.db';
20
+ const db = new leveldown_1.default(ENGINE_TEST_DB);
21
+ const setupTests = () => {
22
+ // Uncomment to enable logger during tests (Do not commit).
23
+ // setLoggers(console.log, console.error);
24
+ };
25
+ const rmDirSafe = async (dir) => {
26
+ if (await fileExists(dir)) {
27
+ await fs_1.default.promises.rm(dir, { recursive: true });
28
+ }
29
+ };
30
+ before(async () => {
31
+ await rmDirSafe(ENGINE_TEST_DB);
32
+ await rmDirSafe('artifacts-v2.1');
33
+ setupTests();
34
+ });
35
+ const fileExists = (path) => {
36
+ return new Promise(resolve => {
37
+ fs_1.default.promises
38
+ .access(path)
39
+ .then(() => resolve(true))
40
+ .catch(() => resolve(false));
41
+ });
42
+ };
43
+ const testArtifactStore = new artifact_store_1.ArtifactStore(fs_1.default.promises.readFile, async (dir, path, data) => {
44
+ await fs_1.default.promises.mkdir(dir, { recursive: true });
45
+ await fs_1.default.promises.writeFile(path, data);
46
+ }, fileExists);
47
+ let currentUTXOMerkletreeScanStatus;
48
+ const utxoMerkletreeHistoryScanCallback = (scanData) => {
49
+ currentUTXOMerkletreeScanStatus = scanData.scanStatus;
50
+ };
51
+ exports.utxoMerkletreeHistoryScanCallback = utxoMerkletreeHistoryScanCallback;
52
+ const clearAllMerkletreeScanStatus = () => {
53
+ currentUTXOMerkletreeScanStatus = undefined;
54
+ };
55
+ exports.clearAllMerkletreeScanStatus = clearAllMerkletreeScanStatus;
56
+ const initTestEngine = async (useNativeArtifacts = false) => {
57
+ // Set the environment variable "VERBOSE" to enable debug logs
58
+ const shouldDebug = typeof process.env.VERBOSE !== 'undefined';
59
+ if (shouldDebug) {
60
+ (0, utils_1.setLoggers)(console.log, console.error);
61
+ }
62
+ await (0, core_1.startMatrixEngine)(mocks_test_1.TEST_WALLET_SOURCE, db, shouldDebug, testArtifactStore, useNativeArtifacts, false);
63
+ (0, core_1.getEngine)().prover.setSnarkJSGroth16(snarkjs_1.groth16);
64
+ (0, balance_update_1.setOnBalanceUpdateCallback)(mocks_test_1.MOCK_BALANCES_UPDATE_CALLBACK);
65
+ (0, core_1.setOnUTXOMerkletreeScanCallback)(exports.utxoMerkletreeHistoryScanCallback);
66
+ };
67
+ exports.initTestEngine = initTestEngine;
68
+ const initTestEngineNetworks = async (networkName = shared_models_1.NetworkName.Hardhat, mockConfig = mocks_test_1.MOCK_FALLBACK_PROVIDER_JSON_CONFIG_SEPOLIA) => {
69
+ // Don't wait for async. It will try to load historical events, which takes a while.
70
+ await (0, core_1.loadProvider)(mockConfig, networkName, 10000);
71
+ const { chain } = shared_models_1.NETWORK_CONFIG[networkName];
72
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
73
+ (0, core_1.getEngine)().scanContractHistory(chain, undefined);
74
+ };
75
+ exports.initTestEngineNetworks = initTestEngineNetworks;
76
+ const closeTestEngine = async () => {
77
+ await (0, core_1.stopMatrixEngine)();
78
+ (0, exports.clearAllMerkletreeScanStatus)();
79
+ };
80
+ exports.closeTestEngine = closeTestEngine;
81
+ const pollUntilUTXOMerkletreeScanned = async () => {
82
+ const status = await (0, shared_models_1.poll)(async () => currentUTXOMerkletreeScanStatus, status => status === shared_models_1.MerkletreeScanStatus.Complete, 50, 360000 / 50);
83
+ if (status !== shared_models_1.MerkletreeScanStatus.Complete) {
84
+ throw new Error(`UTXO merkletree scan should be completed - timed out`);
85
+ }
86
+ };
87
+ exports.pollUntilUTXOMerkletreeScanned = pollUntilUTXOMerkletreeScanned;
88
+ //# sourceMappingURL=setup.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.test.js","sourceRoot":"","sources":["../../src/tests/setup.test.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAyC;AACzC,sDAAsD;AACtD,+BAA+B;AAC/B,0DAAkC;AAClC,4CAAoB;AACpB,iEAMuC;AACvC,6CAIsB;AACtB,yEAAqE;AACrE,8EAEmD;AAInD,kDAMiC;AACjC,qCAAkC;AAClC,oCAAsC;AAEtC,MAAM,cAAc,GAAG,SAAS,CAAC;AACjC,MAAM,EAAE,GAAG,IAAI,mBAAS,CAAC,cAAc,CAAC,CAAC;AAEzC,MAAM,UAAU,GAAG,GAAG,EAAE;IACtB,2DAA2D;IAC3D,0CAA0C;AAC5C,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,KAAK,EAAE,GAAW,EAAE,EAAE;IACtC,IAAI,MAAM,UAAU,CAAC,GAAG,CAAC,EAAE;QACzB,MAAM,YAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;KAChD;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,KAAK,IAAI,EAAE;IAChB,MAAM,SAAS,CAAC,cAAc,CAAC,CAAC;IAChC,MAAM,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAClC,UAAU,EAAE,CAAC;AACf,CAAC,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,CAAC,IAAY,EAAoB,EAAE;IACpD,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,YAAE,CAAC,QAAQ;aACR,MAAM,CAAC,IAAI,CAAC;aACZ,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;aACzB,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,IAAI,8BAAa,CACzC,YAAE,CAAC,QAAQ,CAAC,QAAQ,EACpB,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;IACxB,MAAM,YAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,MAAM,YAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC1C,CAAC,EACD,UAAU,CACX,CAAC;AAEF,IAAI,+BAA+D,CAAC;AAE7D,MAAM,iCAAiC,GAAG,CAC/C,QAAmC,EAC7B,EAAE;IACR,+BAA+B,GAAG,QAAQ,CAAC,UAAU,CAAC;AACxD,CAAC,CAAC;AAJW,QAAA,iCAAiC,qCAI5C;AAEK,MAAM,4BAA4B,GAAG,GAAG,EAAE;IAC/C,+BAA+B,GAAG,SAAS,CAAC;AAC9C,CAAC,CAAC;AAFW,QAAA,4BAA4B,gCAEvC;AAEK,MAAM,cAAc,GAAG,KAAK,EAAE,kBAAkB,GAAG,KAAK,EAAE,EAAE;IACjE,8DAA8D;IAC9D,MAAM,WAAW,GAAG,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,WAAW,CAAC;IAE/D,IAAI,WAAW,EAAE;QACf,IAAA,kBAAU,EAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;KACxC;IAED,MAAM,IAAA,wBAAiB,EACrB,+BAAkB,EAClB,EAAE,EACF,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,KAAK,CACN,CAAC;IAEF,IAAA,gBAAS,GAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,iBAAyB,CAAC,CAAC;IAEhE,IAAA,2CAA0B,EAAC,0CAA6B,CAAC,CAAC;IAE1D,IAAA,sCAA+B,EAAC,yCAAiC,CAAC,CAAC;AACrE,CAAC,CAAC;AAtBW,QAAA,cAAc,kBAsBzB;AAEK,MAAM,sBAAsB,GAAG,KAAK,EACzC,WAAW,GAAG,2BAAW,CAAC,OAAO,EACjC,UAAU,GAAG,uDAA0C,EACvD,EAAE;IACF,oFAAoF;IACpF,MAAM,IAAA,mBAAY,EAChB,UAAU,EACV,WAAW,EACX,KAAM,CACP,CAAC;IACF,MAAM,EAAE,KAAK,EAAE,GAAG,8BAAc,CAAC,WAAW,CAAC,CAAC;IAC9C,mEAAmE;IACnE,IAAA,gBAAS,GAAE,CAAC,mBAAmB,CAC7B,KAAK,EACL,SAAS,CACV,CAAC;AACJ,CAAC,CAAC;AAhBW,QAAA,sBAAsB,0BAgBjC;AAEK,MAAM,eAAe,GAAG,KAAK,IAAI,EAAE;IACxC,MAAM,IAAA,uBAAgB,GAAE,CAAC;IAEzB,IAAA,oCAA4B,GAAE,CAAC;AACjC,CAAC,CAAC;AAJW,QAAA,eAAe,mBAI1B;AAEK,MAAM,8BAA8B,GAAG,KAAK,IAAI,EAAE;IACvD,MAAM,MAAM,GAAG,MAAM,IAAA,oBAAI,EACvB,KAAK,IAAI,EAAE,CAAC,+BAA+B,EAC3C,MAAM,CAAC,EAAE,CAAC,MAAM,KAAK,oCAAoB,CAAC,QAAQ,EAClD,EAAE,EACF,MAAO,GAAG,EAAE,CACb,CAAC;IACF,IAAI,MAAM,KAAK,oCAAoB,CAAC,QAAQ,EAAE;QAC5C,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;KACzE;AACH,CAAC,CAAC;AAVW,QAAA,8BAA8B,kCAUzC","sourcesContent":["/// <reference types=\"../types/global\" />\n/* eslint-disable import/no-extraneous-dependencies */\n/* eslint-disable no-console */\nimport LevelDOWN from 'leveldown';\nimport fs from 'fs';\nimport {\n MerkletreeScanStatus,\n MerkletreeScanUpdateEvent,\n NETWORK_CONFIG,\n NetworkName,\n poll,\n} from '@matrix-privacy/shared-models';\nimport {\n MOCK_BALANCES_UPDATE_CALLBACK,\n MOCK_FALLBACK_PROVIDER_JSON_CONFIG_SEPOLIA,\n TEST_WALLET_SOURCE,\n} from './mocks.test';\nimport { ArtifactStore } from '../services/artifacts/artifact-store';\nimport {\n setOnBalanceUpdateCallback,\n} from '../services/matrix/wallets/balance-update';\nimport {\n SnarkJSGroth16,\n} from '@matrix-privacy/engine';\nimport {\n getEngine,\n loadProvider,\n setOnUTXOMerkletreeScanCallback,\n startMatrixEngine,\n stopMatrixEngine,\n} from '../services/matrix/core';\nimport { groth16 } from 'snarkjs';\nimport { setLoggers } from '../utils';\n\nconst ENGINE_TEST_DB = 'test.db';\nconst db = new LevelDOWN(ENGINE_TEST_DB);\n\nconst setupTests = () => {\n // Uncomment to enable logger during tests (Do not commit).\n // setLoggers(console.log, console.error);\n};\n\nconst rmDirSafe = async (dir: string) => {\n if (await fileExists(dir)) {\n await fs.promises.rm(dir, { recursive: true });\n }\n};\n\nbefore(async () => {\n await rmDirSafe(ENGINE_TEST_DB);\n await rmDirSafe('artifacts-v2.1');\n setupTests();\n});\n\nconst fileExists = (path: string): Promise<boolean> => {\n return new Promise(resolve => {\n fs.promises\n .access(path)\n .then(() => resolve(true))\n .catch(() => resolve(false));\n });\n};\n\nconst testArtifactStore = new ArtifactStore(\n fs.promises.readFile,\n async (dir, path, data) => {\n await fs.promises.mkdir(dir, { recursive: true });\n await fs.promises.writeFile(path, data);\n },\n fileExists,\n);\n\nlet currentUTXOMerkletreeScanStatus: Optional<MerkletreeScanStatus>;\n\nexport const utxoMerkletreeHistoryScanCallback = (\n scanData: MerkletreeScanUpdateEvent,\n): void => {\n currentUTXOMerkletreeScanStatus = scanData.scanStatus;\n};\n\nexport const clearAllMerkletreeScanStatus = () => {\n currentUTXOMerkletreeScanStatus = undefined;\n};\n\nexport const initTestEngine = async (useNativeArtifacts = false) => {\n // Set the environment variable \"VERBOSE\" to enable debug logs\n const shouldDebug = typeof process.env.VERBOSE !== 'undefined';\n\n if (shouldDebug) {\n setLoggers(console.log, console.error);\n }\n\n await startMatrixEngine(\n TEST_WALLET_SOURCE,\n db,\n shouldDebug,\n testArtifactStore,\n useNativeArtifacts,\n false, // skipMerkletreeScans\n );\n\n getEngine().prover.setSnarkJSGroth16(groth16 as SnarkJSGroth16);\n\n setOnBalanceUpdateCallback(MOCK_BALANCES_UPDATE_CALLBACK);\n\n setOnUTXOMerkletreeScanCallback(utxoMerkletreeHistoryScanCallback);\n};\n\nexport const initTestEngineNetworks = async (\n networkName = NetworkName.Hardhat,\n mockConfig = MOCK_FALLBACK_PROVIDER_JSON_CONFIG_SEPOLIA,\n) => {\n // Don't wait for async. It will try to load historical events, which takes a while.\n await loadProvider(\n mockConfig,\n networkName,\n 10_000, // pollingInterval\n );\n const { chain } = NETWORK_CONFIG[networkName];\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n getEngine().scanContractHistory(\n chain,\n undefined, // walletIdFilter\n );\n};\n\nexport const closeTestEngine = async () => {\n await stopMatrixEngine();\n\n clearAllMerkletreeScanStatus();\n};\n\nexport const pollUntilUTXOMerkletreeScanned = async () => {\n const status = await poll(\n async () => currentUTXOMerkletreeScanStatus,\n status => status === MerkletreeScanStatus.Complete,\n 50,\n 360_000 / 50, // 360 sec.\n );\n if (status !== MerkletreeScanStatus.Complete) {\n throw new Error(`UTXO merkletree scan should be completed - timed out`);\n }\n};\n"]}
@@ -0,0 +1,7 @@
1
+ import { AddressData } from '@matrix-privacy/engine';
2
+ export declare const MOCK_SHIELD_TXID_FOR_BALANCES = "123";
3
+ export declare const MOCK_TOKEN_BALANCE: bigint;
4
+ export declare const createEngineWalletBalancesStub: (addressData: AddressData, tokenAddress: string, tree: number) => Promise<void>;
5
+ export declare const createEngineWalletTreeBalancesStub: (addressData: AddressData, tokenAddress: string, tree: number) => Promise<void>;
6
+ export declare const createEngineVerifyProofStub: () => void;
7
+ export declare const restoreEngineStubs: () => void;
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.restoreEngineStubs = exports.createEngineVerifyProofStub = exports.createEngineWalletTreeBalancesStub = exports.createEngineWalletBalancesStub = exports.MOCK_TOKEN_BALANCE = exports.MOCK_SHIELD_TXID_FOR_BALANCES = void 0;
7
+ const engine_1 = require("@matrix-privacy/engine");
8
+ // eslint-disable-next-line import/no-extraneous-dependencies
9
+ const sinon_1 = __importDefault(require("sinon"));
10
+ let balancesStub;
11
+ let treeBalancesStub;
12
+ let verifyProofStub;
13
+ exports.MOCK_SHIELD_TXID_FOR_BALANCES = '123';
14
+ exports.MOCK_TOKEN_BALANCE = BigInt('1000000000000000000000');
15
+ const ZERO_32_BYTE_VALUE = '0x0000000000000000000000000000000000000000000000000000000000000000';
16
+ const getMockBalanceData = async (addressData, tokenAddress, tree) => {
17
+ const tokenData = (0, engine_1.getTokenDataERC20)(tokenAddress);
18
+ return {
19
+ balance: exports.MOCK_TOKEN_BALANCE,
20
+ tokenData,
21
+ utxos: [
22
+ {
23
+ tree,
24
+ position: 0,
25
+ blockNumber: 100,
26
+ txid: exports.MOCK_SHIELD_TXID_FOR_BALANCES,
27
+ timestamp: undefined,
28
+ spendtxid: false,
29
+ note: engine_1.TransactNote.createTransfer(addressData, // receiver
30
+ addressData, // sender
31
+ BigInt('1000000000000000000000'), // value
32
+ tokenData, // tokenData
33
+ false, // shouldShowSender
34
+ engine_1.OutputType.Transfer, undefined),
35
+ commitmentType: engine_1.CommitmentType.ShieldCommitment,
36
+ nullifier: ZERO_32_BYTE_VALUE,
37
+ },
38
+ ],
39
+ };
40
+ };
41
+ const createEngineWalletBalancesStub = async (addressData, tokenAddress, tree) => {
42
+ balancesStub = sinon_1.default
43
+ .stub(engine_1.AbstractWallet.prototype, 'getTokenBalances')
44
+ .resolves({
45
+ [tokenAddress]: await getMockBalanceData(addressData, tokenAddress, tree),
46
+ });
47
+ };
48
+ exports.createEngineWalletBalancesStub = createEngineWalletBalancesStub;
49
+ const createEngineWalletTreeBalancesStub = async (addressData, tokenAddress, tree) => {
50
+ const formattedTokenAddress = engine_1.ByteUtils.formatToByteLength(tokenAddress.replace('0x', ''), engine_1.ByteLength.UINT_256);
51
+ treeBalancesStub = sinon_1.default
52
+ .stub(engine_1.MatrixWallet.prototype, 'getTotalBalancesByTreeNumber')
53
+ .resolves({
54
+ [formattedTokenAddress]: [
55
+ await getMockBalanceData(addressData, tokenAddress, tree),
56
+ ],
57
+ });
58
+ };
59
+ exports.createEngineWalletTreeBalancesStub = createEngineWalletTreeBalancesStub;
60
+ const createEngineVerifyProofStub = () => {
61
+ verifyProofStub = sinon_1.default
62
+ .stub(engine_1.Prover.prototype, 'verifyMatrixProof')
63
+ .resolves(true);
64
+ };
65
+ exports.createEngineVerifyProofStub = createEngineVerifyProofStub;
66
+ const restoreEngineStubs = () => {
67
+ balancesStub?.restore();
68
+ treeBalancesStub?.restore();
69
+ verifyProofStub?.restore();
70
+ };
71
+ exports.restoreEngineStubs = restoreEngineStubs;
72
+ //# sourceMappingURL=engine-stubs.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine-stubs.test.js","sourceRoot":"","sources":["../../../src/tests/stubs/engine-stubs.test.ts"],"names":[],"mappings":";;;;;;AAAA,mDAYgC;AAChC,6DAA6D;AAC7D,kDAAyC;AAEzC,IAAI,YAAuB,CAAC;AAC5B,IAAI,gBAA2B,CAAC;AAChC,IAAI,eAA0B,CAAC;AAElB,QAAA,6BAA6B,GAAG,KAAK,CAAC;AACtC,QAAA,kBAAkB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;AACnE,MAAM,kBAAkB,GACtB,oEAAoE,CAAC;AAEvE,MAAM,kBAAkB,GAAG,KAAK,EAC9B,WAAwB,EACxB,YAAoB,EACpB,IAAY,EACU,EAAE;IACxB,MAAM,SAAS,GAAG,IAAA,0BAAiB,EAAC,YAAY,CAAC,CAAC;IAElD,OAAO;QACL,OAAO,EAAE,0BAAkB;QAC3B,SAAS;QACT,KAAK,EAAE;YACL;gBACE,IAAI;gBACJ,QAAQ,EAAE,CAAC;gBACX,WAAW,EAAE,GAAG;gBAChB,IAAI,EAAE,qCAA6B;gBACnC,SAAS,EAAE,SAAS;gBACpB,SAAS,EAAE,KAAK;gBAChB,IAAI,EAAE,qBAAY,CAAC,cAAc,CAC/B,WAAW,EAAE,WAAW;gBACxB,WAAW,EAAE,SAAS;gBACtB,MAAM,CAAC,wBAAwB,CAAC,EAAE,QAAQ;gBAC1C,SAAS,EAAE,YAAY;gBACvB,KAAK,EAAE,mBAAmB;gBAC1B,mBAAU,CAAC,QAAQ,EACnB,SAAS,CACV;gBACD,cAAc,EAAE,uBAAc,CAAC,gBAAgB;gBAC/C,SAAS,EAAE,kBAAkB;aAC9B;SACF;KACF,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,8BAA8B,GAAG,KAAK,EACjD,WAAwB,EACxB,YAAoB,EACpB,IAAY,EACZ,EAAE;IACF,YAAY,GAAG,eAAK;SACjB,IAAI,CAAC,uBAAc,CAAC,SAAS,EAAE,kBAAkB,CAAC;SAClD,QAAQ,CAAC;QACR,CAAC,YAAY,CAAC,EAAE,MAAM,kBAAkB,CAAC,WAAW,EAAE,YAAY,EAAE,IAAI,CAAC;KAC1E,CAAC,CAAC;AACP,CAAC,CAAC;AAVW,QAAA,8BAA8B,kCAUzC;AAEK,MAAM,kCAAkC,GAAG,KAAK,EACrD,WAAwB,EACxB,YAAoB,EACpB,IAAY,EACZ,EAAE;IACF,MAAM,qBAAqB,GAAG,kBAAS,CAAC,kBAAkB,CACxD,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAC9B,mBAAU,CAAC,QAAQ,CACpB,CAAC;IACF,gBAAgB,GAAG,eAAK;SACrB,IAAI,CAAC,qBAAY,CAAC,SAAS,EAAE,8BAA8B,CAAC;SAC5D,QAAQ,CAAC;QACR,CAAC,qBAAqB,CAAC,EAAE;YACvB,MAAM,kBAAkB,CAAC,WAAW,EAAE,YAAY,EAAE,IAAI,CAAC;SAC1D;KACF,CAAC,CAAC;AACP,CAAC,CAAC;AAhBW,QAAA,kCAAkC,sCAgB7C;AAEK,MAAM,2BAA2B,GAAG,GAAG,EAAE;IAC9C,eAAe,GAAG,eAAK;SACpB,IAAI,CAAC,eAAM,CAAC,SAAS,EAAE,mBAAmB,CAAC;SAC3C,QAAQ,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC,CAAC;AAJW,QAAA,2BAA2B,+BAItC;AAEK,MAAM,kBAAkB,GAAG,GAAG,EAAE;IACrC,YAAY,EAAE,OAAO,EAAE,CAAC;IACxB,gBAAgB,EAAE,OAAO,EAAE,CAAC;IAC5B,eAAe,EAAE,OAAO,EAAE,CAAC;AAC7B,CAAC,CAAC;AAJW,QAAA,kBAAkB,sBAI7B","sourcesContent":["import {\n OutputType,\n TransactNote,\n Prover,\n AbstractWallet,\n MatrixWallet,\n ByteLength,\n getTokenDataERC20,\n TreeBalance,\n AddressData,\n CommitmentType,\n ByteUtils,\n} from '@matrix-privacy/engine';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport sinon, { SinonStub } from 'sinon';\n\nlet balancesStub: SinonStub;\nlet treeBalancesStub: SinonStub;\nlet verifyProofStub: SinonStub;\n\nexport const MOCK_SHIELD_TXID_FOR_BALANCES = '123';\nexport const MOCK_TOKEN_BALANCE = BigInt('1000000000000000000000');\nconst ZERO_32_BYTE_VALUE =\n '0x0000000000000000000000000000000000000000000000000000000000000000';\n\nconst getMockBalanceData = async (\n addressData: AddressData,\n tokenAddress: string,\n tree: number,\n): Promise<TreeBalance> => {\n const tokenData = getTokenDataERC20(tokenAddress);\n\n return {\n balance: MOCK_TOKEN_BALANCE,\n tokenData,\n utxos: [\n {\n tree,\n position: 0,\n blockNumber: 100,\n txid: MOCK_SHIELD_TXID_FOR_BALANCES,\n timestamp: undefined,\n spendtxid: false,\n note: TransactNote.createTransfer(\n addressData, // receiver\n addressData, // sender\n BigInt('1000000000000000000000'), // value\n tokenData, // tokenData\n false, // shouldShowSender\n OutputType.Transfer,\n undefined, // memoText\n ),\n commitmentType: CommitmentType.ShieldCommitment,\n nullifier: ZERO_32_BYTE_VALUE,\n },\n ],\n };\n};\n\nexport const createEngineWalletBalancesStub = async (\n addressData: AddressData,\n tokenAddress: string,\n tree: number,\n) => {\n balancesStub = sinon\n .stub(AbstractWallet.prototype, 'getTokenBalances')\n .resolves({\n [tokenAddress]: await getMockBalanceData(addressData, tokenAddress, tree),\n });\n};\n\nexport const createEngineWalletTreeBalancesStub = async (\n addressData: AddressData,\n tokenAddress: string,\n tree: number,\n) => {\n const formattedTokenAddress = ByteUtils.formatToByteLength(\n tokenAddress.replace('0x', ''),\n ByteLength.UINT_256,\n );\n treeBalancesStub = sinon\n .stub(MatrixWallet.prototype, 'getTotalBalancesByTreeNumber')\n .resolves({\n [formattedTokenAddress]: [\n await getMockBalanceData(addressData, tokenAddress, tree),\n ],\n });\n};\n\nexport const createEngineVerifyProofStub = () => {\n verifyProofStub = sinon\n .stub(Prover.prototype, 'verifyMatrixProof')\n .resolves(true);\n};\n\nexport const restoreEngineStubs = () => {\n balancesStub?.restore();\n treeBalancesStub?.restore();\n verifyProofStub?.restore();\n};\n"]}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const chai_1 = __importDefault(require("chai"));
7
+ const chai_as_promised_1 = __importDefault(require("chai-as-promised"));
8
+ const blocked_address_1 = require("../blocked-address");
9
+ chai_1.default.use(chai_as_promised_1.default);
10
+ const { expect } = chai_1.default;
11
+ describe('blocked-address', () => {
12
+ it('Should recognize blocked addresses', async () => {
13
+ expect((0, blocked_address_1.isBlockedAddress)('0x1356c899d8c9467c7f71c195612f8a395abf2f0a')).to.equal(true);
14
+ expect((0, blocked_address_1.isBlockedAddress)('0x1356c899d8c9467c7f71c195612f8a395abf2f0a'.toUpperCase())).to.equal(true);
15
+ expect((0, blocked_address_1.isBlockedAddress)('0x8356c899d8c9467c7f71c195612f8a395abf2f0a')).to.equal(false);
16
+ expect((0, blocked_address_1.isBlockedAddress)(undefined)).to.equal(false);
17
+ });
18
+ it('Assert should throw on blocked address', async () => {
19
+ expect(() => (0, blocked_address_1.assertNotBlockedAddress)('0x1356c899d8c9467c7f71c195612f8a395abf2f0a')).to.throw();
20
+ expect(() => (0, blocked_address_1.assertNotBlockedAddress)('0x8356c899d8c9467c7f71c195612f8a395abf2f0a')).to.not.throw();
21
+ });
22
+ });
23
+ //# sourceMappingURL=blocked-address.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blocked-address.test.js","sourceRoot":"","sources":["../../../src/utils/__tests__/blocked-address.test.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AACxB,wEAA8C;AAC9C,wDAA+E;AAE/E,cAAI,CAAC,GAAG,CAAC,0BAAc,CAAC,CAAC;AACzB,MAAM,EAAE,MAAM,EAAE,GAAG,cAAI,CAAC;AAExB,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,CACJ,IAAA,kCAAgB,EAAC,4CAA4C,CAAC,CAC/D,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjB,MAAM,CACJ,IAAA,kCAAgB,EACd,4CAA4C,CAAC,WAAW,EAAE,CAC3D,CACF,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjB,MAAM,CACJ,IAAA,kCAAgB,EAAC,4CAA4C,CAAC,CAC/D,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAClB,MAAM,CAAC,IAAA,kCAAgB,EAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,CAAC,GAAG,EAAE,CACV,IAAA,yCAAuB,EAAC,4CAA4C,CAAC,CACtE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,MAAM,CAAC,GAAG,EAAE,CACV,IAAA,yCAAuB,EAAC,4CAA4C,CAAC,CACtE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import chai from 'chai';\nimport chaiAsPromised from 'chai-as-promised';\nimport { assertNotBlockedAddress, isBlockedAddress } from '../blocked-address';\n\nchai.use(chaiAsPromised);\nconst { expect } = chai;\n\ndescribe('blocked-address', () => {\n it('Should recognize blocked addresses', async () => {\n expect(\n isBlockedAddress('0x1356c899d8c9467c7f71c195612f8a395abf2f0a'),\n ).to.equal(true);\n expect(\n isBlockedAddress(\n '0x1356c899d8c9467c7f71c195612f8a395abf2f0a'.toUpperCase(),\n ),\n ).to.equal(true);\n expect(\n isBlockedAddress('0x8356c899d8c9467c7f71c195612f8a395abf2f0a'),\n ).to.equal(false);\n expect(isBlockedAddress(undefined)).to.equal(false);\n });\n\n it('Assert should throw on blocked address', async () => {\n expect(() =>\n assertNotBlockedAddress('0x1356c899d8c9467c7f71c195612f8a395abf2f0a'),\n ).to.throw();\n expect(() =>\n assertNotBlockedAddress('0x8356c899d8c9467c7f71c195612f8a395abf2f0a'),\n ).to.not.throw();\n });\n});\n"]}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const chai_1 = __importDefault(require("chai"));
7
+ const chai_as_promised_1 = __importDefault(require("chai-as-promised"));
8
+ const sinon_1 = __importDefault(require("sinon"));
9
+ const logger_1 = require("../logger");
10
+ chai_1.default.use(chai_as_promised_1.default);
11
+ const { expect } = chai_1.default;
12
+ describe('logger', () => {
13
+ after(() => {
14
+ (0, logger_1.setLoggers)(undefined, undefined);
15
+ });
16
+ it('Should test out logger setters', () => {
17
+ const messageSpy = sinon_1.default.spy();
18
+ const errorSpy = sinon_1.default.spy();
19
+ (0, logger_1.setLoggers)(messageSpy, errorSpy);
20
+ expect(messageSpy.notCalled).to.be.true;
21
+ expect(errorSpy.notCalled).to.be.true;
22
+ (0, logger_1.sendMessage)('msg');
23
+ expect(messageSpy.calledOnce).to.be.true;
24
+ (0, logger_1.sendErrorMessage)('err');
25
+ expect(errorSpy.calledOnce).to.be.true;
26
+ });
27
+ });
28
+ //# sourceMappingURL=logger.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.test.js","sourceRoot":"","sources":["../../../src/utils/__tests__/logger.test.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AACxB,wEAA8C;AAC9C,kDAA0B;AAC1B,sCAAsE;AAEtE,cAAI,CAAC,GAAG,CAAC,0BAAc,CAAC,CAAC;AACzB,MAAM,EAAE,MAAM,EAAE,GAAG,cAAI,CAAC;AAExB,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,KAAK,CAAC,GAAG,EAAE;QACT,IAAA,mBAAU,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,UAAU,GAAG,eAAK,CAAC,GAAG,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,eAAK,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAA,mBAAU,EAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAEjC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACxC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAEtC,IAAA,oBAAW,EAAC,KAAK,CAAC,CAAC;QACnB,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACzC,IAAA,yBAAgB,EAAC,KAAK,CAAC,CAAC;QACxB,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import chai from 'chai';\nimport chaiAsPromised from 'chai-as-promised';\nimport Sinon from 'sinon';\nimport { sendErrorMessage, sendMessage, setLoggers } from '../logger';\n\nchai.use(chaiAsPromised);\nconst { expect } = chai;\n\ndescribe('logger', () => {\n after(() => {\n setLoggers(undefined, undefined);\n });\n\n it('Should test out logger setters', () => {\n const messageSpy = Sinon.spy();\n const errorSpy = Sinon.spy();\n setLoggers(messageSpy, errorSpy);\n\n expect(messageSpy.notCalled).to.be.true;\n expect(errorSpy.notCalled).to.be.true;\n\n sendMessage('msg');\n expect(messageSpy.calledOnce).to.be.true;\n sendErrorMessage('err');\n expect(errorSpy.calledOnce).to.be.true;\n });\n});\n"]}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const chai_1 = __importDefault(require("chai"));
7
+ const chai_as_promised_1 = __importDefault(require("chai-as-promised"));
8
+ const utils_1 = require("../utils");
9
+ chai_1.default.use(chai_as_promised_1.default);
10
+ const { expect } = chai_1.default;
11
+ describe('utils', () => {
12
+ it('Should test array comparisons', () => {
13
+ expect((0, utils_1.compareStringArrays)(undefined, [])).to.be.false;
14
+ expect((0, utils_1.compareStringArrays)([], undefined)).to.be.false;
15
+ expect((0, utils_1.compareStringArrays)([], [])).to.be.true;
16
+ expect((0, utils_1.compareStringArrays)([], ['1'])).to.be.false;
17
+ expect((0, utils_1.compareStringArrays)(['1'], [])).to.be.false;
18
+ expect((0, utils_1.compareStringArrays)(['1', '2'], ['2', '1'])).to.be.true;
19
+ });
20
+ });
21
+ //# sourceMappingURL=utils.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../../src/utils/__tests__/utils.test.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AACxB,wEAA8C;AAC9C,oCAA+C;AAE/C,cAAI,CAAC,GAAG,CAAC,0BAAc,CAAC,CAAC;AACzB,MAAM,EAAE,MAAM,EAAE,GAAG,cAAI,CAAC;AAExB,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACrB,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,CAAC,IAAA,2BAAmB,EAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACvD,MAAM,CAAC,IAAA,2BAAmB,EAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACvD,MAAM,CAAC,IAAA,2BAAmB,EAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC/C,MAAM,CAAC,IAAA,2BAAmB,EAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACnD,MAAM,CAAC,IAAA,2BAAmB,EAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACnD,MAAM,CAAC,IAAA,2BAAmB,EAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACjE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import chai from 'chai';\nimport chaiAsPromised from 'chai-as-promised';\nimport { compareStringArrays } from '../utils';\n\nchai.use(chaiAsPromised);\nconst { expect } = chai;\n\ndescribe('utils', () => {\n it('Should test array comparisons', () => {\n expect(compareStringArrays(undefined, [])).to.be.false;\n expect(compareStringArrays([], undefined)).to.be.false;\n expect(compareStringArrays([], [])).to.be.true;\n expect(compareStringArrays([], ['1'])).to.be.false;\n expect(compareStringArrays(['1'], [])).to.be.false;\n expect(compareStringArrays(['1', '2'], ['2', '1'])).to.be.true;\n });\n});\n"]}
@@ -0,0 +1,2 @@
1
+ export declare const isBlockedAddress: (_address?: string) => boolean;
2
+ export declare const assertNotBlockedAddress: (address?: string) => void;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ // Matrix does not maintain a blocked address list.
3
+ // This module is retained for API compatibility.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.assertNotBlockedAddress = exports.isBlockedAddress = void 0;
6
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
7
+ const isBlockedAddress = (_address) => {
8
+ return false;
9
+ };
10
+ exports.isBlockedAddress = isBlockedAddress;
11
+ const assertNotBlockedAddress = (address) => {
12
+ if ((0, exports.isBlockedAddress)(address)) {
13
+ throw new Error('Blocked address');
14
+ }
15
+ };
16
+ exports.assertNotBlockedAddress = assertNotBlockedAddress;
17
+ //# sourceMappingURL=blocked-address.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blocked-address.js","sourceRoot":"","sources":["../../src/utils/blocked-address.ts"],"names":[],"mappings":";AAAA,mDAAmD;AACnD,iDAAiD;;;AAEjD,6DAA6D;AACtD,MAAM,gBAAgB,GAAG,CAAC,QAAiB,EAAW,EAAE;IAC7D,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAFW,QAAA,gBAAgB,oBAE3B;AAEK,MAAM,uBAAuB,GAAG,CAAC,OAAgB,EAAE,EAAE;IAC1D,IAAI,IAAA,wBAAgB,EAAC,OAAO,CAAC,EAAE;QAC7B,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;KACpC;AACH,CAAC,CAAC;AAJW,QAAA,uBAAuB,2BAIlC","sourcesContent":["// Matrix does not maintain a blocked address list.\n// This module is retained for API compatibility.\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport const isBlockedAddress = (_address?: string): boolean => {\n return false;\n};\n\nexport const assertNotBlockedAddress = (address?: string) => {\n if (isBlockedAddress(address)) {\n throw new Error('Blocked address');\n }\n};\n"]}
@@ -0,0 +1 @@
1
+ export declare const reportAndSanitizeError: (func: string, err: Error | any) => Error;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.reportAndSanitizeError = void 0;
4
+ const shared_models_1 = require("@matrix-privacy/shared-models");
5
+ const logger_1 = require("./logger");
6
+ const reportAndSanitizeError = (func,
7
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
8
+ err) => {
9
+ (0, logger_1.sendErrorMessage)(`Caught error in Matrix Wallet SDK: ${func}`);
10
+ if (err instanceof Error) {
11
+ const error = (0, shared_models_1.sanitizeError)(err);
12
+ (0, logger_1.sendErrorMessage)(error);
13
+ return error;
14
+ }
15
+ const error = new Error('Unknown error.', { cause: err });
16
+ (0, logger_1.sendErrorMessage)(error);
17
+ return error;
18
+ };
19
+ exports.reportAndSanitizeError = reportAndSanitizeError;
20
+ //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/utils/error.ts"],"names":[],"mappings":";;;AAAA,iEAA8D;AAC9D,qCAA4C;AAErC,MAAM,sBAAsB,GAAG,CACpC,IAAY;AACZ,8DAA8D;AAC9D,GAAgB,EACT,EAAE;IACT,IAAA,yBAAgB,EAAC,sCAAsC,IAAI,EAAE,CAAC,CAAC;IAE/D,IAAI,GAAG,YAAY,KAAK,EAAE;QACxB,MAAM,KAAK,GAAG,IAAA,6BAAa,EAAC,GAAG,CAAC,CAAC;QACjC,IAAA,yBAAgB,EAAC,KAAK,CAAC,CAAC;QACxB,OAAO,KAAK,CAAC;KACd;IAED,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1D,IAAA,yBAAgB,EAAC,KAAK,CAAC,CAAC;IACxB,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAhBW,QAAA,sBAAsB,0BAgBjC","sourcesContent":["import { sanitizeError } from '@matrix-privacy/shared-models';\nimport { sendErrorMessage } from './logger';\n\nexport const reportAndSanitizeError = (\n func: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n err: Error | any,\n): Error => {\n sendErrorMessage(`Caught error in Matrix Wallet SDK: ${func}`);\n\n if (err instanceof Error) {\n const error = sanitizeError(err);\n sendErrorMessage(error);\n return error;\n }\n\n const error = new Error('Unknown error.', { cause: err });\n sendErrorMessage(error);\n return error;\n};\n"]}
@@ -0,0 +1,6 @@
1
+ import { NetworkName } from '@matrix-privacy/shared-models';
2
+ /**
3
+ * L2s don't manage gas prices in the same way. tx.gasprice (contract) is not necessarily the same value as transactionRequest.gasPrice (ethers).
4
+ * Since overallBatchMinGasPrice is an optional parameter, we simply remove it for L2s. This will skip validation on the contract side.
5
+ */
6
+ export declare const shouldSetOverallBatchMinGasPriceForNetwork: (sendWithPublicWallet: boolean, _networkName: NetworkName) => boolean;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.shouldSetOverallBatchMinGasPriceForNetwork = void 0;
4
+ /**
5
+ * L2s don't manage gas prices in the same way. tx.gasprice (contract) is not necessarily the same value as transactionRequest.gasPrice (ethers).
6
+ * Since overallBatchMinGasPrice is an optional parameter, we simply remove it for L2s. This will skip validation on the contract side.
7
+ */
8
+ const shouldSetOverallBatchMinGasPriceForNetwork = (sendWithPublicWallet,
9
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
10
+ _networkName) => {
11
+ if (sendWithPublicWallet) {
12
+ // Only Broadcaster transactions require overallBatchMinGasPrice.
13
+ return false;
14
+ }
15
+ // Matrix currently only supports Hardhat. Add L2 checks here as networks are added.
16
+ return true;
17
+ };
18
+ exports.shouldSetOverallBatchMinGasPriceForNetwork = shouldSetOverallBatchMinGasPriceForNetwork;
19
+ //# sourceMappingURL=gas-price.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gas-price.js","sourceRoot":"","sources":["../../src/utils/gas-price.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACI,MAAM,0CAA0C,GAAG,CACxD,oBAA6B;AAC7B,6DAA6D;AAC7D,YAAyB,EACzB,EAAE;IACF,IAAI,oBAAoB,EAAE;QACxB,iEAAiE;QACjE,OAAO,KAAK,CAAC;KACd;IACD,oFAAoF;IACpF,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAXW,QAAA,0CAA0C,8CAWrD","sourcesContent":["import { NetworkName } from '@matrix-privacy/shared-models';\n\n/**\n * L2s don't manage gas prices in the same way. tx.gasprice (contract) is not necessarily the same value as transactionRequest.gasPrice (ethers).\n * Since overallBatchMinGasPrice is an optional parameter, we simply remove it for L2s. This will skip validation on the contract side.\n */\nexport const shouldSetOverallBatchMinGasPriceForNetwork = (\n sendWithPublicWallet: boolean,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _networkName: NetworkName,\n) => {\n if (sendWithPublicWallet) {\n // Only Broadcaster transactions require overallBatchMinGasPrice.\n return false;\n }\n // Matrix currently only supports Hardhat. Add L2 checks here as networks are added.\n return true;\n};\n"]}
@@ -0,0 +1,2 @@
1
+ export * from './logger';
2
+ export * from './utils';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./logger"), exports);
18
+ __exportStar(require("./utils"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,0CAAwB","sourcesContent":["export * from './logger';\nexport * from './utils';\n"]}