dop-wallet-v6 1.2.1 → 1.2.2

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 (115) 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.map +1 -1
  9. package/dist/services/dop/core/artifacts.d.ts +2 -2
  10. package/dist/services/dop/core/artifacts.js.map +1 -1
  11. package/dist/services/dop/core/encrypts.d.ts +1 -1
  12. package/dist/services/dop/core/encrypts.js.map +1 -1
  13. package/dist/services/dop/core/engine.d.ts +1 -1
  14. package/dist/services/dop/core/engine.js.map +1 -1
  15. package/dist/services/dop/core/init.d.ts +2 -2
  16. package/dist/services/dop/core/init.js.map +1 -1
  17. package/dist/services/dop/core/load-provider.d.ts +1 -1
  18. package/dist/services/dop/core/load-provider.js.map +1 -1
  19. package/dist/services/dop/core/merkletree.d.ts +2 -2
  20. package/dist/services/dop/core/merkletree.js.map +1 -1
  21. package/dist/services/dop/core/prover.d.ts +1 -1
  22. package/dist/services/dop/core/prover.js.map +1 -1
  23. package/dist/services/dop/core/providers.d.ts +2 -2
  24. package/dist/services/dop/core/providers.js.map +1 -1
  25. package/dist/services/dop/dop-txids/__tests__/dop-txid-sync-graph-v2.test.js.map +1 -1
  26. package/dist/services/dop/dop-txids/blinded-commitments.d.ts +1 -1
  27. package/dist/services/dop/dop-txids/blinded-commitments.js.map +1 -1
  28. package/dist/services/dop/dop-txids/dop-txid-graph-type-formatters.d.ts +1 -1
  29. package/dist/services/dop/dop-txids/dop-txid-graph-type-formatters.js.map +1 -1
  30. package/dist/services/dop/dop-txids/dop-txid-merkletrees.d.ts +1 -1
  31. package/dist/services/dop/dop-txids/dop-txid-merkletrees.js.map +1 -1
  32. package/dist/services/dop/dop-txids/dop-txid-sync-graph-v2.d.ts +1 -1
  33. package/dist/services/dop/dop-txids/dop-txid-sync-graph-v2.js.map +1 -1
  34. package/dist/services/dop/history/transaction-history.d.ts +2 -2
  35. package/dist/services/dop/history/transaction-history.js.map +1 -1
  36. package/dist/services/dop/process/extract-transaction-data.d.ts +1 -1
  37. package/dist/services/dop/process/extract-transaction-data.js.map +1 -1
  38. package/dist/services/dop/quick-sync/V2/__tests__/quick-sync-events-graph-v2.test.js.map +1 -1
  39. package/dist/services/dop/quick-sync/V2/graph-type-formatters-v2.d.ts +1 -1
  40. package/dist/services/dop/quick-sync/V2/graph-type-formatters-v2.js.map +1 -1
  41. package/dist/services/dop/quick-sync/V2/quick-sync-events-graph-v2.d.ts +1 -1
  42. package/dist/services/dop/quick-sync/V2/quick-sync-events-graph-v2.js.map +1 -1
  43. package/dist/services/dop/quick-sync/V3/__tests__/quick-sync-events-graph-v3.test.js.map +1 -1
  44. package/dist/services/dop/quick-sync/V3/graph-type-formatters-v3.d.ts +1 -1
  45. package/dist/services/dop/quick-sync/V3/graph-type-formatters-v3.js.map +1 -1
  46. package/dist/services/dop/quick-sync/V3/quick-sync-events-graph-v3.d.ts +1 -1
  47. package/dist/services/dop/quick-sync/V3/quick-sync-events-graph-v3.js.map +1 -1
  48. package/dist/services/dop/quick-sync/graph-query.d.ts +1 -1
  49. package/dist/services/dop/quick-sync/graph-query.js.map +1 -1
  50. package/dist/services/dop/quick-sync/quick-sync-events.d.ts +1 -1
  51. package/dist/services/dop/quick-sync/quick-sync-events.js.map +1 -1
  52. package/dist/services/dop/quick-sync/shared-formatters.d.ts +1 -1
  53. package/dist/services/dop/quick-sync/shared-formatters.js.map +1 -1
  54. package/dist/services/dop/util/bytes.d.ts +1 -1
  55. package/dist/services/dop/util/bytes.js.map +1 -1
  56. package/dist/services/dop/util/crypto.d.ts +2 -2
  57. package/dist/services/dop/util/crypto.js.map +1 -1
  58. package/dist/services/dop/wallets/__tests__/balances-live.test.js.map +1 -1
  59. package/dist/services/dop/wallets/__tests__/balances-update.test.js.map +1 -1
  60. package/dist/services/dop/wallets/__tests__/balances.test.js.map +1 -1
  61. package/dist/services/dop/wallets/__tests__/wallets.test.js.map +1 -1
  62. package/dist/services/dop/wallets/balance-update.d.ts +2 -2
  63. package/dist/services/dop/wallets/balance-update.js.map +1 -1
  64. package/dist/services/dop/wallets/balances.d.ts +1 -1
  65. package/dist/services/dop/wallets/balances.js.map +1 -1
  66. package/dist/services/dop/wallets/wallets.d.ts +2 -2
  67. package/dist/services/dop/wallets/wallets.js.map +1 -1
  68. package/dist/services/ethers/ethers-util.js.map +1 -1
  69. package/dist/services/transactions/__tests__/proof-cache.test.js.map +1 -1
  70. package/dist/services/transactions/__tests__/tx-cross-contract-calls.test.js.map +1 -1
  71. package/dist/services/transactions/__tests__/tx-encrypt-base-token.test.js.map +1 -1
  72. package/dist/services/transactions/__tests__/tx-gas-details.test.js.map +1 -1
  73. package/dist/services/transactions/__tests__/tx-notes.test.js.map +1 -1
  74. package/dist/services/transactions/__tests__/tx-transfer.test.js.map +1 -1
  75. package/dist/services/transactions/proof-cache.d.ts +1 -1
  76. package/dist/services/transactions/proof-cache.js.map +1 -1
  77. package/dist/services/transactions/tx-cross-contract-calls.d.ts +2 -2
  78. package/dist/services/transactions/tx-cross-contract-calls.js.map +1 -1
  79. package/dist/services/transactions/tx-decrypt.d.ts +1 -1
  80. package/dist/services/transactions/tx-decrypt.js.map +1 -1
  81. package/dist/services/transactions/tx-encrypt-base-token.d.ts +1 -1
  82. package/dist/services/transactions/tx-encrypt-base-token.js.map +1 -1
  83. package/dist/services/transactions/tx-encrypt.d.ts +1 -1
  84. package/dist/services/transactions/tx-encrypt.js.map +1 -1
  85. package/dist/services/transactions/tx-gas-broadcaster-fee-estimator.d.ts +2 -2
  86. package/dist/services/transactions/tx-gas-broadcaster-fee-estimator.js.map +1 -1
  87. package/dist/services/transactions/tx-gas-details.d.ts +1 -1
  88. package/dist/services/transactions/tx-gas-details.js.map +1 -1
  89. package/dist/services/transactions/tx-generator.d.ts +2 -2
  90. package/dist/services/transactions/tx-generator.js.map +1 -1
  91. package/dist/services/transactions/tx-notes.d.ts +2 -2
  92. package/dist/services/transactions/tx-notes.js.map +1 -1
  93. package/dist/services/transactions/tx-nullifiers.d.ts +1 -1
  94. package/dist/services/transactions/tx-nullifiers.js.map +1 -1
  95. package/dist/services/transactions/tx-proof-decrypt.d.ts +1 -1
  96. package/dist/services/transactions/tx-proof-decrypt.js.map +1 -1
  97. package/dist/services/transactions/tx-proof-transfer.d.ts +1 -1
  98. package/dist/services/transactions/tx-proof-transfer.js.map +1 -1
  99. package/dist/services/transactions/tx-transfer.d.ts +1 -1
  100. package/dist/services/transactions/tx-transfer.js.map +1 -1
  101. package/dist/tests/helper.test.d.ts +1 -1
  102. package/dist/tests/helper.test.js.map +1 -1
  103. package/dist/tests/mocks.test.d.ts +2 -2
  104. package/dist/tests/mocks.test.js.map +1 -1
  105. package/dist/tests/poi/test-wallet-poi-requester.test.d.ts +2 -2
  106. package/dist/tests/poi/test-wallet-poi-requester.test.js.map +1 -1
  107. package/dist/tests/setup.test.d.ts +1 -1
  108. package/dist/tests/setup.test.js.map +1 -1
  109. package/dist/tests/stubs/engine-stubs.test.d.ts +1 -1
  110. package/dist/tests/stubs/engine-stubs.test.js.map +1 -1
  111. package/dist/utils/blocked-address.js.map +1 -1
  112. package/dist/utils/error.js.map +1 -1
  113. package/dist/utils/gas-price.d.ts +1 -1
  114. package/dist/utils/gas-price.js.map +1 -1
  115. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { DopTransactionV2 } from 'dop-engine-v3';
1
+ import { DopTransactionV2 } from 'dop-engine-v5';
2
2
  import { GetDopTransactionsAfterGraphIDQuery } from './graphql';
3
3
  export type GraphDopTransactions = GetDopTransactionsAfterGraphIDQuery['transactions'];
4
4
  export declare const formatDopTransactions: (txs: (Pick<import("./graphql").Transaction, "blockNumber" | "id" | "transactionHash" | "blockTimestamp" | "nullifiers" | "commitments" | "boundParamsHash" | "utxoTreeIn" | "utxoTreeOut" | "utxoBatchStartPositionOut" | "hasDecrypt" | "decryptToAddress" | "decryptValue" | "verificationHash"> & {
@@ -1 +1 @@
1
- {"version":3,"file":"dop-txid-graph-type-formatters.js","sourceRoot":"","sources":["../../../../src/services/dop/dop-txids/dop-txid-graph-type-formatters.ts"],"names":[],"mappings":";;;AAAA,iDAKuB;AAEvB,mCAAoC;AACpC,uEAAkF;AAK3E,MAAM,qBAAqB,GAAG,CACnC,GAAyB,EACL,EAAE;IACtB,OAAO,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;QAClB,MAAM,OAAO,GAAgC,EAAE,CAAC,UAAU;YACxD,CAAC,CAAC;gBACE,SAAS,EAAE;oBACT,SAAS,EAAE,IAAA,mDAA+B,EACxC,EAAE,CAAC,YAAY,CAAC,SAAS,CAC1B;oBACD,YAAY,EAAE,IAAA,mBAAU,EAAC,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC;oBACtD,UAAU,EAAE,EAAE,CAAC,YAAY,CAAC,UAAU;iBACvC;gBACD,SAAS,EAAE,EAAE,CAAC,gBAAgB;gBAC9B,KAAK,EAAE,EAAE,CAAC,YAAY;aACvB;YACH,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,cAAc,GAAqB;YACvC,OAAO,EAAE,qCAAqB,CAAC,EAAE;YACjC,OAAO,EAAE,EAAE,CAAC,EAAE;YACd,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAC3C,yBAAS,CAAC,kBAAkB,CAAC,UAAU,EAAE,0BAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CACpE;YACD,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CACxC,yBAAS,CAAC,kBAAkB,CAAC,SAAS,EAAE,0BAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CACnE;YACD,eAAe,EAAE,yBAAS,CAAC,kBAAkB,CAC3C,EAAE,CAAC,eAAe,EAClB,0BAAU,CAAC,QAAQ,EACnB,IAAI,CACL;YACD,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC;YACnC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,cAAc,CAAC;YACpC,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC;YACjC,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC;YACnC,yBAAyB,EAAE,MAAM,CAAC,EAAE,CAAC,yBAAyB,CAAC;YAC/D,IAAI,EAAE,yBAAS,CAAC,kBAAkB,CAChC,EAAE,CAAC,eAAe,EAClB,0BAAU,CAAC,QAAQ,EACnB,KAAK,CACN;YACD,OAAO;YACP,gBAAgB,EAAE,yBAAS,CAAC,kBAAkB,CAC5C,EAAE,CAAC,gBAAgB,EACnB,0BAAU,CAAC,QAAQ,EACnB,IAAI,CACL;SACF,CAAC;QACF,OAAO,cAAc,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAnDW,QAAA,qBAAqB,yBAmDhC","sourcesContent":["import {\n ByteLength,\n DopTransactionV2,\n DopTransactionVersion,\n ByteUtils,\n} from 'dop-engine-v3';\nimport { GetDopTransactionsAfterGraphIDQuery } from './graphql';\nimport { getAddress } from 'ethers';\nimport { graphTokenTypeToEngineTokenType } from '../quick-sync/shared-formatters';\n\nexport type GraphDopTransactions =\n GetDopTransactionsAfterGraphIDQuery['transactions'];\n\nexport const formatDopTransactions = (\n txs: GraphDopTransactions,\n): DopTransactionV2[] => {\n return txs.map(tx => {\n const decrypt: DopTransactionV2['decrypt'] = tx.hasDecrypt\n ? {\n tokenData: {\n tokenType: graphTokenTypeToEngineTokenType(\n tx.decryptToken.tokenType,\n ),\n tokenAddress: getAddress(tx.decryptToken.tokenAddress),\n tokenSubID: tx.decryptToken.tokenSubID,\n },\n toAddress: tx.decryptToAddress,\n value: tx.decryptValue,\n }\n : undefined;\n\n const dopTransaction: DopTransactionV2 = {\n version: DopTransactionVersion.V2,\n graphID: tx.id,\n commitments: tx.commitments.map(commitment =>\n ByteUtils.formatToByteLength(commitment, ByteLength.UINT_256, true),\n ),\n nullifiers: tx.nullifiers.map(nullifier =>\n ByteUtils.formatToByteLength(nullifier, ByteLength.UINT_256, true),\n ),\n boundParamsHash: ByteUtils.formatToByteLength(\n tx.boundParamsHash,\n ByteLength.UINT_256,\n true,\n ),\n blockNumber: Number(tx.blockNumber),\n timestamp: Number(tx.blockTimestamp),\n utxoTreeIn: Number(tx.utxoTreeIn),\n utxoTreeOut: Number(tx.utxoTreeOut),\n utxoBatchStartPositionOut: Number(tx.utxoBatchStartPositionOut),\n txid: ByteUtils.formatToByteLength(\n tx.transactionHash,\n ByteLength.UINT_256,\n false,\n ),\n decrypt,\n verificationHash: ByteUtils.formatToByteLength(\n tx.verificationHash,\n ByteLength.UINT_256,\n true,\n ),\n };\n return dopTransaction;\n });\n};\n"]}
1
+ {"version":3,"file":"dop-txid-graph-type-formatters.js","sourceRoot":"","sources":["../../../../src/services/dop/dop-txids/dop-txid-graph-type-formatters.ts"],"names":[],"mappings":";;;AAAA,iDAKuB;AAEvB,mCAAoC;AACpC,uEAAkF;AAK3E,MAAM,qBAAqB,GAAG,CACnC,GAAyB,EACL,EAAE;IACtB,OAAO,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;QAClB,MAAM,OAAO,GAAgC,EAAE,CAAC,UAAU;YACxD,CAAC,CAAC;gBACE,SAAS,EAAE;oBACT,SAAS,EAAE,IAAA,mDAA+B,EACxC,EAAE,CAAC,YAAY,CAAC,SAAS,CAC1B;oBACD,YAAY,EAAE,IAAA,mBAAU,EAAC,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC;oBACtD,UAAU,EAAE,EAAE,CAAC,YAAY,CAAC,UAAU;iBACvC;gBACD,SAAS,EAAE,EAAE,CAAC,gBAAgB;gBAC9B,KAAK,EAAE,EAAE,CAAC,YAAY;aACvB;YACH,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,cAAc,GAAqB;YACvC,OAAO,EAAE,qCAAqB,CAAC,EAAE;YACjC,OAAO,EAAE,EAAE,CAAC,EAAE;YACd,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAC3C,yBAAS,CAAC,kBAAkB,CAAC,UAAU,EAAE,0BAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CACpE;YACD,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CACxC,yBAAS,CAAC,kBAAkB,CAAC,SAAS,EAAE,0BAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CACnE;YACD,eAAe,EAAE,yBAAS,CAAC,kBAAkB,CAC3C,EAAE,CAAC,eAAe,EAClB,0BAAU,CAAC,QAAQ,EACnB,IAAI,CACL;YACD,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC;YACnC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,cAAc,CAAC;YACpC,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC;YACjC,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC;YACnC,yBAAyB,EAAE,MAAM,CAAC,EAAE,CAAC,yBAAyB,CAAC;YAC/D,IAAI,EAAE,yBAAS,CAAC,kBAAkB,CAChC,EAAE,CAAC,eAAe,EAClB,0BAAU,CAAC,QAAQ,EACnB,KAAK,CACN;YACD,OAAO;YACP,gBAAgB,EAAE,yBAAS,CAAC,kBAAkB,CAC5C,EAAE,CAAC,gBAAgB,EACnB,0BAAU,CAAC,QAAQ,EACnB,IAAI,CACL;SACF,CAAC;QACF,OAAO,cAAc,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAnDW,QAAA,qBAAqB,yBAmDhC","sourcesContent":["import {\n ByteLength,\n DopTransactionV2,\n DopTransactionVersion,\n ByteUtils,\n} from 'dop-engine-v5';\nimport { GetDopTransactionsAfterGraphIDQuery } from './graphql';\nimport { getAddress } from 'ethers';\nimport { graphTokenTypeToEngineTokenType } from '../quick-sync/shared-formatters';\n\nexport type GraphDopTransactions =\n GetDopTransactionsAfterGraphIDQuery['transactions'];\n\nexport const formatDopTransactions = (\n txs: GraphDopTransactions,\n): DopTransactionV2[] => {\n return txs.map(tx => {\n const decrypt: DopTransactionV2['decrypt'] = tx.hasDecrypt\n ? {\n tokenData: {\n tokenType: graphTokenTypeToEngineTokenType(\n tx.decryptToken.tokenType,\n ),\n tokenAddress: getAddress(tx.decryptToken.tokenAddress),\n tokenSubID: tx.decryptToken.tokenSubID,\n },\n toAddress: tx.decryptToAddress,\n value: tx.decryptValue,\n }\n : undefined;\n\n const dopTransaction: DopTransactionV2 = {\n version: DopTransactionVersion.V2,\n graphID: tx.id,\n commitments: tx.commitments.map(commitment =>\n ByteUtils.formatToByteLength(commitment, ByteLength.UINT_256, true),\n ),\n nullifiers: tx.nullifiers.map(nullifier =>\n ByteUtils.formatToByteLength(nullifier, ByteLength.UINT_256, true),\n ),\n boundParamsHash: ByteUtils.formatToByteLength(\n tx.boundParamsHash,\n ByteLength.UINT_256,\n true,\n ),\n blockNumber: Number(tx.blockNumber),\n timestamp: Number(tx.blockTimestamp),\n utxoTreeIn: Number(tx.utxoTreeIn),\n utxoTreeOut: Number(tx.utxoTreeOut),\n utxoBatchStartPositionOut: Number(tx.utxoBatchStartPositionOut),\n txid: ByteUtils.formatToByteLength(\n tx.transactionHash,\n ByteLength.UINT_256,\n false,\n ),\n decrypt,\n verificationHash: ByteUtils.formatToByteLength(\n tx.verificationHash,\n ByteLength.UINT_256,\n true,\n ),\n };\n return dopTransaction;\n });\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { NetworkName, TXIDVersion } from 'dop-sharedmodels-v3';
1
+ import { NetworkName, TXIDVersion } from 'dop-sharedmodels-v5';
2
2
  export declare const validateDopTxidMerkleroot: (txidVersion: TXIDVersion, networkName: NetworkName, tree: number, index: number, merkleroot: string) => Promise<boolean>;
3
3
  export declare const validateDopTxidOccurredBeforeBlockNumber: (txidVersion: TXIDVersion, networkName: NetworkName, tree: number, index: number, blockNumber: number) => Promise<boolean>;
4
4
  export declare const validateDopTxidExists: (txidVersion: TXIDVersion, networkName: NetworkName, dopTxid: string) => Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"dop-txid-merkletrees.js","sourceRoot":"","sources":["../../../../src/services/dop/dop-txids/dop-txid-merkletrees.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n NETWORK_CONFIG,\n NetworkName,\n TXIDVersion,\n isDefined,\n} from 'dop-sharedmodels-v3';\nimport { getEngine, getTXIDMerkletreeForNetwork } from '../core';\n\nexport const validateDopTxidMerkleroot = async (\n txidVersion: TXIDVersion,\n networkName: NetworkName,\n tree: number,\n index: number,\n merkleroot: string,\n): Promise<boolean> => {\n const chain = NETWORK_CONFIG[networkName].chain;\n const engine = getEngine();\n const txidMerkletree = engine.getTXIDMerkletree(txidVersion, chain);\n const historicalMerkleroot = await txidMerkletree.getHistoricalMerkleroot(\n tree,\n index,\n );\n return historicalMerkleroot === merkleroot;\n};\n\nexport const validateDopTxidOccurredBeforeBlockNumber = (\n txidVersion: TXIDVersion,\n networkName: NetworkName,\n tree: number,\n index: number,\n blockNumber: number,\n): Promise<boolean> => {\n const chain = NETWORK_CONFIG[networkName].chain;\n const engine = getEngine();\n const txidMerkletree = engine.getTXIDMerkletree(txidVersion, chain);\n return txidMerkletree.dopTxidOccurredBeforeBlockNumber(\n tree,\n index,\n blockNumber,\n );\n};\n\nexport const validateDopTxidExists = async (\n txidVersion: TXIDVersion,\n networkName: NetworkName,\n dopTxid: string,\n) => {\n const txidMerkletree = getTXIDMerkletreeForNetwork(txidVersion, networkName);\n const dopTransaction = await txidMerkletree.getDopTransactionByTxid(\n dopTxid,\n );\n return isDefined(dopTransaction);\n};\n\nexport const getGlobalUTXOTreePositionForDopTransactionCommitment = (\n txidVersion: TXIDVersion,\n networkName: NetworkName,\n tree: number,\n index: number,\n commitmentHash: string,\n): Promise<number> => {\n const chain = NETWORK_CONFIG[networkName].chain;\n const engine = getEngine();\n const txidMerkletree = engine.getTXIDMerkletree(txidVersion, chain);\n return txidMerkletree.getGlobalUTXOTreePositionForDopTransactionCommitment(\n tree,\n index,\n commitmentHash,\n );\n};\n\nexport const syncDopTransactionsV2 = async (\n networkName: NetworkName,\n): Promise<void> => {\n const chain = NETWORK_CONFIG[networkName].chain;\n return getEngine().syncDopTransactionsV2(chain, 'manual trigger');\n};\n\nexport const fullResetTXIDMerkletreesV2 = async (networkName: NetworkName) => {\n const chain = NETWORK_CONFIG[networkName].chain;\n return getEngine().fullResetTXIDMerkletreesV2(chain);\n};\n\nexport const resetDopTxidsAfterTxidIndex = async (\n txidVersion: TXIDVersion,\n networkName: NetworkName,\n txidIndex: number,\n): Promise<void> => {\n const chain = NETWORK_CONFIG[networkName].chain;\n return getEngine().resetDopTxidsAfterTxidIndex(\n txidVersion,\n chain,\n txidIndex,\n );\n};\n\nexport const getLatestDopTxidData = async (\n txidVersion: TXIDVersion,\n networkName: NetworkName,\n): Promise<{\n txidIndex: number;\n merkleroot: string;\n}> => {\n const chain = NETWORK_CONFIG[networkName].chain;\n return getEngine().getLatestDopTxidData(txidVersion, chain);\n};\n\nexport const getDopTxidMerkleroot = async (\n txidVersion: TXIDVersion,\n networkName: NetworkName,\n tree: number,\n index: number,\n) => {\n const chain = NETWORK_CONFIG[networkName].chain;\n const engine = getEngine();\n const txidMerkletree = engine.getTXIDMerkletree(txidVersion, chain);\n const historicalMerkleroot = await txidMerkletree.getHistoricalMerkleroot(\n tree,\n index,\n );\n return historicalMerkleroot;\n};\n"]}
1
+ {"version":3,"file":"dop-txid-merkletrees.js","sourceRoot":"","sources":["../../../../src/services/dop/dop-txids/dop-txid-merkletrees.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n NETWORK_CONFIG,\n NetworkName,\n TXIDVersion,\n isDefined,\n} from 'dop-sharedmodels-v5';\nimport { getEngine, getTXIDMerkletreeForNetwork } from '../core';\n\nexport const validateDopTxidMerkleroot = async (\n txidVersion: TXIDVersion,\n networkName: NetworkName,\n tree: number,\n index: number,\n merkleroot: string,\n): Promise<boolean> => {\n const chain = NETWORK_CONFIG[networkName].chain;\n const engine = getEngine();\n const txidMerkletree = engine.getTXIDMerkletree(txidVersion, chain);\n const historicalMerkleroot = await txidMerkletree.getHistoricalMerkleroot(\n tree,\n index,\n );\n return historicalMerkleroot === merkleroot;\n};\n\nexport const validateDopTxidOccurredBeforeBlockNumber = (\n txidVersion: TXIDVersion,\n networkName: NetworkName,\n tree: number,\n index: number,\n blockNumber: number,\n): Promise<boolean> => {\n const chain = NETWORK_CONFIG[networkName].chain;\n const engine = getEngine();\n const txidMerkletree = engine.getTXIDMerkletree(txidVersion, chain);\n return txidMerkletree.dopTxidOccurredBeforeBlockNumber(\n tree,\n index,\n blockNumber,\n );\n};\n\nexport const validateDopTxidExists = async (\n txidVersion: TXIDVersion,\n networkName: NetworkName,\n dopTxid: string,\n) => {\n const txidMerkletree = getTXIDMerkletreeForNetwork(txidVersion, networkName);\n const dopTransaction = await txidMerkletree.getDopTransactionByTxid(\n dopTxid,\n );\n return isDefined(dopTransaction);\n};\n\nexport const getGlobalUTXOTreePositionForDopTransactionCommitment = (\n txidVersion: TXIDVersion,\n networkName: NetworkName,\n tree: number,\n index: number,\n commitmentHash: string,\n): Promise<number> => {\n const chain = NETWORK_CONFIG[networkName].chain;\n const engine = getEngine();\n const txidMerkletree = engine.getTXIDMerkletree(txidVersion, chain);\n return txidMerkletree.getGlobalUTXOTreePositionForDopTransactionCommitment(\n tree,\n index,\n commitmentHash,\n );\n};\n\nexport const syncDopTransactionsV2 = async (\n networkName: NetworkName,\n): Promise<void> => {\n const chain = NETWORK_CONFIG[networkName].chain;\n return getEngine().syncDopTransactionsV2(chain, 'manual trigger');\n};\n\nexport const fullResetTXIDMerkletreesV2 = async (networkName: NetworkName) => {\n const chain = NETWORK_CONFIG[networkName].chain;\n return getEngine().fullResetTXIDMerkletreesV2(chain);\n};\n\nexport const resetDopTxidsAfterTxidIndex = async (\n txidVersion: TXIDVersion,\n networkName: NetworkName,\n txidIndex: number,\n): Promise<void> => {\n const chain = NETWORK_CONFIG[networkName].chain;\n return getEngine().resetDopTxidsAfterTxidIndex(\n txidVersion,\n chain,\n txidIndex,\n );\n};\n\nexport const getLatestDopTxidData = async (\n txidVersion: TXIDVersion,\n networkName: NetworkName,\n): Promise<{\n txidIndex: number;\n merkleroot: string;\n}> => {\n const chain = NETWORK_CONFIG[networkName].chain;\n return getEngine().getLatestDopTxidData(txidVersion, chain);\n};\n\nexport const getDopTxidMerkleroot = async (\n txidVersion: TXIDVersion,\n networkName: NetworkName,\n tree: number,\n index: number,\n) => {\n const chain = NETWORK_CONFIG[networkName].chain;\n const engine = getEngine();\n const txidMerkletree = engine.getTXIDMerkletree(txidVersion, chain);\n const historicalMerkleroot = await txidMerkletree.getHistoricalMerkleroot(\n tree,\n index,\n );\n return historicalMerkleroot;\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { Chain, DopTransaction, DopTransactionV2 } from 'dop-engine-v3';
1
+ import { Chain, DopTransaction, DopTransactionV2 } from 'dop-engine-v5';
2
2
  export declare const getDopTxDataForDecrypts: (chain: Chain, txid: string) => Promise<{
3
3
  dopTransaction: DopTransactionV2;
4
4
  dopTxid: string;
@@ -1 +1 @@
1
- {"version":3,"file":"dop-txid-sync-graph-v2.js","sourceRoot":"","sources":["../../../../src/services/dop/dop-txids/dop-txid-sync-graph-v2.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Chain,\n DopTransaction,\n DopTransactionV2,\n getDopTransactionIDHex,\n} from 'dop-engine-v3';\nimport {\n NetworkName,\n delay,\n isDefined,\n networkForChain,\n promiseTimeout,\n} from 'dop-sharedmodels-v3';\nimport { getMeshOptions, getSdk } from './graphql';\nimport { MeshInstance, getMesh } from '@graphql-mesh/runtime';\nimport {\n GraphDopTransactions,\n formatDopTransactions,\n} from './dop-txid-graph-type-formatters';\nimport { removeDuplicatesByID } from '../util/graph-util';\n\nconst meshes: MapType<MeshInstance> = {};\n\nconst MAX_QUERY_RESULTS = 5000;\n\nconst txsSubgraphSourceNameForNetwork = (networkName: NetworkName): string => {\n switch (networkName) {\n case NetworkName.Ethereum:\n return 'txs-ethereum';\n case NetworkName.EthereumSepolia:\n return 'txs-sepolia';\n case NetworkName.BNBChain:\n return 'txs-bsc';\n case NetworkName.Arbitrum:\n return 'txs-arbitrum';\n case NetworkName.Xlayer:\n return 'txs-xlayer';\n case NetworkName.Polygon:\n return 'txs-matic';\n case NetworkName.PolygonAmoy:\n case NetworkName.PolygonMumbai_DEPRECATED:\n case NetworkName.ArbitrumGoerli_DEPRECATED:\n case NetworkName.EthereumGoerli_DEPRECATED:\n case NetworkName.EthereumRopsten_DEPRECATED:\n case NetworkName.Hardhat:\n default:\n throw new Error('No dop-transaction subsquid for this network');\n }\n};\n\nexport const getDopTxDataForDecrypts = async (\n chain: Chain,\n txid: string,\n): Promise<\n {\n dopTransaction: DopTransactionV2;\n dopTxid: string;\n }[]\n> => {\n const network = networkForChain(chain);\n if (!network) {\n return [];\n }\n\n const sdk = getBuiltGraphSDK(network.name);\n\n const transactions: GraphDopTransactions = (\n await sdk.GetDopTransactionsByTxid({ txid })\n ).transactions;\n\n const dopTxidsForDecrypts: {\n dopTransaction: DopTransactionV2;\n dopTxid: string;\n }[] = transactions\n .filter(transaction => transaction.hasDecrypt)\n .map(transaction => {\n const dopTransaction = formatDopTransactions([transaction])[0];\n const dopTxid = getDopTransactionIDHex(transaction);\n return { dopTxid, dopTransaction };\n });\n\n return dopTxidsForDecrypts;\n};\n\nexport const getDopTxidsForDecrypts = async (\n chain: Chain,\n txid: string,\n): Promise<string[]> => {\n const network = networkForChain(chain);\n if (!network) {\n return [];\n }\n\n const sdk = getBuiltGraphSDK(network.name);\n\n const transactions: GraphDopTransactions = (\n await sdk.GetDopTransactionsByTxid({ txid })\n ).transactions;\n\n const dopTxidsForDecrypts: string[] = transactions\n .filter(transaction => transaction.hasDecrypt)\n .map(transaction => {\n const dopTxid = getDopTransactionIDHex(transaction);\n return dopTxid;\n });\n\n return dopTxidsForDecrypts;\n};\n\nexport const getDopTransactionDataForDecryptToAddress = async (\n chain: Chain,\n decryptToAddress: string,\n): Promise<\n {\n txid: string;\n transactionDatas: {\n dopTransaction: DopTransactionV2;\n dopTxid: string;\n }[];\n }[]\n> => {\n const network = networkForChain(chain);\n if (!network) {\n return [];\n }\n\n const sdk = getBuiltGraphSDK(network.name);\n\n const transactions: GraphDopTransactions = (\n await sdk.GetDopTransactionsByDecryptToAddress({\n address: decryptToAddress,\n })\n ).transactions;\n const uniqueTxidMap = new Map<string, string[]>();\n const dopTxidToTransactionMap = new Map<string, DopTransactionV2>();\n\n transactions\n .filter(transaction => transaction.hasDecrypt)\n .forEach(transaction => {\n const dopTxid = getDopTransactionIDHex(transaction);\n dopTxidToTransactionMap.set(\n dopTxid,\n formatDopTransactions([transaction])[0],\n );\n if (uniqueTxidMap.has(transaction.transactionHash)) {\n const dopTxids = uniqueTxidMap.get(\n transaction.transactionHash,\n ) as string[];\n dopTxids.push(dopTxid);\n uniqueTxidMap.set(transaction.transactionHash, dopTxids);\n } else {\n uniqueTxidMap.set(transaction.transactionHash, [dopTxid]);\n }\n });\n const dopTxidsForDecrypts: {\n txid: string;\n transactionDatas: {\n dopTransaction: DopTransactionV2;\n dopTxid: string;\n }[];\n }[] = [];\n uniqueTxidMap.forEach((dopTxids, txid) => {\n dopTxidsForDecrypts.push({\n txid,\n transactionDatas: dopTxids.map(dopTxid => {\n const dopTransaction = dopTxidToTransactionMap.get(dopTxid);\n if (!dopTransaction) {\n throw new Error(\n `Could not find dop transaction for txid ${txid}`,\n );\n }\n return { dopTransaction, dopTxid };\n }),\n });\n });\n\n return dopTxidsForDecrypts;\n};\n\nexport const getDopTransactionsForTxid = async (\n chain: Chain,\n txid: string,\n): Promise<DopTransaction[]> => {\n const network = networkForChain(chain);\n if (!network) {\n return [];\n }\n\n const sdk = getBuiltGraphSDK(network.name);\n\n const dopTransactions: GraphDopTransactions = (\n await sdk.GetDopTransactionsByTxid({ txid })\n ).transactions;\n\n const filteredDopTransactions: GraphDopTransactions =\n removeDuplicatesByID(dopTransactions);\n\n const formattedDopTransactions: DopTransaction[] =\n formatDopTransactions(filteredDopTransactions);\n\n return formattedDopTransactions;\n};\n\nexport const quickSyncDopTransactionsV2 = async (\n chain: Chain,\n latestGraphID: Optional<string>,\n): Promise<DopTransactionV2[]> => {\n const network = networkForChain(chain);\n if (!network) {\n return [];\n }\n\n const sdk = getBuiltGraphSDK(network.name);\n\n const dopTransactions: GraphDopTransactions =\n await autoPaginatingQuery(\n async (id: string) =>\n (\n await sdk.GetDopTransactionsAfterGraphID({\n idLow: id,\n })\n ).transactions,\n latestGraphID ?? '0x00',\n );\n\n const filteredDopTransactions: GraphDopTransactions =\n removeDuplicatesByID(dopTransactions);\n\n const formattedDopTransactions: DopTransactionV2[] =\n formatDopTransactions(filteredDopTransactions);\n\n return formattedDopTransactions;\n};\n\nconst autoPaginatingQuery = async <ReturnType extends { id: string }>(\n query: (id: string) => Promise<ReturnType[]>,\n id: string,\n prevResults: ReturnType[] = [],\n): Promise<ReturnType[]> => {\n const newResults = await promiseTimeout(\n query(id),\n 20000,\n new Error('Timeout querying Graph for QuickSync of DOP-TXID Events'),\n );\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 === 5000;\n // console.log(\"SHOULD QUERY MORE\", shouldQueryMore, \"OVER LIMIT\", overLimit, \"TOTAL RESULTS\", totalResults.length)\n if (!overLimit && shouldQueryMore) {\n await delay(250);\n return autoPaginatingQuery(query, lastResult.id, totalResults);\n }\n\n return totalResults;\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 = txsSubgraphSourceNameForNetwork(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\n try {\n const mesh = await getMesh(meshOptions);\n meshes[networkName] = mesh;\n const id = mesh.pubsub.subscribe('destroy', () => {\n meshes[networkName] = undefined;\n mesh.pubsub.unsubscribe(id);\n });\n return mesh;\n } catch (cause) {\n throw new Error(\n `ERROR getting mesh - if error includes \"can't generate schema,\" make sure to check the filepaths for source schema imports in the built index file`,\n { cause },\n );\n }\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":"dop-txid-sync-graph-v2.js","sourceRoot":"","sources":["../../../../src/services/dop/dop-txids/dop-txid-sync-graph-v2.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Chain,\n DopTransaction,\n DopTransactionV2,\n getDopTransactionIDHex,\n} from 'dop-engine-v5';\nimport {\n NetworkName,\n delay,\n isDefined,\n networkForChain,\n promiseTimeout,\n} from 'dop-sharedmodels-v5';\nimport { getMeshOptions, getSdk } from './graphql';\nimport { MeshInstance, getMesh } from '@graphql-mesh/runtime';\nimport {\n GraphDopTransactions,\n formatDopTransactions,\n} from './dop-txid-graph-type-formatters';\nimport { removeDuplicatesByID } from '../util/graph-util';\n\nconst meshes: MapType<MeshInstance> = {};\n\nconst MAX_QUERY_RESULTS = 5000;\n\nconst txsSubgraphSourceNameForNetwork = (networkName: NetworkName): string => {\n switch (networkName) {\n case NetworkName.Ethereum:\n return 'txs-ethereum';\n case NetworkName.EthereumSepolia:\n return 'txs-sepolia';\n case NetworkName.BNBChain:\n return 'txs-bsc';\n case NetworkName.Arbitrum:\n return 'txs-arbitrum';\n case NetworkName.Xlayer:\n return 'txs-xlayer';\n case NetworkName.Polygon:\n return 'txs-matic';\n case NetworkName.PolygonAmoy:\n case NetworkName.PolygonMumbai_DEPRECATED:\n case NetworkName.ArbitrumGoerli_DEPRECATED:\n case NetworkName.EthereumGoerli_DEPRECATED:\n case NetworkName.EthereumRopsten_DEPRECATED:\n case NetworkName.Hardhat:\n default:\n throw new Error('No dop-transaction subsquid for this network');\n }\n};\n\nexport const getDopTxDataForDecrypts = async (\n chain: Chain,\n txid: string,\n): Promise<\n {\n dopTransaction: DopTransactionV2;\n dopTxid: string;\n }[]\n> => {\n const network = networkForChain(chain);\n if (!network) {\n return [];\n }\n\n const sdk = getBuiltGraphSDK(network.name);\n\n const transactions: GraphDopTransactions = (\n await sdk.GetDopTransactionsByTxid({ txid })\n ).transactions;\n\n const dopTxidsForDecrypts: {\n dopTransaction: DopTransactionV2;\n dopTxid: string;\n }[] = transactions\n .filter(transaction => transaction.hasDecrypt)\n .map(transaction => {\n const dopTransaction = formatDopTransactions([transaction])[0];\n const dopTxid = getDopTransactionIDHex(transaction);\n return { dopTxid, dopTransaction };\n });\n\n return dopTxidsForDecrypts;\n};\n\nexport const getDopTxidsForDecrypts = async (\n chain: Chain,\n txid: string,\n): Promise<string[]> => {\n const network = networkForChain(chain);\n if (!network) {\n return [];\n }\n\n const sdk = getBuiltGraphSDK(network.name);\n\n const transactions: GraphDopTransactions = (\n await sdk.GetDopTransactionsByTxid({ txid })\n ).transactions;\n\n const dopTxidsForDecrypts: string[] = transactions\n .filter(transaction => transaction.hasDecrypt)\n .map(transaction => {\n const dopTxid = getDopTransactionIDHex(transaction);\n return dopTxid;\n });\n\n return dopTxidsForDecrypts;\n};\n\nexport const getDopTransactionDataForDecryptToAddress = async (\n chain: Chain,\n decryptToAddress: string,\n): Promise<\n {\n txid: string;\n transactionDatas: {\n dopTransaction: DopTransactionV2;\n dopTxid: string;\n }[];\n }[]\n> => {\n const network = networkForChain(chain);\n if (!network) {\n return [];\n }\n\n const sdk = getBuiltGraphSDK(network.name);\n\n const transactions: GraphDopTransactions = (\n await sdk.GetDopTransactionsByDecryptToAddress({\n address: decryptToAddress,\n })\n ).transactions;\n const uniqueTxidMap = new Map<string, string[]>();\n const dopTxidToTransactionMap = new Map<string, DopTransactionV2>();\n\n transactions\n .filter(transaction => transaction.hasDecrypt)\n .forEach(transaction => {\n const dopTxid = getDopTransactionIDHex(transaction);\n dopTxidToTransactionMap.set(\n dopTxid,\n formatDopTransactions([transaction])[0],\n );\n if (uniqueTxidMap.has(transaction.transactionHash)) {\n const dopTxids = uniqueTxidMap.get(\n transaction.transactionHash,\n ) as string[];\n dopTxids.push(dopTxid);\n uniqueTxidMap.set(transaction.transactionHash, dopTxids);\n } else {\n uniqueTxidMap.set(transaction.transactionHash, [dopTxid]);\n }\n });\n const dopTxidsForDecrypts: {\n txid: string;\n transactionDatas: {\n dopTransaction: DopTransactionV2;\n dopTxid: string;\n }[];\n }[] = [];\n uniqueTxidMap.forEach((dopTxids, txid) => {\n dopTxidsForDecrypts.push({\n txid,\n transactionDatas: dopTxids.map(dopTxid => {\n const dopTransaction = dopTxidToTransactionMap.get(dopTxid);\n if (!dopTransaction) {\n throw new Error(\n `Could not find dop transaction for txid ${txid}`,\n );\n }\n return { dopTransaction, dopTxid };\n }),\n });\n });\n\n return dopTxidsForDecrypts;\n};\n\nexport const getDopTransactionsForTxid = async (\n chain: Chain,\n txid: string,\n): Promise<DopTransaction[]> => {\n const network = networkForChain(chain);\n if (!network) {\n return [];\n }\n\n const sdk = getBuiltGraphSDK(network.name);\n\n const dopTransactions: GraphDopTransactions = (\n await sdk.GetDopTransactionsByTxid({ txid })\n ).transactions;\n\n const filteredDopTransactions: GraphDopTransactions =\n removeDuplicatesByID(dopTransactions);\n\n const formattedDopTransactions: DopTransaction[] =\n formatDopTransactions(filteredDopTransactions);\n\n return formattedDopTransactions;\n};\n\nexport const quickSyncDopTransactionsV2 = async (\n chain: Chain,\n latestGraphID: Optional<string>,\n): Promise<DopTransactionV2[]> => {\n const network = networkForChain(chain);\n if (!network) {\n return [];\n }\n\n const sdk = getBuiltGraphSDK(network.name);\n\n const dopTransactions: GraphDopTransactions =\n await autoPaginatingQuery(\n async (id: string) =>\n (\n await sdk.GetDopTransactionsAfterGraphID({\n idLow: id,\n })\n ).transactions,\n latestGraphID ?? '0x00',\n );\n\n const filteredDopTransactions: GraphDopTransactions =\n removeDuplicatesByID(dopTransactions);\n\n const formattedDopTransactions: DopTransactionV2[] =\n formatDopTransactions(filteredDopTransactions);\n\n return formattedDopTransactions;\n};\n\nconst autoPaginatingQuery = async <ReturnType extends { id: string }>(\n query: (id: string) => Promise<ReturnType[]>,\n id: string,\n prevResults: ReturnType[] = [],\n): Promise<ReturnType[]> => {\n const newResults = await promiseTimeout(\n query(id),\n 20000,\n new Error('Timeout querying Graph for QuickSync of DOP-TXID Events'),\n );\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 === 5000;\n // console.log(\"SHOULD QUERY MORE\", shouldQueryMore, \"OVER LIMIT\", overLimit, \"TOTAL RESULTS\", totalResults.length)\n if (!overLimit && shouldQueryMore) {\n await delay(250);\n return autoPaginatingQuery(query, lastResult.id, totalResults);\n }\n\n return totalResults;\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 = txsSubgraphSourceNameForNetwork(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\n try {\n const mesh = await getMesh(meshOptions);\n meshes[networkName] = mesh;\n const id = mesh.pubsub.subscribe('destroy', () => {\n meshes[networkName] = undefined;\n mesh.pubsub.unsubscribe(id);\n });\n return mesh;\n } catch (cause) {\n throw new Error(\n `ERROR getting mesh - if error includes \"can't generate schema,\" make sure to check the filepaths for source schema imports in the built index file`,\n { cause },\n );\n }\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 { Chain } from 'dop-engine-v3';
2
- import { TransactionHistoryItem, TransactionHistoryItemCategory } from 'dop-sharedmodels-v3';
1
+ import { Chain } from 'dop-engine-v5';
2
+ import { TransactionHistoryItem, TransactionHistoryItemCategory } from 'dop-sharedmodels-v5';
3
3
  export declare const categoryForTransactionHistoryItem: (historyItem: TransactionHistoryItem) => TransactionHistoryItemCategory;
4
4
  export declare const getWalletTransactionHistory: (chain: Chain, dopWalletID: string, startingBlock: Optional<number>) => Promise<TransactionHistoryItem[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"transaction-history.js","sourceRoot":"","sources":["../../../../src/services/dop/history/transaction-history.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n TransactionHistoryTransferTokenAmount,\n TransactionHistoryTokenAmount,\n TransactionHistoryEntry,\n Chain,\n TransactionHistoryReceiveTokenAmount,\n TokenType,\n ByteLength,\n ByteUtils,\n TransactionHistoryDecryptTokenAmount,\n WalletBalanceBucket,\n} from 'dop-engine-v3';\nimport {\n TransactionHistoryItem,\n DopHistoryERC20Amount,\n DopHistorySendERC20Amount,\n DopHistoryReceiveERC20Amount,\n DopHistorySendNFTAmount,\n DopHistoryNFTAmount,\n DopHistoryReceiveNFTAmount,\n DopHistoryDecryptERC20Amount,\n DopHistoryDecryptNFTAmount,\n TransactionHistoryItemCategory,\n DopWalletBalanceBucket,\n} from 'dop-sharedmodels-v3';\nimport { parseDopTokenAddress } from '../util/bytes';\nimport { reportAndSanitizeError } from '../../../utils/error';\nimport { walletForID } from '../wallets/wallets';\n\nconst getDopBalanceBucketFromEngineBalanceBucket = (\n balanceBucket: WalletBalanceBucket,\n): DopWalletBalanceBucket => {\n switch (balanceBucket) {\n case WalletBalanceBucket.Spendable:\n return DopWalletBalanceBucket.Spendable;\n case WalletBalanceBucket.EncryptBlocked:\n return DopWalletBalanceBucket.EncryptBlocked;\n case WalletBalanceBucket.EncryptPending:\n return DopWalletBalanceBucket.EncryptPending;\n case WalletBalanceBucket.ProofSubmitted:\n return DopWalletBalanceBucket.ProofSubmitted;\n case WalletBalanceBucket.Spent:\n return DopWalletBalanceBucket.Spent;\n default:\n return DopWalletBalanceBucket.Spendable;\n }\n throw new Error('Unrecognized WalletBalanceBucket');\n};\n\nconst transactionHistoryReceiveTokenAmountToDopERC20Amount = (\n transactionHistoryReceiveTokenAmount: TransactionHistoryReceiveTokenAmount,\n): DopHistoryReceiveERC20Amount => {\n return {\n ...transactionHistoryTokenAmountToDopERC20Amount(\n transactionHistoryReceiveTokenAmount,\n ),\n memoText: transactionHistoryReceiveTokenAmount.memoText,\n senderAddress: transactionHistoryReceiveTokenAmount.senderAddress,\n encryptFee: transactionHistoryReceiveTokenAmount.encryptFee,\n balanceBucket: getDopBalanceBucketFromEngineBalanceBucket(\n transactionHistoryReceiveTokenAmount.balanceBucket,\n ),\n };\n};\n\nconst transactionHistoryReceiveNFTToDopNFTAmount = (\n transactionHistoryReceiveTokenAmount: TransactionHistoryReceiveTokenAmount,\n): DopHistoryReceiveNFTAmount => {\n return {\n ...transactionHistoryNFTToDopNFTAmount(\n transactionHistoryReceiveTokenAmount,\n ),\n memoText: transactionHistoryReceiveTokenAmount.memoText,\n senderAddress: transactionHistoryReceiveTokenAmount.senderAddress,\n encryptFee: transactionHistoryReceiveTokenAmount.encryptFee,\n balanceBucket: getDopBalanceBucketFromEngineBalanceBucket(\n transactionHistoryReceiveTokenAmount.balanceBucket,\n ),\n };\n};\n\nconst transactionHistoryTransferTokenAmountToDopERC20Amount = (\n transactionHistoryTokenAmount: TransactionHistoryTransferTokenAmount,\n): DopHistorySendERC20Amount => {\n return {\n ...transactionHistoryTokenAmountToDopERC20Amount(\n transactionHistoryTokenAmount,\n ),\n recipientAddress: transactionHistoryTokenAmount.recipientAddress,\n memoText: transactionHistoryTokenAmount.memoText,\n walletSource: transactionHistoryTokenAmount.walletSource,\n };\n};\n\nconst transactionHistoryDecryptTokenAmountToDopERC20Amount = (\n transactionHistoryDecryptTokenAmount: TransactionHistoryDecryptTokenAmount,\n): DopHistoryDecryptERC20Amount => {\n return {\n ...transactionHistoryTransferTokenAmountToDopERC20Amount(\n transactionHistoryDecryptTokenAmount,\n ),\n decryptFee: transactionHistoryDecryptTokenAmount.decryptFee,\n };\n};\n\nconst transactionHistoryTransferNFTToDopNFTAmount = (\n transactionHistoryNFT: TransactionHistoryTransferTokenAmount,\n): DopHistorySendNFTAmount => {\n return {\n ...transactionHistoryNFTToDopNFTAmount(transactionHistoryNFT),\n memoText: transactionHistoryNFT.memoText,\n walletSource: transactionHistoryNFT.walletSource,\n recipientAddress: transactionHistoryNFT.recipientAddress,\n };\n};\n\nconst transactionHistoryDecryptNFTToDopNFTAmount = (\n transactionHistoryNFT: TransactionHistoryDecryptTokenAmount,\n): DopHistoryDecryptNFTAmount => {\n return {\n ...transactionHistoryTransferNFTToDopNFTAmount(transactionHistoryNFT),\n decryptFee: transactionHistoryNFT.decryptFee,\n };\n};\n\nconst transactionHistoryTokenAmountToDopERC20Amount = (\n transactionHistoryTokenAmount: TransactionHistoryTokenAmount,\n): DopHistoryERC20Amount => {\n return {\n tokenAddress: parseDopTokenAddress(\n transactionHistoryTokenAmount.tokenData.tokenAddress,\n ).toLowerCase(),\n amount: transactionHistoryTokenAmount.amount,\n };\n};\n\nconst transactionHistoryNFTToDopNFTAmount = (\n transactionHistoryNFT: TransactionHistoryTokenAmount,\n): DopHistoryNFTAmount => {\n return {\n nftAddress: parseDopTokenAddress(\n transactionHistoryNFT.tokenData.tokenAddress,\n ).toLowerCase(),\n nftTokenType: transactionHistoryNFT.tokenData.tokenType as 1 | 2,\n tokenSubID: transactionHistoryNFT.tokenData.tokenSubID,\n amount: transactionHistoryNFT.amount,\n };\n};\n\nconst filterERC20 = (tokenAmount: TransactionHistoryTokenAmount) => {\n return tokenAmount.tokenData.tokenType === TokenType.ERC20;\n};\n\nconst filterNFT = (tokenAmount: TransactionHistoryTokenAmount) => {\n switch (tokenAmount.tokenData.tokenType) {\n case TokenType.ERC20:\n return false;\n case TokenType.ERC721:\n case TokenType.ERC1155:\n return tokenAmount.amount > BigInt(0);\n }\n};\n\nconst receiveERC20AmountsHaveEncryptFee = (\n receiveERC20Amounts: DopHistoryReceiveERC20Amount[],\n): boolean => {\n return receiveERC20Amounts.find(amount => amount.encryptFee) != null;\n};\n\nexport const categoryForTransactionHistoryItem = (\n historyItem: TransactionHistoryItem,\n): TransactionHistoryItemCategory => {\n const hasTransferNFTs = historyItem.transferNFTAmounts.length > 0;\n const hasReceiveNFTs = historyItem.receiveNFTAmounts.length > 0;\n const hasDecryptNFTs = historyItem.decryptNFTAmounts.length > 0;\n if (hasTransferNFTs || hasReceiveNFTs || hasDecryptNFTs) {\n // Some kind of NFT Transfer. Unhandled case.\n return TransactionHistoryItemCategory.Unknown;\n }\n\n const hasTransferERC20s = historyItem.transferERC20Amounts.length > 0;\n const hasReceiveERC20s = historyItem.receiveERC20Amounts.length > 0;\n const hasDecryptERC20s = historyItem.decryptERC20Amounts.length > 0;\n\n if (hasTransferERC20s && !hasReceiveERC20s && !hasDecryptERC20s) {\n // Only transfer erc20s.\n return TransactionHistoryItemCategory.TransferSendERC20s;\n }\n\n if (!hasTransferERC20s && hasReceiveERC20s && !hasDecryptERC20s) {\n // Only receive erc20s.\n const hasEncryptFee = receiveERC20AmountsHaveEncryptFee(\n historyItem.receiveERC20Amounts,\n );\n if (hasEncryptFee) {\n // Note: Encrypt fees were added to contract events in Mar 2023.\n // Prior encrypts will show as TransferReceiveERC20s without fees.\n return TransactionHistoryItemCategory.EncryptERC20s;\n }\n return TransactionHistoryItemCategory.TransferReceiveERC20s;\n }\n\n if (!hasTransferERC20s && !hasReceiveERC20s && hasDecryptERC20s) {\n // Only decrypt erc20s.\n return TransactionHistoryItemCategory.DecryptERC20s;\n }\n\n return TransactionHistoryItemCategory.Unknown;\n};\n\nconst serializeTransactionHistory = (\n transactionHistory: TransactionHistoryEntry[],\n): TransactionHistoryItem[] => {\n const historyItemsUncategorized: TransactionHistoryItem[] =\n transactionHistory.map(historyEntry => ({\n txidVersion: historyEntry.txidVersion,\n txid: ByteUtils.formatToByteLength(historyEntry.txid, ByteLength.UINT_256, true),\n blockNumber: historyEntry.blockNumber,\n timestamp: historyEntry.timestamp,\n transferERC20Amounts: historyEntry.transferTokenAmounts\n .filter(filterERC20)\n .map(transactionHistoryTransferTokenAmountToDopERC20Amount),\n broadcasterFeeERC20Amount: undefined,\n changeERC20Amounts: historyEntry.changeTokenAmounts\n .filter(filterERC20)\n .map(transactionHistoryTokenAmountToDopERC20Amount),\n receiveERC20Amounts: historyEntry.receiveTokenAmounts\n .filter(filterERC20)\n .map(transactionHistoryReceiveTokenAmountToDopERC20Amount),\n decryptERC20Amounts: historyEntry.decryptTokenAmounts\n .filter(filterERC20)\n .map(transactionHistoryDecryptTokenAmountToDopERC20Amount),\n receiveNFTAmounts: historyEntry.receiveTokenAmounts\n .filter(filterNFT)\n .map(transactionHistoryReceiveNFTToDopNFTAmount),\n transferNFTAmounts: historyEntry.transferTokenAmounts\n .filter(filterNFT)\n .map(transactionHistoryTransferNFTToDopNFTAmount),\n decryptNFTAmounts: historyEntry.decryptTokenAmounts\n .filter(filterNFT)\n .map(transactionHistoryDecryptNFTToDopNFTAmount),\n version: historyEntry.version,\n category: TransactionHistoryItemCategory.Unknown,\n }));\n\n // Add category for items based on token types.\n return historyItemsUncategorized.map(historyItem => ({\n ...historyItem,\n category: categoryForTransactionHistoryItem(historyItem),\n }));\n};\n\nexport const getWalletTransactionHistory = async (\n chain: Chain,\n dopWalletID: string,\n startingBlock: Optional<number>,\n): Promise<TransactionHistoryItem[]> => {\n try {\n const wallet = walletForID(dopWalletID);\n const transactionHistory = await wallet.getTransactionHistory(\n chain,\n startingBlock,\n );\n return serializeTransactionHistory(transactionHistory);\n } catch (err) {\n reportAndSanitizeError(getWalletTransactionHistory.name, err);\n throw new Error('Could not load DOP wallet transaction history.', {\n cause: err,\n });\n }\n};"]}
1
+ {"version":3,"file":"transaction-history.js","sourceRoot":"","sources":["../../../../src/services/dop/history/transaction-history.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n TransactionHistoryTransferTokenAmount,\n TransactionHistoryTokenAmount,\n TransactionHistoryEntry,\n Chain,\n TransactionHistoryReceiveTokenAmount,\n TokenType,\n ByteLength,\n ByteUtils,\n TransactionHistoryDecryptTokenAmount,\n WalletBalanceBucket,\n} from 'dop-engine-v5';\nimport {\n TransactionHistoryItem,\n DopHistoryERC20Amount,\n DopHistorySendERC20Amount,\n DopHistoryReceiveERC20Amount,\n DopHistorySendNFTAmount,\n DopHistoryNFTAmount,\n DopHistoryReceiveNFTAmount,\n DopHistoryDecryptERC20Amount,\n DopHistoryDecryptNFTAmount,\n TransactionHistoryItemCategory,\n DopWalletBalanceBucket,\n} from 'dop-sharedmodels-v5';\nimport { parseDopTokenAddress } from '../util/bytes';\nimport { reportAndSanitizeError } from '../../../utils/error';\nimport { walletForID } from '../wallets/wallets';\n\nconst getDopBalanceBucketFromEngineBalanceBucket = (\n balanceBucket: WalletBalanceBucket,\n): DopWalletBalanceBucket => {\n switch (balanceBucket) {\n case WalletBalanceBucket.Spendable:\n return DopWalletBalanceBucket.Spendable;\n case WalletBalanceBucket.EncryptBlocked:\n return DopWalletBalanceBucket.EncryptBlocked;\n case WalletBalanceBucket.EncryptPending:\n return DopWalletBalanceBucket.EncryptPending;\n case WalletBalanceBucket.ProofSubmitted:\n return DopWalletBalanceBucket.ProofSubmitted;\n case WalletBalanceBucket.Spent:\n return DopWalletBalanceBucket.Spent;\n default:\n return DopWalletBalanceBucket.Spendable;\n }\n throw new Error('Unrecognized WalletBalanceBucket');\n};\n\nconst transactionHistoryReceiveTokenAmountToDopERC20Amount = (\n transactionHistoryReceiveTokenAmount: TransactionHistoryReceiveTokenAmount,\n): DopHistoryReceiveERC20Amount => {\n return {\n ...transactionHistoryTokenAmountToDopERC20Amount(\n transactionHistoryReceiveTokenAmount,\n ),\n memoText: transactionHistoryReceiveTokenAmount.memoText,\n senderAddress: transactionHistoryReceiveTokenAmount.senderAddress,\n encryptFee: transactionHistoryReceiveTokenAmount.encryptFee,\n balanceBucket: getDopBalanceBucketFromEngineBalanceBucket(\n transactionHistoryReceiveTokenAmount.balanceBucket,\n ),\n };\n};\n\nconst transactionHistoryReceiveNFTToDopNFTAmount = (\n transactionHistoryReceiveTokenAmount: TransactionHistoryReceiveTokenAmount,\n): DopHistoryReceiveNFTAmount => {\n return {\n ...transactionHistoryNFTToDopNFTAmount(\n transactionHistoryReceiveTokenAmount,\n ),\n memoText: transactionHistoryReceiveTokenAmount.memoText,\n senderAddress: transactionHistoryReceiveTokenAmount.senderAddress,\n encryptFee: transactionHistoryReceiveTokenAmount.encryptFee,\n balanceBucket: getDopBalanceBucketFromEngineBalanceBucket(\n transactionHistoryReceiveTokenAmount.balanceBucket,\n ),\n };\n};\n\nconst transactionHistoryTransferTokenAmountToDopERC20Amount = (\n transactionHistoryTokenAmount: TransactionHistoryTransferTokenAmount,\n): DopHistorySendERC20Amount => {\n return {\n ...transactionHistoryTokenAmountToDopERC20Amount(\n transactionHistoryTokenAmount,\n ),\n recipientAddress: transactionHistoryTokenAmount.recipientAddress,\n memoText: transactionHistoryTokenAmount.memoText,\n walletSource: transactionHistoryTokenAmount.walletSource,\n };\n};\n\nconst transactionHistoryDecryptTokenAmountToDopERC20Amount = (\n transactionHistoryDecryptTokenAmount: TransactionHistoryDecryptTokenAmount,\n): DopHistoryDecryptERC20Amount => {\n return {\n ...transactionHistoryTransferTokenAmountToDopERC20Amount(\n transactionHistoryDecryptTokenAmount,\n ),\n decryptFee: transactionHistoryDecryptTokenAmount.decryptFee,\n };\n};\n\nconst transactionHistoryTransferNFTToDopNFTAmount = (\n transactionHistoryNFT: TransactionHistoryTransferTokenAmount,\n): DopHistorySendNFTAmount => {\n return {\n ...transactionHistoryNFTToDopNFTAmount(transactionHistoryNFT),\n memoText: transactionHistoryNFT.memoText,\n walletSource: transactionHistoryNFT.walletSource,\n recipientAddress: transactionHistoryNFT.recipientAddress,\n };\n};\n\nconst transactionHistoryDecryptNFTToDopNFTAmount = (\n transactionHistoryNFT: TransactionHistoryDecryptTokenAmount,\n): DopHistoryDecryptNFTAmount => {\n return {\n ...transactionHistoryTransferNFTToDopNFTAmount(transactionHistoryNFT),\n decryptFee: transactionHistoryNFT.decryptFee,\n };\n};\n\nconst transactionHistoryTokenAmountToDopERC20Amount = (\n transactionHistoryTokenAmount: TransactionHistoryTokenAmount,\n): DopHistoryERC20Amount => {\n return {\n tokenAddress: parseDopTokenAddress(\n transactionHistoryTokenAmount.tokenData.tokenAddress,\n ).toLowerCase(),\n amount: transactionHistoryTokenAmount.amount,\n };\n};\n\nconst transactionHistoryNFTToDopNFTAmount = (\n transactionHistoryNFT: TransactionHistoryTokenAmount,\n): DopHistoryNFTAmount => {\n return {\n nftAddress: parseDopTokenAddress(\n transactionHistoryNFT.tokenData.tokenAddress,\n ).toLowerCase(),\n nftTokenType: transactionHistoryNFT.tokenData.tokenType as 1 | 2,\n tokenSubID: transactionHistoryNFT.tokenData.tokenSubID,\n amount: transactionHistoryNFT.amount,\n };\n};\n\nconst filterERC20 = (tokenAmount: TransactionHistoryTokenAmount) => {\n return tokenAmount.tokenData.tokenType === TokenType.ERC20;\n};\n\nconst filterNFT = (tokenAmount: TransactionHistoryTokenAmount) => {\n switch (tokenAmount.tokenData.tokenType) {\n case TokenType.ERC20:\n return false;\n case TokenType.ERC721:\n case TokenType.ERC1155:\n return tokenAmount.amount > BigInt(0);\n }\n};\n\nconst receiveERC20AmountsHaveEncryptFee = (\n receiveERC20Amounts: DopHistoryReceiveERC20Amount[],\n): boolean => {\n return receiveERC20Amounts.find(amount => amount.encryptFee) != null;\n};\n\nexport const categoryForTransactionHistoryItem = (\n historyItem: TransactionHistoryItem,\n): TransactionHistoryItemCategory => {\n const hasTransferNFTs = historyItem.transferNFTAmounts.length > 0;\n const hasReceiveNFTs = historyItem.receiveNFTAmounts.length > 0;\n const hasDecryptNFTs = historyItem.decryptNFTAmounts.length > 0;\n if (hasTransferNFTs || hasReceiveNFTs || hasDecryptNFTs) {\n // Some kind of NFT Transfer. Unhandled case.\n return TransactionHistoryItemCategory.Unknown;\n }\n\n const hasTransferERC20s = historyItem.transferERC20Amounts.length > 0;\n const hasReceiveERC20s = historyItem.receiveERC20Amounts.length > 0;\n const hasDecryptERC20s = historyItem.decryptERC20Amounts.length > 0;\n\n if (hasTransferERC20s && !hasReceiveERC20s && !hasDecryptERC20s) {\n // Only transfer erc20s.\n return TransactionHistoryItemCategory.TransferSendERC20s;\n }\n\n if (!hasTransferERC20s && hasReceiveERC20s && !hasDecryptERC20s) {\n // Only receive erc20s.\n const hasEncryptFee = receiveERC20AmountsHaveEncryptFee(\n historyItem.receiveERC20Amounts,\n );\n if (hasEncryptFee) {\n // Note: Encrypt fees were added to contract events in Mar 2023.\n // Prior encrypts will show as TransferReceiveERC20s without fees.\n return TransactionHistoryItemCategory.EncryptERC20s;\n }\n return TransactionHistoryItemCategory.TransferReceiveERC20s;\n }\n\n if (!hasTransferERC20s && !hasReceiveERC20s && hasDecryptERC20s) {\n // Only decrypt erc20s.\n return TransactionHistoryItemCategory.DecryptERC20s;\n }\n\n return TransactionHistoryItemCategory.Unknown;\n};\n\nconst serializeTransactionHistory = (\n transactionHistory: TransactionHistoryEntry[],\n): TransactionHistoryItem[] => {\n const historyItemsUncategorized: TransactionHistoryItem[] =\n transactionHistory.map(historyEntry => ({\n txidVersion: historyEntry.txidVersion,\n txid: ByteUtils.formatToByteLength(historyEntry.txid, ByteLength.UINT_256, true),\n blockNumber: historyEntry.blockNumber,\n timestamp: historyEntry.timestamp,\n transferERC20Amounts: historyEntry.transferTokenAmounts\n .filter(filterERC20)\n .map(transactionHistoryTransferTokenAmountToDopERC20Amount),\n broadcasterFeeERC20Amount: undefined,\n changeERC20Amounts: historyEntry.changeTokenAmounts\n .filter(filterERC20)\n .map(transactionHistoryTokenAmountToDopERC20Amount),\n receiveERC20Amounts: historyEntry.receiveTokenAmounts\n .filter(filterERC20)\n .map(transactionHistoryReceiveTokenAmountToDopERC20Amount),\n decryptERC20Amounts: historyEntry.decryptTokenAmounts\n .filter(filterERC20)\n .map(transactionHistoryDecryptTokenAmountToDopERC20Amount),\n receiveNFTAmounts: historyEntry.receiveTokenAmounts\n .filter(filterNFT)\n .map(transactionHistoryReceiveNFTToDopNFTAmount),\n transferNFTAmounts: historyEntry.transferTokenAmounts\n .filter(filterNFT)\n .map(transactionHistoryTransferNFTToDopNFTAmount),\n decryptNFTAmounts: historyEntry.decryptTokenAmounts\n .filter(filterNFT)\n .map(transactionHistoryDecryptNFTToDopNFTAmount),\n version: historyEntry.version,\n category: TransactionHistoryItemCategory.Unknown,\n }));\n\n // Add category for items based on token types.\n return historyItemsUncategorized.map(historyItem => ({\n ...historyItem,\n category: categoryForTransactionHistoryItem(historyItem),\n }));\n};\n\nexport const getWalletTransactionHistory = async (\n chain: Chain,\n dopWalletID: string,\n startingBlock: Optional<number>,\n): Promise<TransactionHistoryItem[]> => {\n try {\n const wallet = walletForID(dopWalletID);\n const transactionHistory = await wallet.getTransactionHistory(\n chain,\n startingBlock,\n );\n return serializeTransactionHistory(transactionHistory);\n } catch (err) {\n reportAndSanitizeError(getWalletTransactionHistory.name, err);\n throw new Error('Could not load DOP wallet transaction history.', {\n cause: err,\n });\n }\n};"]}
@@ -1,3 +1,3 @@
1
- import { Network, TXIDVersion } from 'dop-sharedmodels-v3';
1
+ import { Network, TXIDVersion } from 'dop-sharedmodels-v5';
2
2
  import { ContractTransaction } from 'ethers';
3
3
  export declare const extractFirstNoteERC20AmountMapFromTransactionRequest: (dopWalletID: string, txidVersion: TXIDVersion, network: Network, transactionRequest: ContractTransaction, useRelayAdapt: boolean) => Promise<MapType<bigint>>;
@@ -1 +1 @@
1
- {"version":3,"file":"extract-transaction-data.js","sourceRoot":"","sources":["../../../../src/services/dop/process/extract-transaction-data.ts"],"names":[],"mappings":";;;AAAA,iDAA2D;AAG3D,gDAAiD;AAE1C,MAAM,oDAAoD,GAAG,CAClE,WAAmB,EACnB,WAAwB,EACxB,OAAgB,EAChB,kBAAuC,EACvC,aAAsB,EACI,EAAE;IAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAE5B,IAAI,eAAuB,CAAC;IAC5B,IAAI,aAAa,EAAE;QACjB,eAAe,GAAG,0CAA0B,CAAC,qBAAqB,CAChE,WAAW,EACX,KAAK,CACN,CAAC,OAAO,CAAC;KACX;SAAM;QACL,eAAe,GAAG,0CAA0B,CAAC,WAAW,CACtD,WAAW,EACX,KAAK,CACN,CAAC,OAAO,CAAC;KACX;IAED,MAAM,MAAM,GAAG,IAAA,qBAAW,EAAC,WAAW,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC,8BAA8B,CAC1C,WAAW,EACX,KAAK,EACL,kBAAkB,EAClB,aAAa,EACb,eAAe,CAChB,CAAC;AACJ,CAAC,CAAC;AA9BW,QAAA,oDAAoD,wDA8B/D","sourcesContent":["import { DopVersionedSmartContracts } from 'dop-engine-v3';\nimport { Network, TXIDVersion } from 'dop-sharedmodels-v3';\nimport { ContractTransaction } from 'ethers';\nimport { walletForID } from '../wallets/wallets';\n\nexport const extractFirstNoteERC20AmountMapFromTransactionRequest = (\n dopWalletID: string,\n txidVersion: TXIDVersion,\n network: Network,\n transactionRequest: ContractTransaction,\n useRelayAdapt: boolean,\n): Promise<MapType<bigint>> => {\n const chain = network.chain;\n\n let contractAddress: string;\n if (useRelayAdapt) {\n contractAddress = DopVersionedSmartContracts.getRelayAdaptContract(\n txidVersion,\n chain,\n ).address;\n } else {\n contractAddress = DopVersionedSmartContracts.getVerifier(\n txidVersion,\n chain,\n ).address;\n }\n\n const wallet = walletForID(dopWalletID);\n return wallet.extractFirstNoteERC20AmountMap(\n txidVersion,\n chain,\n transactionRequest,\n useRelayAdapt,\n contractAddress,\n );\n};\n"]}
1
+ {"version":3,"file":"extract-transaction-data.js","sourceRoot":"","sources":["../../../../src/services/dop/process/extract-transaction-data.ts"],"names":[],"mappings":";;;AAAA,iDAA2D;AAG3D,gDAAiD;AAE1C,MAAM,oDAAoD,GAAG,CAClE,WAAmB,EACnB,WAAwB,EACxB,OAAgB,EAChB,kBAAuC,EACvC,aAAsB,EACI,EAAE;IAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAE5B,IAAI,eAAuB,CAAC;IAC5B,IAAI,aAAa,EAAE;QACjB,eAAe,GAAG,0CAA0B,CAAC,qBAAqB,CAChE,WAAW,EACX,KAAK,CACN,CAAC,OAAO,CAAC;KACX;SAAM;QACL,eAAe,GAAG,0CAA0B,CAAC,WAAW,CACtD,WAAW,EACX,KAAK,CACN,CAAC,OAAO,CAAC;KACX;IAED,MAAM,MAAM,GAAG,IAAA,qBAAW,EAAC,WAAW,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC,8BAA8B,CAC1C,WAAW,EACX,KAAK,EACL,kBAAkB,EAClB,aAAa,EACb,eAAe,CAChB,CAAC;AACJ,CAAC,CAAC;AA9BW,QAAA,oDAAoD,wDA8B/D","sourcesContent":["import { DopVersionedSmartContracts } from 'dop-engine-v5';\nimport { Network, TXIDVersion } from 'dop-sharedmodels-v5';\nimport { ContractTransaction } from 'ethers';\nimport { walletForID } from '../wallets/wallets';\n\nexport const extractFirstNoteERC20AmountMapFromTransactionRequest = (\n dopWalletID: string,\n txidVersion: TXIDVersion,\n network: Network,\n transactionRequest: ContractTransaction,\n useRelayAdapt: boolean,\n): Promise<MapType<bigint>> => {\n const chain = network.chain;\n\n let contractAddress: string;\n if (useRelayAdapt) {\n contractAddress = DopVersionedSmartContracts.getRelayAdaptContract(\n txidVersion,\n chain,\n ).address;\n } else {\n contractAddress = DopVersionedSmartContracts.getVerifier(\n txidVersion,\n chain,\n ).address;\n }\n\n const wallet = walletForID(dopWalletID);\n return wallet.extractFirstNoteERC20AmountMap(\n txidVersion,\n chain,\n transactionRequest,\n useRelayAdapt,\n contractAddress,\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-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
+ {"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,4 +1,4 @@
1
- import { Nullifier, DecryptStoredEvent, CommitmentEvent } from 'dop-engine-v3';
1
+ import { Nullifier, DecryptStoredEvent, CommitmentEvent } from 'dop-engine-v5';
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-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"]}
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,2 +1,2 @@
1
- import { AccumulatedEvents, Chain } from 'dop-engine-v3';
1
+ import { AccumulatedEvents, Chain } from 'dop-engine-v5';
2
2
  export declare const quickSyncEventsGraphV2: (chain: Chain, startingBlock: number) => Promise<AccumulatedEvents>;
@@ -1 +1 @@
1
- {"version":3,"file":"quick-sync-events-graph-v2.js","sourceRoot":"","sources":["../../../../../src/services/dop/quick-sync/V2/quick-sync-events-graph-v2.ts"],"names":[],"mappings":"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","sourcesContent":["import { AccumulatedEvents, Chain } from 'dop-engine-v3';\nimport {\n NetworkName,\n delay,\n isDefined,\n networkForChain,\n removeUndefineds,\n} from 'dop-sharedmodels-v3';\nimport { getMeshOptions, getSdk } from './graphql';\nimport { MeshInstance, getMesh } from '@graphql-mesh/runtime';\nimport {\n GraphCommitmentV2,\n GraphCommitmentBatchV2,\n formatGraphCommitmentEventsV2,\n formatGraphNullifierEventsV2,\n formatGraphDecryptEventsV2,\n} from './graph-type-formatters-v2';\nimport { removeDuplicatesByID } from '../../util/graph-util';\nimport { EMPTY_EVENTS, autoPaginatingQuery } from '../graph-query';\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.EthereumSepolia:\n return 'sepolia';\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.Xlayer:\n return 'xlayer';\n case NetworkName.PolygonAmoy:\n case NetworkName.ArbitrumGoerli_DEPRECATED:\n case NetworkName.EthereumGoerli_DEPRECATED:\n case NetworkName.EthereumRopsten_DEPRECATED:\n case NetworkName.PolygonMumbai_DEPRECATED:\n case NetworkName.Hardhat:\n default:\n throw new Error('No Graph API hosted service for this network');\n }\n};\n\nconst isSupportedByNetwork = (networkName: NetworkName) => {\n try {\n sourceNameForNetwork(networkName);\n return true;\n } catch {\n return false;\n }\n};\n\nexport const quickSyncEventsGraphV2 = async (\n chain: Chain,\n startingBlock: number,\n): Promise<AccumulatedEvents> => {\n const network = networkForChain(chain);\n if (!network || !isSupportedByNetwork(network.name)) {\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 = await autoPaginatingQuery(\n async (blockNumber: string) =>\n (\n await sdk.Nullifiers({\n blockNumber,\n })\n ).nullifiers,\n startingBlock.toString(),\n MAX_QUERY_RESULTS,\n );\n\n await delay(100);\n const decrypts = await autoPaginatingQuery(\n async (blockNumber: string) =>\n (\n await sdk.Decrypts({\n blockNumber,\n })\n ).decrypts,\n startingBlock.toString(),\n MAX_QUERY_RESULTS,\n );\n \n\n await delay(100);\n const commitments = await autoPaginatingQuery(\n async (blockNumber: string) =>\n (\n await sdk.Commitments({\n blockNumber,\n })\n ).commitments,\n startingBlock.toString(),\n MAX_QUERY_RESULTS,\n );\n\n const filteredNullifiers = removeDuplicatesByID(nullifiers);\n const filteredDecrypts = removeDuplicatesByID(decrypts);\n const filteredCommitments = removeDuplicatesByID(commitments);\n const graphCommitmentBatches =\n createGraphCommitmentBatches(filteredCommitments);\n\n graphCommitmentBatches.sort(sortByTreeNumberAndStartPosition);\n\n const nullifierEvents = formatGraphNullifierEventsV2(filteredNullifiers);\n const decryptEvents = formatGraphDecryptEventsV2(filteredDecrypts);\n const commitmentEvents = formatGraphCommitmentEventsV2(\n graphCommitmentBatches,\n );\n\n return { nullifierEvents, decryptEvents, commitmentEvents };\n};\n\nconst createGraphCommitmentBatches = (\n flattenedCommitments: GraphCommitmentV2[],\n): GraphCommitmentBatchV2[] => {\n const graphCommitmentMap: MapType<GraphCommitmentBatchV2> = {};\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 sortByTreeNumberAndStartPosition = (\n a: GraphCommitmentBatchV2,\n b: GraphCommitmentBatchV2,\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 meshes[networkName] = undefined;\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-events-graph-v2.js","sourceRoot":"","sources":["../../../../../src/services/dop/quick-sync/V2/quick-sync-events-graph-v2.ts"],"names":[],"mappings":"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","sourcesContent":["import { AccumulatedEvents, Chain } from 'dop-engine-v5';\nimport {\n NetworkName,\n delay,\n isDefined,\n networkForChain,\n removeUndefineds,\n} from 'dop-sharedmodels-v5';\nimport { getMeshOptions, getSdk } from './graphql';\nimport { MeshInstance, getMesh } from '@graphql-mesh/runtime';\nimport {\n GraphCommitmentV2,\n GraphCommitmentBatchV2,\n formatGraphCommitmentEventsV2,\n formatGraphNullifierEventsV2,\n formatGraphDecryptEventsV2,\n} from './graph-type-formatters-v2';\nimport { removeDuplicatesByID } from '../../util/graph-util';\nimport { EMPTY_EVENTS, autoPaginatingQuery } from '../graph-query';\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.EthereumSepolia:\n return 'sepolia';\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.Xlayer:\n return 'xlayer';\n case NetworkName.PolygonAmoy:\n case NetworkName.ArbitrumGoerli_DEPRECATED:\n case NetworkName.EthereumGoerli_DEPRECATED:\n case NetworkName.EthereumRopsten_DEPRECATED:\n case NetworkName.PolygonMumbai_DEPRECATED:\n case NetworkName.Hardhat:\n default:\n throw new Error('No Graph API hosted service for this network');\n }\n};\n\nconst isSupportedByNetwork = (networkName: NetworkName) => {\n try {\n sourceNameForNetwork(networkName);\n return true;\n } catch {\n return false;\n }\n};\n\nexport const quickSyncEventsGraphV2 = async (\n chain: Chain,\n startingBlock: number,\n): Promise<AccumulatedEvents> => {\n const network = networkForChain(chain);\n if (!network || !isSupportedByNetwork(network.name)) {\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 = await autoPaginatingQuery(\n async (blockNumber: string) =>\n (\n await sdk.Nullifiers({\n blockNumber,\n })\n ).nullifiers,\n startingBlock.toString(),\n MAX_QUERY_RESULTS,\n );\n\n await delay(100);\n const decrypts = await autoPaginatingQuery(\n async (blockNumber: string) =>\n (\n await sdk.Decrypts({\n blockNumber,\n })\n ).decrypts,\n startingBlock.toString(),\n MAX_QUERY_RESULTS,\n );\n \n\n await delay(100);\n const commitments = await autoPaginatingQuery(\n async (blockNumber: string) =>\n (\n await sdk.Commitments({\n blockNumber,\n })\n ).commitments,\n startingBlock.toString(),\n MAX_QUERY_RESULTS,\n );\n\n const filteredNullifiers = removeDuplicatesByID(nullifiers);\n const filteredDecrypts = removeDuplicatesByID(decrypts);\n const filteredCommitments = removeDuplicatesByID(commitments);\n const graphCommitmentBatches =\n createGraphCommitmentBatches(filteredCommitments);\n\n graphCommitmentBatches.sort(sortByTreeNumberAndStartPosition);\n\n const nullifierEvents = formatGraphNullifierEventsV2(filteredNullifiers);\n const decryptEvents = formatGraphDecryptEventsV2(filteredDecrypts);\n const commitmentEvents = formatGraphCommitmentEventsV2(\n graphCommitmentBatches,\n );\n\n return { nullifierEvents, decryptEvents, commitmentEvents };\n};\n\nconst createGraphCommitmentBatches = (\n flattenedCommitments: GraphCommitmentV2[],\n): GraphCommitmentBatchV2[] => {\n const graphCommitmentMap: MapType<GraphCommitmentBatchV2> = {};\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 sortByTreeNumberAndStartPosition = (\n a: GraphCommitmentBatchV2,\n b: GraphCommitmentBatchV2,\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 meshes[networkName] = undefined;\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 +1 @@
1
- {"version":3,"file":"quick-sync-events-graph-v3.test.js","sourceRoot":"","sources":["../../../../../../src/services/dop/quick-sync/V3/__tests__/quick-sync-events-graph-v3.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { 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.V3_PoseidonMerkle;\n\nconst POLYGON_MUMBAI_CHAIN: Chain =\n NETWORK_CONFIG[NetworkName.PolygonMumbai_DEPRECATED].chain;\nconst EXPECTED_COMMITMENT_GROUP_EVENTS_POLYGON_MUMBAI = 1;\nconst EXPECTED_NULLIFIER_EVENTS_POLYGON_MUMBAI = 1;\nconst EXPECTED_DECRYPT_EVENTS_POLYGON_MUMBAI = 1;\nconst EXPECTED_DOP_TRANSACTION_EVENTS_POLYGON_MUMBAI = 1;\n\nconst assertContiguousCommitmentEvents = (\n commitmentEvents: CommitmentEvent[],\n shouldThrow: boolean,\n) => {\n let nextTreeNumber = commitmentEvents[0].treeNumber;\n let nextStartPosition = commitmentEvents[0].startPosition;\n for (const event of commitmentEvents) {\n if (\n event.treeNumber !== nextTreeNumber ||\n event.startPosition !== nextStartPosition\n ) {\n if (shouldThrow) {\n throw new Error(\n `Could not find treeNumber ${nextTreeNumber}, startPosition ${nextStartPosition}`,\n );\n } else {\n // eslint-disable-next-line no-console\n console.log(\n `Could not find treeNumber ${nextTreeNumber}, startPosition ${nextStartPosition}`,\n );\n nextStartPosition = event.startPosition + event.commitments.length;\n }\n } else {\n nextStartPosition += event.commitments.length;\n }\n\n // TODO: This logic may need an update if the tree is less than 65536 commitments.\n if (nextStartPosition >= 65536) {\n // Roll over to next tree.\n nextTreeNumber += 1;\n nextStartPosition = 0;\n }\n }\n};\n\ndescribe('quick-sync-events-graph-v3', () => {\n it('[V3] Should make sure Graph V3 query has no data gaps in commitments - Polygon Mumbai', async function run() {\n if (isV2Test()) {\n this.skip();\n return;\n }\n\n const eventLog = await quickSyncEventsGraph(\n txidVersion,\n POLYGON_MUMBAI_CHAIN,\n 0,\n );\n expect(eventLog).to.be.an('object');\n expect(eventLog.commitmentEvents).to.be.an('array');\n expect(eventLog.commitmentEvents.length).to.be.at.least(\n EXPECTED_COMMITMENT_GROUP_EVENTS_POLYGON_MUMBAI,\n );\n expect(eventLog.nullifierEvents.length).to.be.at.least(\n EXPECTED_NULLIFIER_EVENTS_POLYGON_MUMBAI,\n );\n expect(eventLog.decryptEvents.length).to.be.at.least(\n EXPECTED_DECRYPT_EVENTS_POLYGON_MUMBAI,\n );\n expect(eventLog.dopTransactionEvents?.length).to.be.at.least(\n EXPECTED_DECRYPT_EVENTS_POLYGON_MUMBAI,\n );\n\n const shouldThrow = true;\n assertContiguousCommitmentEvents(eventLog.commitmentEvents, shouldThrow);\n }).timeout(45_000);\n});\n"]}
1
+ {"version":3,"file":"quick-sync-events-graph-v3.test.js","sourceRoot":"","sources":["../../../../../../src/services/dop/quick-sync/V3/__tests__/quick-sync-events-graph-v3.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { 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.V3_PoseidonMerkle;\n\nconst POLYGON_MUMBAI_CHAIN: Chain =\n NETWORK_CONFIG[NetworkName.PolygonMumbai_DEPRECATED].chain;\nconst EXPECTED_COMMITMENT_GROUP_EVENTS_POLYGON_MUMBAI = 1;\nconst EXPECTED_NULLIFIER_EVENTS_POLYGON_MUMBAI = 1;\nconst EXPECTED_DECRYPT_EVENTS_POLYGON_MUMBAI = 1;\nconst EXPECTED_DOP_TRANSACTION_EVENTS_POLYGON_MUMBAI = 1;\n\nconst assertContiguousCommitmentEvents = (\n commitmentEvents: CommitmentEvent[],\n shouldThrow: boolean,\n) => {\n let nextTreeNumber = commitmentEvents[0].treeNumber;\n let nextStartPosition = commitmentEvents[0].startPosition;\n for (const event of commitmentEvents) {\n if (\n event.treeNumber !== nextTreeNumber ||\n event.startPosition !== nextStartPosition\n ) {\n if (shouldThrow) {\n throw new Error(\n `Could not find treeNumber ${nextTreeNumber}, startPosition ${nextStartPosition}`,\n );\n } else {\n // eslint-disable-next-line no-console\n console.log(\n `Could not find treeNumber ${nextTreeNumber}, startPosition ${nextStartPosition}`,\n );\n nextStartPosition = event.startPosition + event.commitments.length;\n }\n } else {\n nextStartPosition += event.commitments.length;\n }\n\n // TODO: This logic may need an update if the tree is less than 65536 commitments.\n if (nextStartPosition >= 65536) {\n // Roll over to next tree.\n nextTreeNumber += 1;\n nextStartPosition = 0;\n }\n }\n};\n\ndescribe('quick-sync-events-graph-v3', () => {\n it('[V3] Should make sure Graph V3 query has no data gaps in commitments - Polygon Mumbai', async function run() {\n if (isV2Test()) {\n this.skip();\n return;\n }\n\n const eventLog = await quickSyncEventsGraph(\n txidVersion,\n POLYGON_MUMBAI_CHAIN,\n 0,\n );\n expect(eventLog).to.be.an('object');\n expect(eventLog.commitmentEvents).to.be.an('array');\n expect(eventLog.commitmentEvents.length).to.be.at.least(\n EXPECTED_COMMITMENT_GROUP_EVENTS_POLYGON_MUMBAI,\n );\n expect(eventLog.nullifierEvents.length).to.be.at.least(\n EXPECTED_NULLIFIER_EVENTS_POLYGON_MUMBAI,\n );\n expect(eventLog.decryptEvents.length).to.be.at.least(\n EXPECTED_DECRYPT_EVENTS_POLYGON_MUMBAI,\n );\n expect(eventLog.dopTransactionEvents?.length).to.be.at.least(\n EXPECTED_DECRYPT_EVENTS_POLYGON_MUMBAI,\n );\n\n const shouldThrow = true;\n assertContiguousCommitmentEvents(eventLog.commitmentEvents, shouldThrow);\n }).timeout(45_000);\n});\n"]}
@@ -1,4 +1,4 @@
1
- import { Nullifier, DecryptStoredEvent, CommitmentEvent } from 'dop-engine-v3';
1
+ import { Nullifier, DecryptStoredEvent, CommitmentEvent } from 'dop-engine-v5';
2
2
  import { Nullifier as GraphNullifierV3, Decrypt as GraphDecryptV3, EncryptCommitment as GraphEncryptCommitmentV3, TransactCommitment as GraphTransactCommitmentV3, DopTransaction as GraphDopTransactionV3 } from './graphql';
3
3
  export type GraphCommitmentV3 = GraphEncryptCommitmentV3 | GraphTransactCommitmentV3;
4
4
  export type DopTxidMapV3 = MapType<string[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"graph-type-formatters-v3.js","sourceRoot":"","sources":["../../../../../src/services/dop/quick-sync/V3/graph-type-formatters-v3.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Nullifier,\n DecryptStoredEvent,\n CommitmentEvent,\n V3Events,\n getNoteHash,\n serializeTokenData,\n ByteLength,\n ByteUtils,\n} from 'dop-engine-v3';\nimport {\n Nullifier as GraphNullifierV3,\n Decrypt as GraphDecryptV3,\n EncryptCommitment as GraphEncryptCommitmentV3,\n TransactCommitment as GraphTransactCommitmentV3,\n DopTransaction as GraphDopTransactionV3,\n} from './graphql';\nimport {\n formatTo32Bytes,\n graphTokenTypeToEngineTokenType,\n} from '../shared-formatters';\n\nexport type GraphCommitmentV3 =\n | GraphEncryptCommitmentV3\n | GraphTransactCommitmentV3;\n\nexport type DopTxidMapV3 = MapType<string[]>;\n\nexport const formatGraphDopTransactionEventsV3 = (\n dopTransactions: GraphDopTransactionV3[],\n) => {\n return dopTransactions.map(dopTransaction => {\n return V3Events.formatDopTransactionEvent(\n dopTransaction.transactionHash,\n Number(dopTransaction.blockNumber),\n dopTransaction.commitments,\n dopTransaction.nullifiers,\n {\n npk: dopTransaction.decryptToAddress,\n token: {\n tokenType: BigInt(\n graphTokenTypeToEngineTokenType(\n dopTransaction.decryptToken.tokenType,\n ),\n ),\n tokenAddress: dopTransaction.decryptToken.tokenAddress,\n tokenSubID: BigInt(dopTransaction.decryptToken.tokenSubID),\n },\n value: BigInt(dopTransaction.decryptValue),\n },\n dopTransaction.boundParamsHash,\n Number(dopTransaction.utxoTreeIn),\n Number(dopTransaction.utxoTreeOut),\n Number(dopTransaction.utxoBatchStartPositionOut),\n dopTransaction.verificationHash,\n );\n });\n};\n\nexport const formatGraphNullifierEventsV3 = (\n nullifiers: GraphNullifierV3[],\n): Nullifier[] => {\n return nullifiers.map(nullifier => {\n return {\n txid: formatTo32Bytes(nullifier.transactionHash, false),\n nullifier: formatTo32Bytes(nullifier.nullifier, false),\n treeNumber: nullifier.treeNumber,\n blockNumber: Number(nullifier.blockNumber),\n spentDopTxid: undefined,\n };\n });\n};\n\nconst getDecryptCommitmentHash = (\n npk: string,\n tokenAddress: string,\n tokenType: bigint,\n tokenSubID: bigint,\n value: bigint,\n) => {\n return getNoteHash(\n npk,\n serializeTokenData(tokenAddress, tokenType, tokenSubID.toString()),\n value,\n );\n};\n\nexport const formatGraphDecryptEventsV3 = (\n decrypts: GraphDecryptV3[],\n dopTxidMap: DopTxidMapV3,\n): DecryptStoredEvent[] => {\n return decrypts.map(decrypt => {\n const decryptCommitmentHash = ByteUtils.nToHex(\n getDecryptCommitmentHash(\n decrypt.to,\n decrypt.token.tokenAddress,\n BigInt(graphTokenTypeToEngineTokenType(decrypt.token.tokenType)),\n BigInt(decrypt.token.tokenSubID),\n BigInt(decrypt.value),\n ),\n ByteLength.UINT_256,\n true,\n );\n const dopTxid = getDopTxid(dopTxidMap, [\n decryptCommitmentHash,\n ]);\n return V3Events.formatDecryptEvent(\n decrypt.transactionHash,\n Number(decrypt.blockNumber),\n {\n npk: decrypt.to,\n token: {\n tokenType: BigInt(\n graphTokenTypeToEngineTokenType(decrypt.token.tokenType),\n ),\n tokenAddress: decrypt.token.tokenAddress,\n tokenSubID: BigInt(decrypt.token.tokenSubID),\n },\n value: BigInt(decrypt.value),\n },\n Number(decrypt.transactIndex),\n BigInt(decrypt.fee),\n dopTxid,\n );\n });\n};\n\nexport const formatGraphCommitmentEventsV3 = (\n commitments: GraphCommitmentV3[],\n dopTxidMap: DopTxidMapV3,\n): CommitmentEvent[] => {\n return commitments.map(commitment => {\n return formatGraphCommitmentEventV3(commitment, dopTxidMap);\n });\n};\n\nconst formatGraphCommitmentEventV3 = (\n commitment: GraphCommitmentV3,\n dopTxidMap: DopTxidMapV3,\n): CommitmentEvent => {\n switch (commitment.commitmentType) {\n case 'LegacyGeneratedCommitment':\n case 'LegacyEncryptedCommitment':\n throw new Error('Not possible in V3');\n case 'EncryptCommitment':\n return formatEncryptCommitmentEvent(commitment as GraphEncryptCommitmentV3);\n case 'TransactCommitment': {\n const dopTxid = getDopTxid(dopTxidMap, commitment.hashes);\n return formatTransactCommitmentEvent(\n commitment as GraphTransactCommitmentV3,\n dopTxid,\n );\n }\n }\n};\n\nconst getDopTxid = (\n dopTxidMap: DopTxidMapV3,\n commitments: string[],\n): string => {\n const dopTxids = Object.keys(dopTxidMap);\n for (const dopTxid of dopTxids) {\n const dopTxidCommitments = dopTxidMap[dopTxid];\n if (!dopTxidCommitments) {\n continue;\n }\n const hasAllCommitments = commitments.every(commitment =>\n dopTxidCommitments.includes(commitment),\n );\n if (hasAllCommitments) {\n return dopTxid;\n }\n }\n throw new Error('dopTxid not found including all transact commitments');\n};\n\nconst formatEncryptCommitmentEvent = (\n commitment: GraphEncryptCommitmentV3,\n): CommitmentEvent => {\n return V3Events.formatEncryptEvent(\n commitment.transactionHash,\n Number(commitment.blockNumber),\n commitment.from,\n {\n npk: commitment.preimage.npk,\n token: {\n tokenType: BigInt(\n graphTokenTypeToEngineTokenType(commitment.preimage.token.tokenType),\n ),\n tokenAddress: commitment.preimage.token.tokenAddress,\n tokenSubID: BigInt(commitment.preimage.token.tokenSubID),\n },\n value: BigInt(commitment.preimage.value),\n },\n {\n encryptedBundle: commitment.encryptedBundle as [string, string, string],\n encryptKey: commitment.encryptKey,\n },\n commitment.treeNumber,\n commitment.treePosition,\n BigInt(commitment.fee),\n );\n};\n\nconst formatTransactCommitmentEvent = (\n commitment: GraphTransactCommitmentV3,\n dopTxid: string,\n): CommitmentEvent => {\n return V3Events.formatTransactEvent(\n commitment.transactionHash,\n Number(commitment.blockNumber),\n commitment.hashes,\n commitment.commitmentCiphertexts,\n commitment.treeNumber,\n commitment.batchStartTreePosition,\n commitment.transactIndex,\n commitment.senderCiphertext,\n dopTxid,\n );\n};\n"]}
1
+ {"version":3,"file":"graph-type-formatters-v3.js","sourceRoot":"","sources":["../../../../../src/services/dop/quick-sync/V3/graph-type-formatters-v3.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Nullifier,\n DecryptStoredEvent,\n CommitmentEvent,\n V3Events,\n getNoteHash,\n serializeTokenData,\n ByteLength,\n ByteUtils,\n} from 'dop-engine-v5';\nimport {\n Nullifier as GraphNullifierV3,\n Decrypt as GraphDecryptV3,\n EncryptCommitment as GraphEncryptCommitmentV3,\n TransactCommitment as GraphTransactCommitmentV3,\n DopTransaction as GraphDopTransactionV3,\n} from './graphql';\nimport {\n formatTo32Bytes,\n graphTokenTypeToEngineTokenType,\n} from '../shared-formatters';\n\nexport type GraphCommitmentV3 =\n | GraphEncryptCommitmentV3\n | GraphTransactCommitmentV3;\n\nexport type DopTxidMapV3 = MapType<string[]>;\n\nexport const formatGraphDopTransactionEventsV3 = (\n dopTransactions: GraphDopTransactionV3[],\n) => {\n return dopTransactions.map(dopTransaction => {\n return V3Events.formatDopTransactionEvent(\n dopTransaction.transactionHash,\n Number(dopTransaction.blockNumber),\n dopTransaction.commitments,\n dopTransaction.nullifiers,\n {\n npk: dopTransaction.decryptToAddress,\n token: {\n tokenType: BigInt(\n graphTokenTypeToEngineTokenType(\n dopTransaction.decryptToken.tokenType,\n ),\n ),\n tokenAddress: dopTransaction.decryptToken.tokenAddress,\n tokenSubID: BigInt(dopTransaction.decryptToken.tokenSubID),\n },\n value: BigInt(dopTransaction.decryptValue),\n },\n dopTransaction.boundParamsHash,\n Number(dopTransaction.utxoTreeIn),\n Number(dopTransaction.utxoTreeOut),\n Number(dopTransaction.utxoBatchStartPositionOut),\n dopTransaction.verificationHash,\n );\n });\n};\n\nexport const formatGraphNullifierEventsV3 = (\n nullifiers: GraphNullifierV3[],\n): Nullifier[] => {\n return nullifiers.map(nullifier => {\n return {\n txid: formatTo32Bytes(nullifier.transactionHash, false),\n nullifier: formatTo32Bytes(nullifier.nullifier, false),\n treeNumber: nullifier.treeNumber,\n blockNumber: Number(nullifier.blockNumber),\n spentDopTxid: undefined,\n };\n });\n};\n\nconst getDecryptCommitmentHash = (\n npk: string,\n tokenAddress: string,\n tokenType: bigint,\n tokenSubID: bigint,\n value: bigint,\n) => {\n return getNoteHash(\n npk,\n serializeTokenData(tokenAddress, tokenType, tokenSubID.toString()),\n value,\n );\n};\n\nexport const formatGraphDecryptEventsV3 = (\n decrypts: GraphDecryptV3[],\n dopTxidMap: DopTxidMapV3,\n): DecryptStoredEvent[] => {\n return decrypts.map(decrypt => {\n const decryptCommitmentHash = ByteUtils.nToHex(\n getDecryptCommitmentHash(\n decrypt.to,\n decrypt.token.tokenAddress,\n BigInt(graphTokenTypeToEngineTokenType(decrypt.token.tokenType)),\n BigInt(decrypt.token.tokenSubID),\n BigInt(decrypt.value),\n ),\n ByteLength.UINT_256,\n true,\n );\n const dopTxid = getDopTxid(dopTxidMap, [\n decryptCommitmentHash,\n ]);\n return V3Events.formatDecryptEvent(\n decrypt.transactionHash,\n Number(decrypt.blockNumber),\n {\n npk: decrypt.to,\n token: {\n tokenType: BigInt(\n graphTokenTypeToEngineTokenType(decrypt.token.tokenType),\n ),\n tokenAddress: decrypt.token.tokenAddress,\n tokenSubID: BigInt(decrypt.token.tokenSubID),\n },\n value: BigInt(decrypt.value),\n },\n Number(decrypt.transactIndex),\n BigInt(decrypt.fee),\n dopTxid,\n );\n });\n};\n\nexport const formatGraphCommitmentEventsV3 = (\n commitments: GraphCommitmentV3[],\n dopTxidMap: DopTxidMapV3,\n): CommitmentEvent[] => {\n return commitments.map(commitment => {\n return formatGraphCommitmentEventV3(commitment, dopTxidMap);\n });\n};\n\nconst formatGraphCommitmentEventV3 = (\n commitment: GraphCommitmentV3,\n dopTxidMap: DopTxidMapV3,\n): CommitmentEvent => {\n switch (commitment.commitmentType) {\n case 'LegacyGeneratedCommitment':\n case 'LegacyEncryptedCommitment':\n throw new Error('Not possible in V3');\n case 'EncryptCommitment':\n return formatEncryptCommitmentEvent(commitment as GraphEncryptCommitmentV3);\n case 'TransactCommitment': {\n const dopTxid = getDopTxid(dopTxidMap, commitment.hashes);\n return formatTransactCommitmentEvent(\n commitment as GraphTransactCommitmentV3,\n dopTxid,\n );\n }\n }\n};\n\nconst getDopTxid = (\n dopTxidMap: DopTxidMapV3,\n commitments: string[],\n): string => {\n const dopTxids = Object.keys(dopTxidMap);\n for (const dopTxid of dopTxids) {\n const dopTxidCommitments = dopTxidMap[dopTxid];\n if (!dopTxidCommitments) {\n continue;\n }\n const hasAllCommitments = commitments.every(commitment =>\n dopTxidCommitments.includes(commitment),\n );\n if (hasAllCommitments) {\n return dopTxid;\n }\n }\n throw new Error('dopTxid not found including all transact commitments');\n};\n\nconst formatEncryptCommitmentEvent = (\n commitment: GraphEncryptCommitmentV3,\n): CommitmentEvent => {\n return V3Events.formatEncryptEvent(\n commitment.transactionHash,\n Number(commitment.blockNumber),\n commitment.from,\n {\n npk: commitment.preimage.npk,\n token: {\n tokenType: BigInt(\n graphTokenTypeToEngineTokenType(commitment.preimage.token.tokenType),\n ),\n tokenAddress: commitment.preimage.token.tokenAddress,\n tokenSubID: BigInt(commitment.preimage.token.tokenSubID),\n },\n value: BigInt(commitment.preimage.value),\n },\n {\n encryptedBundle: commitment.encryptedBundle as [string, string, string],\n encryptKey: commitment.encryptKey,\n },\n commitment.treeNumber,\n commitment.treePosition,\n BigInt(commitment.fee),\n );\n};\n\nconst formatTransactCommitmentEvent = (\n commitment: GraphTransactCommitmentV3,\n dopTxid: string,\n): CommitmentEvent => {\n return V3Events.formatTransactEvent(\n commitment.transactionHash,\n Number(commitment.blockNumber),\n commitment.hashes,\n commitment.commitmentCiphertexts,\n commitment.treeNumber,\n commitment.batchStartTreePosition,\n commitment.transactIndex,\n commitment.senderCiphertext,\n dopTxid,\n );\n};\n"]}
@@ -1,2 +1,2 @@
1
- import { AccumulatedEvents, Chain } from 'dop-engine-v3';
1
+ import { AccumulatedEvents, Chain } from 'dop-engine-v5';
2
2
  export declare const quickSyncEventsGraphV3: (chain: Chain, startingBlock: number) => Promise<AccumulatedEvents>;