dop-wallet-v6 1.1.7 → 1.1.8

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 (106) hide show
  1. package/dist/services/artifacts/artifact-downloader.d.ts +1 -1
  2. package/dist/services/artifacts/artifact-downloader.js +20 -20
  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 +8 -8
  6. package/dist/services/artifacts/artifact-hash.js.map +1 -1
  7. package/dist/services/artifacts/artifact-util.d.ts +1 -1
  8. package/dist/services/artifacts/artifact-util.js +13 -13
  9. package/dist/services/artifacts/artifact-util.js.map +1 -1
  10. package/dist/services/dop/core/artifacts.d.ts +2 -2
  11. package/dist/services/dop/core/artifacts.js +5 -5
  12. package/dist/services/dop/core/artifacts.js.map +1 -1
  13. package/dist/services/dop/core/engine.d.ts +2 -2
  14. package/dist/services/dop/core/engine.js +13 -13
  15. package/dist/services/dop/core/engine.js.map +1 -1
  16. package/dist/services/dop/core/prover.d.ts +1 -1
  17. package/dist/services/dop/core/prover.js +2 -2
  18. package/dist/services/dop/core/prover.js.map +1 -1
  19. package/dist/services/dop/core/providers.d.ts +3 -3
  20. package/dist/services/dop/core/providers.js +16 -16
  21. package/dist/services/dop/core/providers.js.map +1 -1
  22. package/dist/services/dop/core/shields.d.ts +1 -1
  23. package/dist/services/dop/core/shields.js +2 -2
  24. package/dist/services/dop/core/shields.js.map +1 -1
  25. package/dist/services/dop/history/transaction-history.d.ts +2 -2
  26. package/dist/services/dop/history/transaction-history.js +14 -14
  27. package/dist/services/dop/history/transaction-history.js.map +1 -1
  28. package/dist/services/dop/process/extract-first-note.d.ts +2 -2
  29. package/dist/services/dop/process/extract-first-note.js +15 -15
  30. package/dist/services/dop/process/extract-first-note.js.map +1 -1
  31. package/dist/services/dop/quick-sync/empty-events.d.ts +1 -1
  32. package/dist/services/dop/quick-sync/empty-events.js.map +1 -1
  33. package/dist/services/dop/quick-sync/graph-type-formatters.d.ts +1 -1
  34. package/dist/services/dop/quick-sync/graph-type-formatters.js +15 -15
  35. package/dist/services/dop/quick-sync/graph-type-formatters.js.map +1 -1
  36. package/dist/services/dop/quick-sync/quick-sync-graph.d.ts +1 -1
  37. package/dist/services/dop/quick-sync/quick-sync-graph.js +17 -17
  38. package/dist/services/dop/quick-sync/quick-sync-graph.js.map +1 -1
  39. package/dist/services/dop/util/bytes.d.ts +1 -1
  40. package/dist/services/dop/util/bytes.js +7 -7
  41. package/dist/services/dop/util/bytes.js.map +1 -1
  42. package/dist/services/dop/util/commitment.d.ts +2 -2
  43. package/dist/services/dop/util/commitment.js +2 -2
  44. package/dist/services/dop/util/commitment.js.map +1 -1
  45. package/dist/services/dop/util/crypto.d.ts +2 -2
  46. package/dist/services/dop/util/crypto.js +15 -15
  47. package/dist/services/dop/util/crypto.js.map +1 -1
  48. package/dist/services/dop/util/db.d.ts +1 -1
  49. package/dist/services/dop/util/db.js +2 -2
  50. package/dist/services/dop/util/db.js.map +1 -1
  51. package/dist/services/dop/wallets/balance-update.d.ts +2 -2
  52. package/dist/services/dop/wallets/balance-update.js +6 -6
  53. package/dist/services/dop/wallets/balance-update.js.map +1 -1
  54. package/dist/services/dop/wallets/balances.d.ts +2 -2
  55. package/dist/services/dop/wallets/balances.js.map +1 -1
  56. package/dist/services/dop/wallets/wallets.d.ts +2 -2
  57. package/dist/services/dop/wallets/wallets.js +10 -10
  58. package/dist/services/dop/wallets/wallets.js.map +1 -1
  59. package/dist/services/ethers/ethers-util.js +2 -2
  60. package/dist/services/ethers/ethers-util.js.map +1 -1
  61. package/dist/services/transactions/proof-cache.d.ts +1 -1
  62. package/dist/services/transactions/proof-cache.js +16 -16
  63. package/dist/services/transactions/proof-cache.js.map +1 -1
  64. package/dist/services/transactions/tx-cross-contract-calls.d.ts +2 -2
  65. package/dist/services/transactions/tx-cross-contract-calls.js +21 -21
  66. package/dist/services/transactions/tx-cross-contract-calls.js.map +1 -1
  67. package/dist/services/transactions/tx-gas-details.d.ts +1 -1
  68. package/dist/services/transactions/tx-gas-details.js +22 -22
  69. package/dist/services/transactions/tx-gas-details.js.map +1 -1
  70. package/dist/services/transactions/tx-gas-relayer-fee-estimator.d.ts +2 -2
  71. package/dist/services/transactions/tx-gas-relayer-fee-estimator.js +2 -2
  72. package/dist/services/transactions/tx-gas-relayer-fee-estimator.js.map +1 -1
  73. package/dist/services/transactions/tx-generator.d.ts +2 -2
  74. package/dist/services/transactions/tx-generator.js +17 -17
  75. package/dist/services/transactions/tx-generator.js.map +1 -1
  76. package/dist/services/transactions/tx-notes.d.ts +2 -2
  77. package/dist/services/transactions/tx-notes.js +13 -13
  78. package/dist/services/transactions/tx-notes.js.map +1 -1
  79. package/dist/services/transactions/tx-nullifiers.d.ts +1 -1
  80. package/dist/services/transactions/tx-nullifiers.js.map +1 -1
  81. package/dist/services/transactions/tx-proof-transfer.d.ts +2 -2
  82. package/dist/services/transactions/tx-proof-transfer.js +3 -3
  83. package/dist/services/transactions/tx-proof-transfer.js.map +1 -1
  84. package/dist/services/transactions/tx-proof-unshield.d.ts +2 -2
  85. package/dist/services/transactions/tx-proof-unshield.js +8 -8
  86. package/dist/services/transactions/tx-proof-unshield.js.map +1 -1
  87. package/dist/services/transactions/tx-shield-base-token.d.ts +1 -1
  88. package/dist/services/transactions/tx-shield-base-token.js +5 -5
  89. package/dist/services/transactions/tx-shield-base-token.js.map +1 -1
  90. package/dist/services/transactions/tx-shield.d.ts +1 -1
  91. package/dist/services/transactions/tx-shield.js +12 -12
  92. package/dist/services/transactions/tx-shield.js.map +1 -1
  93. package/dist/services/transactions/tx-transfer.d.ts +1 -1
  94. package/dist/services/transactions/tx-transfer.js +3 -3
  95. package/dist/services/transactions/tx-transfer.js.map +1 -1
  96. package/dist/services/transactions/tx-unshield.d.ts +1 -1
  97. package/dist/services/transactions/tx-unshield.js +7 -7
  98. package/dist/services/transactions/tx-unshield.js.map +1 -1
  99. package/dist/utils/blocked-address.js +3 -3
  100. package/dist/utils/blocked-address.js.map +1 -1
  101. package/dist/utils/error.js +2 -2
  102. package/dist/utils/error.js.map +1 -1
  103. package/dist/utils/gas-price.d.ts +1 -1
  104. package/dist/utils/gas-price.js +13 -13
  105. package/dist/utils/gas-price.js.map +1 -1
  106. package/package.json +1 -1
@@ -1,17 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.formatGraphCommitmentEvents = exports.formatGraphUnshieldEvents = exports.formatGraphNullifierEvents = void 0;
4
- const dop_engine_1 = require("dop-engine");
4
+ const dop_engine_v5_1 = require("dop-engine-v5");
5
5
  const ethers_1 = require("ethers");
6
- const dop_sharedmodel_1 = require("dop-sharedmodel");
6
+ const dop_sharedmodel_v5_1 = require("dop-sharedmodel-v5");
7
7
  const graphTokenTypeToEngineTokenType = (graphTokenType) => {
8
8
  switch (graphTokenType) {
9
9
  case 'ERC20':
10
- return dop_engine_1.TokenType.ERC20;
10
+ return dop_engine_v5_1.TokenType.ERC20;
11
11
  case 'ERC721':
12
- return dop_engine_1.TokenType.ERC721;
12
+ return dop_engine_v5_1.TokenType.ERC721;
13
13
  case 'ERC1155':
14
- return dop_engine_1.TokenType.ERC1155;
14
+ return dop_engine_v5_1.TokenType.ERC1155;
15
15
  }
16
16
  };
17
17
  const formatGraphNullifierEvents = (nullifiers) => {
@@ -77,10 +77,10 @@ const formatCommitment = (commitment) => {
77
77
  // };
78
78
  // };
79
79
  const formatSerializedToken = (graphToken) => {
80
- return (0, dop_engine_1.serializeTokenData)(graphToken.tokenAddress, graphTokenTypeToEngineTokenType(graphToken.tokenType), graphToken.tokenSubID);
80
+ return (0, dop_engine_v5_1.serializeTokenData)(graphToken.tokenAddress, graphTokenTypeToEngineTokenType(graphToken.tokenType), graphToken.tokenSubID);
81
81
  };
82
82
  const formatPreImage = (graphPreImage) => {
83
- return (0, dop_engine_1.serializePreImage)(graphPreImage.npk, formatSerializedToken(graphPreImage.token), BigInt(graphPreImage.value));
83
+ return (0, dop_engine_v5_1.serializePreImage)(graphPreImage.npk, formatSerializedToken(graphPreImage.token), BigInt(graphPreImage.value));
84
84
  };
85
85
  const formatCiphertext = (graphCiphertext) => {
86
86
  return {
@@ -90,10 +90,10 @@ const formatCiphertext = (graphCiphertext) => {
90
90
  };
91
91
  };
92
92
  const formatTo16Bytes = (value, prefix) => {
93
- return (0, dop_engine_1.formatToByteLength)(value, dop_engine_1.ByteLength.UINT_128, prefix);
93
+ return (0, dop_engine_v5_1.formatToByteLength)(value, dop_engine_v5_1.ByteLength.UINT_128, prefix);
94
94
  };
95
95
  const formatTo32Bytes = (value, prefix) => {
96
- return (0, dop_engine_1.formatToByteLength)(value, dop_engine_1.ByteLength.UINT_256, prefix);
96
+ return (0, dop_engine_v5_1.formatToByteLength)(value, dop_engine_v5_1.ByteLength.UINT_256, prefix);
97
97
  };
98
98
  const formatLegacyCommitmentCiphertext = (graphLegacyCommitmentCiphertext) => {
99
99
  return {
@@ -118,7 +118,7 @@ const formatLegacyGeneratedCommitment = (commitment) => {
118
118
  return {
119
119
  txid: formatTo32Bytes(commitment.transactionHash, false),
120
120
  timestamp: Number(commitment.blockTimestamp),
121
- commitmentType: dop_engine_1.CommitmentType.LegacyGeneratedCommitment,
121
+ commitmentType: dop_engine_v5_1.CommitmentType.LegacyGeneratedCommitment,
122
122
  hash: formatTo32Bytes(bigIntStringToHex(commitment.hash), false),
123
123
  preImage: formatPreImage(commitment.preimage),
124
124
  encryptedRandom: [
@@ -132,7 +132,7 @@ const formatLegacyEncryptedCommitment = (commitment) => {
132
132
  return {
133
133
  txid: formatTo32Bytes(commitment.transactionHash, false),
134
134
  timestamp: Number(commitment.blockTimestamp),
135
- commitmentType: dop_engine_1.CommitmentType.LegacyEncryptedCommitment,
135
+ commitmentType: dop_engine_v5_1.CommitmentType.LegacyEncryptedCommitment,
136
136
  hash: formatTo32Bytes(bigIntStringToHex(commitment.hash), false),
137
137
  ciphertext: formatLegacyCommitmentCiphertext(commitment.legacyCiphertext),
138
138
  blockNumber: Number(commitment.blockNumber),
@@ -142,15 +142,15 @@ const formatEncryptCommitment = (commitment) => {
142
142
  const encryptCommitment = {
143
143
  txid: formatTo32Bytes(commitment.transactionHash, false),
144
144
  timestamp: Number(commitment.blockTimestamp),
145
- commitmentType: dop_engine_1.CommitmentType.EncryptCommitment,
145
+ commitmentType: dop_engine_v5_1.CommitmentType.EncryptCommitment,
146
146
  hash: formatTo32Bytes(bigIntStringToHex(commitment.hash), false),
147
147
  preImage: formatPreImage(commitment.preimage),
148
148
  blockNumber: Number(commitment.blockNumber),
149
149
  encryptedBundle: commitment.encryptedBundle,
150
150
  encryptKey: commitment.encryptKey,
151
- fee: (0, dop_sharedmodel_1.isDefined)(commitment.fee) ? commitment.fee.toString() : undefined,
151
+ fee: (0, dop_sharedmodel_v5_1.isDefined)(commitment.fee) ? commitment.fee.toString() : undefined,
152
152
  };
153
- if (!(0, dop_sharedmodel_1.isDefined)(encryptCommitment.fee)) {
153
+ if (!(0, dop_sharedmodel_v5_1.isDefined)(encryptCommitment.fee)) {
154
154
  delete encryptCommitment.fee;
155
155
  }
156
156
  return encryptCommitment;
@@ -159,7 +159,7 @@ const formatTransactCommitment = (commitment) => {
159
159
  return {
160
160
  txid: formatTo32Bytes(commitment.transactionHash, false),
161
161
  timestamp: Number(commitment.blockTimestamp),
162
- commitmentType: dop_engine_1.CommitmentType.TransactCommitment,
162
+ commitmentType: dop_engine_v5_1.CommitmentType.TransactCommitment,
163
163
  hash: formatTo32Bytes(bigIntStringToHex(commitment.hash), false),
164
164
  ciphertext: formatCommitmentCiphertext(commitment.ciphertext),
165
165
  blockNumber: Number(commitment.blockNumber),
@@ -1 +1 @@
1
- {"version":3,"file":"graph-type-formatters.js","sourceRoot":"","sources":["../../../../src/services/dop/quick-sync/graph-type-formatters.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Nullifier,\n UnshieldStoredEvent,\n CommitmentEvent,\n Commitment,\n TokenType,\n LegacyGeneratedCommitment,\n CommitmentType,\n LegacyEncryptedCommitment,\n EncryptCommitment,\n TransactCommitment,\n PreImage,\n TokenData,\n ByteLength,\n CommitmentCiphertext,\n Ciphertext,\n formatToByteLength,\n LegacyCommitmentCiphertext,\n serializeTokenData,\n serializePreImage,\n} from 'dop-engine';\nimport {\n Nullifier as GraphNullifier,\n Unshield as GraphUnshield,\n TokenType as GraphTokenType,\n LegacyGeneratedCommitment as GraphLegacyGeneratedCommitment,\n LegacyEncryptedCommitment as GraphLegacyEncryptedCommitment,\n EncryptCommitment as GraphEncryptCommitment,\n TransactCommitment as GraphTransactCommitment,\n CommitmentPreimage as GraphCommitmentPreimage,\n LegacyCommitmentCiphertext as GraphLegacyCommitmentCiphertext,\n CommitmentCiphertext as GraphCommitmentCiphertext,\n Ciphertext as GraphCiphertext,\n Token as GraphToken,\n} from './graphql';\nimport { getAddress } from 'ethers';\nimport { isDefined } from 'dop-sharedmodel';\n\nexport type GraphCommitment =\n | GraphLegacyEncryptedCommitment\n | GraphLegacyGeneratedCommitment\n | GraphEncryptCommitment\n | GraphTransactCommitment;\n\nexport type GraphCommitmentBatch = {\n transactionHash: string;\n commitments: GraphCommitment[];\n treeNumber: number;\n startPosition: number;\n blockNumber: number;\n};\n\nconst graphTokenTypeToEngineTokenType = (\n graphTokenType: GraphTokenType,\n): TokenType => {\n switch (graphTokenType) {\n case 'ERC20':\n return TokenType.ERC20;\n case 'ERC721':\n return TokenType.ERC721;\n case 'ERC1155':\n return TokenType.ERC1155;\n }\n};\n\nexport const formatGraphNullifierEvents = (\n nullifiers: GraphNullifier[],\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 };\n });\n};\n\nexport const formatGraphUnshieldEvents = (\n unshields: GraphUnshield[],\n): UnshieldStoredEvent[] => {\n return unshields.map(unshield => {\n return {\n txid: formatTo32Bytes(unshield.transactionHash, false),\n timestamp: Number(unshield.blockTimestamp),\n eventLogIndex: Number(unshield.eventLogIndex),\n toAddress: getAddress(unshield.to),\n tokenType: graphTokenTypeToEngineTokenType(unshield.token.tokenType),\n tokenAddress: getAddress(unshield.token.tokenAddress),\n tokenSubID: unshield.token.tokenSubID,\n amount: bigIntStringToHex(unshield.amount),\n fee: bigIntStringToHex(unshield.fee),\n blockNumber: Number(unshield.blockNumber),\n };\n });\n};\n\nexport const formatGraphCommitmentEvents = (\n graphCommitmentBatches: GraphCommitmentBatch[],\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: GraphCommitment): Commitment => {\n switch (commitment.commitmentType) {\n case 'LegacyGeneratedCommitment':\n return formatLegacyGeneratedCommitment(\n commitment as GraphLegacyGeneratedCommitment,\n );\n case 'LegacyEncryptedCommitment':\n return formatLegacyEncryptedCommitment(\n commitment as GraphLegacyEncryptedCommitment,\n );\n case 'EncryptCommitment':\n return formatEncryptCommitment(commitment as GraphEncryptCommitment);\n case 'TransactCommitment':\n return formatTransactCommitment(commitment as GraphTransactCommitment);\n }\n};\n\n// const formatToken = (graphToken: GraphToken): TokenData => {\n// return {\n// tokenAddress: graphToken.tokenAddress,\n// tokenType: formatTo20Bytes(\n// graphTokenTypeToEngineTokenType(graphToken.tokenType).toString(),\n// true,\n// ) as unknown as TokenType,\n// tokenSubID: formatTo20Bytes(graphToken.tokenSubID, true),\n// };\n// };\n\nconst formatSerializedToken = (graphToken: GraphToken): TokenData => {\n return serializeTokenData(\n graphToken.tokenAddress,\n graphTokenTypeToEngineTokenType(graphToken.tokenType),\n graphToken.tokenSubID,\n );\n};\n\nconst formatPreImage = (graphPreImage: GraphCommitmentPreimage): PreImage => {\n return serializePreImage(\n graphPreImage.npk,\n formatSerializedToken(graphPreImage.token),\n BigInt(graphPreImage.value),\n );\n};\n\nconst formatCiphertext = (graphCiphertext: GraphCiphertext): 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 formatTo16Bytes = (value: string, prefix: boolean) => {\n return formatToByteLength(value, ByteLength.UINT_128, prefix);\n};\n\nconst formatTo32Bytes = (value: string, prefix: boolean) => {\n return formatToByteLength(value, ByteLength.UINT_256, prefix);\n};\n\nconst formatLegacyCommitmentCiphertext = (\n graphLegacyCommitmentCiphertext: GraphLegacyCommitmentCiphertext,\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: GraphCommitmentCiphertext,\n): CommitmentCiphertext => {\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 bigIntStringToHex = (bigintString: string): string => {\n return `0x${BigInt(bigintString).toString(16)}`;\n};\n\nconst formatLegacyGeneratedCommitment = (\n commitment: GraphLegacyGeneratedCommitment,\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 };\n};\n\nconst formatLegacyEncryptedCommitment = (\n commitment: GraphLegacyEncryptedCommitment,\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 };\n};\n\nconst formatEncryptCommitment = (\n commitment: GraphEncryptCommitment,\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 };\n if (!isDefined(encryptCommitment.fee)) {\n delete encryptCommitment.fee;\n }\n return encryptCommitment;\n};\n\nconst formatTransactCommitment = (\n commitment: GraphTransactCommitment,\n): TransactCommitment => {\n return {\n txid: formatTo32Bytes(commitment.transactionHash, false),\n timestamp: Number(commitment.blockTimestamp),\n commitmentType: CommitmentType.TransactCommitment,\n hash: formatTo32Bytes(bigIntStringToHex(commitment.hash), false),\n ciphertext: formatCommitmentCiphertext(commitment.ciphertext),\n blockNumber: Number(commitment.blockNumber),\n };\n};\n"]}
1
+ {"version":3,"file":"graph-type-formatters.js","sourceRoot":"","sources":["../../../../src/services/dop/quick-sync/graph-type-formatters.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Nullifier,\n UnshieldStoredEvent,\n CommitmentEvent,\n Commitment,\n TokenType,\n LegacyGeneratedCommitment,\n CommitmentType,\n LegacyEncryptedCommitment,\n EncryptCommitment,\n TransactCommitment,\n PreImage,\n TokenData,\n ByteLength,\n CommitmentCiphertext,\n Ciphertext,\n formatToByteLength,\n LegacyCommitmentCiphertext,\n serializeTokenData,\n serializePreImage,\n} from 'dop-engine-v5';\nimport {\n Nullifier as GraphNullifier,\n Unshield as GraphUnshield,\n TokenType as GraphTokenType,\n LegacyGeneratedCommitment as GraphLegacyGeneratedCommitment,\n LegacyEncryptedCommitment as GraphLegacyEncryptedCommitment,\n EncryptCommitment as GraphEncryptCommitment,\n TransactCommitment as GraphTransactCommitment,\n CommitmentPreimage as GraphCommitmentPreimage,\n LegacyCommitmentCiphertext as GraphLegacyCommitmentCiphertext,\n CommitmentCiphertext as GraphCommitmentCiphertext,\n Ciphertext as GraphCiphertext,\n Token as GraphToken,\n} from './graphql';\nimport { getAddress } from 'ethers';\nimport { isDefined } from 'dop-sharedmodel-v5';\n\nexport type GraphCommitment =\n | GraphLegacyEncryptedCommitment\n | GraphLegacyGeneratedCommitment\n | GraphEncryptCommitment\n | GraphTransactCommitment;\n\nexport type GraphCommitmentBatch = {\n transactionHash: string;\n commitments: GraphCommitment[];\n treeNumber: number;\n startPosition: number;\n blockNumber: number;\n};\n\nconst graphTokenTypeToEngineTokenType = (\n graphTokenType: GraphTokenType,\n): TokenType => {\n switch (graphTokenType) {\n case 'ERC20':\n return TokenType.ERC20;\n case 'ERC721':\n return TokenType.ERC721;\n case 'ERC1155':\n return TokenType.ERC1155;\n }\n};\n\nexport const formatGraphNullifierEvents = (\n nullifiers: GraphNullifier[],\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 };\n });\n};\n\nexport const formatGraphUnshieldEvents = (\n unshields: GraphUnshield[],\n): UnshieldStoredEvent[] => {\n return unshields.map(unshield => {\n return {\n txid: formatTo32Bytes(unshield.transactionHash, false),\n timestamp: Number(unshield.blockTimestamp),\n eventLogIndex: Number(unshield.eventLogIndex),\n toAddress: getAddress(unshield.to),\n tokenType: graphTokenTypeToEngineTokenType(unshield.token.tokenType),\n tokenAddress: getAddress(unshield.token.tokenAddress),\n tokenSubID: unshield.token.tokenSubID,\n amount: bigIntStringToHex(unshield.amount),\n fee: bigIntStringToHex(unshield.fee),\n blockNumber: Number(unshield.blockNumber),\n };\n });\n};\n\nexport const formatGraphCommitmentEvents = (\n graphCommitmentBatches: GraphCommitmentBatch[],\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: GraphCommitment): Commitment => {\n switch (commitment.commitmentType) {\n case 'LegacyGeneratedCommitment':\n return formatLegacyGeneratedCommitment(\n commitment as GraphLegacyGeneratedCommitment,\n );\n case 'LegacyEncryptedCommitment':\n return formatLegacyEncryptedCommitment(\n commitment as GraphLegacyEncryptedCommitment,\n );\n case 'EncryptCommitment':\n return formatEncryptCommitment(commitment as GraphEncryptCommitment);\n case 'TransactCommitment':\n return formatTransactCommitment(commitment as GraphTransactCommitment);\n }\n};\n\n// const formatToken = (graphToken: GraphToken): TokenData => {\n// return {\n// tokenAddress: graphToken.tokenAddress,\n// tokenType: formatTo20Bytes(\n// graphTokenTypeToEngineTokenType(graphToken.tokenType).toString(),\n// true,\n// ) as unknown as TokenType,\n// tokenSubID: formatTo20Bytes(graphToken.tokenSubID, true),\n// };\n// };\n\nconst formatSerializedToken = (graphToken: GraphToken): TokenData => {\n return serializeTokenData(\n graphToken.tokenAddress,\n graphTokenTypeToEngineTokenType(graphToken.tokenType),\n graphToken.tokenSubID,\n );\n};\n\nconst formatPreImage = (graphPreImage: GraphCommitmentPreimage): PreImage => {\n return serializePreImage(\n graphPreImage.npk,\n formatSerializedToken(graphPreImage.token),\n BigInt(graphPreImage.value),\n );\n};\n\nconst formatCiphertext = (graphCiphertext: GraphCiphertext): 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 formatTo16Bytes = (value: string, prefix: boolean) => {\n return formatToByteLength(value, ByteLength.UINT_128, prefix);\n};\n\nconst formatTo32Bytes = (value: string, prefix: boolean) => {\n return formatToByteLength(value, ByteLength.UINT_256, prefix);\n};\n\nconst formatLegacyCommitmentCiphertext = (\n graphLegacyCommitmentCiphertext: GraphLegacyCommitmentCiphertext,\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: GraphCommitmentCiphertext,\n): CommitmentCiphertext => {\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 bigIntStringToHex = (bigintString: string): string => {\n return `0x${BigInt(bigintString).toString(16)}`;\n};\n\nconst formatLegacyGeneratedCommitment = (\n commitment: GraphLegacyGeneratedCommitment,\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 };\n};\n\nconst formatLegacyEncryptedCommitment = (\n commitment: GraphLegacyEncryptedCommitment,\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 };\n};\n\nconst formatEncryptCommitment = (\n commitment: GraphEncryptCommitment,\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 };\n if (!isDefined(encryptCommitment.fee)) {\n delete encryptCommitment.fee;\n }\n return encryptCommitment;\n};\n\nconst formatTransactCommitment = (\n commitment: GraphTransactCommitment,\n): TransactCommitment => {\n return {\n txid: formatTo32Bytes(commitment.transactionHash, false),\n timestamp: Number(commitment.blockTimestamp),\n commitmentType: CommitmentType.TransactCommitment,\n hash: formatTo32Bytes(bigIntStringToHex(commitment.hash), false),\n ciphertext: formatCommitmentCiphertext(commitment.ciphertext),\n blockNumber: Number(commitment.blockNumber),\n };\n};\n"]}
@@ -1,2 +1,2 @@
1
- import { AccumulatedEvents, Chain } from 'dop-engine';
1
+ import { AccumulatedEvents, Chain } from 'dop-engine-v5';
2
2
  export declare const quickSyncGraph: (chain: Chain, startingBlock: number) => Promise<AccumulatedEvents>;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.quickSyncGraph = void 0;
4
- const dop_sharedmodel_1 = require("dop-sharedmodel");
4
+ const dop_sharedmodel_v5_1 = require("dop-sharedmodel-v5");
5
5
  const empty_events_1 = require("./empty-events");
6
6
  const graphql_1 = require("./graphql");
7
7
  const runtime_1 = require("@graphql-mesh/runtime");
@@ -12,32 +12,32 @@ const meshes = {};
12
12
  const MAX_QUERY_RESULTS = 100000;
13
13
  const sourceNameForNetwork = (networkName) => {
14
14
  switch (networkName) {
15
- case dop_sharedmodel_1.NetworkName.Ethereum:
15
+ case dop_sharedmodel_v5_1.NetworkName.Ethereum:
16
16
  return 'ethereum';
17
- case dop_sharedmodel_1.NetworkName.EthereumGoerli:
17
+ case dop_sharedmodel_v5_1.NetworkName.EthereumGoerli:
18
18
  return 'goerli';
19
- case dop_sharedmodel_1.NetworkName.BNBChain:
19
+ case dop_sharedmodel_v5_1.NetworkName.BNBChain:
20
20
  return 'bsc';
21
- case dop_sharedmodel_1.NetworkName.Polygon:
21
+ case dop_sharedmodel_v5_1.NetworkName.Polygon:
22
22
  return 'matic';
23
- case dop_sharedmodel_1.NetworkName.Arbitrum:
23
+ case dop_sharedmodel_v5_1.NetworkName.Arbitrum:
24
24
  return 'arbitrum-one';
25
- case dop_sharedmodel_1.NetworkName.ArbitrumGoerli:
25
+ case dop_sharedmodel_v5_1.NetworkName.ArbitrumGoerli:
26
26
  return 'arbitrum-goerli';
27
- case dop_sharedmodel_1.NetworkName.Xlayer:
27
+ case dop_sharedmodel_v5_1.NetworkName.Xlayer:
28
28
  return 'xlayer';
29
- case dop_sharedmodel_1.NetworkName.XlayerTestnet:
29
+ case dop_sharedmodel_v5_1.NetworkName.XlayerTestnet:
30
30
  return 'xlayer-testnet';
31
- case dop_sharedmodel_1.NetworkName.PolygonMumbai:
31
+ case dop_sharedmodel_v5_1.NetworkName.PolygonMumbai:
32
32
  return 'mumbai';
33
- case dop_sharedmodel_1.NetworkName.Dop:
34
- case dop_sharedmodel_1.NetworkName.EthereumRopsten_DEPRECATED:
35
- case dop_sharedmodel_1.NetworkName.Hardhat:
33
+ case dop_sharedmodel_v5_1.NetworkName.Dop:
34
+ case dop_sharedmodel_v5_1.NetworkName.EthereumRopsten_DEPRECATED:
35
+ case dop_sharedmodel_v5_1.NetworkName.Hardhat:
36
36
  throw new Error('No Graph API hosted service for this network');
37
37
  }
38
38
  };
39
39
  const quickSyncGraph = async (chain, startingBlock) => {
40
- const network = (0, dop_sharedmodel_1.networkForChain)(chain);
40
+ const network = (0, dop_sharedmodel_v5_1.networkForChain)(chain);
41
41
  if (!network || !network.shouldQuickSync) {
42
42
  // Return empty logs, Engine will default to full scan.
43
43
  return empty_events_1.EMPTY_EVENTS;
@@ -70,7 +70,7 @@ const createGraphCommitmentBatches = (flattenedCommitments) => {
70
70
  for (const commitment of flattenedCommitments) {
71
71
  const startPosition = commitment.batchStartTreePosition;
72
72
  const existingBatch = graphCommitmentMap[startPosition];
73
- if ((0, dop_sharedmodel_1.isDefined)(existingBatch)) {
73
+ if ((0, dop_sharedmodel_v5_1.isDefined)(existingBatch)) {
74
74
  existingBatch.commitments.push(commitment);
75
75
  }
76
76
  else {
@@ -83,7 +83,7 @@ const createGraphCommitmentBatches = (flattenedCommitments) => {
83
83
  };
84
84
  }
85
85
  }
86
- return (0, dop_sharedmodel_1.removeUndefineds)(Object.values(graphCommitmentMap));
86
+ return (0, dop_sharedmodel_v5_1.removeUndefineds)(Object.values(graphCommitmentMap));
87
87
  };
88
88
  const autoPaginatingQuery = async (query, blockNumber, prevResults = []) => {
89
89
  const newResults = await query(blockNumber);
@@ -124,7 +124,7 @@ const sortByTreeNumberAndStartPosition = (a, b) => {
124
124
  };
125
125
  const getBuiltGraphClient = async (networkName) => {
126
126
  const meshForNetwork = meshes[networkName];
127
- if ((0, dop_sharedmodel_1.isDefined)(meshForNetwork)) {
127
+ if ((0, dop_sharedmodel_v5_1.isDefined)(meshForNetwork)) {
128
128
  return meshForNetwork;
129
129
  }
130
130
  const sourceName = sourceNameForNetwork(networkName);
@@ -1 +1 @@
1
- {"version":3,"file":"quick-sync-graph.js","sourceRoot":"","sources":["../../../../src/services/dop/quick-sync/quick-sync-graph.ts"],"names":[],"mappings":"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","sourcesContent":["import { AccumulatedEvents, Chain } from 'dop-engine';\nimport {\n NetworkName,\n isDefined,\n networkForChain,\n removeUndefineds,\n} from 'dop-sharedmodel';\nimport { EMPTY_EVENTS } from './empty-events';\nimport { getMeshOptions, getSdk } from './graphql';\nimport { MeshInstance, getMesh } from '@graphql-mesh/runtime';\nimport {\n GraphCommitment,\n GraphCommitmentBatch,\n formatGraphCommitmentEvents,\n formatGraphNullifierEvents,\n formatGraphUnshieldEvents,\n} from './graph-type-formatters';\n\nconst meshes: MapType<MeshInstance> = {};\n\n// 1.5 full trees of commitments\n// TODO: This will have to change when we have more than 100k commitments.\nconst MAX_QUERY_RESULTS = 100000;\n\nconst sourceNameForNetwork = (networkName: NetworkName): string => {\n switch (networkName) {\n case NetworkName.Ethereum:\n return 'ethereum';\n case NetworkName.EthereumGoerli:\n return 'goerli';\n case NetworkName.BNBChain:\n return 'bsc';\n case NetworkName.Polygon:\n return 'matic';\n case NetworkName.Arbitrum:\n return 'arbitrum-one';\n case NetworkName.ArbitrumGoerli:\n return 'arbitrum-goerli';\n case NetworkName.Xlayer:\n return 'xlayer';\n case NetworkName.XlayerTestnet:\n return 'xlayer-testnet';\n case NetworkName.PolygonMumbai:\n return 'mumbai';\n case NetworkName.Dop:\n case NetworkName.EthereumRopsten_DEPRECATED:\n case NetworkName.Hardhat:\n throw new Error('No Graph API hosted service for this network');\n }\n};\n\nexport const quickSyncGraph = async (\n chain: Chain,\n startingBlock: number,\n): Promise<AccumulatedEvents> => {\n const network = networkForChain(chain);\n if (!network || !network.shouldQuickSync) {\n // Return empty logs, Engine will default to full scan.\n return EMPTY_EVENTS;\n }\n\n const sdk = getBuiltGraphSDK(network.name);\n\n const [nullifiers, unshields, commitments] = await Promise.all([\n autoPaginatingQuery(\n async (blockNumber: string) =>\n (\n await sdk.Nullifiers({\n blockNumber,\n })\n ).nullifiers,\n startingBlock.toString(),\n ),\n autoPaginatingQuery(\n async (blockNumber: string) =>\n (\n await sdk.Unshields({\n blockNumber,\n })\n ).unshields,\n startingBlock.toString(),\n ),\n autoPaginatingQuery(\n async (blockNumber: string) =>\n (\n await sdk.Commitments({\n blockNumber,\n })\n ).commitments,\n startingBlock.toString(),\n ),\n ]);\n\n const filteredNullifiers = removeDuplicatesByID(nullifiers);\n const filteredUnshields = removeDuplicatesByID(unshields);\n const filteredCommitments = removeDuplicatesByID(commitments);\n const graphCommitmentBatches =\n createGraphCommitmentBatches(filteredCommitments);\n\n graphCommitmentBatches.sort(sortByTreeNumberAndStartPosition);\n\n const nullifierEvents = formatGraphNullifierEvents(filteredNullifiers);\n const unshieldEvents = formatGraphUnshieldEvents(filteredUnshields);\n const commitmentEvents = formatGraphCommitmentEvents(graphCommitmentBatches);\n\n return { nullifierEvents, unshieldEvents, commitmentEvents };\n};\n\nconst createGraphCommitmentBatches = (\n flattenedCommitments: GraphCommitment[],\n): GraphCommitmentBatch[] => {\n const graphCommitmentMap: MapType<GraphCommitmentBatch> = {};\n for (const commitment of flattenedCommitments) {\n const startPosition = commitment.batchStartTreePosition;\n const existingBatch = graphCommitmentMap[startPosition];\n if (isDefined(existingBatch)) {\n existingBatch.commitments.push(commitment);\n } else {\n graphCommitmentMap[commitment.batchStartTreePosition] = {\n commitments: [commitment],\n transactionHash: commitment.transactionHash,\n treeNumber: commitment.treeNumber,\n startPosition: commitment.batchStartTreePosition,\n blockNumber: Number(commitment.blockNumber),\n };\n }\n }\n return removeUndefineds(Object.values(graphCommitmentMap));\n};\n\nconst autoPaginatingQuery = async <ReturnType extends { blockNumber: string }>(\n query: (blockNumber: string) => Promise<ReturnType[]>,\n blockNumber: string,\n prevResults: ReturnType[] = [],\n): Promise<ReturnType[]> => {\n const newResults = await query(blockNumber);\n if (newResults.length === 0) {\n return prevResults;\n }\n\n const totalResults = prevResults.concat(newResults);\n\n const overLimit = totalResults.length >= MAX_QUERY_RESULTS;\n const lastResult = totalResults[totalResults.length - 1];\n\n const shouldQueryMore = newResults.length === 1000;\n if (!overLimit && shouldQueryMore) {\n return autoPaginatingQuery(query, lastResult.blockNumber, totalResults);\n }\n\n return totalResults;\n};\n\nconst removeDuplicatesByID = <T extends { id: string }>(array: T[]): T[] => {\n const seen = new Set();\n return array.filter((item: T) => {\n const duplicate = seen.has(item.id);\n seen.add(item.id);\n return !duplicate;\n });\n};\n\nconst sortByTreeNumberAndStartPosition = (\n a: GraphCommitmentBatch,\n b: GraphCommitmentBatch,\n) => {\n if (a.treeNumber < b.treeNumber) {\n return -1;\n }\n if (a.treeNumber > b.treeNumber) {\n return 1;\n }\n if (a.startPosition < b.startPosition) {\n return -1;\n }\n if (a.startPosition > b.startPosition) {\n return 1;\n }\n return 0;\n};\n\nconst getBuiltGraphClient = async (\n networkName: NetworkName,\n): Promise<MeshInstance> => {\n const meshForNetwork = meshes[networkName];\n if (isDefined(meshForNetwork)) {\n return meshForNetwork;\n }\n const sourceName = sourceNameForNetwork(networkName);\n const meshOptions = await getMeshOptions();\n const filteredSources = meshOptions.sources.filter(source => {\n return source.name === sourceName;\n });\n if (filteredSources.length !== 1) {\n throw new Error(\n `Expected exactly one source for network ${networkName}, found ${filteredSources.length}`,\n );\n }\n meshOptions.sources = [filteredSources[0]];\n const mesh = await getMesh(meshOptions);\n meshes[networkName] = mesh;\n const id = mesh.pubsub.subscribe('destroy', () => {\n mesh.pubsub.unsubscribe(id);\n });\n return mesh;\n};\n\nconst getBuiltGraphSDK = <TGlobalContext, TOperationContext>(\n networkName: NetworkName,\n globalContext?: TGlobalContext,\n) => {\n const sdkRequester$ = getBuiltGraphClient(networkName).then(\n ({ sdkRequesterFactory }) => sdkRequesterFactory(globalContext),\n );\n return getSdk<TOperationContext, TGlobalContext>((...args) =>\n sdkRequester$.then(sdkRequester => sdkRequester(...args)),\n );\n};\n"]}
1
+ {"version":3,"file":"quick-sync-graph.js","sourceRoot":"","sources":["../../../../src/services/dop/quick-sync/quick-sync-graph.ts"],"names":[],"mappings":"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","sourcesContent":["import { AccumulatedEvents, Chain } from 'dop-engine-v5';\nimport {\n NetworkName,\n isDefined,\n networkForChain,\n removeUndefineds,\n} from 'dop-sharedmodel-v5';\nimport { EMPTY_EVENTS } from './empty-events';\nimport { getMeshOptions, getSdk } from './graphql';\nimport { MeshInstance, getMesh } from '@graphql-mesh/runtime';\nimport {\n GraphCommitment,\n GraphCommitmentBatch,\n formatGraphCommitmentEvents,\n formatGraphNullifierEvents,\n formatGraphUnshieldEvents,\n} from './graph-type-formatters';\n\nconst meshes: MapType<MeshInstance> = {};\n\n// 1.5 full trees of commitments\n// TODO: This will have to change when we have more than 100k commitments.\nconst MAX_QUERY_RESULTS = 100000;\n\nconst sourceNameForNetwork = (networkName: NetworkName): string => {\n switch (networkName) {\n case NetworkName.Ethereum:\n return 'ethereum';\n case NetworkName.EthereumGoerli:\n return 'goerli';\n case NetworkName.BNBChain:\n return 'bsc';\n case NetworkName.Polygon:\n return 'matic';\n case NetworkName.Arbitrum:\n return 'arbitrum-one';\n case NetworkName.ArbitrumGoerli:\n return 'arbitrum-goerli';\n case NetworkName.Xlayer:\n return 'xlayer';\n case NetworkName.XlayerTestnet:\n return 'xlayer-testnet';\n case NetworkName.PolygonMumbai:\n return 'mumbai';\n case NetworkName.Dop:\n case NetworkName.EthereumRopsten_DEPRECATED:\n case NetworkName.Hardhat:\n throw new Error('No Graph API hosted service for this network');\n }\n};\n\nexport const quickSyncGraph = async (\n chain: Chain,\n startingBlock: number,\n): Promise<AccumulatedEvents> => {\n const network = networkForChain(chain);\n if (!network || !network.shouldQuickSync) {\n // Return empty logs, Engine will default to full scan.\n return EMPTY_EVENTS;\n }\n\n const sdk = getBuiltGraphSDK(network.name);\n\n const [nullifiers, unshields, commitments] = await Promise.all([\n autoPaginatingQuery(\n async (blockNumber: string) =>\n (\n await sdk.Nullifiers({\n blockNumber,\n })\n ).nullifiers,\n startingBlock.toString(),\n ),\n autoPaginatingQuery(\n async (blockNumber: string) =>\n (\n await sdk.Unshields({\n blockNumber,\n })\n ).unshields,\n startingBlock.toString(),\n ),\n autoPaginatingQuery(\n async (blockNumber: string) =>\n (\n await sdk.Commitments({\n blockNumber,\n })\n ).commitments,\n startingBlock.toString(),\n ),\n ]);\n\n const filteredNullifiers = removeDuplicatesByID(nullifiers);\n const filteredUnshields = removeDuplicatesByID(unshields);\n const filteredCommitments = removeDuplicatesByID(commitments);\n const graphCommitmentBatches =\n createGraphCommitmentBatches(filteredCommitments);\n\n graphCommitmentBatches.sort(sortByTreeNumberAndStartPosition);\n\n const nullifierEvents = formatGraphNullifierEvents(filteredNullifiers);\n const unshieldEvents = formatGraphUnshieldEvents(filteredUnshields);\n const commitmentEvents = formatGraphCommitmentEvents(graphCommitmentBatches);\n\n return { nullifierEvents, unshieldEvents, commitmentEvents };\n};\n\nconst createGraphCommitmentBatches = (\n flattenedCommitments: GraphCommitment[],\n): GraphCommitmentBatch[] => {\n const graphCommitmentMap: MapType<GraphCommitmentBatch> = {};\n for (const commitment of flattenedCommitments) {\n const startPosition = commitment.batchStartTreePosition;\n const existingBatch = graphCommitmentMap[startPosition];\n if (isDefined(existingBatch)) {\n existingBatch.commitments.push(commitment);\n } else {\n graphCommitmentMap[commitment.batchStartTreePosition] = {\n commitments: [commitment],\n transactionHash: commitment.transactionHash,\n treeNumber: commitment.treeNumber,\n startPosition: commitment.batchStartTreePosition,\n blockNumber: Number(commitment.blockNumber),\n };\n }\n }\n return removeUndefineds(Object.values(graphCommitmentMap));\n};\n\nconst autoPaginatingQuery = async <ReturnType extends { blockNumber: string }>(\n query: (blockNumber: string) => Promise<ReturnType[]>,\n blockNumber: string,\n prevResults: ReturnType[] = [],\n): Promise<ReturnType[]> => {\n const newResults = await query(blockNumber);\n if (newResults.length === 0) {\n return prevResults;\n }\n\n const totalResults = prevResults.concat(newResults);\n\n const overLimit = totalResults.length >= MAX_QUERY_RESULTS;\n const lastResult = totalResults[totalResults.length - 1];\n\n const shouldQueryMore = newResults.length === 1000;\n if (!overLimit && shouldQueryMore) {\n return autoPaginatingQuery(query, lastResult.blockNumber, totalResults);\n }\n\n return totalResults;\n};\n\nconst removeDuplicatesByID = <T extends { id: string }>(array: T[]): T[] => {\n const seen = new Set();\n return array.filter((item: T) => {\n const duplicate = seen.has(item.id);\n seen.add(item.id);\n return !duplicate;\n });\n};\n\nconst sortByTreeNumberAndStartPosition = (\n a: GraphCommitmentBatch,\n b: GraphCommitmentBatch,\n) => {\n if (a.treeNumber < b.treeNumber) {\n return -1;\n }\n if (a.treeNumber > b.treeNumber) {\n return 1;\n }\n if (a.startPosition < b.startPosition) {\n return -1;\n }\n if (a.startPosition > b.startPosition) {\n return 1;\n }\n return 0;\n};\n\nconst getBuiltGraphClient = async (\n networkName: NetworkName,\n): Promise<MeshInstance> => {\n const meshForNetwork = meshes[networkName];\n if (isDefined(meshForNetwork)) {\n return meshForNetwork;\n }\n const sourceName = sourceNameForNetwork(networkName);\n const meshOptions = await getMeshOptions();\n const filteredSources = meshOptions.sources.filter(source => {\n return source.name === sourceName;\n });\n if (filteredSources.length !== 1) {\n throw new Error(\n `Expected exactly one source for network ${networkName}, found ${filteredSources.length}`,\n );\n }\n meshOptions.sources = [filteredSources[0]];\n const mesh = await getMesh(meshOptions);\n meshes[networkName] = mesh;\n const id = mesh.pubsub.subscribe('destroy', () => {\n mesh.pubsub.unsubscribe(id);\n });\n return mesh;\n};\n\nconst getBuiltGraphSDK = <TGlobalContext, TOperationContext>(\n networkName: NetworkName,\n globalContext?: TGlobalContext,\n) => {\n const sdkRequester$ = getBuiltGraphClient(networkName).then(\n ({ sdkRequesterFactory }) => sdkRequesterFactory(globalContext),\n );\n return getSdk<TOperationContext, TGlobalContext>((...args) =>\n sdkRequester$.then(sdkRequester => sdkRequester(...args)),\n );\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { hexlify, fromUTF8String, toUTF8String, hexStringToBytes } from 'dop-engine';
1
+ import { hexlify, fromUTF8String, toUTF8String, hexStringToBytes } from 'dop-engine-v5';
2
2
  export declare const parseDopTokenAddress: (tokenAddress: string) => string;
3
3
  export declare const getRandomBytes: (length: number) => string;
4
4
  export declare const bytesToHex: (bytes: Uint8Array) => string;
@@ -1,17 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.hexStringToBytes = exports.toUTF8String = exports.fromUTF8String = exports.hexlify = exports.bytesToHex = exports.getRandomBytes = exports.parseDopTokenAddress = void 0;
4
- const dop_engine_1 = require("dop-engine");
5
- Object.defineProperty(exports, "hexlify", { enumerable: true, get: function () { return dop_engine_1.hexlify; } });
6
- Object.defineProperty(exports, "fromUTF8String", { enumerable: true, get: function () { return dop_engine_1.fromUTF8String; } });
7
- Object.defineProperty(exports, "toUTF8String", { enumerable: true, get: function () { return dop_engine_1.toUTF8String; } });
8
- Object.defineProperty(exports, "hexStringToBytes", { enumerable: true, get: function () { return dop_engine_1.hexStringToBytes; } });
4
+ const dop_engine_v5_1 = require("dop-engine-v5");
5
+ Object.defineProperty(exports, "hexlify", { enumerable: true, get: function () { return dop_engine_v5_1.hexlify; } });
6
+ Object.defineProperty(exports, "fromUTF8String", { enumerable: true, get: function () { return dop_engine_v5_1.fromUTF8String; } });
7
+ Object.defineProperty(exports, "toUTF8String", { enumerable: true, get: function () { return dop_engine_v5_1.toUTF8String; } });
8
+ Object.defineProperty(exports, "hexStringToBytes", { enumerable: true, get: function () { return dop_engine_v5_1.hexStringToBytes; } });
9
9
  const parseDopTokenAddress = (tokenAddress) => {
10
- return (0, dop_engine_1.formatToByteLength)(tokenAddress, dop_engine_1.ByteLength.Address, true);
10
+ return (0, dop_engine_v5_1.formatToByteLength)(tokenAddress, dop_engine_v5_1.ByteLength.Address, true);
11
11
  };
12
12
  exports.parseDopTokenAddress = parseDopTokenAddress;
13
13
  const getRandomBytes = (length) => {
14
- return (0, dop_engine_1.randomHex)(length);
14
+ return (0, dop_engine_v5_1.randomHex)(length);
15
15
  };
16
16
  exports.getRandomBytes = getRandomBytes;
17
17
  const bytesToHex = (bytes) => {
@@ -1 +1 @@
1
- {"version":3,"file":"bytes.js","sourceRoot":"","sources":["../../../../src/services/dop/util/bytes.ts"],"names":[],"mappings":";;;AAAA,2CAQoB;AAcX,wFAlBP,oBAAO,OAkBO;AAAE,+FAjBhB,2BAAc,OAiBgB;AAAE,6FAhBhC,yBAAY,OAgBgC;AAAE,iGAf9C,6BAAgB,OAe8C;AAZzD,MAAM,oBAAoB,GAAG,CAAC,YAAoB,EAAU,EAAE;IACnE,OAAO,IAAA,+BAAkB,EAAC,YAAY,EAAE,uBAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACpE,CAAC,CAAC;AAFW,QAAA,oBAAoB,wBAE/B;AAEK,MAAM,cAAc,GAAG,CAAC,MAAc,EAAU,EAAE;IACvD,OAAO,IAAA,sBAAS,EAAC,MAAM,CAAC,CAAC;AAC3B,CAAC,CAAC;AAFW,QAAA,cAAc,kBAEzB;AAEK,MAAM,UAAU,GAAG,CAAC,KAAiB,EAAU,EAAE;IACtD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC,CAAC;AAFW,QAAA,UAAU,cAErB","sourcesContent":["import {\n randomHex,\n formatToByteLength,\n ByteLength,\n hexlify,\n fromUTF8String,\n toUTF8String,\n hexStringToBytes,\n} from 'dop-engine';\n\nexport const parseDopTokenAddress = (tokenAddress: string): string => {\n return formatToByteLength(tokenAddress, ByteLength.Address, true);\n};\n\nexport const getRandomBytes = (length: number): string => {\n return randomHex(length);\n};\n\nexport const bytesToHex = (bytes: Uint8Array): string => {\n return Buffer.from(bytes).toString('hex');\n};\n\nexport { hexlify, fromUTF8String, toUTF8String, hexStringToBytes };\n"]}
1
+ {"version":3,"file":"bytes.js","sourceRoot":"","sources":["../../../../src/services/dop/util/bytes.ts"],"names":[],"mappings":";;;AAAA,iDAQuB;AAcd,wFAlBP,uBAAO,OAkBO;AAAE,+FAjBhB,8BAAc,OAiBgB;AAAE,6FAhBhC,4BAAY,OAgBgC;AAAE,iGAf9C,gCAAgB,OAe8C;AAZzD,MAAM,oBAAoB,GAAG,CAAC,YAAoB,EAAU,EAAE;IACnE,OAAO,IAAA,kCAAkB,EAAC,YAAY,EAAE,0BAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACpE,CAAC,CAAC;AAFW,QAAA,oBAAoB,wBAE/B;AAEK,MAAM,cAAc,GAAG,CAAC,MAAc,EAAU,EAAE;IACvD,OAAO,IAAA,yBAAS,EAAC,MAAM,CAAC,CAAC;AAC3B,CAAC,CAAC;AAFW,QAAA,cAAc,kBAEzB;AAEK,MAAM,UAAU,GAAG,CAAC,KAAiB,EAAU,EAAE;IACtD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC,CAAC;AAFW,QAAA,UAAU,cAErB","sourcesContent":["import {\n randomHex,\n formatToByteLength,\n ByteLength,\n hexlify,\n fromUTF8String,\n toUTF8String,\n hexStringToBytes,\n} from 'dop-engine-v5';\n\nexport const parseDopTokenAddress = (tokenAddress: string): string => {\n return formatToByteLength(tokenAddress, ByteLength.Address, true);\n};\n\nexport const getRandomBytes = (length: number): string => {\n return randomHex(length);\n};\n\nexport const bytesToHex = (bytes: Uint8Array): string => {\n return Buffer.from(bytes).toString('hex');\n};\n\nexport { hexlify, fromUTF8String, toUTF8String, hexStringToBytes };\n"]}
@@ -1,3 +1,3 @@
1
- import { TransactionStruct } from 'dop-engine';
2
- import { CommitmentSummary } from 'dop-sharedmodel';
1
+ import { TransactionStruct } from 'dop-engine-v5';
2
+ import { CommitmentSummary } from 'dop-sharedmodel-v5';
3
3
  export declare const convertTransactionStructToCommitmentSummary: (transactionStruct: TransactionStruct, commitmentIndex: number) => CommitmentSummary;
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.convertTransactionStructToCommitmentSummary = void 0;
4
- const dop_engine_1 = require("dop-engine");
4
+ const dop_engine_v5_1 = require("dop-engine-v5");
5
5
  const convertTransactionStructToCommitmentSummary = (transactionStruct, commitmentIndex) => {
6
6
  const commitmentCiphertextStruct = transactionStruct.boundParams
7
7
  .commitmentCiphertext[commitmentIndex];
8
- const commitmentCiphertext = (0, dop_engine_1.formatCommitmentCiphertext)(commitmentCiphertextStruct);
8
+ const commitmentCiphertext = (0, dop_engine_v5_1.formatCommitmentCiphertext)(commitmentCiphertextStruct);
9
9
  const commitmentHash = transactionStruct.commitments[commitmentIndex];
10
10
  return {
11
11
  commitmentCiphertext,
@@ -1 +1 @@
1
- {"version":3,"file":"commitment.js","sourceRoot":"","sources":["../../../../src/services/dop/util/commitment.ts"],"names":[],"mappings":";;;AAAA,2CAIoB;AAMb,MAAM,2CAA2C,GAAG,CACzD,iBAAoC,EACpC,eAAuB,EACJ,EAAE;IACrB,MAAM,0BAA0B,GAAG,iBAAiB,CAAC,WAAW;SAC7D,oBAAoB,CAAC,eAAe,CAAqC,CAAC;IAE7E,MAAM,oBAAoB,GAAyB,IAAA,uCAA0B,EAC3E,0BAA0B,CAC3B,CAAC;IACF,MAAM,cAAc,GAAG,iBAAiB,CAAC,WAAW,CAClD,eAAe,CACN,CAAC;IAEZ,OAAO;QACL,oBAAoB;QACpB,cAAc;KACf,CAAC;AACJ,CAAC,CAAC;AAlBW,QAAA,2CAA2C,+CAkBtD","sourcesContent":["import {\n CommitmentCiphertextStructOutput,\n TransactionStruct,\n formatCommitmentCiphertext,\n} from 'dop-engine';\nimport {\n CommitmentCiphertext,\n CommitmentSummary,\n} from 'dop-sharedmodel';\n\nexport const convertTransactionStructToCommitmentSummary = (\n transactionStruct: TransactionStruct,\n commitmentIndex: number,\n): CommitmentSummary => {\n const commitmentCiphertextStruct = transactionStruct.boundParams\n .commitmentCiphertext[commitmentIndex] as CommitmentCiphertextStructOutput;\n\n const commitmentCiphertext: CommitmentCiphertext = formatCommitmentCiphertext(\n commitmentCiphertextStruct,\n );\n const commitmentHash = transactionStruct.commitments[\n commitmentIndex\n ] as string;\n\n return {\n commitmentCiphertext,\n commitmentHash,\n };\n};\n"]}
1
+ {"version":3,"file":"commitment.js","sourceRoot":"","sources":["../../../../src/services/dop/util/commitment.ts"],"names":[],"mappings":";;;AAAA,iDAIuB;AAMhB,MAAM,2CAA2C,GAAG,CACzD,iBAAoC,EACpC,eAAuB,EACJ,EAAE;IACrB,MAAM,0BAA0B,GAAG,iBAAiB,CAAC,WAAW;SAC7D,oBAAoB,CAAC,eAAe,CAAqC,CAAC;IAE7E,MAAM,oBAAoB,GAAyB,IAAA,0CAA0B,EAC3E,0BAA0B,CAC3B,CAAC;IACF,MAAM,cAAc,GAAG,iBAAiB,CAAC,WAAW,CAClD,eAAe,CACN,CAAC;IAEZ,OAAO;QACL,oBAAoB;QACpB,cAAc;KACf,CAAC;AACJ,CAAC,CAAC;AAlBW,QAAA,2CAA2C,+CAkBtD","sourcesContent":["import {\n CommitmentCiphertextStructOutput,\n TransactionStruct,\n formatCommitmentCiphertext,\n} from 'dop-engine-v5';\nimport {\n CommitmentCiphertext,\n CommitmentSummary,\n} from 'dop-sharedmodel-v5';\n\nexport const convertTransactionStructToCommitmentSummary = (\n transactionStruct: TransactionStruct,\n commitmentIndex: number,\n): CommitmentSummary => {\n const commitmentCiphertextStruct = transactionStruct.boundParams\n .commitmentCiphertext[commitmentIndex] as CommitmentCiphertextStructOutput;\n\n const commitmentCiphertext: CommitmentCiphertext = formatCommitmentCiphertext(\n commitmentCiphertextStruct,\n );\n const commitmentHash = transactionStruct.commitments[\n commitmentIndex\n ] as string;\n\n return {\n commitmentCiphertext,\n commitmentHash,\n };\n};\n"]}
@@ -1,5 +1,5 @@
1
- import { encryptJSONDataWithSharedKey, tryDecryptJSONDataWithSharedKey, getPublicViewingKey, EncryptedData, ViewingKeyPair } from 'dop-engine';
2
- import { EncryptDataWithSharedKeyResponse } from 'dop-sharedmodel';
1
+ import { encryptJSONDataWithSharedKey, tryDecryptJSONDataWithSharedKey, getPublicViewingKey, EncryptedData, ViewingKeyPair } from 'dop-engine-v5';
2
+ import { EncryptDataWithSharedKeyResponse } from 'dop-sharedmodel-v5';
3
3
  export declare const verifyRelayerSignature: (signature: string | Uint8Array, data: string | Uint8Array, signingKey: Uint8Array) => Promise<boolean>;
4
4
  export declare const encryptDataWithSharedKey: (data: object, externalPubKey: Uint8Array) => Promise<EncryptDataWithSharedKeyResponse>;
5
5
  export declare const decryptAESGCM256: (encryptedData: EncryptedData, sharedKey: Uint8Array) => object | null;
@@ -25,33 +25,33 @@ var __importStar = (this && this.__importStar) || function (mod) {
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.getPublicViewingKey = exports.tryDecryptJSONDataWithSharedKey = exports.encryptJSONDataWithSharedKey = exports.pbkdf2 = exports.encryptAESGCM256 = exports.decryptAESGCM256 = exports.encryptDataWithSharedKey = exports.verifyRelayerSignature = void 0;
27
27
  const ed = __importStar(require("@noble/ed25519"));
28
- const dop_engine_1 = require("dop-engine");
29
- Object.defineProperty(exports, "encryptJSONDataWithSharedKey", { enumerable: true, get: function () { return dop_engine_1.encryptJSONDataWithSharedKey; } });
30
- Object.defineProperty(exports, "tryDecryptJSONDataWithSharedKey", { enumerable: true, get: function () { return dop_engine_1.tryDecryptJSONDataWithSharedKey; } });
31
- Object.defineProperty(exports, "getPublicViewingKey", { enumerable: true, get: function () { return dop_engine_1.getPublicViewingKey; } });
28
+ const dop_engine_v5_1 = require("dop-engine-v5");
29
+ Object.defineProperty(exports, "encryptJSONDataWithSharedKey", { enumerable: true, get: function () { return dop_engine_v5_1.encryptJSONDataWithSharedKey; } });
30
+ Object.defineProperty(exports, "tryDecryptJSONDataWithSharedKey", { enumerable: true, get: function () { return dop_engine_v5_1.tryDecryptJSONDataWithSharedKey; } });
31
+ Object.defineProperty(exports, "getPublicViewingKey", { enumerable: true, get: function () { return dop_engine_v5_1.getPublicViewingKey; } });
32
32
  const bytes_1 = require("./bytes");
33
33
  const util_1 = require("util");
34
34
  const crypto_1 = require("crypto");
35
35
  const pbkdf2_1 = require("ethereum-cryptography/pbkdf2");
36
36
  const verifyRelayerSignature = (signature, data, signingKey) => {
37
- return (0, dop_engine_1.verifyED25519)(data, signature, signingKey);
37
+ return (0, dop_engine_v5_1.verifyED25519)(data, signature, signingKey);
38
38
  };
39
39
  exports.verifyRelayerSignature = verifyRelayerSignature;
40
40
  const encryptDataWithSharedKey = async (data, externalPubKey) => {
41
- const randomPrivKey = (0, dop_engine_1.hexStringToBytes)((0, bytes_1.getRandomBytes)(32));
42
- const randomPubKeyUint8Array = await (0, dop_engine_1.getPublicViewingKey)(randomPrivKey);
43
- const randomPubKey = (0, dop_engine_1.hexlify)(randomPubKeyUint8Array);
41
+ const randomPrivKey = (0, dop_engine_v5_1.hexStringToBytes)((0, bytes_1.getRandomBytes)(32));
42
+ const randomPubKeyUint8Array = await (0, dop_engine_v5_1.getPublicViewingKey)(randomPrivKey);
43
+ const randomPubKey = (0, dop_engine_v5_1.hexlify)(randomPubKeyUint8Array);
44
44
  const sharedKey = await ed.getSharedSecret(randomPrivKey, externalPubKey);
45
- const encryptedData = (0, dop_engine_1.encryptJSONDataWithSharedKey)(data, sharedKey);
45
+ const encryptedData = (0, dop_engine_v5_1.encryptJSONDataWithSharedKey)(data, sharedKey);
46
46
  return { encryptedData, randomPubKey, sharedKey };
47
47
  };
48
48
  exports.encryptDataWithSharedKey = encryptDataWithSharedKey;
49
49
  const decryptAESGCM256 = (encryptedData, sharedKey) => {
50
- return (0, dop_engine_1.tryDecryptJSONDataWithSharedKey)(encryptedData, sharedKey);
50
+ return (0, dop_engine_v5_1.tryDecryptJSONDataWithSharedKey)(encryptedData, sharedKey);
51
51
  };
52
52
  exports.decryptAESGCM256 = decryptAESGCM256;
53
53
  const encryptAESGCM256 = (data, sharedKey) => {
54
- return (0, dop_engine_1.encryptJSONDataWithSharedKey)(data, sharedKey);
54
+ return (0, dop_engine_v5_1.encryptJSONDataWithSharedKey)(data, sharedKey);
55
55
  };
56
56
  exports.encryptAESGCM256 = encryptAESGCM256;
57
57
  /**
@@ -62,18 +62,18 @@ exports.encryptAESGCM256 = encryptAESGCM256;
62
62
  */
63
63
  const pbkdf2 = async (secret, salt, iterations) => {
64
64
  const secretBuffer = Buffer.from(secret, 'utf-8');
65
- const secretFormatted = new Uint8Array((0, dop_engine_1.arrayify)(secretBuffer));
66
- const saltFormatted = new Uint8Array((0, dop_engine_1.arrayify)(salt));
65
+ const secretFormatted = new Uint8Array((0, dop_engine_v5_1.arrayify)(secretBuffer));
66
+ const saltFormatted = new Uint8Array((0, dop_engine_v5_1.arrayify)(salt));
67
67
  const keyLength = 32; // Bytes
68
68
  const digest = 'sha256';
69
69
  let key;
70
- if (dop_engine_1.isReactNative) {
70
+ if (dop_engine_v5_1.isReactNative) {
71
71
  key = await (0, pbkdf2_1.pbkdf2)(secretFormatted, saltFormatted, iterations, keyLength, digest);
72
72
  }
73
73
  else {
74
74
  key = await (0, util_1.promisify)(crypto_1.pbkdf2)(secretFormatted, saltFormatted, iterations, keyLength, digest);
75
75
  }
76
- return (0, dop_engine_1.hexlify)(key);
76
+ return (0, dop_engine_v5_1.hexlify)(key);
77
77
  };
78
78
  exports.pbkdf2 = pbkdf2;
79
79
  //# sourceMappingURL=crypto.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../../../src/services/dop/util/crypto.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAqC;AACrC,2CAWoB;AAiFlB,6GAxFA,yCAA4B,OAwFA;AAC5B,gHAxFA,4CAA+B,OAwFA;AAE/B,oGAzFA,gCAAmB,OAyFA;AAlFrB,mCAAyC;AACzC,+BAAiC;AACjC,mCAA8C;AAC9C,yDAAkE;AAE3D,MAAM,sBAAsB,GAAG,CACpC,SAA8B,EAC9B,IAAyB,EACzB,UAAsB,EACJ,EAAE;IACpB,OAAO,IAAA,0BAAa,EAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AACpD,CAAC,CAAC;AANW,QAAA,sBAAsB,0BAMjC;AAEK,MAAM,wBAAwB,GAAG,KAAK,EAC3C,IAAY,EACZ,cAA0B,EACiB,EAAE;IAC7C,MAAM,aAAa,GAAG,IAAA,6BAAgB,EAAC,IAAA,sBAAc,EAAC,EAAE,CAAC,CAAC,CAAC;IAC3D,MAAM,sBAAsB,GAAG,MAAM,IAAA,gCAAmB,EAAC,aAAa,CAAC,CAAC;IACxE,MAAM,YAAY,GAAG,IAAA,oBAAO,EAAC,sBAAsB,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,eAAe,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IAC1E,MAAM,aAAa,GAAG,IAAA,yCAA4B,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACpE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;AACpD,CAAC,CAAC;AAVW,QAAA,wBAAwB,4BAUnC;AAEK,MAAM,gBAAgB,GAAG,CAC9B,aAA4B,EAC5B,SAAqB,EACN,EAAE;IACjB,OAAO,IAAA,4CAA+B,EAAC,aAAa,EAAE,SAAS,CAAC,CAAC;AACnE,CAAC,CAAC;AALW,QAAA,gBAAgB,oBAK3B;AAEK,MAAM,gBAAgB,GAAG,CAC9B,IAAY,EACZ,SAAqB,EACN,EAAE;IACjB,OAAO,IAAA,yCAA4B,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACvD,CAAC,CAAC;AALW,QAAA,gBAAgB,oBAK3B;AAEF;;;;;GAKG;AACI,MAAM,MAAM,GAAG,KAAK,EACzB,MAAc,EACd,IAAY,EACZ,UAAkB,EACD,EAAE;IACnB,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClD,MAAM,eAAe,GAAG,IAAI,UAAU,CAAC,IAAA,qBAAQ,EAAC,YAAY,CAAC,CAAC,CAAC;IAC/D,MAAM,aAAa,GAAG,IAAI,UAAU,CAAC,IAAA,qBAAQ,EAAC,IAAI,CAAC,CAAC,CAAC;IAErD,MAAM,SAAS,GAAG,EAAE,CAAC,CAAC,QAAQ;IAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC;IAExB,IAAI,GAAwB,CAAC;IAC7B,IAAI,0BAAa,EAAE;QACjB,GAAG,GAAG,MAAM,IAAA,eAAQ,EAClB,eAAe,EACf,aAAa,EACb,UAAU,EACV,SAAS,EACT,MAAM,CACP,CAAC;KACH;SAAM;QACL,GAAG,GAAG,MAAM,IAAA,gBAAS,EAAC,eAAU,CAAC,CAC/B,eAAe,EACf,aAAa,EACb,UAAU,EACV,SAAS,EACT,MAAM,CACP,CAAC;KACH;IACD,OAAO,IAAA,oBAAO,EAAC,GAAG,CAAC,CAAC;AACtB,CAAC,CAAC;AA/BW,QAAA,MAAM,UA+BjB","sourcesContent":["import * as ed from '@noble/ed25519';\nimport {\n arrayify,\n hexlify,\n hexStringToBytes,\n encryptJSONDataWithSharedKey,\n tryDecryptJSONDataWithSharedKey,\n getPublicViewingKey,\n verifyED25519,\n EncryptedData,\n ViewingKeyPair,\n isReactNative,\n} from 'dop-engine';\nimport { EncryptDataWithSharedKeyResponse } from 'dop-sharedmodel';\nimport { getRandomBytes } from './bytes';\nimport { promisify } from 'util';\nimport { pbkdf2 as NodePbkdf2 } from 'crypto';\nimport { pbkdf2 as JSpbkdf2 } from 'ethereum-cryptography/pbkdf2';\n\nexport const verifyRelayerSignature = (\n signature: string | Uint8Array,\n data: string | Uint8Array,\n signingKey: Uint8Array,\n): Promise<boolean> => {\n return verifyED25519(data, signature, signingKey);\n};\n\nexport const encryptDataWithSharedKey = async (\n data: object,\n externalPubKey: Uint8Array,\n): Promise<EncryptDataWithSharedKeyResponse> => {\n const randomPrivKey = hexStringToBytes(getRandomBytes(32));\n const randomPubKeyUint8Array = await getPublicViewingKey(randomPrivKey);\n const randomPubKey = hexlify(randomPubKeyUint8Array);\n const sharedKey = await ed.getSharedSecret(randomPrivKey, externalPubKey);\n const encryptedData = encryptJSONDataWithSharedKey(data, sharedKey);\n return { encryptedData, randomPubKey, sharedKey };\n};\n\nexport const decryptAESGCM256 = (\n encryptedData: EncryptedData,\n sharedKey: Uint8Array,\n): object | null => {\n return tryDecryptJSONDataWithSharedKey(encryptedData, sharedKey);\n};\n\nexport const encryptAESGCM256 = (\n data: object,\n sharedKey: Uint8Array,\n): EncryptedData => {\n return encryptJSONDataWithSharedKey(data, sharedKey);\n};\n\n/**\n * Calculates PBKDF2 hash\n * @param secret - input\n * @param salt - salt\n * @param iterations - rounds\n */\nexport const pbkdf2 = async (\n secret: string,\n salt: string,\n iterations: number,\n): Promise<string> => {\n const secretBuffer = Buffer.from(secret, 'utf-8');\n const secretFormatted = new Uint8Array(arrayify(secretBuffer));\n const saltFormatted = new Uint8Array(arrayify(salt));\n\n const keyLength = 32; // Bytes\n const digest = 'sha256';\n\n let key: Uint8Array | Buffer;\n if (isReactNative) {\n key = await JSpbkdf2(\n secretFormatted,\n saltFormatted,\n iterations,\n keyLength,\n digest,\n );\n } else {\n key = await promisify(NodePbkdf2)(\n secretFormatted,\n saltFormatted,\n iterations,\n keyLength,\n digest,\n );\n }\n return hexlify(key);\n};\n\nexport {\n encryptJSONDataWithSharedKey,\n tryDecryptJSONDataWithSharedKey,\n EncryptedData,\n getPublicViewingKey,\n ViewingKeyPair,\n};\n"]}
1
+ {"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../../../src/services/dop/util/crypto.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAqC;AACrC,iDAWuB;AAiFrB,6GAxFA,4CAA4B,OAwFA;AAC5B,gHAxFA,+CAA+B,OAwFA;AAE/B,oGAzFA,mCAAmB,OAyFA;AAlFrB,mCAAyC;AACzC,+BAAiC;AACjC,mCAA8C;AAC9C,yDAAkE;AAE3D,MAAM,sBAAsB,GAAG,CACpC,SAA8B,EAC9B,IAAyB,EACzB,UAAsB,EACJ,EAAE;IACpB,OAAO,IAAA,6BAAa,EAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AACpD,CAAC,CAAC;AANW,QAAA,sBAAsB,0BAMjC;AAEK,MAAM,wBAAwB,GAAG,KAAK,EAC3C,IAAY,EACZ,cAA0B,EACiB,EAAE;IAC7C,MAAM,aAAa,GAAG,IAAA,gCAAgB,EAAC,IAAA,sBAAc,EAAC,EAAE,CAAC,CAAC,CAAC;IAC3D,MAAM,sBAAsB,GAAG,MAAM,IAAA,mCAAmB,EAAC,aAAa,CAAC,CAAC;IACxE,MAAM,YAAY,GAAG,IAAA,uBAAO,EAAC,sBAAsB,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,eAAe,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IAC1E,MAAM,aAAa,GAAG,IAAA,4CAA4B,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACpE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;AACpD,CAAC,CAAC;AAVW,QAAA,wBAAwB,4BAUnC;AAEK,MAAM,gBAAgB,GAAG,CAC9B,aAA4B,EAC5B,SAAqB,EACN,EAAE;IACjB,OAAO,IAAA,+CAA+B,EAAC,aAAa,EAAE,SAAS,CAAC,CAAC;AACnE,CAAC,CAAC;AALW,QAAA,gBAAgB,oBAK3B;AAEK,MAAM,gBAAgB,GAAG,CAC9B,IAAY,EACZ,SAAqB,EACN,EAAE;IACjB,OAAO,IAAA,4CAA4B,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACvD,CAAC,CAAC;AALW,QAAA,gBAAgB,oBAK3B;AAEF;;;;;GAKG;AACI,MAAM,MAAM,GAAG,KAAK,EACzB,MAAc,EACd,IAAY,EACZ,UAAkB,EACD,EAAE;IACnB,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClD,MAAM,eAAe,GAAG,IAAI,UAAU,CAAC,IAAA,wBAAQ,EAAC,YAAY,CAAC,CAAC,CAAC;IAC/D,MAAM,aAAa,GAAG,IAAI,UAAU,CAAC,IAAA,wBAAQ,EAAC,IAAI,CAAC,CAAC,CAAC;IAErD,MAAM,SAAS,GAAG,EAAE,CAAC,CAAC,QAAQ;IAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC;IAExB,IAAI,GAAwB,CAAC;IAC7B,IAAI,6BAAa,EAAE;QACjB,GAAG,GAAG,MAAM,IAAA,eAAQ,EAClB,eAAe,EACf,aAAa,EACb,UAAU,EACV,SAAS,EACT,MAAM,CACP,CAAC;KACH;SAAM;QACL,GAAG,GAAG,MAAM,IAAA,gBAAS,EAAC,eAAU,CAAC,CAC/B,eAAe,EACf,aAAa,EACb,UAAU,EACV,SAAS,EACT,MAAM,CACP,CAAC;KACH;IACD,OAAO,IAAA,uBAAO,EAAC,GAAG,CAAC,CAAC;AACtB,CAAC,CAAC;AA/BW,QAAA,MAAM,UA+BjB","sourcesContent":["import * as ed from '@noble/ed25519';\nimport {\n arrayify,\n hexlify,\n hexStringToBytes,\n encryptJSONDataWithSharedKey,\n tryDecryptJSONDataWithSharedKey,\n getPublicViewingKey,\n verifyED25519,\n EncryptedData,\n ViewingKeyPair,\n isReactNative,\n} from 'dop-engine-v5';\nimport { EncryptDataWithSharedKeyResponse } from 'dop-sharedmodel-v5';\nimport { getRandomBytes } from './bytes';\nimport { promisify } from 'util';\nimport { pbkdf2 as NodePbkdf2 } from 'crypto';\nimport { pbkdf2 as JSpbkdf2 } from 'ethereum-cryptography/pbkdf2';\n\nexport const verifyRelayerSignature = (\n signature: string | Uint8Array,\n data: string | Uint8Array,\n signingKey: Uint8Array,\n): Promise<boolean> => {\n return verifyED25519(data, signature, signingKey);\n};\n\nexport const encryptDataWithSharedKey = async (\n data: object,\n externalPubKey: Uint8Array,\n): Promise<EncryptDataWithSharedKeyResponse> => {\n const randomPrivKey = hexStringToBytes(getRandomBytes(32));\n const randomPubKeyUint8Array = await getPublicViewingKey(randomPrivKey);\n const randomPubKey = hexlify(randomPubKeyUint8Array);\n const sharedKey = await ed.getSharedSecret(randomPrivKey, externalPubKey);\n const encryptedData = encryptJSONDataWithSharedKey(data, sharedKey);\n return { encryptedData, randomPubKey, sharedKey };\n};\n\nexport const decryptAESGCM256 = (\n encryptedData: EncryptedData,\n sharedKey: Uint8Array,\n): object | null => {\n return tryDecryptJSONDataWithSharedKey(encryptedData, sharedKey);\n};\n\nexport const encryptAESGCM256 = (\n data: object,\n sharedKey: Uint8Array,\n): EncryptedData => {\n return encryptJSONDataWithSharedKey(data, sharedKey);\n};\n\n/**\n * Calculates PBKDF2 hash\n * @param secret - input\n * @param salt - salt\n * @param iterations - rounds\n */\nexport const pbkdf2 = async (\n secret: string,\n salt: string,\n iterations: number,\n): Promise<string> => {\n const secretBuffer = Buffer.from(secret, 'utf-8');\n const secretFormatted = new Uint8Array(arrayify(secretBuffer));\n const saltFormatted = new Uint8Array(arrayify(salt));\n\n const keyLength = 32; // Bytes\n const digest = 'sha256';\n\n let key: Uint8Array | Buffer;\n if (isReactNative) {\n key = await JSpbkdf2(\n secretFormatted,\n saltFormatted,\n iterations,\n keyLength,\n digest,\n );\n } else {\n key = await promisify(NodePbkdf2)(\n secretFormatted,\n saltFormatted,\n iterations,\n keyLength,\n digest,\n );\n }\n return hexlify(key);\n};\n\nexport {\n encryptJSONDataWithSharedKey,\n tryDecryptJSONDataWithSharedKey,\n EncryptedData,\n getPublicViewingKey,\n ViewingKeyPair,\n};\n"]}
@@ -1,2 +1,2 @@
1
- import { Database } from 'dop-engine';
1
+ import { Database } from 'dop-engine-v5';
2
2
  export { Database };
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Database = void 0;
4
- const dop_engine_1 = require("dop-engine");
5
- Object.defineProperty(exports, "Database", { enumerable: true, get: function () { return dop_engine_1.Database; } });
4
+ const dop_engine_v5_1 = require("dop-engine-v5");
5
+ Object.defineProperty(exports, "Database", { enumerable: true, get: function () { return dop_engine_v5_1.Database; } });
6
6
  //# sourceMappingURL=db.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../../../../src/services/dop/util/db.ts"],"names":[],"mappings":";;;AAAA,2CAAsC;AAE7B,yFAFA,qBAAQ,OAEA","sourcesContent":["import { Database } from 'dop-engine';\n\nexport { Database };\n"]}
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../../../../src/services/dop/util/db.ts"],"names":[],"mappings":";;;AAAA,iDAAyC;AAEhC,yFAFA,wBAAQ,OAEA","sourcesContent":["import { Database } from 'dop-engine-v5';\n\nexport { Database };\n"]}
@@ -1,5 +1,5 @@
1
- import { Chain, AbstractWallet } from 'dop-engine';
2
- import { DopBalancesEvent, NetworkName } from 'dop-sharedmodel';
1
+ import { Chain, AbstractWallet } from 'dop-engine-v5';
2
+ import { DopBalancesEvent, NetworkName } from 'dop-sharedmodel-v5';
3
3
  export type BalancesUpdatedCallback = (balancesEvent: DopBalancesEvent) => void;
4
4
  export declare const setOnBalanceUpdateCallback: (callback?: BalancesUpdatedCallback) => void;
5
5
  export declare const onBalancesUpdate: (wallet: AbstractWallet, chain: Chain) => Promise<void>;
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.awaitMultipleWalletScans = exports.awaitWalletScan = exports.balanceForERC20Token = exports.onBalancesUpdate = exports.setOnBalanceUpdateCallback = void 0;
4
- const dop_engine_1 = require("dop-engine");
5
- const dop_sharedmodel_1 = require("dop-sharedmodel");
4
+ const dop_engine_v5_1 = require("dop-engine-v5");
5
+ const dop_sharedmodel_v5_1 = require("dop-sharedmodel-v5");
6
6
  const logger_1 = require("../../../utils/logger");
7
7
  const bytes_1 = require("../util/bytes");
8
8
  const core_1 = require("../core");
@@ -15,7 +15,7 @@ const getSerializedERC20Balances = (balances) => {
15
15
  const tokenHashes = Object.keys(balances);
16
16
  return tokenHashes
17
17
  .filter(tokenHash => {
18
- return balances[tokenHash].tokenData.tokenType === dop_engine_1.TokenType.ERC20;
18
+ return balances[tokenHash].tokenData.tokenType === dop_engine_v5_1.TokenType.ERC20;
19
19
  })
20
20
  .map(dopBalanceAddress => {
21
21
  const erc20Balance = {
@@ -29,7 +29,7 @@ const getNFTBalances = (balances) => {
29
29
  const tokenHashes = Object.keys(balances);
30
30
  return tokenHashes
31
31
  .filter(tokenHash => {
32
- return ([dop_engine_1.TokenType.ERC721, dop_engine_1.TokenType.ERC1155].includes(balances[tokenHash].tokenData.tokenType) && balances[tokenHash].balance > BigInt(0));
32
+ return ([dop_engine_v5_1.TokenType.ERC721, dop_engine_v5_1.TokenType.ERC1155].includes(balances[tokenHash].tokenData.tokenType) && balances[tokenHash].balance > BigInt(0));
33
33
  })
34
34
  .map(tokenHash => {
35
35
  const tokenData = balances[tokenHash].tokenData;
@@ -60,7 +60,7 @@ const onBalancesUpdate = async (wallet, chain) => {
60
60
  };
61
61
  exports.onBalancesUpdate = onBalancesUpdate;
62
62
  const balanceForERC20Token = async (wallet, networkName, tokenAddress) => {
63
- const { chain } = dop_sharedmodel_1.NETWORK_CONFIG[networkName];
63
+ const { chain } = dop_sharedmodel_v5_1.NETWORK_CONFIG[networkName];
64
64
  const balances = await wallet.balances(chain);
65
65
  const tokenBalances = getSerializedERC20Balances(balances);
66
66
  const matchingTokenBalance = tokenBalances.find(tokenBalance => tokenBalance.tokenAddress.toLowerCase() === tokenAddress.toLowerCase());
@@ -72,7 +72,7 @@ const balanceForERC20Token = async (wallet, networkName, tokenAddress) => {
72
72
  exports.balanceForERC20Token = balanceForERC20Token;
73
73
  const awaitWalletScan = (walletID, chain) => {
74
74
  const wallet = (0, core_1.walletForID)(walletID);
75
- return new Promise((resolve, reject) => wallet.once(dop_engine_1.EngineEvent.WalletScanComplete, ({ chain: returnedChain }) => returnedChain.type === chain.type && returnedChain.id === chain.id
75
+ return new Promise((resolve, reject) => wallet.once(dop_engine_v5_1.EngineEvent.WalletScanComplete, ({ chain: returnedChain }) => returnedChain.type === chain.type && returnedChain.id === chain.id
76
76
  ? resolve(returnedChain)
77
77
  : reject()));
78
78
  };