@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 @@
1
+ {"version":3,"file":"transaction-history.js","sourceRoot":"","sources":["../../../../src/services/matrix/history/transaction-history.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n TransactionHistoryTransferTokenAmount,\n TransactionHistoryTokenAmount,\n TransactionHistoryEntry,\n Chain,\n TransactionHistoryReceiveTokenAmount,\n TokenType,\n ByteLength,\n ByteUtils,\n TransactionHistoryUnshieldTokenAmount,\n} from '@matrix-privacy/engine';\nimport {\n TransactionHistoryItem,\n MatrixHistoryERC20Amount,\n MatrixHistorySendERC20Amount,\n MatrixHistoryReceiveERC20Amount,\n MatrixHistorySendNFTAmount,\n MatrixHistoryNFTAmount,\n MatrixHistoryReceiveNFTAmount,\n MatrixHistoryUnshieldERC20Amount,\n MatrixHistoryUnshieldNFTAmount,\n TransactionHistoryItemCategory,\n MatrixWalletBalanceBucket,\n} from '@matrix-privacy/shared-models';\nimport { parseMatrixTokenAddress } from '../util/bytes';\nimport { reportAndSanitizeError } from '../../../utils/error';\nimport { walletForID } from '../wallets/wallets';\n\nconst getMatrixBalanceBucketFromEngineBalanceBucket = (\n balanceBucket: string,\n): MatrixWalletBalanceBucket => {\n switch (balanceBucket) {\n case 'Spendable':\n return MatrixWalletBalanceBucket.Spendable;\n case 'ShieldPending':\n return MatrixWalletBalanceBucket.ShieldPending;\n case 'ProofSubmitted':\n return MatrixWalletBalanceBucket.ProofSubmitted;\n case 'Spent':\n return MatrixWalletBalanceBucket.Spent;\n default:\n return MatrixWalletBalanceBucket.Spendable;\n }\n};\n\nconst transactionHistoryReceiveTokenAmountToMatrixERC20Amount = (\n transactionHistoryReceiveTokenAmount: TransactionHistoryReceiveTokenAmount,\n): MatrixHistoryReceiveERC20Amount => {\n return {\n ...transactionHistoryTokenAmountToMatrixERC20Amount(\n transactionHistoryReceiveTokenAmount,\n ),\n memoText: transactionHistoryReceiveTokenAmount.memoText,\n senderAddress: transactionHistoryReceiveTokenAmount.senderAddress,\n shieldFee: transactionHistoryReceiveTokenAmount.shieldFee,\n balanceBucket: getMatrixBalanceBucketFromEngineBalanceBucket(\n transactionHistoryReceiveTokenAmount.balanceBucket,\n ),\n };\n};\n\nconst transactionHistoryReceiveNFTToMatrixNFTAmount = (\n transactionHistoryReceiveTokenAmount: TransactionHistoryReceiveTokenAmount,\n): MatrixHistoryReceiveNFTAmount => {\n return {\n ...transactionHistoryNFTToMatrixNFTAmount(\n transactionHistoryReceiveTokenAmount,\n ),\n memoText: transactionHistoryReceiveTokenAmount.memoText,\n senderAddress: transactionHistoryReceiveTokenAmount.senderAddress,\n shieldFee: transactionHistoryReceiveTokenAmount.shieldFee,\n balanceBucket: getMatrixBalanceBucketFromEngineBalanceBucket(\n transactionHistoryReceiveTokenAmount.balanceBucket,\n ),\n };\n};\n\nconst transactionHistoryTransferTokenAmountToMatrixERC20Amount = (\n transactionHistoryTokenAmount: TransactionHistoryTransferTokenAmount,\n): MatrixHistorySendERC20Amount => {\n return {\n ...transactionHistoryTokenAmountToMatrixERC20Amount(\n transactionHistoryTokenAmount,\n ),\n recipientAddress: transactionHistoryTokenAmount.recipientAddress,\n memoText: transactionHistoryTokenAmount.memoText,\n walletSource: transactionHistoryTokenAmount.walletSource,\n };\n};\n\nconst transactionHistoryUnshieldTokenAmountToMatrixERC20Amount = (\n transactionHistoryUnshieldTokenAmount: TransactionHistoryUnshieldTokenAmount,\n): MatrixHistoryUnshieldERC20Amount => {\n return {\n ...transactionHistoryTransferTokenAmountToMatrixERC20Amount(\n transactionHistoryUnshieldTokenAmount,\n ),\n unshieldFee: transactionHistoryUnshieldTokenAmount.unshieldFee,\n };\n};\n\nconst transactionHistoryTransferNFTToMatrixNFTAmount = (\n transactionHistoryNFT: TransactionHistoryTransferTokenAmount,\n): MatrixHistorySendNFTAmount => {\n return {\n ...transactionHistoryNFTToMatrixNFTAmount(transactionHistoryNFT),\n memoText: transactionHistoryNFT.memoText,\n walletSource: transactionHistoryNFT.walletSource,\n recipientAddress: transactionHistoryNFT.recipientAddress,\n };\n};\n\nconst transactionHistoryUnshieldNFTToMatrixNFTAmount = (\n transactionHistoryNFT: TransactionHistoryUnshieldTokenAmount,\n): MatrixHistoryUnshieldNFTAmount => {\n return {\n ...transactionHistoryTransferNFTToMatrixNFTAmount(transactionHistoryNFT),\n unshieldFee: transactionHistoryNFT.unshieldFee,\n };\n};\n\nconst transactionHistoryTokenAmountToMatrixERC20Amount = (\n transactionHistoryTokenAmount: TransactionHistoryTokenAmount,\n): MatrixHistoryERC20Amount => {\n return {\n tokenAddress: parseMatrixTokenAddress(\n transactionHistoryTokenAmount.tokenData.tokenAddress,\n ).toLowerCase(),\n amount: transactionHistoryTokenAmount.amount,\n };\n};\n\nconst transactionHistoryNFTToMatrixNFTAmount = (\n transactionHistoryNFT: TransactionHistoryTokenAmount,\n): MatrixHistoryNFTAmount => {\n return {\n nftAddress: parseMatrixTokenAddress(\n transactionHistoryNFT.tokenData.tokenAddress,\n ).toLowerCase(),\n nftTokenType: transactionHistoryNFT.tokenData.tokenType as 1 | 2,\n tokenSubID: transactionHistoryNFT.tokenData.tokenSubID,\n amount: transactionHistoryNFT.amount,\n };\n};\n\nconst filterERC20 = (tokenAmount: TransactionHistoryTokenAmount) => {\n return tokenAmount.tokenData.tokenType === TokenType.ERC20;\n};\n\nconst filterNFT = (tokenAmount: TransactionHistoryTokenAmount) => {\n switch (tokenAmount.tokenData.tokenType) {\n case TokenType.ERC20:\n return false;\n case TokenType.ERC721:\n case TokenType.ERC1155:\n return tokenAmount.amount > BigInt(0);\n }\n};\n\nconst receiveERC20AmountsHaveShieldFee = (\n receiveERC20Amounts: MatrixHistoryReceiveERC20Amount[],\n): boolean => {\n return receiveERC20Amounts.find(amount => amount.shieldFee) != null;\n};\n\nexport const categoryForTransactionHistoryItem = (\n historyItem: TransactionHistoryItem,\n): TransactionHistoryItemCategory => {\n const hasTransferNFTs = historyItem.transferNFTAmounts.length > 0;\n const hasReceiveNFTs = historyItem.receiveNFTAmounts.length > 0;\n const hasUnshieldNFTs = historyItem.unshieldNFTAmounts.length > 0;\n if (hasTransferNFTs || hasReceiveNFTs || hasUnshieldNFTs) {\n // Some kind of NFT Transfer. Unhandled case.\n return TransactionHistoryItemCategory.Unknown;\n }\n\n const hasTransferERC20s = historyItem.transferERC20Amounts.length > 0;\n const hasReceiveERC20s = historyItem.receiveERC20Amounts.length > 0;\n const hasUnshieldERC20s = historyItem.unshieldERC20Amounts.length > 0;\n\n if (hasTransferERC20s && !hasReceiveERC20s && !hasUnshieldERC20s) {\n // Only transfer erc20s.\n return TransactionHistoryItemCategory.TransferSendERC20s;\n }\n\n if (!hasTransferERC20s && hasReceiveERC20s && !hasUnshieldERC20s) {\n // Only receive erc20s.\n const hasShieldFee = receiveERC20AmountsHaveShieldFee(\n historyItem.receiveERC20Amounts,\n );\n if (hasShieldFee) {\n // Note: Shield fees were added to contract events in Mar 2023.\n // Prior shields will show as TransferReceiveERC20s without fees.\n return TransactionHistoryItemCategory.ShieldERC20s;\n }\n return TransactionHistoryItemCategory.TransferReceiveERC20s;\n }\n\n if (!hasTransferERC20s && !hasReceiveERC20s && hasUnshieldERC20s) {\n // Only unshield erc20s.\n return TransactionHistoryItemCategory.UnshieldERC20s;\n }\n\n return TransactionHistoryItemCategory.Unknown;\n};\n\nconst serializeTransactionHistory = (\n transactionHistory: TransactionHistoryEntry[],\n): TransactionHistoryItem[] => {\n const historyItemsUncategorized: TransactionHistoryItem[] =\n transactionHistory.map(historyEntry => ({\n txid: ByteUtils.formatToByteLength(historyEntry.txid, ByteLength.UINT_256, true),\n blockNumber: historyEntry.blockNumber,\n timestamp: historyEntry.timestamp,\n transferERC20Amounts: historyEntry.transferTokenAmounts\n .filter(filterERC20)\n .map(transactionHistoryTransferTokenAmountToMatrixERC20Amount),\n broadcasterFeeERC20Amount: historyEntry.relayerFeeTokenAmount\n ? transactionHistoryTokenAmountToMatrixERC20Amount(\n historyEntry.relayerFeeTokenAmount,\n )\n : undefined,\n changeERC20Amounts: historyEntry.changeTokenAmounts\n .filter(filterERC20)\n .map(transactionHistoryTokenAmountToMatrixERC20Amount),\n receiveERC20Amounts: historyEntry.receiveTokenAmounts\n .filter(filterERC20)\n .map(transactionHistoryReceiveTokenAmountToMatrixERC20Amount),\n unshieldERC20Amounts: historyEntry.unshieldTokenAmounts\n .filter(filterERC20)\n .map(transactionHistoryUnshieldTokenAmountToMatrixERC20Amount),\n receiveNFTAmounts: historyEntry.receiveTokenAmounts\n .filter(filterNFT)\n .map(transactionHistoryReceiveNFTToMatrixNFTAmount),\n transferNFTAmounts: historyEntry.transferTokenAmounts\n .filter(filterNFT)\n .map(transactionHistoryTransferNFTToMatrixNFTAmount),\n unshieldNFTAmounts: historyEntry.unshieldTokenAmounts\n .filter(filterNFT)\n .map(transactionHistoryUnshieldNFTToMatrixNFTAmount),\n version: historyEntry.version,\n category: TransactionHistoryItemCategory.Unknown,\n }));\n\n // Add category for items based on token types.\n return historyItemsUncategorized.map(historyItem => ({\n ...historyItem,\n category: categoryForTransactionHistoryItem(historyItem),\n }));\n};\n\nexport const getWalletTransactionHistory = async (\n chain: Chain,\n matrixWalletID: string,\n startingBlock: Optional<number>,\n): Promise<TransactionHistoryItem[]> => {\n try {\n const wallet = walletForID(matrixWalletID);\n const transactionHistory = await wallet.getTransactionHistory(\n chain,\n startingBlock,\n );\n return serializeTransactionHistory(transactionHistory);\n } catch (err) {\n reportAndSanitizeError(getWalletTransactionHistory.name, err);\n throw new Error('Could not load Matrix wallet transaction history.', {\n cause: err,\n });\n }\n};\n"]}
@@ -0,0 +1,4 @@
1
+ export * from './core';
2
+ export * from './util';
3
+ export * from './wallets';
4
+ export * from './process';
@@ -0,0 +1,21 @@
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("./core"), exports);
18
+ __exportStar(require("./util"), exports);
19
+ __exportStar(require("./wallets"), exports);
20
+ __exportStar(require("./process"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/matrix/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,yCAAuB;AACvB,4CAA0B;AAC1B,4CAA0B","sourcesContent":["export * from './core';\nexport * from './util';\nexport * from './wallets';\nexport * from './process';\n"]}
@@ -0,0 +1,3 @@
1
+ import { MatrixNetwork } from '@matrix-privacy/shared-models';
2
+ import { ContractTransaction } from 'ethers';
3
+ export declare const extractFirstNoteERC20AmountMapFromTransactionRequest: (matrixWalletID: string, network: MatrixNetwork, transactionRequest: ContractTransaction, useRelayAdapt: boolean) => Promise<MapType<bigint>>;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extractFirstNoteERC20AmountMapFromTransactionRequest = void 0;
4
+ const engine_1 = require("@matrix-privacy/engine");
5
+ const wallets_1 = require("../wallets/wallets");
6
+ const extractFirstNoteERC20AmountMapFromTransactionRequest = (matrixWalletID, network, transactionRequest, useRelayAdapt) => {
7
+ const chain = network.chain;
8
+ let contractAddress;
9
+ if (useRelayAdapt) {
10
+ contractAddress = engine_1.MatrixContracts.getRelayAdaptContract(chain).address;
11
+ }
12
+ else {
13
+ contractAddress = engine_1.MatrixContracts.getVerifier(chain).address;
14
+ }
15
+ const wallet = (0, wallets_1.walletForID)(matrixWalletID);
16
+ return wallet.extractFirstNoteERC20AmountMap(chain, transactionRequest, useRelayAdapt, contractAddress);
17
+ };
18
+ exports.extractFirstNoteERC20AmountMapFromTransactionRequest = extractFirstNoteERC20AmountMapFromTransactionRequest;
19
+ //# sourceMappingURL=extract-transaction-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract-transaction-data.js","sourceRoot":"","sources":["../../../../src/services/matrix/process/extract-transaction-data.ts"],"names":[],"mappings":";;;AAAA,mDAAyD;AAGzD,gDAAiD;AAE1C,MAAM,oDAAoD,GAAG,CAClE,cAAsB,EACtB,OAAsB,EACtB,kBAAuC,EACvC,aAAsB,EACI,EAAE;IAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAE5B,IAAI,eAAuB,CAAC;IAC5B,IAAI,aAAa,EAAE;QACjB,eAAe,GAAG,wBAAe,CAAC,qBAAqB,CACrD,KAAK,CACN,CAAC,OAAO,CAAC;KACX;SAAM;QACL,eAAe,GAAG,wBAAe,CAAC,WAAW,CAC3C,KAAK,CACN,CAAC,OAAO,CAAC;KACX;IAED,MAAM,MAAM,GAAG,IAAA,qBAAW,EAAC,cAAc,CAAC,CAAC;IAC3C,OAAO,MAAM,CAAC,8BAA8B,CAC1C,KAAK,EACL,kBAAkB,EAClB,aAAa,EACb,eAAe,CAChB,CAAC;AACJ,CAAC,CAAC;AA1BW,QAAA,oDAAoD,wDA0B/D","sourcesContent":["import { MatrixContracts } from '@matrix-privacy/engine';\nimport { MatrixNetwork } from '@matrix-privacy/shared-models';\nimport { ContractTransaction } from 'ethers';\nimport { walletForID } from '../wallets/wallets';\n\nexport const extractFirstNoteERC20AmountMapFromTransactionRequest = (\n matrixWalletID: string,\n network: MatrixNetwork,\n transactionRequest: ContractTransaction,\n useRelayAdapt: boolean,\n): Promise<MapType<bigint>> => {\n const chain = network.chain;\n\n let contractAddress: string;\n if (useRelayAdapt) {\n contractAddress = MatrixContracts.getRelayAdaptContract(\n chain,\n ).address;\n } else {\n contractAddress = MatrixContracts.getVerifier(\n chain,\n ).address;\n }\n\n const wallet = walletForID(matrixWalletID);\n return wallet.extractFirstNoteERC20AmountMap(\n chain,\n transactionRequest,\n useRelayAdapt,\n contractAddress,\n );\n};\n"]}
@@ -0,0 +1 @@
1
+ export * from './extract-transaction-data';
@@ -0,0 +1,18 @@
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("./extract-transaction-data"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/matrix/process/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C","sourcesContent":["export * from './extract-transaction-data';\n"]}
@@ -0,0 +1,56 @@
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 shared_models_1 = require("@matrix-privacy/shared-models");
7
+ const chai_1 = __importDefault(require("chai"));
8
+ const chai_as_promised_1 = __importDefault(require("chai-as-promised"));
9
+ const quick_sync_events_1 = require("../../quick-sync-events");
10
+ chai_1.default.use(chai_as_promised_1.default);
11
+ const { expect } = chai_1.default;
12
+ const HARDHAT_CHAIN = shared_models_1.NETWORK_CONFIG[shared_models_1.NetworkName.Hardhat].chain;
13
+ const EXPECTED_COMMITMENT_GROUP_EVENTS = 1;
14
+ const EXPECTED_NULLIFIER_EVENTS = 1;
15
+ const EXPECTED_UNSHIELD_EVENTS = 1;
16
+ const EXPECTED_MATRIX_TRANSACTION_EVENTS = 1;
17
+ const assertContiguousCommitmentEvents = (commitmentEvents, shouldThrow) => {
18
+ let nextTreeNumber = commitmentEvents[0].treeNumber;
19
+ let nextStartPosition = commitmentEvents[0].startPosition;
20
+ for (const event of commitmentEvents) {
21
+ if (event.treeNumber !== nextTreeNumber ||
22
+ event.startPosition !== nextStartPosition) {
23
+ if (shouldThrow) {
24
+ throw new Error(`Could not find treeNumber ${nextTreeNumber}, startPosition ${nextStartPosition}`);
25
+ }
26
+ else {
27
+ // eslint-disable-next-line no-console
28
+ console.log(`Could not find treeNumber ${nextTreeNumber}, startPosition ${nextStartPosition}`);
29
+ nextStartPosition = event.startPosition + event.commitments.length;
30
+ }
31
+ }
32
+ else {
33
+ nextStartPosition += event.commitments.length;
34
+ }
35
+ // TODO: This logic may need an update if the tree is less than 65536 commitments.
36
+ if (nextStartPosition >= 65536) {
37
+ // Roll over to next tree.
38
+ nextTreeNumber += 1;
39
+ nextStartPosition = 0;
40
+ }
41
+ }
42
+ };
43
+ describe('quick-sync-events-graph-v3', () => {
44
+ it('[V3] Should make sure Graph V3 query has no data gaps in commitments - Hardhat', async () => {
45
+ const eventLog = await (0, quick_sync_events_1.quickSyncEventsGraph)(HARDHAT_CHAIN, 0);
46
+ expect(eventLog).to.be.an('object');
47
+ expect(eventLog.commitmentEvents).to.be.an('array');
48
+ expect(eventLog.commitmentEvents.length).to.be.at.least(EXPECTED_COMMITMENT_GROUP_EVENTS);
49
+ expect(eventLog.nullifierEvents.length).to.be.at.least(EXPECTED_NULLIFIER_EVENTS);
50
+ expect(eventLog.unshieldEvents.length).to.be.at.least(EXPECTED_UNSHIELD_EVENTS);
51
+ expect(eventLog.matrixTransactionEvents?.length).to.be.at.least(EXPECTED_MATRIX_TRANSACTION_EVENTS);
52
+ const shouldThrow = true;
53
+ assertContiguousCommitmentEvents(eventLog.commitmentEvents, shouldThrow);
54
+ }).timeout(45000);
55
+ });
56
+ //# sourceMappingURL=quick-sync-events-graph-v3.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quick-sync-events-graph-v3.test.js","sourceRoot":"","sources":["../../../../../../src/services/matrix/quick-sync/V3/__tests__/quick-sync-events-graph-v3.test.ts"],"names":[],"mappings":";;;;;AACA,iEAA4E;AAC5E,gDAAwB;AACxB,wEAA8C;AAC9C,+DAA+D;AAE/D,cAAI,CAAC,GAAG,CAAC,0BAAc,CAAC,CAAC;AACzB,MAAM,EAAE,MAAM,EAAE,GAAG,cAAI,CAAC;AAExB,MAAM,aAAa,GACjB,8BAAc,CAAC,2BAAW,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC;AAC5C,MAAM,gCAAgC,GAAG,CAAC,CAAC;AAC3C,MAAM,yBAAyB,GAAG,CAAC,CAAC;AACpC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AACnC,MAAM,kCAAkC,GAAG,CAAC,CAAC;AAE7C,MAAM,gCAAgC,GAAG,CACvC,gBAAmC,EACnC,WAAoB,EACpB,EAAE;IACF,IAAI,cAAc,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IACpD,IAAI,iBAAiB,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;IAC1D,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE;QACpC,IACE,KAAK,CAAC,UAAU,KAAK,cAAc;YACnC,KAAK,CAAC,aAAa,KAAK,iBAAiB,EACzC;YACA,IAAI,WAAW,EAAE;gBACf,MAAM,IAAI,KAAK,CACb,6BAA6B,cAAc,mBAAmB,iBAAiB,EAAE,CAClF,CAAC;aACH;iBAAM;gBACL,sCAAsC;gBACtC,OAAO,CAAC,GAAG,CACT,6BAA6B,cAAc,mBAAmB,iBAAiB,EAAE,CAClF,CAAC;gBACF,iBAAiB,GAAG,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC;aACpE;SACF;aAAM;YACL,iBAAiB,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC;SAC/C;QAED,kFAAkF;QAClF,IAAI,iBAAiB,IAAI,KAAK,EAAE;YAC9B,0BAA0B;YAC1B,cAAc,IAAI,CAAC,CAAC;YACpB,iBAAiB,GAAG,CAAC,CAAC;SACvB;KACF;AACH,CAAC,CAAC;AAEF,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,EAAE,CAAC,gFAAgF,EAAE,KAAK,IAAI,EAAE;QAC9F,MAAM,QAAQ,GAAG,MAAM,IAAA,wCAAoB,EACzC,aAAa,EACb,CAAC,CACF,CAAC;QACF,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;QACpC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QACpD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CACrD,gCAAgC,CACjC,CAAC;QACF,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CACpD,yBAAyB,CAC1B,CAAC;QACF,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CACnD,wBAAwB,CACzB,CAAC;QACF,MAAM,CAAC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAC7D,kCAAkC,CACnC,CAAC;QAEF,MAAM,WAAW,GAAG,IAAI,CAAC;QACzB,gCAAgC,CAAC,QAAQ,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC","sourcesContent":["import { Chain, CommitmentEvent } from '@matrix-privacy/engine';\nimport { NetworkName, NETWORK_CONFIG } from '@matrix-privacy/shared-models';\nimport chai from 'chai';\nimport chaiAsPromised from 'chai-as-promised';\nimport { quickSyncEventsGraph } from '../../quick-sync-events';\n\nchai.use(chaiAsPromised);\nconst { expect } = chai;\n\nconst HARDHAT_CHAIN: Chain =\n NETWORK_CONFIG[NetworkName.Hardhat].chain;\nconst EXPECTED_COMMITMENT_GROUP_EVENTS = 1;\nconst EXPECTED_NULLIFIER_EVENTS = 1;\nconst EXPECTED_UNSHIELD_EVENTS = 1;\nconst EXPECTED_MATRIX_TRANSACTION_EVENTS = 1;\n\nconst assertContiguousCommitmentEvents = (\n commitmentEvents: CommitmentEvent[],\n shouldThrow: boolean,\n) => {\n let nextTreeNumber = commitmentEvents[0].treeNumber;\n let nextStartPosition = commitmentEvents[0].startPosition;\n for (const event of commitmentEvents) {\n if (\n event.treeNumber !== nextTreeNumber ||\n event.startPosition !== nextStartPosition\n ) {\n if (shouldThrow) {\n throw new Error(\n `Could not find treeNumber ${nextTreeNumber}, startPosition ${nextStartPosition}`,\n );\n } else {\n // eslint-disable-next-line no-console\n console.log(\n `Could not find treeNumber ${nextTreeNumber}, startPosition ${nextStartPosition}`,\n );\n nextStartPosition = event.startPosition + event.commitments.length;\n }\n } else {\n nextStartPosition += event.commitments.length;\n }\n\n // TODO: This logic may need an update if the tree is less than 65536 commitments.\n if (nextStartPosition >= 65536) {\n // Roll over to next tree.\n nextTreeNumber += 1;\n nextStartPosition = 0;\n }\n }\n};\n\ndescribe('quick-sync-events-graph-v3', () => {\n it('[V3] Should make sure Graph V3 query has no data gaps in commitments - Hardhat', async () => {\n const eventLog = await quickSyncEventsGraph(\n HARDHAT_CHAIN,\n 0,\n );\n expect(eventLog).to.be.an('object');\n expect(eventLog.commitmentEvents).to.be.an('array');\n expect(eventLog.commitmentEvents.length).to.be.at.least(\n EXPECTED_COMMITMENT_GROUP_EVENTS,\n );\n expect(eventLog.nullifierEvents.length).to.be.at.least(\n EXPECTED_NULLIFIER_EVENTS,\n );\n expect(eventLog.unshieldEvents.length).to.be.at.least(\n EXPECTED_UNSHIELD_EVENTS,\n );\n expect(eventLog.matrixTransactionEvents?.length).to.be.at.least(\n EXPECTED_MATRIX_TRANSACTION_EVENTS,\n );\n\n const shouldThrow = true;\n assertContiguousCommitmentEvents(eventLog.commitmentEvents, shouldThrow);\n }).timeout(45_000);\n});\n"]}
@@ -0,0 +1,8 @@
1
+ import { Nullifier, UnshieldStoredEvent, CommitmentEvent } from '@matrix-privacy/engine';
2
+ import { Nullifier as GraphNullifierV3, Unshield as GraphUnshieldV3, ShieldCommitment as GraphShieldCommitmentV3, TransactCommitment as GraphTransactCommitmentV3, MatrixTransaction as GraphMatrixTransactionV3 } from './graphql';
3
+ export type GraphCommitmentV3 = GraphShieldCommitmentV3 | GraphTransactCommitmentV3;
4
+ export type MatrixTxidMapV3 = MapType<string[]>;
5
+ export declare const formatGraphMatrixTransactionEventsV3: (matrixTransactions: GraphMatrixTransactionV3[]) => import("@matrix-privacy/engine").MatrixTransaction[];
6
+ export declare const formatGraphNullifierEventsV3: (nullifiers: GraphNullifierV3[]) => Nullifier[];
7
+ export declare const formatGraphUnshieldEventsV3: (unshields: GraphUnshieldV3[], matrixTxidMap: MatrixTxidMapV3) => UnshieldStoredEvent[];
8
+ export declare const formatGraphCommitmentEventsV3: (commitments: GraphCommitmentV3[], matrixTxidMap: MatrixTxidMapV3) => CommitmentEvent[];
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatGraphCommitmentEventsV3 = exports.formatGraphUnshieldEventsV3 = exports.formatGraphNullifierEventsV3 = exports.formatGraphMatrixTransactionEventsV3 = void 0;
4
+ const engine_1 = require("@matrix-privacy/engine");
5
+ const shared_formatters_1 = require("../shared-formatters");
6
+ const formatGraphMatrixTransactionEventsV3 = (matrixTransactions) => {
7
+ return matrixTransactions.map(matrixTransaction => {
8
+ return engine_1.MatrixEvents.formatMatrixTransactionEvent(matrixTransaction.transactionHash, Number(matrixTransaction.blockNumber), matrixTransaction.commitments, matrixTransaction.nullifiers, {
9
+ npk: matrixTransaction.unshieldToAddress,
10
+ token: {
11
+ tokenType: BigInt((0, shared_formatters_1.graphTokenTypeToEngineTokenType)(matrixTransaction.unshieldToken.tokenType)),
12
+ tokenAddress: matrixTransaction.unshieldToken.tokenAddress,
13
+ tokenSubID: BigInt(matrixTransaction.unshieldToken.tokenSubID),
14
+ },
15
+ value: BigInt(matrixTransaction.unshieldValue),
16
+ }, matrixTransaction.boundParamsHash, Number(matrixTransaction.utxoTreeIn), Number(matrixTransaction.utxoTreeOut), Number(matrixTransaction.utxoBatchStartPositionOut), matrixTransaction.verificationHash);
17
+ });
18
+ };
19
+ exports.formatGraphMatrixTransactionEventsV3 = formatGraphMatrixTransactionEventsV3;
20
+ const formatGraphNullifierEventsV3 = (nullifiers) => {
21
+ return nullifiers.map(nullifier => {
22
+ return {
23
+ txid: (0, shared_formatters_1.formatTo32Bytes)(nullifier.transactionHash, false),
24
+ nullifier: (0, shared_formatters_1.formatTo32Bytes)(nullifier.nullifier, false),
25
+ treeNumber: nullifier.treeNumber,
26
+ blockNumber: Number(nullifier.blockNumber),
27
+ spentMatrixTxid: undefined,
28
+ };
29
+ });
30
+ };
31
+ exports.formatGraphNullifierEventsV3 = formatGraphNullifierEventsV3;
32
+ const getUnshieldCommitmentHash = (npk, tokenAddress, tokenType, tokenSubID, value) => {
33
+ return (0, engine_1.getNoteHash)(npk, (0, engine_1.serializeTokenData)(tokenAddress, tokenType, tokenSubID.toString()), value);
34
+ };
35
+ const formatGraphUnshieldEventsV3 = (unshields, matrixTxidMap) => {
36
+ return unshields.map(unshield => {
37
+ const unshieldCommitmentHash = engine_1.ByteUtils.nToHex(getUnshieldCommitmentHash(unshield.to, unshield.token.tokenAddress, BigInt((0, shared_formatters_1.graphTokenTypeToEngineTokenType)(unshield.token.tokenType)), BigInt(unshield.token.tokenSubID), BigInt(unshield.value)), engine_1.ByteLength.UINT_256, true);
38
+ const matrixTxid = getMatrixTxid(matrixTxidMap, [
39
+ unshieldCommitmentHash,
40
+ ]);
41
+ return engine_1.MatrixEvents.formatUnshieldEvent(unshield.transactionHash, Number(unshield.blockNumber), {
42
+ npk: unshield.to,
43
+ token: {
44
+ tokenType: BigInt((0, shared_formatters_1.graphTokenTypeToEngineTokenType)(unshield.token.tokenType)),
45
+ tokenAddress: unshield.token.tokenAddress,
46
+ tokenSubID: BigInt(unshield.token.tokenSubID),
47
+ },
48
+ value: BigInt(unshield.value),
49
+ }, Number(unshield.transactIndex), BigInt(unshield.fee));
50
+ });
51
+ };
52
+ exports.formatGraphUnshieldEventsV3 = formatGraphUnshieldEventsV3;
53
+ const formatGraphCommitmentEventsV3 = (commitments, matrixTxidMap) => {
54
+ return commitments.map(commitment => {
55
+ return formatGraphCommitmentEventV3(commitment, matrixTxidMap);
56
+ });
57
+ };
58
+ exports.formatGraphCommitmentEventsV3 = formatGraphCommitmentEventsV3;
59
+ const formatGraphCommitmentEventV3 = (commitment, matrixTxidMap) => {
60
+ switch (commitment.commitmentType) {
61
+ case 'LegacyGeneratedCommitment':
62
+ case 'LegacyEncryptedCommitment':
63
+ throw new Error('Not possible in V3');
64
+ case 'ShieldCommitment':
65
+ return formatShieldCommitmentEvent(commitment);
66
+ case 'TransactCommitment': {
67
+ const matrixTxid = getMatrixTxid(matrixTxidMap, commitment.hashes);
68
+ return formatTransactCommitmentEvent(commitment, matrixTxid);
69
+ }
70
+ }
71
+ };
72
+ const getMatrixTxid = (matrixTxidMap, commitments) => {
73
+ const matrixTxids = Object.keys(matrixTxidMap);
74
+ for (const matrixTxid of matrixTxids) {
75
+ const matrixTxidCommitments = matrixTxidMap[matrixTxid];
76
+ if (!matrixTxidCommitments) {
77
+ continue;
78
+ }
79
+ const hasAllCommitments = commitments.every(commitment => matrixTxidCommitments.includes(commitment));
80
+ if (hasAllCommitments) {
81
+ return matrixTxid;
82
+ }
83
+ }
84
+ throw new Error('matrixTxid not found including all transact commitments');
85
+ };
86
+ const formatShieldCommitmentEvent = (commitment) => {
87
+ return engine_1.MatrixEvents.formatShieldEvent(commitment.transactionHash, Number(commitment.blockNumber), commitment.from, {
88
+ npk: commitment.preimage.npk,
89
+ token: {
90
+ tokenType: BigInt((0, shared_formatters_1.graphTokenTypeToEngineTokenType)(commitment.preimage.token.tokenType)),
91
+ tokenAddress: commitment.preimage.token.tokenAddress,
92
+ tokenSubID: BigInt(commitment.preimage.token.tokenSubID),
93
+ },
94
+ value: BigInt(commitment.preimage.value),
95
+ }, {
96
+ encryptedBundle: commitment.encryptedBundle,
97
+ shieldKey: commitment.shieldKey,
98
+ }, commitment.treeNumber, commitment.treePosition, BigInt(commitment.fee));
99
+ };
100
+ const formatTransactCommitmentEvent = (commitment, matrixTxid) => {
101
+ return engine_1.MatrixEvents.formatTransactEvent(commitment.transactionHash, Number(commitment.blockNumber), commitment.hashes, commitment.commitmentCiphertexts, commitment.treeNumber, commitment.batchStartTreePosition, commitment.transactIndex, commitment.senderCiphertext, matrixTxid);
102
+ };
103
+ //# sourceMappingURL=graph-type-formatters-v3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-type-formatters-v3.js","sourceRoot":"","sources":["../../../../../src/services/matrix/quick-sync/V3/graph-type-formatters-v3.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Nullifier,\n UnshieldStoredEvent,\n CommitmentEvent,\n MatrixEvents,\n getNoteHash,\n serializeTokenData,\n ByteLength,\n ByteUtils,\n} from '@matrix-privacy/engine';\nimport {\n Nullifier as GraphNullifierV3,\n Unshield as GraphUnshieldV3,\n ShieldCommitment as GraphShieldCommitmentV3,\n TransactCommitment as GraphTransactCommitmentV3,\n MatrixTransaction as GraphMatrixTransactionV3,\n} from './graphql';\nimport {\n formatTo32Bytes,\n graphTokenTypeToEngineTokenType,\n} from '../shared-formatters';\n\nexport type GraphCommitmentV3 =\n | GraphShieldCommitmentV3\n | GraphTransactCommitmentV3;\n\nexport type MatrixTxidMapV3 = MapType<string[]>;\n\nexport const formatGraphMatrixTransactionEventsV3 = (\n matrixTransactions: GraphMatrixTransactionV3[],\n) => {\n return matrixTransactions.map(matrixTransaction => {\n return MatrixEvents.formatMatrixTransactionEvent(\n matrixTransaction.transactionHash,\n Number(matrixTransaction.blockNumber),\n matrixTransaction.commitments,\n matrixTransaction.nullifiers,\n {\n npk: matrixTransaction.unshieldToAddress,\n token: {\n tokenType: BigInt(\n graphTokenTypeToEngineTokenType(\n matrixTransaction.unshieldToken.tokenType,\n ),\n ),\n tokenAddress: matrixTransaction.unshieldToken.tokenAddress,\n tokenSubID: BigInt(matrixTransaction.unshieldToken.tokenSubID),\n },\n value: BigInt(matrixTransaction.unshieldValue),\n },\n matrixTransaction.boundParamsHash,\n Number(matrixTransaction.utxoTreeIn),\n Number(matrixTransaction.utxoTreeOut),\n Number(matrixTransaction.utxoBatchStartPositionOut),\n matrixTransaction.verificationHash,\n );\n });\n};\n\nexport const formatGraphNullifierEventsV3 = (\n nullifiers: GraphNullifierV3[],\n): Nullifier[] => {\n return nullifiers.map(nullifier => {\n return {\n txid: formatTo32Bytes(nullifier.transactionHash, false),\n nullifier: formatTo32Bytes(nullifier.nullifier, false),\n treeNumber: nullifier.treeNumber,\n blockNumber: Number(nullifier.blockNumber),\n spentMatrixTxid: undefined,\n };\n });\n};\n\nconst getUnshieldCommitmentHash = (\n npk: string,\n tokenAddress: string,\n tokenType: bigint,\n tokenSubID: bigint,\n value: bigint,\n) => {\n return getNoteHash(\n npk,\n serializeTokenData(tokenAddress, tokenType, tokenSubID.toString()),\n value,\n );\n};\n\nexport const formatGraphUnshieldEventsV3 = (\n unshields: GraphUnshieldV3[],\n matrixTxidMap: MatrixTxidMapV3,\n): UnshieldStoredEvent[] => {\n return unshields.map(unshield => {\n const unshieldCommitmentHash = ByteUtils.nToHex(\n getUnshieldCommitmentHash(\n unshield.to,\n unshield.token.tokenAddress,\n BigInt(graphTokenTypeToEngineTokenType(unshield.token.tokenType)),\n BigInt(unshield.token.tokenSubID),\n BigInt(unshield.value),\n ),\n ByteLength.UINT_256,\n true,\n );\n const matrixTxid = getMatrixTxid(matrixTxidMap, [\n unshieldCommitmentHash,\n ]);\n return MatrixEvents.formatUnshieldEvent(\n unshield.transactionHash,\n Number(unshield.blockNumber),\n {\n npk: unshield.to,\n token: {\n tokenType: BigInt(\n graphTokenTypeToEngineTokenType(unshield.token.tokenType),\n ),\n tokenAddress: unshield.token.tokenAddress,\n tokenSubID: BigInt(unshield.token.tokenSubID),\n },\n value: BigInt(unshield.value),\n },\n Number(unshield.transactIndex),\n BigInt(unshield.fee),\n );\n });\n};\n\nexport const formatGraphCommitmentEventsV3 = (\n commitments: GraphCommitmentV3[],\n matrixTxidMap: MatrixTxidMapV3,\n): CommitmentEvent[] => {\n return commitments.map(commitment => {\n return formatGraphCommitmentEventV3(commitment, matrixTxidMap);\n });\n};\n\nconst formatGraphCommitmentEventV3 = (\n commitment: GraphCommitmentV3,\n matrixTxidMap: MatrixTxidMapV3,\n): CommitmentEvent => {\n switch (commitment.commitmentType) {\n case 'LegacyGeneratedCommitment':\n case 'LegacyEncryptedCommitment':\n throw new Error('Not possible in V3');\n case 'ShieldCommitment':\n return formatShieldCommitmentEvent(commitment as GraphShieldCommitmentV3);\n case 'TransactCommitment': {\n const matrixTxid = getMatrixTxid(matrixTxidMap, commitment.hashes);\n return formatTransactCommitmentEvent(\n commitment as GraphTransactCommitmentV3,\n matrixTxid,\n );\n }\n }\n};\n\nconst getMatrixTxid = (\n matrixTxidMap: MatrixTxidMapV3,\n commitments: string[],\n): string => {\n const matrixTxids = Object.keys(matrixTxidMap);\n for (const matrixTxid of matrixTxids) {\n const matrixTxidCommitments = matrixTxidMap[matrixTxid];\n if (!matrixTxidCommitments) {\n continue;\n }\n const hasAllCommitments = commitments.every(commitment =>\n matrixTxidCommitments.includes(commitment),\n );\n if (hasAllCommitments) {\n return matrixTxid;\n }\n }\n throw new Error('matrixTxid not found including all transact commitments');\n};\n\nconst formatShieldCommitmentEvent = (\n commitment: GraphShieldCommitmentV3,\n): CommitmentEvent => {\n return MatrixEvents.formatShieldEvent(\n commitment.transactionHash,\n Number(commitment.blockNumber),\n commitment.from,\n {\n npk: commitment.preimage.npk,\n token: {\n tokenType: BigInt(\n graphTokenTypeToEngineTokenType(commitment.preimage.token.tokenType),\n ),\n tokenAddress: commitment.preimage.token.tokenAddress,\n tokenSubID: BigInt(commitment.preimage.token.tokenSubID),\n },\n value: BigInt(commitment.preimage.value),\n },\n {\n encryptedBundle: commitment.encryptedBundle as [string, string, string],\n shieldKey: commitment.shieldKey,\n },\n commitment.treeNumber,\n commitment.treePosition,\n BigInt(commitment.fee),\n );\n};\n\nconst formatTransactCommitmentEvent = (\n commitment: GraphTransactCommitmentV3,\n matrixTxid: string,\n): CommitmentEvent => {\n return MatrixEvents.formatTransactEvent(\n commitment.transactionHash,\n Number(commitment.blockNumber),\n commitment.hashes,\n commitment.commitmentCiphertexts,\n commitment.treeNumber,\n commitment.batchStartTreePosition,\n commitment.transactIndex,\n commitment.senderCiphertext,\n matrixTxid,\n );\n};\n"]}
@@ -0,0 +1,2 @@
1
+ declare const _default: import("graphql").GraphQLSchema;
2
+ export default _default;