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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../../src/services/dop/profile/storage.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/strict-boolean-expressions */\n/* eslint-disable @typescript-eslint/no-misused-promises */\n/* eslint-disable no-await-in-loop */\nimport type { AbstractLevelDOWN } from 'abstract-leveldown';\nimport { getEngine } from '../core/engine';\nimport { reportAndSanitizeError } from '../../../utils/error';\nimport { \n UserProfile, \n SelectiveTransparencySettings, \n VisibilityProof, \n ViewingRequest \n} from './types';\n\n// Database key prefixes for different data types\nconst PROFILE_PREFIX = 'profile:';\nconst SETTINGS_PREFIX = 'settings:';\nconst PROOF_PREFIX = 'proof:';\nconst VIEWING_REQUEST_PREFIX = 'viewing:';\n\n/**\n * Storage utility for profile and selective transparency data using LevelDown\n */\nexport class ProfileStorage {\n private db: AbstractLevelDOWN;\n\n constructor(db: AbstractLevelDOWN) {\n this.db = db;\n }\n\n // Profile operations\n async getProfile(walletId: string): Promise<Optional<UserProfile>> {\n try {\n const key = `${PROFILE_PREFIX}${walletId}`;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const data = await new Promise<any>((resolve, reject) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.db.get(key, // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (err: any, value: any) => {\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (err) {\n reject(err);\n } else {\n resolve(value);\n }\n });\n });\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return JSON.parse(data.toString()) as UserProfile;\n } catch (err) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const error = err ;\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n error.notFound || error.type === 'NotFoundError' || error.message?.includes('NotFound')) {\n return undefined;\n }\n throw reportAndSanitizeError('getProfile', err);\n }\n }\n\n async setProfile(walletId: string, profile: UserProfile): Promise<void> {\n try {\n const key = `${PROFILE_PREFIX}${walletId}`;\n // eslint-disable-next-line no-await-in-loop\n await new Promise<void>((resolve, reject) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.db.put(key, JSON.stringify(profile), // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (err: any) => {\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (err) {\n reject(err);\n } else {\n resolve();\n }\n });\n });\n } catch (err) {\n throw reportAndSanitizeError('setProfile', err);\n }\n }\n\n async deleteProfile(walletId: string): Promise<void> {\n try {\n const key = `${PROFILE_PREFIX}${walletId}`;\n // eslint-disable-next-line no-await-in-loop\n await new Promise<void>((resolve, reject) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.db.del(key, // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (err: any) => {\n if (err && !// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n err.notFound && err.type !== 'NotFoundError' && !err.message?.includes('NotFound')) {\n reject(err);\n } else {\n resolve();\n }\n });\n });\n } catch (err) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const error = err ;\n if (!// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n error.notFound && error.type !== 'NotFoundError' && !error.message?.includes('NotFound')) {\n throw reportAndSanitizeError('deleteProfile', err);\n }\n }\n }\n\n // Selective transparency settings operations\n async getSettings(walletId: string): Promise<Optional<SelectiveTransparencySettings>> {\n try {\n const key = `${SETTINGS_PREFIX}${walletId}`;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const data = await new Promise<any>((resolve, reject) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.db.get(key, // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (err: any, value: any) => {\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (err) {\n reject(err);\n } else {\n resolve(value);\n }\n });\n });\n const settings = JSON.parse(data.toString()) as SelectiveTransparencySettings;\n // Convert date strings back to Date objects\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (settings.createdAt) // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n settings.createdAt = new Date(settings.createdAt);\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (settings.updatedAt) // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n settings.updatedAt = new Date(settings.updatedAt);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return settings;\n } catch (err) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const error = err ;\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n error.notFound || error.type === 'NotFoundError' || error.message?.includes('NotFound')) {\n return undefined;\n }\n throw reportAndSanitizeError('getSettings', err);\n }\n }\n\n async setSettings(walletId: string, settings: SelectiveTransparencySettings): Promise<void> {\n try {\n const key = `${SETTINGS_PREFIX}${walletId}`;\n // eslint-disable-next-line no-await-in-loop\n await new Promise<void>((resolve, reject) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.db.put(key, JSON.stringify(settings), // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (err: any) => {\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (err) {\n reject(err);\n } else {\n resolve();\n }\n });\n });\n } catch (err) {\n throw reportAndSanitizeError('setSettings', err);\n }\n }\n\n async deleteSettings(walletId: string): Promise<void> {\n try {\n const key = `${SETTINGS_PREFIX}${walletId}`;\n // eslint-disable-next-line no-await-in-loop\n await new Promise<void>((resolve, reject) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.db.del(key, // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (err: any) => {\n if (err && !// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n err.notFound) {\n reject(err);\n } else {\n resolve();\n }\n });\n });\n } catch (err) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const error = err ;\n if (!// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n error.notFound) {\n throw reportAndSanitizeError('deleteSettings', err);\n }\n }\n }\n\n // Visibility proof operations\n async getProof(proofId: string): Promise<Optional<VisibilityProof>> {\n try {\n const key = `${PROOF_PREFIX}${proofId}`;\n const data = await new Promise<any>((resolve, reject) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.db.get(key, // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (err: any, value: any) => {\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (err) {\n reject(err);\n } else {\n resolve(value);\n }\n });\n });\n const proof = JSON.parse(data.toString());\n // Convert date strings back to Date objects\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (proof.createdAt) // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n proof.createdAt = new Date(proof.createdAt);\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (proof.expiresAt) // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n proof.expiresAt = new Date(proof.expiresAt);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return proof;\n } catch // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (err: any) {\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n err.notFound || err.type === 'NotFoundError' || err.message?.includes('NotFound')) {\n return undefined;\n }\n throw reportAndSanitizeError('getProof', err);\n }\n }\n\n async setProof(proofId: string, proof: VisibilityProof): Promise<void> {\n try {\n const key = `${PROOF_PREFIX}${proofId}`;\n // eslint-disable-next-line no-await-in-loop\n await new Promise<void>((resolve, reject) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.db.put(key, JSON.stringify(proof), // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (err: any) => {\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (err) {\n reject(err);\n } else {\n resolve();\n }\n });\n });\n } catch (err) {\n throw reportAndSanitizeError('setProof', err);\n }\n }\n\n async deleteProof(proofId: string): Promise<void> {\n try {\n const key = `${PROOF_PREFIX}${proofId}`;\n // eslint-disable-next-line no-await-in-loop\n await new Promise<void>((resolve, reject) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.db.del(key, // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (err: any) => {\n if (err && !// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n err.notFound) {\n reject(err);\n } else {\n resolve();\n }\n });\n });\n } catch // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (err: any) {\n if (!// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n err.notFound) {\n throw reportAndSanitizeError('deleteProof', err);\n }\n }\n }\n\n // Viewing request operations\n async getViewingRequest(requestId: string): Promise<Optional<ViewingRequest>> {\n try {\n // Since the key now includes wallet ID, we need to scan to find the request\n const iterator = // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.db.iterator({\n gte: `${VIEWING_REQUEST_PREFIX}`,\n lt: `${VIEWING_REQUEST_PREFIX}~`,\n });\n\n return new Promise((resolve, reject) => {\n const processNext = () => {\n iterator.next(// eslint-disable-next-line @typescript-eslint/no-explicit-any\n (err: any, key: any, value: any) => {\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (err) {\n iterator.end(() => reject(reportAndSanitizeError('getViewingRequest', err)));\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (key === undefined) {\n iterator.end(() => resolve(undefined));\n return;\n }\n\n try {\n const request = JSON.parse(value.toString());\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (request.id === requestId) {\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (request.createdAt) // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n request.createdAt = new Date(request.createdAt);\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (request.expiresAt) // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n request.expiresAt = new Date(request.expiresAt);\n iterator.end(() => resolve(request));\n return;\n }\n } catch (parseErr) {\n iterator.end(() => reject(reportAndSanitizeError('getViewingRequest', parseErr)));\n return;\n }\n\n processNext();\n });\n };\n\n processNext();\n });\n } catch (err) {\n throw reportAndSanitizeError('getViewingRequest', err);\n }\n }\n\n async setViewingRequest(requestId: string, request: ViewingRequest): Promise<void> {\n try {\n // Store with wallet ID included in the key for efficient querying\n const key = `${VIEWING_REQUEST_PREFIX}${request.walletId}:${requestId}`;\n // eslint-disable-next-line no-await-in-loop\n await new Promise<void>((resolve, reject) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.db.put(key, JSON.stringify(request), // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (err: any) => {\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (err) {\n reject(err);\n } else {\n resolve();\n }\n });\n });\n } catch (err) {\n throw reportAndSanitizeError('setViewingRequest', err);\n }\n }\n\n async deleteViewingRequest(requestId: string): Promise<void> {\n try {\n const key = `${VIEWING_REQUEST_PREFIX}${requestId}`;\n // eslint-disable-next-line no-await-in-loop\n await new Promise<void>((resolve, reject) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.db.del(key, // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (err: any) => {\n if (err && !// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n err.notFound) {\n reject(err);\n } else {\n resolve();\n }\n });\n });\n } catch // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (err: any) {\n if (!// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n err.notFound) {\n throw reportAndSanitizeError('deleteViewingRequest', err);\n }\n }\n }\n\n // Batch operations for better performance\n async getAllProofsForWallet(walletId: string): Promise<VisibilityProof[]> {\n try {\n const proofs: VisibilityProof[] = [];\n const iterator = // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.db.iterator({\n gte: `${PROOF_PREFIX}${walletId}:`,\n lt: `${PROOF_PREFIX}${walletId}:~`,\n });\n\n return new Promise((resolve, reject) => {\n const processNext = () => {\n iterator.next(// eslint-disable-next-line @typescript-eslint/no-explicit-any\n (err: any, key: any, value: any) => {\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (err) {\n iterator.end(() => reject(reportAndSanitizeError('getAllProofsForWallet', err)));\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (key === undefined) {\n iterator.end(() => resolve(proofs));\n return;\n }\n\n try {\n const proof = JSON.parse(value.toString());\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (proof.createdAt) // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n proof.createdAt = new Date(proof.createdAt);\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (proof.expiresAt) // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n proof.expiresAt = new Date(proof.expiresAt);\n proofs.push(proof);\n } catch (parseErr) {\n iterator.end(() => reject(reportAndSanitizeError('getAllProofsForWallet', parseErr)));\n return;\n }\n\n processNext();\n });\n };\n\n processNext();\n });\n } catch (err) {\n throw reportAndSanitizeError('getAllProofsForWallet', err);\n }\n }\n\n async getAllViewingRequestsForWallet(walletId: string): Promise<ViewingRequest[]> {\n try {\n const requests: ViewingRequest[] = [];\n const iterator = // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.db.iterator({\n gte: `${VIEWING_REQUEST_PREFIX}${walletId}:`,\n lt: `${VIEWING_REQUEST_PREFIX}${walletId}:~`,\n });\n\n return new Promise((resolve, reject) => {\n const processNext = () => {\n iterator.next(// eslint-disable-next-line @typescript-eslint/no-explicit-any\n (err: any, key: any, value: any) => {\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (err) {\n iterator.end(() => reject(reportAndSanitizeError('getAllViewingRequestsForWallet', err)));\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (key === undefined) {\n iterator.end(() => resolve(requests));\n return;\n }\n\n try {\n const request = JSON.parse(value.toString());\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (request.createdAt) // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n request.createdAt = new Date(request.createdAt);\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (request.expiresAt) // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n request.expiresAt = new Date(request.expiresAt);\n requests.push(request);\n } catch (parseErr) {\n iterator.end(() => reject(reportAndSanitizeError('getAllViewingRequestsForWallet', parseErr)));\n return;\n }\n\n processNext();\n });\n };\n\n processNext();\n });\n } catch (err) {\n throw reportAndSanitizeError('getAllViewingRequestsForWallet', err);\n }\n }\n\n // Cleanup expired data\n async cleanupExpiredProofs(): Promise<void> {\n try {\n const now = new Date();\n const iterator = // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.db.iterator({\n gte: PROOF_PREFIX,\n lt: `${PROOF_PREFIX }~`,\n });\n\n const expiredKeys: string[] = [];\n\n return new Promise((resolve, reject) => {\n const processNext = () => {\n iterator.next(// eslint-disable-next-line @typescript-eslint/no-explicit-any\n (err: any, key: any, value: any) => {\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (err) {\n iterator.end(() => reject(reportAndSanitizeError('cleanupExpiredProofs', err)));\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (key === undefined) {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n iterator.end(async () => {\n // Delete expired keys\n // eslint-disable-next-line no-await-in-loop\n for (const expiredKey of expiredKeys) {\n try {\n // eslint-disable-next-line no-await-in-loop\n await new Promise<void>((resolve, reject) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.db.del(expiredKey, // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (err: any) => {\n if (err && !// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n err.notFound) {\n reject(err);\n } else {\n resolve();\n }\n });\n });\n } catch (delErr) {\n // Ignore if key doesn't exist\n }\n }\n resolve();\n });\n return;\n }\n\n try {\n const proof = JSON.parse(value.toString());\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (proof.expiresAt && new Date(proof.expiresAt) < now) {\n expiredKeys.push(key.toString());\n }\n } catch (parseErr) {\n // Skip malformed entries\n }\n\n processNext();\n });\n };\n\n processNext();\n });\n } catch (err) {\n throw reportAndSanitizeError('cleanupExpiredProofs', err);\n }\n }\n\n async cleanupExpiredViewingRequests(): Promise<void> {\n try {\n const now = new Date();\n const iterator = // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.db.iterator({\n gte: VIEWING_REQUEST_PREFIX,\n lt: `${VIEWING_REQUEST_PREFIX }~`,\n });\n\n const expiredKeys: string[] = [];\n\n return new Promise((resolve, reject) => {\n const processNext = () => {\n iterator.next(// eslint-disable-next-line @typescript-eslint/no-explicit-any\n (err: any, key: any, value: any) => {\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (err) {\n iterator.end(() => reject(reportAndSanitizeError('cleanupExpiredViewingRequests', err)));\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (key === undefined) {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n iterator.end(async () => {\n // Delete expired keys\n // eslint-disable-next-line no-await-in-loop\n for (const expiredKey of expiredKeys) {\n try {\n // eslint-disable-next-line no-await-in-loop\n await new Promise<void>((resolve, reject) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.db.del(expiredKey, // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (err: any) => {\n if (err && !// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n err.notFound) {\n reject(err);\n } else {\n resolve();\n }\n });\n });\n } catch (delErr) {\n // Ignore if key doesn't exist\n }\n }\n resolve();\n });\n return;\n }\n\n try {\n const request = JSON.parse(value.toString());\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (request.expiresAt && new Date(request.expiresAt) < now) {\n expiredKeys.push(key.toString());\n }\n } catch (parseErr) {\n // Skip malformed entries\n }\n\n processNext();\n });\n };\n\n processNext();\n });\n } catch (err) {\n throw reportAndSanitizeError('cleanupExpiredViewingRequests', err);\n }\n }\n}\n\n// Singleton instance that uses the same database as the DOP engine\nlet storageInstance: Optional<ProfileStorage>;\n\nexport const getProfileStorage = (): ProfileStorage => {\n if (!storageInstance) {\n const engine = getEngine();\n // Access the database from the engine's internals\n // Note: This assumes the DOP engine exposes its database instance\n // If not available, you might need to store the db instance separately\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const db = (engine as any).db || (engine as any).database || (engine as any).leveldb;\n \n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (!db) {\n throw new Error('Cannot access database instance from DOP engine');\n }\n \n storageInstance = new ProfileStorage(db);\n }\n return storageInstance;\n};\n\nexport const setProfileStorage = (storage: ProfileStorage) => {\n storageInstance = storage;\n};\n"]}
@@ -0,0 +1,106 @@
1
+ export interface UserProfile {
2
+ id: string;
3
+ username?: string;
4
+ profilePicture?: string;
5
+ bio?: string;
6
+ socialLinks?: {
7
+ twitter?: string;
8
+ discord?: string;
9
+ github?: string;
10
+ website?: string;
11
+ };
12
+ customization?: ProfileCustomization;
13
+ createdAt: Date;
14
+ updatedAt: Date;
15
+ }
16
+ export interface SelectiveTransparencySettings {
17
+ id: string;
18
+ walletId: string;
19
+ assetVisibility: {
20
+ showTokenBalances: boolean;
21
+ showNFTs: boolean;
22
+ showTransactionHistory: boolean;
23
+ showAddresses: boolean;
24
+ };
25
+ tokenVisibilityRules: Array<{
26
+ tokenAddress: string;
27
+ isVisible: boolean;
28
+ showBalance: boolean;
29
+ showTransactions: boolean;
30
+ }>;
31
+ nftVisibilityRules: Array<{
32
+ nftAddress: string;
33
+ isVisible: boolean;
34
+ showCollection: boolean;
35
+ showTransactions: boolean;
36
+ }>;
37
+ transactionVisibility: {
38
+ showSenderAddress: boolean;
39
+ showReceiverAddress: boolean;
40
+ showAmount: boolean;
41
+ showMemo: boolean;
42
+ showTimestamp: boolean;
43
+ };
44
+ profileVisibility: {
45
+ showUsername: boolean;
46
+ showProfilePicture: boolean;
47
+ showBio: boolean;
48
+ showSocialLinks: boolean;
49
+ };
50
+ viewingWhitelist: Array<{
51
+ address: string;
52
+ permissions: {
53
+ viewBalances: boolean;
54
+ viewNFTs: boolean;
55
+ viewTransactions: boolean;
56
+ viewProfile: boolean;
57
+ };
58
+ }>;
59
+ createdAt: Date;
60
+ updatedAt: Date;
61
+ }
62
+ export interface VisibilityProof {
63
+ id: string;
64
+ walletId: string;
65
+ requesterId: string;
66
+ proofType: 'balance' | 'nft' | 'transaction' | 'profile';
67
+ assetId?: string;
68
+ proof: string;
69
+ isValid: boolean;
70
+ expiresAt?: Date;
71
+ createdAt: Date;
72
+ }
73
+ export interface ProfileCustomization {
74
+ theme?: 'light' | 'dark' | 'auto';
75
+ displayPreferences: {
76
+ currencyFormat: 'USD' | 'EUR' | 'ETH' | 'BTC';
77
+ numberFormat: 'full' | 'abbreviated';
78
+ dateFormat: 'MM/DD/YYYY' | 'DD/MM/YYYY' | 'YYYY-MM-DD';
79
+ timeFormat: '12h' | '24h';
80
+ };
81
+ privacyAlerts: {
82
+ newViewingRequest: boolean;
83
+ profileUpdate: boolean;
84
+ assetVisibilityChange: boolean;
85
+ };
86
+ }
87
+ export interface ViewingRequest {
88
+ id: string;
89
+ requesterId: string;
90
+ walletId: string;
91
+ requestType: 'balance' | 'nft' | 'transaction' | 'profile';
92
+ assetId?: string;
93
+ message?: string;
94
+ status: 'pending' | 'approved' | 'rejected' | 'expired';
95
+ createdAt: Date;
96
+ respondedAt?: Date;
97
+ expiresAt: Date;
98
+ }
99
+ export interface SelectiveTransparencyEvent {
100
+ type: 'profile_updated' | 'settings_changed' | 'viewing_request' | 'proof_generated';
101
+ data: {
102
+ walletId: string;
103
+ [key: string]: unknown;
104
+ };
105
+ }
106
+ export type SelectiveTransparencyCallback = (event: SelectiveTransparencyEvent) => void;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/services/dop/profile/types.ts"],"names":[],"mappings":"","sourcesContent":["export interface UserProfile {\n id: string;\n username?: string;\n profilePicture?: string;\n bio?: string;\n socialLinks?: {\n twitter?: string;\n discord?: string;\n github?: string;\n website?: string;\n };\n customization?: ProfileCustomization;\n createdAt: Date;\n updatedAt: Date;\n}\n\nexport interface SelectiveTransparencySettings {\n id: string;\n walletId: string;\n \n // Asset visibility settings\n assetVisibility: {\n showTokenBalances: boolean;\n showNFTs: boolean;\n showTransactionHistory: boolean;\n showAddresses: boolean;\n };\n \n // Granular token visibility\n tokenVisibilityRules: Array<{\n tokenAddress: string;\n isVisible: boolean;\n showBalance: boolean;\n showTransactions: boolean;\n }>;\n \n // NFT visibility settings\n nftVisibilityRules: Array<{\n nftAddress: string;\n isVisible: boolean;\n showCollection: boolean;\n showTransactions: boolean;\n }>;\n \n // Transaction visibility settings\n transactionVisibility: {\n showSenderAddress: boolean;\n showReceiverAddress: boolean;\n showAmount: boolean;\n showMemo: boolean;\n showTimestamp: boolean;\n };\n \n // Profile visibility settings\n profileVisibility: {\n showUsername: boolean;\n showProfilePicture: boolean;\n showBio: boolean;\n showSocialLinks: boolean;\n };\n \n // Whitelist for specific addresses that can see private info\n viewingWhitelist: Array<{\n address: string;\n permissions: {\n viewBalances: boolean;\n viewNFTs: boolean;\n viewTransactions: boolean;\n viewProfile: boolean;\n };\n }>;\n \n createdAt: Date;\n updatedAt: Date;\n}\n\nexport interface VisibilityProof {\n id: string;\n walletId: string;\n requesterId: string;\n proofType: 'balance' | 'nft' | 'transaction' | 'profile';\n assetId?: string; // Token address or NFT address\n proof: string; // Cryptographic proof\n isValid: boolean;\n expiresAt?: Date;\n createdAt: Date;\n}\n\nexport interface ProfileCustomization {\n theme?: 'light' | 'dark' | 'auto';\n displayPreferences: {\n currencyFormat: 'USD' | 'EUR' | 'ETH' | 'BTC';\n numberFormat: 'full' | 'abbreviated';\n dateFormat: 'MM/DD/YYYY' | 'DD/MM/YYYY' | 'YYYY-MM-DD';\n timeFormat: '12h' | '24h';\n };\n privacyAlerts: {\n newViewingRequest: boolean;\n profileUpdate: boolean;\n assetVisibilityChange: boolean;\n };\n}\n\nexport interface ViewingRequest {\n id: string;\n requesterId: string;\n walletId: string;\n requestType: 'balance' | 'nft' | 'transaction' | 'profile';\n assetId?: string;\n message?: string;\n status: 'pending' | 'approved' | 'rejected' | 'expired';\n createdAt: Date;\n respondedAt?: Date;\n expiresAt: Date;\n}\n\nexport interface SelectiveTransparencyEvent {\n type: 'profile_updated' | 'settings_changed' | 'viewing_request' | 'proof_generated';\n data: {\n walletId: string;\n [key: string]: unknown;\n };\n}\n\nexport type SelectiveTransparencyCallback = (event: SelectiveTransparencyEvent) => void;\n"]}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Example usage of the Profile and Selective Transparency features with LevelDown storage
3
+ */
4
+ import { UserProfile, SelectiveTransparencySettings } from './types';
5
+ export declare const createUserProfile: (walletId: string) => Promise<UserProfile>;
6
+ export declare const setupSelectiveTransparency: (walletId: string) => Promise<SelectiveTransparencySettings>;
7
+ export declare const generateVisibilityProof: (walletId: string, assetId: string) => Promise<void>;
8
+ export declare const createViewingRequest: (requesterId: string, walletId: string, requestType: 'balance' | 'nft' | 'transaction' | 'profile', message?: string) => Promise<void>;
9
+ export declare const addToWhitelist: (walletId: string, trustedAddress: string) => Promise<void>;
10
+ export declare const setTokenVisibility: (walletId: string, tokenAddress: string) => Promise<void>;
11
+ export declare const completeUsageExample: (walletId: string) => Promise<void>;
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ /**
3
+ * Example usage of the Profile and Selective Transparency features with LevelDown storage
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.completeUsageExample = exports.setTokenVisibility = exports.addToWhitelist = exports.createViewingRequest = exports.generateVisibilityProof = exports.setupSelectiveTransparency = exports.createUserProfile = void 0;
7
+ const profile_manager_1 = require("./profile-manager");
8
+ const selective_transparency_1 = require("./selective-transparency");
9
+ // Example: Create a user profile
10
+ const createUserProfile = async (walletId) => {
11
+ try {
12
+ const profile = await profile_manager_1.profileManager.createProfile(walletId, {
13
+ username: 'alice_crypto',
14
+ bio: 'Crypto enthusiast and privacy advocate',
15
+ profilePicture: 'https://example.com/avatar.jpg',
16
+ socialLinks: {
17
+ twitter: '@alice_crypto',
18
+ discord: 'alice#1234',
19
+ },
20
+ });
21
+ console.log('Profile created successfully:', profile);
22
+ return profile;
23
+ }
24
+ catch (error) {
25
+ console.error('Error creating profile:', error);
26
+ throw error;
27
+ }
28
+ };
29
+ exports.createUserProfile = createUserProfile;
30
+ // Example: Set up selective transparency settings
31
+ const setupSelectiveTransparency = async (walletId) => {
32
+ try {
33
+ const settings = await selective_transparency_1.selectiveTransparencyManager.createDefaultSettings(walletId);
34
+ // Customize settings for enhanced privacy
35
+ const updatedSettings = await selective_transparency_1.selectiveTransparencyManager.updateSettings(walletId, {
36
+ assetVisibility: {
37
+ showTokenBalances: false,
38
+ showNFTs: true,
39
+ showTransactionHistory: false,
40
+ showAddresses: false, // Hide addresses
41
+ },
42
+ profileVisibility: {
43
+ showUsername: true,
44
+ showProfilePicture: true,
45
+ showBio: true,
46
+ showSocialLinks: false, // Hide social links for privacy
47
+ },
48
+ });
49
+ console.log('Selective transparency settings configured:', updatedSettings);
50
+ return updatedSettings;
51
+ }
52
+ catch (error) {
53
+ console.error('Error setting up selective transparency:', error);
54
+ throw error;
55
+ }
56
+ };
57
+ exports.setupSelectiveTransparency = setupSelectiveTransparency;
58
+ // Example: Generate a visibility proof for a specific asset
59
+ const generateVisibilityProof = async (walletId, assetId) => {
60
+ try {
61
+ const proof = await selective_transparency_1.selectiveTransparencyManager.generateVisibilityProof(walletId, 'requester-wallet-id', 'balance', assetId);
62
+ console.log('Visibility proof generated:', proof);
63
+ // Verify the proof
64
+ const isValid = await selective_transparency_1.selectiveTransparencyManager.verifyVisibilityProof(proof.id);
65
+ console.log('Proof is valid:', isValid);
66
+ }
67
+ catch (error) {
68
+ console.error('Error generating visibility proof:', error);
69
+ throw error;
70
+ }
71
+ };
72
+ exports.generateVisibilityProof = generateVisibilityProof;
73
+ // Example: Create a viewing request
74
+ const createViewingRequest = async (requesterId, walletId, requestType, message) => {
75
+ try {
76
+ const request = await selective_transparency_1.selectiveTransparencyManager.createViewingRequest(requesterId, walletId, requestType, undefined, // assetId - optional
77
+ message);
78
+ console.log('Viewing request created:', request);
79
+ }
80
+ catch (error) {
81
+ console.error('Error creating viewing request:', error);
82
+ throw error;
83
+ }
84
+ };
85
+ exports.createViewingRequest = createViewingRequest;
86
+ // Example: Add someone to whitelist
87
+ const addToWhitelist = async (walletId, trustedAddress) => {
88
+ try {
89
+ await selective_transparency_1.selectiveTransparencyManager.addToWhitelist(walletId, trustedAddress, {
90
+ viewBalances: true,
91
+ viewNFTs: true,
92
+ viewTransactions: false,
93
+ viewProfile: true,
94
+ });
95
+ console.log(`Added ${trustedAddress} to whitelist for wallet ${walletId}`);
96
+ }
97
+ catch (error) {
98
+ console.error('Error adding to whitelist:', error);
99
+ throw error;
100
+ }
101
+ };
102
+ exports.addToWhitelist = addToWhitelist;
103
+ // Example: Set specific token visibility
104
+ const setTokenVisibility = async (walletId, tokenAddress) => {
105
+ try {
106
+ await selective_transparency_1.selectiveTransparencyManager.setTokenVisibility(walletId, tokenAddress, {
107
+ isVisible: true,
108
+ showBalance: true,
109
+ showTransactions: false,
110
+ });
111
+ console.log(`Token visibility set for ${tokenAddress} in wallet ${walletId}`);
112
+ }
113
+ catch (error) {
114
+ console.error('Error setting token visibility:', error);
115
+ throw error;
116
+ }
117
+ };
118
+ exports.setTokenVisibility = setTokenVisibility;
119
+ // Example: Complete usage workflow
120
+ const completeUsageExample = async (walletId) => {
121
+ try {
122
+ console.log('Starting complete usage example...');
123
+ // 1. Create user profile
124
+ const profile = await (0, exports.createUserProfile)(walletId);
125
+ // 2. Set up selective transparency
126
+ const settings = await (0, exports.setupSelectiveTransparency)(walletId);
127
+ // 3. Generate visibility proof for ETH
128
+ await (0, exports.generateVisibilityProof)(walletId, 'ETH');
129
+ // 4. Add a trusted address to whitelist
130
+ await (0, exports.addToWhitelist)(walletId, '0x1234567890abcdef');
131
+ // 5. Set specific token visibility
132
+ await (0, exports.setTokenVisibility)(walletId, '0xA0b86a33E6441c8D1e24a0b7f1c94c7e6e08c8d2');
133
+ // 6. Create a viewing request
134
+ await (0, exports.createViewingRequest)('requester-wallet-id', walletId, 'balance', 'Can you share your ETH balance for verification?');
135
+ console.log('Complete usage example finished successfully!');
136
+ }
137
+ catch (error) {
138
+ console.error('Error in complete usage example:', error);
139
+ throw error;
140
+ }
141
+ };
142
+ exports.completeUsageExample = completeUsageExample;
143
+ //# sourceMappingURL=usage-example.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage-example.js","sourceRoot":"","sources":["../../../../src/services/dop/profile/usage-example.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Example usage of the Profile and Selective Transparency features with LevelDown storage\n */\n\nimport { profileManager } from './profile-manager';\nimport { selectiveTransparencyManager } from './selective-transparency';\nimport { UserProfile, SelectiveTransparencySettings } from './types';\n\n// Example: Create a user profile\nexport const createUserProfile = async (walletId: string): Promise<UserProfile> => {\n try {\n const profile = await profileManager.createProfile(walletId, {\n username: 'alice_crypto',\n bio: 'Crypto enthusiast and privacy advocate',\n profilePicture: 'https://example.com/avatar.jpg',\n socialLinks: {\n twitter: '@alice_crypto',\n discord: 'alice#1234',\n },\n });\n\n console.log('Profile created successfully:', profile);\n return profile;\n } catch (error) {\n console.error('Error creating profile:', error);\n throw error;\n }\n};\n\n// Example: Set up selective transparency settings\nexport const setupSelectiveTransparency = async (walletId: string): Promise<SelectiveTransparencySettings> => {\n try {\n const settings = await selectiveTransparencyManager.createDefaultSettings(walletId);\n \n // Customize settings for enhanced privacy\n const updatedSettings = await selectiveTransparencyManager.updateSettings(walletId, {\n assetVisibility: {\n showTokenBalances: false, // Hide token balances by default\n showNFTs: true, // Show NFTs\n showTransactionHistory: false, // Hide transaction history\n showAddresses: false, // Hide addresses\n },\n profileVisibility: {\n showUsername: true,\n showProfilePicture: true,\n showBio: true,\n showSocialLinks: false, // Hide social links for privacy\n },\n });\n\n console.log('Selective transparency settings configured:', updatedSettings);\n return updatedSettings;\n } catch (error) {\n console.error('Error setting up selective transparency:', error);\n throw error;\n }\n};\n\n// Example: Generate a visibility proof for a specific asset\nexport const generateVisibilityProof = async (walletId: string, assetId: string): Promise<void> => {\n try {\n const proof = await selectiveTransparencyManager.generateVisibilityProof(\n walletId,\n 'requester-wallet-id',\n 'balance',\n assetId\n );\n\n console.log('Visibility proof generated:', proof);\n \n // Verify the proof\n const isValid = await selectiveTransparencyManager.verifyVisibilityProof(proof.id);\n console.log('Proof is valid:', isValid);\n } catch (error) {\n console.error('Error generating visibility proof:', error);\n throw error;\n }\n};\n\n// Example: Create a viewing request\nexport const createViewingRequest = async (\n requesterId: string,\n walletId: string,\n requestType: 'balance' | 'nft' | 'transaction' | 'profile',\n message?: string\n): Promise<void> => {\n try {\n const request = await selectiveTransparencyManager.createViewingRequest(\n requesterId,\n walletId,\n requestType,\n undefined, // assetId - optional\n message\n );\n\n console.log('Viewing request created:', request);\n } catch (error) {\n console.error('Error creating viewing request:', error);\n throw error;\n }\n};\n\n// Example: Add someone to whitelist\nexport const addToWhitelist = async (walletId: string, trustedAddress: string): Promise<void> => {\n try {\n await selectiveTransparencyManager.addToWhitelist(walletId, trustedAddress, {\n viewBalances: true,\n viewNFTs: true,\n viewTransactions: false,\n viewProfile: true,\n });\n\n console.log(`Added ${trustedAddress} to whitelist for wallet ${walletId}`);\n } catch (error) {\n console.error('Error adding to whitelist:', error);\n throw error;\n }\n};\n\n// Example: Set specific token visibility\nexport const setTokenVisibility = async (walletId: string, tokenAddress: string): Promise<void> => {\n try {\n await selectiveTransparencyManager.setTokenVisibility(walletId, tokenAddress, {\n isVisible: true,\n showBalance: true,\n showTransactions: false,\n });\n\n console.log(`Token visibility set for ${tokenAddress} in wallet ${walletId}`);\n } catch (error) {\n console.error('Error setting token visibility:', error);\n throw error;\n }\n};\n\n// Example: Complete usage workflow\nexport const completeUsageExample = async (walletId: string): Promise<void> => {\n try {\n console.log('Starting complete usage example...');\n \n // 1. Create user profile\n const profile = await createUserProfile(walletId);\n \n // 2. Set up selective transparency\n const settings = await setupSelectiveTransparency(walletId);\n \n // 3. Generate visibility proof for ETH\n await generateVisibilityProof(walletId, 'ETH');\n \n // 4. Add a trusted address to whitelist\n await addToWhitelist(walletId, '0x1234567890abcdef');\n \n // 5. Set specific token visibility\n await setTokenVisibility(walletId, '0xA0b86a33E6441c8D1e24a0b7f1c94c7e6e08c8d2');\n \n // 6. Create a viewing request\n await createViewingRequest(\n 'requester-wallet-id',\n walletId,\n 'balance',\n 'Can you share your ETH balance for verification?'\n );\n \n console.log('Complete usage example finished successfully!');\n } catch (error) {\n console.error('Error in complete usage example:', error);\n throw error;\n }\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"quick-sync-events-graph-v2.test.js","sourceRoot":"","sources":["../../../../../../src/services/dop/quick-sync/V2/__tests__/quick-sync-events-graph-v2.test.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-bitwise */\nimport { Chain, CommitmentEvent, TXIDVersion } from 'dop-engine-v5';\nimport { NetworkName, NETWORK_CONFIG } from 'dop-sharedmodels-v5';\nimport chai from 'chai';\nimport chaiAsPromised from 'chai-as-promised';\nimport { quickSyncEventsGraph } from '../../quick-sync-events';\nimport { isV2Test } from '../../../../../tests/helper.test';\n\nchai.use(chaiAsPromised);\nconst { expect } = chai;\n\nconst txidVersion = TXIDVersion.V2_PoseidonMerkle;\n\nconst ETH_CHAIN: Chain = NETWORK_CONFIG[NetworkName.Ethereum].chain;\nconst EXPECTED_COMMITMENT_GROUP_EVENTS_ETH = 20_000;\nconst EXPECTED_NULLIFIER_EVENTS_ETH = 27_000;\nconst EXPECTED_DECRYPT_EVENTS_ETH = 10_000;\n\nconst POLYGON_CHAIN: Chain = NETWORK_CONFIG[NetworkName.Polygon].chain;\nconst EXPECTED_COMMITMENT_GROUP_EVENTS_POLYGON = 20_000;\nconst EXPECTED_NULLIFIER_EVENTS_POLYGON = 30_000;\nconst EXPECTED_DECRYPT_EVENTS_POLYGON = 10_000;\n\nconst BNB_CHAIN: Chain = NETWORK_CONFIG[NetworkName.BNBChain].chain;\nconst EXPECTED_COMMITMENT_GROUP_EVENTS_BNB = 9_000;\nconst EXPECTED_NULLIFIER_EVENTS_BNB = 12_000;\nconst EXPECTED_DECRYPT_EVENTS_BNB = 4_000;\n\nconst ARBITRUM_CHAIN: Chain = NETWORK_CONFIG[NetworkName.Arbitrum].chain;\nconst EXPECTED_COMMITMENT_GROUP_EVENTS_ARBITRUM = 17_000;\nconst EXPECTED_NULLIFIER_EVENTS_ARBITRUM = 22_000;\nconst EXPECTED_DECRYPT_EVENTS_ARBITRUM = 9_000;\n\nconst SEPOLIA_CHAIN: Chain = NETWORK_CONFIG[NetworkName.EthereumSepolia].chain;\nconst EXPECTED_COMMITMENT_GROUP_EVENTS_SEPOLIA = 1;\nconst EXPECTED_NULLIFIER_EVENTS_SEPOLIA = 1;\nconst EXPECTED_DECRYPT_EVENTS_SEPOLIA = 1;\n\nconst assertContiguousCommitmentEvents = (\n commitmentEvents: CommitmentEvent[],\n shouldThrow: boolean,\n) => {\n // Track unique events by their actual start positions\n const positionMap = new Map<number, Set<number>>();\n};\n\ndescribe('quick-sync-events-graph-v2', () => {\n it('[V2] Should make sure Graph V2 query has no data gaps in commitments - Ethereum', async function run() {\n if (!isV2Test()) {\n this.skip();\n return;\n }\n const eventLog = await quickSyncEventsGraph(\n txidVersion,\n ETH_CHAIN,\n 14858124,\n );\n expect(eventLog).to.be.an('object');\n expect(eventLog.commitmentEvents).to.be.an('array');\n expect(eventLog.commitmentEvents.length).to.be.at.least(\n EXPECTED_COMMITMENT_GROUP_EVENTS_ETH,\n );\n expect(eventLog.nullifierEvents.length).to.be.at.least(\n EXPECTED_NULLIFIER_EVENTS_ETH,\n );\n expect(eventLog.decryptEvents.length).to.be.at.least(\n EXPECTED_DECRYPT_EVENTS_ETH,\n );\n\n const shouldThrow = true;\n assertContiguousCommitmentEvents(eventLog.commitmentEvents, shouldThrow);\n }).timeout(200_000);\n\n it('[V2] Should make sure Graph V2 query has no data gaps in commitments - Polygon', async function run() {\n if (!isV2Test()) {\n this.skip();\n return;\n }\n\n const eventLog = await quickSyncEventsGraph(txidVersion, POLYGON_CHAIN, 0);\n expect(eventLog).to.be.an('object');\n expect(eventLog.commitmentEvents).to.be.an('array');\n expect(eventLog.commitmentEvents.length).to.be.at.least(\n EXPECTED_COMMITMENT_GROUP_EVENTS_POLYGON,\n );\n expect(eventLog.nullifierEvents.length).to.be.at.least(\n EXPECTED_NULLIFIER_EVENTS_POLYGON,\n );\n expect(eventLog.decryptEvents.length).to.be.at.least(\n EXPECTED_DECRYPT_EVENTS_POLYGON,\n );\n expect(eventLog.decryptEvents.length).to.be.at.least(\n EXPECTED_DECRYPT_EVENTS_POLYGON,\n );\n\n const shouldThrow = true;\n assertContiguousCommitmentEvents(eventLog.commitmentEvents, shouldThrow);\n }).timeout(200_000);\n\n it('[V2] Should make sure Graph V2 query has no data gaps in commitments - BNB Smart Chain', async function run() {\n if (!isV2Test()) {\n this.skip();\n return;\n }\n\n const eventLog = await quickSyncEventsGraph(txidVersion, BNB_CHAIN, 0);\n expect(eventLog).to.be.an('object');\n expect(eventLog.commitmentEvents).to.be.an('array');\n expect(eventLog.commitmentEvents.length).to.be.at.least(\n EXPECTED_COMMITMENT_GROUP_EVENTS_BNB,\n );\n expect(eventLog.nullifierEvents.length).to.be.at.least(\n EXPECTED_NULLIFIER_EVENTS_BNB,\n );\n expect(eventLog.decryptEvents.length).to.be.at.least(\n EXPECTED_DECRYPT_EVENTS_BNB,\n );\n\n const shouldThrow = true;\n assertContiguousCommitmentEvents(eventLog.commitmentEvents, shouldThrow);\n }).timeout(200_000);\n\n it('[V2] Should make sure Graph V2 query has no data gaps in commitments - Arbitrum', async function run() {\n if (!isV2Test()) {\n this.skip();\n return;\n }\n\n const eventLog = await quickSyncEventsGraph(txidVersion, ARBITRUM_CHAIN, 0);\n expect(eventLog).to.be.an('object');\n expect(eventLog.commitmentEvents).to.be.an('array');\n expect(eventLog.commitmentEvents.length).to.be.at.least(\n EXPECTED_COMMITMENT_GROUP_EVENTS_ARBITRUM,\n );\n expect(eventLog.nullifierEvents.length).to.be.at.least(\n EXPECTED_NULLIFIER_EVENTS_ARBITRUM,\n );\n expect(eventLog.decryptEvents.length).to.be.at.least(\n EXPECTED_DECRYPT_EVENTS_ARBITRUM,\n );\n\n const shouldThrow = true;\n assertContiguousCommitmentEvents(eventLog.commitmentEvents, shouldThrow);\n }).timeout(200_000);\n\n it('[V2] Should make sure Graph V2 query has no data gaps in commitments - Sepolia', async function run() {\n if (!isV2Test()) {\n this.skip();\n return;\n }\n\n const eventLog = await quickSyncEventsGraph(txidVersion, SEPOLIA_CHAIN, 0);\n expect(eventLog).to.be.an('object');\n expect(eventLog.commitmentEvents).to.be.an('array');\n expect(eventLog.commitmentEvents.length).to.be.at.least(\n EXPECTED_COMMITMENT_GROUP_EVENTS_SEPOLIA,\n );\n expect(eventLog.nullifierEvents.length).to.be.at.least(\n EXPECTED_NULLIFIER_EVENTS_SEPOLIA,\n );\n expect(eventLog.decryptEvents.length).to.be.at.least(\n EXPECTED_DECRYPT_EVENTS_SEPOLIA,\n );\n\n const shouldThrow = true;\n assertContiguousCommitmentEvents(eventLog.commitmentEvents, shouldThrow);\n }).timeout(90_000);\n\n it('[V2] Should run live Dop Event Log fetch for Polygon with high starting block', async function run() {\n if (!isV2Test()) {\n this.skip();\n return;\n }\n\n const eventLog = await quickSyncEventsGraph(\n txidVersion,\n POLYGON_CHAIN,\n 100000000,\n );\n expect(eventLog).to.be.an('object');\n expect(eventLog.commitmentEvents).to.be.an('array');\n expect(eventLog.nullifierEvents).to.be.an('array');\n expect(eventLog.commitmentEvents.length).to.equal(0);\n expect(eventLog.nullifierEvents.length).to.equal(0);\n expect(eventLog.decryptEvents.length).to.equal(0);\n }).timeout(200_000);\n});\n"]}
1
+ {"version":3,"file":"quick-sync-events-graph-v2.test.js","sourceRoot":"","sources":["../../../../../../src/services/dop/quick-sync/V2/__tests__/quick-sync-events-graph-v2.test.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-bitwise */\nimport { Chain, CommitmentEvent, TXIDVersion } from 'dop-engine-v3';\nimport { NetworkName, NETWORK_CONFIG } from 'dop-sharedmodels-v3';\nimport chai from 'chai';\nimport chaiAsPromised from 'chai-as-promised';\nimport { quickSyncEventsGraph } from '../../quick-sync-events';\nimport { isV2Test } from '../../../../../tests/helper.test';\n\nchai.use(chaiAsPromised);\nconst { expect } = chai;\n\nconst txidVersion = TXIDVersion.V2_PoseidonMerkle;\n\nconst ETH_CHAIN: Chain = NETWORK_CONFIG[NetworkName.Ethereum].chain;\nconst EXPECTED_COMMITMENT_GROUP_EVENTS_ETH = 20_000;\nconst EXPECTED_NULLIFIER_EVENTS_ETH = 27_000;\nconst EXPECTED_DECRYPT_EVENTS_ETH = 10_000;\n\nconst POLYGON_CHAIN: Chain = NETWORK_CONFIG[NetworkName.Polygon].chain;\nconst EXPECTED_COMMITMENT_GROUP_EVENTS_POLYGON = 20_000;\nconst EXPECTED_NULLIFIER_EVENTS_POLYGON = 30_000;\nconst EXPECTED_DECRYPT_EVENTS_POLYGON = 10_000;\n\nconst BNB_CHAIN: Chain = NETWORK_CONFIG[NetworkName.BNBChain].chain;\nconst EXPECTED_COMMITMENT_GROUP_EVENTS_BNB = 9_000;\nconst EXPECTED_NULLIFIER_EVENTS_BNB = 12_000;\nconst EXPECTED_DECRYPT_EVENTS_BNB = 4_000;\n\nconst ARBITRUM_CHAIN: Chain = NETWORK_CONFIG[NetworkName.Arbitrum].chain;\nconst EXPECTED_COMMITMENT_GROUP_EVENTS_ARBITRUM = 17_000;\nconst EXPECTED_NULLIFIER_EVENTS_ARBITRUM = 22_000;\nconst EXPECTED_DECRYPT_EVENTS_ARBITRUM = 9_000;\n\nconst SEPOLIA_CHAIN: Chain = NETWORK_CONFIG[NetworkName.EthereumSepolia].chain;\nconst EXPECTED_COMMITMENT_GROUP_EVENTS_SEPOLIA = 1;\nconst EXPECTED_NULLIFIER_EVENTS_SEPOLIA = 1;\nconst EXPECTED_DECRYPT_EVENTS_SEPOLIA = 1;\n\nconst assertContiguousCommitmentEvents = (\n commitmentEvents: CommitmentEvent[],\n shouldThrow: boolean,\n) => {\n // Track unique events by their actual start positions\n const positionMap = new Map<number, Set<number>>();\n};\n\ndescribe('quick-sync-events-graph-v2', () => {\n it('[V2] Should make sure Graph V2 query has no data gaps in commitments - Ethereum', async function run() {\n if (!isV2Test()) {\n this.skip();\n return;\n }\n const eventLog = await quickSyncEventsGraph(\n txidVersion,\n ETH_CHAIN,\n 14858124,\n );\n expect(eventLog).to.be.an('object');\n expect(eventLog.commitmentEvents).to.be.an('array');\n expect(eventLog.commitmentEvents.length).to.be.at.least(\n EXPECTED_COMMITMENT_GROUP_EVENTS_ETH,\n );\n expect(eventLog.nullifierEvents.length).to.be.at.least(\n EXPECTED_NULLIFIER_EVENTS_ETH,\n );\n expect(eventLog.decryptEvents.length).to.be.at.least(\n EXPECTED_DECRYPT_EVENTS_ETH,\n );\n\n const shouldThrow = true;\n assertContiguousCommitmentEvents(eventLog.commitmentEvents, shouldThrow);\n }).timeout(200_000);\n\n it('[V2] Should make sure Graph V2 query has no data gaps in commitments - Polygon', async function run() {\n if (!isV2Test()) {\n this.skip();\n return;\n }\n\n const eventLog = await quickSyncEventsGraph(txidVersion, POLYGON_CHAIN, 0);\n expect(eventLog).to.be.an('object');\n expect(eventLog.commitmentEvents).to.be.an('array');\n expect(eventLog.commitmentEvents.length).to.be.at.least(\n EXPECTED_COMMITMENT_GROUP_EVENTS_POLYGON,\n );\n expect(eventLog.nullifierEvents.length).to.be.at.least(\n EXPECTED_NULLIFIER_EVENTS_POLYGON,\n );\n expect(eventLog.decryptEvents.length).to.be.at.least(\n EXPECTED_DECRYPT_EVENTS_POLYGON,\n );\n expect(eventLog.decryptEvents.length).to.be.at.least(\n EXPECTED_DECRYPT_EVENTS_POLYGON,\n );\n\n const shouldThrow = true;\n assertContiguousCommitmentEvents(eventLog.commitmentEvents, shouldThrow);\n }).timeout(200_000);\n\n it('[V2] Should make sure Graph V2 query has no data gaps in commitments - BNB Smart Chain', async function run() {\n if (!isV2Test()) {\n this.skip();\n return;\n }\n\n const eventLog = await quickSyncEventsGraph(txidVersion, BNB_CHAIN, 0);\n expect(eventLog).to.be.an('object');\n expect(eventLog.commitmentEvents).to.be.an('array');\n expect(eventLog.commitmentEvents.length).to.be.at.least(\n EXPECTED_COMMITMENT_GROUP_EVENTS_BNB,\n );\n expect(eventLog.nullifierEvents.length).to.be.at.least(\n EXPECTED_NULLIFIER_EVENTS_BNB,\n );\n expect(eventLog.decryptEvents.length).to.be.at.least(\n EXPECTED_DECRYPT_EVENTS_BNB,\n );\n\n const shouldThrow = true;\n assertContiguousCommitmentEvents(eventLog.commitmentEvents, shouldThrow);\n }).timeout(200_000);\n\n it('[V2] Should make sure Graph V2 query has no data gaps in commitments - Arbitrum', async function run() {\n if (!isV2Test()) {\n this.skip();\n return;\n }\n\n const eventLog = await quickSyncEventsGraph(txidVersion, ARBITRUM_CHAIN, 0);\n expect(eventLog).to.be.an('object');\n expect(eventLog.commitmentEvents).to.be.an('array');\n expect(eventLog.commitmentEvents.length).to.be.at.least(\n EXPECTED_COMMITMENT_GROUP_EVENTS_ARBITRUM,\n );\n expect(eventLog.nullifierEvents.length).to.be.at.least(\n EXPECTED_NULLIFIER_EVENTS_ARBITRUM,\n );\n expect(eventLog.decryptEvents.length).to.be.at.least(\n EXPECTED_DECRYPT_EVENTS_ARBITRUM,\n );\n\n const shouldThrow = true;\n assertContiguousCommitmentEvents(eventLog.commitmentEvents, shouldThrow);\n }).timeout(200_000);\n\n it('[V2] Should make sure Graph V2 query has no data gaps in commitments - Sepolia', async function run() {\n if (!isV2Test()) {\n this.skip();\n return;\n }\n\n const eventLog = await quickSyncEventsGraph(txidVersion, SEPOLIA_CHAIN, 0);\n expect(eventLog).to.be.an('object');\n expect(eventLog.commitmentEvents).to.be.an('array');\n expect(eventLog.commitmentEvents.length).to.be.at.least(\n EXPECTED_COMMITMENT_GROUP_EVENTS_SEPOLIA,\n );\n expect(eventLog.nullifierEvents.length).to.be.at.least(\n EXPECTED_NULLIFIER_EVENTS_SEPOLIA,\n );\n expect(eventLog.decryptEvents.length).to.be.at.least(\n EXPECTED_DECRYPT_EVENTS_SEPOLIA,\n );\n\n const shouldThrow = true;\n assertContiguousCommitmentEvents(eventLog.commitmentEvents, shouldThrow);\n }).timeout(90_000);\n\n it('[V2] Should run live Dop Event Log fetch for Polygon with high starting block', async function run() {\n if (!isV2Test()) {\n this.skip();\n return;\n }\n\n const eventLog = await quickSyncEventsGraph(\n txidVersion,\n POLYGON_CHAIN,\n 100000000,\n );\n expect(eventLog).to.be.an('object');\n expect(eventLog.commitmentEvents).to.be.an('array');\n expect(eventLog.nullifierEvents).to.be.an('array');\n expect(eventLog.commitmentEvents.length).to.equal(0);\n expect(eventLog.nullifierEvents.length).to.equal(0);\n expect(eventLog.decryptEvents.length).to.equal(0);\n }).timeout(200_000);\n});\n"]}
@@ -1,4 +1,4 @@
1
- import { Nullifier, DecryptStoredEvent, CommitmentEvent } from 'dop-engine-v5';
1
+ import { Nullifier, DecryptStoredEvent, CommitmentEvent } from 'dop-engine-v3';
2
2
  import { Nullifier as GraphNullifierV2, Decrypt as GraphDecryptV2, LegacyGeneratedCommitment as GraphLegacyGeneratedCommitmentV2, LegacyEncryptedCommitment as GraphLegacyEncryptedCommitmentV2, EncryptCommitment as GraphEncryptCommitmentV2, TransactCommitment as GraphTransactCommitmentV2 } from './graphql';
3
3
  export type GraphCommitmentV2 = GraphLegacyEncryptedCommitmentV2 | GraphLegacyGeneratedCommitmentV2 | GraphEncryptCommitmentV2 | GraphTransactCommitmentV2;
4
4
  export type GraphCommitmentBatchV2 = {
@@ -1 +1 @@
1
- {"version":3,"file":"graph-type-formatters-v2.js","sourceRoot":"","sources":["../../../../../src/services/dop/quick-sync/V2/graph-type-formatters-v2.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Nullifier,\n DecryptStoredEvent,\n CommitmentEvent,\n Commitment,\n LegacyGeneratedCommitment,\n CommitmentType,\n LegacyEncryptedCommitment,\n EncryptCommitment,\n TransactCommitmentV2,\n CommitmentCiphertextV2,\n Ciphertext,\n LegacyCommitmentCiphertext,\n} from 'dop-engine-v5';\nimport {\n Nullifier as GraphNullifierV2,\n Decrypt as GraphDecryptV2,\n LegacyGeneratedCommitment as GraphLegacyGeneratedCommitmentV2,\n LegacyEncryptedCommitment as GraphLegacyEncryptedCommitmentV2,\n EncryptCommitment as GraphEncryptCommitmentV2,\n TransactCommitment as GraphTransactCommitmentV2,\n LegacyCommitmentCiphertext as GraphLegacyCommitmentCiphertextV2,\n CommitmentCiphertext as GraphCommitmentCiphertextV2,\n Ciphertext as GraphCiphertextV2,\n} from './graphql';\nimport { getAddress } from 'ethers';\nimport { isDefined } from 'dop-sharedmodels-v5';\nimport {\n formatTo32Bytes,\n bigIntStringToHex,\n formatTo16Bytes,\n formatPreImage,\n graphTokenTypeToEngineTokenType,\n} from '../shared-formatters';\n\nexport type GraphCommitmentV2 =\n | GraphLegacyEncryptedCommitmentV2\n | GraphLegacyGeneratedCommitmentV2\n | GraphEncryptCommitmentV2\n | GraphTransactCommitmentV2;\n\nexport type GraphCommitmentBatchV2 = {\n transactionHash: string;\n commitments: GraphCommitmentV2[];\n treeNumber: number;\n startPosition: number;\n blockNumber: number;\n};\n\nexport const formatGraphNullifierEventsV2 = (\n nullifiers: GraphNullifierV2[],\n): Nullifier[] => {\n return nullifiers.map(nullifier => {\n return {\n txid: formatTo32Bytes(nullifier.transactionHash, false),\n nullifier: formatTo32Bytes(nullifier.nullifier, false),\n treeNumber: nullifier.treeNumber,\n blockNumber: Number(nullifier.blockNumber),\n spentDopTxid: undefined,\n };\n });\n};\n\nexport const formatGraphDecryptEventsV2 = (\n decrypts: GraphDecryptV2[],\n): DecryptStoredEvent[] => {\n return decrypts.map(decrypt => {\n return {\n txid: formatTo32Bytes(decrypt.transactionHash, false),\n timestamp: Number(decrypt.blockTimestamp),\n eventLogIndex: Number(decrypt.eventLogIndex),\n toAddress: getAddress(decrypt.to),\n tokenType: graphTokenTypeToEngineTokenType(decrypt.token.tokenType),\n tokenAddress: getAddress(decrypt.token.tokenAddress),\n tokenSubID: decrypt.token.tokenSubID,\n amount: bigIntStringToHex(decrypt.amount),\n fee: bigIntStringToHex(decrypt.fee),\n blockNumber: Number(decrypt.blockNumber),\n dopTxid: undefined,\n blindedCommitment: undefined,\n };\n });\n};\n\nexport const formatGraphCommitmentEventsV2 = (\n graphCommitmentBatches: GraphCommitmentBatchV2[],\n): CommitmentEvent[] => {\n return graphCommitmentBatches.map(graphCommitmentBatch => {\n return {\n txid: formatTo32Bytes(graphCommitmentBatch.transactionHash, false),\n commitments: graphCommitmentBatch.commitments.map(formatCommitment),\n treeNumber: graphCommitmentBatch.treeNumber,\n startPosition: graphCommitmentBatch.startPosition,\n blockNumber: graphCommitmentBatch.blockNumber,\n };\n });\n};\n\nconst formatCommitment = (commitment: GraphCommitmentV2): Commitment => {\n switch (commitment.commitmentType) {\n case 'LegacyGeneratedCommitment':\n return formatLegacyGeneratedCommitment(\n commitment as GraphLegacyGeneratedCommitmentV2,\n );\n case 'LegacyEncryptedCommitment':\n return formatLegacyEncryptedCommitment(\n commitment as GraphLegacyEncryptedCommitmentV2,\n );\n case 'EncryptCommitment':\n return formatEncryptCommitment(commitment as GraphEncryptCommitmentV2);\n case 'TransactCommitment':\n return formatTransactCommitment(commitment as GraphTransactCommitmentV2);\n }\n};\n\nconst formatCiphertext = (graphCiphertext: GraphCiphertextV2): Ciphertext => {\n return {\n iv: formatTo16Bytes(graphCiphertext.iv, false),\n tag: formatTo16Bytes(graphCiphertext.tag, false),\n data: graphCiphertext.data.map(d => formatTo32Bytes(d, false)),\n };\n};\n\nconst formatLegacyCommitmentCiphertext = (\n graphLegacyCommitmentCiphertext: GraphLegacyCommitmentCiphertextV2,\n): LegacyCommitmentCiphertext => {\n return {\n ciphertext: formatCiphertext(graphLegacyCommitmentCiphertext.ciphertext),\n ephemeralKeys: graphLegacyCommitmentCiphertext.ephemeralKeys.map(\n ephemeralKey => formatTo32Bytes(ephemeralKey, false),\n ),\n memo: graphLegacyCommitmentCiphertext.memo.map(m =>\n formatTo32Bytes(m, false),\n ),\n };\n};\n\nconst formatCommitmentCiphertext = (\n graphCommitmentCiphertext: GraphCommitmentCiphertextV2,\n): CommitmentCiphertextV2 => {\n return {\n ciphertext: formatCiphertext(graphCommitmentCiphertext.ciphertext),\n blindedReceiverViewingKey: formatTo32Bytes(\n graphCommitmentCiphertext.blindedReceiverViewingKey,\n false,\n ),\n blindedSenderViewingKey: formatTo32Bytes(\n graphCommitmentCiphertext.blindedSenderViewingKey,\n false,\n ),\n memo: graphCommitmentCiphertext.memo,\n annotationData: graphCommitmentCiphertext.annotationData,\n };\n};\n\nconst formatLegacyGeneratedCommitment = (\n commitment: GraphLegacyGeneratedCommitmentV2,\n): LegacyGeneratedCommitment => {\n return {\n txid: formatTo32Bytes(commitment.transactionHash, false),\n timestamp: Number(commitment.blockTimestamp),\n commitmentType: CommitmentType.LegacyGeneratedCommitment,\n hash: formatTo32Bytes(bigIntStringToHex(commitment.hash), false),\n preImage: formatPreImage(commitment.preimage),\n encryptedRandom: [\n formatTo32Bytes(commitment.encryptedRandom[0], false),\n formatTo16Bytes(commitment.encryptedRandom[1], false),\n ] as [string, string],\n blockNumber: Number(commitment.blockNumber),\n utxoTree: commitment.treeNumber,\n utxoIndex: commitment.treePosition,\n };\n};\n\nconst formatLegacyEncryptedCommitment = (\n commitment: GraphLegacyEncryptedCommitmentV2,\n): LegacyEncryptedCommitment => {\n return {\n txid: formatTo32Bytes(commitment.transactionHash, false),\n timestamp: Number(commitment.blockTimestamp),\n commitmentType: CommitmentType.LegacyEncryptedCommitment,\n hash: formatTo32Bytes(bigIntStringToHex(commitment.hash), false),\n ciphertext: formatLegacyCommitmentCiphertext(commitment.legacyCiphertext),\n blockNumber: Number(commitment.blockNumber),\n utxoTree: commitment.treeNumber,\n utxoIndex: commitment.treePosition,\n dopTxid: undefined,\n };\n};\n\nconst formatEncryptCommitment = (\n commitment: GraphEncryptCommitmentV2,\n): EncryptCommitment => {\n const encryptCommitment: EncryptCommitment = {\n txid: formatTo32Bytes(commitment.transactionHash, false),\n timestamp: Number(commitment.blockTimestamp),\n commitmentType: CommitmentType.EncryptCommitment,\n hash: formatTo32Bytes(bigIntStringToHex(commitment.hash), false),\n preImage: formatPreImage(commitment.preimage),\n blockNumber: Number(commitment.blockNumber),\n encryptedBundle: commitment.encryptedBundle as [string, string, string],\n encryptKey: commitment.encryptKey,\n fee: isDefined(commitment.fee) ? commitment.fee.toString() : undefined,\n utxoTree: commitment.treeNumber,\n utxoIndex: commitment.treePosition,\n from: undefined,\n };\n if (!isDefined(encryptCommitment.fee)) {\n delete encryptCommitment.fee;\n }\n return encryptCommitment;\n};\n\nconst formatTransactCommitment = (\n commitment: GraphTransactCommitmentV2,\n): TransactCommitmentV2 => {\n return {\n txid: formatTo32Bytes(commitment.transactionHash, false),\n timestamp: Number(commitment.blockTimestamp),\n commitmentType: CommitmentType.TransactCommitmentV2,\n hash: formatTo32Bytes(bigIntStringToHex(commitment.hash), false),\n ciphertext: formatCommitmentCiphertext(commitment.ciphertext),\n blockNumber: Number(commitment.blockNumber),\n utxoTree: commitment.treeNumber,\n utxoIndex: commitment.treePosition,\n dopTxid: undefined,\n };\n};\n"]}
1
+ {"version":3,"file":"graph-type-formatters-v2.js","sourceRoot":"","sources":["../../../../../src/services/dop/quick-sync/V2/graph-type-formatters-v2.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Nullifier,\n DecryptStoredEvent,\n CommitmentEvent,\n Commitment,\n LegacyGeneratedCommitment,\n CommitmentType,\n LegacyEncryptedCommitment,\n EncryptCommitment,\n TransactCommitmentV2,\n CommitmentCiphertextV2,\n Ciphertext,\n LegacyCommitmentCiphertext,\n} from 'dop-engine-v3';\nimport {\n Nullifier as GraphNullifierV2,\n Decrypt as GraphDecryptV2,\n LegacyGeneratedCommitment as GraphLegacyGeneratedCommitmentV2,\n LegacyEncryptedCommitment as GraphLegacyEncryptedCommitmentV2,\n EncryptCommitment as GraphEncryptCommitmentV2,\n TransactCommitment as GraphTransactCommitmentV2,\n LegacyCommitmentCiphertext as GraphLegacyCommitmentCiphertextV2,\n CommitmentCiphertext as GraphCommitmentCiphertextV2,\n Ciphertext as GraphCiphertextV2,\n} from './graphql';\nimport { getAddress } from 'ethers';\nimport { isDefined } from 'dop-sharedmodels-v3';\nimport {\n formatTo32Bytes,\n bigIntStringToHex,\n formatTo16Bytes,\n formatPreImage,\n graphTokenTypeToEngineTokenType,\n} from '../shared-formatters';\n\nexport type GraphCommitmentV2 =\n | GraphLegacyEncryptedCommitmentV2\n | GraphLegacyGeneratedCommitmentV2\n | GraphEncryptCommitmentV2\n | GraphTransactCommitmentV2;\n\nexport type GraphCommitmentBatchV2 = {\n transactionHash: string;\n commitments: GraphCommitmentV2[];\n treeNumber: number;\n startPosition: number;\n blockNumber: number;\n};\n\nexport const formatGraphNullifierEventsV2 = (\n nullifiers: GraphNullifierV2[],\n): Nullifier[] => {\n return nullifiers.map(nullifier => {\n return {\n txid: formatTo32Bytes(nullifier.transactionHash, false),\n nullifier: formatTo32Bytes(nullifier.nullifier, false),\n treeNumber: nullifier.treeNumber,\n blockNumber: Number(nullifier.blockNumber),\n spentDopTxid: undefined,\n };\n });\n};\n\nexport const formatGraphDecryptEventsV2 = (\n decrypts: GraphDecryptV2[],\n): DecryptStoredEvent[] => {\n return decrypts.map(decrypt => {\n return {\n txid: formatTo32Bytes(decrypt.transactionHash, false),\n timestamp: Number(decrypt.blockTimestamp),\n eventLogIndex: Number(decrypt.eventLogIndex),\n toAddress: getAddress(decrypt.to),\n tokenType: graphTokenTypeToEngineTokenType(decrypt.token.tokenType),\n tokenAddress: getAddress(decrypt.token.tokenAddress),\n tokenSubID: decrypt.token.tokenSubID,\n amount: bigIntStringToHex(decrypt.amount),\n fee: bigIntStringToHex(decrypt.fee),\n blockNumber: Number(decrypt.blockNumber),\n dopTxid: undefined,\n blindedCommitment: undefined,\n };\n });\n};\n\nexport const formatGraphCommitmentEventsV2 = (\n graphCommitmentBatches: GraphCommitmentBatchV2[],\n): CommitmentEvent[] => {\n return graphCommitmentBatches.map(graphCommitmentBatch => {\n return {\n txid: formatTo32Bytes(graphCommitmentBatch.transactionHash, false),\n commitments: graphCommitmentBatch.commitments.map(formatCommitment),\n treeNumber: graphCommitmentBatch.treeNumber,\n startPosition: graphCommitmentBatch.startPosition,\n blockNumber: graphCommitmentBatch.blockNumber,\n };\n });\n};\n\nconst formatCommitment = (commitment: GraphCommitmentV2): Commitment => {\n switch (commitment.commitmentType) {\n case 'LegacyGeneratedCommitment':\n return formatLegacyGeneratedCommitment(\n commitment as GraphLegacyGeneratedCommitmentV2,\n );\n case 'LegacyEncryptedCommitment':\n return formatLegacyEncryptedCommitment(\n commitment as GraphLegacyEncryptedCommitmentV2,\n );\n case 'EncryptCommitment':\n return formatEncryptCommitment(commitment as GraphEncryptCommitmentV2);\n case 'TransactCommitment':\n return formatTransactCommitment(commitment as GraphTransactCommitmentV2);\n }\n};\n\nconst formatCiphertext = (graphCiphertext: GraphCiphertextV2): Ciphertext => {\n return {\n iv: formatTo16Bytes(graphCiphertext.iv, false),\n tag: formatTo16Bytes(graphCiphertext.tag, false),\n data: graphCiphertext.data.map(d => formatTo32Bytes(d, false)),\n };\n};\n\nconst formatLegacyCommitmentCiphertext = (\n graphLegacyCommitmentCiphertext: GraphLegacyCommitmentCiphertextV2,\n): LegacyCommitmentCiphertext => {\n return {\n ciphertext: formatCiphertext(graphLegacyCommitmentCiphertext.ciphertext),\n ephemeralKeys: graphLegacyCommitmentCiphertext.ephemeralKeys.map(\n ephemeralKey => formatTo32Bytes(ephemeralKey, false),\n ),\n memo: graphLegacyCommitmentCiphertext.memo.map(m =>\n formatTo32Bytes(m, false),\n ),\n };\n};\n\nconst formatCommitmentCiphertext = (\n graphCommitmentCiphertext: GraphCommitmentCiphertextV2,\n): CommitmentCiphertextV2 => {\n return {\n ciphertext: formatCiphertext(graphCommitmentCiphertext.ciphertext),\n blindedReceiverViewingKey: formatTo32Bytes(\n graphCommitmentCiphertext.blindedReceiverViewingKey,\n false,\n ),\n blindedSenderViewingKey: formatTo32Bytes(\n graphCommitmentCiphertext.blindedSenderViewingKey,\n false,\n ),\n memo: graphCommitmentCiphertext.memo,\n annotationData: graphCommitmentCiphertext.annotationData,\n };\n};\n\nconst formatLegacyGeneratedCommitment = (\n commitment: GraphLegacyGeneratedCommitmentV2,\n): LegacyGeneratedCommitment => {\n return {\n txid: formatTo32Bytes(commitment.transactionHash, false),\n timestamp: Number(commitment.blockTimestamp),\n commitmentType: CommitmentType.LegacyGeneratedCommitment,\n hash: formatTo32Bytes(bigIntStringToHex(commitment.hash), false),\n preImage: formatPreImage(commitment.preimage),\n encryptedRandom: [\n formatTo32Bytes(commitment.encryptedRandom[0], false),\n formatTo16Bytes(commitment.encryptedRandom[1], false),\n ] as [string, string],\n blockNumber: Number(commitment.blockNumber),\n utxoTree: commitment.treeNumber,\n utxoIndex: commitment.treePosition,\n };\n};\n\nconst formatLegacyEncryptedCommitment = (\n commitment: GraphLegacyEncryptedCommitmentV2,\n): LegacyEncryptedCommitment => {\n return {\n txid: formatTo32Bytes(commitment.transactionHash, false),\n timestamp: Number(commitment.blockTimestamp),\n commitmentType: CommitmentType.LegacyEncryptedCommitment,\n hash: formatTo32Bytes(bigIntStringToHex(commitment.hash), false),\n ciphertext: formatLegacyCommitmentCiphertext(commitment.legacyCiphertext),\n blockNumber: Number(commitment.blockNumber),\n utxoTree: commitment.treeNumber,\n utxoIndex: commitment.treePosition,\n dopTxid: undefined,\n };\n};\n\nconst formatEncryptCommitment = (\n commitment: GraphEncryptCommitmentV2,\n): EncryptCommitment => {\n const encryptCommitment: EncryptCommitment = {\n txid: formatTo32Bytes(commitment.transactionHash, false),\n timestamp: Number(commitment.blockTimestamp),\n commitmentType: CommitmentType.EncryptCommitment,\n hash: formatTo32Bytes(bigIntStringToHex(commitment.hash), false),\n preImage: formatPreImage(commitment.preimage),\n blockNumber: Number(commitment.blockNumber),\n encryptedBundle: commitment.encryptedBundle as [string, string, string],\n encryptKey: commitment.encryptKey,\n fee: isDefined(commitment.fee) ? commitment.fee.toString() : undefined,\n utxoTree: commitment.treeNumber,\n utxoIndex: commitment.treePosition,\n from: undefined,\n };\n if (!isDefined(encryptCommitment.fee)) {\n delete encryptCommitment.fee;\n }\n return encryptCommitment;\n};\n\nconst formatTransactCommitment = (\n commitment: GraphTransactCommitmentV2,\n): TransactCommitmentV2 => {\n return {\n txid: formatTo32Bytes(commitment.transactionHash, false),\n timestamp: Number(commitment.blockTimestamp),\n commitmentType: CommitmentType.TransactCommitmentV2,\n hash: formatTo32Bytes(bigIntStringToHex(commitment.hash), false),\n ciphertext: formatCommitmentCiphertext(commitment.ciphertext),\n blockNumber: Number(commitment.blockNumber),\n utxoTree: commitment.treeNumber,\n utxoIndex: commitment.treePosition,\n dopTxid: undefined,\n };\n};\n"]}
@@ -159,7 +159,7 @@ async function getMeshOptions() {
159
159
  });
160
160
  const sepoliaHandler = new graphql_1.default({
161
161
  name: "sepolia",
162
- config: { "endpoint": "https://rail-squid.squids.live/squid-railgun-eth-sepolia-v2/graphql" },
162
+ config: { "endpoint": "https://squid-eth-stag.quecko.org/graphql" },
163
163
  baseDir,
164
164
  cache,
165
165
  pubsub,