dop-wallet-v6 1.2.3 → 1.2.4

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 (213) hide show
  1. package/dist/services/artifacts/__tests__/artifact-downloader.test.js.map +1 -1
  2. package/dist/services/artifacts/artifact-downloader.d.ts +1 -1
  3. package/dist/services/artifacts/artifact-downloader.js +1 -1
  4. package/dist/services/artifacts/artifact-downloader.js.map +1 -1
  5. package/dist/services/artifacts/artifact-hash.d.ts +1 -1
  6. package/dist/services/artifacts/artifact-hash.js +2 -2
  7. package/dist/services/artifacts/artifact-hash.js.map +1 -1
  8. package/dist/services/artifacts/artifact-util.d.ts +1 -1
  9. package/dist/services/artifacts/artifact-util.js +1 -1
  10. package/dist/services/artifacts/artifact-util.js.map +1 -1
  11. package/dist/services/dop/core/__tests__/providers.test.js +4 -4
  12. package/dist/services/dop/core/__tests__/providers.test.js.map +1 -1
  13. package/dist/services/dop/core/artifacts.d.ts +2 -2
  14. package/dist/services/dop/core/artifacts.js +1 -1
  15. package/dist/services/dop/core/artifacts.js.map +1 -1
  16. package/dist/services/dop/core/encrypts.d.ts +1 -1
  17. package/dist/services/dop/core/encrypts.js +2 -2
  18. package/dist/services/dop/core/encrypts.js.map +1 -1
  19. package/dist/services/dop/core/engine.d.ts +1 -1
  20. package/dist/services/dop/core/engine.js +1 -1
  21. package/dist/services/dop/core/engine.js.map +1 -1
  22. package/dist/services/dop/core/init.d.ts +2 -2
  23. package/dist/services/dop/core/init.js +2 -2
  24. package/dist/services/dop/core/init.js.map +1 -1
  25. package/dist/services/dop/core/load-provider.d.ts +1 -1
  26. package/dist/services/dop/core/load-provider.js +2 -2
  27. package/dist/services/dop/core/load-provider.js.map +1 -1
  28. package/dist/services/dop/core/merkletree.d.ts +3 -3
  29. package/dist/services/dop/core/merkletree.js +2 -2
  30. package/dist/services/dop/core/merkletree.js.map +1 -1
  31. package/dist/services/dop/core/prover.d.ts +1 -1
  32. package/dist/services/dop/core/prover.js +1 -1
  33. package/dist/services/dop/core/prover.js.map +1 -1
  34. package/dist/services/dop/core/providers.d.ts +2 -2
  35. package/dist/services/dop/core/providers.js +1 -1
  36. package/dist/services/dop/core/providers.js.map +1 -1
  37. package/dist/services/dop/dop-txids/__tests__/dop-txid-sync-graph-v2.test.js +1 -1
  38. package/dist/services/dop/dop-txids/__tests__/dop-txid-sync-graph-v2.test.js.map +1 -1
  39. package/dist/services/dop/dop-txids/blinded-commitments.d.ts +1 -1
  40. package/dist/services/dop/dop-txids/blinded-commitments.js +1 -1
  41. package/dist/services/dop/dop-txids/blinded-commitments.js.map +1 -1
  42. package/dist/services/dop/dop-txids/dop-txid-graph-type-formatters.d.ts +1 -1
  43. package/dist/services/dop/dop-txids/dop-txid-graph-type-formatters.js +1 -1
  44. package/dist/services/dop/dop-txids/dop-txid-graph-type-formatters.js.map +1 -1
  45. package/dist/services/dop/dop-txids/dop-txid-merkletrees.d.ts +1 -1
  46. package/dist/services/dop/dop-txids/dop-txid-merkletrees.js +1 -1
  47. package/dist/services/dop/dop-txids/dop-txid-merkletrees.js.map +1 -1
  48. package/dist/services/dop/dop-txids/dop-txid-sync-graph-v2.d.ts +1 -1
  49. package/dist/services/dop/dop-txids/dop-txid-sync-graph-v2.js +2 -2
  50. package/dist/services/dop/dop-txids/dop-txid-sync-graph-v2.js.map +1 -1
  51. package/dist/services/dop/dop-txids/graphql/index.js +1 -1
  52. package/dist/services/dop/dop-txids/graphql/index.js.map +1 -1
  53. package/dist/services/dop/history/transaction-history.d.ts +2 -2
  54. package/dist/services/dop/history/transaction-history.js +2 -2
  55. package/dist/services/dop/history/transaction-history.js.map +1 -1
  56. package/dist/services/dop/index.d.ts +1 -0
  57. package/dist/services/dop/index.js +1 -0
  58. package/dist/services/dop/index.js.map +1 -1
  59. package/dist/services/dop/process/extract-transaction-data.d.ts +1 -1
  60. package/dist/services/dop/process/extract-transaction-data.js +1 -1
  61. package/dist/services/dop/process/extract-transaction-data.js.map +1 -1
  62. package/dist/services/dop/profile/__tests__/profile-manager.test.d.ts +1 -0
  63. package/dist/services/dop/profile/__tests__/profile-manager.test.js +170 -0
  64. package/dist/services/dop/profile/__tests__/profile-manager.test.js.map +1 -0
  65. package/dist/services/dop/profile/__tests__/selective-transparency.test.d.ts +1 -0
  66. package/dist/services/dop/profile/__tests__/selective-transparency.test.js +256 -0
  67. package/dist/services/dop/profile/__tests__/selective-transparency.test.js.map +1 -0
  68. package/dist/services/dop/profile/__tests__/storage.test.d.ts +1 -0
  69. package/dist/services/dop/profile/__tests__/storage.test.js +174 -0
  70. package/dist/services/dop/profile/__tests__/storage.test.js.map +1 -0
  71. package/dist/services/dop/profile/index.d.ts +3 -0
  72. package/dist/services/dop/profile/index.js +20 -0
  73. package/dist/services/dop/profile/index.js.map +1 -0
  74. package/dist/services/dop/profile/profile-manager.d.ts +32 -0
  75. package/dist/services/dop/profile/profile-manager.js +235 -0
  76. package/dist/services/dop/profile/profile-manager.js.map +1 -0
  77. package/dist/services/dop/profile/selective-transparency.d.ts +82 -0
  78. package/dist/services/dop/profile/selective-transparency.js +447 -0
  79. package/dist/services/dop/profile/selective-transparency.js.map +1 -0
  80. package/dist/services/dop/profile/storage.d.ts +27 -0
  81. package/dist/services/dop/profile/storage.js +648 -0
  82. package/dist/services/dop/profile/storage.js.map +1 -0
  83. package/dist/services/dop/profile/types.d.ts +106 -0
  84. package/dist/services/dop/profile/types.js +3 -0
  85. package/dist/services/dop/profile/types.js.map +1 -0
  86. package/dist/services/dop/profile/usage-example.d.ts +11 -0
  87. package/dist/services/dop/profile/usage-example.js +143 -0
  88. package/dist/services/dop/profile/usage-example.js.map +1 -0
  89. package/dist/services/dop/quick-sync/V2/__tests__/quick-sync-events-graph-v2.test.js +2 -2
  90. package/dist/services/dop/quick-sync/V2/__tests__/quick-sync-events-graph-v2.test.js.map +1 -1
  91. package/dist/services/dop/quick-sync/V2/graph-type-formatters-v2.d.ts +1 -1
  92. package/dist/services/dop/quick-sync/V2/graph-type-formatters-v2.js +2 -2
  93. package/dist/services/dop/quick-sync/V2/graph-type-formatters-v2.js.map +1 -1
  94. package/dist/services/dop/quick-sync/V2/graphql/index.js +1 -1
  95. package/dist/services/dop/quick-sync/V2/graphql/index.js.map +1 -1
  96. package/dist/services/dop/quick-sync/V2/quick-sync-events-graph-v2.d.ts +1 -1
  97. package/dist/services/dop/quick-sync/V2/quick-sync-events-graph-v2.js +1 -1
  98. package/dist/services/dop/quick-sync/V2/quick-sync-events-graph-v2.js.map +1 -1
  99. package/dist/services/dop/quick-sync/V3/__tests__/quick-sync-events-graph-v3.test.js +2 -2
  100. package/dist/services/dop/quick-sync/V3/__tests__/quick-sync-events-graph-v3.test.js.map +1 -1
  101. package/dist/services/dop/quick-sync/V3/graph-type-formatters-v3.d.ts +2 -2
  102. package/dist/services/dop/quick-sync/V3/graph-type-formatters-v3.js +1 -1
  103. package/dist/services/dop/quick-sync/V3/graph-type-formatters-v3.js.map +1 -1
  104. package/dist/services/dop/quick-sync/V3/quick-sync-events-graph-v3.d.ts +1 -1
  105. package/dist/services/dop/quick-sync/V3/quick-sync-events-graph-v3.js +2 -2
  106. package/dist/services/dop/quick-sync/V3/quick-sync-events-graph-v3.js.map +1 -1
  107. package/dist/services/dop/quick-sync/graph-query.d.ts +1 -1
  108. package/dist/services/dop/quick-sync/graph-query.js +1 -1
  109. package/dist/services/dop/quick-sync/graph-query.js.map +1 -1
  110. package/dist/services/dop/quick-sync/quick-sync-events.d.ts +2 -2
  111. package/dist/services/dop/quick-sync/quick-sync-events.js.map +1 -1
  112. package/dist/services/dop/quick-sync/shared-formatters.d.ts +1 -1
  113. package/dist/services/dop/quick-sync/shared-formatters.js +1 -1
  114. package/dist/services/dop/quick-sync/shared-formatters.js.map +1 -1
  115. package/dist/services/dop/util/__tests__/bytes-util.test.js +1 -1
  116. package/dist/services/dop/util/__tests__/bytes-util.test.js.map +1 -1
  117. package/dist/services/dop/util/bytes.d.ts +1 -1
  118. package/dist/services/dop/util/bytes.js +1 -1
  119. package/dist/services/dop/util/bytes.js.map +1 -1
  120. package/dist/services/dop/util/crypto.d.ts +2 -2
  121. package/dist/services/dop/util/crypto.js +1 -1
  122. package/dist/services/dop/util/crypto.js.map +1 -1
  123. package/dist/services/dop/wallets/__tests__/balances-live.test.js +1 -1
  124. package/dist/services/dop/wallets/__tests__/balances-live.test.js.map +1 -1
  125. package/dist/services/dop/wallets/__tests__/balances-update.test.js +2 -2
  126. package/dist/services/dop/wallets/__tests__/balances-update.test.js.map +1 -1
  127. package/dist/services/dop/wallets/__tests__/balances.test.js +2 -2
  128. package/dist/services/dop/wallets/__tests__/balances.test.js.map +1 -1
  129. package/dist/services/dop/wallets/__tests__/wallets.test.js +1 -1
  130. package/dist/services/dop/wallets/__tests__/wallets.test.js.map +1 -1
  131. package/dist/services/dop/wallets/balance-update.d.ts +2 -2
  132. package/dist/services/dop/wallets/balance-update.js +2 -2
  133. package/dist/services/dop/wallets/balance-update.js.map +1 -1
  134. package/dist/services/dop/wallets/balances.d.ts +1 -1
  135. package/dist/services/dop/wallets/balances.js.map +1 -1
  136. package/dist/services/dop/wallets/wallets.d.ts +2 -2
  137. package/dist/services/dop/wallets/wallets.js +2 -2
  138. package/dist/services/dop/wallets/wallets.js.map +1 -1
  139. package/dist/services/ethers/ethers-util.js +1 -1
  140. package/dist/services/ethers/ethers-util.js.map +1 -1
  141. package/dist/services/transactions/__tests__/proof-cache.test.js +1 -1
  142. package/dist/services/transactions/__tests__/proof-cache.test.js.map +1 -1
  143. package/dist/services/transactions/__tests__/tx-cross-contract-calls.test.js +8 -8
  144. package/dist/services/transactions/__tests__/tx-cross-contract-calls.test.js.map +1 -1
  145. package/dist/services/transactions/__tests__/tx-encrypt-base-token.test.js +2 -2
  146. package/dist/services/transactions/__tests__/tx-encrypt-base-token.test.js.map +1 -1
  147. package/dist/services/transactions/__tests__/tx-gas-details.test.js +1 -1
  148. package/dist/services/transactions/__tests__/tx-gas-details.test.js.map +1 -1
  149. package/dist/services/transactions/__tests__/tx-notes.test.js +1 -1
  150. package/dist/services/transactions/__tests__/tx-notes.test.js.map +1 -1
  151. package/dist/services/transactions/__tests__/tx-transfer.test.js +11 -11
  152. package/dist/services/transactions/__tests__/tx-transfer.test.js.map +1 -1
  153. package/dist/services/transactions/proof-cache.d.ts +1 -1
  154. package/dist/services/transactions/proof-cache.js +1 -1
  155. package/dist/services/transactions/proof-cache.js.map +1 -1
  156. package/dist/services/transactions/tx-cross-contract-calls.d.ts +2 -2
  157. package/dist/services/transactions/tx-cross-contract-calls.js +2 -2
  158. package/dist/services/transactions/tx-cross-contract-calls.js.map +1 -1
  159. package/dist/services/transactions/tx-decrypt.d.ts +1 -1
  160. package/dist/services/transactions/tx-decrypt.js +2 -2
  161. package/dist/services/transactions/tx-decrypt.js.map +1 -1
  162. package/dist/services/transactions/tx-encrypt-base-token.d.ts +1 -1
  163. package/dist/services/transactions/tx-encrypt-base-token.js +2 -2
  164. package/dist/services/transactions/tx-encrypt-base-token.js.map +1 -1
  165. package/dist/services/transactions/tx-encrypt.d.ts +1 -1
  166. package/dist/services/transactions/tx-encrypt.js +2 -2
  167. package/dist/services/transactions/tx-encrypt.js.map +1 -1
  168. package/dist/services/transactions/tx-gas-broadcaster-fee-estimator.d.ts +2 -2
  169. package/dist/services/transactions/tx-gas-broadcaster-fee-estimator.js +2 -2
  170. package/dist/services/transactions/tx-gas-broadcaster-fee-estimator.js.map +1 -1
  171. package/dist/services/transactions/tx-gas-details.d.ts +1 -1
  172. package/dist/services/transactions/tx-gas-details.js +2 -2
  173. package/dist/services/transactions/tx-gas-details.js.map +1 -1
  174. package/dist/services/transactions/tx-generator.d.ts +2 -2
  175. package/dist/services/transactions/tx-generator.js +2 -2
  176. package/dist/services/transactions/tx-generator.js.map +1 -1
  177. package/dist/services/transactions/tx-notes.d.ts +2 -2
  178. package/dist/services/transactions/tx-notes.js +2 -2
  179. package/dist/services/transactions/tx-notes.js.map +1 -1
  180. package/dist/services/transactions/tx-nullifiers.d.ts +1 -1
  181. package/dist/services/transactions/tx-nullifiers.js.map +1 -1
  182. package/dist/services/transactions/tx-proof-decrypt.d.ts +1 -1
  183. package/dist/services/transactions/tx-proof-decrypt.js +2 -2
  184. package/dist/services/transactions/tx-proof-decrypt.js.map +1 -1
  185. package/dist/services/transactions/tx-proof-transfer.d.ts +1 -1
  186. package/dist/services/transactions/tx-proof-transfer.js +1 -1
  187. package/dist/services/transactions/tx-proof-transfer.js.map +1 -1
  188. package/dist/services/transactions/tx-transfer.d.ts +1 -1
  189. package/dist/services/transactions/tx-transfer.js +1 -1
  190. package/dist/services/transactions/tx-transfer.js.map +1 -1
  191. package/dist/tests/helper.test.d.ts +1 -1
  192. package/dist/tests/helper.test.js +1 -1
  193. package/dist/tests/helper.test.js.map +1 -1
  194. package/dist/tests/mocks.test.d.ts +2 -2
  195. package/dist/tests/mocks.test.js +1 -1
  196. package/dist/tests/mocks.test.js.map +1 -1
  197. package/dist/tests/poi/test-wallet-poi-requester.test.d.ts +2 -2
  198. package/dist/tests/poi/test-wallet-poi-requester.test.js.map +1 -1
  199. package/dist/tests/setup.test.d.ts +2 -2
  200. package/dist/tests/setup.test.js +1 -1
  201. package/dist/tests/setup.test.js.map +1 -1
  202. package/dist/tests/stubs/engine-stubs.test.d.ts +1 -1
  203. package/dist/tests/stubs/engine-stubs.test.js +1 -1
  204. package/dist/tests/stubs/engine-stubs.test.js.map +1 -1
  205. package/dist/utils/blocked-address.js +1 -1
  206. package/dist/utils/blocked-address.js.map +1 -1
  207. package/dist/utils/error.js +1 -1
  208. package/dist/utils/error.js.map +1 -1
  209. package/dist/utils/gas-price.d.ts +1 -1
  210. package/dist/utils/gas-price.js +1 -1
  211. package/dist/utils/gas-price.js.map +1 -1
  212. package/package.json +13 -3
  213. package/postinstall.js +1 -1
@@ -9,7 +9,7 @@ const engine_1 = require("../../core/engine");
9
9
  const wallets_1 = require("../wallets");
10
10
  const mocks_test_1 = require("../../../../tests/mocks.test");
11
11
  const setup_test_1 = require("../../../../tests/setup.test");
12
- const dop_sharedmodels_v3_1 = require("dop-sharedmodels-v5");
12
+ const dop_sharedmodels_v3_1 = require("dop-sharedmodels-v3");
13
13
  chai_1.default.use(chai_as_promised_1.default);
14
14
  const { expect } = chai_1.default;
15
15
  let wallet;
@@ -1 +1 @@
1
- {"version":3,"file":"wallets.test.js","sourceRoot":"","sources":["../../../../../src/services/dop/wallets/__tests__/wallets.test.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AACxB,wEAA8C;AAC9C,8CAA8C;AAC9C,wCAWoB;AACpB,6DAGsC;AACtC,6DAIsC;AAEtC,6DAA6D;AAE7D,cAAI,CAAC,GAAG,CAAC,0BAAc,CAAC,CAAC;AACzB,MAAM,EAAE,MAAM,EAAE,GAAG,cAAI,CAAC;AAExB,IAAI,MAAiB,CAAC;AAEtB,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACvB,MAAM,CAAC,KAAK,UAAU,GAAG;QACvB,IAAI,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC;QACrB,MAAM,IAAA,2BAAc,GAAE,CAAC;QACvB,MAAM,IAAA,mCAAsB,GAAE,CAAC;QAC/B,MAAM,aAAa,GAAG,MAAM,IAAA,yBAAe,EACzC,mCAAsB,EACtB,4BAAe,EACf,EAAE,CAAC,iCAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,iCAAW,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CACxD,CAAC;QACF,IAAI,CAAC,IAAA,+BAAS,EAAC,aAAa,CAAC,EAAE;YAC7B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;SAC5C;QACD,MAAM,GAAG,IAAA,yBAAe,EAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,IAAA,4BAAe,GAAE,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,aAAa,GAAG,MAAM,IAAA,iCAAuB,EACjD,mCAAsB,EACtB,MAAM,CAAC,2BAA2B,EAAE,EACpC,SAAS,CACV,CAAC;QACF,IAAI,CAAC,IAAA,+BAAS,EAAC,aAAa,CAAC,EAAE;YAC7B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;SACtD;QACD,MAAM,cAAc,GAAG,IAAA,6BAAmB,EAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAC7D,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC;QAC3C,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC;IAEnB,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,UAAU,GAAG,IAAA,uBAAa,EAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5C,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CACzB,iIAAiI,CAClI,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,YAAY,GAAG,MAAM,IAAA,sCAA4B,EAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACnE,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,KAAK,CAC3B,kSAAkS,CACnS,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAC1C,MAAM,QAAQ,GAAG,MAAM,IAAA,2BAAiB,EAAC,mCAAsB,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5E,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,4BAAe,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,aAAa,GAAG,MAAM,IAAA,yBAAe,EACzC,mCAAsB,EACtB,4BAAe,EACf,SAAS,CACV,CAAC;QACF,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACnD,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAE7C,MAAM,cAAc,GAAG,MAAM,IAAA,wBAAc,EACzC,mCAAsB,EACtB,aAAa,CAAC,EAAE,EAChB,KAAK,CACN,CAAC;QACF,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACpD,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAA,kBAAS,GAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/D,IAAA,0BAAgB,EAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAA,kBAAS,GAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACnE,MAAM,aAAa,GAAG,MAAM,IAAA,wBAAc,EACxC,mCAAsB,EACtB,MAAM,CAAC,EAAE,EACT,KAAK,CACN,CAAC;QACF,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7C,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CACvC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAC7B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,MAAM,CACV,IAAA,wBAAc,EACZ,mCAAsB,EACtB,SAAS,EACT,KAAK,CACN,CACF,CAAC,YAAY,CAAC,2BAA2B,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,CAAC,IAAA,4BAAkB,EAAC,4CAA4C,CAAC,CAAC;aACrE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACf,MAAM,CAAC,IAAA,4BAAkB,EAAC,0CAA0C,CAAC,CAAC;aACnE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACf,MAAM,CACJ,IAAA,4BAAkB,EAChB,2EAA2E,CAC5E,CACF,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACd,MAAM,CACJ,IAAA,4BAAkB,EAChB,iIAAiI,CAClI,CACF,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACb,MAAM,CACJ,IAAA,4BAAkB,EAChB,iIAAiI,CAClI,CACF,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import chai from 'chai';\nimport chaiAsPromised from 'chai-as-promised';\nimport { getEngine } from '../../core/engine';\nimport {\n createDopWallet,\n createViewOnlyDopWallet,\n fullWalletForID,\n getDopAddress,\n getWalletMnemonic,\n getWalletShareableViewingKey,\n loadWalletByID,\n unloadWalletByID,\n validateDopAddress,\n viewOnlyWalletForID,\n} from '../wallets';\nimport {\n MOCK_DB_ENCRYPTION_KEY,\n MOCK_MNEMONIC_2,\n} from '../../../../tests/mocks.test';\nimport {\n closeTestEngine,\n initTestEngine,\n initTestEngineNetworks,\n} from '../../../../tests/setup.test';\nimport { DopWallet } from 'dop-engine-v5';\nimport { NetworkName, isDefined } from 'dop-sharedmodels-v5';\n\nchai.use(chaiAsPromised);\nconst { expect } = chai;\n\nlet wallet: DopWallet;\n\ndescribe('wallets', () => {\n before(async function run() {\n this.timeout(60_000);\n await initTestEngine();\n await initTestEngineNetworks();\n const dopWalletInfo = await createDopWallet(\n MOCK_DB_ENCRYPTION_KEY,\n MOCK_MNEMONIC_2,\n { [NetworkName.Ethereum]: 0, [NetworkName.Polygon]: 2 }, // creationBlockNumbers\n );\n if (!isDefined(dopWalletInfo)) {\n throw new Error(`Could not create wallet`);\n }\n wallet = fullWalletForID(dopWalletInfo.id);\n });\n after(async () => {\n await closeTestEngine();\n });\n\n it('Should create view only wallet', async () => {\n const dopWalletInfo = await createViewOnlyDopWallet(\n MOCK_DB_ENCRYPTION_KEY,\n wallet.generateShareableViewingKey(),\n undefined, // creationBlockNumbers\n );\n if (!isDefined(dopWalletInfo)) {\n throw new Error('Could not create view-only wallet');\n }\n const viewOnlyWallet = viewOnlyWalletForID(dopWalletInfo.id);\n expect(viewOnlyWallet).to.not.be.undefined;\n expect(dopWalletInfo.dopAddress).to.equal(wallet.getAddress());\n }).timeout(60_000);\n\n it('Should get wallet address', () => {\n const addressAny = getDopAddress(wallet.id);\n expect(addressAny).to.equal(\n '0zk1qykzjxctynyz4z43pukckpv43jyzhyvy0ehrd5wuc54l5enqf9qfrrv7j6fe3z53la7enqphqvxys9aqyp9xx0km95ehqslx8apmu8l7anc7emau4tvsultrkvd',\n );\n });\n\n it('Should get wallet shareable viewing key', async () => {\n const shareableKey = await getWalletShareableViewingKey(wallet.id);\n expect(shareableKey).to.equal(\n '82a57670726976d94032643030623234396632646337313236303565336263653364373665376631313931373933363436393365333931666566643963323764303161396262336433a473707562d94030633661376436386331663437303262613764666134613361353236323035303765386637366632393139326363666637653861366231303637393062316165',\n );\n });\n\n it('Should get wallet mnemonic', async () => {\n const mnemonic = await getWalletMnemonic(MOCK_DB_ENCRYPTION_KEY, wallet.id);\n expect(mnemonic).to.equal(MOCK_MNEMONIC_2);\n });\n\n it('Should create and load wallet from valid mnemonic', async () => {\n const dopWalletInfo = await createDopWallet(\n MOCK_DB_ENCRYPTION_KEY,\n MOCK_MNEMONIC_2,\n undefined, // creationBlockNumbers\n );\n expect(dopWalletInfo.dopAddress).to.be.a('string');\n expect(dopWalletInfo.id).to.equal(wallet.id);\n\n const loadWalletInfo = await loadWalletByID(\n MOCK_DB_ENCRYPTION_KEY,\n dopWalletInfo.id,\n false, // isViewOnlyWallet\n );\n expect(loadWalletInfo.dopAddress).to.be.a('string');\n expect(loadWalletInfo.id).to.equal(wallet.id);\n });\n\n it('Should load wallet from db after Engine wallet unload', async () => {\n expect(Object.keys(getEngine().wallets)).to.include(wallet.id);\n unloadWalletByID(wallet.id);\n expect(Object.keys(getEngine().wallets)).to.not.include(wallet.id);\n const dopWalletInfo = await loadWalletByID(\n MOCK_DB_ENCRYPTION_KEY,\n wallet.id,\n false, // isViewOnlyWallet\n );\n expect(dopWalletInfo.id).to.equal(wallet.id);\n expect(dopWalletInfo.dopAddress).to.equal(\n wallet.getAddress(undefined),\n );\n });\n\n it('Should error for unknown load wallet', async () => {\n await expect(\n loadWalletByID(\n MOCK_DB_ENCRYPTION_KEY,\n 'unknown',\n false, // isViewOnlyWallet\n ),\n ).rejectedWith('Could not load DOP wallet');\n });\n\n it('Should validate DOP addresses', async () => {\n expect(validateDopAddress('0x9E9F988356f46744Ee0374A17a5Fa1a3A3cC3777'))\n .to.be.false;\n expect(validateDopAddress('9E9F988356f46744Ee0374A17a5Fa1a3A3cC3777'))\n .to.be.false;\n expect(\n validateDopAddress(\n 'rgtestropsten1qyglk9smgj240x2xmj2laj7p5hexw0a30vvdqnv9gk020nsd7yzgwkgce9x',\n ),\n ).to.be.false;\n expect(\n validateDopAddress(\n '0zk1q8hxknrs97q8pjxaagwthzc0df99rzmhl2xnlxmgv9akv32sua0kfrv7j6fe3z53llhxknrs97q8pjxaagwthzc0df99rzmhl2xnlxmgv9akv32sua0kg0zpzts',\n ),\n ).to.be.true;\n expect(\n validateDopAddress(\n '0zk1qyqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqunpd9kxwatwqyqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqhshkca',\n ),\n ).to.be.true;\n });\n});\n"]}
1
+ {"version":3,"file":"wallets.test.js","sourceRoot":"","sources":["../../../../../src/services/dop/wallets/__tests__/wallets.test.ts"],"names":[],"mappings":"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","sourcesContent":["import chai from 'chai';\nimport chaiAsPromised from 'chai-as-promised';\nimport { getEngine } from '../../core/engine';\nimport {\n createDopWallet,\n createViewOnlyDopWallet,\n fullWalletForID,\n getDopAddress,\n getWalletMnemonic,\n getWalletShareableViewingKey,\n loadWalletByID,\n unloadWalletByID,\n validateDopAddress,\n viewOnlyWalletForID,\n} from '../wallets';\nimport {\n MOCK_DB_ENCRYPTION_KEY,\n MOCK_MNEMONIC_2,\n} from '../../../../tests/mocks.test';\nimport {\n closeTestEngine,\n initTestEngine,\n initTestEngineNetworks,\n} from '../../../../tests/setup.test';\nimport { DopWallet } from 'dop-engine-v3';\nimport { NetworkName, isDefined } from 'dop-sharedmodels-v3';\n\nchai.use(chaiAsPromised);\nconst { expect } = chai;\n\nlet wallet: DopWallet;\n\ndescribe('wallets', () => {\n before(async function run() {\n this.timeout(60_000);\n await initTestEngine();\n await initTestEngineNetworks();\n const dopWalletInfo = await createDopWallet(\n MOCK_DB_ENCRYPTION_KEY,\n MOCK_MNEMONIC_2,\n { [NetworkName.Ethereum]: 0, [NetworkName.Polygon]: 2 }, // creationBlockNumbers\n );\n if (!isDefined(dopWalletInfo)) {\n throw new Error(`Could not create wallet`);\n }\n wallet = fullWalletForID(dopWalletInfo.id);\n });\n after(async () => {\n await closeTestEngine();\n });\n\n it('Should create view only wallet', async () => {\n const dopWalletInfo = await createViewOnlyDopWallet(\n MOCK_DB_ENCRYPTION_KEY,\n wallet.generateShareableViewingKey(),\n undefined, // creationBlockNumbers\n );\n if (!isDefined(dopWalletInfo)) {\n throw new Error('Could not create view-only wallet');\n }\n const viewOnlyWallet = viewOnlyWalletForID(dopWalletInfo.id);\n expect(viewOnlyWallet).to.not.be.undefined;\n expect(dopWalletInfo.dopAddress).to.equal(wallet.getAddress());\n }).timeout(60_000);\n\n it('Should get wallet address', () => {\n const addressAny = getDopAddress(wallet.id);\n expect(addressAny).to.equal(\n '0zk1qykzjxctynyz4z43pukckpv43jyzhyvy0ehrd5wuc54l5enqf9qfrrv7j6fe3z53la7enqphqvxys9aqyp9xx0km95ehqslx8apmu8l7anc7emau4tvsultrkvd',\n );\n });\n\n it('Should get wallet shareable viewing key', async () => {\n const shareableKey = await getWalletShareableViewingKey(wallet.id);\n expect(shareableKey).to.equal(\n '82a57670726976d94032643030623234396632646337313236303565336263653364373665376631313931373933363436393365333931666566643963323764303161396262336433a473707562d94030633661376436386331663437303262613764666134613361353236323035303765386637366632393139326363666637653861366231303637393062316165',\n );\n });\n\n it('Should get wallet mnemonic', async () => {\n const mnemonic = await getWalletMnemonic(MOCK_DB_ENCRYPTION_KEY, wallet.id);\n expect(mnemonic).to.equal(MOCK_MNEMONIC_2);\n });\n\n it('Should create and load wallet from valid mnemonic', async () => {\n const dopWalletInfo = await createDopWallet(\n MOCK_DB_ENCRYPTION_KEY,\n MOCK_MNEMONIC_2,\n undefined, // creationBlockNumbers\n );\n expect(dopWalletInfo.dopAddress).to.be.a('string');\n expect(dopWalletInfo.id).to.equal(wallet.id);\n\n const loadWalletInfo = await loadWalletByID(\n MOCK_DB_ENCRYPTION_KEY,\n dopWalletInfo.id,\n false, // isViewOnlyWallet\n );\n expect(loadWalletInfo.dopAddress).to.be.a('string');\n expect(loadWalletInfo.id).to.equal(wallet.id);\n });\n\n it('Should load wallet from db after Engine wallet unload', async () => {\n expect(Object.keys(getEngine().wallets)).to.include(wallet.id);\n unloadWalletByID(wallet.id);\n expect(Object.keys(getEngine().wallets)).to.not.include(wallet.id);\n const dopWalletInfo = await loadWalletByID(\n MOCK_DB_ENCRYPTION_KEY,\n wallet.id,\n false, // isViewOnlyWallet\n );\n expect(dopWalletInfo.id).to.equal(wallet.id);\n expect(dopWalletInfo.dopAddress).to.equal(\n wallet.getAddress(undefined),\n );\n });\n\n it('Should error for unknown load wallet', async () => {\n await expect(\n loadWalletByID(\n MOCK_DB_ENCRYPTION_KEY,\n 'unknown',\n false, // isViewOnlyWallet\n ),\n ).rejectedWith('Could not load DOP wallet');\n });\n\n it('Should validate DOP addresses', async () => {\n expect(validateDopAddress('0x9E9F988356f46744Ee0374A17a5Fa1a3A3cC3777'))\n .to.be.false;\n expect(validateDopAddress('9E9F988356f46744Ee0374A17a5Fa1a3A3cC3777'))\n .to.be.false;\n expect(\n validateDopAddress(\n 'rgtestropsten1qyglk9smgj240x2xmj2laj7p5hexw0a30vvdqnv9gk020nsd7yzgwkgce9x',\n ),\n ).to.be.false;\n expect(\n validateDopAddress(\n '0zk1q8hxknrs97q8pjxaagwthzc0df99rzmhl2xnlxmgv9akv32sua0kfrv7j6fe3z53llhxknrs97q8pjxaagwthzc0df99rzmhl2xnlxmgv9akv32sua0kg0zpzts',\n ),\n ).to.be.true;\n expect(\n validateDopAddress(\n '0zk1qyqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqunpd9kxwatwqyqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqhshkca',\n ),\n ).to.be.true;\n });\n});\n"]}
@@ -1,5 +1,5 @@
1
- import { Chain, AbstractWallet, TokenType, TokenBalances, NFTTokenData, getTokenDataHash, getTokenDataNFT, getTokenDataERC20 } from 'dop-engine-v5';
2
- import { DopBalancesEvent, DopNFTAmount, DopERC20Amount, NetworkName, TXIDVersion, NFTTokenType } from 'dop-sharedmodels-v5';
1
+ import { Chain, AbstractWallet, TokenType, TokenBalances, NFTTokenData, getTokenDataHash, getTokenDataNFT, getTokenDataERC20 } from 'dop-engine-v3';
2
+ import { DopBalancesEvent, DopNFTAmount, DopERC20Amount, NetworkName, TXIDVersion, NFTTokenType } from 'dop-sharedmodels-v3';
3
3
  export type BalancesUpdatedCallback = (balancesEvent: DopBalancesEvent) => void;
4
4
  export declare const setOnBalanceUpdateCallback: (callback?: BalancesUpdatedCallback) => void;
5
5
  export declare const getSerializedERC20Balances: (balances: TokenBalances) => DopERC20Amount[];
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NFTTokenType = exports.TokenType = exports.getTokenDataERC20 = exports.getTokenDataNFT = exports.getTokenDataHash = exports.balanceForNFT = exports.balanceForERC20Token = exports.onBalancesUpdate = exports.getSerializedNFTBalances = exports.getSerializedERC20Balances = exports.setOnBalanceUpdateCallback = void 0;
4
- const dop_engine_v3_1 = require("dop-engine-v5");
4
+ const dop_engine_v3_1 = require("dop-engine-v3");
5
5
  Object.defineProperty(exports, "TokenType", { enumerable: true, get: function () { return dop_engine_v3_1.TokenType; } });
6
6
  Object.defineProperty(exports, "getTokenDataHash", { enumerable: true, get: function () { return dop_engine_v3_1.getTokenDataHash; } });
7
7
  Object.defineProperty(exports, "getTokenDataNFT", { enumerable: true, get: function () { return dop_engine_v3_1.getTokenDataNFT; } });
8
8
  Object.defineProperty(exports, "getTokenDataERC20", { enumerable: true, get: function () { return dop_engine_v3_1.getTokenDataERC20; } });
9
- const dop_sharedmodels_v3_1 = require("dop-sharedmodels-v5");
9
+ const dop_sharedmodels_v3_1 = require("dop-sharedmodels-v3");
10
10
  Object.defineProperty(exports, "NFTTokenType", { enumerable: true, get: function () { return dop_sharedmodels_v3_1.NFTTokenType; } });
11
11
  const logger_1 = require("../../../utils/logger");
12
12
  const bytes_1 = require("../util/bytes");
@@ -1 +1 @@
1
- {"version":3,"file":"balance-update.js","sourceRoot":"","sources":["../../../../src/services/dop/wallets/balance-update.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Chain,\n AbstractWallet,\n TokenType,\n TokenBalances,\n NFTTokenData,\n getTokenDataHash,\n getTokenDataNFT,\n getTokenDataERC20,\n} from 'dop-engine-v5';\nimport {\n DopBalancesEvent,\n DopNFTAmount,\n DopERC20Amount,\n NetworkName,\n NETWORK_CONFIG,\n TXIDVersion,\n NFTTokenType,\n DopWalletBalanceBucket,\n isDefined,\n networkForChain,\n} from 'dop-sharedmodels-v5';\nimport { sendErrorMessage, sendMessage } from '../../../utils/logger';\nimport { parseDopTokenAddress } from '../util/bytes';\nimport { getEngine } from '../core/engine';\n\nexport type BalancesUpdatedCallback = (\n balancesEvent: DopBalancesEvent,\n) => void;\n\nlet onBalanceUpdateCallback: Optional<BalancesUpdatedCallback>;\n\nexport const setOnBalanceUpdateCallback = (\n callback?: BalancesUpdatedCallback,\n) => {\n onBalanceUpdateCallback = callback;\n};\n\nexport const getSerializedERC20Balances = (\n balances: TokenBalances,\n): DopERC20Amount[] => {\n const tokenHashes = Object.keys(balances);\n return tokenHashes\n .filter(tokenHash => {\n return balances[tokenHash].tokenData.tokenType === TokenType.ERC20;\n })\n .map(dopBalanceAddress => {\n const erc20Balance: DopERC20Amount = {\n tokenAddress: parseDopTokenAddress(\n balances[dopBalanceAddress].tokenData.tokenAddress,\n ).toLowerCase(),\n amount: balances[dopBalanceAddress].balance,\n };\n return erc20Balance;\n });\n};\n\nexport const getSerializedNFTBalances = (\n balances: TokenBalances,\n): DopNFTAmount[] => {\n const tokenHashes = Object.keys(balances);\n\n return tokenHashes\n .filter(tokenHash => {\n return [TokenType.ERC721, TokenType.ERC1155].includes(\n balances[tokenHash].tokenData.tokenType,\n );\n })\n .map(dopBalanceAddress => {\n const balanceForToken = balances[dopBalanceAddress];\n const tokenData = balanceForToken.tokenData;\n const nftBalance: DopNFTAmount = {\n nftAddress: parseDopTokenAddress(\n tokenData.tokenAddress,\n ).toLowerCase(),\n tokenSubID: tokenData.tokenSubID,\n nftTokenType: tokenData.tokenType as 1 | 2,\n amount: balanceForToken.balance,\n };\n return nftBalance;\n });\n};\n\nconst getNFTBalances = (balances: TokenBalances): DopNFTAmount[] => {\n const tokenHashes = Object.keys(balances);\n\n return tokenHashes\n .filter(tokenHash => {\n return (\n [TokenType.ERC721, TokenType.ERC1155].includes(\n balances[tokenHash].tokenData.tokenType,\n ) && balances[tokenHash].balance > BigInt(0)\n );\n })\n .map(tokenHash => {\n const tokenData = balances[tokenHash].tokenData;\n\n const nftBalance: DopNFTAmount = {\n nftAddress: parseDopTokenAddress(\n tokenData.tokenAddress,\n ).toLowerCase(),\n nftTokenType: tokenData.tokenType as 1 | 2,\n tokenSubID: tokenData.tokenSubID,\n amount: balances[tokenHash].balance,\n };\n return nftBalance;\n });\n};\n\nexport const onBalancesUpdate = async (\n txidVersion: TXIDVersion,\n wallet: AbstractWallet,\n chain: Chain,\n): Promise<void> => {\n try {\n if (!onBalanceUpdateCallback) {\n return;\n }\n\n sendMessage(\n `Wallet balance SCANNED. Getting balances for chain ${chain.type}:${chain.id}.`,\n );\n\n const network = networkForChain(chain);\n if (!network) {\n return;\n }\n\n const tokenBalancesByBucket = await wallet.getTokenBalancesByBucket(\n txidVersion,\n chain,\n );\n\n const balanceBuckets = Object.values(DopWalletBalanceBucket);\n\n balanceBuckets.forEach(balanceBucket => {\n if (!onBalanceUpdateCallback) {\n return;\n }\n\n const tokenBalances = tokenBalancesByBucket[balanceBucket];\n\n if (!isDefined(tokenBalances)) {\n return;\n }\n\n const erc20Amounts = getSerializedERC20Balances(tokenBalances);\n const nftAmounts = getNFTBalances(tokenBalances);\n\n const balancesEvent: DopBalancesEvent = {\n txidVersion,\n chain,\n erc20Amounts,\n nftAmounts,\n dopWalletID: wallet.id,\n balanceBucket,\n };\n\n onBalanceUpdateCallback(balancesEvent);\n });\n } catch (err) {\n\n if (!(err instanceof Error)) {\n return;\n }\n sendMessage(\n `Error getting balances for chain ${chain.type}:${chain.id}: ${err.message}`,\n );\n sendErrorMessage(err);\n }\n};\n\nconst getAllBalancesAsSpendable = async (\n txidVersion: TXIDVersion,\n wallet: AbstractWallet,\n chain: Chain,\n) => {\n if (!onBalanceUpdateCallback) {\n return;\n }\n\n const tokenBalances = await wallet.getTokenBalances(\n txidVersion,\n chain,\n false, // onlySpendable\n );\n\n const erc20Amounts = getSerializedERC20Balances(tokenBalances);\n const nftAmounts = getNFTBalances(tokenBalances);\n\n const balancesEvent: DopBalancesEvent = {\n txidVersion,\n chain,\n erc20Amounts,\n nftAmounts,\n dopWalletID: wallet.id,\n balanceBucket: DopWalletBalanceBucket.Spendable,\n };\n\n onBalanceUpdateCallback(balancesEvent);\n};\n\nexport const balanceForERC20Token = async (\n txidVersion: TXIDVersion,\n wallet: AbstractWallet,\n networkName: NetworkName,\n tokenAddress: string,\n onlySpendable: boolean,\n): Promise<bigint> => {\n const { chain } = NETWORK_CONFIG[networkName];\n const balances = await wallet.getTokenBalances(\n txidVersion,\n chain,\n onlySpendable,\n );\n const tokenBalances = getSerializedERC20Balances(balances);\n\n const matchingTokenBalance: Optional<DopERC20Amount> = tokenBalances.find(\n tokenBalance =>\n tokenBalance.tokenAddress.toLowerCase() === tokenAddress.toLowerCase(),\n );\n if (!matchingTokenBalance) {\n return 0n;\n }\n return matchingTokenBalance.amount;\n};\n\nexport const balanceForNFT = async (\n txidVersion: TXIDVersion,\n wallet: AbstractWallet,\n networkName: NetworkName,\n nftTokenData: NFTTokenData,\n onlySpendable: boolean,\n): Promise<bigint> => {\n const { chain } = NETWORK_CONFIG[networkName];\n const balances = await wallet.getTokenBalances(\n txidVersion,\n chain,\n onlySpendable,\n );\n const nftBalances = getSerializedNFTBalances(balances);\n\n const matchingNFTBalance: Optional<DopNFTAmount> = nftBalances.find(\n nftBalance =>\n nftBalance.nftAddress.toLowerCase() ===\n nftTokenData.tokenAddress.toLowerCase() &&\n BigInt(nftBalance.tokenSubID) === BigInt(nftTokenData.tokenSubID),\n );\n if (!matchingNFTBalance) {\n return 0n;\n }\n return matchingNFTBalance.amount;\n};\n\nexport {\n getTokenDataHash,\n getTokenDataNFT,\n getTokenDataERC20,\n TokenType,\n NFTTokenType,\n NFTTokenData,\n};\n"]}
1
+ {"version":3,"file":"balance-update.js","sourceRoot":"","sources":["../../../../src/services/dop/wallets/balance-update.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Chain,\n AbstractWallet,\n TokenType,\n TokenBalances,\n NFTTokenData,\n getTokenDataHash,\n getTokenDataNFT,\n getTokenDataERC20,\n} from 'dop-engine-v3';\nimport {\n DopBalancesEvent,\n DopNFTAmount,\n DopERC20Amount,\n NetworkName,\n NETWORK_CONFIG,\n TXIDVersion,\n NFTTokenType,\n DopWalletBalanceBucket,\n isDefined,\n networkForChain,\n} from 'dop-sharedmodels-v3';\nimport { sendErrorMessage, sendMessage } from '../../../utils/logger';\nimport { parseDopTokenAddress } from '../util/bytes';\nimport { getEngine } from '../core/engine';\n\nexport type BalancesUpdatedCallback = (\n balancesEvent: DopBalancesEvent,\n) => void;\n\nlet onBalanceUpdateCallback: Optional<BalancesUpdatedCallback>;\n\nexport const setOnBalanceUpdateCallback = (\n callback?: BalancesUpdatedCallback,\n) => {\n onBalanceUpdateCallback = callback;\n};\n\nexport const getSerializedERC20Balances = (\n balances: TokenBalances,\n): DopERC20Amount[] => {\n const tokenHashes = Object.keys(balances);\n return tokenHashes\n .filter(tokenHash => {\n return balances[tokenHash].tokenData.tokenType === TokenType.ERC20;\n })\n .map(dopBalanceAddress => {\n const erc20Balance: DopERC20Amount = {\n tokenAddress: parseDopTokenAddress(\n balances[dopBalanceAddress].tokenData.tokenAddress,\n ).toLowerCase(),\n amount: balances[dopBalanceAddress].balance,\n };\n return erc20Balance;\n });\n};\n\nexport const getSerializedNFTBalances = (\n balances: TokenBalances,\n): DopNFTAmount[] => {\n const tokenHashes = Object.keys(balances);\n\n return tokenHashes\n .filter(tokenHash => {\n return [TokenType.ERC721, TokenType.ERC1155].includes(\n balances[tokenHash].tokenData.tokenType,\n );\n })\n .map(dopBalanceAddress => {\n const balanceForToken = balances[dopBalanceAddress];\n const tokenData = balanceForToken.tokenData;\n const nftBalance: DopNFTAmount = {\n nftAddress: parseDopTokenAddress(\n tokenData.tokenAddress,\n ).toLowerCase(),\n tokenSubID: tokenData.tokenSubID,\n nftTokenType: tokenData.tokenType as 1 | 2,\n amount: balanceForToken.balance,\n };\n return nftBalance;\n });\n};\n\nconst getNFTBalances = (balances: TokenBalances): DopNFTAmount[] => {\n const tokenHashes = Object.keys(balances);\n\n return tokenHashes\n .filter(tokenHash => {\n return (\n [TokenType.ERC721, TokenType.ERC1155].includes(\n balances[tokenHash].tokenData.tokenType,\n ) && balances[tokenHash].balance > BigInt(0)\n );\n })\n .map(tokenHash => {\n const tokenData = balances[tokenHash].tokenData;\n\n const nftBalance: DopNFTAmount = {\n nftAddress: parseDopTokenAddress(\n tokenData.tokenAddress,\n ).toLowerCase(),\n nftTokenType: tokenData.tokenType as 1 | 2,\n tokenSubID: tokenData.tokenSubID,\n amount: balances[tokenHash].balance,\n };\n return nftBalance;\n });\n};\n\nexport const onBalancesUpdate = async (\n txidVersion: TXIDVersion,\n wallet: AbstractWallet,\n chain: Chain,\n): Promise<void> => {\n try {\n if (!onBalanceUpdateCallback) {\n return;\n }\n\n sendMessage(\n `Wallet balance SCANNED. Getting balances for chain ${chain.type}:${chain.id}.`,\n );\n\n const network = networkForChain(chain);\n if (!network) {\n return;\n }\n\n const tokenBalancesByBucket = await wallet.getTokenBalancesByBucket(\n txidVersion,\n chain,\n );\n\n const balanceBuckets = Object.values(DopWalletBalanceBucket);\n\n balanceBuckets.forEach(balanceBucket => {\n if (!onBalanceUpdateCallback) {\n return;\n }\n\n const tokenBalances = tokenBalancesByBucket[balanceBucket];\n\n if (!isDefined(tokenBalances)) {\n return;\n }\n\n const erc20Amounts = getSerializedERC20Balances(tokenBalances);\n const nftAmounts = getNFTBalances(tokenBalances);\n\n const balancesEvent: DopBalancesEvent = {\n txidVersion,\n chain,\n erc20Amounts,\n nftAmounts,\n dopWalletID: wallet.id,\n balanceBucket,\n };\n\n onBalanceUpdateCallback(balancesEvent);\n });\n } catch (err) {\n\n if (!(err instanceof Error)) {\n return;\n }\n sendMessage(\n `Error getting balances for chain ${chain.type}:${chain.id}: ${err.message}`,\n );\n sendErrorMessage(err);\n }\n};\n\nconst getAllBalancesAsSpendable = async (\n txidVersion: TXIDVersion,\n wallet: AbstractWallet,\n chain: Chain,\n) => {\n if (!onBalanceUpdateCallback) {\n return;\n }\n\n const tokenBalances = await wallet.getTokenBalances(\n txidVersion,\n chain,\n false, // onlySpendable\n );\n\n const erc20Amounts = getSerializedERC20Balances(tokenBalances);\n const nftAmounts = getNFTBalances(tokenBalances);\n\n const balancesEvent: DopBalancesEvent = {\n txidVersion,\n chain,\n erc20Amounts,\n nftAmounts,\n dopWalletID: wallet.id,\n balanceBucket: DopWalletBalanceBucket.Spendable,\n };\n\n onBalanceUpdateCallback(balancesEvent);\n};\n\nexport const balanceForERC20Token = async (\n txidVersion: TXIDVersion,\n wallet: AbstractWallet,\n networkName: NetworkName,\n tokenAddress: string,\n onlySpendable: boolean,\n): Promise<bigint> => {\n const { chain } = NETWORK_CONFIG[networkName];\n const balances = await wallet.getTokenBalances(\n txidVersion,\n chain,\n onlySpendable,\n );\n const tokenBalances = getSerializedERC20Balances(balances);\n\n const matchingTokenBalance: Optional<DopERC20Amount> = tokenBalances.find(\n tokenBalance =>\n tokenBalance.tokenAddress.toLowerCase() === tokenAddress.toLowerCase(),\n );\n if (!matchingTokenBalance) {\n return 0n;\n }\n return matchingTokenBalance.amount;\n};\n\nexport const balanceForNFT = async (\n txidVersion: TXIDVersion,\n wallet: AbstractWallet,\n networkName: NetworkName,\n nftTokenData: NFTTokenData,\n onlySpendable: boolean,\n): Promise<bigint> => {\n const { chain } = NETWORK_CONFIG[networkName];\n const balances = await wallet.getTokenBalances(\n txidVersion,\n chain,\n onlySpendable,\n );\n const nftBalances = getSerializedNFTBalances(balances);\n\n const matchingNFTBalance: Optional<DopNFTAmount> = nftBalances.find(\n nftBalance =>\n nftBalance.nftAddress.toLowerCase() ===\n nftTokenData.tokenAddress.toLowerCase() &&\n BigInt(nftBalance.tokenSubID) === BigInt(nftTokenData.tokenSubID),\n );\n if (!matchingNFTBalance) {\n return 0n;\n }\n return matchingNFTBalance.amount;\n};\n\nexport {\n getTokenDataHash,\n getTokenDataNFT,\n getTokenDataERC20,\n TokenType,\n NFTTokenType,\n NFTTokenData,\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { Chain } from 'dop-engine-v5';
1
+ import { Chain } from 'dop-engine-v3';
2
2
  export declare const refreshBalances: (chain: Chain, walletIdFilter: Optional<string[]>) => Promise<void>;
3
3
  export declare const rescanFullUTXOMerkletreesAndWallets: (chain: Chain, walletIdFilter: Optional<string[]>) => Promise<void>;
4
4
  export declare const resetFullTXIDMerkletreesV2: (chain: Chain) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"balances.js","sourceRoot":"","sources":["../../../../src/services/dop/wallets/balances.ts"],"names":[],"mappings":";;;AAEA,gDAA8D;AAC9D,2CAA2C;AAEpC,MAAM,eAAe,GAAG,KAAK,EAClC,KAAY,EACZ,cAAkC,EACnB,EAAE;IACjB,IAAI;QACF,qEAAqE;QACrE,sDAAsD;QAEtD,yCAAyC;QACzC,6EAA6E;QAE7E,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;QAC3B,MAAM,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;KACzD;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAA,8BAAsB,EAAC,uBAAe,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KACzD;AACH,CAAC,CAAC;AAhBW,QAAA,eAAe,mBAgB1B;AAEK,MAAM,mCAAmC,GAAG,KAAK,EACtD,KAAY,EACZ,cAAkC,EACnB,EAAE;IACjB,IAAI;QACF,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;QAC3B,MAAM,MAAM,CAAC,mCAAmC,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QAExE,qEAAqE;QACrE,sDAAsD;KACvD;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAA,8BAAsB,EAAC,2CAAmC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KAC7E;AACH,CAAC,CAAC;AAbW,QAAA,mCAAmC,uCAa9C;AAEK,MAAM,0BAA0B,GAAG,KAAK,EAC7C,KAAY,EACG,EAAE;IACjB,IAAI;QACF,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;QAC3B,MAAM,MAAM,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;KAChD;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAA,8BAAsB,EAAC,kCAA0B,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KACpE;AACH,CAAC,CAAC;AATW,QAAA,0BAA0B,8BASrC","sourcesContent":["import { Chain } from 'dop-engine-v5';\nimport { TXIDVersion } from 'dop-sharedmodels-v5';\nimport { reportAndSanitizeError } from '../../../utils/error';\nimport { getEngine } from '../core/engine';\n\nexport const refreshBalances = async (\n chain: Chain,\n walletIdFilter: Optional<string[]>,\n): Promise<void> => {\n try {\n // Wallet will trigger .emit('scanned', {chain}) event when finished,\n // which calls `onBalancesUpdate` (balance-update.ts).\n\n // Kick off a background merkletree scan.\n // This will call wallet.scanBalances when it's done, but may take some time.\n\n const engine = getEngine();\n await engine.scanContractHistory(chain, walletIdFilter);\n } catch (err) {\n throw reportAndSanitizeError(refreshBalances.name, err);\n }\n};\n\nexport const rescanFullUTXOMerkletreesAndWallets = async (\n chain: Chain,\n walletIdFilter: Optional<string[]>,\n): Promise<void> => {\n try {\n const engine = getEngine();\n await engine.fullRescanUTXOMerkletreesAndWallets(chain, walletIdFilter);\n\n // Wallet will trigger .emit('scanned', {chain}) event when finished,\n // which calls `onBalancesUpdate` (balance-update.ts).\n } catch (err) {\n throw reportAndSanitizeError(rescanFullUTXOMerkletreesAndWallets.name, err);\n }\n};\n\nexport const resetFullTXIDMerkletreesV2 = async (\n chain: Chain,\n): Promise<void> => {\n try {\n const engine = getEngine();\n await engine.fullResetTXIDMerkletreesV2(chain);\n } catch (err) {\n throw reportAndSanitizeError(resetFullTXIDMerkletreesV2.name, err);\n }\n};\n"]}
1
+ {"version":3,"file":"balances.js","sourceRoot":"","sources":["../../../../src/services/dop/wallets/balances.ts"],"names":[],"mappings":";;;AAEA,gDAA8D;AAC9D,2CAA2C;AAEpC,MAAM,eAAe,GAAG,KAAK,EAClC,KAAY,EACZ,cAAkC,EACnB,EAAE;IACjB,IAAI;QACF,qEAAqE;QACrE,sDAAsD;QAEtD,yCAAyC;QACzC,6EAA6E;QAE7E,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;QAC3B,MAAM,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;KACzD;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAA,8BAAsB,EAAC,uBAAe,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KACzD;AACH,CAAC,CAAC;AAhBW,QAAA,eAAe,mBAgB1B;AAEK,MAAM,mCAAmC,GAAG,KAAK,EACtD,KAAY,EACZ,cAAkC,EACnB,EAAE;IACjB,IAAI;QACF,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;QAC3B,MAAM,MAAM,CAAC,mCAAmC,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QAExE,qEAAqE;QACrE,sDAAsD;KACvD;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAA,8BAAsB,EAAC,2CAAmC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KAC7E;AACH,CAAC,CAAC;AAbW,QAAA,mCAAmC,uCAa9C;AAEK,MAAM,0BAA0B,GAAG,KAAK,EAC7C,KAAY,EACG,EAAE;IACjB,IAAI;QACF,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;QAC3B,MAAM,MAAM,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;KAChD;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAA,8BAAsB,EAAC,kCAA0B,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KACpE;AACH,CAAC,CAAC;AATW,QAAA,0BAA0B,8BASrC","sourcesContent":["import { Chain } from 'dop-engine-v3';\nimport { TXIDVersion } from 'dop-sharedmodels-v3';\nimport { reportAndSanitizeError } from '../../../utils/error';\nimport { getEngine } from '../core/engine';\n\nexport const refreshBalances = async (\n chain: Chain,\n walletIdFilter: Optional<string[]>,\n): Promise<void> => {\n try {\n // Wallet will trigger .emit('scanned', {chain}) event when finished,\n // which calls `onBalancesUpdate` (balance-update.ts).\n\n // Kick off a background merkletree scan.\n // This will call wallet.scanBalances when it's done, but may take some time.\n\n const engine = getEngine();\n await engine.scanContractHistory(chain, walletIdFilter);\n } catch (err) {\n throw reportAndSanitizeError(refreshBalances.name, err);\n }\n};\n\nexport const rescanFullUTXOMerkletreesAndWallets = async (\n chain: Chain,\n walletIdFilter: Optional<string[]>,\n): Promise<void> => {\n try {\n const engine = getEngine();\n await engine.fullRescanUTXOMerkletreesAndWallets(chain, walletIdFilter);\n\n // Wallet will trigger .emit('scanned', {chain}) event when finished,\n // which calls `onBalancesUpdate` (balance-update.ts).\n } catch (err) {\n throw reportAndSanitizeError(rescanFullUTXOMerkletreesAndWallets.name, err);\n }\n};\n\nexport const resetFullTXIDMerkletreesV2 = async (\n chain: Chain,\n): Promise<void> => {\n try {\n const engine = getEngine();\n await engine.fullResetTXIDMerkletreesV2(chain);\n } catch (err) {\n throw reportAndSanitizeError(resetFullTXIDMerkletreesV2.name, err);\n }\n};\n"]}
@@ -1,5 +1,5 @@
1
- import { DopWallet, AbstractWallet, AddressData, Commitment } from 'dop-engine-v5';
2
- import { DopWalletInfo, Chain } from 'dop-sharedmodels-v5';
1
+ import { DopWallet, AbstractWallet, AddressData, Commitment } from 'dop-engine-v3';
2
+ import { DopWalletInfo, Chain } from 'dop-sharedmodels-v3';
3
3
  export declare const awaitWalletScan: (walletID: string, chain: Chain) => Promise<unknown>;
4
4
  export declare const awaitMultipleWalletScans: (walletID: string, chain: Chain, numScans: number) => Promise<void>;
5
5
  export declare const walletForID: (id: string) => AbstractWallet;
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getWalletShareableViewingKey = exports.getDopAddress = exports.validateEthAddress = exports.assertValidEthAddress = exports.validateDopAddress = exports.assertValidDopAddress = exports.signWithWalletViewingKey = exports.getDopWalletPrivateViewingKey = exports.getDopWalletAddressData = exports.getWalletMnemonic = exports.deleteWalletByID = exports.unloadWalletByID = exports.loadWalletByID = exports.createViewOnlyDopWallet = exports.createDopWallet = exports.createWalletFromTransaction = exports.viewOnlyWalletForID = exports.fullWalletForID = exports.walletForID = exports.awaitMultipleWalletScans = exports.awaitWalletScan = void 0;
4
- const dop_engine_v3_1 = require("dop-engine-v5");
5
- const dop_sharedmodels_v3_1 = require("dop-sharedmodels-v5");
4
+ const dop_engine_v3_1 = require("dop-engine-v3");
5
+ const dop_sharedmodels_v3_1 = require("dop-sharedmodels-v3");
6
6
  const balance_update_1 = require("./balance-update");
7
7
  const error_1 = require("../../../utils/error");
8
8
  const ethers_1 = require("ethers");
@@ -1 +1 @@
1
- {"version":3,"file":"wallets.js","sourceRoot":"","sources":["../../../../src/services/dop/wallets/wallets.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n DopWallet,\n EngineEvent,\n WalletScannedEventData,\n AbstractWallet,\n WalletData,\n AddressData,\n DopEngine,\n ByteUtils,\n ViewOnlyWallet,\n Commitment,\n} from 'dop-engine-v5';\nimport {\n DopWalletInfo,\n NetworkName,\n NETWORK_CONFIG,\n isDefined,\n Chain,\n} from 'dop-sharedmodels-v5';\nimport { onBalancesUpdate } from './balance-update';\nimport { reportAndSanitizeError } from '../../../utils/error';\nimport { getAddress } from 'ethers';\nimport { getEngine } from '../core/engine';\n\nexport const awaitWalletScan = (walletID: string, chain: Chain) => {\n const wallet = walletForID(walletID);\n return new Promise((resolve, reject) =>\n wallet.once(\n EngineEvent.WalletDecryptBalancesComplete,\n ({ chain: returnedChain }: WalletScannedEventData) =>\n returnedChain.type === chain.type && returnedChain.id === chain.id\n ? resolve(returnedChain)\n : reject(),\n ),\n );\n};\n\nexport const awaitMultipleWalletScans = async (\n walletID: string,\n chain: Chain,\n numScans: number,\n) => {\n let i = 0;\n while (i < numScans) {\n // eslint-disable-next-line no-await-in-loop\n await awaitWalletScan(walletID, chain);\n i += 1;\n }\n return Promise.resolve();\n};\n\nexport const walletForID = (id: string): AbstractWallet => {\n const engine = getEngine();\n const wallet = engine.wallets[id];\n if (!isDefined(wallet)) {\n throw new Error('No DOP wallet for ID');\n }\n return wallet;\n};\n\nexport const fullWalletForID = (id: string): DopWallet => {\n const wallet = walletForID(id);\n if (!(wallet instanceof DopWallet)) {\n throw new Error('Can not load View-Only wallet.');\n }\n return wallet;\n};\n\nexport const viewOnlyWalletForID = (id: string): DopWallet => {\n const wallet = walletForID(id);\n if (!(wallet instanceof ViewOnlyWallet)) {\n throw new Error('Can only load View-Only wallet.');\n }\n return wallet as DopWallet;\n};\n\nconst subscribeToEvents = (wallet: AbstractWallet) => {\n wallet.on(\n EngineEvent.WalletDecryptBalancesComplete,\n ({ txidVersion, chain }: WalletScannedEventData) => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n onBalancesUpdate(txidVersion, wallet, chain);\n },\n );\n};\n\nconst addressForWallet = (wallet: AbstractWallet): string => {\n return wallet.getAddress();\n};\n\nconst infoForWallet = (wallet: AbstractWallet): DopWalletInfo => {\n const dopAddress = addressForWallet(wallet);\n return {\n id: wallet.id,\n dopAddress,\n };\n};\n\nconst getExistingWallet = (\n dopWalletID: string,\n): Optional<AbstractWallet> => {\n try {\n const existingWallet = walletForID(dopWalletID);\n return existingWallet;\n } catch (_err) {\n return undefined;\n }\n};\n\nconst loadExistingWallet = async (\n encryptionKey: string,\n dopWalletID: string,\n isViewOnlyWallet: boolean,\n): Promise<DopWalletInfo> => {\n const existingWallet = getExistingWallet(dopWalletID);\n if (existingWallet) {\n return infoForWallet(existingWallet);\n }\n const engine = getEngine();\n let wallet: AbstractWallet;\n\n if (isViewOnlyWallet) {\n wallet = await engine.loadExistingViewOnlyWallet(\n encryptionKey,\n dopWalletID,\n );\n } else {\n wallet = await engine.loadExistingWallet(encryptionKey, dopWalletID);\n }\n\n subscribeToEvents(wallet);\n return infoForWallet(wallet);\n};\n// here\nexport const createWalletFromTransaction = async (\n leaf: Commitment,\n viewingPrivateKey: Uint8Array,\n chain: any,\n encryptionKey: string,\n mnemonic: string,\n index = 0,\n): Promise<any> => {\n\n const engine = getEngine();\n const res = engine.createUserWalletFromTransaction(leaf, viewingPrivateKey, chain, encryptionKey, mnemonic, index);\n return res;\n};\n\nconst createWallet = async (\n encryptionKey: string,\n mnemonic: string,\n creationBlockNumbers: Optional<MapType<number>>,\n dopWalletDerivationIndex?: number,\n): Promise<DopWalletInfo> => {\n const formattedCreationBlockNumbers =\n formatCreationBlockNumbers(creationBlockNumbers);\n\n const engine = getEngine();\n const wallet = await engine.createWalletFromMnemonic(\n encryptionKey,\n mnemonic,\n dopWalletDerivationIndex ?? 0,\n formattedCreationBlockNumbers,\n );\n subscribeToEvents(wallet);\n return infoForWallet(wallet);\n};\n\nconst createViewOnlyWallet = async (\n encryptionKey: string,\n shareableViewingKey: string,\n creationBlockNumbers: Optional<MapType<number>>,\n): Promise<DopWalletInfo> => {\n const formattedCreationBlockNumbers =\n formatCreationBlockNumbers(creationBlockNumbers);\n\n const engine = getEngine();\n const wallet = await engine.createViewOnlyWalletFromShareableViewingKey(\n encryptionKey,\n shareableViewingKey,\n formattedCreationBlockNumbers,\n );\n subscribeToEvents(wallet);\n return infoForWallet(wallet);\n};\n\nexport const createDopWallet = async (\n encryptionKey: string,\n mnemonic: string,\n creationBlockNumbers: Optional<MapType<number>>,\n dopWalletDerivationIndex?: number,\n): Promise<DopWalletInfo> => {\n try {\n return await createWallet(\n encryptionKey,\n mnemonic,\n creationBlockNumbers,\n dopWalletDerivationIndex,\n );\n } catch (err) {\n throw reportAndSanitizeError(createDopWallet.name, err);\n }\n};\n\nexport const createViewOnlyDopWallet = async (\n encryptionKey: string,\n shareableViewingKey: string,\n creationBlockNumbers: Optional<MapType<number>>,\n): Promise<DopWalletInfo> => {\n try {\n return await createViewOnlyWallet(\n encryptionKey,\n shareableViewingKey,\n creationBlockNumbers,\n );\n } catch (err) {\n throw reportAndSanitizeError(createViewOnlyDopWallet.name, err);\n }\n};\n\nexport const loadWalletByID = async (\n encryptionKey: string,\n dopWalletID: string,\n isViewOnlyWallet: boolean,\n): Promise<DopWalletInfo> => {\n try {\n return await loadExistingWallet(\n encryptionKey,\n dopWalletID,\n isViewOnlyWallet,\n );\n } catch (err) {\n const sanitizedError = reportAndSanitizeError(loadWalletByID.name, err);\n throw new Error(`Could not load DOP wallet`, { cause: sanitizedError });\n }\n};\n\nexport const unloadWalletByID = (dopWalletID: string): void => {\n try {\n const engine = getEngine();\n engine.unloadWallet(dopWalletID);\n } catch (err) {\n throw new Error('Could not unload DOP wallet.', { cause: err });\n }\n};\n\nexport const deleteWalletByID = async (\n dopWalletID: string,\n): Promise<void> => {\n try {\n const engine = getEngine();\n await engine.deleteWallet(dopWalletID);\n } catch (err) {\n throw new Error('Could not delete DOP wallet.', { cause: err });\n }\n};\n\nexport const getWalletMnemonic = async (\n encryptionKey: string,\n dopWalletID: string,\n) => {\n const { db } = getEngine();\n // Reload wallet to ensure that encryption key is valid.\n const walletData = (await DopWallet.getEncryptedData(\n db,\n encryptionKey,\n dopWalletID,\n )) as WalletData;\n\n if (!walletData.mnemonic) {\n throw new Error('No mnemonic for wallet.');\n }\n return walletData.mnemonic;\n};\n\nexport const getDopWalletAddressData = (address: string): AddressData => {\n assertValidDopAddress(address);\n return DopEngine.decodeAddress(address);\n};\n\nexport const getDopWalletPrivateViewingKey = (\n dopWalletID: string,\n): Uint8Array => {\n const wallet = walletForID(dopWalletID);\n return wallet.getViewingKeyPair().privateKey;\n};\n\nexport const signWithWalletViewingKey = async (\n dopWalletID: string,\n message: string,\n): Promise<string> => {\n const wallet = walletForID(dopWalletID);\n const signature = await wallet.signWithViewingKey(\n ByteUtils.hexStringToBytes(message),\n );\n return ByteUtils.hexlify(signature);\n};\n\nexport const assertValidDopAddress = (address: string): void => {\n if (!validateDopAddress(address)) {\n throw new Error('Invalid DOP address.');\n }\n};\n\nexport const validateDopAddress = (address: string): boolean => {\n try {\n return DopEngine.decodeAddress(address) != null;\n } catch (err) {\n return false;\n }\n};\n\nexport const assertValidEthAddress = (address: string) => {\n if (!validateEthAddress(address)) {\n throw new Error('Invalid wallet address.');\n }\n};\n\nexport const validateEthAddress = (address: string): boolean => {\n try {\n getAddress(address);\n return true;\n } catch (err) {\n return false;\n }\n};\n\nexport const getDopAddress = (\n dopWalletID: string,\n): Optional<string> => {\n try {\n const wallet = walletForID(dopWalletID);\n return wallet.getAddress();\n } catch (err) {\n reportAndSanitizeError(getDopAddress.name, err);\n return undefined;\n }\n};\n\nexport const getWalletShareableViewingKey = async (\n dopWalletID: string,\n): Promise<Optional<string>> => {\n try {\n const wallet = walletForID(dopWalletID);\n return wallet.generateShareableViewingKey();\n } catch (err) {\n reportAndSanitizeError(getWalletShareableViewingKey.name, err);\n return undefined;\n }\n};\n\nconst formatCreationBlockNumbers = (\n creationBlockNumbers: Optional<MapType<number>>,\n): Optional<number[][]> => {\n // Format creationBlockNumbers from client side { <NetworkName>: <BlockNumber> } map to dop-engine-v3's number[][] type\n if (!creationBlockNumbers) return;\n\n const formattedCreationBlockNumbers: number[][] = [];\n const networksNames = Object.keys(creationBlockNumbers) as NetworkName[];\n\n for (const networkName of networksNames) {\n const network = NETWORK_CONFIG[networkName];\n\n const blockNumber = creationBlockNumbers[networkName];\n if (!isDefined(blockNumber)) {\n continue;\n }\n\n formattedCreationBlockNumbers[network.chain.type] ??= [];\n formattedCreationBlockNumbers[network.chain.type][network.chain.id] =\n blockNumber;\n }\n\n return formattedCreationBlockNumbers;\n};\n"]}
1
+ {"version":3,"file":"wallets.js","sourceRoot":"","sources":["../../../../src/services/dop/wallets/wallets.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n DopWallet,\n EngineEvent,\n WalletScannedEventData,\n AbstractWallet,\n WalletData,\n AddressData,\n DopEngine,\n ByteUtils,\n ViewOnlyWallet,\n Commitment,\n} from 'dop-engine-v3';\nimport {\n DopWalletInfo,\n NetworkName,\n NETWORK_CONFIG,\n isDefined,\n Chain,\n} from 'dop-sharedmodels-v3';\nimport { onBalancesUpdate } from './balance-update';\nimport { reportAndSanitizeError } from '../../../utils/error';\nimport { getAddress } from 'ethers';\nimport { getEngine } from '../core/engine';\n\nexport const awaitWalletScan = (walletID: string, chain: Chain) => {\n const wallet = walletForID(walletID);\n return new Promise((resolve, reject) =>\n wallet.once(\n EngineEvent.WalletDecryptBalancesComplete,\n ({ chain: returnedChain }: WalletScannedEventData) =>\n returnedChain.type === chain.type && returnedChain.id === chain.id\n ? resolve(returnedChain)\n : reject(),\n ),\n );\n};\n\nexport const awaitMultipleWalletScans = async (\n walletID: string,\n chain: Chain,\n numScans: number,\n) => {\n let i = 0;\n while (i < numScans) {\n // eslint-disable-next-line no-await-in-loop\n await awaitWalletScan(walletID, chain);\n i += 1;\n }\n return Promise.resolve();\n};\n\nexport const walletForID = (id: string): AbstractWallet => {\n const engine = getEngine();\n const wallet = engine.wallets[id];\n if (!isDefined(wallet)) {\n throw new Error('No DOP wallet for ID');\n }\n return wallet;\n};\n\nexport const fullWalletForID = (id: string): DopWallet => {\n const wallet = walletForID(id);\n if (!(wallet instanceof DopWallet)) {\n throw new Error('Can not load View-Only wallet.');\n }\n return wallet;\n};\n\nexport const viewOnlyWalletForID = (id: string): DopWallet => {\n const wallet = walletForID(id);\n if (!(wallet instanceof ViewOnlyWallet)) {\n throw new Error('Can only load View-Only wallet.');\n }\n return wallet as DopWallet;\n};\n\nconst subscribeToEvents = (wallet: AbstractWallet) => {\n wallet.on(\n EngineEvent.WalletDecryptBalancesComplete,\n ({ txidVersion, chain }: WalletScannedEventData) => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n onBalancesUpdate(txidVersion, wallet, chain);\n },\n );\n};\n\nconst addressForWallet = (wallet: AbstractWallet): string => {\n return wallet.getAddress();\n};\n\nconst infoForWallet = (wallet: AbstractWallet): DopWalletInfo => {\n const dopAddress = addressForWallet(wallet);\n return {\n id: wallet.id,\n dopAddress,\n };\n};\n\nconst getExistingWallet = (\n dopWalletID: string,\n): Optional<AbstractWallet> => {\n try {\n const existingWallet = walletForID(dopWalletID);\n return existingWallet;\n } catch (_err) {\n return undefined;\n }\n};\n\nconst loadExistingWallet = async (\n encryptionKey: string,\n dopWalletID: string,\n isViewOnlyWallet: boolean,\n): Promise<DopWalletInfo> => {\n const existingWallet = getExistingWallet(dopWalletID);\n if (existingWallet) {\n return infoForWallet(existingWallet);\n }\n const engine = getEngine();\n let wallet: AbstractWallet;\n\n if (isViewOnlyWallet) {\n wallet = await engine.loadExistingViewOnlyWallet(\n encryptionKey,\n dopWalletID,\n );\n } else {\n wallet = await engine.loadExistingWallet(encryptionKey, dopWalletID);\n }\n\n subscribeToEvents(wallet);\n return infoForWallet(wallet);\n};\n// here\nexport const createWalletFromTransaction = async (\n leaf: Commitment,\n viewingPrivateKey: Uint8Array,\n chain: any,\n encryptionKey: string,\n mnemonic: string,\n index = 0,\n): Promise<any> => {\n\n const engine = getEngine();\n const res = engine.createUserWalletFromTransaction(leaf, viewingPrivateKey, chain, encryptionKey, mnemonic, index);\n return res;\n};\n\nconst createWallet = async (\n encryptionKey: string,\n mnemonic: string,\n creationBlockNumbers: Optional<MapType<number>>,\n dopWalletDerivationIndex?: number,\n): Promise<DopWalletInfo> => {\n const formattedCreationBlockNumbers =\n formatCreationBlockNumbers(creationBlockNumbers);\n\n const engine = getEngine();\n const wallet = await engine.createWalletFromMnemonic(\n encryptionKey,\n mnemonic,\n dopWalletDerivationIndex ?? 0,\n formattedCreationBlockNumbers,\n );\n subscribeToEvents(wallet);\n return infoForWallet(wallet);\n};\n\nconst createViewOnlyWallet = async (\n encryptionKey: string,\n shareableViewingKey: string,\n creationBlockNumbers: Optional<MapType<number>>,\n): Promise<DopWalletInfo> => {\n const formattedCreationBlockNumbers =\n formatCreationBlockNumbers(creationBlockNumbers);\n\n const engine = getEngine();\n const wallet = await engine.createViewOnlyWalletFromShareableViewingKey(\n encryptionKey,\n shareableViewingKey,\n formattedCreationBlockNumbers,\n );\n subscribeToEvents(wallet);\n return infoForWallet(wallet);\n};\n\nexport const createDopWallet = async (\n encryptionKey: string,\n mnemonic: string,\n creationBlockNumbers: Optional<MapType<number>>,\n dopWalletDerivationIndex?: number,\n): Promise<DopWalletInfo> => {\n try {\n return await createWallet(\n encryptionKey,\n mnemonic,\n creationBlockNumbers,\n dopWalletDerivationIndex,\n );\n } catch (err) {\n throw reportAndSanitizeError(createDopWallet.name, err);\n }\n};\n\nexport const createViewOnlyDopWallet = async (\n encryptionKey: string,\n shareableViewingKey: string,\n creationBlockNumbers: Optional<MapType<number>>,\n): Promise<DopWalletInfo> => {\n try {\n return await createViewOnlyWallet(\n encryptionKey,\n shareableViewingKey,\n creationBlockNumbers,\n );\n } catch (err) {\n throw reportAndSanitizeError(createViewOnlyDopWallet.name, err);\n }\n};\n\nexport const loadWalletByID = async (\n encryptionKey: string,\n dopWalletID: string,\n isViewOnlyWallet: boolean,\n): Promise<DopWalletInfo> => {\n try {\n return await loadExistingWallet(\n encryptionKey,\n dopWalletID,\n isViewOnlyWallet,\n );\n } catch (err) {\n const sanitizedError = reportAndSanitizeError(loadWalletByID.name, err);\n throw new Error(`Could not load DOP wallet`, { cause: sanitizedError });\n }\n};\n\nexport const unloadWalletByID = (dopWalletID: string): void => {\n try {\n const engine = getEngine();\n engine.unloadWallet(dopWalletID);\n } catch (err) {\n throw new Error('Could not unload DOP wallet.', { cause: err });\n }\n};\n\nexport const deleteWalletByID = async (\n dopWalletID: string,\n): Promise<void> => {\n try {\n const engine = getEngine();\n await engine.deleteWallet(dopWalletID);\n } catch (err) {\n throw new Error('Could not delete DOP wallet.', { cause: err });\n }\n};\n\nexport const getWalletMnemonic = async (\n encryptionKey: string,\n dopWalletID: string,\n) => {\n const { db } = getEngine();\n // Reload wallet to ensure that encryption key is valid.\n const walletData = (await DopWallet.getEncryptedData(\n db,\n encryptionKey,\n dopWalletID,\n )) as WalletData;\n\n if (!walletData.mnemonic) {\n throw new Error('No mnemonic for wallet.');\n }\n return walletData.mnemonic;\n};\n\nexport const getDopWalletAddressData = (address: string): AddressData => {\n assertValidDopAddress(address);\n return DopEngine.decodeAddress(address);\n};\n\nexport const getDopWalletPrivateViewingKey = (\n dopWalletID: string,\n): Uint8Array => {\n const wallet = walletForID(dopWalletID);\n return wallet.getViewingKeyPair().privateKey;\n};\n\nexport const signWithWalletViewingKey = async (\n dopWalletID: string,\n message: string,\n): Promise<string> => {\n const wallet = walletForID(dopWalletID);\n const signature = await wallet.signWithViewingKey(\n ByteUtils.hexStringToBytes(message),\n );\n return ByteUtils.hexlify(signature);\n};\n\nexport const assertValidDopAddress = (address: string): void => {\n if (!validateDopAddress(address)) {\n throw new Error('Invalid DOP address.');\n }\n};\n\nexport const validateDopAddress = (address: string): boolean => {\n try {\n return DopEngine.decodeAddress(address) != null;\n } catch (err) {\n return false;\n }\n};\n\nexport const assertValidEthAddress = (address: string) => {\n if (!validateEthAddress(address)) {\n throw new Error('Invalid wallet address.');\n }\n};\n\nexport const validateEthAddress = (address: string): boolean => {\n try {\n getAddress(address);\n return true;\n } catch (err) {\n return false;\n }\n};\n\nexport const getDopAddress = (\n dopWalletID: string,\n): Optional<string> => {\n try {\n const wallet = walletForID(dopWalletID);\n return wallet.getAddress();\n } catch (err) {\n reportAndSanitizeError(getDopAddress.name, err);\n return undefined;\n }\n};\n\nexport const getWalletShareableViewingKey = async (\n dopWalletID: string,\n): Promise<Optional<string>> => {\n try {\n const wallet = walletForID(dopWalletID);\n return wallet.generateShareableViewingKey();\n } catch (err) {\n reportAndSanitizeError(getWalletShareableViewingKey.name, err);\n return undefined;\n }\n};\n\nconst formatCreationBlockNumbers = (\n creationBlockNumbers: Optional<MapType<number>>,\n): Optional<number[][]> => {\n // Format creationBlockNumbers from client side { <NetworkName>: <BlockNumber> } map to dop-engine-v3's number[][] type\n if (!creationBlockNumbers) return;\n\n const formattedCreationBlockNumbers: number[][] = [];\n const networksNames = Object.keys(creationBlockNumbers) as NetworkName[];\n\n for (const networkName of networksNames) {\n const network = NETWORK_CONFIG[networkName];\n\n const blockNumber = creationBlockNumbers[networkName];\n if (!isDefined(blockNumber)) {\n continue;\n }\n\n formattedCreationBlockNumbers[network.chain.type] ??= [];\n formattedCreationBlockNumbers[network.chain.type][network.chain.id] =\n blockNumber;\n }\n\n return formattedCreationBlockNumbers;\n};\n"]}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.mnemonicTo0xPKey = void 0;
4
- const dop_engine_v3_1 = require("dop-engine-v5");
4
+ const dop_engine_v3_1 = require("dop-engine-v3");
5
5
  const mnemonicTo0xPKey = (mnemonic, derivationIndex) => {
6
6
  return `0x${dop_engine_v3_1.Mnemonic.to0xPrivateKey(mnemonic, derivationIndex)}`;
7
7
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ethers-util.js","sourceRoot":"","sources":["../../../src/services/ethers/ethers-util.ts"],"names":[],"mappings":";;;AAAA,iDAAyC;AAElC,MAAM,gBAAgB,GAAG,CAC9B,QAAgB,EAChB,eAAwB,EACxB,EAAE;IACF,OAAO,KAAK,wBAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,eAAe,CAAC,EAAE,CAAC;AACnE,CAAC,CAAC;AALW,QAAA,gBAAgB,oBAK3B","sourcesContent":["import { Mnemonic } from 'dop-engine-v5';\n\nexport const mnemonicTo0xPKey = (\n mnemonic: string,\n derivationIndex?: number,\n) => {\n return `0x${Mnemonic.to0xPrivateKey(mnemonic, derivationIndex)}`;\n};\n"]}
1
+ {"version":3,"file":"ethers-util.js","sourceRoot":"","sources":["../../../src/services/ethers/ethers-util.ts"],"names":[],"mappings":";;;AAAA,iDAAyC;AAElC,MAAM,gBAAgB,GAAG,CAC9B,QAAgB,EAChB,eAAwB,EACxB,EAAE;IACF,OAAO,KAAK,wBAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,eAAe,CAAC,EAAE,CAAC;AACnE,CAAC,CAAC;AALW,QAAA,gBAAgB,oBAK3B","sourcesContent":["import { Mnemonic } from 'dop-engine-v3';\n\nexport const mnemonicTo0xPKey = (\n mnemonic: string,\n derivationIndex?: number,\n) => {\n return `0x${Mnemonic.to0xPrivateKey(mnemonic, derivationIndex)}`;\n};\n"]}
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const chai_1 = __importDefault(require("chai"));
7
7
  const chai_as_promised_1 = __importDefault(require("chai-as-promised"));
8
- const dop_sharedmodels_v3_1 = require("dop-sharedmodels-v5");
8
+ const dop_sharedmodels_v3_1 = require("dop-sharedmodels-v3");
9
9
  const mocks_test_1 = require("../../../tests/mocks.test");
10
10
  const proof_cache_1 = require("../proof-cache");
11
11
  const helper_test_1 = require("../../../tests/helper.test");
@@ -1 +1 @@
1
- {"version":3,"file":"proof-cache.test.js","sourceRoot":"","sources":["../../../../src/services/transactions/__tests__/proof-cache.test.ts"],"names":[],"mappings":"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","sourcesContent":["import chai from 'chai';\nimport chaiAsPromised from 'chai-as-promised';\nimport {\n ProofType,\n DopNFTAmountRecipient,\n DopERC20Amount,\n DopERC20AmountRecipient,\n NetworkName,\n DopNFTAmount,\n DopERC20Recipient,\n} from 'dop-sharedmodels-v5';\nimport {\n MOCK_NFT_AMOUNTS,\n MOCK_NFT_AMOUNT_RECIPIENTS,\n MOCK_DOP_WALLET_ADDRESS,\n MOCK_TOKEN_AMOUNTS,\n MOCK_TOKEN_FEE,\n} from '../../../tests/mocks.test';\nimport {\n setCachedProvedTransaction,\n validateCachedProvedTransaction,\n} from '../proof-cache';\nimport { ContractTransaction } from 'ethers';\nimport { getTestTXIDVersion } from '../../../tests/helper.test';\n\nchai.use(chaiAsPromised);\nconst { expect } = chai;\n\nconst networkName = NetworkName.BNBChain;\nconst txidVersion = getTestTXIDVersion();\nconst dopWalletID = '123';\nconst showSenderAddressToRecipient = true;\nconst memoText = 'Some memo';\nconst recipientAddress = '0x12345';\nconst erc20AmountRecipients: DopERC20AmountRecipient[] =\n MOCK_TOKEN_AMOUNTS.map(erc20Amount => ({\n ...erc20Amount,\n recipientAddress,\n }));\nconst nftAmountRecipients: DopNFTAmountRecipient[] =\n MOCK_NFT_AMOUNT_RECIPIENTS;\nconst broadcasterFeeERC20AmountRecipient: DopERC20AmountRecipient = {\n ...MOCK_TOKEN_FEE,\n recipientAddress: MOCK_DOP_WALLET_ADDRESS,\n};\nconst crossContractCalls: ContractTransaction[] = [\n { to: '0x4567', data: '0x' },\n];\nconst relayAdaptEncryptERC20Recipients: DopERC20Recipient[] = [\n { tokenAddress: '0x123', recipientAddress: MOCK_DOP_WALLET_ADDRESS },\n];\nconst relayAdaptDecryptERC20Amounts: DopERC20Amount[] = [MOCK_TOKEN_FEE];\nconst relayAdaptDecryptNFTAmounts: DopNFTAmount[] = MOCK_NFT_AMOUNTS;\nconst relayAdaptEncryptNFTRecipients: DopNFTAmountRecipient[] =\n MOCK_NFT_AMOUNT_RECIPIENTS;\n\nconst nullifiers = ['0x1234'];\n\nconst sendWithPublicWallet = false;\nconst overallBatchMinGasPrice = BigInt('0x1000');\n\n\nconst setCached = (proofType: ProofType) => {\n setCachedProvedTransaction({\n proofType,\n txidVersion,\n transaction: {} as ContractTransaction,\n showSenderAddressToRecipient,\n memoText,\n dopWalletID,\n erc20AmountRecipients,\n nftAmountRecipients,\n relayAdaptDecryptERC20Amounts,\n relayAdaptDecryptNFTAmounts,\n relayAdaptEncryptERC20Recipients,\n relayAdaptEncryptNFTRecipients,\n crossContractCalls,\n broadcasterFeeERC20AmountRecipient,\n sendWithPublicWallet: false,\n overallBatchMinGasPrice,\n nullifiers,\n });\n};\n\ndescribe('proof-cache', () => {\n it('Should validate cached transaction correctly', () => {\n setCachedProvedTransaction(undefined);\n expect(() =>\n validateCachedProvedTransaction(\n txidVersion,\n networkName,\n ProofType.CrossContractCalls,\n dopWalletID,\n showSenderAddressToRecipient,\n memoText,\n erc20AmountRecipients,\n nftAmountRecipients,\n relayAdaptDecryptERC20Amounts,\n relayAdaptDecryptNFTAmounts,\n relayAdaptEncryptERC20Recipients,\n relayAdaptEncryptNFTRecipients,\n crossContractCalls,\n broadcasterFeeERC20AmountRecipient,\n sendWithPublicWallet,\n overallBatchMinGasPrice,\n ),\n ).to.throw('No proof found.');\n\n setCached(ProofType.CrossContractCalls);\n\n // Same same\n expect(() =>\n validateCachedProvedTransaction(\n txidVersion,\n networkName,\n ProofType.CrossContractCalls,\n dopWalletID,\n showSenderAddressToRecipient,\n memoText,\n erc20AmountRecipients,\n nftAmountRecipients,\n relayAdaptDecryptERC20Amounts,\n relayAdaptDecryptNFTAmounts,\n relayAdaptEncryptERC20Recipients,\n relayAdaptEncryptNFTRecipients,\n crossContractCalls,\n broadcasterFeeERC20AmountRecipient,\n sendWithPublicWallet,\n overallBatchMinGasPrice,\n ),\n ).to.not.throw();\n\n expect(() =>\n validateCachedProvedTransaction(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n 'something else' as any,\n networkName,\n ProofType.CrossContractCalls,\n dopWalletID,\n showSenderAddressToRecipient,\n memoText,\n erc20AmountRecipients,\n nftAmountRecipients,\n relayAdaptDecryptERC20Amounts,\n relayAdaptDecryptNFTAmounts,\n relayAdaptEncryptERC20Recipients,\n relayAdaptEncryptNFTRecipients,\n crossContractCalls,\n broadcasterFeeERC20AmountRecipient,\n sendWithPublicWallet,\n overallBatchMinGasPrice,\n ),\n ).to.throw('Mismatch: txidVersion.');\n\n expect(() =>\n validateCachedProvedTransaction(\n txidVersion,\n networkName,\n ProofType.Decrypt,\n dopWalletID,\n showSenderAddressToRecipient,\n memoText,\n erc20AmountRecipients,\n nftAmountRecipients,\n relayAdaptDecryptERC20Amounts,\n relayAdaptDecryptNFTAmounts,\n relayAdaptEncryptERC20Recipients,\n relayAdaptEncryptNFTRecipients,\n crossContractCalls,\n broadcasterFeeERC20AmountRecipient,\n sendWithPublicWallet,\n overallBatchMinGasPrice,\n ),\n ).to.throw('Mismatch: proofType.');\n\n expect(() =>\n validateCachedProvedTransaction(\n txidVersion,\n networkName,\n ProofType.Transfer,\n dopWalletID,\n showSenderAddressToRecipient,\n memoText,\n erc20AmountRecipients,\n nftAmountRecipients,\n relayAdaptDecryptERC20Amounts,\n relayAdaptDecryptNFTAmounts,\n relayAdaptEncryptERC20Recipients,\n relayAdaptEncryptNFTRecipients,\n crossContractCalls,\n broadcasterFeeERC20AmountRecipient,\n sendWithPublicWallet,\n overallBatchMinGasPrice,\n ),\n ).to.throw('Mismatch: proofType.');\n\n expect(() =>\n validateCachedProvedTransaction(\n txidVersion,\n networkName,\n ProofType.CrossContractCalls,\n '987',\n showSenderAddressToRecipient,\n memoText,\n erc20AmountRecipients,\n nftAmountRecipients,\n relayAdaptDecryptERC20Amounts,\n relayAdaptDecryptNFTAmounts,\n relayAdaptEncryptERC20Recipients,\n relayAdaptEncryptNFTRecipients,\n crossContractCalls,\n broadcasterFeeERC20AmountRecipient,\n sendWithPublicWallet,\n overallBatchMinGasPrice,\n ),\n ).to.throw('Mismatch: dopWalletID.');\n\n // Set new for Transfer proof type\n setCached(ProofType.Transfer);\n\n // Requires ProofType.Transfer\n expect(() =>\n validateCachedProvedTransaction(\n txidVersion,\n networkName,\n ProofType.Transfer,\n dopWalletID,\n false, // showSenderAddressToRecipient\n memoText,\n erc20AmountRecipients,\n nftAmountRecipients,\n relayAdaptDecryptERC20Amounts,\n relayAdaptDecryptNFTAmounts,\n relayAdaptEncryptERC20Recipients,\n relayAdaptEncryptNFTRecipients,\n crossContractCalls,\n broadcasterFeeERC20AmountRecipient,\n sendWithPublicWallet,\n overallBatchMinGasPrice,\n ),\n ).to.throw('Mismatch: showSenderAddressToRecipient.');\n\n // Requires ProofType.Transfer\n expect(() =>\n validateCachedProvedTransaction(\n txidVersion,\n networkName,\n ProofType.Transfer,\n dopWalletID,\n showSenderAddressToRecipient,\n 'different memo',\n erc20AmountRecipients,\n nftAmountRecipients,\n relayAdaptDecryptERC20Amounts,\n relayAdaptDecryptNFTAmounts,\n relayAdaptEncryptERC20Recipients,\n relayAdaptEncryptNFTRecipients,\n crossContractCalls,\n broadcasterFeeERC20AmountRecipient,\n sendWithPublicWallet,\n overallBatchMinGasPrice,\n ),\n ).to.throw('Mismatch: memoText.');\n\n // Requires ProofType.Transfer\n expect(() =>\n validateCachedProvedTransaction(\n txidVersion,\n networkName,\n ProofType.Transfer,\n dopWalletID,\n showSenderAddressToRecipient,\n memoText,\n [\n {\n tokenAddress: '0x765',\n amount: 100n,\n recipientAddress: '0x123',\n },\n ],\n nftAmountRecipients,\n relayAdaptDecryptERC20Amounts,\n relayAdaptDecryptNFTAmounts,\n relayAdaptEncryptERC20Recipients,\n relayAdaptEncryptNFTRecipients,\n crossContractCalls,\n broadcasterFeeERC20AmountRecipient,\n sendWithPublicWallet,\n overallBatchMinGasPrice,\n ),\n ).to.throw('Mismatch: erc20AmountRecipients.');\n\n setCached(ProofType.CrossContractCalls);\n\n expect(() =>\n validateCachedProvedTransaction(\n txidVersion,\n networkName,\n ProofType.CrossContractCalls,\n dopWalletID,\n showSenderAddressToRecipient,\n memoText,\n erc20AmountRecipients,\n [MOCK_NFT_AMOUNT_RECIPIENTS[0]],\n relayAdaptDecryptERC20Amounts,\n relayAdaptDecryptNFTAmounts,\n relayAdaptEncryptERC20Recipients,\n relayAdaptEncryptNFTRecipients,\n crossContractCalls,\n broadcasterFeeERC20AmountRecipient,\n sendWithPublicWallet,\n overallBatchMinGasPrice,\n ),\n ).to.throw('Mismatch: nftAmountRecipients.');\n\n // Note: requires ProofType.CrossContractCalls\n expect(() =>\n validateCachedProvedTransaction(\n txidVersion,\n networkName,\n ProofType.CrossContractCalls,\n dopWalletID,\n showSenderAddressToRecipient,\n memoText,\n erc20AmountRecipients,\n nftAmountRecipients,\n [\n {\n tokenAddress: '0x765',\n amount: 100n,\n },\n ],\n relayAdaptDecryptNFTAmounts,\n relayAdaptEncryptERC20Recipients,\n relayAdaptEncryptNFTRecipients,\n crossContractCalls,\n broadcasterFeeERC20AmountRecipient,\n sendWithPublicWallet,\n overallBatchMinGasPrice,\n ),\n ).to.throw('Mismatch: relayAdaptDecryptERC20Amounts.');\n\n // Note: requires ProofType.CrossContractCalls\n expect(() =>\n validateCachedProvedTransaction(\n txidVersion,\n networkName,\n ProofType.CrossContractCalls,\n dopWalletID,\n showSenderAddressToRecipient,\n memoText,\n erc20AmountRecipients,\n nftAmountRecipients,\n relayAdaptDecryptERC20Amounts,\n [MOCK_NFT_AMOUNTS[0]],\n relayAdaptEncryptERC20Recipients,\n relayAdaptEncryptNFTRecipients,\n crossContractCalls,\n broadcasterFeeERC20AmountRecipient,\n sendWithPublicWallet,\n overallBatchMinGasPrice,\n ),\n ).to.throw('Mismatch: relayAdaptDecryptNFTAmounts.');\n\n expect(() =>\n validateCachedProvedTransaction(\n txidVersion,\n networkName,\n // proofType (ProofType.Transfer) will not validate relayAdaptDecryptERC20Amounts.. requires ProofType.CrossContractCalls\n ProofType.CrossContractCalls,\n dopWalletID,\n showSenderAddressToRecipient,\n memoText,\n erc20AmountRecipients,\n nftAmountRecipients,\n relayAdaptDecryptERC20Amounts,\n relayAdaptDecryptNFTAmounts,\n [\n {\n tokenAddress: 'test',\n recipientAddress: MOCK_DOP_WALLET_ADDRESS,\n },\n ],\n relayAdaptEncryptNFTRecipients,\n crossContractCalls,\n broadcasterFeeERC20AmountRecipient,\n sendWithPublicWallet,\n overallBatchMinGasPrice,\n ),\n ).to.throw('Mismatch: relayAdaptEncryptERC20Recipients.');\n\n expect(() =>\n validateCachedProvedTransaction(\n txidVersion,\n networkName,\n // proofType (ProofType.Transfer) will not validate relayAdaptDecryptERC20Amounts.. requires ProofType.CrossContractCalls\n ProofType.CrossContractCalls,\n dopWalletID,\n showSenderAddressToRecipient,\n memoText,\n erc20AmountRecipients,\n nftAmountRecipients,\n relayAdaptDecryptERC20Amounts,\n relayAdaptDecryptNFTAmounts,\n [],\n relayAdaptEncryptNFTRecipients,\n crossContractCalls,\n broadcasterFeeERC20AmountRecipient,\n sendWithPublicWallet,\n overallBatchMinGasPrice,\n ),\n ).to.throw('Mismatch: relayAdaptEncryptERC20Recipients.');\n\n expect(() =>\n validateCachedProvedTransaction(\n txidVersion,\n networkName,\n // proofType (ProofType.Transfer) will not validate relayAdaptDecryptERC20Amounts.. requires ProofType.CrossContractCalls\n ProofType.CrossContractCalls,\n dopWalletID,\n showSenderAddressToRecipient,\n memoText,\n erc20AmountRecipients,\n nftAmountRecipients,\n relayAdaptDecryptERC20Amounts,\n relayAdaptDecryptNFTAmounts,\n relayAdaptEncryptERC20Recipients,\n [MOCK_NFT_AMOUNTS[0]],\n crossContractCalls,\n broadcasterFeeERC20AmountRecipient,\n sendWithPublicWallet,\n overallBatchMinGasPrice,\n ),\n ).to.throw('Mismatch: relayAdaptEncryptNFTRecipients.');\n\n expect(() =>\n validateCachedProvedTransaction(\n txidVersion,\n networkName,\n // proofType (ProofType.Transfer) will not validate relayAdaptDecryptERC20Amounts.. requires ProofType.CrossContractCalls\n ProofType.CrossContractCalls,\n dopWalletID,\n showSenderAddressToRecipient,\n memoText,\n erc20AmountRecipients,\n nftAmountRecipients,\n relayAdaptDecryptERC20Amounts,\n relayAdaptDecryptNFTAmounts,\n relayAdaptEncryptERC20Recipients,\n relayAdaptEncryptNFTRecipients,\n [{ to: 'test', data: '0x' }],\n broadcasterFeeERC20AmountRecipient,\n sendWithPublicWallet,\n overallBatchMinGasPrice,\n ),\n ).to.throw('Mismatch: crossContractCalls.');\n\n expect(() =>\n validateCachedProvedTransaction(\n txidVersion,\n networkName,\n ProofType.CrossContractCalls,\n dopWalletID,\n showSenderAddressToRecipient,\n memoText,\n erc20AmountRecipients,\n nftAmountRecipients,\n relayAdaptDecryptERC20Amounts,\n relayAdaptDecryptNFTAmounts,\n relayAdaptEncryptERC20Recipients,\n relayAdaptEncryptNFTRecipients,\n crossContractCalls,\n {\n tokenAddress: '0x765',\n amount: 100n,\n recipientAddress: '0x1233',\n },\n sendWithPublicWallet,\n overallBatchMinGasPrice,\n ),\n ).to.throw('Mismatch: broadcasterFeeERC20AmountRecipient.');\n\n expect(() =>\n validateCachedProvedTransaction(\n txidVersion,\n networkName,\n ProofType.CrossContractCalls,\n dopWalletID,\n showSenderAddressToRecipient,\n memoText,\n erc20AmountRecipients,\n nftAmountRecipients,\n relayAdaptDecryptERC20Amounts,\n relayAdaptDecryptNFTAmounts,\n relayAdaptEncryptERC20Recipients,\n relayAdaptEncryptNFTRecipients,\n crossContractCalls,\n broadcasterFeeERC20AmountRecipient,\n true, // sendWithPublicWallet\n overallBatchMinGasPrice,\n ),\n ).to.throw('Mismatch: sendWithPublicWallet.');\n\n expect(() =>\n validateCachedProvedTransaction(\n txidVersion,\n networkName,\n ProofType.CrossContractCalls,\n dopWalletID,\n showSenderAddressToRecipient,\n memoText,\n erc20AmountRecipients,\n nftAmountRecipients,\n relayAdaptDecryptERC20Amounts,\n relayAdaptDecryptNFTAmounts,\n relayAdaptEncryptERC20Recipients,\n relayAdaptEncryptNFTRecipients,\n crossContractCalls,\n broadcasterFeeERC20AmountRecipient,\n sendWithPublicWallet,\n BigInt('0x2000'),\n ),\n ).to.throw('Mismatch: overallBatchMinGasPrice.');\n });\n});\n"]}
1
+ {"version":3,"file":"proof-cache.test.js","sourceRoot":"","sources":["../../../../src/services/transactions/__tests__/proof-cache.test.ts"],"names":[],"mappings":"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","sourcesContent":["import chai from 'chai';\nimport chaiAsPromised from 'chai-as-promised';\nimport {\n ProofType,\n DopNFTAmountRecipient,\n DopERC20Amount,\n DopERC20AmountRecipient,\n NetworkName,\n DopNFTAmount,\n DopERC20Recipient,\n} from 'dop-sharedmodels-v3';\nimport {\n MOCK_NFT_AMOUNTS,\n MOCK_NFT_AMOUNT_RECIPIENTS,\n MOCK_DOP_WALLET_ADDRESS,\n MOCK_TOKEN_AMOUNTS,\n MOCK_TOKEN_FEE,\n} from '../../../tests/mocks.test';\nimport {\n setCachedProvedTransaction,\n validateCachedProvedTransaction,\n} from '../proof-cache';\nimport { ContractTransaction } from 'ethers';\nimport { getTestTXIDVersion } from '../../../tests/helper.test';\n\nchai.use(chaiAsPromised);\nconst { expect } = chai;\n\nconst networkName = NetworkName.BNBChain;\nconst txidVersion = getTestTXIDVersion();\nconst dopWalletID = '123';\nconst showSenderAddressToRecipient = true;\nconst memoText = 'Some memo';\nconst recipientAddress = '0x12345';\nconst erc20AmountRecipients: DopERC20AmountRecipient[] =\n MOCK_TOKEN_AMOUNTS.map(erc20Amount => ({\n ...erc20Amount,\n recipientAddress,\n }));\nconst nftAmountRecipients: DopNFTAmountRecipient[] =\n MOCK_NFT_AMOUNT_RECIPIENTS;\nconst broadcasterFeeERC20AmountRecipient: DopERC20AmountRecipient = {\n ...MOCK_TOKEN_FEE,\n recipientAddress: MOCK_DOP_WALLET_ADDRESS,\n};\nconst crossContractCalls: ContractTransaction[] = [\n { to: '0x4567', data: '0x' },\n];\nconst relayAdaptEncryptERC20Recipients: DopERC20Recipient[] = [\n { tokenAddress: '0x123', recipientAddress: MOCK_DOP_WALLET_ADDRESS },\n];\nconst relayAdaptDecryptERC20Amounts: DopERC20Amount[] = [MOCK_TOKEN_FEE];\nconst relayAdaptDecryptNFTAmounts: DopNFTAmount[] = MOCK_NFT_AMOUNTS;\nconst relayAdaptEncryptNFTRecipients: DopNFTAmountRecipient[] =\n MOCK_NFT_AMOUNT_RECIPIENTS;\n\nconst nullifiers = ['0x1234'];\n\nconst sendWithPublicWallet = false;\nconst overallBatchMinGasPrice = BigInt('0x1000');\n\n\nconst setCached = (proofType: ProofType) => {\n setCachedProvedTransaction({\n proofType,\n txidVersion,\n transaction: {} as ContractTransaction,\n showSenderAddressToRecipient,\n memoText,\n dopWalletID,\n erc20AmountRecipients,\n nftAmountRecipients,\n relayAdaptDecryptERC20Amounts,\n relayAdaptDecryptNFTAmounts,\n relayAdaptEncryptERC20Recipients,\n relayAdaptEncryptNFTRecipients,\n crossContractCalls,\n broadcasterFeeERC20AmountRecipient,\n sendWithPublicWallet: false,\n overallBatchMinGasPrice,\n nullifiers,\n });\n};\n\ndescribe('proof-cache', () => {\n it('Should validate cached transaction correctly', () => {\n setCachedProvedTransaction(undefined);\n expect(() =>\n validateCachedProvedTransaction(\n txidVersion,\n networkName,\n ProofType.CrossContractCalls,\n dopWalletID,\n showSenderAddressToRecipient,\n memoText,\n erc20AmountRecipients,\n nftAmountRecipients,\n relayAdaptDecryptERC20Amounts,\n relayAdaptDecryptNFTAmounts,\n relayAdaptEncryptERC20Recipients,\n relayAdaptEncryptNFTRecipients,\n crossContractCalls,\n broadcasterFeeERC20AmountRecipient,\n sendWithPublicWallet,\n overallBatchMinGasPrice,\n ),\n ).to.throw('No proof found.');\n\n setCached(ProofType.CrossContractCalls);\n\n // Same same\n expect(() =>\n validateCachedProvedTransaction(\n txidVersion,\n networkName,\n ProofType.CrossContractCalls,\n dopWalletID,\n showSenderAddressToRecipient,\n memoText,\n erc20AmountRecipients,\n nftAmountRecipients,\n relayAdaptDecryptERC20Amounts,\n relayAdaptDecryptNFTAmounts,\n relayAdaptEncryptERC20Recipients,\n relayAdaptEncryptNFTRecipients,\n crossContractCalls,\n broadcasterFeeERC20AmountRecipient,\n sendWithPublicWallet,\n overallBatchMinGasPrice,\n ),\n ).to.not.throw();\n\n expect(() =>\n validateCachedProvedTransaction(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n 'something else' as any,\n networkName,\n ProofType.CrossContractCalls,\n dopWalletID,\n showSenderAddressToRecipient,\n memoText,\n erc20AmountRecipients,\n nftAmountRecipients,\n relayAdaptDecryptERC20Amounts,\n relayAdaptDecryptNFTAmounts,\n relayAdaptEncryptERC20Recipients,\n relayAdaptEncryptNFTRecipients,\n crossContractCalls,\n broadcasterFeeERC20AmountRecipient,\n sendWithPublicWallet,\n overallBatchMinGasPrice,\n ),\n ).to.throw('Mismatch: txidVersion.');\n\n expect(() =>\n validateCachedProvedTransaction(\n txidVersion,\n networkName,\n ProofType.Decrypt,\n dopWalletID,\n showSenderAddressToRecipient,\n memoText,\n erc20AmountRecipients,\n nftAmountRecipients,\n relayAdaptDecryptERC20Amounts,\n relayAdaptDecryptNFTAmounts,\n relayAdaptEncryptERC20Recipients,\n relayAdaptEncryptNFTRecipients,\n crossContractCalls,\n broadcasterFeeERC20AmountRecipient,\n sendWithPublicWallet,\n overallBatchMinGasPrice,\n ),\n ).to.throw('Mismatch: proofType.');\n\n expect(() =>\n validateCachedProvedTransaction(\n txidVersion,\n networkName,\n ProofType.Transfer,\n dopWalletID,\n showSenderAddressToRecipient,\n memoText,\n erc20AmountRecipients,\n nftAmountRecipients,\n relayAdaptDecryptERC20Amounts,\n relayAdaptDecryptNFTAmounts,\n relayAdaptEncryptERC20Recipients,\n relayAdaptEncryptNFTRecipients,\n crossContractCalls,\n broadcasterFeeERC20AmountRecipient,\n sendWithPublicWallet,\n overallBatchMinGasPrice,\n ),\n ).to.throw('Mismatch: proofType.');\n\n expect(() =>\n validateCachedProvedTransaction(\n txidVersion,\n networkName,\n ProofType.CrossContractCalls,\n '987',\n showSenderAddressToRecipient,\n memoText,\n erc20AmountRecipients,\n nftAmountRecipients,\n relayAdaptDecryptERC20Amounts,\n relayAdaptDecryptNFTAmounts,\n relayAdaptEncryptERC20Recipients,\n relayAdaptEncryptNFTRecipients,\n crossContractCalls,\n broadcasterFeeERC20AmountRecipient,\n sendWithPublicWallet,\n overallBatchMinGasPrice,\n ),\n ).to.throw('Mismatch: dopWalletID.');\n\n // Set new for Transfer proof type\n setCached(ProofType.Transfer);\n\n // Requires ProofType.Transfer\n expect(() =>\n validateCachedProvedTransaction(\n txidVersion,\n networkName,\n ProofType.Transfer,\n dopWalletID,\n false, // showSenderAddressToRecipient\n memoText,\n erc20AmountRecipients,\n nftAmountRecipients,\n relayAdaptDecryptERC20Amounts,\n relayAdaptDecryptNFTAmounts,\n relayAdaptEncryptERC20Recipients,\n relayAdaptEncryptNFTRecipients,\n crossContractCalls,\n broadcasterFeeERC20AmountRecipient,\n sendWithPublicWallet,\n overallBatchMinGasPrice,\n ),\n ).to.throw('Mismatch: showSenderAddressToRecipient.');\n\n // Requires ProofType.Transfer\n expect(() =>\n validateCachedProvedTransaction(\n txidVersion,\n networkName,\n ProofType.Transfer,\n dopWalletID,\n showSenderAddressToRecipient,\n 'different memo',\n erc20AmountRecipients,\n nftAmountRecipients,\n relayAdaptDecryptERC20Amounts,\n relayAdaptDecryptNFTAmounts,\n relayAdaptEncryptERC20Recipients,\n relayAdaptEncryptNFTRecipients,\n crossContractCalls,\n broadcasterFeeERC20AmountRecipient,\n sendWithPublicWallet,\n overallBatchMinGasPrice,\n ),\n ).to.throw('Mismatch: memoText.');\n\n // Requires ProofType.Transfer\n expect(() =>\n validateCachedProvedTransaction(\n txidVersion,\n networkName,\n ProofType.Transfer,\n dopWalletID,\n showSenderAddressToRecipient,\n memoText,\n [\n {\n tokenAddress: '0x765',\n amount: 100n,\n recipientAddress: '0x123',\n },\n ],\n nftAmountRecipients,\n relayAdaptDecryptERC20Amounts,\n relayAdaptDecryptNFTAmounts,\n relayAdaptEncryptERC20Recipients,\n relayAdaptEncryptNFTRecipients,\n crossContractCalls,\n broadcasterFeeERC20AmountRecipient,\n sendWithPublicWallet,\n overallBatchMinGasPrice,\n ),\n ).to.throw('Mismatch: erc20AmountRecipients.');\n\n setCached(ProofType.CrossContractCalls);\n\n expect(() =>\n validateCachedProvedTransaction(\n txidVersion,\n networkName,\n ProofType.CrossContractCalls,\n dopWalletID,\n showSenderAddressToRecipient,\n memoText,\n erc20AmountRecipients,\n [MOCK_NFT_AMOUNT_RECIPIENTS[0]],\n relayAdaptDecryptERC20Amounts,\n relayAdaptDecryptNFTAmounts,\n relayAdaptEncryptERC20Recipients,\n relayAdaptEncryptNFTRecipients,\n crossContractCalls,\n broadcasterFeeERC20AmountRecipient,\n sendWithPublicWallet,\n overallBatchMinGasPrice,\n ),\n ).to.throw('Mismatch: nftAmountRecipients.');\n\n // Note: requires ProofType.CrossContractCalls\n expect(() =>\n validateCachedProvedTransaction(\n txidVersion,\n networkName,\n ProofType.CrossContractCalls,\n dopWalletID,\n showSenderAddressToRecipient,\n memoText,\n erc20AmountRecipients,\n nftAmountRecipients,\n [\n {\n tokenAddress: '0x765',\n amount: 100n,\n },\n ],\n relayAdaptDecryptNFTAmounts,\n relayAdaptEncryptERC20Recipients,\n relayAdaptEncryptNFTRecipients,\n crossContractCalls,\n broadcasterFeeERC20AmountRecipient,\n sendWithPublicWallet,\n overallBatchMinGasPrice,\n ),\n ).to.throw('Mismatch: relayAdaptDecryptERC20Amounts.');\n\n // Note: requires ProofType.CrossContractCalls\n expect(() =>\n validateCachedProvedTransaction(\n txidVersion,\n networkName,\n ProofType.CrossContractCalls,\n dopWalletID,\n showSenderAddressToRecipient,\n memoText,\n erc20AmountRecipients,\n nftAmountRecipients,\n relayAdaptDecryptERC20Amounts,\n [MOCK_NFT_AMOUNTS[0]],\n relayAdaptEncryptERC20Recipients,\n relayAdaptEncryptNFTRecipients,\n crossContractCalls,\n broadcasterFeeERC20AmountRecipient,\n sendWithPublicWallet,\n overallBatchMinGasPrice,\n ),\n ).to.throw('Mismatch: relayAdaptDecryptNFTAmounts.');\n\n expect(() =>\n validateCachedProvedTransaction(\n txidVersion,\n networkName,\n // proofType (ProofType.Transfer) will not validate relayAdaptDecryptERC20Amounts.. requires ProofType.CrossContractCalls\n ProofType.CrossContractCalls,\n dopWalletID,\n showSenderAddressToRecipient,\n memoText,\n erc20AmountRecipients,\n nftAmountRecipients,\n relayAdaptDecryptERC20Amounts,\n relayAdaptDecryptNFTAmounts,\n [\n {\n tokenAddress: 'test',\n recipientAddress: MOCK_DOP_WALLET_ADDRESS,\n },\n ],\n relayAdaptEncryptNFTRecipients,\n crossContractCalls,\n broadcasterFeeERC20AmountRecipient,\n sendWithPublicWallet,\n overallBatchMinGasPrice,\n ),\n ).to.throw('Mismatch: relayAdaptEncryptERC20Recipients.');\n\n expect(() =>\n validateCachedProvedTransaction(\n txidVersion,\n networkName,\n // proofType (ProofType.Transfer) will not validate relayAdaptDecryptERC20Amounts.. requires ProofType.CrossContractCalls\n ProofType.CrossContractCalls,\n dopWalletID,\n showSenderAddressToRecipient,\n memoText,\n erc20AmountRecipients,\n nftAmountRecipients,\n relayAdaptDecryptERC20Amounts,\n relayAdaptDecryptNFTAmounts,\n [],\n relayAdaptEncryptNFTRecipients,\n crossContractCalls,\n broadcasterFeeERC20AmountRecipient,\n sendWithPublicWallet,\n overallBatchMinGasPrice,\n ),\n ).to.throw('Mismatch: relayAdaptEncryptERC20Recipients.');\n\n expect(() =>\n validateCachedProvedTransaction(\n txidVersion,\n networkName,\n // proofType (ProofType.Transfer) will not validate relayAdaptDecryptERC20Amounts.. requires ProofType.CrossContractCalls\n ProofType.CrossContractCalls,\n dopWalletID,\n showSenderAddressToRecipient,\n memoText,\n erc20AmountRecipients,\n nftAmountRecipients,\n relayAdaptDecryptERC20Amounts,\n relayAdaptDecryptNFTAmounts,\n relayAdaptEncryptERC20Recipients,\n [MOCK_NFT_AMOUNTS[0]],\n crossContractCalls,\n broadcasterFeeERC20AmountRecipient,\n sendWithPublicWallet,\n overallBatchMinGasPrice,\n ),\n ).to.throw('Mismatch: relayAdaptEncryptNFTRecipients.');\n\n expect(() =>\n validateCachedProvedTransaction(\n txidVersion,\n networkName,\n // proofType (ProofType.Transfer) will not validate relayAdaptDecryptERC20Amounts.. requires ProofType.CrossContractCalls\n ProofType.CrossContractCalls,\n dopWalletID,\n showSenderAddressToRecipient,\n memoText,\n erc20AmountRecipients,\n nftAmountRecipients,\n relayAdaptDecryptERC20Amounts,\n relayAdaptDecryptNFTAmounts,\n relayAdaptEncryptERC20Recipients,\n relayAdaptEncryptNFTRecipients,\n [{ to: 'test', data: '0x' }],\n broadcasterFeeERC20AmountRecipient,\n sendWithPublicWallet,\n overallBatchMinGasPrice,\n ),\n ).to.throw('Mismatch: crossContractCalls.');\n\n expect(() =>\n validateCachedProvedTransaction(\n txidVersion,\n networkName,\n ProofType.CrossContractCalls,\n dopWalletID,\n showSenderAddressToRecipient,\n memoText,\n erc20AmountRecipients,\n nftAmountRecipients,\n relayAdaptDecryptERC20Amounts,\n relayAdaptDecryptNFTAmounts,\n relayAdaptEncryptERC20Recipients,\n relayAdaptEncryptNFTRecipients,\n crossContractCalls,\n {\n tokenAddress: '0x765',\n amount: 100n,\n recipientAddress: '0x1233',\n },\n sendWithPublicWallet,\n overallBatchMinGasPrice,\n ),\n ).to.throw('Mismatch: broadcasterFeeERC20AmountRecipient.');\n\n expect(() =>\n validateCachedProvedTransaction(\n txidVersion,\n networkName,\n ProofType.CrossContractCalls,\n dopWalletID,\n showSenderAddressToRecipient,\n memoText,\n erc20AmountRecipients,\n nftAmountRecipients,\n relayAdaptDecryptERC20Amounts,\n relayAdaptDecryptNFTAmounts,\n relayAdaptEncryptERC20Recipients,\n relayAdaptEncryptNFTRecipients,\n crossContractCalls,\n broadcasterFeeERC20AmountRecipient,\n true, // sendWithPublicWallet\n overallBatchMinGasPrice,\n ),\n ).to.throw('Mismatch: sendWithPublicWallet.');\n\n expect(() =>\n validateCachedProvedTransaction(\n txidVersion,\n networkName,\n ProofType.CrossContractCalls,\n dopWalletID,\n showSenderAddressToRecipient,\n memoText,\n erc20AmountRecipients,\n nftAmountRecipients,\n relayAdaptDecryptERC20Amounts,\n relayAdaptDecryptNFTAmounts,\n relayAdaptEncryptERC20Recipients,\n relayAdaptEncryptNFTRecipients,\n crossContractCalls,\n broadcasterFeeERC20AmountRecipient,\n sendWithPublicWallet,\n BigInt('0x2000'),\n ),\n ).to.throw('Mismatch: overallBatchMinGasPrice.');\n });\n});\n"]}
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const chai_1 = __importDefault(require("chai"));
7
7
  const chai_as_promised_1 = __importDefault(require("chai-as-promised"));
8
8
  const sinon_1 = __importDefault(require("sinon"));
9
- const dop_engine_v3_1 = require("dop-engine-v5");
10
- const dop_sharedmodels_v3_1 = require("dop-sharedmodels-v5");
9
+ const dop_engine_v3_1 = require("dop-engine-v3");
10
+ const dop_sharedmodels_v3_1 = require("dop-sharedmodels-v3");
11
11
  const setup_test_1 = require("../../../tests/setup.test");
12
12
  const mocks_test_1 = require("../../../tests/mocks.test");
13
13
  const wallets_1 = require("../../dop/wallets/wallets");
@@ -17,8 +17,8 @@ const formatted_relay_adapt_error_logs_json_1 = __importDefault(require("./json/
17
17
  const ethers_1 = require("ethers");
18
18
  const helper_test_1 = require("../../../tests/helper.test");
19
19
  let gasEstimateStub;
20
- let railProveStub;
21
- let railDummyProveStub;
20
+ let dopProveStub;
21
+ let dopDummyProveStub;
22
22
  let relayAdaptPopulateCrossContractCalls;
23
23
  let relayAdaptGasEstimateStub;
24
24
  let addDecryptDataSpy;
@@ -93,7 +93,7 @@ describe('tx-cross-contract-calls', () => {
93
93
  ...mocks_test_1.MOCK_TOKEN_FEE,
94
94
  recipientAddress: broadcasterDopAddress,
95
95
  };
96
- railProveStub = sinon_1.default.stub(dop_engine_v3_1.TransactionBatch.prototype, 'generateTransactions').resolves({
96
+ dopProveStub = sinon_1.default.stub(dop_engine_v3_1.TransactionBatch.prototype, 'generateTransactions').resolves({
97
97
  provedTransactions: [
98
98
  {
99
99
  nullifiers: mocks_test_1.MOCK_NULLIFIERS,
@@ -101,7 +101,7 @@ describe('tx-cross-contract-calls', () => {
101
101
  ],
102
102
  preTransactionPOIsPerTxidLeafPerList: {},
103
103
  });
104
- railDummyProveStub = sinon_1.default.stub(dop_engine_v3_1.TransactionBatch.prototype, 'generateDummyTransactions').resolves([
104
+ dopDummyProveStub = sinon_1.default.stub(dop_engine_v3_1.TransactionBatch.prototype, 'generateDummyTransactions').resolves([
105
105
  {
106
106
  txidVersion,
107
107
  commitments: mocks_test_1.MOCK_COMMITMENTS,
@@ -118,8 +118,8 @@ describe('tx-cross-contract-calls', () => {
118
118
  relayAdaptGasEstimateStub?.restore();
119
119
  });
120
120
  after(async () => {
121
- railProveStub.restore();
122
- railDummyProveStub.restore();
121
+ dopProveStub.restore();
122
+ dopDummyProveStub.restore();
123
123
  relayAdaptPopulateCrossContractCalls.restore();
124
124
  await (0, setup_test_1.closeTestEngine)();
125
125
  });