dop-wallet-v6 1.2.2 → 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 (155) 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.map +1 -1
  4. package/dist/services/artifacts/artifact-hash.d.ts +1 -1
  5. package/dist/services/artifacts/artifact-hash.js.map +1 -1
  6. package/dist/services/artifacts/artifact-util.d.ts +1 -1
  7. package/dist/services/artifacts/artifact-util.js.map +1 -1
  8. package/dist/services/dop/core/__tests__/providers.test.js +2 -2
  9. package/dist/services/dop/core/__tests__/providers.test.js.map +1 -1
  10. package/dist/services/dop/core/artifacts.d.ts +2 -2
  11. package/dist/services/dop/core/artifacts.js.map +1 -1
  12. package/dist/services/dop/core/encrypts.d.ts +1 -1
  13. package/dist/services/dop/core/encrypts.js.map +1 -1
  14. package/dist/services/dop/core/engine.d.ts +1 -1
  15. package/dist/services/dop/core/engine.js.map +1 -1
  16. package/dist/services/dop/core/init.d.ts +2 -2
  17. package/dist/services/dop/core/init.js.map +1 -1
  18. package/dist/services/dop/core/load-provider.d.ts +1 -1
  19. package/dist/services/dop/core/load-provider.js.map +1 -1
  20. package/dist/services/dop/core/merkletree.d.ts +2 -2
  21. package/dist/services/dop/core/merkletree.js.map +1 -1
  22. package/dist/services/dop/core/prover.d.ts +1 -1
  23. package/dist/services/dop/core/prover.js.map +1 -1
  24. package/dist/services/dop/core/providers.d.ts +2 -2
  25. package/dist/services/dop/core/providers.js.map +1 -1
  26. package/dist/services/dop/dop-txids/__tests__/dop-txid-sync-graph-v2.test.js.map +1 -1
  27. package/dist/services/dop/dop-txids/blinded-commitments.d.ts +1 -1
  28. package/dist/services/dop/dop-txids/blinded-commitments.js.map +1 -1
  29. package/dist/services/dop/dop-txids/dop-txid-graph-type-formatters.d.ts +1 -1
  30. package/dist/services/dop/dop-txids/dop-txid-graph-type-formatters.js.map +1 -1
  31. package/dist/services/dop/dop-txids/dop-txid-merkletrees.d.ts +1 -1
  32. package/dist/services/dop/dop-txids/dop-txid-merkletrees.js.map +1 -1
  33. package/dist/services/dop/dop-txids/dop-txid-sync-graph-v2.d.ts +1 -1
  34. package/dist/services/dop/dop-txids/dop-txid-sync-graph-v2.js.map +1 -1
  35. package/dist/services/dop/dop-txids/graphql/index.js +1 -1
  36. package/dist/services/dop/dop-txids/graphql/index.js.map +1 -1
  37. package/dist/services/dop/history/transaction-history.d.ts +2 -2
  38. package/dist/services/dop/history/transaction-history.js.map +1 -1
  39. package/dist/services/dop/index.d.ts +1 -0
  40. package/dist/services/dop/index.js +1 -0
  41. package/dist/services/dop/index.js.map +1 -1
  42. package/dist/services/dop/process/extract-transaction-data.d.ts +1 -1
  43. package/dist/services/dop/process/extract-transaction-data.js.map +1 -1
  44. package/dist/services/dop/profile/__tests__/profile-manager.test.d.ts +1 -0
  45. package/dist/services/dop/profile/__tests__/profile-manager.test.js +170 -0
  46. package/dist/services/dop/profile/__tests__/profile-manager.test.js.map +1 -0
  47. package/dist/services/dop/profile/__tests__/selective-transparency.test.d.ts +1 -0
  48. package/dist/services/dop/profile/__tests__/selective-transparency.test.js +256 -0
  49. package/dist/services/dop/profile/__tests__/selective-transparency.test.js.map +1 -0
  50. package/dist/services/dop/profile/__tests__/storage.test.d.ts +1 -0
  51. package/dist/services/dop/profile/__tests__/storage.test.js +174 -0
  52. package/dist/services/dop/profile/__tests__/storage.test.js.map +1 -0
  53. package/dist/services/dop/profile/index.d.ts +3 -0
  54. package/dist/services/dop/profile/index.js +20 -0
  55. package/dist/services/dop/profile/index.js.map +1 -0
  56. package/dist/services/dop/profile/profile-manager.d.ts +32 -0
  57. package/dist/services/dop/profile/profile-manager.js +235 -0
  58. package/dist/services/dop/profile/profile-manager.js.map +1 -0
  59. package/dist/services/dop/profile/selective-transparency.d.ts +82 -0
  60. package/dist/services/dop/profile/selective-transparency.js +447 -0
  61. package/dist/services/dop/profile/selective-transparency.js.map +1 -0
  62. package/dist/services/dop/profile/storage.d.ts +27 -0
  63. package/dist/services/dop/profile/storage.js +648 -0
  64. package/dist/services/dop/profile/storage.js.map +1 -0
  65. package/dist/services/dop/profile/types.d.ts +106 -0
  66. package/dist/services/dop/profile/types.js +3 -0
  67. package/dist/services/dop/profile/types.js.map +1 -0
  68. package/dist/services/dop/profile/usage-example.d.ts +11 -0
  69. package/dist/services/dop/profile/usage-example.js +143 -0
  70. package/dist/services/dop/profile/usage-example.js.map +1 -0
  71. package/dist/services/dop/quick-sync/V2/__tests__/quick-sync-events-graph-v2.test.js.map +1 -1
  72. package/dist/services/dop/quick-sync/V2/graph-type-formatters-v2.d.ts +1 -1
  73. package/dist/services/dop/quick-sync/V2/graph-type-formatters-v2.js.map +1 -1
  74. package/dist/services/dop/quick-sync/V2/graphql/index.js +1 -1
  75. package/dist/services/dop/quick-sync/V2/graphql/index.js.map +1 -1
  76. package/dist/services/dop/quick-sync/V2/quick-sync-events-graph-v2.d.ts +1 -1
  77. package/dist/services/dop/quick-sync/V2/quick-sync-events-graph-v2.js.map +1 -1
  78. package/dist/services/dop/quick-sync/V3/__tests__/quick-sync-events-graph-v3.test.js.map +1 -1
  79. package/dist/services/dop/quick-sync/V3/graph-type-formatters-v3.d.ts +1 -1
  80. package/dist/services/dop/quick-sync/V3/graph-type-formatters-v3.js.map +1 -1
  81. package/dist/services/dop/quick-sync/V3/quick-sync-events-graph-v3.d.ts +1 -1
  82. package/dist/services/dop/quick-sync/V3/quick-sync-events-graph-v3.js.map +1 -1
  83. package/dist/services/dop/quick-sync/graph-query.d.ts +1 -1
  84. package/dist/services/dop/quick-sync/graph-query.js.map +1 -1
  85. package/dist/services/dop/quick-sync/quick-sync-events.d.ts +1 -1
  86. package/dist/services/dop/quick-sync/quick-sync-events.js.map +1 -1
  87. package/dist/services/dop/quick-sync/shared-formatters.d.ts +1 -1
  88. package/dist/services/dop/quick-sync/shared-formatters.js.map +1 -1
  89. package/dist/services/dop/util/__tests__/bytes-util.test.js +1 -1
  90. package/dist/services/dop/util/__tests__/bytes-util.test.js.map +1 -1
  91. package/dist/services/dop/util/bytes.d.ts +1 -1
  92. package/dist/services/dop/util/bytes.js.map +1 -1
  93. package/dist/services/dop/util/crypto.d.ts +2 -2
  94. package/dist/services/dop/util/crypto.js.map +1 -1
  95. package/dist/services/dop/wallets/__tests__/balances-live.test.js.map +1 -1
  96. package/dist/services/dop/wallets/__tests__/balances-update.test.js.map +1 -1
  97. package/dist/services/dop/wallets/__tests__/balances.test.js.map +1 -1
  98. package/dist/services/dop/wallets/__tests__/wallets.test.js.map +1 -1
  99. package/dist/services/dop/wallets/balance-update.d.ts +2 -2
  100. package/dist/services/dop/wallets/balance-update.js.map +1 -1
  101. package/dist/services/dop/wallets/balances.d.ts +1 -1
  102. package/dist/services/dop/wallets/balances.js.map +1 -1
  103. package/dist/services/dop/wallets/wallets.d.ts +2 -2
  104. package/dist/services/dop/wallets/wallets.js.map +1 -1
  105. package/dist/services/ethers/ethers-util.js.map +1 -1
  106. package/dist/services/transactions/__tests__/proof-cache.test.js.map +1 -1
  107. package/dist/services/transactions/__tests__/tx-cross-contract-calls.test.js +6 -6
  108. package/dist/services/transactions/__tests__/tx-cross-contract-calls.test.js.map +1 -1
  109. package/dist/services/transactions/__tests__/tx-encrypt-base-token.test.js.map +1 -1
  110. package/dist/services/transactions/__tests__/tx-gas-details.test.js.map +1 -1
  111. package/dist/services/transactions/__tests__/tx-notes.test.js.map +1 -1
  112. package/dist/services/transactions/__tests__/tx-transfer.test.js +9 -9
  113. package/dist/services/transactions/__tests__/tx-transfer.test.js.map +1 -1
  114. package/dist/services/transactions/proof-cache.d.ts +1 -1
  115. package/dist/services/transactions/proof-cache.js.map +1 -1
  116. package/dist/services/transactions/tx-cross-contract-calls.d.ts +2 -2
  117. package/dist/services/transactions/tx-cross-contract-calls.js.map +1 -1
  118. package/dist/services/transactions/tx-decrypt.d.ts +1 -1
  119. package/dist/services/transactions/tx-decrypt.js.map +1 -1
  120. package/dist/services/transactions/tx-encrypt-base-token.d.ts +1 -1
  121. package/dist/services/transactions/tx-encrypt-base-token.js.map +1 -1
  122. package/dist/services/transactions/tx-encrypt.d.ts +1 -1
  123. package/dist/services/transactions/tx-encrypt.js.map +1 -1
  124. package/dist/services/transactions/tx-gas-broadcaster-fee-estimator.d.ts +2 -2
  125. package/dist/services/transactions/tx-gas-broadcaster-fee-estimator.js.map +1 -1
  126. package/dist/services/transactions/tx-gas-details.d.ts +1 -1
  127. package/dist/services/transactions/tx-gas-details.js.map +1 -1
  128. package/dist/services/transactions/tx-generator.d.ts +2 -2
  129. package/dist/services/transactions/tx-generator.js.map +1 -1
  130. package/dist/services/transactions/tx-notes.d.ts +2 -2
  131. package/dist/services/transactions/tx-notes.js.map +1 -1
  132. package/dist/services/transactions/tx-nullifiers.d.ts +1 -1
  133. package/dist/services/transactions/tx-nullifiers.js.map +1 -1
  134. package/dist/services/transactions/tx-proof-decrypt.d.ts +1 -1
  135. package/dist/services/transactions/tx-proof-decrypt.js.map +1 -1
  136. package/dist/services/transactions/tx-proof-transfer.d.ts +1 -1
  137. package/dist/services/transactions/tx-proof-transfer.js.map +1 -1
  138. package/dist/services/transactions/tx-transfer.d.ts +1 -1
  139. package/dist/services/transactions/tx-transfer.js.map +1 -1
  140. package/dist/tests/helper.test.d.ts +1 -1
  141. package/dist/tests/helper.test.js.map +1 -1
  142. package/dist/tests/mocks.test.d.ts +2 -2
  143. package/dist/tests/mocks.test.js.map +1 -1
  144. package/dist/tests/poi/test-wallet-poi-requester.test.d.ts +2 -2
  145. package/dist/tests/poi/test-wallet-poi-requester.test.js.map +1 -1
  146. package/dist/tests/setup.test.d.ts +1 -1
  147. package/dist/tests/setup.test.js.map +1 -1
  148. package/dist/tests/stubs/engine-stubs.test.d.ts +1 -1
  149. package/dist/tests/stubs/engine-stubs.test.js.map +1 -1
  150. package/dist/utils/blocked-address.js.map +1 -1
  151. package/dist/utils/error.js.map +1 -1
  152. package/dist/utils/gas-price.d.ts +1 -1
  153. package/dist/utils/gas-price.js.map +1 -1
  154. package/package.json +13 -3
  155. package/postinstall.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"artifact-downloader.test.js","sourceRoot":"","sources":["../../../../src/services/artifacts/__tests__/artifact-downloader.test.ts"],"names":[],"mappings":"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","sourcesContent":["/// <reference types=\"../../../types/global\" />\nimport chai from 'chai';\nimport chaiAsPromised from 'chai-as-promised';\nimport { Artifact, ArtifactName } from 'dop-sharedmodels-v5';\nimport { initTestEngine } from '../../../tests/setup.test';\nimport {\n clearArtifactCache,\n overrideArtifact,\n artifactGetterDownloadJustInTime,\n artifactCache,\n setUseNativeArtifacts,\n} from '../../dop/core/artifacts';\nimport { PublicInputsDop } from 'dop-engine-v5';\nimport { getArtifactVariantString } from '../artifact-util';\n\nchai.use(chaiAsPromised);\nconst { expect } = chai;\n\ndescribe('artifact-downloader', () => {\n before(async () => {\n const useNativeArtifacts = false;\n await initTestEngine(useNativeArtifacts);\n });\n\n // Skipped because we don't want to run this on every build.\n it.skip('Should download ALL artifacts - native and nodejs', async () => {\n setUseNativeArtifacts(true);\n\n clearArtifactCache();\n\n for (let i = 1; i <= 10; i += 1) {\n for (let j = 1; j <= 3; j += 1) {\n if (i === 10 && j === 5) {\n continue;\n }\n\n // console.log(`NATIVE: ${i}x${j}...`);\n\n const inputs: PublicInputsDop = {\n nullifiers: new Array<bigint>(i),\n merkleRoot: BigInt(0),\n boundParamsHash: BigInt(0),\n commitmentsOut: new Array<bigint>(j),\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const artifacts: Artifact =\n // eslint-disable-next-line no-await-in-loop\n await artifactGetterDownloadJustInTime.getArtifacts(inputs);\n\n expect(artifacts.vkey).to.not.be.undefined;\n expect(artifacts.zkey).to.not.be.undefined;\n expect(artifacts.wasm).to.be.undefined;\n expect(artifacts.dat).to.not.be.undefined;\n }\n }\n\n clearArtifactCache();\n setUseNativeArtifacts(false);\n\n for (let i = 1; i <= 10; i += 1) {\n for (let j = 1; j <= 5; j += 1) {\n if (i === 10 && j === 5) {\n continue;\n }\n\n // console.log(`NODEJS: ${i}x${j}...`);\n\n const inputs: PublicInputsDop = {\n nullifiers: new Array<bigint>(i),\n merkleRoot: BigInt(0),\n boundParamsHash: BigInt(0),\n commitmentsOut: new Array<bigint>(j),\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const artifacts: Artifact =\n // eslint-disable-next-line no-await-in-loop\n await artifactGetterDownloadJustInTime.getArtifacts(inputs);\n\n expect(artifacts.vkey).to.not.be.undefined;\n expect(artifacts.zkey).to.not.be.undefined;\n expect(artifacts.wasm).to.not.be.undefined;\n expect(artifacts.dat).to.be.undefined;\n }\n }\n }).timeout(30_000);\n});\n"]}
1
+ {"version":3,"file":"artifact-downloader.test.js","sourceRoot":"","sources":["../../../../src/services/artifacts/__tests__/artifact-downloader.test.ts"],"names":[],"mappings":"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","sourcesContent":["/// <reference types=\"../../../types/global\" />\nimport chai from 'chai';\nimport chaiAsPromised from 'chai-as-promised';\nimport { Artifact, ArtifactName } from 'dop-sharedmodels-v3';\nimport { initTestEngine } from '../../../tests/setup.test';\nimport {\n clearArtifactCache,\n overrideArtifact,\n artifactGetterDownloadJustInTime,\n artifactCache,\n setUseNativeArtifacts,\n} from '../../dop/core/artifacts';\nimport { PublicInputsDop } from 'dop-engine-v3';\nimport { getArtifactVariantString } from '../artifact-util';\n\nchai.use(chaiAsPromised);\nconst { expect } = chai;\n\ndescribe('artifact-downloader', () => {\n before(async () => {\n const useNativeArtifacts = false;\n await initTestEngine(useNativeArtifacts);\n });\n\n // Skipped because we don't want to run this on every build.\n it.skip('Should download ALL artifacts - native and nodejs', async () => {\n setUseNativeArtifacts(true);\n\n clearArtifactCache();\n\n for (let i = 1; i <= 10; i += 1) {\n for (let j = 1; j <= 3; j += 1) {\n if (i === 10 && j === 5) {\n continue;\n }\n\n // console.log(`NATIVE: ${i}x${j}...`);\n\n const inputs: PublicInputsDop = {\n nullifiers: new Array<bigint>(i),\n merkleRoot: BigInt(0),\n boundParamsHash: BigInt(0),\n commitmentsOut: new Array<bigint>(j),\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const artifacts: Artifact =\n // eslint-disable-next-line no-await-in-loop\n await artifactGetterDownloadJustInTime.getArtifacts(inputs);\n\n expect(artifacts.vkey).to.not.be.undefined;\n expect(artifacts.zkey).to.not.be.undefined;\n expect(artifacts.wasm).to.be.undefined;\n expect(artifacts.dat).to.not.be.undefined;\n }\n }\n\n clearArtifactCache();\n setUseNativeArtifacts(false);\n\n for (let i = 1; i <= 10; i += 1) {\n for (let j = 1; j <= 5; j += 1) {\n if (i === 10 && j === 5) {\n continue;\n }\n\n // console.log(`NODEJS: ${i}x${j}...`);\n\n const inputs: PublicInputsDop = {\n nullifiers: new Array<bigint>(i),\n merkleRoot: BigInt(0),\n boundParamsHash: BigInt(0),\n commitmentsOut: new Array<bigint>(j),\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const artifacts: Artifact =\n // eslint-disable-next-line no-await-in-loop\n await artifactGetterDownloadJustInTime.getArtifacts(inputs);\n\n expect(artifacts.vkey).to.not.be.undefined;\n expect(artifacts.zkey).to.not.be.undefined;\n expect(artifacts.wasm).to.not.be.undefined;\n expect(artifacts.dat).to.be.undefined;\n }\n }\n }).timeout(30_000);\n});\n"]}
@@ -1,4 +1,4 @@
1
- import { Artifact } from 'dop-sharedmodels-v5';
1
+ import { Artifact } from 'dop-sharedmodels-v3';
2
2
  import { ArtifactStore } from './artifact-store';
3
3
  export declare class ArtifactDownloader {
4
4
  private artifactStore;
@@ -1 +1 @@
1
- {"version":3,"file":"artifact-downloader.js","sourceRoot":"","sources":["../../../src/services/artifacts/artifact-downloader.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Artifact,\n ArtifactName,\n isDefined,\n promiseTimeout,\n} from 'dop-sharedmodels-v5';\nimport axios, { ResponseType } from 'axios';\nimport {\n artifactDownloadsDir,\n artifactDownloadsPath,\n decompressArtifact,\n getArtifactDownloadsPaths,\n getArtifactUrl,\n} from './artifact-util';\nimport { ArtifactStore } from './artifact-store';\nimport { reportAndSanitizeError } from '../../utils/error';\nimport { sendMessage } from '../../utils/logger';\nimport { validateArtifactDownload } from './artifact-hash';\n\nexport class ArtifactDownloader {\n private artifactStore: ArtifactStore;\n private useNativeArtifacts: boolean;\n\n constructor(artifactStore: ArtifactStore, useNativeArtifacts: boolean) {\n this.artifactStore = artifactStore;\n this.useNativeArtifacts = useNativeArtifacts;\n }\n\n downloadArtifacts = async (artifactVariantString: string): Promise<void> => {\n sendMessage(`Downloading artifacts: ${artifactVariantString}`);\n\n const [vkeyPath, zkeyPath, wasmOrDatPath] = await promiseTimeout(\n Promise.all([\n this.downloadArtifact(ArtifactName.VKEY, artifactVariantString),\n this.downloadArtifact(ArtifactName.ZKEY, artifactVariantString),\n this.downloadArtifact(\n this.useNativeArtifacts ? ArtifactName.DAT : ArtifactName.WASM,\n artifactVariantString,\n ),\n ]),\n 45000,\n new Error(\n `Timed out downloading artifact files for ${artifactVariantString} circuit. Please try again.`,\n ),\n );\n\n if (!isDefined(vkeyPath)) {\n throw new Error('Could not download vkey artifact.');\n }\n if (!isDefined(zkeyPath)) {\n throw new Error('Could not download zkey artifact.');\n }\n if (!isDefined(wasmOrDatPath)) {\n throw new Error(\n this.useNativeArtifacts\n ? 'Could not download dat artifact.'\n : 'Could not download wasm artifact.',\n );\n }\n };\n\n private downloadArtifact = async (\n artifactName: ArtifactName,\n artifactVariantString: string,\n ): Promise<string | undefined> => {\n const path = artifactDownloadsPath(artifactName, artifactVariantString);\n if (await this.artifactStore.exists(path)) {\n return path;\n }\n try {\n const url = getArtifactUrl(artifactName, artifactVariantString);\n\n const { data } = await axios.get<ArrayBuffer | Buffer | object>(url, {\n method: 'GET',\n responseType: ArtifactDownloader.artifactResponseType(artifactName),\n });\n\n // NodeJS downloads as Buffer.\n // Browser downloads as ArrayBuffer.\n // Both will validate with the same hash.\n\n let dataFormatted: ArrayBuffer | Buffer | string;\n\n if (data instanceof ArrayBuffer || data instanceof Buffer) {\n dataFormatted = data;\n } else if (typeof data === 'object') {\n dataFormatted = JSON.stringify(data);\n } else if (typeof data === 'string') {\n dataFormatted = JSON.stringify(JSON.parse(data));\n } else {\n throw new Error('Unexpected response data type');\n }\n\n const decompressedData = ArtifactDownloader.getArtifactData(\n dataFormatted,\n artifactName,\n );\n\n const isValid = await validateArtifactDownload(\n decompressedData,\n artifactName,\n artifactVariantString,\n );\n if (isValid) {\n await this.artifactStore.store(\n artifactDownloadsDir(artifactVariantString),\n path,\n decompressedData,\n );\n } else {\n throw new Error(\n `Invalid hash for artifact download: ${artifactName} for ${artifactVariantString}.`,\n );\n }\n\n return path;\n } catch (err) {\n throw reportAndSanitizeError(this.downloadArtifact.name, err);\n }\n };\n\n private static getArtifactData = (\n data: string | ArrayBuffer,\n artifactName: ArtifactName,\n ): string | Uint8Array => {\n switch (artifactName) {\n case ArtifactName.VKEY:\n return data as string;\n case ArtifactName.ZKEY:\n case ArtifactName.DAT:\n case ArtifactName.WASM:\n return decompressArtifact(data as ArrayBuffer);\n }\n };\n\n private static artifactResponseType = (\n artifactName: ArtifactName,\n ): ResponseType => {\n switch (artifactName) {\n case ArtifactName.VKEY:\n return 'text';\n case ArtifactName.ZKEY:\n case ArtifactName.DAT:\n case ArtifactName.WASM:\n return 'arraybuffer';\n }\n };\n\n private getDownloadedArtifact = async (\n path: string,\n ): Promise<string | Buffer | null> => {\n try {\n const storedItem = await this.artifactStore.get(path);\n return storedItem;\n } catch (err) {\n return null;\n }\n };\n\n getDownloadedArtifacts = async (\n artifactVariantString: string,\n ): Promise<Artifact> => {\n const artifactDownloadsPaths = getArtifactDownloadsPaths(\n artifactVariantString,\n );\n\n const [vkeyString, zkeyBuffer, datBuffer, wasmBuffer] = await Promise.all([\n this.getDownloadedArtifact(artifactDownloadsPaths[ArtifactName.VKEY]),\n this.getDownloadedArtifact(artifactDownloadsPaths[ArtifactName.ZKEY]),\n this.useNativeArtifacts\n ? this.getDownloadedArtifact(artifactDownloadsPaths[ArtifactName.DAT])\n : Promise.resolve(undefined),\n !this.useNativeArtifacts\n ? this.getDownloadedArtifact(artifactDownloadsPaths[ArtifactName.WASM])\n : Promise.resolve(undefined),\n ]);\n if (vkeyString == null) {\n throw new Error('Could not retrieve vkey artifact.');\n }\n if (zkeyBuffer == null) {\n throw new Error('Could not retrieve zkey artifact.');\n }\n if (this.useNativeArtifacts && datBuffer == null) {\n throw new Error('Could not retrieve dat artifact.');\n }\n if (!this.useNativeArtifacts && wasmBuffer == null) {\n throw new Error('Could not retrieve wasm artifact.');\n }\n\n return {\n vkey: JSON.parse(vkeyString as string),\n zkey: zkeyBuffer as Buffer,\n wasm: wasmBuffer as Buffer | undefined,\n dat: datBuffer as Buffer | undefined,\n };\n };\n}\n"]}
1
+ {"version":3,"file":"artifact-downloader.js","sourceRoot":"","sources":["../../../src/services/artifacts/artifact-downloader.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Artifact,\n ArtifactName,\n isDefined,\n promiseTimeout,\n} from 'dop-sharedmodels-v3';\nimport axios, { ResponseType } from 'axios';\nimport {\n artifactDownloadsDir,\n artifactDownloadsPath,\n decompressArtifact,\n getArtifactDownloadsPaths,\n getArtifactUrl,\n} from './artifact-util';\nimport { ArtifactStore } from './artifact-store';\nimport { reportAndSanitizeError } from '../../utils/error';\nimport { sendMessage } from '../../utils/logger';\nimport { validateArtifactDownload } from './artifact-hash';\n\nexport class ArtifactDownloader {\n private artifactStore: ArtifactStore;\n private useNativeArtifacts: boolean;\n\n constructor(artifactStore: ArtifactStore, useNativeArtifacts: boolean) {\n this.artifactStore = artifactStore;\n this.useNativeArtifacts = useNativeArtifacts;\n }\n\n downloadArtifacts = async (artifactVariantString: string): Promise<void> => {\n sendMessage(`Downloading artifacts: ${artifactVariantString}`);\n\n const [vkeyPath, zkeyPath, wasmOrDatPath] = await promiseTimeout(\n Promise.all([\n this.downloadArtifact(ArtifactName.VKEY, artifactVariantString),\n this.downloadArtifact(ArtifactName.ZKEY, artifactVariantString),\n this.downloadArtifact(\n this.useNativeArtifacts ? ArtifactName.DAT : ArtifactName.WASM,\n artifactVariantString,\n ),\n ]),\n 45000,\n new Error(\n `Timed out downloading artifact files for ${artifactVariantString} circuit. Please try again.`,\n ),\n );\n\n if (!isDefined(vkeyPath)) {\n throw new Error('Could not download vkey artifact.');\n }\n if (!isDefined(zkeyPath)) {\n throw new Error('Could not download zkey artifact.');\n }\n if (!isDefined(wasmOrDatPath)) {\n throw new Error(\n this.useNativeArtifacts\n ? 'Could not download dat artifact.'\n : 'Could not download wasm artifact.',\n );\n }\n };\n\n private downloadArtifact = async (\n artifactName: ArtifactName,\n artifactVariantString: string,\n ): Promise<string | undefined> => {\n const path = artifactDownloadsPath(artifactName, artifactVariantString);\n if (await this.artifactStore.exists(path)) {\n return path;\n }\n try {\n const url = getArtifactUrl(artifactName, artifactVariantString);\n\n const { data } = await axios.get<ArrayBuffer | Buffer | object>(url, {\n method: 'GET',\n responseType: ArtifactDownloader.artifactResponseType(artifactName),\n });\n\n // NodeJS downloads as Buffer.\n // Browser downloads as ArrayBuffer.\n // Both will validate with the same hash.\n\n let dataFormatted: ArrayBuffer | Buffer | string;\n\n if (data instanceof ArrayBuffer || data instanceof Buffer) {\n dataFormatted = data;\n } else if (typeof data === 'object') {\n dataFormatted = JSON.stringify(data);\n } else if (typeof data === 'string') {\n dataFormatted = JSON.stringify(JSON.parse(data));\n } else {\n throw new Error('Unexpected response data type');\n }\n\n const decompressedData = ArtifactDownloader.getArtifactData(\n dataFormatted,\n artifactName,\n );\n\n const isValid = await validateArtifactDownload(\n decompressedData,\n artifactName,\n artifactVariantString,\n );\n if (isValid) {\n await this.artifactStore.store(\n artifactDownloadsDir(artifactVariantString),\n path,\n decompressedData,\n );\n } else {\n throw new Error(\n `Invalid hash for artifact download: ${artifactName} for ${artifactVariantString}.`,\n );\n }\n\n return path;\n } catch (err) {\n throw reportAndSanitizeError(this.downloadArtifact.name, err);\n }\n };\n\n private static getArtifactData = (\n data: string | ArrayBuffer,\n artifactName: ArtifactName,\n ): string | Uint8Array => {\n switch (artifactName) {\n case ArtifactName.VKEY:\n return data as string;\n case ArtifactName.ZKEY:\n case ArtifactName.DAT:\n case ArtifactName.WASM:\n return decompressArtifact(data as ArrayBuffer);\n }\n };\n\n private static artifactResponseType = (\n artifactName: ArtifactName,\n ): ResponseType => {\n switch (artifactName) {\n case ArtifactName.VKEY:\n return 'text';\n case ArtifactName.ZKEY:\n case ArtifactName.DAT:\n case ArtifactName.WASM:\n return 'arraybuffer';\n }\n };\n\n private getDownloadedArtifact = async (\n path: string,\n ): Promise<string | Buffer | null> => {\n try {\n const storedItem = await this.artifactStore.get(path);\n return storedItem;\n } catch (err) {\n return null;\n }\n };\n\n getDownloadedArtifacts = async (\n artifactVariantString: string,\n ): Promise<Artifact> => {\n const artifactDownloadsPaths = getArtifactDownloadsPaths(\n artifactVariantString,\n );\n\n const [vkeyString, zkeyBuffer, datBuffer, wasmBuffer] = await Promise.all([\n this.getDownloadedArtifact(artifactDownloadsPaths[ArtifactName.VKEY]),\n this.getDownloadedArtifact(artifactDownloadsPaths[ArtifactName.ZKEY]),\n this.useNativeArtifacts\n ? this.getDownloadedArtifact(artifactDownloadsPaths[ArtifactName.DAT])\n : Promise.resolve(undefined),\n !this.useNativeArtifacts\n ? this.getDownloadedArtifact(artifactDownloadsPaths[ArtifactName.WASM])\n : Promise.resolve(undefined),\n ]);\n if (vkeyString == null) {\n throw new Error('Could not retrieve vkey artifact.');\n }\n if (zkeyBuffer == null) {\n throw new Error('Could not retrieve zkey artifact.');\n }\n if (this.useNativeArtifacts && datBuffer == null) {\n throw new Error('Could not retrieve dat artifact.');\n }\n if (!this.useNativeArtifacts && wasmBuffer == null) {\n throw new Error('Could not retrieve wasm artifact.');\n }\n\n return {\n vkey: JSON.parse(vkeyString as string),\n zkey: zkeyBuffer as Buffer,\n wasm: wasmBuffer as Buffer | undefined,\n dat: datBuffer as Buffer | undefined,\n };\n };\n}\n"]}
@@ -1,4 +1,4 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference types="node" />
3
- import { ArtifactName } from 'dop-sharedmodels-v5';
3
+ import { ArtifactName } from 'dop-sharedmodels-v3';
4
4
  export declare const validateArtifactDownload: (data: Uint8Array | Buffer | string, artifactName: ArtifactName, artifactVariantString: string) => Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"artifact-hash.js","sourceRoot":"","sources":["../../../src/services/artifacts/artifact-hash.ts"],"names":[],"mappings":";;;;;;AAAA,mCAAoC;AACpC,6DAA8D;AAC9D,+DAAyD;AAEzD,6FAAgE;AAChE,iDAA0C;AAC1C,iDAAoD;AAOpD,MAAM,uBAAuB,GAAG,CAC9B,YAA0B,EAC1B,qBAA6B,EACrB,EAAE;IACV,MAAM,MAAM,GAAG,iCAAwC,CAAC;IACxD,MAAM,aAAa,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;IACpD,IAAI,CAAC,IAAA,+BAAS,EAAC,aAAa,CAAC,EAAE;QAC7B,MAAM,IAAI,KAAK,CACb,yBAAyB,YAAY,KAAK,qBAAqB,EAAE,CAClE,CAAC;KACH;IACD,IAAI,YAAY,KAAK,kCAAY,CAAC,IAAI,EAAE;QACtC,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;KACjD;IACD,MAAM,IAAI,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;IACzC,IAAI,CAAC,IAAI,EAAE;QACT,MAAM,IAAI,KAAK,CACb,wBAAwB,YAAY,KAAK,qBAAqB,EAAE,CACjE,CAAC;KACH;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,IAAkC,EAAc,EAAE;IACtE,IAAI,IAAI,YAAY,UAAU,EAAE;QAC9B,OAAO,IAAI,CAAC;KACb;IACD,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QACzB,OAAO,IAAI,CAAC,MAAoB,CAAC;KAClC;IACD,OAAO,yBAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAC1C,CAAC,CAAC;AAEK,MAAM,wBAAwB,GAAG,KAAK,EAC3C,IAAkC,EAClC,YAA0B,EAC1B,qBAA6B,EACX,EAAE;IACpB,IAAI,YAAY,KAAK,kCAAY,CAAC,IAAI,EAAE;QACtC,OAAO,IAAI,CAAC;KACb;IACD,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,uBAAa;QACxB,CAAC,CAAC,yBAAS,CAAC,OAAO,CAAC,IAAA,kBAAM,EAAC,SAAS,CAAC,CAAC;QACtC,CAAC,CAAC,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,uBAAuB,CAC1C,YAAY,EACZ,qBAAqB,CACtB,CAAC;IACF,+BAA+B;IAC/B,sBAAsB;IACtB,sHAAsH;IACtH,OAAO;IACP,IAAI;IACJ,OAAO,IAAI,CAAA;AACb,CAAC,CAAC;AAtBW,QAAA,wBAAwB,4BAsBnC","sourcesContent":["import { createHash } from 'crypto';\nimport { ArtifactName, isDefined } from 'dop-sharedmodels-v5';\nimport { sha256 } from 'ethereum-cryptography/sha256.js';\nimport { sendErrorMessage } from '../../utils/logger';\nimport ARTIFACT_V2_HASHES from './json/artifact-v2-hashes.json';\nimport { ByteUtils } from 'dop-engine-v5';\nimport { isReactNative } from '../dop/util/runtime';\n\ntype ArtifactHashesJson = Record<\n string,\n Record<ArtifactName.DAT | ArtifactName.WASM | ArtifactName.ZKEY, string>\n>;\n\nconst getExpectedArtifactHash = (\n artifactName: ArtifactName,\n artifactVariantString: string,\n): string => {\n const hashes = ARTIFACT_V2_HASHES as ArtifactHashesJson;\n const variantHashes = hashes[artifactVariantString];\n if (!isDefined(variantHashes)) {\n throw new Error(\n `No hashes for variant ${artifactName}: ${artifactVariantString}`,\n );\n }\n if (artifactName === ArtifactName.VKEY) {\n throw new Error(`No artifact hashes for vkey.`);\n }\n const hash = variantHashes[artifactName];\n if (!hash) {\n throw new Error(\n `No hash for artifact ${artifactName}: ${artifactVariantString}`,\n );\n }\n return hash;\n};\n\nconst getDataBytes = (data: Uint8Array | Buffer | string): Uint8Array => {\n if (data instanceof Uint8Array) {\n return data;\n }\n if (Buffer.isBuffer(data)) {\n return data.buffer as Uint8Array;\n }\n return ByteUtils.hexStringToBytes(data);\n};\n\nexport const validateArtifactDownload = async (\n data: Uint8Array | Buffer | string,\n artifactName: ArtifactName,\n artifactVariantString: string,\n): Promise<boolean> => {\n if (artifactName === ArtifactName.VKEY) {\n return true;\n }\n const dataBytes = getDataBytes(data);\n const hash = isReactNative\n ? ByteUtils.hexlify(sha256(dataBytes))\n : createHash('sha256').update(dataBytes).digest('hex');\n const expectedHash = getExpectedArtifactHash(\n artifactName,\n artifactVariantString,\n );\n // if (hash !== expectedHash) {\n // sendErrorMessage(\n // `Validate artifact blob for ${artifactName}: ${artifactVariantString}. Got ${hash}, expected ${expectedHash}.`,\n // );\n // }\n return true\n};\n"]}
1
+ {"version":3,"file":"artifact-hash.js","sourceRoot":"","sources":["../../../src/services/artifacts/artifact-hash.ts"],"names":[],"mappings":";;;;;;AAAA,mCAAoC;AACpC,6DAA8D;AAC9D,+DAAyD;AAEzD,6FAAgE;AAChE,iDAA0C;AAC1C,iDAAoD;AAOpD,MAAM,uBAAuB,GAAG,CAC9B,YAA0B,EAC1B,qBAA6B,EACrB,EAAE;IACV,MAAM,MAAM,GAAG,iCAAwC,CAAC;IACxD,MAAM,aAAa,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;IACpD,IAAI,CAAC,IAAA,+BAAS,EAAC,aAAa,CAAC,EAAE;QAC7B,MAAM,IAAI,KAAK,CACb,yBAAyB,YAAY,KAAK,qBAAqB,EAAE,CAClE,CAAC;KACH;IACD,IAAI,YAAY,KAAK,kCAAY,CAAC,IAAI,EAAE;QACtC,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;KACjD;IACD,MAAM,IAAI,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;IACzC,IAAI,CAAC,IAAI,EAAE;QACT,MAAM,IAAI,KAAK,CACb,wBAAwB,YAAY,KAAK,qBAAqB,EAAE,CACjE,CAAC;KACH;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,IAAkC,EAAc,EAAE;IACtE,IAAI,IAAI,YAAY,UAAU,EAAE;QAC9B,OAAO,IAAI,CAAC;KACb;IACD,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QACzB,OAAO,IAAI,CAAC,MAAoB,CAAC;KAClC;IACD,OAAO,yBAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAC1C,CAAC,CAAC;AAEK,MAAM,wBAAwB,GAAG,KAAK,EAC3C,IAAkC,EAClC,YAA0B,EAC1B,qBAA6B,EACX,EAAE;IACpB,IAAI,YAAY,KAAK,kCAAY,CAAC,IAAI,EAAE;QACtC,OAAO,IAAI,CAAC;KACb;IACD,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,uBAAa;QACxB,CAAC,CAAC,yBAAS,CAAC,OAAO,CAAC,IAAA,kBAAM,EAAC,SAAS,CAAC,CAAC;QACtC,CAAC,CAAC,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,uBAAuB,CAC1C,YAAY,EACZ,qBAAqB,CACtB,CAAC;IACF,+BAA+B;IAC/B,sBAAsB;IACtB,sHAAsH;IACtH,OAAO;IACP,IAAI;IACJ,OAAO,IAAI,CAAA;AACb,CAAC,CAAC;AAtBW,QAAA,wBAAwB,4BAsBnC","sourcesContent":["import { createHash } from 'crypto';\nimport { ArtifactName, isDefined } from 'dop-sharedmodels-v3';\nimport { sha256 } from 'ethereum-cryptography/sha256.js';\nimport { sendErrorMessage } from '../../utils/logger';\nimport ARTIFACT_V2_HASHES from './json/artifact-v2-hashes.json';\nimport { ByteUtils } from 'dop-engine-v3';\nimport { isReactNative } from '../dop/util/runtime';\n\ntype ArtifactHashesJson = Record<\n string,\n Record<ArtifactName.DAT | ArtifactName.WASM | ArtifactName.ZKEY, string>\n>;\n\nconst getExpectedArtifactHash = (\n artifactName: ArtifactName,\n artifactVariantString: string,\n): string => {\n const hashes = ARTIFACT_V2_HASHES as ArtifactHashesJson;\n const variantHashes = hashes[artifactVariantString];\n if (!isDefined(variantHashes)) {\n throw new Error(\n `No hashes for variant ${artifactName}: ${artifactVariantString}`,\n );\n }\n if (artifactName === ArtifactName.VKEY) {\n throw new Error(`No artifact hashes for vkey.`);\n }\n const hash = variantHashes[artifactName];\n if (!hash) {\n throw new Error(\n `No hash for artifact ${artifactName}: ${artifactVariantString}`,\n );\n }\n return hash;\n};\n\nconst getDataBytes = (data: Uint8Array | Buffer | string): Uint8Array => {\n if (data instanceof Uint8Array) {\n return data;\n }\n if (Buffer.isBuffer(data)) {\n return data.buffer as Uint8Array;\n }\n return ByteUtils.hexStringToBytes(data);\n};\n\nexport const validateArtifactDownload = async (\n data: Uint8Array | Buffer | string,\n artifactName: ArtifactName,\n artifactVariantString: string,\n): Promise<boolean> => {\n if (artifactName === ArtifactName.VKEY) {\n return true;\n }\n const dataBytes = getDataBytes(data);\n const hash = isReactNative\n ? ByteUtils.hexlify(sha256(dataBytes))\n : createHash('sha256').update(dataBytes).digest('hex');\n const expectedHash = getExpectedArtifactHash(\n artifactName,\n artifactVariantString,\n );\n // if (hash !== expectedHash) {\n // sendErrorMessage(\n // `Validate artifact blob for ${artifactName}: ${artifactVariantString}. Got ${hash}, expected ${expectedHash}.`,\n // );\n // }\n return true\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { ArtifactName, ArtifactMapping } from 'dop-sharedmodels-v5';
1
+ import { ArtifactName, ArtifactMapping } from 'dop-sharedmodels-v3';
2
2
  export declare const artifactDownloadsDir: (artifactVariantString: string) => string;
3
3
  export declare const getArtifactVariantString: (nullifiers: number, commitments: number) => string;
4
4
  export declare const artifactDownloadsPath: (artifactName: ArtifactName, artifactVariantString: string) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"artifact-util.js","sourceRoot":"","sources":["../../../src/services/artifacts/artifact-util.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ArtifactName,\n ArtifactMapping,\n} from 'dop-sharedmodels-v5';\nimport brotliDecompress from 'brotli/decompress';\n\n// const IPFS_GATEWAY = 'https://ipfs-lb.com';\nconst IPFS_GATEWAY = 'https://purple-abstract-dingo-439.mypinata.cloud';\n\n// const MASTER_IPFS_HASH_ARTIFACTS = 'QmeBrG7pii1qTqsn7rusvDiqXopHPjCT9gR4PsmW7wXqZq';\n// const MASTER_IPFS_HASH_ARTIFACTS = 'bafybeifstdbysurwqmhbglbvf2bxnoeaiods74cyicygeuzhla3owj4zzi'; // staging\n// const MASTER_IPFS_HASH_ARTIFACTS = 'QmPKbQmGt17uic8xJLdA4wXSAZwSM4Aeg6dgqLohWrqB2Q'; // staging\nconst MASTER_IPFS_HASH_ARTIFACTS = 'QmVuLCMDysxZzasnJZexw6pLipMQGT1UYSbpa8rHh8iUah'; // prod\n\n\n// https://purple-abstract-dingo-439.mypinata.cloud/ipfs/QmNT44msrqeVj1WHFkWxi9Vg6KRoG573AVDBEsKmrSDyb5/\n\nexport const artifactDownloadsDir = (artifactVariantString: string) => {\n return `artifacts-v2.1/${artifactVariantString}`;\n};\n\nexport const getArtifactVariantString = (\n nullifiers: number,\n commitments: number,\n) => {\n console.log(\"nullifiers x commitments 1: \", nullifiers, commitments)\n return `${nullifiers}x${commitments}`;\n};\n\nexport const artifactDownloadsPath = (\n artifactName: ArtifactName,\n artifactVariantString: string,\n): string => {\n switch (artifactName) {\n case ArtifactName.WASM:\n return `${artifactDownloadsDir(artifactVariantString)}/wasm`;\n case ArtifactName.ZKEY:\n return `${artifactDownloadsDir(artifactVariantString)}/zkey`;\n case ArtifactName.VKEY:\n return `${artifactDownloadsDir(artifactVariantString)}/vkey.json`;\n case ArtifactName.DAT:\n return `${artifactDownloadsDir(artifactVariantString)}/dat`;\n }\n};\n\nexport const getArtifactDownloadsPaths = (\n artifactVariantString: string,\n): ArtifactMapping => {\n return {\n [ArtifactName.ZKEY]: artifactDownloadsPath(\n ArtifactName.ZKEY,\n artifactVariantString,\n ),\n [ArtifactName.WASM]: artifactDownloadsPath(\n ArtifactName.WASM,\n artifactVariantString,\n ),\n [ArtifactName.VKEY]: artifactDownloadsPath(\n ArtifactName.VKEY,\n artifactVariantString,\n ),\n [ArtifactName.DAT]: artifactDownloadsPath(\n ArtifactName.DAT,\n artifactVariantString,\n ),\n };\n};\n\nexport const decompressArtifact = (arrayBuffer: ArrayBuffer): Uint8Array => {\n const decompress = brotliDecompress as (input: Uint8Array) => Uint8Array;\n return decompress(Buffer.from(arrayBuffer));\n};\n\nconst getArtifactIPFSFilepath = (\n artifactName: ArtifactName,\n artifactVariantString: string,\n) => {\n switch (artifactName) {\n case ArtifactName.ZKEY:\n return `${artifactVariantString}/zkey.br`;\n case ArtifactName.WASM:\n return `prover/snarkjs/${artifactVariantString}.wasm.br`;\n case ArtifactName.VKEY:\n return `${artifactVariantString}/vkey.json`;\n case ArtifactName.DAT:\n return `prover/native/${artifactVariantString}.dat.br`;\n }\n throw new Error('Invalid artifact.');\n};\n\nexport const getArtifactUrl = (\n artifactName: ArtifactName,\n artifactVariantString: string,\n) => {\n const artifactFilepath = getArtifactIPFSFilepath(\n artifactName,\n artifactVariantString,\n );\n return `${IPFS_GATEWAY}/ipfs/${MASTER_IPFS_HASH_ARTIFACTS}/${artifactFilepath}`;\n};\n"]}
1
+ {"version":3,"file":"artifact-util.js","sourceRoot":"","sources":["../../../src/services/artifacts/artifact-util.ts"],"names":[],"mappings":";;;;;;AAAA,6DAG6B;AAC7B,mEAAiD;AAEjD,8CAA8C;AAC9C,MAAM,YAAY,GAAG,kDAAkD,CAAC;AAExE,uFAAuF;AACvF,+GAA+G;AAC/G,kGAAkG;AAClG,MAAM,0BAA0B,GAAG,gDAAgD,CAAC,CAAC,OAAO;AAG5F,wGAAwG;AAEjG,MAAM,oBAAoB,GAAG,CAAC,qBAA6B,EAAE,EAAE;IACpE,OAAO,kBAAkB,qBAAqB,EAAE,CAAC;AACnD,CAAC,CAAC;AAFW,QAAA,oBAAoB,wBAE/B;AAEK,MAAM,wBAAwB,GAAG,CACtC,UAAkB,EAClB,WAAmB,EACnB,EAAE;IACF,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,UAAU,EAAE,WAAW,CAAC,CAAA;IACpE,OAAO,GAAG,UAAU,IAAI,WAAW,EAAE,CAAC;AACxC,CAAC,CAAC;AANW,QAAA,wBAAwB,4BAMnC;AAEK,MAAM,qBAAqB,GAAG,CACnC,YAA0B,EAC1B,qBAA6B,EACrB,EAAE;IACV,QAAQ,YAAY,EAAE;QACpB,KAAK,kCAAY,CAAC,IAAI;YACpB,OAAO,GAAG,IAAA,4BAAoB,EAAC,qBAAqB,CAAC,OAAO,CAAC;QAC/D,KAAK,kCAAY,CAAC,IAAI;YACpB,OAAO,GAAG,IAAA,4BAAoB,EAAC,qBAAqB,CAAC,OAAO,CAAC;QAC/D,KAAK,kCAAY,CAAC,IAAI;YACpB,OAAO,GAAG,IAAA,4BAAoB,EAAC,qBAAqB,CAAC,YAAY,CAAC;QACpE,KAAK,kCAAY,CAAC,GAAG;YACnB,OAAO,GAAG,IAAA,4BAAoB,EAAC,qBAAqB,CAAC,MAAM,CAAC;KAC/D;AACH,CAAC,CAAC;AAdW,QAAA,qBAAqB,yBAchC;AAEK,MAAM,yBAAyB,GAAG,CACvC,qBAA6B,EACZ,EAAE;IACnB,OAAO;QACL,CAAC,kCAAY,CAAC,IAAI,CAAC,EAAE,IAAA,6BAAqB,EACxC,kCAAY,CAAC,IAAI,EACjB,qBAAqB,CACtB;QACD,CAAC,kCAAY,CAAC,IAAI,CAAC,EAAE,IAAA,6BAAqB,EACxC,kCAAY,CAAC,IAAI,EACjB,qBAAqB,CACtB;QACD,CAAC,kCAAY,CAAC,IAAI,CAAC,EAAE,IAAA,6BAAqB,EACxC,kCAAY,CAAC,IAAI,EACjB,qBAAqB,CACtB;QACD,CAAC,kCAAY,CAAC,GAAG,CAAC,EAAE,IAAA,6BAAqB,EACvC,kCAAY,CAAC,GAAG,EAChB,qBAAqB,CACtB;KACF,CAAC;AACJ,CAAC,CAAC;AArBW,QAAA,yBAAyB,6BAqBpC;AAEK,MAAM,kBAAkB,GAAG,CAAC,WAAwB,EAAc,EAAE;IACzE,MAAM,UAAU,GAAG,oBAAqD,CAAC;IACzE,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AAC9C,CAAC,CAAC;AAHW,QAAA,kBAAkB,sBAG7B;AAEF,MAAM,uBAAuB,GAAG,CAC9B,YAA0B,EAC1B,qBAA6B,EAC7B,EAAE;IACF,QAAQ,YAAY,EAAE;QACpB,KAAK,kCAAY,CAAC,IAAI;YACpB,OAAO,GAAG,qBAAqB,UAAU,CAAC;QAC5C,KAAK,kCAAY,CAAC,IAAI;YACpB,OAAO,kBAAkB,qBAAqB,UAAU,CAAC;QAC3D,KAAK,kCAAY,CAAC,IAAI;YACpB,OAAO,GAAG,qBAAqB,YAAY,CAAC;QAC9C,KAAK,kCAAY,CAAC,GAAG;YACnB,OAAO,iBAAiB,qBAAqB,SAAS,CAAC;KAC1D;IACD,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;AACvC,CAAC,CAAC;AAEK,MAAM,cAAc,GAAG,CAC5B,YAA0B,EAC1B,qBAA6B,EAC7B,EAAE;IACF,MAAM,gBAAgB,GAAG,uBAAuB,CAC9C,YAAY,EACZ,qBAAqB,CACtB,CAAC;IACF,OAAO,GAAG,YAAY,SAAS,0BAA0B,IAAI,gBAAgB,EAAE,CAAC;AAClF,CAAC,CAAC;AATW,QAAA,cAAc,kBASzB","sourcesContent":["import {\n ArtifactName,\n ArtifactMapping,\n} from 'dop-sharedmodels-v3';\nimport brotliDecompress from 'brotli/decompress';\n\n// const IPFS_GATEWAY = 'https://ipfs-lb.com';\nconst IPFS_GATEWAY = 'https://purple-abstract-dingo-439.mypinata.cloud';\n\n// const MASTER_IPFS_HASH_ARTIFACTS = 'QmeBrG7pii1qTqsn7rusvDiqXopHPjCT9gR4PsmW7wXqZq';\n// const MASTER_IPFS_HASH_ARTIFACTS = 'bafybeifstdbysurwqmhbglbvf2bxnoeaiods74cyicygeuzhla3owj4zzi'; // staging\n// const MASTER_IPFS_HASH_ARTIFACTS = 'QmPKbQmGt17uic8xJLdA4wXSAZwSM4Aeg6dgqLohWrqB2Q'; // staging\nconst MASTER_IPFS_HASH_ARTIFACTS = 'QmVuLCMDysxZzasnJZexw6pLipMQGT1UYSbpa8rHh8iUah'; // prod\n\n\n// https://purple-abstract-dingo-439.mypinata.cloud/ipfs/QmNT44msrqeVj1WHFkWxi9Vg6KRoG573AVDBEsKmrSDyb5/\n\nexport const artifactDownloadsDir = (artifactVariantString: string) => {\n return `artifacts-v2.1/${artifactVariantString}`;\n};\n\nexport const getArtifactVariantString = (\n nullifiers: number,\n commitments: number,\n) => {\n console.log(\"nullifiers x commitments 1: \", nullifiers, commitments)\n return `${nullifiers}x${commitments}`;\n};\n\nexport const artifactDownloadsPath = (\n artifactName: ArtifactName,\n artifactVariantString: string,\n): string => {\n switch (artifactName) {\n case ArtifactName.WASM:\n return `${artifactDownloadsDir(artifactVariantString)}/wasm`;\n case ArtifactName.ZKEY:\n return `${artifactDownloadsDir(artifactVariantString)}/zkey`;\n case ArtifactName.VKEY:\n return `${artifactDownloadsDir(artifactVariantString)}/vkey.json`;\n case ArtifactName.DAT:\n return `${artifactDownloadsDir(artifactVariantString)}/dat`;\n }\n};\n\nexport const getArtifactDownloadsPaths = (\n artifactVariantString: string,\n): ArtifactMapping => {\n return {\n [ArtifactName.ZKEY]: artifactDownloadsPath(\n ArtifactName.ZKEY,\n artifactVariantString,\n ),\n [ArtifactName.WASM]: artifactDownloadsPath(\n ArtifactName.WASM,\n artifactVariantString,\n ),\n [ArtifactName.VKEY]: artifactDownloadsPath(\n ArtifactName.VKEY,\n artifactVariantString,\n ),\n [ArtifactName.DAT]: artifactDownloadsPath(\n ArtifactName.DAT,\n artifactVariantString,\n ),\n };\n};\n\nexport const decompressArtifact = (arrayBuffer: ArrayBuffer): Uint8Array => {\n const decompress = brotliDecompress as (input: Uint8Array) => Uint8Array;\n return decompress(Buffer.from(arrayBuffer));\n};\n\nconst getArtifactIPFSFilepath = (\n artifactName: ArtifactName,\n artifactVariantString: string,\n) => {\n switch (artifactName) {\n case ArtifactName.ZKEY:\n return `${artifactVariantString}/zkey.br`;\n case ArtifactName.WASM:\n return `prover/snarkjs/${artifactVariantString}.wasm.br`;\n case ArtifactName.VKEY:\n return `${artifactVariantString}/vkey.json`;\n case ArtifactName.DAT:\n return `prover/native/${artifactVariantString}.dat.br`;\n }\n throw new Error('Invalid artifact.');\n};\n\nexport const getArtifactUrl = (\n artifactName: ArtifactName,\n artifactVariantString: string,\n) => {\n const artifactFilepath = getArtifactIPFSFilepath(\n artifactName,\n artifactVariantString,\n );\n return `${IPFS_GATEWAY}/ipfs/${MASTER_IPFS_HASH_ARTIFACTS}/${artifactFilepath}`;\n};\n"]}
@@ -29,8 +29,8 @@ describe('providers', () => {
29
29
  it('Should load provider with json, pull fees, and check created objects', async () => {
30
30
  const response = await (0, load_provider_1.loadProvider)(mocks_test_1.MOCK_FALLBACK_PROVIDER_JSON_CONFIG_SEPOLIA, dop_sharedmodels_v3_1.NetworkName.EthereumSepolia, 10000);
31
31
  expect(response.feesSerialized).to.deep.equal({
32
- encryptFeeV2: '25',
33
- decryptFeeV2: '25',
32
+ encryptFeeV2: '10',
33
+ decryptFeeV2: '10',
34
34
  encryptFeeV3: undefined,
35
35
  decryptFeeV3: undefined,
36
36
  });
@@ -1 +1 @@
1
- {"version":3,"file":"providers.test.js","sourceRoot":"","sources":["../../../../../src/services/dop/core/__tests__/providers.test.ts"],"names":[],"mappings":"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","sourcesContent":["import chai from 'chai';\nimport chaiAsPromised from 'chai-as-promised';\nimport {\n NetworkName,\n FallbackProviderJsonConfig,\n isDefined,\n NETWORK_CONFIG,\n} from 'dop-sharedmodels-v5';\nimport {\n MOCK_DB_ENCRYPTION_KEY,\n MOCK_FALLBACK_PROVIDER_JSON_CONFIG_SEPOLIA,\n} from '../../../../tests/mocks.test';\nimport { closeTestEngine, initTestEngine } from '../../../../tests/setup.test';\nimport { getFallbackProviderForNetwork } from '../providers';\nimport { loadProvider } from '../load-provider';\nimport { createDopWallet, walletForID } from '../../wallets/wallets';\nimport {\n getUTXOMerkletreeForNetwork,\n getTXIDMerkletreeForNetwork,\n} from '../merkletree';\nimport {\n DopVersionedSmartContracts,\n RelayAdaptVersionedSmartContracts,\n} from 'dop-engine-v5';\nimport { getTestTXIDVersion, isV2Test } from '../../../../tests/helper.test';\n\nchai.use(chaiAsPromised);\nconst { expect } = chai;\n\nconst MOCK_MNEMONIC_PROVIDERS_ONLY =\n 'pause crystal tornado alcohol genre cement fade large song like bag where';\n\nconst txidVersion = getTestTXIDVersion();\n\ndescribe('providers', () => {\n before(async () => {\n await closeTestEngine();\n await initTestEngine();\n });\n after(async () => {\n await closeTestEngine();\n });\n\n it('Should load provider with json, pull fees, and check created objects', async () => {\n const response = await loadProvider(\n MOCK_FALLBACK_PROVIDER_JSON_CONFIG_SEPOLIA,\n NetworkName.EthereumSepolia,\n 10_000, // pollingInterval\n );\n expect(response.feesSerialized).to.deep.equal({\n encryptFeeV2: '25',\n decryptFeeV2: '25',\n encryptFeeV3: undefined,\n decryptFeeV3: undefined,\n });\n\n expect(getFallbackProviderForNetwork(NetworkName.EthereumSepolia)).to.not.be\n .undefined;\n expect(() =>\n getFallbackProviderForNetwork(NetworkName.EthereumRopsten_DEPRECATED),\n ).to.throw;\n\n expect(getUTXOMerkletreeForNetwork(txidVersion, NetworkName.EthereumSepolia))\n .to.not.be.undefined;\n expect(() =>\n getUTXOMerkletreeForNetwork(\n txidVersion,\n NetworkName.EthereumRopsten_DEPRECATED,\n ),\n ).to.throw;\n\n // expect(getTXIDMerkletreeForNetwork(txidVersion, NetworkName.EthereumSepolia))\n // .to.be.undefined; // Until poi.launchBlock is defined.\n expect(() =>\n getTXIDMerkletreeForNetwork(\n txidVersion,\n NetworkName.EthereumRopsten_DEPRECATED,\n ),\n ).to.throw;\n\n const { chain } = NETWORK_CONFIG[NetworkName.EthereumSepolia];\n expect(\n DopVersionedSmartContracts.getEncryptApprovalContract(\n txidVersion,\n chain,\n ),\n ).to.not.be.undefined;\n\n if (isV2Test()) {\n // TODO-V3: Remove when ready\n expect(\n RelayAdaptVersionedSmartContracts.getRelayAdaptContract(\n txidVersion,\n chain,\n ),\n ).to.not.be.undefined;\n }\n\n const { chain: chainEthereumRopsten } =\n NETWORK_CONFIG[NetworkName.EthereumRopsten_DEPRECATED];\n expect(() =>\n RelayAdaptVersionedSmartContracts.getRelayAdaptContract(\n txidVersion,\n chainEthereumRopsten,\n ),\n ).to.throw;\n\n // Check that new wallet has merkletree.\n const dopWalletInfo = await createDopWallet(\n MOCK_DB_ENCRYPTION_KEY,\n MOCK_MNEMONIC_PROVIDERS_ONLY,\n undefined, // creationBlockNumbers\n );\n if (!isDefined(dopWalletInfo)) {\n throw new Error('Expected dopWalletInfo.');\n }\n const wallet = walletForID(dopWalletInfo.id);\n expect(\n wallet.getUTXOMerkletree(\n txidVersion,\n NETWORK_CONFIG[NetworkName.EthereumSepolia].chain,\n ),\n ).to.not.be.undefined;\n }).timeout(15_000);\n\n it('Should fail with invalid chain ID', async () => {\n await expect(\n loadProvider(\n { chainId: 55 } as FallbackProviderJsonConfig,\n NetworkName.BNBChain,\n 10000, // pollingInterval\n ),\n ).rejectedWith('Invalid chain ID');\n });\n\n it('Should fail with invalid json', async () => {\n await expect(\n loadProvider(\n { chainId: 56 } as FallbackProviderJsonConfig,\n NetworkName.BNBChain,\n 10000, // pollingInterval\n ),\n ).rejectedWith('Invalid fallback provider config for chain 56');\n });\n});\n"]}
1
+ {"version":3,"file":"providers.test.js","sourceRoot":"","sources":["../../../../../src/services/dop/core/__tests__/providers.test.ts"],"names":[],"mappings":"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","sourcesContent":["import chai from 'chai';\nimport chaiAsPromised from 'chai-as-promised';\nimport {\n NetworkName,\n FallbackProviderJsonConfig,\n isDefined,\n NETWORK_CONFIG,\n} from 'dop-sharedmodels-v3';\nimport {\n MOCK_DB_ENCRYPTION_KEY,\n MOCK_FALLBACK_PROVIDER_JSON_CONFIG_SEPOLIA,\n} from '../../../../tests/mocks.test';\nimport { closeTestEngine, initTestEngine } from '../../../../tests/setup.test';\nimport { getFallbackProviderForNetwork } from '../providers';\nimport { loadProvider } from '../load-provider';\nimport { createDopWallet, walletForID } from '../../wallets/wallets';\nimport {\n getUTXOMerkletreeForNetwork,\n getTXIDMerkletreeForNetwork,\n} from '../merkletree';\nimport {\n DopVersionedSmartContracts,\n RelayAdaptVersionedSmartContracts,\n} from 'dop-engine-v3';\nimport { getTestTXIDVersion, isV2Test } from '../../../../tests/helper.test';\n\nchai.use(chaiAsPromised);\nconst { expect } = chai;\n\nconst MOCK_MNEMONIC_PROVIDERS_ONLY =\n 'pause crystal tornado alcohol genre cement fade large song like bag where';\n\nconst txidVersion = getTestTXIDVersion();\n\ndescribe('providers', () => {\n before(async () => {\n await closeTestEngine();\n await initTestEngine();\n });\n after(async () => {\n await closeTestEngine();\n });\n\n it('Should load provider with json, pull fees, and check created objects', async () => {\n const response = await loadProvider(\n MOCK_FALLBACK_PROVIDER_JSON_CONFIG_SEPOLIA,\n NetworkName.EthereumSepolia,\n 10_000, // pollingInterval\n );\n expect(response.feesSerialized).to.deep.equal({\n encryptFeeV2: '10',\n decryptFeeV2: '10',\n encryptFeeV3: undefined,\n decryptFeeV3: undefined,\n });\n\n expect(getFallbackProviderForNetwork(NetworkName.EthereumSepolia)).to.not.be\n .undefined;\n expect(() =>\n getFallbackProviderForNetwork(NetworkName.EthereumRopsten_DEPRECATED),\n ).to.throw;\n\n expect(getUTXOMerkletreeForNetwork(txidVersion, NetworkName.EthereumSepolia))\n .to.not.be.undefined;\n expect(() =>\n getUTXOMerkletreeForNetwork(\n txidVersion,\n NetworkName.EthereumRopsten_DEPRECATED,\n ),\n ).to.throw;\n\n // expect(getTXIDMerkletreeForNetwork(txidVersion, NetworkName.EthereumSepolia))\n // .to.be.undefined; // Until poi.launchBlock is defined.\n expect(() =>\n getTXIDMerkletreeForNetwork(\n txidVersion,\n NetworkName.EthereumRopsten_DEPRECATED,\n ),\n ).to.throw;\n\n const { chain } = NETWORK_CONFIG[NetworkName.EthereumSepolia];\n expect(\n DopVersionedSmartContracts.getEncryptApprovalContract(\n txidVersion,\n chain,\n ),\n ).to.not.be.undefined;\n\n if (isV2Test()) {\n // TODO-V3: Remove when ready\n expect(\n RelayAdaptVersionedSmartContracts.getRelayAdaptContract(\n txidVersion,\n chain,\n ),\n ).to.not.be.undefined;\n }\n\n const { chain: chainEthereumRopsten } =\n NETWORK_CONFIG[NetworkName.EthereumRopsten_DEPRECATED];\n expect(() =>\n RelayAdaptVersionedSmartContracts.getRelayAdaptContract(\n txidVersion,\n chainEthereumRopsten,\n ),\n ).to.throw;\n\n // Check that new wallet has merkletree.\n const dopWalletInfo = await createDopWallet(\n MOCK_DB_ENCRYPTION_KEY,\n MOCK_MNEMONIC_PROVIDERS_ONLY,\n undefined, // creationBlockNumbers\n );\n if (!isDefined(dopWalletInfo)) {\n throw new Error('Expected dopWalletInfo.');\n }\n const wallet = walletForID(dopWalletInfo.id);\n expect(\n wallet.getUTXOMerkletree(\n txidVersion,\n NETWORK_CONFIG[NetworkName.EthereumSepolia].chain,\n ),\n ).to.not.be.undefined;\n }).timeout(15_000);\n\n it('Should fail with invalid chain ID', async () => {\n await expect(\n loadProvider(\n { chainId: 55 } as FallbackProviderJsonConfig,\n NetworkName.BNBChain,\n 10000, // pollingInterval\n ),\n ).rejectedWith('Invalid chain ID');\n });\n\n it('Should fail with invalid json', async () => {\n await expect(\n loadProvider(\n { chainId: 56 } as FallbackProviderJsonConfig,\n NetworkName.BNBChain,\n 10000, // pollingInterval\n ),\n ).rejectedWith('Invalid fallback provider config for chain 56');\n });\n});\n"]}
@@ -1,5 +1,5 @@
1
- import { ArtifactGetter, PublicInputsDop } from 'dop-engine-v5';
2
- import { Artifact } from 'dop-sharedmodels-v5';
1
+ import { ArtifactGetter, PublicInputsDop } from 'dop-engine-v3';
2
+ import { Artifact } from 'dop-sharedmodels-v3';
3
3
  import { ArtifactStore } from '../../artifacts/artifact-store';
4
4
  export declare const artifactCache: MapType<Artifact>;
5
5
  export declare const setArtifactStore: (store: ArtifactStore) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../src/services/dop/core/artifacts.ts"],"names":[],"mappings":";;;AACA,6DAI6B;AAC7B,6EAAyE;AAEzE,iEAEuC;AAEvC,IAAI,aAA4B,CAAC;AACjC,IAAI,kBAA2B,CAAC;AAEnB,QAAA,aAAa,GAAsB,EAAE,CAAC;AAE5C,MAAM,gBAAgB,GAAG,CAAC,KAAoB,EAAE,EAAE;IACvD,aAAa,GAAG,KAAK,CAAC;AACxB,CAAC,CAAC;AAFW,QAAA,gBAAgB,oBAE3B;AACK,MAAM,qBAAqB,GAAG,CAAC,SAAkB,EAAE,EAAE;IAC1D,kBAAkB,GAAG,SAAS,CAAC;AACjC,CAAC,CAAC;AAFW,QAAA,qBAAqB,yBAEhC;AAEK,MAAM,YAAY,GAAG,KAAK,EAC/B,MAAuB,EACJ,EAAE;IACrB,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;IAC5C,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,UAAU,EAAE,WAAW,CAAC,CAAA;IAClE,IAAA,0CAAoB,EAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAE9C,IAAI,kBAAkB,EAAE;QACtB,IAAI,WAAW,GAAG,CAAC,EAAE;YACnB,+DAA+D;YAC/D,MAAM,IAAI,KAAK,CACb,oGAAoG,UAAU,IAAI,WAAW,GAAG,CACjI,CAAC;SACH;KACF;IAED,MAAM,qBAAqB,GAAG,IAAA,wCAAwB,EACpD,UAAU,EACV,WAAW,CACZ,CAAC;IAEF,OAAO,wBAAwB,CAAC,qBAAqB,CAAC,CAAC;AACzD,CAAC,CAAC;AAvBW,QAAA,YAAY,gBAuBvB;AAEF,MAAM,wBAAwB,GAAG,KAAK,EACpC,qBAA6B,EACV,EAAE;IACrB,sCAAsC;IACtC,MAAM,cAAc,GAAG,qBAAa,CAAC,qBAAqB,CAAC,CAAC;IAC5D,IAAI,IAAA,+BAAS,EAAC,cAAc,CAAC,EAAE;QAC7B,OAAO,cAAc,CAAC;KACvB;IAED,MAAM,UAAU,GAAG,IAAI,wCAAkB,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC;IAE7E,kDAAkD;IAClD,IAAI;QACF,MAAM,mBAAmB,GAAG,MAAM,UAAU,CAAC,sBAAsB,CACjE,qBAAqB,CACtB,CAAC;QACF,qBAAa,CAAC,qBAAqB,CAAC,GAAG,mBAAmB,CAAC;QAC3D,OAAO,mBAAmB,CAAC;KAC5B;IAAC,OAAO,GAAG,EAAE;QACZ,uCAAuC;KACxC;IAED,oCAAoC;IACpC,MAAM,UAAU,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;IAC1D,MAAM,mBAAmB,GAAG,MAAM,UAAU,CAAC,sBAAsB,CACjE,qBAAqB,CACtB,CAAC;IACF,qBAAa,CAAC,qBAAqB,CAAC,GAAG,mBAAmB,CAAC;IAC3D,OAAO,mBAAmB,CAAC;AAC7B,CAAC,CAAC;AAEW,QAAA,gCAAgC,GAAmB;IAC9D,oBAAoB,EAApB,0CAAoB;IACpB,YAAY,EAAZ,oBAAY;CACb,CAAC;AAEK,MAAM,gBAAgB,GAAG,CAC9B,eAAuB,EACvB,QAAkB,EAClB,EAAE;IACF,qBAAa,CAAC,eAAe,CAAC,GAAG,QAAQ,CAAC;AAC5C,CAAC,CAAC;AALW,QAAA,gBAAgB,oBAK3B;AAEK,MAAM,kBAAkB,GAAG,GAAG,EAAE;IACrC,KAAK,MAAM,GAAG,IAAI,qBAAa,EAAE;QAC/B,IAAI,IAAA,+BAAS,EAAC,qBAAa,CAAC,GAAG,CAAC,CAAC,EAAE;YACjC,OAAO,qBAAa,CAAC,GAAG,CAAC,CAAC;SAC3B;KACF;AACH,CAAC,CAAC;AANW,QAAA,kBAAkB,sBAM7B","sourcesContent":["import { ArtifactGetter, PublicInputsDop } from 'dop-engine-v5';\nimport {\n Artifact,\n assertArtifactExists,\n isDefined,\n} from 'dop-sharedmodels-v5';\nimport { ArtifactDownloader } from '../../artifacts/artifact-downloader';\nimport { ArtifactStore } from '../../artifacts/artifact-store';\nimport {\n getArtifactVariantString,\n} from '../../artifacts/artifact-util';\n\nlet artifactStore: ArtifactStore;\nlet useNativeArtifacts: boolean;\n\nexport const artifactCache: MapType<Artifact> = {};\n\nexport const setArtifactStore = (store: ArtifactStore) => {\n artifactStore = store;\n};\nexport const setUseNativeArtifacts = (useNative: boolean) => {\n useNativeArtifacts = useNative;\n};\n\nexport const getArtifacts = async (\n inputs: PublicInputsDop,\n): Promise<Artifact> => {\n const nullifiers = inputs.nullifiers.length;\n const commitments = inputs.commitmentsOut.length;\n console.log(\"nullifiers x commitments: \", nullifiers, commitments)\n assertArtifactExists(nullifiers, commitments);\n\n if (useNativeArtifacts) {\n if (commitments > 3) {\n // native-prover-small only has INPUTS (1-10) and OUTPUTS (1-3)\n throw new Error(\n `Native artifacts (small) only support up to 3 circuit outputs. Cannot get artifacts for circuit: ${nullifiers}x${commitments}.`,\n );\n }\n }\n\n const artifactVariantString = getArtifactVariantString(\n nullifiers,\n commitments,\n );\n\n return downloadAndCacheArtifact(artifactVariantString);\n};\n\nconst downloadAndCacheArtifact = async (\n artifactVariantString: string,\n): Promise<Artifact> => {\n // Use artifact in cache if available.\n const cachedArtifact = artifactCache[artifactVariantString];\n if (isDefined(cachedArtifact)) {\n return cachedArtifact;\n }\n\n const downloader = new ArtifactDownloader(artifactStore, useNativeArtifacts);\n\n // Try to pull previously downloaded from storage.\n try {\n const downloadedArtifacts = await downloader.getDownloadedArtifacts(\n artifactVariantString,\n );\n artifactCache[artifactVariantString] = downloadedArtifacts;\n return downloadedArtifacts;\n } catch (err) {\n // No op. Artifacts not yet downloaded.\n }\n\n // Download anew. Throws upon error.\n await downloader.downloadArtifacts(artifactVariantString);\n const downloadedArtifacts = await downloader.getDownloadedArtifacts(\n artifactVariantString,\n );\n artifactCache[artifactVariantString] = downloadedArtifacts;\n return downloadedArtifacts;\n};\n\nexport const artifactGetterDownloadJustInTime: ArtifactGetter = {\n assertArtifactExists,\n getArtifacts,\n};\n\nexport const overrideArtifact = (\n artifactVariant: string,\n artifact: Artifact,\n) => {\n artifactCache[artifactVariant] = artifact;\n};\n\nexport const clearArtifactCache = () => {\n for (const key in artifactCache) {\n if (isDefined(artifactCache[key])) {\n delete artifactCache[key];\n }\n }\n};\n"]}
1
+ {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../src/services/dop/core/artifacts.ts"],"names":[],"mappings":";;;AACA,6DAI6B;AAC7B,6EAAyE;AAEzE,iEAEuC;AAEvC,IAAI,aAA4B,CAAC;AACjC,IAAI,kBAA2B,CAAC;AAEnB,QAAA,aAAa,GAAsB,EAAE,CAAC;AAE5C,MAAM,gBAAgB,GAAG,CAAC,KAAoB,EAAE,EAAE;IACvD,aAAa,GAAG,KAAK,CAAC;AACxB,CAAC,CAAC;AAFW,QAAA,gBAAgB,oBAE3B;AACK,MAAM,qBAAqB,GAAG,CAAC,SAAkB,EAAE,EAAE;IAC1D,kBAAkB,GAAG,SAAS,CAAC;AACjC,CAAC,CAAC;AAFW,QAAA,qBAAqB,yBAEhC;AAEK,MAAM,YAAY,GAAG,KAAK,EAC/B,MAAuB,EACJ,EAAE;IACrB,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;IAC5C,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,UAAU,EAAE,WAAW,CAAC,CAAA;IAClE,IAAA,0CAAoB,EAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAE9C,IAAI,kBAAkB,EAAE;QACtB,IAAI,WAAW,GAAG,CAAC,EAAE;YACnB,+DAA+D;YAC/D,MAAM,IAAI,KAAK,CACb,oGAAoG,UAAU,IAAI,WAAW,GAAG,CACjI,CAAC;SACH;KACF;IAED,MAAM,qBAAqB,GAAG,IAAA,wCAAwB,EACpD,UAAU,EACV,WAAW,CACZ,CAAC;IAEF,OAAO,wBAAwB,CAAC,qBAAqB,CAAC,CAAC;AACzD,CAAC,CAAC;AAvBW,QAAA,YAAY,gBAuBvB;AAEF,MAAM,wBAAwB,GAAG,KAAK,EACpC,qBAA6B,EACV,EAAE;IACrB,sCAAsC;IACtC,MAAM,cAAc,GAAG,qBAAa,CAAC,qBAAqB,CAAC,CAAC;IAC5D,IAAI,IAAA,+BAAS,EAAC,cAAc,CAAC,EAAE;QAC7B,OAAO,cAAc,CAAC;KACvB;IAED,MAAM,UAAU,GAAG,IAAI,wCAAkB,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC;IAE7E,kDAAkD;IAClD,IAAI;QACF,MAAM,mBAAmB,GAAG,MAAM,UAAU,CAAC,sBAAsB,CACjE,qBAAqB,CACtB,CAAC;QACF,qBAAa,CAAC,qBAAqB,CAAC,GAAG,mBAAmB,CAAC;QAC3D,OAAO,mBAAmB,CAAC;KAC5B;IAAC,OAAO,GAAG,EAAE;QACZ,uCAAuC;KACxC;IAED,oCAAoC;IACpC,MAAM,UAAU,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;IAC1D,MAAM,mBAAmB,GAAG,MAAM,UAAU,CAAC,sBAAsB,CACjE,qBAAqB,CACtB,CAAC;IACF,qBAAa,CAAC,qBAAqB,CAAC,GAAG,mBAAmB,CAAC;IAC3D,OAAO,mBAAmB,CAAC;AAC7B,CAAC,CAAC;AAEW,QAAA,gCAAgC,GAAmB;IAC9D,oBAAoB,EAApB,0CAAoB;IACpB,YAAY,EAAZ,oBAAY;CACb,CAAC;AAEK,MAAM,gBAAgB,GAAG,CAC9B,eAAuB,EACvB,QAAkB,EAClB,EAAE;IACF,qBAAa,CAAC,eAAe,CAAC,GAAG,QAAQ,CAAC;AAC5C,CAAC,CAAC;AALW,QAAA,gBAAgB,oBAK3B;AAEK,MAAM,kBAAkB,GAAG,GAAG,EAAE;IACrC,KAAK,MAAM,GAAG,IAAI,qBAAa,EAAE;QAC/B,IAAI,IAAA,+BAAS,EAAC,qBAAa,CAAC,GAAG,CAAC,CAAC,EAAE;YACjC,OAAO,qBAAa,CAAC,GAAG,CAAC,CAAC;SAC3B;KACF;AACH,CAAC,CAAC;AANW,QAAA,kBAAkB,sBAM7B","sourcesContent":["import { ArtifactGetter, PublicInputsDop } from 'dop-engine-v3';\nimport {\n Artifact,\n assertArtifactExists,\n isDefined,\n} from 'dop-sharedmodels-v3';\nimport { ArtifactDownloader } from '../../artifacts/artifact-downloader';\nimport { ArtifactStore } from '../../artifacts/artifact-store';\nimport {\n getArtifactVariantString,\n} from '../../artifacts/artifact-util';\n\nlet artifactStore: ArtifactStore;\nlet useNativeArtifacts: boolean;\n\nexport const artifactCache: MapType<Artifact> = {};\n\nexport const setArtifactStore = (store: ArtifactStore) => {\n artifactStore = store;\n};\nexport const setUseNativeArtifacts = (useNative: boolean) => {\n useNativeArtifacts = useNative;\n};\n\nexport const getArtifacts = async (\n inputs: PublicInputsDop,\n): Promise<Artifact> => {\n const nullifiers = inputs.nullifiers.length;\n const commitments = inputs.commitmentsOut.length;\n console.log(\"nullifiers x commitments: \", nullifiers, commitments)\n assertArtifactExists(nullifiers, commitments);\n\n if (useNativeArtifacts) {\n if (commitments > 3) {\n // native-prover-small only has INPUTS (1-10) and OUTPUTS (1-3)\n throw new Error(\n `Native artifacts (small) only support up to 3 circuit outputs. Cannot get artifacts for circuit: ${nullifiers}x${commitments}.`,\n );\n }\n }\n\n const artifactVariantString = getArtifactVariantString(\n nullifiers,\n commitments,\n );\n\n return downloadAndCacheArtifact(artifactVariantString);\n};\n\nconst downloadAndCacheArtifact = async (\n artifactVariantString: string,\n): Promise<Artifact> => {\n // Use artifact in cache if available.\n const cachedArtifact = artifactCache[artifactVariantString];\n if (isDefined(cachedArtifact)) {\n return cachedArtifact;\n }\n\n const downloader = new ArtifactDownloader(artifactStore, useNativeArtifacts);\n\n // Try to pull previously downloaded from storage.\n try {\n const downloadedArtifacts = await downloader.getDownloadedArtifacts(\n artifactVariantString,\n );\n artifactCache[artifactVariantString] = downloadedArtifacts;\n return downloadedArtifacts;\n } catch (err) {\n // No op. Artifacts not yet downloaded.\n }\n\n // Download anew. Throws upon error.\n await downloader.downloadArtifacts(artifactVariantString);\n const downloadedArtifacts = await downloader.getDownloadedArtifacts(\n artifactVariantString,\n );\n artifactCache[artifactVariantString] = downloadedArtifacts;\n return downloadedArtifacts;\n};\n\nexport const artifactGetterDownloadJustInTime: ArtifactGetter = {\n assertArtifactExists,\n getArtifacts,\n};\n\nexport const overrideArtifact = (\n artifactVariant: string,\n artifact: Artifact,\n) => {\n artifactCache[artifactVariant] = artifact;\n};\n\nexport const clearArtifactCache = () => {\n for (const key in artifactCache) {\n if (isDefined(artifactCache[key])) {\n delete artifactCache[key];\n }\n }\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { NetworkName, TXIDVersion } from 'dop-sharedmodels-v5';
1
+ import { NetworkName, TXIDVersion } from 'dop-sharedmodels-v3';
2
2
  export type EncryptData = {
3
3
  txid: string;
4
4
  commitmentHash: string;
@@ -1 +1 @@
1
- {"version":3,"file":"encrypts.js","sourceRoot":"","sources":["../../../../src/services/dop/core/encrypts.ts"],"names":[],"mappings":";;;AAAA,6DAI6B;AAC7B,qCAAqC;AACrC,iDAAqD;AAY9C,MAAM,cAAc,GAAG,KAAK,EACjC,WAAwB,EACxB,aAAqB,EACG,EAAE;IAC1B,MAAM,0BAA0B,GAAG,MAAM,OAAO,CAAC,GAAG,CAClD,oCAAoB,CAAC,GAAG,CAAC,KAAK,EAAC,WAAW,EAAC,EAAE;QAC3C,MAAM,QAAQ,GAAG,MAAM,IAAA,iCAAyB,EAC9C,WAAW,EACX,WAAW,EACX,aAAa,CACd,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC,CACH,CAAC;IACF,OAAO,0BAA0B,CAAC,IAAI,EAAE,CAAC;AAC3C,CAAC,CAAC;AAhBW,QAAA,cAAc,kBAgBzB;AAEK,MAAM,yBAAyB,GAAG,KAAK,EAC5C,WAAwB,EACxB,WAAwB,EACxB,aAAqB,EACG,EAAE;IAC1B,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;IAC3B,MAAM,EAAE,KAAK,EAAE,GAAG,oCAAc,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,kBAAkB,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAC9D,WAAW,EACX,KAAK,EACL,aAAa,CACd,CAAC;IAEF,OAAO,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;QACzC,MAAM,WAAW,GAAgB;YAC/B,IAAI,EAAE,KAAK,UAAU,CAAC,IAAI,EAAE;YAC5B,cAAc,EAAE,KAAK,UAAU,CAAC,IAAI,EAAE;YACtC,GAAG,EAAE,KAAK,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE;YACnC,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,WAAW,EAAE,UAAU,CAAC,WAAW;SACpC,CAAC;QACF,OAAO,WAAW,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAzBW,QAAA,yBAAyB,6BAyBpC","sourcesContent":["import {\n NETWORK_CONFIG,\n NetworkName,\n TXIDVersion,\n} from 'dop-sharedmodels-v5';\nimport { getEngine } from './engine';\nimport { ACTIVE_TXID_VERSIONS } from 'dop-engine-v5';\n\nexport type EncryptData = {\n txid: string;\n commitmentHash: string;\n npk: string;\n timestamp: Optional<number>;\n blockNumber: number;\n utxoTree: number;\n utxoIndex: number;\n};\n\nexport const getAllEncrypts = async (\n networkName: NetworkName,\n startingBlock: number,\n): Promise<EncryptData[]> => {\n const encryptsForEachTxidVersion = await Promise.all(\n ACTIVE_TXID_VERSIONS.map(async txidVersion => {\n const encrypts = await getEncryptsForTXIDVersion(\n txidVersion,\n networkName,\n startingBlock,\n );\n\n return encrypts;\n }),\n );\n return encryptsForEachTxidVersion.flat();\n};\n\nexport const getEncryptsForTXIDVersion = async (\n txidVersion: TXIDVersion,\n networkName: NetworkName,\n startingBlock: number,\n): Promise<EncryptData[]> => {\n const engine = getEngine();\n const { chain } = NETWORK_CONFIG[networkName];\n const encryptCommitments = await engine.getAllEncryptCommitments(\n txidVersion,\n chain,\n startingBlock,\n );\n\n return encryptCommitments.map(commitment => {\n const encryptData: EncryptData = {\n txid: `0x${commitment.txid}`,\n commitmentHash: `0x${commitment.hash}`,\n npk: `0x${commitment.preImage.npk}`,\n utxoTree: commitment.utxoTree,\n utxoIndex: commitment.utxoIndex,\n timestamp: commitment.timestamp,\n blockNumber: commitment.blockNumber,\n };\n return encryptData;\n });\n};\n"]}
1
+ {"version":3,"file":"encrypts.js","sourceRoot":"","sources":["../../../../src/services/dop/core/encrypts.ts"],"names":[],"mappings":";;;AAAA,6DAI6B;AAC7B,qCAAqC;AACrC,iDAAqD;AAY9C,MAAM,cAAc,GAAG,KAAK,EACjC,WAAwB,EACxB,aAAqB,EACG,EAAE;IAC1B,MAAM,0BAA0B,GAAG,MAAM,OAAO,CAAC,GAAG,CAClD,oCAAoB,CAAC,GAAG,CAAC,KAAK,EAAC,WAAW,EAAC,EAAE;QAC3C,MAAM,QAAQ,GAAG,MAAM,IAAA,iCAAyB,EAC9C,WAAW,EACX,WAAW,EACX,aAAa,CACd,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC,CACH,CAAC;IACF,OAAO,0BAA0B,CAAC,IAAI,EAAE,CAAC;AAC3C,CAAC,CAAC;AAhBW,QAAA,cAAc,kBAgBzB;AAEK,MAAM,yBAAyB,GAAG,KAAK,EAC5C,WAAwB,EACxB,WAAwB,EACxB,aAAqB,EACG,EAAE;IAC1B,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;IAC3B,MAAM,EAAE,KAAK,EAAE,GAAG,oCAAc,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,kBAAkB,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAC9D,WAAW,EACX,KAAK,EACL,aAAa,CACd,CAAC;IAEF,OAAO,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;QACzC,MAAM,WAAW,GAAgB;YAC/B,IAAI,EAAE,KAAK,UAAU,CAAC,IAAI,EAAE;YAC5B,cAAc,EAAE,KAAK,UAAU,CAAC,IAAI,EAAE;YACtC,GAAG,EAAE,KAAK,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE;YACnC,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,WAAW,EAAE,UAAU,CAAC,WAAW;SACpC,CAAC;QACF,OAAO,WAAW,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAzBW,QAAA,yBAAyB,6BAyBpC","sourcesContent":["import {\n NETWORK_CONFIG,\n NetworkName,\n TXIDVersion,\n} from 'dop-sharedmodels-v3';\nimport { getEngine } from './engine';\nimport { ACTIVE_TXID_VERSIONS } from 'dop-engine-v3';\n\nexport type EncryptData = {\n txid: string;\n commitmentHash: string;\n npk: string;\n timestamp: Optional<number>;\n blockNumber: number;\n utxoTree: number;\n utxoIndex: number;\n};\n\nexport const getAllEncrypts = async (\n networkName: NetworkName,\n startingBlock: number,\n): Promise<EncryptData[]> => {\n const encryptsForEachTxidVersion = await Promise.all(\n ACTIVE_TXID_VERSIONS.map(async txidVersion => {\n const encrypts = await getEncryptsForTXIDVersion(\n txidVersion,\n networkName,\n startingBlock,\n );\n\n return encrypts;\n }),\n );\n return encryptsForEachTxidVersion.flat();\n};\n\nexport const getEncryptsForTXIDVersion = async (\n txidVersion: TXIDVersion,\n networkName: NetworkName,\n startingBlock: number,\n): Promise<EncryptData[]> => {\n const engine = getEngine();\n const { chain } = NETWORK_CONFIG[networkName];\n const encryptCommitments = await engine.getAllEncryptCommitments(\n txidVersion,\n chain,\n startingBlock,\n );\n\n return encryptCommitments.map(commitment => {\n const encryptData: EncryptData = {\n txid: `0x${commitment.txid}`,\n commitmentHash: `0x${commitment.hash}`,\n npk: `0x${commitment.preImage.npk}`,\n utxoTree: commitment.utxoTree,\n utxoIndex: commitment.utxoIndex,\n timestamp: commitment.timestamp,\n blockNumber: commitment.blockNumber,\n };\n return encryptData;\n });\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { DopEngine } from 'dop-engine-v5';
1
+ import { DopEngine } from 'dop-engine-v3';
2
2
  export declare const getEngine: () => DopEngine;
3
3
  export declare const hasEngine: () => boolean;
4
4
  export declare const setEngine: (engine: Optional<DopEngine>) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../../src/services/dop/core/engine.ts"],"names":[],"mappings":";;;AACA,6DAAgD;AAEhD,IAAI,WAAgC,CAAC;AAE9B,MAAM,SAAS,GAAG,GAAc,EAAE;IACvC,IAAI,CAAC,WAAW,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;KACpD;IACD,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AALW,QAAA,SAAS,aAKpB;AAEK,MAAM,SAAS,GAAG,GAAY,EAAE;IACrC,OAAO,IAAA,+BAAS,EAAC,WAAW,CAAC,CAAC;AAChC,CAAC,CAAC;AAFW,QAAA,SAAS,aAEpB;AAEK,MAAM,SAAS,GAAG,CAAC,MAA2B,EAAE,EAAE;IACvD,WAAW,GAAG,MAAM,CAAC;AACvB,CAAC,CAAC;AAFW,QAAA,SAAS,aAEpB","sourcesContent":["import { DopEngine } from 'dop-engine-v5';\nimport { isDefined } from 'dop-sharedmodels-v5';\n\nlet savedEngine: Optional<DopEngine>;\n\nexport const getEngine = (): DopEngine => {\n if (!savedEngine) {\n throw new Error('DOP Engine not yet initialized.');\n }\n return savedEngine;\n};\n\nexport const hasEngine = (): boolean => {\n return isDefined(savedEngine);\n};\n\nexport const setEngine = (engine: Optional<DopEngine>) => {\n savedEngine = engine;\n};\n"]}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../../src/services/dop/core/engine.ts"],"names":[],"mappings":";;;AACA,6DAAgD;AAEhD,IAAI,WAAgC,CAAC;AAE9B,MAAM,SAAS,GAAG,GAAc,EAAE;IACvC,IAAI,CAAC,WAAW,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;KACpD;IACD,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AALW,QAAA,SAAS,aAKpB;AAEK,MAAM,SAAS,GAAG,GAAY,EAAE;IACrC,OAAO,IAAA,+BAAS,EAAC,WAAW,CAAC,CAAC;AAChC,CAAC,CAAC;AAFW,QAAA,SAAS,aAEpB;AAEK,MAAM,SAAS,GAAG,CAAC,MAA2B,EAAE,EAAE;IACvD,WAAW,GAAG,MAAM,CAAC;AACvB,CAAC,CAAC;AAFW,QAAA,SAAS,aAEpB","sourcesContent":["import { DopEngine } from 'dop-engine-v3';\nimport { isDefined } from 'dop-sharedmodels-v3';\n\nlet savedEngine: Optional<DopEngine>;\n\nexport const getEngine = (): DopEngine => {\n if (!savedEngine) {\n throw new Error('DOP Engine not yet initialized.');\n }\n return savedEngine;\n};\n\nexport const hasEngine = (): boolean => {\n return isDefined(savedEngine);\n};\n\nexport const setEngine = (engine: Optional<DopEngine>) => {\n savedEngine = engine;\n};\n"]}
@@ -1,6 +1,6 @@
1
1
  import type { AbstractLevelDOWN } from 'abstract-leveldown';
2
- import { POIList, POIListType } from 'dop-engine-v5';
3
- import { MerkletreeScanUpdateEvent } from 'dop-sharedmodels-v5';
2
+ import { POIList, POIListType } from 'dop-engine-v3';
3
+ import { MerkletreeScanUpdateEvent } from 'dop-sharedmodels-v3';
4
4
  import { ArtifactStore } from '../../artifacts/artifact-store';
5
5
  export type EngineDebugger = {
6
6
  log: (msg: string) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../src/services/dop/core/init.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AbstractLevelDOWN } from 'abstract-leveldown';\nimport {\n DopEngine,\n EngineEvent,\n MerkletreeHistoryScanEventData,\n POIList,\n POIListType,\n UTXOScanDecryptBalancesCompleteEventData,\n AbstractWallet,\n POIMerklerootsValidator,\n} from 'dop-engine-v5';\nimport {\n MerkletreeScanUpdateEvent,\n isDefined,\n type Chain,\n} from 'dop-sharedmodels-v5';\nimport { sendErrorMessage, sendMessage } from '../../../utils/logger';\nimport {\n artifactGetterDownloadJustInTime,\n setArtifactStore,\n setUseNativeArtifacts,\n} from './artifacts';\nimport { ArtifactStore } from '../../artifacts/artifact-store';\nimport { reportAndSanitizeError } from '../../../utils/error';\nimport { quickSyncEventsGraph } from '../quick-sync/quick-sync-events';\nimport { quickSyncDopTransactionsV2 } from '../dop-txids/dop-txid-sync-graph-v2';\nimport { setEngine, getEngine, hasEngine } from './engine';\nimport { onBalancesUpdate } from '../wallets/balance-update';\n\nexport type EngineDebugger = {\n log: (msg: string) => void;\n error: (error: Error) => void;\n verboseScanLogging: boolean;\n};\n\nconst createEngineDebugger = (verboseScanLogging: boolean): EngineDebugger => {\n return {\n log: (msg: string) => sendMessage(msg),\n error: (error: Error) => sendErrorMessage(error),\n verboseScanLogging,\n };\n};\n\nexport const setOnUTXOMerkletreeScanCallback = (\n onUTXOMerkletreeScanCallback: (scanData: MerkletreeScanUpdateEvent) => void,\n) => {\n const engine = getEngine();\n engine.on(\n EngineEvent.UTXOMerkletreeHistoryScanUpdate,\n ({ chain, scanStatus, progress }: MerkletreeHistoryScanEventData) =>\n onUTXOMerkletreeScanCallback({\n scanStatus,\n chain,\n progress: progress ?? 0.0,\n }),\n );\n};\n\nexport const setOnTXIDMerkletreeScanCallback = (\n onTXIDMerkletreeScanCallback: (scanData: MerkletreeScanUpdateEvent) => void,\n) => {\n const engine = getEngine();\n engine.on(\n EngineEvent.TXIDMerkletreeHistoryScanUpdate,\n ({ chain, scanStatus, progress }: MerkletreeHistoryScanEventData) =>\n onTXIDMerkletreeScanCallback({\n scanStatus,\n chain,\n progress: progress ?? 0.0,\n }),\n );\n};\n\nconst setOnUTXOScanDecryptBalancesCompleteListener = () => {\n const engine = getEngine();\n engine.on(\n EngineEvent.UTXOScanDecryptBalancesComplete,\n ({\n txidVersion,\n chain,\n walletIdFilter,\n }: UTXOScanDecryptBalancesCompleteEventData) => {\n const updateWalletBalances = async () => {\n let walletsToUpdate: AbstractWallet[] = Object.values(engine.wallets);\n if (isDefined(walletIdFilter)) {\n walletsToUpdate = walletsToUpdate.filter(wallet =>\n walletIdFilter.includes(wallet.id),\n );\n }\n\n // await onBalancesUpdate calls for each wallet\n await Promise.all(\n walletsToUpdate.map(wallet =>\n onBalancesUpdate(txidVersion, wallet, chain),\n ),\n );\n\n // emit event to notify listeners that UTXOMerkletreeHistoryScan is complete\n engine.emitScanEventHistoryComplete(txidVersion, chain);\n };\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n updateWalletBalances();\n },\n );\n};\n\n/**\n *\n * @param walletSource - Name for your wallet implementation. Encrypted and viewable in private transaction history. Maximum of 16 characters, lowercase.\n * @param db - LevelDOWN compatible database for storing encrypted wallets.\n * @param shouldDebug - Whether to forward Engine debug logs to Logger.\n * @param artifactStore - Persistent store for downloading large artifact files. See Wallet SDK Developer Guide for platform implementations.\n * @param useNativeArtifacts - Whether to download native C++ or web-assembly artifacts. TRUE for mobile. FALSE for nodejs and browser.\n * @param skipMerkletreeScans - Whether to skip merkletree syncs and private balance scans. Only set to TRUE in encrypt-only applications that don't load private wallets or balances.\n * @param poiNodeURLs - List of POI aggregator node URLs, in order of priority.\n * @param customPOILists - POI lists to use for additional wallet protections after default lists.\n * @returns\n */\nexport const startDopEngine = async (\n walletSource: string,\n db: AbstractLevelDOWN,\n shouldDebug: boolean,\n artifactStore: ArtifactStore,\n useNativeArtifacts: boolean,\n skipMerkletreeScans: boolean,\n verboseScanLogging = false,\n): Promise<void> => {\n if (hasEngine()) {\n return;\n }\n try {\n setArtifactStore(artifactStore);\n setUseNativeArtifacts(useNativeArtifacts);\n\n const engine = await DopEngine.initForWallet(\n walletSource,\n db,\n artifactGetterDownloadJustInTime,\n quickSyncEventsGraph,\n quickSyncDopTransactionsV2,\n shouldDebug ? createEngineDebugger(verboseScanLogging) : undefined,\n skipMerkletreeScans,\n );\n setEngine(engine);\n\n setOnUTXOScanDecryptBalancesCompleteListener();\n } catch (err) {\n throw reportAndSanitizeError(startDopEngine.name, err);\n }\n};\n\nexport const stopDopEngine = async () => {\n if (!hasEngine()) {\n return;\n }\n await getEngine()?.unload();\n setEngine(undefined);\n};\n\nexport { POIList, POIListType };\n"]}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../src/services/dop/core/init.ts"],"names":[],"mappings":";;;AACA,iDASuB;AAsJL,4FA1JhB,2BAAW,OA0JgB;AArJ7B,6DAI6B;AAC7B,kDAAsE;AACtE,2CAIqB;AAErB,gDAA8D;AAC9D,uEAAuE;AACvE,gFAAiF;AACjF,qCAA2D;AAC3D,8DAA6D;AAQ7D,MAAM,oBAAoB,GAAG,CAAC,kBAA2B,EAAkB,EAAE;IAC3E,OAAO;QACL,GAAG,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,IAAA,oBAAW,EAAC,GAAG,CAAC;QACtC,KAAK,EAAE,CAAC,KAAY,EAAE,EAAE,CAAC,IAAA,yBAAgB,EAAC,KAAK,CAAC;QAChD,kBAAkB;KACnB,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,+BAA+B,GAAG,CAC7C,4BAA2E,EAC3E,EAAE;IACF,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,CACP,2BAAW,CAAC,+BAA+B,EAC3C,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAkC,EAAE,EAAE,CAClE,4BAA4B,CAAC;QAC3B,UAAU;QACV,KAAK;QACL,QAAQ,EAAE,QAAQ,IAAI,GAAG;KAC1B,CAAC,CACL,CAAC;AACJ,CAAC,CAAC;AAbW,QAAA,+BAA+B,mCAa1C;AAEK,MAAM,+BAA+B,GAAG,CAC7C,4BAA2E,EAC3E,EAAE;IACF,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,CACP,2BAAW,CAAC,+BAA+B,EAC3C,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAkC,EAAE,EAAE,CAClE,4BAA4B,CAAC;QAC3B,UAAU;QACV,KAAK;QACL,QAAQ,EAAE,QAAQ,IAAI,GAAG;KAC1B,CAAC,CACL,CAAC;AACJ,CAAC,CAAC;AAbW,QAAA,+BAA+B,mCAa1C;AAEF,MAAM,4CAA4C,GAAG,GAAG,EAAE;IACxD,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,CACP,2BAAW,CAAC,+BAA+B,EAC3C,CAAC,EACC,WAAW,EACX,KAAK,EACL,cAAc,GAC2B,EAAE,EAAE;QAC7C,MAAM,oBAAoB,GAAG,KAAK,IAAI,EAAE;YACtC,IAAI,eAAe,GAAqB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACtE,IAAI,IAAA,+BAAS,EAAC,cAAc,CAAC,EAAE;gBAC7B,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAChD,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CACnC,CAAC;aACH;YAED,+CAA+C;YAC/C,MAAM,OAAO,CAAC,GAAG,CACf,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAC3B,IAAA,iCAAgB,EAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,CAC7C,CACF,CAAC;YAEF,4EAA4E;YAC5E,MAAM,CAAC,4BAA4B,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAC1D,CAAC,CAAC;QAEF,mEAAmE;QACnE,oBAAoB,EAAE,CAAC;IACzB,CAAC,CACF,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;;;;;;GAWG;AACI,MAAM,cAAc,GAAG,KAAK,EACjC,YAAoB,EACpB,EAAqB,EACrB,WAAoB,EACpB,aAA4B,EAC5B,kBAA2B,EAC3B,mBAA4B,EAC5B,kBAAkB,GAAG,KAAK,EACX,EAAE;IACjB,IAAI,IAAA,kBAAS,GAAE,EAAE;QACf,OAAO;KACR;IACD,IAAI;QACF,IAAA,4BAAgB,EAAC,aAAa,CAAC,CAAC;QAChC,IAAA,iCAAqB,EAAC,kBAAkB,CAAC,CAAC;QAE1C,MAAM,MAAM,GAAG,MAAM,yBAAS,CAAC,aAAa,CAC1C,YAAY,EACZ,EAAE,EACF,4CAAgC,EAChC,wCAAoB,EACpB,mDAA0B,EAC1B,WAAW,CAAC,CAAC,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,SAAS,EAClE,mBAAmB,CACpB,CAAC;QACF,IAAA,kBAAS,EAAC,MAAM,CAAC,CAAC;QAElB,4CAA4C,EAAE,CAAC;KAChD;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAA,8BAAsB,EAAC,sBAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KACxD;AACH,CAAC,CAAC;AA/BW,QAAA,cAAc,kBA+BzB;AAEK,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;IACtC,IAAI,CAAC,IAAA,kBAAS,GAAE,EAAE;QAChB,OAAO;KACR;IACD,MAAM,IAAA,kBAAS,GAAE,EAAE,MAAM,EAAE,CAAC;IAC5B,IAAA,kBAAS,EAAC,SAAS,CAAC,CAAC;AACvB,CAAC,CAAC;AANW,QAAA,aAAa,iBAMxB","sourcesContent":["import type { AbstractLevelDOWN } from 'abstract-leveldown';\nimport {\n DopEngine,\n EngineEvent,\n MerkletreeHistoryScanEventData,\n POIList,\n POIListType,\n UTXOScanDecryptBalancesCompleteEventData,\n AbstractWallet,\n POIMerklerootsValidator,\n} from 'dop-engine-v3';\nimport {\n MerkletreeScanUpdateEvent,\n isDefined,\n type Chain,\n} from 'dop-sharedmodels-v3';\nimport { sendErrorMessage, sendMessage } from '../../../utils/logger';\nimport {\n artifactGetterDownloadJustInTime,\n setArtifactStore,\n setUseNativeArtifacts,\n} from './artifacts';\nimport { ArtifactStore } from '../../artifacts/artifact-store';\nimport { reportAndSanitizeError } from '../../../utils/error';\nimport { quickSyncEventsGraph } from '../quick-sync/quick-sync-events';\nimport { quickSyncDopTransactionsV2 } from '../dop-txids/dop-txid-sync-graph-v2';\nimport { setEngine, getEngine, hasEngine } from './engine';\nimport { onBalancesUpdate } from '../wallets/balance-update';\n\nexport type EngineDebugger = {\n log: (msg: string) => void;\n error: (error: Error) => void;\n verboseScanLogging: boolean;\n};\n\nconst createEngineDebugger = (verboseScanLogging: boolean): EngineDebugger => {\n return {\n log: (msg: string) => sendMessage(msg),\n error: (error: Error) => sendErrorMessage(error),\n verboseScanLogging,\n };\n};\n\nexport const setOnUTXOMerkletreeScanCallback = (\n onUTXOMerkletreeScanCallback: (scanData: MerkletreeScanUpdateEvent) => void,\n) => {\n const engine = getEngine();\n engine.on(\n EngineEvent.UTXOMerkletreeHistoryScanUpdate,\n ({ chain, scanStatus, progress }: MerkletreeHistoryScanEventData) =>\n onUTXOMerkletreeScanCallback({\n scanStatus,\n chain,\n progress: progress ?? 0.0,\n }),\n );\n};\n\nexport const setOnTXIDMerkletreeScanCallback = (\n onTXIDMerkletreeScanCallback: (scanData: MerkletreeScanUpdateEvent) => void,\n) => {\n const engine = getEngine();\n engine.on(\n EngineEvent.TXIDMerkletreeHistoryScanUpdate,\n ({ chain, scanStatus, progress }: MerkletreeHistoryScanEventData) =>\n onTXIDMerkletreeScanCallback({\n scanStatus,\n chain,\n progress: progress ?? 0.0,\n }),\n );\n};\n\nconst setOnUTXOScanDecryptBalancesCompleteListener = () => {\n const engine = getEngine();\n engine.on(\n EngineEvent.UTXOScanDecryptBalancesComplete,\n ({\n txidVersion,\n chain,\n walletIdFilter,\n }: UTXOScanDecryptBalancesCompleteEventData) => {\n const updateWalletBalances = async () => {\n let walletsToUpdate: AbstractWallet[] = Object.values(engine.wallets);\n if (isDefined(walletIdFilter)) {\n walletsToUpdate = walletsToUpdate.filter(wallet =>\n walletIdFilter.includes(wallet.id),\n );\n }\n\n // await onBalancesUpdate calls for each wallet\n await Promise.all(\n walletsToUpdate.map(wallet =>\n onBalancesUpdate(txidVersion, wallet, chain),\n ),\n );\n\n // emit event to notify listeners that UTXOMerkletreeHistoryScan is complete\n engine.emitScanEventHistoryComplete(txidVersion, chain);\n };\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n updateWalletBalances();\n },\n );\n};\n\n/**\n *\n * @param walletSource - Name for your wallet implementation. Encrypted and viewable in private transaction history. Maximum of 16 characters, lowercase.\n * @param db - LevelDOWN compatible database for storing encrypted wallets.\n * @param shouldDebug - Whether to forward Engine debug logs to Logger.\n * @param artifactStore - Persistent store for downloading large artifact files. See Wallet SDK Developer Guide for platform implementations.\n * @param useNativeArtifacts - Whether to download native C++ or web-assembly artifacts. TRUE for mobile. FALSE for nodejs and browser.\n * @param skipMerkletreeScans - Whether to skip merkletree syncs and private balance scans. Only set to TRUE in encrypt-only applications that don't load private wallets or balances.\n * @param poiNodeURLs - List of POI aggregator node URLs, in order of priority.\n * @param customPOILists - POI lists to use for additional wallet protections after default lists.\n * @returns\n */\nexport const startDopEngine = async (\n walletSource: string,\n db: AbstractLevelDOWN,\n shouldDebug: boolean,\n artifactStore: ArtifactStore,\n useNativeArtifacts: boolean,\n skipMerkletreeScans: boolean,\n verboseScanLogging = false,\n): Promise<void> => {\n if (hasEngine()) {\n return;\n }\n try {\n setArtifactStore(artifactStore);\n setUseNativeArtifacts(useNativeArtifacts);\n\n const engine = await DopEngine.initForWallet(\n walletSource,\n db,\n artifactGetterDownloadJustInTime,\n quickSyncEventsGraph,\n quickSyncDopTransactionsV2,\n shouldDebug ? createEngineDebugger(verboseScanLogging) : undefined,\n skipMerkletreeScans,\n );\n setEngine(engine);\n\n setOnUTXOScanDecryptBalancesCompleteListener();\n } catch (err) {\n throw reportAndSanitizeError(startDopEngine.name, err);\n }\n};\n\nexport const stopDopEngine = async () => {\n if (!hasEngine()) {\n return;\n }\n await getEngine()?.unload();\n setEngine(undefined);\n};\n\nexport { POIList, POIListType };\n"]}
@@ -1,4 +1,4 @@
1
- import { FallbackProviderJsonConfig, LoadProviderResponse, NetworkName } from 'dop-sharedmodels-v5';
1
+ import { FallbackProviderJsonConfig, LoadProviderResponse, NetworkName } from 'dop-sharedmodels-v3';
2
2
  /**
3
3
  * Note: The first provider listed in your fallback provider config is used as a polling provider
4
4
  * for new DOP events (balance updates).
@@ -1 +1 @@
1
- {"version":3,"file":"load-provider.js","sourceRoot":"","sources":["../../../../src/services/dop/core/load-provider.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Chain,\n FallbackProviderJsonConfig,\n LoadProviderResponse,\n NETWORK_CONFIG,\n NetworkName,\n TXIDVersion,\n createFallbackProviderFromJsonConfig,\n isDefined,\n} from 'dop-sharedmodels-v5';\nimport { sendMessage } from '../../../utils';\nimport { reportAndSanitizeError } from '../../../utils/error';\nimport { getEngine } from './engine';\nimport {\n PollingJsonRpcProvider,\n DopVersionedSmartContracts,\n createPollingJsonRpcProviderForListeners,\n} from 'dop-engine-v5';\nimport { FallbackProvider } from 'ethers'\nimport {\n fallbackProviderMap,\n pollingProviderMap,\n setFallbackProviderForNetwork,\n setPollingProviderForNetwork,\n} from './providers';\n\nconst createFallbackProviderForNetwork = async (\n networkName: NetworkName,\n fallbackProviderJsonConfig: FallbackProviderJsonConfig,\n): Promise<FallbackProvider> => {\n const existingProvider = fallbackProviderMap[networkName];\n if (existingProvider) {\n return existingProvider;\n }\n const fallbackProvider = createFallbackProviderFromJsonConfig(\n fallbackProviderJsonConfig,\n );\n setFallbackProviderForNetwork(networkName, fallbackProvider);\n return fallbackProvider;\n};\n\nconst createPollingProviderForNetwork = async (\n networkName: NetworkName,\n fallbackProvider: FallbackProvider,\n pollingInterval: number,\n): Promise<PollingJsonRpcProvider> => {\n const existingProvider = pollingProviderMap[networkName];\n if (existingProvider) {\n return existingProvider;\n }\n const network = NETWORK_CONFIG[networkName];\n if (!isDefined(network)) {\n throw new Error('No network found');\n }\n const pollingProvider = await createPollingJsonRpcProviderForListeners(\n fallbackProvider,\n network.chain.id,\n pollingInterval,\n );\n setPollingProviderForNetwork(networkName, pollingProvider);\n return pollingProvider;\n};\n\nconst loadProviderForNetwork = async (\n chain: Chain,\n networkName: NetworkName,\n fallbackProviderJsonConfig: FallbackProviderJsonConfig,\n pollingInterval: number,\n) => {\n sendMessage(`Load provider for network: ${networkName}`);\n\n const fallbackProvider = await createFallbackProviderForNetwork(\n networkName,\n fallbackProviderJsonConfig,\n );\n const pollingProvider = await createPollingProviderForNetwork(\n networkName,\n fallbackProvider,\n pollingInterval\n );\n\n const network = NETWORK_CONFIG[networkName];\n const {\n proxyContract,\n relayAdaptContract,\n poseidonMerkleAccumulatorV3Contract,\n poseidonMerkleVerifierV3Contract,\n tokenVaultV3Contract,\n deploymentBlockPoseidonMerkleAccumulatorV3,\n deploymentBlock,\n publicName,\n supportsV3,\n } = network;\n if (!proxyContract) {\n throw new Error(`Could not find Proxy contract for network: ${publicName}`);\n }\n if (!relayAdaptContract) {\n throw new Error(\n `Could not find Relay Adapt contract for network: ${publicName}`,\n );\n }\n\n const engine = getEngine();\n\n const deploymentBlocks: Record<TXIDVersion, number> = {\n [TXIDVersion.V2_PoseidonMerkle]: deploymentBlock ?? 0,\n [TXIDVersion.V3_PoseidonMerkle]:\n deploymentBlockPoseidonMerkleAccumulatorV3 ?? 0,\n };\n\n // This function will set up the contracts for this chain.\n // Throws if provider does not respond.\n await engine.loadNetwork(\n chain,\n proxyContract,\n relayAdaptContract,\n poseidonMerkleAccumulatorV3Contract,\n poseidonMerkleVerifierV3Contract,\n tokenVaultV3Contract,\n fallbackProvider,\n pollingProvider,\n deploymentBlocks,\n supportsV3,\n );\n};\n\n/**\n * Note: The first provider listed in your fallback provider config is used as a polling provider\n * for new DOP events (balance updates).\n */\nexport const loadProvider = async (\n fallbackProviderJsonConfig: FallbackProviderJsonConfig,\n networkName: NetworkName,\n pollingInterval = 15000,\n): Promise<LoadProviderResponse> => {\n try {\n delete fallbackProviderMap[networkName];\n\n const { chain, supportsV3 } = NETWORK_CONFIG[networkName];\n if (fallbackProviderJsonConfig.chainId !== chain.id) {\n throw new Error('Invalid chain ID');\n }\n\n\n await loadProviderForNetwork(\n chain,\n networkName,\n fallbackProviderJsonConfig,\n pollingInterval,\n );\n\n // const { encrypt: encryptFeeV2, Decrypt: DecryptFeeV2 } =\n // await DopVersionedSmartContracts.fees(\n // TXIDVersion.V2_PoseidonMerkle,\n // chain,\n // );\n\n const encrypt = 25;\n const decrypt = 25;\n\n\n if (supportsV3) {\n // const { encrypt: encryptFeeV3, Decrypt: DecryptFeeV3 } =\n // await DopVersionedSmartContracts.fees(\n // TXIDVersion.V3_PoseidonMerkle,\n // chain,\n // );\n\n const feesSerialized = {\n encryptFeeV2: \"10\",\n decryptFeeV2: \"10\",\n encryptFeeV3: \"10\",\n decryptFeeV3: \"10\",\n };\n\n return { feesSerialized };\n }\n\n // Note: Encrypt and Decrypt fees are in basis points.\n // NFT fee is in wei (though currently 0).\n const feesSerialized = {\n encryptFeeV2: \"10\",\n decryptFeeV2: \"10\",\n encryptFeeV3: undefined,\n decryptFeeV3: undefined,\n };\n\n return { feesSerialized };\n } catch (err) {\n throw reportAndSanitizeError(loadProvider.name, err);\n }\n};\n\nexport const unloadProvider = async (\n networkName: NetworkName,\n): Promise<void> => {\n await fallbackProviderMap[networkName]?.destroy();\n pollingProviderMap[networkName]?.destroy();\n delete fallbackProviderMap[networkName];\n delete pollingProviderMap[networkName];\n};\n\nexport const pauseAllPollingProviders = (\n excludeNetworkName?: NetworkName,\n): void => {\n Object.keys(pollingProviderMap).forEach(networkName => {\n if (networkName === excludeNetworkName) {\n return;\n }\n const pollingProvider = pollingProviderMap[networkName];\n if (isDefined(pollingProvider) && !pollingProvider.paused) {\n pollingProvider.pause();\n }\n });\n};\n\nexport const resumeIsolatedPollingProviderForNetwork = (\n networkName: NetworkName,\n): void => {\n pauseAllPollingProviders(\n networkName, // excludeNetworkName\n );\n const pollingProviderForNetwork = pollingProviderMap[networkName];\n if (\n isDefined(pollingProviderForNetwork) &&\n pollingProviderForNetwork.paused\n ) {\n pollingProviderForNetwork.resume();\n }\n};\n"]}
1
+ {"version":3,"file":"load-provider.js","sourceRoot":"","sources":["../../../../src/services/dop/core/load-provider.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Chain,\n FallbackProviderJsonConfig,\n LoadProviderResponse,\n NETWORK_CONFIG,\n NetworkName,\n TXIDVersion,\n createFallbackProviderFromJsonConfig,\n isDefined,\n} from 'dop-sharedmodels-v3';\nimport { sendMessage } from '../../../utils';\nimport { reportAndSanitizeError } from '../../../utils/error';\nimport { getEngine } from './engine';\nimport {\n PollingJsonRpcProvider,\n DopVersionedSmartContracts,\n createPollingJsonRpcProviderForListeners,\n} from 'dop-engine-v3';\nimport { FallbackProvider } from 'ethers'\nimport {\n fallbackProviderMap,\n pollingProviderMap,\n setFallbackProviderForNetwork,\n setPollingProviderForNetwork,\n} from './providers';\n\nconst createFallbackProviderForNetwork = async (\n networkName: NetworkName,\n fallbackProviderJsonConfig: FallbackProviderJsonConfig,\n): Promise<FallbackProvider> => {\n const existingProvider = fallbackProviderMap[networkName];\n if (existingProvider) {\n return existingProvider;\n }\n const fallbackProvider = createFallbackProviderFromJsonConfig(\n fallbackProviderJsonConfig,\n );\n setFallbackProviderForNetwork(networkName, fallbackProvider);\n return fallbackProvider;\n};\n\nconst createPollingProviderForNetwork = async (\n networkName: NetworkName,\n fallbackProvider: FallbackProvider,\n pollingInterval: number,\n): Promise<PollingJsonRpcProvider> => {\n const existingProvider = pollingProviderMap[networkName];\n if (existingProvider) {\n return existingProvider;\n }\n const network = NETWORK_CONFIG[networkName];\n if (!isDefined(network)) {\n throw new Error('No network found');\n }\n const pollingProvider = await createPollingJsonRpcProviderForListeners(\n fallbackProvider,\n network.chain.id,\n pollingInterval,\n );\n setPollingProviderForNetwork(networkName, pollingProvider);\n return pollingProvider;\n};\n\nconst loadProviderForNetwork = async (\n chain: Chain,\n networkName: NetworkName,\n fallbackProviderJsonConfig: FallbackProviderJsonConfig,\n pollingInterval: number,\n) => {\n sendMessage(`Load provider for network: ${networkName}`);\n\n const fallbackProvider = await createFallbackProviderForNetwork(\n networkName,\n fallbackProviderJsonConfig,\n );\n const pollingProvider = await createPollingProviderForNetwork(\n networkName,\n fallbackProvider,\n pollingInterval\n );\n\n const network = NETWORK_CONFIG[networkName];\n const {\n proxyContract,\n relayAdaptContract,\n poseidonMerkleAccumulatorV3Contract,\n poseidonMerkleVerifierV3Contract,\n tokenVaultV3Contract,\n deploymentBlockPoseidonMerkleAccumulatorV3,\n deploymentBlock,\n publicName,\n supportsV3,\n } = network;\n if (!proxyContract) {\n throw new Error(`Could not find Proxy contract for network: ${publicName}`);\n }\n if (!relayAdaptContract) {\n throw new Error(\n `Could not find Relay Adapt contract for network: ${publicName}`,\n );\n }\n\n const engine = getEngine();\n\n const deploymentBlocks: Record<TXIDVersion, number> = {\n [TXIDVersion.V2_PoseidonMerkle]: deploymentBlock ?? 0,\n [TXIDVersion.V3_PoseidonMerkle]:\n deploymentBlockPoseidonMerkleAccumulatorV3 ?? 0,\n };\n\n // This function will set up the contracts for this chain.\n // Throws if provider does not respond.\n await engine.loadNetwork(\n chain,\n proxyContract,\n relayAdaptContract,\n poseidonMerkleAccumulatorV3Contract,\n poseidonMerkleVerifierV3Contract,\n tokenVaultV3Contract,\n fallbackProvider,\n pollingProvider,\n deploymentBlocks,\n supportsV3,\n );\n};\n\n/**\n * Note: The first provider listed in your fallback provider config is used as a polling provider\n * for new DOP events (balance updates).\n */\nexport const loadProvider = async (\n fallbackProviderJsonConfig: FallbackProviderJsonConfig,\n networkName: NetworkName,\n pollingInterval = 15000,\n): Promise<LoadProviderResponse> => {\n try {\n delete fallbackProviderMap[networkName];\n\n const { chain, supportsV3 } = NETWORK_CONFIG[networkName];\n if (fallbackProviderJsonConfig.chainId !== chain.id) {\n throw new Error('Invalid chain ID');\n }\n\n\n await loadProviderForNetwork(\n chain,\n networkName,\n fallbackProviderJsonConfig,\n pollingInterval,\n );\n\n // const { encrypt: encryptFeeV2, Decrypt: DecryptFeeV2 } =\n // await DopVersionedSmartContracts.fees(\n // TXIDVersion.V2_PoseidonMerkle,\n // chain,\n // );\n\n const encrypt = 25;\n const decrypt = 25;\n\n\n if (supportsV3) {\n // const { encrypt: encryptFeeV3, Decrypt: DecryptFeeV3 } =\n // await DopVersionedSmartContracts.fees(\n // TXIDVersion.V3_PoseidonMerkle,\n // chain,\n // );\n\n const feesSerialized = {\n encryptFeeV2: \"10\",\n decryptFeeV2: \"10\",\n encryptFeeV3: \"10\",\n decryptFeeV3: \"10\",\n };\n\n return { feesSerialized };\n }\n\n // Note: Encrypt and Decrypt fees are in basis points.\n // NFT fee is in wei (though currently 0).\n const feesSerialized = {\n encryptFeeV2: \"10\",\n decryptFeeV2: \"10\",\n encryptFeeV3: undefined,\n decryptFeeV3: undefined,\n };\n\n return { feesSerialized };\n } catch (err) {\n throw reportAndSanitizeError(loadProvider.name, err);\n }\n};\n\nexport const unloadProvider = async (\n networkName: NetworkName,\n): Promise<void> => {\n await fallbackProviderMap[networkName]?.destroy();\n pollingProviderMap[networkName]?.destroy();\n delete fallbackProviderMap[networkName];\n delete pollingProviderMap[networkName];\n};\n\nexport const pauseAllPollingProviders = (\n excludeNetworkName?: NetworkName,\n): void => {\n Object.keys(pollingProviderMap).forEach(networkName => {\n if (networkName === excludeNetworkName) {\n return;\n }\n const pollingProvider = pollingProviderMap[networkName];\n if (isDefined(pollingProvider) && !pollingProvider.paused) {\n pollingProvider.pause();\n }\n });\n};\n\nexport const resumeIsolatedPollingProviderForNetwork = (\n networkName: NetworkName,\n): void => {\n pauseAllPollingProviders(\n networkName, // excludeNetworkName\n );\n const pollingProviderForNetwork = pollingProviderMap[networkName];\n if (\n isDefined(pollingProviderForNetwork) &&\n pollingProviderForNetwork.paused\n ) {\n pollingProviderForNetwork.resume();\n }\n};\n"]}
@@ -1,5 +1,5 @@
1
- import { NetworkName, TXIDVersion } from 'dop-sharedmodels-v5';
2
- import { NFTTokenData, TXO, TokenData } from 'dop-engine-v5';
1
+ import { NetworkName, TXIDVersion } from 'dop-sharedmodels-v3';
2
+ import { NFTTokenData, TXO, TokenData } from 'dop-engine-v3';
3
3
  export declare const getUTXOMerkletreeForNetwork: (txidVersion: TXIDVersion, networkName: NetworkName) => import("dop-engine-v3/dist/merkletree/utxo-merkletree").UTXOMerkletree;
4
4
  export declare const getTXIDMerkletreeForNetwork: (txidVersion: TXIDVersion, networkName: NetworkName) => import("dop-engine-v3/dist/merkletree/txid-merkletree").TXIDMerkletree;
5
5
  export declare const getSpendableUTXOsForToken: (txidVersion: TXIDVersion, networkName: NetworkName, walletID: string, tokenData: TokenData) => Promise<Optional<TXO[]>>;
@@ -1 +1 @@
1
- {"version":3,"file":"merkletree.js","sourceRoot":"","sources":["../../../../src/services/dop/core/merkletree.ts"],"names":[],"mappings":";;;AAAA,6DAK6B;AAC7B,iDAKuB;AACvB,qCAAqC;AACrC,gDAAiD;AAE1C,MAAM,2BAA2B,GAAG,CACzC,WAAwB,EACxB,WAAwB,EACxB,EAAE;IACF,MAAM,OAAO,GAAG,oCAAc,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAC1B,MAAM,cAAc,GAAG,IAAA,kBAAS,GAAE,CAAC,iBAAiB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACzE,IAAI,CAAC,IAAA,+BAAS,EAAC,cAAc,CAAC,EAAE;QAC9B,MAAM,IAAI,KAAK,CACb,yCAAyC,OAAO,CAAC,UAAU,EAAE,CAC9D,CAAC;KACH;IACD,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AAbW,QAAA,2BAA2B,+BAatC;AAEK,MAAM,2BAA2B,GAAG,CACzC,WAAwB,EACxB,WAAwB,EACxB,EAAE;IACF,MAAM,OAAO,GAAG,oCAAc,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAC1B,MAAM,cAAc,GAAG,IAAA,kBAAS,GAAE,CAAC,iBAAiB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACzE,IAAI,CAAC,IAAA,+BAAS,EAAC,cAAc,CAAC,EAAE;QAC9B,MAAM,IAAI,KAAK,CACb,yCAAyC,OAAO,CAAC,UAAU,EAAE,CAC9D,CAAC;KACH;IACD,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AAbW,QAAA,2BAA2B,+BAatC;AAEK,MAAM,yBAAyB,GAAG,KAAK,EAC5C,WAAwB,EACxB,WAAwB,EACxB,QAAgB,EAChB,SAAoB,EACM,EAAE;IAC5B,MAAM,MAAM,GAAG,IAAA,qBAAW,EAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,oCAAc,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC;IAChD,MAAM,aAAa,GAAG,IAAI,CAAC;IAC3B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAC5C,WAAW,EACX,KAAK,EACL,aAAa,CACd,CAAC;IACF,MAAM,SAAS,GAAG,IAAA,gCAAgB,EAAC,SAAS,CAAC,CAAC;IAC9C,OAAO,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC;AACpC,CAAC,CAAC;AAhBW,QAAA,yBAAyB,6BAgBpC;AAEK,MAAM,uBAAuB,GAAG,KAAK,EAC1C,WAAwB,EACxB,WAAwB,EACxB,QAAgB,EAChB,YAA0B,EAC1B,EAAE;IACF,MAAM,KAAK,GAAG,MAAM,IAAA,iCAAyB,EAC3C,WAAW,EACX,WAAW,EACX,QAAQ,EACR,YAAY,CACb,CAAC;IACF,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;QAC3B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;KACrD;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;KAC5C;IAED,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,cAAc,GAAG,IAAA,mCAA2B,EAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAC7E,OAAO,cAAc,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACvD,CAAC,CAAC;AAtBW,QAAA,uBAAuB,2BAsBlC","sourcesContent":["import {\n NETWORK_CONFIG,\n NetworkName,\n TXIDVersion,\n isDefined,\n} from 'dop-sharedmodels-v5';\nimport {\n NFTTokenData,\n TXO,\n TokenData,\n getTokenDataHash,\n} from 'dop-engine-v5';\nimport { getEngine } from './engine';\nimport { walletForID } from '../wallets/wallets';\n\nexport const getUTXOMerkletreeForNetwork = (\n txidVersion: TXIDVersion,\n networkName: NetworkName,\n) => {\n const network = NETWORK_CONFIG[networkName];\n const { chain } = network;\n const utxoMerkletree = getEngine().getUTXOMerkletree(txidVersion, chain);\n if (!isDefined(utxoMerkletree)) {\n throw new Error(\n `MerkleTree not yet loaded for network ${network.publicName}`,\n );\n }\n return utxoMerkletree;\n};\n\nexport const getTXIDMerkletreeForNetwork = (\n txidVersion: TXIDVersion,\n networkName: NetworkName,\n) => {\n const network = NETWORK_CONFIG[networkName];\n const { chain } = network;\n const txidMerkletree = getEngine().getTXIDMerkletree(txidVersion, chain);\n if (!isDefined(txidMerkletree)) {\n throw new Error(\n `MerkleTree not yet loaded for network ${network.publicName}`,\n );\n }\n return txidMerkletree;\n};\n\nexport const getSpendableUTXOsForToken = async (\n txidVersion: TXIDVersion,\n networkName: NetworkName,\n walletID: string,\n tokenData: TokenData,\n): Promise<Optional<TXO[]>> => {\n const wallet = walletForID(walletID);\n const chain = NETWORK_CONFIG[networkName].chain;\n const onlySpendable = true;\n const balances = await wallet.getTokenBalances(\n txidVersion,\n chain,\n onlySpendable,\n );\n const tokenHash = getTokenDataHash(tokenData);\n return balances[tokenHash]?.utxos;\n};\n\nexport const getMerkleProofForERC721 = async (\n txidVersion: TXIDVersion,\n networkName: NetworkName,\n walletID: string,\n nftTokenData: NFTTokenData,\n) => {\n const utxos = await getSpendableUTXOsForToken(\n txidVersion,\n networkName,\n walletID,\n nftTokenData,\n );\n if (!utxos || !utxos.length) {\n throw new Error('No spendable UTXOs found for NFT');\n }\n if (utxos.length !== 1) {\n throw new Error('Expected 1 UTXO for NFT');\n }\n\n const { tree, position } = utxos[0];\n const utxoMerkletree = getUTXOMerkletreeForNetwork(txidVersion, networkName);\n return utxoMerkletree.getMerkleProof(tree, position);\n};\n"]}
1
+ {"version":3,"file":"merkletree.js","sourceRoot":"","sources":["../../../../src/services/dop/core/merkletree.ts"],"names":[],"mappings":";;;AAAA,6DAK6B;AAC7B,iDAKuB;AACvB,qCAAqC;AACrC,gDAAiD;AAE1C,MAAM,2BAA2B,GAAG,CACzC,WAAwB,EACxB,WAAwB,EACxB,EAAE;IACF,MAAM,OAAO,GAAG,oCAAc,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAC1B,MAAM,cAAc,GAAG,IAAA,kBAAS,GAAE,CAAC,iBAAiB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACzE,IAAI,CAAC,IAAA,+BAAS,EAAC,cAAc,CAAC,EAAE;QAC9B,MAAM,IAAI,KAAK,CACb,yCAAyC,OAAO,CAAC,UAAU,EAAE,CAC9D,CAAC;KACH;IACD,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AAbW,QAAA,2BAA2B,+BAatC;AAEK,MAAM,2BAA2B,GAAG,CACzC,WAAwB,EACxB,WAAwB,EACxB,EAAE;IACF,MAAM,OAAO,GAAG,oCAAc,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAC1B,MAAM,cAAc,GAAG,IAAA,kBAAS,GAAE,CAAC,iBAAiB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACzE,IAAI,CAAC,IAAA,+BAAS,EAAC,cAAc,CAAC,EAAE;QAC9B,MAAM,IAAI,KAAK,CACb,yCAAyC,OAAO,CAAC,UAAU,EAAE,CAC9D,CAAC;KACH;IACD,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AAbW,QAAA,2BAA2B,+BAatC;AAEK,MAAM,yBAAyB,GAAG,KAAK,EAC5C,WAAwB,EACxB,WAAwB,EACxB,QAAgB,EAChB,SAAoB,EACM,EAAE;IAC5B,MAAM,MAAM,GAAG,IAAA,qBAAW,EAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,oCAAc,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC;IAChD,MAAM,aAAa,GAAG,IAAI,CAAC;IAC3B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAC5C,WAAW,EACX,KAAK,EACL,aAAa,CACd,CAAC;IACF,MAAM,SAAS,GAAG,IAAA,gCAAgB,EAAC,SAAS,CAAC,CAAC;IAC9C,OAAO,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC;AACpC,CAAC,CAAC;AAhBW,QAAA,yBAAyB,6BAgBpC;AAEK,MAAM,uBAAuB,GAAG,KAAK,EAC1C,WAAwB,EACxB,WAAwB,EACxB,QAAgB,EAChB,YAA0B,EAC1B,EAAE;IACF,MAAM,KAAK,GAAG,MAAM,IAAA,iCAAyB,EAC3C,WAAW,EACX,WAAW,EACX,QAAQ,EACR,YAAY,CACb,CAAC;IACF,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;QAC3B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;KACrD;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;KAC5C;IAED,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,cAAc,GAAG,IAAA,mCAA2B,EAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAC7E,OAAO,cAAc,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACvD,CAAC,CAAC;AAtBW,QAAA,uBAAuB,2BAsBlC","sourcesContent":["import {\n NETWORK_CONFIG,\n NetworkName,\n TXIDVersion,\n isDefined,\n} from 'dop-sharedmodels-v3';\nimport {\n NFTTokenData,\n TXO,\n TokenData,\n getTokenDataHash,\n} from 'dop-engine-v3';\nimport { getEngine } from './engine';\nimport { walletForID } from '../wallets/wallets';\n\nexport const getUTXOMerkletreeForNetwork = (\n txidVersion: TXIDVersion,\n networkName: NetworkName,\n) => {\n const network = NETWORK_CONFIG[networkName];\n const { chain } = network;\n const utxoMerkletree = getEngine().getUTXOMerkletree(txidVersion, chain);\n if (!isDefined(utxoMerkletree)) {\n throw new Error(\n `MerkleTree not yet loaded for network ${network.publicName}`,\n );\n }\n return utxoMerkletree;\n};\n\nexport const getTXIDMerkletreeForNetwork = (\n txidVersion: TXIDVersion,\n networkName: NetworkName,\n) => {\n const network = NETWORK_CONFIG[networkName];\n const { chain } = network;\n const txidMerkletree = getEngine().getTXIDMerkletree(txidVersion, chain);\n if (!isDefined(txidMerkletree)) {\n throw new Error(\n `MerkleTree not yet loaded for network ${network.publicName}`,\n );\n }\n return txidMerkletree;\n};\n\nexport const getSpendableUTXOsForToken = async (\n txidVersion: TXIDVersion,\n networkName: NetworkName,\n walletID: string,\n tokenData: TokenData,\n): Promise<Optional<TXO[]>> => {\n const wallet = walletForID(walletID);\n const chain = NETWORK_CONFIG[networkName].chain;\n const onlySpendable = true;\n const balances = await wallet.getTokenBalances(\n txidVersion,\n chain,\n onlySpendable,\n );\n const tokenHash = getTokenDataHash(tokenData);\n return balances[tokenHash]?.utxos;\n};\n\nexport const getMerkleProofForERC721 = async (\n txidVersion: TXIDVersion,\n networkName: NetworkName,\n walletID: string,\n nftTokenData: NFTTokenData,\n) => {\n const utxos = await getSpendableUTXOsForToken(\n txidVersion,\n networkName,\n walletID,\n nftTokenData,\n );\n if (!utxos || !utxos.length) {\n throw new Error('No spendable UTXOs found for NFT');\n }\n if (utxos.length !== 1) {\n throw new Error('Expected 1 UTXO for NFT');\n }\n\n const { tree, position } = utxos[0];\n const utxoMerkletree = getUTXOMerkletreeForNetwork(txidVersion, networkName);\n return utxoMerkletree.getMerkleProof(tree, position);\n};\n"]}
@@ -1,3 +1,3 @@
1
- import { FormattedCircuitInputsDop, SnarkJSGroth16, Proof, Prover } from 'dop-engine-v5';
1
+ import { FormattedCircuitInputsDop, SnarkJSGroth16, Proof, Prover } from 'dop-engine-v3';
2
2
  export declare const getProver: () => Prover;
3
3
  export { FormattedCircuitInputsDop, Proof, SnarkJSGroth16 };
@@ -1 +1 @@
1
- {"version":3,"file":"prover.js","sourceRoot":"","sources":["../../../../src/services/dop/core/prover.ts"],"names":[],"mappings":";;;AAMA,qCAAqC;AACrC,6DAAgD;AAEzC,MAAM,SAAS,GAAG,GAAW,EAAE;IACpC,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;IAC3B,IAAI,CAAC,IAAA,+BAAS,EAAC,MAAM,CAAC,EAAE;QACtB,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAC;KACH;IACD,OAAO,MAAM,CAAC,MAAM,CAAC;AACvB,CAAC,CAAC;AARW,QAAA,SAAS,aAQpB","sourcesContent":["import {\n FormattedCircuitInputsDop,\n SnarkJSGroth16,\n Proof,\n Prover,\n} from 'dop-engine-v5';\nimport { getEngine } from './engine';\nimport { isDefined } from 'dop-sharedmodels-v5';\n\nexport const getProver = (): Prover => {\n const engine = getEngine();\n if (!isDefined(engine)) {\n throw new Error(\n 'DOP Engine not yet init. Please reload your app or try again.',\n );\n }\n return engine.prover;\n};\n\nexport { FormattedCircuitInputsDop, Proof, SnarkJSGroth16 };\n"]}
1
+ {"version":3,"file":"prover.js","sourceRoot":"","sources":["../../../../src/services/dop/core/prover.ts"],"names":[],"mappings":";;;AAMA,qCAAqC;AACrC,6DAAgD;AAEzC,MAAM,SAAS,GAAG,GAAW,EAAE;IACpC,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;IAC3B,IAAI,CAAC,IAAA,+BAAS,EAAC,MAAM,CAAC,EAAE;QACtB,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAC;KACH;IACD,OAAO,MAAM,CAAC,MAAM,CAAC;AACvB,CAAC,CAAC;AARW,QAAA,SAAS,aAQpB","sourcesContent":["import {\n FormattedCircuitInputsDop,\n SnarkJSGroth16,\n Proof,\n Prover,\n} from 'dop-engine-v3';\nimport { getEngine } from './engine';\nimport { isDefined } from 'dop-sharedmodels-v3';\n\nexport const getProver = (): Prover => {\n const engine = getEngine();\n if (!isDefined(engine)) {\n throw new Error(\n 'DOP Engine not yet init. Please reload your app or try again.',\n );\n }\n return engine.prover;\n};\n\nexport { FormattedCircuitInputsDop, Proof, SnarkJSGroth16 };\n"]}
@@ -1,5 +1,5 @@
1
- import { NetworkName } from 'dop-sharedmodels-v5';
2
- import { PollingJsonRpcProvider } from 'dop-engine-v5';
1
+ import { NetworkName } from 'dop-sharedmodels-v3';
2
+ import { PollingJsonRpcProvider } from 'dop-engine-v3';
3
3
  import { FallbackProvider } from 'ethers';
4
4
  export declare const fallbackProviderMap: MapType<FallbackProvider>;
5
5
  export declare const pollingProviderMap: MapType<PollingJsonRpcProvider>;
@@ -1 +1 @@
1
- {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../../../src/services/dop/core/providers.ts"],"names":[],"mappings":";;;AAAA,6DAA6D;AAIhD,QAAA,mBAAmB,GAA8B,EAAE,CAAC;AACpD,QAAA,kBAAkB,GAAoC,EAAE,CAAC;AAE/D,MAAM,6BAA6B,GAAG,CAC3C,WAAwB,EACN,EAAE;IACpB,MAAM,QAAQ,GAAG,2BAAmB,CAAC,WAAW,CAAC,CAAC;IAClD,IAAI,CAAC,IAAA,+BAAS,EAAC,QAAQ,CAAC,EAAE;QACxB,MAAM,IAAI,KAAK,CAAC,uCAAuC,WAAW,EAAE,CAAC,CAAC;KACvE;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AARW,QAAA,6BAA6B,iCAQxC;AAEK,MAAM,4BAA4B,GAAG,CAC1C,WAAwB,EACA,EAAE;IAC1B,MAAM,QAAQ,GAAG,0BAAkB,CAAC,WAAW,CAAC,CAAC;IACjD,IAAI,CAAC,IAAA,+BAAS,EAAC,QAAQ,CAAC,EAAE;QACxB,MAAM,IAAI,KAAK,CACb,+CAA+C,WAAW,EAAE,CAC7D,CAAC;KACH;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAVW,QAAA,4BAA4B,gCAUvC;AAEK,MAAM,6BAA6B,GAAG,CAC3C,WAAwB,EACxB,QAA0B,EACpB,EAAE;IACR,2BAAmB,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC;AAC9C,CAAC,CAAC;AALW,QAAA,6BAA6B,iCAKxC;AAEK,MAAM,4BAA4B,GAAG,CAC1C,WAAwB,EACxB,QAAgC,EAC1B,EAAE;IACR,0BAAkB,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC;AAC7C,CAAC,CAAC;AALW,QAAA,4BAA4B,gCAKvC","sourcesContent":["import { NetworkName, isDefined } from 'dop-sharedmodels-v5';\nimport { PollingJsonRpcProvider } from 'dop-engine-v5';\nimport { FallbackProvider } from 'ethers';\n\nexport const fallbackProviderMap: MapType<FallbackProvider> = {};\nexport const pollingProviderMap: MapType<PollingJsonRpcProvider> = {};\n\nexport const getFallbackProviderForNetwork = (\n networkName: NetworkName,\n): FallbackProvider => {\n const provider = fallbackProviderMap[networkName];\n if (!isDefined(provider)) {\n throw new Error(`Provider not yet loaded for network ${networkName}`);\n }\n return provider;\n};\n\nexport const getPollingProviderForNetwork = (\n networkName: NetworkName,\n): PollingJsonRpcProvider => {\n const provider = pollingProviderMap[networkName];\n if (!isDefined(provider)) {\n throw new Error(\n `Polling provider not yet loaded for network ${networkName}`,\n );\n }\n return provider;\n};\n\nexport const setFallbackProviderForNetwork = (\n networkName: NetworkName,\n provider: FallbackProvider,\n): void => {\n fallbackProviderMap[networkName] = provider;\n};\n\nexport const setPollingProviderForNetwork = (\n networkName: NetworkName,\n provider: PollingJsonRpcProvider,\n): void => {\n pollingProviderMap[networkName] = provider;\n};\n"]}
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../../../src/services/dop/core/providers.ts"],"names":[],"mappings":";;;AAAA,6DAA6D;AAIhD,QAAA,mBAAmB,GAA8B,EAAE,CAAC;AACpD,QAAA,kBAAkB,GAAoC,EAAE,CAAC;AAE/D,MAAM,6BAA6B,GAAG,CAC3C,WAAwB,EACN,EAAE;IACpB,MAAM,QAAQ,GAAG,2BAAmB,CAAC,WAAW,CAAC,CAAC;IAClD,IAAI,CAAC,IAAA,+BAAS,EAAC,QAAQ,CAAC,EAAE;QACxB,MAAM,IAAI,KAAK,CAAC,uCAAuC,WAAW,EAAE,CAAC,CAAC;KACvE;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AARW,QAAA,6BAA6B,iCAQxC;AAEK,MAAM,4BAA4B,GAAG,CAC1C,WAAwB,EACA,EAAE;IAC1B,MAAM,QAAQ,GAAG,0BAAkB,CAAC,WAAW,CAAC,CAAC;IACjD,IAAI,CAAC,IAAA,+BAAS,EAAC,QAAQ,CAAC,EAAE;QACxB,MAAM,IAAI,KAAK,CACb,+CAA+C,WAAW,EAAE,CAC7D,CAAC;KACH;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAVW,QAAA,4BAA4B,gCAUvC;AAEK,MAAM,6BAA6B,GAAG,CAC3C,WAAwB,EACxB,QAA0B,EACpB,EAAE;IACR,2BAAmB,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC;AAC9C,CAAC,CAAC;AALW,QAAA,6BAA6B,iCAKxC;AAEK,MAAM,4BAA4B,GAAG,CAC1C,WAAwB,EACxB,QAAgC,EAC1B,EAAE;IACR,0BAAkB,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC;AAC7C,CAAC,CAAC;AALW,QAAA,4BAA4B,gCAKvC","sourcesContent":["import { NetworkName, isDefined } from 'dop-sharedmodels-v3';\nimport { PollingJsonRpcProvider } from 'dop-engine-v3';\nimport { FallbackProvider } from 'ethers';\n\nexport const fallbackProviderMap: MapType<FallbackProvider> = {};\nexport const pollingProviderMap: MapType<PollingJsonRpcProvider> = {};\n\nexport const getFallbackProviderForNetwork = (\n networkName: NetworkName,\n): FallbackProvider => {\n const provider = fallbackProviderMap[networkName];\n if (!isDefined(provider)) {\n throw new Error(`Provider not yet loaded for network ${networkName}`);\n }\n return provider;\n};\n\nexport const getPollingProviderForNetwork = (\n networkName: NetworkName,\n): PollingJsonRpcProvider => {\n const provider = pollingProviderMap[networkName];\n if (!isDefined(provider)) {\n throw new Error(\n `Polling provider not yet loaded for network ${networkName}`,\n );\n }\n return provider;\n};\n\nexport const setFallbackProviderForNetwork = (\n networkName: NetworkName,\n provider: FallbackProvider,\n): void => {\n fallbackProviderMap[networkName] = provider;\n};\n\nexport const setPollingProviderForNetwork = (\n networkName: NetworkName,\n provider: PollingJsonRpcProvider,\n): void => {\n pollingProviderMap[networkName] = provider;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"dop-txid-sync-graph-v2.test.js","sourceRoot":"","sources":["../../../../../src/services/dop/dop-txids/__tests__/dop-txid-sync-graph-v2.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { DopTransactionV2 } from 'dop-engine-v5';\nimport { NetworkName, NETWORK_CONFIG } from 'dop-sharedmodels-v5';\nimport chai from 'chai';\nimport chaiAsPromised from 'chai-as-promised';\nimport {\n getDopTxidsForDecrypts,\n quickSyncDopTransactionsV2,\n} from '../dop-txid-sync-graph-v2';\n\nchai.use(chaiAsPromised);\nconst { expect } = chai;\n\ndescribe('dop-txid-sync-graph', () => {\n it('Should pull dop txs subsquid query - Ethereum', async () => {\n const dopTxs: DopTransactionV2[] =\n await quickSyncDopTransactionsV2(\n NETWORK_CONFIG[NetworkName.Ethereum].chain,\n undefined,\n );\n\n expect(dopTxs).to.be.an('array');\n expect(dopTxs.length).to.equal(5000);\n\n expect(dopTxs[0].commitments).to.deep.equal([\n '0x1afd01a29faf22dcc5678694092a08d38de99fc97d07b9281fa66f956ce43579',\n '0x2ffc716d8ae767995961bbde4a208dbae438783065bbd200f51a8d4e97cc2289',\n '0x078f9824c86b2488714eb76dc15199c3fa21903517d5f3e19ab2035d264400b6',\n ]);\n expect(dopTxs[0].nullifiers).to.deep.equal([\n '0x1e52cee52f67c37a468458671cddde6b56390dcbdc4cf3b770badc0e78d66401',\n '0x0ac9f5ab5bcb5a115a3efdd0475f6c22dc6a6841caf35a52ecf86a802bfce8ee',\n ]);\n expect(dopTxs[0].graphID).to.equal(\n '0x0000000000000000000000000000000000000000000000000000000000e1285000000000000000000000000000000000000000000000000000000000000001500000000000000000000000000000000000000000000000000000000000000000',\n );\n expect(dopTxs[0].boundParamsHash).to.equal(\n '0x2c72a0bcce4f1169dd988204775483938ded5f5899cec84829b1cc667a683784',\n );\n expect(dopTxs[0].txid).to.equal(\n 'f07a9a458f57f1cc9cc2e5a627c3ef611a18b77e10c2bfc133fceca7743f8d0c',\n );\n expect(dopTxs[0].utxoTreeIn).to.equal(0);\n expect(dopTxs[0].utxoTreeOut).to.equal(0);\n expect(dopTxs[0].utxoBatchStartPositionOut).to.equal(2);\n expect(dopTxs[0].decrypt).to.equal(undefined);\n expect(dopTxs[0].blockNumber).to.equal(14755920);\n expect(dopTxs[0].verificationHash).to.equal(\n '0x099cd3ebcadaf6ff470d16bc0186fb5f26cd4103e9970effc9b6679478e11c72',\n );\n }).timeout(20_000);\n\n it('Should pull decrypt dop txids - Ethereum', async () => {\n const decryptDopTxids: string[] = await getDopTxidsForDecrypts(\n NETWORK_CONFIG[NetworkName.Ethereum].chain,\n '0x0b3b7179df1377c0a13058508e7dff2dbe8f73c39d68f569bc90b1c8b277082e',\n );\n\n expect(decryptDopTxids).to.deep.equal([\n '065bcb1a9d4cfa110f05b480f79f27fe2ad672868d3d1bdec05df2ddaec8333d',\n ]);\n }).timeout(20000);\n\n it('Should pull dop txs subsquid query - Polygon', async () => {\n const dopTxs: DopTransactionV2[] =\n await quickSyncDopTransactionsV2(\n NETWORK_CONFIG[NetworkName.Polygon].chain,\n undefined,\n );\n\n expect(dopTxs).to.be.an('array');\n expect(dopTxs.length).to.equal(5000);\n\n expect(dopTxs[0].commitments).to.deep.equal([\n '0x06c764e6221b61792530c5d6d33710b9cd4c4d4f734265a4e9070cf081436079',\n '0x140459c3519d73d56d292fd6d51292980f640623f008a4df063d387a819a7451',\n '0x23303173569d99ffd5799f526bd53cb81073e2d6e9ff8f4b07bed8d948722673',\n ]);\n expect(dopTxs[0].nullifiers).to.deep.equal([\n '0x1e52cee52f67c37a468458671cddde6b56390dcbdc4cf3b770badc0e78d66401',\n ]);\n expect(dopTxs[0].graphID).to.equal(\n '0x0000000000000000000000000000000000000000000000000000000001ae397e00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000000',\n );\n expect(dopTxs[0].boundParamsHash).to.equal(\n '0x251fcceba8b19129e88aff1e5214ad6f2a807e4a095075e55873aa59416111a2',\n );\n expect(dopTxs[0].txid).to.equal(\n '65df130da6a571fbcceb8538400f37bcaa4fe508caec7ab05f3b438f303bfe31',\n );\n expect(dopTxs[0].utxoTreeIn).to.equal(0);\n expect(dopTxs[0].utxoTreeOut).to.equal(0);\n expect(dopTxs[0].utxoBatchStartPositionOut).to.equal(2);\n expect(dopTxs[0].decrypt).to.equal(undefined);\n expect(dopTxs[0].blockNumber).to.equal(28195198);\n expect(dopTxs[0].verificationHash).to.equal(\n '0x099cd3ebcadaf6ff470d16bc0186fb5f26cd4103e9970effc9b6679478e11c72',\n );\n }).timeout(20_000);\n\n it('Should pull decrypt dop txids - Polygon', async () => {\n const decryptDopTxids: string[] = await getDopTxidsForDecrypts(\n NETWORK_CONFIG[NetworkName.Polygon].chain,\n '0x7310a30b3a0dcec299917d5cd7ef2feab8c0507c41ec17649f38a21b4093dc32',\n );\n\n expect(decryptDopTxids).to.deep.equal([\n '113827d5fea4ebacffc3ab7289e6185d328c51c5f59ecbcd874d8f73e5638e27',\n ]);\n }).timeout(20000);\n\n it('Should pull dop txs subsquid query - Arbitrum', async () => {\n const dopTxs: DopTransactionV2[] =\n await quickSyncDopTransactionsV2(\n NETWORK_CONFIG[NetworkName.Arbitrum].chain,\n undefined,\n );\n\n expect(dopTxs).to.be.an('array');\n expect(dopTxs.length).to.equal(5000);\n\n expect(dopTxs[0].commitments).to.deep.equal([\n '0x0bb9f2d13f87b8ba19b7f5bb7750148faeb0fed4a97bc6c3e63d7fe2a7b6d63e',\n '0x217fb14374fcc4eca2d92c204bad0b2b36f6787e3268ae4740c992c632f7691c',\n ]);\n expect(dopTxs[0].nullifiers).to.deep.equal([\n '0x25234f8100ee0b86e2f331f255d982ba60d05710ceae8f226f6254addd362b1f',\n ]);\n expect(dopTxs[0].graphID).to.equal(\n '0x00000000000000000000000000000000000000000000000000000000039dd19000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000',\n );\n expect(dopTxs[0].boundParamsHash).to.equal(\n '0x2bb2954938dfcfdcc47253fd59d2225fc98feab293eb1bc80eff5d9d79de05a2',\n );\n expect(dopTxs[0].txid).to.equal(\n 'cb4293e3a81241ef8b6c48285e4860222d9c147da8583aa1d53a7117f230c368',\n );\n expect(dopTxs[0].utxoTreeIn).to.equal(0);\n expect(dopTxs[0].utxoTreeOut).to.equal(0);\n expect(dopTxs[0].utxoBatchStartPositionOut).to.equal(1);\n expect(dopTxs[0].decrypt).to.deep.equal({\n tokenData: {\n tokenType: 0,\n tokenAddress: '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1',\n tokenSubID: '0x00',\n },\n toAddress: '0x5ad95c537b002770a39dea342c4bb2b68b1497aa',\n value: '1000000000000000',\n });\n expect(dopTxs[0].blockNumber).to.equal(60674448);\n expect(dopTxs[0].verificationHash).to.equal(\n '0x4f7406636df927247b46552673d024567d99fd60e5fb50159ba47a170580308a',\n );\n }).timeout(20_000);\n\n it('Should pull decrypt dop txids - Arbitrum', async () => {\n const decryptDopTxids: string[] = await getDopTxidsForDecrypts(\n NETWORK_CONFIG[NetworkName.Arbitrum].chain,\n '0xcb4293e3a81241ef8b6c48285e4860222d9c147da8583aa1d53a7117f230c368',\n );\n\n expect(decryptDopTxids).to.deep.equal([\n '1bef936762f21323e57539cdf4b87251279b34880881ae003219058dacc258a7',\n ]);\n }).timeout(20000);\n\n it('Should pull dop txs subsquid query - BNBChain', async () => {\n const dopTxs: DopTransactionV2[] =\n await quickSyncDopTransactionsV2(\n NETWORK_CONFIG[NetworkName.BNBChain].chain,\n undefined,\n );\n\n expect(dopTxs).to.be.an('array');\n expect(dopTxs.length).to.equal(5000);\n\n expect(dopTxs[0].commitments).to.deep.equal([\n '0x2f1f83e339c05d14f102088c0c3f2b8f8addbd8497a88ef49a1e9c942bbb0f87',\n '0x275c216c06fd5e68bb65f46f85e93afb563f9bad08b2eaf222a38ce6d848c004',\n ]);\n expect(dopTxs[0].nullifiers).to.deep.equal([\n '0x1866ea0094491975f18fa92ba6fac7c2f562bbc49e975866643108dd15f0a6b2',\n ]);\n expect(dopTxs[0].graphID).to.equal(\n '0x00000000000000000000000000000000000000000000000000000000010f2d7b000000000000000000000000000000000000000000000000000000000000003f0000000000000000000000000000000000000000000000000000000000000000',\n );\n expect(dopTxs[0].boundParamsHash).to.equal(\n '0x0d0cc0770e4915c2b841f394834c0e3b2d5807642c23a9578a1bbc80f8b47f6a',\n );\n expect(dopTxs[0].txid).to.equal(\n '4388f3727fe7f9cfd0d57807f7a2a126fbb7e56a25a17e3e99102931ea2e4b33',\n );\n expect(dopTxs[0].utxoTreeIn).to.equal(0);\n expect(dopTxs[0].utxoTreeOut).to.equal(0);\n expect(dopTxs[0].utxoBatchStartPositionOut).to.equal(4);\n expect(dopTxs[0].decrypt).to.equal(undefined);\n expect(dopTxs[0].blockNumber).to.equal(17771899);\n expect(dopTxs[0].verificationHash).to.equal(\n '0x5052ad94d14b1f0a16fa8ca6680f9736a357cc73798695d3e1247ca95483415c',\n );\n }).timeout(20_000);\n\n it('Should pull decrypt dop txids - BNBChain', async () => {\n const decryptDopTxids: string[] = await getDopTxidsForDecrypts(\n NETWORK_CONFIG[NetworkName.BNBChain].chain,\n '0xcef99c75d555b81625e5e96304716b04bd6900d99b664fda7d5a89265dca3c38',\n );\n\n expect(decryptDopTxids).to.deep.equal([\n '27fe3f9eef756cba48cf2850935c20dc7faf36911fe2cc43b69b4650912e09e0',\n ]);\n }).timeout(20000);\n\n it('Should pull dop txs subsquid query - Sepolia', async () => {\n const dopTxs: DopTransactionV2[] =\n await quickSyncDopTransactionsV2(\n NETWORK_CONFIG[NetworkName.EthereumSepolia].chain,\n undefined,\n );\n\n expect(dopTxs).to.be.an('array');\n expect(dopTxs.length).to.be.greaterThanOrEqual(10);\n\n expect(dopTxs[0].commitments).to.deep.equal([\n '0x213b8672321b8b6d4165528e3146b1c25da4656fd93db74efa3258416e20b5d9',\n '0x14b55264849684c1d549c44b469e1047d67f06bfdb6aa22f1d14e1c545d749a5',\n ]);\n expect(dopTxs[0].nullifiers).to.deep.equal([\n '0x25234f8100ee0b86e2f331f255d982ba60d05710ceae8f226f6254addd362b1f',\n ]);\n expect(dopTxs[0].graphID).to.equal(\n '0x00000000000000000000000000000000000000000000000000000000005b001e000000000000000000000000000000000000000000000000000000000000003b0000000000000000000000000000000000000000000000000000000000000000',\n );\n expect(dopTxs[0].boundParamsHash).to.equal(\n '0x1a2fec90b4354f18153226a457bc24fe480fa816f2cf8ae13419be7938f80b51',\n );\n expect(dopTxs[0].txid).to.equal(\n 'e629e8f89ab98fee9dadacb9323746e4c150dee57917218509e94d9e35cc1db0',\n );\n expect(dopTxs[0].utxoTreeIn).to.equal(0);\n expect(dopTxs[0].utxoTreeOut).to.equal(0);\n expect(dopTxs[0].utxoBatchStartPositionOut).to.equal(1);\n expect(dopTxs[0].decrypt).to.deep.equal({\n tokenData: {\n tokenType: 0,\n tokenAddress: '0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14',\n tokenSubID: '0x00',\n },\n toAddress: '0x7e3d929ebd5bdc84d02bd3205c777578f33a214d',\n value: '10025062656641604',\n });\n expect(dopTxs[0].blockNumber).to.equal(5963806);\n expect(dopTxs[0].verificationHash).to.equal(\n '0x4f7406636df927247b46552673d024567d99fd60e5fb50159ba47a170580308a',\n );\n }).timeout(20_000);\n\n it('Should pull decrypt dop txids - Sepolia', async () => {\n const decryptDopTxids: string[] = await getDopTxidsForDecrypts(\n NETWORK_CONFIG[NetworkName.EthereumSepolia].chain,\n '0xe629e8f89ab98fee9dadacb9323746e4c150dee57917218509e94d9e35cc1db0',\n );\n\n expect(decryptDopTxids).to.deep.equal([\n '1acb0bd1981ecdf3652d3580b72bcb97cbfe635abf66e339d8e6d8577184f65e',\n ]);\n }).timeout(20000);\n});\n"]}
1
+ {"version":3,"file":"dop-txid-sync-graph-v2.test.js","sourceRoot":"","sources":["../../../../../src/services/dop/dop-txids/__tests__/dop-txid-sync-graph-v2.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { DopTransactionV2 } from 'dop-engine-v3';\nimport { NetworkName, NETWORK_CONFIG } from 'dop-sharedmodels-v3';\nimport chai from 'chai';\nimport chaiAsPromised from 'chai-as-promised';\nimport {\n getDopTxidsForDecrypts,\n quickSyncDopTransactionsV2,\n} from '../dop-txid-sync-graph-v2';\n\nchai.use(chaiAsPromised);\nconst { expect } = chai;\n\ndescribe('dop-txid-sync-graph', () => {\n it('Should pull dop txs subsquid query - Ethereum', async () => {\n const dopTxs: DopTransactionV2[] =\n await quickSyncDopTransactionsV2(\n NETWORK_CONFIG[NetworkName.Ethereum].chain,\n undefined,\n );\n\n expect(dopTxs).to.be.an('array');\n expect(dopTxs.length).to.equal(5000);\n\n expect(dopTxs[0].commitments).to.deep.equal([\n '0x1afd01a29faf22dcc5678694092a08d38de99fc97d07b9281fa66f956ce43579',\n '0x2ffc716d8ae767995961bbde4a208dbae438783065bbd200f51a8d4e97cc2289',\n '0x078f9824c86b2488714eb76dc15199c3fa21903517d5f3e19ab2035d264400b6',\n ]);\n expect(dopTxs[0].nullifiers).to.deep.equal([\n '0x1e52cee52f67c37a468458671cddde6b56390dcbdc4cf3b770badc0e78d66401',\n '0x0ac9f5ab5bcb5a115a3efdd0475f6c22dc6a6841caf35a52ecf86a802bfce8ee',\n ]);\n expect(dopTxs[0].graphID).to.equal(\n '0x0000000000000000000000000000000000000000000000000000000000e1285000000000000000000000000000000000000000000000000000000000000001500000000000000000000000000000000000000000000000000000000000000000',\n );\n expect(dopTxs[0].boundParamsHash).to.equal(\n '0x2c72a0bcce4f1169dd988204775483938ded5f5899cec84829b1cc667a683784',\n );\n expect(dopTxs[0].txid).to.equal(\n 'f07a9a458f57f1cc9cc2e5a627c3ef611a18b77e10c2bfc133fceca7743f8d0c',\n );\n expect(dopTxs[0].utxoTreeIn).to.equal(0);\n expect(dopTxs[0].utxoTreeOut).to.equal(0);\n expect(dopTxs[0].utxoBatchStartPositionOut).to.equal(2);\n expect(dopTxs[0].decrypt).to.equal(undefined);\n expect(dopTxs[0].blockNumber).to.equal(14755920);\n expect(dopTxs[0].verificationHash).to.equal(\n '0x099cd3ebcadaf6ff470d16bc0186fb5f26cd4103e9970effc9b6679478e11c72',\n );\n }).timeout(20_000);\n\n it('Should pull decrypt dop txids - Ethereum', async () => {\n const decryptDopTxids: string[] = await getDopTxidsForDecrypts(\n NETWORK_CONFIG[NetworkName.Ethereum].chain,\n '0x0b3b7179df1377c0a13058508e7dff2dbe8f73c39d68f569bc90b1c8b277082e',\n );\n\n expect(decryptDopTxids).to.deep.equal([\n '065bcb1a9d4cfa110f05b480f79f27fe2ad672868d3d1bdec05df2ddaec8333d',\n ]);\n }).timeout(20000);\n\n it('Should pull dop txs subsquid query - Polygon', async () => {\n const dopTxs: DopTransactionV2[] =\n await quickSyncDopTransactionsV2(\n NETWORK_CONFIG[NetworkName.Polygon].chain,\n undefined,\n );\n\n expect(dopTxs).to.be.an('array');\n expect(dopTxs.length).to.equal(5000);\n\n expect(dopTxs[0].commitments).to.deep.equal([\n '0x06c764e6221b61792530c5d6d33710b9cd4c4d4f734265a4e9070cf081436079',\n '0x140459c3519d73d56d292fd6d51292980f640623f008a4df063d387a819a7451',\n '0x23303173569d99ffd5799f526bd53cb81073e2d6e9ff8f4b07bed8d948722673',\n ]);\n expect(dopTxs[0].nullifiers).to.deep.equal([\n '0x1e52cee52f67c37a468458671cddde6b56390dcbdc4cf3b770badc0e78d66401',\n ]);\n expect(dopTxs[0].graphID).to.equal(\n '0x0000000000000000000000000000000000000000000000000000000001ae397e00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000000',\n );\n expect(dopTxs[0].boundParamsHash).to.equal(\n '0x251fcceba8b19129e88aff1e5214ad6f2a807e4a095075e55873aa59416111a2',\n );\n expect(dopTxs[0].txid).to.equal(\n '65df130da6a571fbcceb8538400f37bcaa4fe508caec7ab05f3b438f303bfe31',\n );\n expect(dopTxs[0].utxoTreeIn).to.equal(0);\n expect(dopTxs[0].utxoTreeOut).to.equal(0);\n expect(dopTxs[0].utxoBatchStartPositionOut).to.equal(2);\n expect(dopTxs[0].decrypt).to.equal(undefined);\n expect(dopTxs[0].blockNumber).to.equal(28195198);\n expect(dopTxs[0].verificationHash).to.equal(\n '0x099cd3ebcadaf6ff470d16bc0186fb5f26cd4103e9970effc9b6679478e11c72',\n );\n }).timeout(20_000);\n\n it('Should pull decrypt dop txids - Polygon', async () => {\n const decryptDopTxids: string[] = await getDopTxidsForDecrypts(\n NETWORK_CONFIG[NetworkName.Polygon].chain,\n '0x7310a30b3a0dcec299917d5cd7ef2feab8c0507c41ec17649f38a21b4093dc32',\n );\n\n expect(decryptDopTxids).to.deep.equal([\n '113827d5fea4ebacffc3ab7289e6185d328c51c5f59ecbcd874d8f73e5638e27',\n ]);\n }).timeout(20000);\n\n it('Should pull dop txs subsquid query - Arbitrum', async () => {\n const dopTxs: DopTransactionV2[] =\n await quickSyncDopTransactionsV2(\n NETWORK_CONFIG[NetworkName.Arbitrum].chain,\n undefined,\n );\n\n expect(dopTxs).to.be.an('array');\n expect(dopTxs.length).to.equal(5000);\n\n expect(dopTxs[0].commitments).to.deep.equal([\n '0x0bb9f2d13f87b8ba19b7f5bb7750148faeb0fed4a97bc6c3e63d7fe2a7b6d63e',\n '0x217fb14374fcc4eca2d92c204bad0b2b36f6787e3268ae4740c992c632f7691c',\n ]);\n expect(dopTxs[0].nullifiers).to.deep.equal([\n '0x25234f8100ee0b86e2f331f255d982ba60d05710ceae8f226f6254addd362b1f',\n ]);\n expect(dopTxs[0].graphID).to.equal(\n '0x00000000000000000000000000000000000000000000000000000000039dd19000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000',\n );\n expect(dopTxs[0].boundParamsHash).to.equal(\n '0x2bb2954938dfcfdcc47253fd59d2225fc98feab293eb1bc80eff5d9d79de05a2',\n );\n expect(dopTxs[0].txid).to.equal(\n 'cb4293e3a81241ef8b6c48285e4860222d9c147da8583aa1d53a7117f230c368',\n );\n expect(dopTxs[0].utxoTreeIn).to.equal(0);\n expect(dopTxs[0].utxoTreeOut).to.equal(0);\n expect(dopTxs[0].utxoBatchStartPositionOut).to.equal(1);\n expect(dopTxs[0].decrypt).to.deep.equal({\n tokenData: {\n tokenType: 0,\n tokenAddress: '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1',\n tokenSubID: '0x00',\n },\n toAddress: '0x5ad95c537b002770a39dea342c4bb2b68b1497aa',\n value: '1000000000000000',\n });\n expect(dopTxs[0].blockNumber).to.equal(60674448);\n expect(dopTxs[0].verificationHash).to.equal(\n '0x4f7406636df927247b46552673d024567d99fd60e5fb50159ba47a170580308a',\n );\n }).timeout(20_000);\n\n it('Should pull decrypt dop txids - Arbitrum', async () => {\n const decryptDopTxids: string[] = await getDopTxidsForDecrypts(\n NETWORK_CONFIG[NetworkName.Arbitrum].chain,\n '0xcb4293e3a81241ef8b6c48285e4860222d9c147da8583aa1d53a7117f230c368',\n );\n\n expect(decryptDopTxids).to.deep.equal([\n '1bef936762f21323e57539cdf4b87251279b34880881ae003219058dacc258a7',\n ]);\n }).timeout(20000);\n\n it('Should pull dop txs subsquid query - BNBChain', async () => {\n const dopTxs: DopTransactionV2[] =\n await quickSyncDopTransactionsV2(\n NETWORK_CONFIG[NetworkName.BNBChain].chain,\n undefined,\n );\n\n expect(dopTxs).to.be.an('array');\n expect(dopTxs.length).to.equal(5000);\n\n expect(dopTxs[0].commitments).to.deep.equal([\n '0x2f1f83e339c05d14f102088c0c3f2b8f8addbd8497a88ef49a1e9c942bbb0f87',\n '0x275c216c06fd5e68bb65f46f85e93afb563f9bad08b2eaf222a38ce6d848c004',\n ]);\n expect(dopTxs[0].nullifiers).to.deep.equal([\n '0x1866ea0094491975f18fa92ba6fac7c2f562bbc49e975866643108dd15f0a6b2',\n ]);\n expect(dopTxs[0].graphID).to.equal(\n '0x00000000000000000000000000000000000000000000000000000000010f2d7b000000000000000000000000000000000000000000000000000000000000003f0000000000000000000000000000000000000000000000000000000000000000',\n );\n expect(dopTxs[0].boundParamsHash).to.equal(\n '0x0d0cc0770e4915c2b841f394834c0e3b2d5807642c23a9578a1bbc80f8b47f6a',\n );\n expect(dopTxs[0].txid).to.equal(\n '4388f3727fe7f9cfd0d57807f7a2a126fbb7e56a25a17e3e99102931ea2e4b33',\n );\n expect(dopTxs[0].utxoTreeIn).to.equal(0);\n expect(dopTxs[0].utxoTreeOut).to.equal(0);\n expect(dopTxs[0].utxoBatchStartPositionOut).to.equal(4);\n expect(dopTxs[0].decrypt).to.equal(undefined);\n expect(dopTxs[0].blockNumber).to.equal(17771899);\n expect(dopTxs[0].verificationHash).to.equal(\n '0x5052ad94d14b1f0a16fa8ca6680f9736a357cc73798695d3e1247ca95483415c',\n );\n }).timeout(20_000);\n\n it('Should pull decrypt dop txids - BNBChain', async () => {\n const decryptDopTxids: string[] = await getDopTxidsForDecrypts(\n NETWORK_CONFIG[NetworkName.BNBChain].chain,\n '0xcef99c75d555b81625e5e96304716b04bd6900d99b664fda7d5a89265dca3c38',\n );\n\n expect(decryptDopTxids).to.deep.equal([\n '27fe3f9eef756cba48cf2850935c20dc7faf36911fe2cc43b69b4650912e09e0',\n ]);\n }).timeout(20000);\n\n it('Should pull dop txs subsquid query - Sepolia', async () => {\n const dopTxs: DopTransactionV2[] =\n await quickSyncDopTransactionsV2(\n NETWORK_CONFIG[NetworkName.EthereumSepolia].chain,\n undefined,\n );\n\n expect(dopTxs).to.be.an('array');\n expect(dopTxs.length).to.be.greaterThanOrEqual(10);\n\n expect(dopTxs[0].commitments).to.deep.equal([\n '0x213b8672321b8b6d4165528e3146b1c25da4656fd93db74efa3258416e20b5d9',\n '0x14b55264849684c1d549c44b469e1047d67f06bfdb6aa22f1d14e1c545d749a5',\n ]);\n expect(dopTxs[0].nullifiers).to.deep.equal([\n '0x25234f8100ee0b86e2f331f255d982ba60d05710ceae8f226f6254addd362b1f',\n ]);\n expect(dopTxs[0].graphID).to.equal(\n '0x00000000000000000000000000000000000000000000000000000000005b001e000000000000000000000000000000000000000000000000000000000000003b0000000000000000000000000000000000000000000000000000000000000000',\n );\n expect(dopTxs[0].boundParamsHash).to.equal(\n '0x1a2fec90b4354f18153226a457bc24fe480fa816f2cf8ae13419be7938f80b51',\n );\n expect(dopTxs[0].txid).to.equal(\n 'e629e8f89ab98fee9dadacb9323746e4c150dee57917218509e94d9e35cc1db0',\n );\n expect(dopTxs[0].utxoTreeIn).to.equal(0);\n expect(dopTxs[0].utxoTreeOut).to.equal(0);\n expect(dopTxs[0].utxoBatchStartPositionOut).to.equal(1);\n expect(dopTxs[0].decrypt).to.deep.equal({\n tokenData: {\n tokenType: 0,\n tokenAddress: '0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14',\n tokenSubID: '0x00',\n },\n toAddress: '0x7e3d929ebd5bdc84d02bd3205c777578f33a214d',\n value: '10025062656641604',\n });\n expect(dopTxs[0].blockNumber).to.equal(5963806);\n expect(dopTxs[0].verificationHash).to.equal(\n '0x4f7406636df927247b46552673d024567d99fd60e5fb50159ba47a170580308a',\n );\n }).timeout(20_000);\n\n it('Should pull decrypt dop txids - Sepolia', async () => {\n const decryptDopTxids: string[] = await getDopTxidsForDecrypts(\n NETWORK_CONFIG[NetworkName.EthereumSepolia].chain,\n '0xe629e8f89ab98fee9dadacb9323746e4c150dee57917218509e94d9e35cc1db0',\n );\n\n expect(decryptDopTxids).to.deep.equal([\n '1acb0bd1981ecdf3652d3580b72bcb97cbfe635abf66e339d8e6d8577184f65e',\n ]);\n }).timeout(20000);\n});\n"]}