dop-wallet-v6 1.2.2 → 1.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/services/artifacts/__tests__/artifact-downloader.test.js.map +1 -1
- package/dist/services/artifacts/artifact-downloader.d.ts +1 -1
- package/dist/services/artifacts/artifact-downloader.js.map +1 -1
- package/dist/services/artifacts/artifact-hash.d.ts +1 -1
- package/dist/services/artifacts/artifact-hash.js.map +1 -1
- package/dist/services/artifacts/artifact-util.d.ts +1 -1
- package/dist/services/artifacts/artifact-util.js.map +1 -1
- package/dist/services/dop/core/__tests__/providers.test.js +2 -2
- package/dist/services/dop/core/__tests__/providers.test.js.map +1 -1
- package/dist/services/dop/core/artifacts.d.ts +2 -2
- package/dist/services/dop/core/artifacts.js.map +1 -1
- package/dist/services/dop/core/encrypts.d.ts +1 -1
- package/dist/services/dop/core/encrypts.js.map +1 -1
- package/dist/services/dop/core/engine.d.ts +1 -1
- package/dist/services/dop/core/engine.js.map +1 -1
- package/dist/services/dop/core/init.d.ts +2 -2
- package/dist/services/dop/core/init.js.map +1 -1
- package/dist/services/dop/core/load-provider.d.ts +1 -1
- package/dist/services/dop/core/load-provider.js.map +1 -1
- package/dist/services/dop/core/merkletree.d.ts +2 -2
- package/dist/services/dop/core/merkletree.js.map +1 -1
- package/dist/services/dop/core/prover.d.ts +1 -1
- package/dist/services/dop/core/prover.js.map +1 -1
- package/dist/services/dop/core/providers.d.ts +2 -2
- package/dist/services/dop/core/providers.js.map +1 -1
- package/dist/services/dop/dop-txids/__tests__/dop-txid-sync-graph-v2.test.js.map +1 -1
- package/dist/services/dop/dop-txids/blinded-commitments.d.ts +1 -1
- package/dist/services/dop/dop-txids/blinded-commitments.js.map +1 -1
- package/dist/services/dop/dop-txids/dop-txid-graph-type-formatters.d.ts +1 -1
- package/dist/services/dop/dop-txids/dop-txid-graph-type-formatters.js.map +1 -1
- package/dist/services/dop/dop-txids/dop-txid-merkletrees.d.ts +1 -1
- package/dist/services/dop/dop-txids/dop-txid-merkletrees.js.map +1 -1
- package/dist/services/dop/dop-txids/dop-txid-sync-graph-v2.d.ts +1 -1
- package/dist/services/dop/dop-txids/dop-txid-sync-graph-v2.js.map +1 -1
- package/dist/services/dop/dop-txids/graphql/index.js +1 -1
- package/dist/services/dop/dop-txids/graphql/index.js.map +1 -1
- package/dist/services/dop/history/transaction-history.d.ts +2 -2
- package/dist/services/dop/history/transaction-history.js.map +1 -1
- package/dist/services/dop/index.d.ts +1 -0
- package/dist/services/dop/index.js +1 -0
- package/dist/services/dop/index.js.map +1 -1
- package/dist/services/dop/process/extract-transaction-data.d.ts +1 -1
- package/dist/services/dop/process/extract-transaction-data.js.map +1 -1
- package/dist/services/dop/profile/__tests__/profile-manager.test.d.ts +1 -0
- package/dist/services/dop/profile/__tests__/profile-manager.test.js +170 -0
- package/dist/services/dop/profile/__tests__/profile-manager.test.js.map +1 -0
- package/dist/services/dop/profile/__tests__/selective-transparency.test.d.ts +1 -0
- package/dist/services/dop/profile/__tests__/selective-transparency.test.js +256 -0
- package/dist/services/dop/profile/__tests__/selective-transparency.test.js.map +1 -0
- package/dist/services/dop/profile/__tests__/storage.test.d.ts +1 -0
- package/dist/services/dop/profile/__tests__/storage.test.js +174 -0
- package/dist/services/dop/profile/__tests__/storage.test.js.map +1 -0
- package/dist/services/dop/profile/index.d.ts +3 -0
- package/dist/services/dop/profile/index.js +20 -0
- package/dist/services/dop/profile/index.js.map +1 -0
- package/dist/services/dop/profile/profile-manager.d.ts +32 -0
- package/dist/services/dop/profile/profile-manager.js +235 -0
- package/dist/services/dop/profile/profile-manager.js.map +1 -0
- package/dist/services/dop/profile/selective-transparency.d.ts +82 -0
- package/dist/services/dop/profile/selective-transparency.js +447 -0
- package/dist/services/dop/profile/selective-transparency.js.map +1 -0
- package/dist/services/dop/profile/storage.d.ts +27 -0
- package/dist/services/dop/profile/storage.js +648 -0
- package/dist/services/dop/profile/storage.js.map +1 -0
- package/dist/services/dop/profile/types.d.ts +106 -0
- package/dist/services/dop/profile/types.js +3 -0
- package/dist/services/dop/profile/types.js.map +1 -0
- package/dist/services/dop/profile/usage-example.d.ts +11 -0
- package/dist/services/dop/profile/usage-example.js +143 -0
- package/dist/services/dop/profile/usage-example.js.map +1 -0
- package/dist/services/dop/quick-sync/V2/__tests__/quick-sync-events-graph-v2.test.js.map +1 -1
- package/dist/services/dop/quick-sync/V2/graph-type-formatters-v2.d.ts +1 -1
- package/dist/services/dop/quick-sync/V2/graph-type-formatters-v2.js.map +1 -1
- package/dist/services/dop/quick-sync/V2/graphql/index.js +1 -1
- package/dist/services/dop/quick-sync/V2/graphql/index.js.map +1 -1
- package/dist/services/dop/quick-sync/V2/quick-sync-events-graph-v2.d.ts +1 -1
- package/dist/services/dop/quick-sync/V2/quick-sync-events-graph-v2.js.map +1 -1
- package/dist/services/dop/quick-sync/V3/__tests__/quick-sync-events-graph-v3.test.js.map +1 -1
- package/dist/services/dop/quick-sync/V3/graph-type-formatters-v3.d.ts +1 -1
- package/dist/services/dop/quick-sync/V3/graph-type-formatters-v3.js.map +1 -1
- package/dist/services/dop/quick-sync/V3/quick-sync-events-graph-v3.d.ts +1 -1
- package/dist/services/dop/quick-sync/V3/quick-sync-events-graph-v3.js.map +1 -1
- package/dist/services/dop/quick-sync/graph-query.d.ts +1 -1
- package/dist/services/dop/quick-sync/graph-query.js.map +1 -1
- package/dist/services/dop/quick-sync/quick-sync-events.d.ts +1 -1
- package/dist/services/dop/quick-sync/quick-sync-events.js.map +1 -1
- package/dist/services/dop/quick-sync/shared-formatters.d.ts +1 -1
- package/dist/services/dop/quick-sync/shared-formatters.js.map +1 -1
- package/dist/services/dop/util/__tests__/bytes-util.test.js +1 -1
- package/dist/services/dop/util/__tests__/bytes-util.test.js.map +1 -1
- package/dist/services/dop/util/bytes.d.ts +1 -1
- package/dist/services/dop/util/bytes.js.map +1 -1
- package/dist/services/dop/util/crypto.d.ts +2 -2
- package/dist/services/dop/util/crypto.js.map +1 -1
- package/dist/services/dop/wallets/__tests__/balances-live.test.js.map +1 -1
- package/dist/services/dop/wallets/__tests__/balances-update.test.js.map +1 -1
- package/dist/services/dop/wallets/__tests__/balances.test.js.map +1 -1
- package/dist/services/dop/wallets/__tests__/wallets.test.js.map +1 -1
- package/dist/services/dop/wallets/balance-update.d.ts +2 -2
- package/dist/services/dop/wallets/balance-update.js.map +1 -1
- package/dist/services/dop/wallets/balances.d.ts +1 -1
- package/dist/services/dop/wallets/balances.js.map +1 -1
- package/dist/services/dop/wallets/wallets.d.ts +2 -2
- package/dist/services/dop/wallets/wallets.js.map +1 -1
- package/dist/services/ethers/ethers-util.js.map +1 -1
- package/dist/services/transactions/__tests__/proof-cache.test.js.map +1 -1
- package/dist/services/transactions/__tests__/tx-cross-contract-calls.test.js +6 -6
- package/dist/services/transactions/__tests__/tx-cross-contract-calls.test.js.map +1 -1
- package/dist/services/transactions/__tests__/tx-encrypt-base-token.test.js.map +1 -1
- package/dist/services/transactions/__tests__/tx-gas-details.test.js.map +1 -1
- package/dist/services/transactions/__tests__/tx-notes.test.js.map +1 -1
- package/dist/services/transactions/__tests__/tx-transfer.test.js +9 -9
- package/dist/services/transactions/__tests__/tx-transfer.test.js.map +1 -1
- package/dist/services/transactions/proof-cache.d.ts +1 -1
- package/dist/services/transactions/proof-cache.js.map +1 -1
- package/dist/services/transactions/tx-cross-contract-calls.d.ts +2 -2
- package/dist/services/transactions/tx-cross-contract-calls.js.map +1 -1
- package/dist/services/transactions/tx-decrypt.d.ts +1 -1
- package/dist/services/transactions/tx-decrypt.js.map +1 -1
- package/dist/services/transactions/tx-encrypt-base-token.d.ts +1 -1
- package/dist/services/transactions/tx-encrypt-base-token.js.map +1 -1
- package/dist/services/transactions/tx-encrypt.d.ts +1 -1
- package/dist/services/transactions/tx-encrypt.js.map +1 -1
- package/dist/services/transactions/tx-gas-broadcaster-fee-estimator.d.ts +2 -2
- package/dist/services/transactions/tx-gas-broadcaster-fee-estimator.js.map +1 -1
- package/dist/services/transactions/tx-gas-details.d.ts +1 -1
- package/dist/services/transactions/tx-gas-details.js.map +1 -1
- package/dist/services/transactions/tx-generator.d.ts +2 -2
- package/dist/services/transactions/tx-generator.js.map +1 -1
- package/dist/services/transactions/tx-notes.d.ts +2 -2
- package/dist/services/transactions/tx-notes.js.map +1 -1
- package/dist/services/transactions/tx-nullifiers.d.ts +1 -1
- package/dist/services/transactions/tx-nullifiers.js.map +1 -1
- package/dist/services/transactions/tx-proof-decrypt.d.ts +1 -1
- package/dist/services/transactions/tx-proof-decrypt.js.map +1 -1
- package/dist/services/transactions/tx-proof-transfer.d.ts +1 -1
- package/dist/services/transactions/tx-proof-transfer.js.map +1 -1
- package/dist/services/transactions/tx-transfer.d.ts +1 -1
- package/dist/services/transactions/tx-transfer.js.map +1 -1
- package/dist/tests/helper.test.d.ts +1 -1
- package/dist/tests/helper.test.js.map +1 -1
- package/dist/tests/mocks.test.d.ts +2 -2
- package/dist/tests/mocks.test.js.map +1 -1
- package/dist/tests/poi/test-wallet-poi-requester.test.d.ts +2 -2
- package/dist/tests/poi/test-wallet-poi-requester.test.js.map +1 -1
- package/dist/tests/setup.test.d.ts +1 -1
- package/dist/tests/setup.test.js.map +1 -1
- package/dist/tests/stubs/engine-stubs.test.d.ts +1 -1
- package/dist/tests/stubs/engine-stubs.test.js.map +1 -1
- package/dist/utils/blocked-address.js.map +1 -1
- package/dist/utils/error.js.map +1 -1
- package/dist/utils/gas-price.d.ts +1 -1
- package/dist/utils/gas-price.js.map +1 -1
- package/package.json +13 -3
- package/postinstall.js +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { AccumulatedEvents, Chain } from 'dop-engine-
|
|
1
|
+
import { AccumulatedEvents, Chain } from 'dop-engine-v3';
|
|
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-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
|
+
{"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 +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":";;;;;AAAA,iDAAoE;AACpE,6DAAkE;AAClE,gDAAwB;AACxB,wEAA8C;AAC9C,+DAA+D;AAC/D,kEAA4D;AAE5D,cAAI,CAAC,GAAG,CAAC,0BAAc,CAAC,CAAC;AACzB,MAAM,EAAE,MAAM,EAAE,GAAG,cAAI,CAAC;AAExB,MAAM,WAAW,GAAG,2BAAW,CAAC,iBAAiB,CAAC;AAElD,MAAM,oBAAoB,GACxB,oCAAc,CAAC,iCAAW,CAAC,wBAAwB,CAAC,CAAC,KAAK,CAAC;AAC7D,MAAM,+CAA+C,GAAG,CAAC,CAAC;AAC1D,MAAM,wCAAwC,GAAG,CAAC,CAAC;AACnD,MAAM,sCAAsC,GAAG,CAAC,CAAC;AACjD,MAAM,8CAA8C,GAAG,CAAC,CAAC;AAEzD,MAAM,gCAAgC,GAAG,CACvC,gBAAmC,EACnC,WAAoB,EACpB,EAAE;IACF,IAAI,cAAc,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IACpD,IAAI,iBAAiB,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;IAC1D,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE;QACpC,IACE,KAAK,CAAC,UAAU,KAAK,cAAc;YACnC,KAAK,CAAC,aAAa,KAAK,iBAAiB,EACzC;YACA,IAAI,WAAW,EAAE;gBACf,MAAM,IAAI,KAAK,CACb,6BAA6B,cAAc,mBAAmB,iBAAiB,EAAE,CAClF,CAAC;aACH;iBAAM;gBACL,sCAAsC;gBACtC,OAAO,CAAC,GAAG,CACT,6BAA6B,cAAc,mBAAmB,iBAAiB,EAAE,CAClF,CAAC;gBACF,iBAAiB,GAAG,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC;aACpE;SACF;aAAM;YACL,iBAAiB,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC;SAC/C;QAED,kFAAkF;QAClF,IAAI,iBAAiB,IAAI,KAAK,EAAE;YAC9B,0BAA0B;YAC1B,cAAc,IAAI,CAAC,CAAC;YACpB,iBAAiB,GAAG,CAAC,CAAC;SACvB;KACF;AACH,CAAC,CAAC;AAEF,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,EAAE,CAAC,uFAAuF,EAAE,KAAK,UAAU,GAAG;QAC5G,IAAI,IAAA,sBAAQ,GAAE,EAAE;YACd,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,OAAO;SACR;QAED,MAAM,QAAQ,GAAG,MAAM,IAAA,wCAAoB,EACzC,WAAW,EACX,oBAAoB,EACpB,CAAC,CACF,CAAC;QACF,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;QACpC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QACpD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CACrD,+CAA+C,CAChD,CAAC;QACF,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CACpD,wCAAwC,CACzC,CAAC;QACF,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAClD,sCAAsC,CACvC,CAAC;QACF,MAAM,CAAC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAC1D,sCAAsC,CACvC,CAAC;QAEF,MAAM,WAAW,GAAG,IAAI,CAAC;QACzB,gCAAgC,CAAC,QAAQ,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC","sourcesContent":["import { Chain, CommitmentEvent, TXIDVersion } from 'dop-engine-
|
|
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,4 +1,4 @@
|
|
|
1
|
-
import { Nullifier, DecryptStoredEvent, CommitmentEvent } from 'dop-engine-
|
|
1
|
+
import { Nullifier, DecryptStoredEvent, CommitmentEvent } from 'dop-engine-v3';
|
|
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-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
|
+
{"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,2 +1,2 @@
|
|
|
1
|
-
import { AccumulatedEvents, Chain } from 'dop-engine-
|
|
1
|
+
import { AccumulatedEvents, Chain } from 'dop-engine-v3';
|
|
2
2
|
export declare const quickSyncEventsGraphV3: (chain: Chain, startingBlock: number) => Promise<AccumulatedEvents>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quick-sync-events-graph-v3.js","sourceRoot":"","sources":["../../../../../src/services/dop/quick-sync/V3/quick-sync-events-graph-v3.ts"],"names":[],"mappings":";;;AAAA,iDAIuB;AACvB,gDAAmE;AACnE,6DAI6B;AAC7B,mDAA8D;AAC9D,sDAA6D;AAC7D,uCAAmD;AACnD,yEAMoC;AAEpC,MAAM,MAAM,GAA0B,EAAE,CAAC;AAEzC,gCAAgC;AAChC,0EAA0E;AAC1E,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAEjC,MAAM,oBAAoB,GAAG,CAAC,WAAwB,EAAU,EAAE;IAChE,QAAQ,WAAW,EAAE;QACnB,KAAK,iCAAW,CAAC,QAAQ,CAAC;QAC1B,KAAK,iCAAW,CAAC,eAAe,CAAC;QACjC,KAAK,iCAAW,CAAC,QAAQ,CAAC;QAC1B,KAAK,iCAAW,CAAC,OAAO,CAAC;QACzB,KAAK,iCAAW,CAAC,QAAQ,CAAC;QAC1B,KAAK,iCAAW,CAAC,MAAM,CAAC;QACxB,KAAK,iCAAW,CAAC,WAAW,CAAC;QAC7B,KAAK,iCAAW,CAAC,yBAAyB,CAAC;QAC3C,KAAK,iCAAW,CAAC,yBAAyB,CAAC;QAC3C,KAAK,iCAAW,CAAC,0BAA0B,CAAC;QAC5C,KAAK,iCAAW,CAAC,wBAAwB,CAAC;QAC1C,KAAK,iCAAW,CAAC,OAAO,CAAC;QACzB;YACE,MAAM,IAAI,KAAK,CACb,wDAAwD,CACzD,CAAC;KACL;AACH,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,WAAwB,EAAE,EAAE;IACxD,IAAI;QACF,oBAAoB,CAAC,WAAW,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;KACb;IAAC,MAAM;QACN,OAAO,KAAK,CAAC;KACd;AACH,CAAC,CAAC;AAEK,MAAM,sBAAsB,GAAG,KAAK,EACzC,KAAY,EACZ,aAAqB,EACO,EAAE;IAC9B,MAAM,OAAO,GAAG,IAAA,qCAAe,EAAC,KAAK,CAAC,CAAC;IACvC,IAAI,CAAC,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACnD,uDAAuD;QACvD,OAAO,0BAAY,CAAC;KACrB;IAED,MAAM,GAAG,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3C,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,CAAC,GACxD,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,IAAA,iCAAmB,EACjB,KAAK,EAAE,WAAmB,EAAE,EAAE,CAC5B,CACE,MAAM,GAAG,CAAC,UAAU,CAAC;YACnB,WAAW;SACZ,CAAC,CACH,CAAC,UAAU,EACd,aAAa,CAAC,QAAQ,EAAE,EACxB,iBAAiB,CAClB;QACD,IAAA,iCAAmB,EACjB,KAAK,EAAE,WAAmB,EAAE,EAAE,CAC5B,CACE,MAAM,GAAG,CAAC,QAAQ,CAAC;YACjB,WAAW;SACZ,CAAC,CACH,CAAC,QAAQ,EACZ,aAAa,CAAC,QAAQ,EAAE,EACxB,iBAAiB,CAClB;QACD,IAAA,iCAAmB,EACjB,KAAK,EAAE,WAAmB,EAAE,EAAE,CAC5B,CACE,MAAM,GAAG,CAAC,WAAW,CAAC;YACpB,WAAW;SACZ,CAAC,CACH,CAAC,WAAW,EACf,aAAa,CAAC,QAAQ,EAAE,EACxB,iBAAiB,CAClB;QACD,IAAA,iCAAmB,EACjB,KAAK,EAAE,WAAmB,EAAE,EAAE,CAC5B,CACE,MAAM,GAAG,CAAC,eAAe,CAAC;YACxB,WAAW;SACZ,CAAC,CACH,CAAC,eAAe,EACnB,aAAa,CAAC,QAAQ,EAAE,EACxB,iBAAiB,CAClB;KACF,CAAC,CAAC;IAEL,MAAM,uBAAuB,GAAG,IAAA,iCAAoB,EAAC,eAAe,CAAC,CAAC;IACtE,MAAM,kBAAkB,GAAG,IAAA,iCAAoB,EAAC,UAAU,CAAC,CAAC;IAC5D,MAAM,gBAAgB,GAAG,IAAA,iCAAoB,EAAC,QAAQ,CAAC,CAAC;IACxD,MAAM,mBAAmB,GAAG,IAAA,iCAAoB,EAAC,WAAW,CAAC,CAAC;IAE9D,MAAM,oBAAoB,GAAG,IAAA,4DAAiC,EAC5D,uBAAuB,CACxB,CAAC;IAEF,MAAM,UAAU,GAAiB,EAAE,CAAC;IACpC,KAAK,MAAM,cAAc,IAAI,uBAAuB,EAAE;QACpD,MAAM,OAAO,GAAG,IAAA,sCAAsB,EAAC,cAAc,CAAC,CAAC;QACvD,UAAU,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,WAAW,CAAC;KAClD;IAED,MAAM,eAAe,GAAG,IAAA,uDAA4B,EAAC,kBAAkB,CAAC,CAAC;IACzE,MAAM,aAAa,GAAG,IAAA,qDAA0B,EAC9C,gBAAgB,EAChB,UAAU,CACX,CAAC;IACF,MAAM,gBAAgB,GAAG,IAAA,wDAA6B,EACpD,mBAAmB,EACnB,UAAU,CACX,CAAC;IAEF,OAAO;QACL,eAAe;QACf,aAAa;QACb,gBAAgB;QAChB,oBAAoB;KACrB,CAAC;AACJ,CAAC,CAAC;AAvFW,QAAA,sBAAsB,0BAuFjC;AAEF,MAAM,mBAAmB,GAAG,KAAK,EAC/B,WAAwB,EACD,EAAE;IACzB,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IAC3C,IAAI,IAAA,+BAAS,EAAC,cAAc,CAAC,EAAE;QAC7B,OAAO,cAAc,CAAC;KACvB;IACD,MAAM,UAAU,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,MAAM,IAAA,wBAAc,GAAE,CAAC;IAC3C,MAAM,eAAe,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;QAC1D,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC;IACpC,CAAC,CAAC,CAAC;IACH,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;QAChC,MAAM,IAAI,KAAK,CACb,2CAA2C,WAAW,WAAW,eAAe,CAAC,MAAM,EAAE,CAC1F,CAAC;KACH;IACD,WAAW,CAAC,OAAO,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,MAAM,IAAA,iBAAO,EAAC,WAAW,CAAC,CAAC;IACxC,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CACvB,WAAwB,EACxB,aAA8B,EAC9B,EAAE;IACF,MAAM,aAAa,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC,IAAI,CACzD,CAAC,EAAE,mBAAmB,EAAE,EAAE,EAAE,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAChE,CAAC;IACF,OAAO,IAAA,gBAAM,EAAoC,CAAC,GAAG,IAAI,EAAE,EAAE,CAC3D,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,CAAC,CAC1D,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import {\n AccumulatedEvents,\n Chain,\n getDopTransactionIDHex,\n} from 'dop-engine-
|
|
1
|
+
{"version":3,"file":"quick-sync-events-graph-v3.js","sourceRoot":"","sources":["../../../../../src/services/dop/quick-sync/V3/quick-sync-events-graph-v3.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AccumulatedEvents,\n Chain,\n getDopTransactionIDHex,\n} from 'dop-engine-v3';\nimport { EMPTY_EVENTS, autoPaginatingQuery } from '../graph-query';\nimport {\n NetworkName,\n isDefined,\n networkForChain,\n} from 'dop-sharedmodels-v3';\nimport { MeshInstance, getMesh } from '@graphql-mesh/runtime';\nimport { removeDuplicatesByID } from '../../util/graph-util';\nimport { getMeshOptions, getSdk } from './graphql';\nimport {\n DopTxidMapV3,\n formatGraphCommitmentEventsV3,\n formatGraphNullifierEventsV3,\n formatGraphDopTransactionEventsV3,\n formatGraphDecryptEventsV3,\n} from './graph-type-formatters-v3';\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 case NetworkName.EthereumSepolia:\n case NetworkName.BNBChain:\n case NetworkName.Polygon:\n case NetworkName.Arbitrum:\n case NetworkName.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(\n 'No Graph API hosted service for this network on DOP V3',\n );\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 quickSyncEventsGraphV3 = 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, decrypts, commitments, dopTransactions] =\n await Promise.all([\n autoPaginatingQuery(\n async (blockNumber: string) =>\n (\n await sdk.Nullifiers({\n blockNumber,\n })\n ).nullifiers,\n startingBlock.toString(),\n MAX_QUERY_RESULTS,\n ),\n autoPaginatingQuery(\n async (blockNumber: string) =>\n (\n await sdk.Decrypts({\n blockNumber,\n })\n ).decrypts,\n startingBlock.toString(),\n MAX_QUERY_RESULTS,\n ),\n autoPaginatingQuery(\n async (blockNumber: string) =>\n (\n await sdk.Commitments({\n blockNumber,\n })\n ).commitments,\n startingBlock.toString(),\n MAX_QUERY_RESULTS,\n ),\n autoPaginatingQuery(\n async (blockNumber: string) =>\n (\n await sdk.DopTransactions({\n blockNumber,\n })\n ).dopTransactions,\n startingBlock.toString(),\n MAX_QUERY_RESULTS,\n ),\n ]);\n\n const filteredDopTransactions = removeDuplicatesByID(dopTransactions);\n const filteredNullifiers = removeDuplicatesByID(nullifiers);\n const filteredDecrypts = removeDuplicatesByID(decrypts);\n const filteredCommitments = removeDuplicatesByID(commitments);\n\n const dopTransactionEvents = formatGraphDopTransactionEventsV3(\n filteredDopTransactions,\n );\n\n const dopTxidMap: DopTxidMapV3 = {};\n for (const dopTransaction of filteredDopTransactions) {\n const dopTxid = getDopTransactionIDHex(dopTransaction);\n dopTxidMap[dopTxid] = dopTransaction.commitments;\n }\n\n const nullifierEvents = formatGraphNullifierEventsV3(filteredNullifiers);\n const decryptEvents = formatGraphDecryptEventsV3(\n filteredDecrypts,\n dopTxidMap,\n );\n const commitmentEvents = formatGraphCommitmentEventsV3(\n filteredCommitments,\n dopTxidMap,\n );\n\n return {\n nullifierEvents,\n decryptEvents,\n commitmentEvents,\n dopTransactionEvents,\n };\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":"graph-query.js","sourceRoot":"","sources":["../../../../src/services/dop/quick-sync/graph-query.ts"],"names":[],"mappings":";;;AACA,6DAA4D;AAE/C,QAAA,YAAY,GAAsB;IAC7C,gBAAgB,EAAE,EAAE;IACpB,aAAa,EAAE,EAAE;IACjB,eAAe,EAAE,EAAE;CACpB,CAAC;AAEK,MAAM,mBAAmB,GAAG,KAAK,EAGtC,KAAqD,EACrD,WAAmB,EACnB,eAAuB,EACvB,cAA4B,EAAE,EACP,EAAE;IACzB,MAAM,UAAU,GAAG,MAAM,IAAA,oCAAc,EACrC,KAAK,CAAC,WAAW,CAAC,EAClB,KAAK,EACL,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAChE,CAAC;IACF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;QAC3B,OAAO,WAAW,CAAC;KACpB;IAED,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAEpD,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,IAAI,eAAe,CAAC;IACzD,MAAM,UAAU,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEzD,MAAM,eAAe,GAAG,UAAU,CAAC,MAAM,KAAK,KAAK,CAAC;IACpD,IAAI,CAAC,SAAS,IAAI,eAAe,EAAE;QACjC,MAAM,IAAA,2BAAK,EAAC,GAAG,CAAC,CAAC;QACjB,OAAO,IAAA,2BAAmB,EACxB,KAAK,EACL,UAAU,CAAC,WAAW,EACtB,eAAe,EACf,YAAY,CACb,CAAC;KACH;IAED,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAlCW,QAAA,mBAAmB,uBAkC9B","sourcesContent":["import { AccumulatedEvents } from 'dop-engine-
|
|
1
|
+
{"version":3,"file":"graph-query.js","sourceRoot":"","sources":["../../../../src/services/dop/quick-sync/graph-query.ts"],"names":[],"mappings":";;;AACA,6DAA4D;AAE/C,QAAA,YAAY,GAAsB;IAC7C,gBAAgB,EAAE,EAAE;IACpB,aAAa,EAAE,EAAE;IACjB,eAAe,EAAE,EAAE;CACpB,CAAC;AAEK,MAAM,mBAAmB,GAAG,KAAK,EAGtC,KAAqD,EACrD,WAAmB,EACnB,eAAuB,EACvB,cAA4B,EAAE,EACP,EAAE;IACzB,MAAM,UAAU,GAAG,MAAM,IAAA,oCAAc,EACrC,KAAK,CAAC,WAAW,CAAC,EAClB,KAAK,EACL,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAChE,CAAC;IACF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;QAC3B,OAAO,WAAW,CAAC;KACpB;IAED,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAEpD,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,IAAI,eAAe,CAAC;IACzD,MAAM,UAAU,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEzD,MAAM,eAAe,GAAG,UAAU,CAAC,MAAM,KAAK,KAAK,CAAC;IACpD,IAAI,CAAC,SAAS,IAAI,eAAe,EAAE;QACjC,MAAM,IAAA,2BAAK,EAAC,GAAG,CAAC,CAAC;QACjB,OAAO,IAAA,2BAAmB,EACxB,KAAK,EACL,UAAU,CAAC,WAAW,EACtB,eAAe,EACf,YAAY,CACb,CAAC;KACH;IAED,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAlCW,QAAA,mBAAmB,uBAkC9B","sourcesContent":["import { AccumulatedEvents } from 'dop-engine-v3';\nimport { delay, promiseTimeout } from 'dop-sharedmodels-v3';\n\nexport const EMPTY_EVENTS: AccumulatedEvents = {\n commitmentEvents: [],\n decryptEvents: [],\n nullifierEvents: [],\n};\n\nexport const autoPaginatingQuery = async <\n ReturnType extends { blockNumber: string },\n>(\n query: (blockNumber: string) => Promise<ReturnType[]>,\n blockNumber: string,\n maxQueryResults: number,\n prevResults: ReturnType[] = [],\n): Promise<ReturnType[]> => {\n const newResults = await promiseTimeout(\n query(blockNumber),\n 20000,\n new Error('Timeout querying Graph for QuickSync of DOP Events'),\n );\n if (newResults.length === 0) {\n return prevResults;\n }\n\n const totalResults = prevResults.concat(newResults); \n\n const overLimit = totalResults.length >= maxQueryResults;\n const lastResult = totalResults[totalResults.length - 1];\n\n const shouldQueryMore = newResults.length === 10000;\n if (!overLimit && shouldQueryMore) {\n await delay(250);\n return autoPaginatingQuery(\n query,\n lastResult.blockNumber,\n maxQueryResults,\n totalResults,\n );\n }\n\n return totalResults;\n};\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { Chain, TXIDVersion } from 'dop-engine-
|
|
1
|
+
import { Chain, TXIDVersion } from 'dop-engine-v3';
|
|
2
2
|
export declare const quickSyncEventsGraph: (txidVersion: TXIDVersion, chain: Chain, startingBlock: number) => Promise<import("dop-engine-v3").AccumulatedEvents>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quick-sync-events.js","sourceRoot":"","sources":["../../../../src/services/dop/quick-sync/quick-sync-events.ts"],"names":[],"mappings":";;;AACA,gFAAyE;AAElE,MAAM,oBAAoB,GAAG,KAAK,EACvC,WAAwB,EACxB,KAAY,EACZ,aAAqB,EACrB,EAAE;IACE,OAAO,IAAA,mDAAsB,EAAC,KAAK,EAAE,aAAa,CAAC,CAAC;AAC1D,CAAC,CAAC;AANW,QAAA,oBAAoB,wBAM/B","sourcesContent":["import { Chain, TXIDVersion } from 'dop-engine-
|
|
1
|
+
{"version":3,"file":"quick-sync-events.js","sourceRoot":"","sources":["../../../../src/services/dop/quick-sync/quick-sync-events.ts"],"names":[],"mappings":";;;AACA,gFAAyE;AAElE,MAAM,oBAAoB,GAAG,KAAK,EACvC,WAAwB,EACxB,KAAY,EACZ,aAAqB,EACrB,EAAE;IACE,OAAO,IAAA,mDAAsB,EAAC,KAAK,EAAE,aAAa,CAAC,CAAC;AAC1D,CAAC,CAAC;AANW,QAAA,oBAAoB,wBAM/B","sourcesContent":["import { Chain, TXIDVersion } from 'dop-engine-v3';\nimport { quickSyncEventsGraphV2 } from './V2/quick-sync-events-graph-v2';\n\nexport const quickSyncEventsGraph = async (\n txidVersion: TXIDVersion,\n chain: Chain,\n startingBlock: number,\n) => {\n return quickSyncEventsGraphV2(chain, startingBlock);\n};\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PreImage, TokenData, TokenType } from 'dop-engine-
|
|
1
|
+
import { PreImage, TokenData, TokenType } from 'dop-engine-v3';
|
|
2
2
|
import { TokenType as GraphTokenTypeV2, Token as GraphTokenV2, CommitmentPreimage as GraphCommitmentPreimageV2 } from './V2/graphql';
|
|
3
3
|
import { TokenType as GraphTokenTypeV3, Token as GraphTokenV3, CommitmentPreimage as GraphCommitmentPreimageV3 } from './V3/graphql';
|
|
4
4
|
export declare const graphTokenTypeToEngineTokenType: (graphTokenType: GraphTokenTypeV2 | GraphTokenTypeV3) => TokenType;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-formatters.js","sourceRoot":"","sources":["../../../../src/services/dop/quick-sync/shared-formatters.ts"],"names":[],"mappings":";;;AAAA,iDAQuB;AAYhB,MAAM,+BAA+B,GAAG,CAC7C,cAAmD,EACxC,EAAE;IACb,QAAQ,cAAc,EAAE;QACtB,KAAK,OAAO;YACV,OAAO,yBAAS,CAAC,KAAK,CAAC;QACzB,KAAK,QAAQ;YACX,OAAO,yBAAS,CAAC,MAAM,CAAC;QAC1B,KAAK,SAAS;YACZ,OAAO,yBAAS,CAAC,OAAO,CAAC;KAC5B;AACH,CAAC,CAAC;AAXW,QAAA,+BAA+B,mCAW1C;AAEK,MAAM,qBAAqB,GAAG,CACnC,UAAuC,EAC5B,EAAE;IACb,OAAO,IAAA,kCAAkB,EACvB,UAAU,CAAC,YAAY,EACvB,IAAA,uCAA+B,EAAC,UAAU,CAAC,SAAS,CAAC,EACrD,UAAU,CAAC,UAAU,CACtB,CAAC;AACJ,CAAC,CAAC;AARW,QAAA,qBAAqB,yBAQhC;AAEK,MAAM,cAAc,GAAG,CAC5B,aAAoE,EAC1D,EAAE;IACZ,OAAO,IAAA,iCAAiB,EACtB,aAAa,CAAC,GAAG,EACjB,IAAA,6BAAqB,EAAC,aAAa,CAAC,KAAK,CAAC,EAC1C,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAC5B,CAAC;AACJ,CAAC,CAAC;AARW,QAAA,cAAc,kBAQzB;AAEK,MAAM,eAAe,GAAG,CAAC,KAAa,EAAE,MAAe,EAAE,EAAE;IAChE,OAAO,yBAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,0BAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC1E,CAAC,CAAC;AAFW,QAAA,eAAe,mBAE1B;AAEK,MAAM,eAAe,GAAG,CAAC,KAAa,EAAE,MAAe,EAAE,EAAE;IAChE,OAAO,yBAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,0BAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC1E,CAAC,CAAC;AAFW,QAAA,eAAe,mBAE1B;AAEK,MAAM,iBAAiB,GAAG,CAAC,YAAoB,EAAU,EAAE;IAChE,OAAO,KAAK,MAAM,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;AAClD,CAAC,CAAC;AAFW,QAAA,iBAAiB,qBAE5B","sourcesContent":["import {\n ByteLength,\n PreImage,\n TokenData,\n TokenType,\n ByteUtils,\n serializePreImage,\n serializeTokenData,\n} from 'dop-engine-
|
|
1
|
+
{"version":3,"file":"shared-formatters.js","sourceRoot":"","sources":["../../../../src/services/dop/quick-sync/shared-formatters.ts"],"names":[],"mappings":";;;AAAA,iDAQuB;AAYhB,MAAM,+BAA+B,GAAG,CAC7C,cAAmD,EACxC,EAAE;IACb,QAAQ,cAAc,EAAE;QACtB,KAAK,OAAO;YACV,OAAO,yBAAS,CAAC,KAAK,CAAC;QACzB,KAAK,QAAQ;YACX,OAAO,yBAAS,CAAC,MAAM,CAAC;QAC1B,KAAK,SAAS;YACZ,OAAO,yBAAS,CAAC,OAAO,CAAC;KAC5B;AACH,CAAC,CAAC;AAXW,QAAA,+BAA+B,mCAW1C;AAEK,MAAM,qBAAqB,GAAG,CACnC,UAAuC,EAC5B,EAAE;IACb,OAAO,IAAA,kCAAkB,EACvB,UAAU,CAAC,YAAY,EACvB,IAAA,uCAA+B,EAAC,UAAU,CAAC,SAAS,CAAC,EACrD,UAAU,CAAC,UAAU,CACtB,CAAC;AACJ,CAAC,CAAC;AARW,QAAA,qBAAqB,yBAQhC;AAEK,MAAM,cAAc,GAAG,CAC5B,aAAoE,EAC1D,EAAE;IACZ,OAAO,IAAA,iCAAiB,EACtB,aAAa,CAAC,GAAG,EACjB,IAAA,6BAAqB,EAAC,aAAa,CAAC,KAAK,CAAC,EAC1C,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAC5B,CAAC;AACJ,CAAC,CAAC;AARW,QAAA,cAAc,kBAQzB;AAEK,MAAM,eAAe,GAAG,CAAC,KAAa,EAAE,MAAe,EAAE,EAAE;IAChE,OAAO,yBAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,0BAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC1E,CAAC,CAAC;AAFW,QAAA,eAAe,mBAE1B;AAEK,MAAM,eAAe,GAAG,CAAC,KAAa,EAAE,MAAe,EAAE,EAAE;IAChE,OAAO,yBAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,0BAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC1E,CAAC,CAAC;AAFW,QAAA,eAAe,mBAE1B;AAEK,MAAM,iBAAiB,GAAG,CAAC,YAAoB,EAAU,EAAE;IAChE,OAAO,KAAK,MAAM,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;AAClD,CAAC,CAAC;AAFW,QAAA,iBAAiB,qBAE5B","sourcesContent":["import {\n ByteLength,\n PreImage,\n TokenData,\n TokenType,\n ByteUtils,\n serializePreImage,\n serializeTokenData,\n} from 'dop-engine-v3';\nimport {\n TokenType as GraphTokenTypeV2,\n Token as GraphTokenV2,\n CommitmentPreimage as GraphCommitmentPreimageV2,\n} from './V2/graphql';\nimport {\n TokenType as GraphTokenTypeV3,\n Token as GraphTokenV3,\n CommitmentPreimage as GraphCommitmentPreimageV3,\n} from './V3/graphql';\n\nexport const graphTokenTypeToEngineTokenType = (\n graphTokenType: GraphTokenTypeV2 | GraphTokenTypeV3,\n): TokenType => {\n switch (graphTokenType) {\n case 'ERC20':\n return TokenType.ERC20;\n case 'ERC721':\n return TokenType.ERC721;\n case 'ERC1155':\n return TokenType.ERC1155;\n }\n};\n\nexport const formatSerializedToken = (\n graphToken: GraphTokenV2 | GraphTokenV3,\n): TokenData => {\n return serializeTokenData(\n graphToken.tokenAddress,\n graphTokenTypeToEngineTokenType(graphToken.tokenType),\n graphToken.tokenSubID,\n );\n};\n\nexport const formatPreImage = (\n graphPreImage: GraphCommitmentPreimageV2 | GraphCommitmentPreimageV3,\n): PreImage => {\n return serializePreImage(\n graphPreImage.npk,\n formatSerializedToken(graphPreImage.token),\n BigInt(graphPreImage.value),\n );\n};\n\nexport const formatTo16Bytes = (value: string, prefix: boolean) => {\n return ByteUtils.formatToByteLength(value, ByteLength.UINT_128, prefix);\n};\n\nexport const formatTo32Bytes = (value: string, prefix: boolean) => {\n return ByteUtils.formatToByteLength(value, ByteLength.UINT_256, prefix);\n};\n\nexport const bigIntStringToHex = (bigintString: string): string => {\n return `0x${BigInt(bigintString).toString(16)}`;\n};\n"]}
|
|
@@ -9,7 +9,7 @@ const bytes_1 = require("../bytes");
|
|
|
9
9
|
chai_1.default.use(chai_as_promised_1.default);
|
|
10
10
|
const { expect } = chai_1.default;
|
|
11
11
|
describe('bytes-util', () => {
|
|
12
|
-
it('Should parse
|
|
12
|
+
it('Should parse dop balance addresses', () => {
|
|
13
13
|
expect((0, bytes_1.parseDopTokenAddress)('00')).to.equal('0x0000000000000000000000000000000000000000');
|
|
14
14
|
expect((0, bytes_1.parseDopTokenAddress)('123456789012345678901234567890')).to.equal('0x0000000000123456789012345678901234567890');
|
|
15
15
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bytes-util.test.js","sourceRoot":"","sources":["../../../../../src/services/dop/util/__tests__/bytes-util.test.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AACxB,wEAA8C;AAC9C,oCAAgE;AAEhE,cAAI,CAAC,GAAG,CAAC,0BAAc,CAAC,CAAC;AACzB,MAAM,EAAE,MAAM,EAAE,GAAG,cAAI,CAAC;AAExB,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"bytes-util.test.js","sourceRoot":"","sources":["../../../../../src/services/dop/util/__tests__/bytes-util.test.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AACxB,wEAA8C;AAC9C,oCAAgE;AAEhE,cAAI,CAAC,GAAG,CAAC,0BAAc,CAAC,CAAC;AACzB,MAAM,EAAE,MAAM,EAAE,GAAG,cAAI,CAAC;AAExB,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,CAAC,IAAA,4BAAoB,EAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CACzC,4CAA4C,CAC7C,CAAC;QACF,MAAM,CAAC,IAAA,4BAAoB,EAAC,gCAAgC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CACrE,4CAA4C,CAC7C,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,IAAA,sBAAc,EAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,IAAA,sBAAc,EAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/C,MAAM,CAAC,IAAA,sBAAc,EAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/C,MAAM,CAAC,IAAA,sBAAc,EAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import chai from 'chai';\nimport chaiAsPromised from 'chai-as-promised';\nimport { getRandomBytes, parseDopTokenAddress } from '../bytes';\n\nchai.use(chaiAsPromised);\nconst { expect } = chai;\n\ndescribe('bytes-util', () => {\n it('Should parse dop balance addresses', () => {\n expect(parseDopTokenAddress('00')).to.equal(\n '0x0000000000000000000000000000000000000000',\n );\n expect(parseDopTokenAddress('123456789012345678901234567890')).to.equal(\n '0x0000000000123456789012345678901234567890',\n );\n });\n\n it('Should return random bytes of length', () => {\n expect(getRandomBytes(1).length).to.equal(2);\n expect(getRandomBytes(16).length).to.equal(32);\n expect(getRandomBytes(32).length).to.equal(64);\n expect(getRandomBytes(80).length).to.equal(160);\n });\n});\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ByteLength, ByteUtils, fromUTF8String, toUTF8String, Database } from 'dop-engine-
|
|
1
|
+
import { ByteLength, ByteUtils, fromUTF8String, toUTF8String, Database } from 'dop-engine-v3';
|
|
2
2
|
export declare const parseDopTokenAddress: (tokenAddress: string) => string;
|
|
3
3
|
export declare const getRandomBytes: (length: number) => string;
|
|
4
4
|
export declare const bytesToHex: (bytes: Uint8Array) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bytes.js","sourceRoot":"","sources":["../../../../src/services/dop/util/bytes.ts"],"names":[],"mappings":";;;AAAA,iDAMuB;AAcd,2FAnBP,0BAAU,OAmBO;AAAE,0FAlBnB,yBAAS,OAkBmB;AAAE,+FAjB9B,8BAAc,OAiB8B;AAAE,6FAhB9C,4BAAY,OAgB8C;AAAE,yFAf5D,wBAAQ,OAe4D;AAZ/D,MAAM,oBAAoB,GAAG,CAAC,YAAoB,EAAU,EAAE;IACnE,OAAO,yBAAS,CAAC,kBAAkB,CAAC,YAAY,EAAE,0BAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC9E,CAAC,CAAC;AAFW,QAAA,oBAAoB,wBAE/B;AAEK,MAAM,cAAc,GAAG,CAAC,MAAc,EAAU,EAAE;IACvD,OAAO,yBAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC,CAAC;AAFW,QAAA,cAAc,kBAEzB;AAEK,MAAM,UAAU,GAAG,CAAC,KAAiB,EAAU,EAAE;IACtD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC,CAAC;AAFW,QAAA,UAAU,cAErB","sourcesContent":["import {\n ByteLength,\n ByteUtils,\n fromUTF8String,\n toUTF8String,\n Database,\n} from 'dop-engine-
|
|
1
|
+
{"version":3,"file":"bytes.js","sourceRoot":"","sources":["../../../../src/services/dop/util/bytes.ts"],"names":[],"mappings":";;;AAAA,iDAMuB;AAcd,2FAnBP,0BAAU,OAmBO;AAAE,0FAlBnB,yBAAS,OAkBmB;AAAE,+FAjB9B,8BAAc,OAiB8B;AAAE,6FAhB9C,4BAAY,OAgB8C;AAAE,yFAf5D,wBAAQ,OAe4D;AAZ/D,MAAM,oBAAoB,GAAG,CAAC,YAAoB,EAAU,EAAE;IACnE,OAAO,yBAAS,CAAC,kBAAkB,CAAC,YAAY,EAAE,0BAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC9E,CAAC,CAAC;AAFW,QAAA,oBAAoB,wBAE/B;AAEK,MAAM,cAAc,GAAG,CAAC,MAAc,EAAU,EAAE;IACvD,OAAO,yBAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC,CAAC;AAFW,QAAA,cAAc,kBAEzB;AAEK,MAAM,UAAU,GAAG,CAAC,KAAiB,EAAU,EAAE;IACtD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC,CAAC;AAFW,QAAA,UAAU,cAErB","sourcesContent":["import {\n ByteLength,\n ByteUtils,\n fromUTF8String,\n toUTF8String,\n Database,\n} from 'dop-engine-v3';\n\nexport const parseDopTokenAddress = (tokenAddress: string): string => {\n return ByteUtils.formatToByteLength(tokenAddress, ByteLength.Address, true);\n};\n\nexport const getRandomBytes = (length: number): string => {\n return ByteUtils.randomHex(length);\n};\n\nexport const bytesToHex = (bytes: Uint8Array): string => {\n return Buffer.from(bytes).toString('hex');\n};\n\nexport { ByteLength, ByteUtils, fromUTF8String, toUTF8String, Database };\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { encryptJSONDataWithSharedKey, tryDecryptJSONDataWithSharedKey, getPublicViewingKey, EncryptedData, ViewingKeyPair } from 'dop-engine-
|
|
2
|
-
import { EncryptDataWithSharedKeyResponse } from 'dop-sharedmodels-
|
|
1
|
+
import { encryptJSONDataWithSharedKey, tryDecryptJSONDataWithSharedKey, getPublicViewingKey, EncryptedData, ViewingKeyPair } from 'dop-engine-v3';
|
|
2
|
+
import { EncryptDataWithSharedKeyResponse } from 'dop-sharedmodels-v3';
|
|
3
3
|
export declare const verifyBroadcasterSignature: (signature: string | Uint8Array, data: string | Uint8Array, signingKey: Uint8Array) => Promise<boolean>;
|
|
4
4
|
export declare const encryptDataWithSharedKey: (data: object, externalPubKey: Uint8Array) => Promise<EncryptDataWithSharedKeyResponse>;
|
|
5
5
|
export declare const decryptAESGCM256: (encryptedData: EncryptedData, sharedKey: Uint8Array) => object | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../../../src/services/dop/util/crypto.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAqC;AACrC,iDAQuB;AAkFrB,6GAxFA,4CAA4B,OAwFA;AAC5B,gHAxFA,+CAA+B,OAwFA;AAE/B,oGAzFA,mCAAmB,OAyFA;AAnFrB,mCAAyC;AACzC,+BAAiC;AACjC,mCAA8C;AAC9C,yDAAkE;AAClE,uCAA0C;AAEnC,MAAM,0BAA0B,GAAG,CACxC,SAA8B,EAC9B,IAAyB,EACzB,UAAsB,EACJ,EAAE;IACpB,OAAO,IAAA,6BAAa,EAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AACpD,CAAC,CAAC;AANW,QAAA,0BAA0B,8BAMrC;AAEK,MAAM,wBAAwB,GAAG,KAAK,EAC3C,IAAY,EACZ,cAA0B,EACiB,EAAE;IAC7C,MAAM,aAAa,GAAG,yBAAS,CAAC,gBAAgB,CAAC,IAAA,sBAAc,EAAC,EAAE,CAAC,CAAC,CAAC;IACrE,MAAM,sBAAsB,GAAG,MAAM,IAAA,mCAAmB,EAAC,aAAa,CAAC,CAAC;IACxE,MAAM,YAAY,GAAG,yBAAS,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,eAAe,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IAC1E,MAAM,aAAa,GAAG,IAAA,4CAA4B,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACpE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;AACpD,CAAC,CAAC;AAVW,QAAA,wBAAwB,4BAUnC;AAEK,MAAM,gBAAgB,GAAG,CAC9B,aAA4B,EAC5B,SAAqB,EACN,EAAE;IACjB,OAAO,IAAA,+CAA+B,EAAC,aAAa,EAAE,SAAS,CAAC,CAAC;AACnE,CAAC,CAAC;AALW,QAAA,gBAAgB,oBAK3B;AAEK,MAAM,gBAAgB,GAAG,CAC9B,IAAY,EACZ,SAAqB,EACN,EAAE;IACjB,OAAO,IAAA,4CAA4B,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACvD,CAAC,CAAC;AALW,QAAA,gBAAgB,oBAK3B;AAEF;;;;;GAKG;AACI,MAAM,MAAM,GAAG,KAAK,EACzB,MAAc,EACd,IAAY,EACZ,UAAkB,EACD,EAAE;IACnB,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClD,MAAM,eAAe,GAAG,IAAI,UAAU,CAAC,yBAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;IACzE,MAAM,aAAa,GAAG,IAAI,UAAU,CAAC,yBAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAE/D,MAAM,SAAS,GAAG,EAAE,CAAC,CAAC,QAAQ;IAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC;IAExB,IAAI,GAAwB,CAAC;IAC7B,IAAI,uBAAa,EAAE;QACjB,GAAG,GAAG,MAAM,IAAA,eAAQ,EAClB,eAAe,EACf,aAAa,EACb,UAAU,EACV,SAAS,EACT,MAAM,CACP,CAAC;KACH;SAAM;QACL,GAAG,GAAG,MAAM,IAAA,gBAAS,EAAC,eAAU,CAAC,CAC/B,eAAe,EACf,aAAa,EACb,UAAU,EACV,SAAS,EACT,MAAM,CACP,CAAC;KACH;IACD,OAAO,yBAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC,CAAC;AA/BW,QAAA,MAAM,UA+BjB","sourcesContent":["import * as ed from '@noble/ed25519';\nimport {\n ByteUtils,\n encryptJSONDataWithSharedKey,\n tryDecryptJSONDataWithSharedKey,\n getPublicViewingKey,\n verifyED25519,\n EncryptedData,\n ViewingKeyPair,\n} from 'dop-engine-
|
|
1
|
+
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../../../src/services/dop/util/crypto.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAqC;AACrC,iDAQuB;AAkFrB,6GAxFA,4CAA4B,OAwFA;AAC5B,gHAxFA,+CAA+B,OAwFA;AAE/B,oGAzFA,mCAAmB,OAyFA;AAnFrB,mCAAyC;AACzC,+BAAiC;AACjC,mCAA8C;AAC9C,yDAAkE;AAClE,uCAA0C;AAEnC,MAAM,0BAA0B,GAAG,CACxC,SAA8B,EAC9B,IAAyB,EACzB,UAAsB,EACJ,EAAE;IACpB,OAAO,IAAA,6BAAa,EAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AACpD,CAAC,CAAC;AANW,QAAA,0BAA0B,8BAMrC;AAEK,MAAM,wBAAwB,GAAG,KAAK,EAC3C,IAAY,EACZ,cAA0B,EACiB,EAAE;IAC7C,MAAM,aAAa,GAAG,yBAAS,CAAC,gBAAgB,CAAC,IAAA,sBAAc,EAAC,EAAE,CAAC,CAAC,CAAC;IACrE,MAAM,sBAAsB,GAAG,MAAM,IAAA,mCAAmB,EAAC,aAAa,CAAC,CAAC;IACxE,MAAM,YAAY,GAAG,yBAAS,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,eAAe,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IAC1E,MAAM,aAAa,GAAG,IAAA,4CAA4B,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACpE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;AACpD,CAAC,CAAC;AAVW,QAAA,wBAAwB,4BAUnC;AAEK,MAAM,gBAAgB,GAAG,CAC9B,aAA4B,EAC5B,SAAqB,EACN,EAAE;IACjB,OAAO,IAAA,+CAA+B,EAAC,aAAa,EAAE,SAAS,CAAC,CAAC;AACnE,CAAC,CAAC;AALW,QAAA,gBAAgB,oBAK3B;AAEK,MAAM,gBAAgB,GAAG,CAC9B,IAAY,EACZ,SAAqB,EACN,EAAE;IACjB,OAAO,IAAA,4CAA4B,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACvD,CAAC,CAAC;AALW,QAAA,gBAAgB,oBAK3B;AAEF;;;;;GAKG;AACI,MAAM,MAAM,GAAG,KAAK,EACzB,MAAc,EACd,IAAY,EACZ,UAAkB,EACD,EAAE;IACnB,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClD,MAAM,eAAe,GAAG,IAAI,UAAU,CAAC,yBAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;IACzE,MAAM,aAAa,GAAG,IAAI,UAAU,CAAC,yBAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAE/D,MAAM,SAAS,GAAG,EAAE,CAAC,CAAC,QAAQ;IAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC;IAExB,IAAI,GAAwB,CAAC;IAC7B,IAAI,uBAAa,EAAE;QACjB,GAAG,GAAG,MAAM,IAAA,eAAQ,EAClB,eAAe,EACf,aAAa,EACb,UAAU,EACV,SAAS,EACT,MAAM,CACP,CAAC;KACH;SAAM;QACL,GAAG,GAAG,MAAM,IAAA,gBAAS,EAAC,eAAU,CAAC,CAC/B,eAAe,EACf,aAAa,EACb,UAAU,EACV,SAAS,EACT,MAAM,CACP,CAAC;KACH;IACD,OAAO,yBAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC,CAAC;AA/BW,QAAA,MAAM,UA+BjB","sourcesContent":["import * as ed from '@noble/ed25519';\nimport {\n ByteUtils,\n encryptJSONDataWithSharedKey,\n tryDecryptJSONDataWithSharedKey,\n getPublicViewingKey,\n verifyED25519,\n EncryptedData,\n ViewingKeyPair,\n} from 'dop-engine-v3';\nimport { EncryptDataWithSharedKeyResponse } from 'dop-sharedmodels-v3';\nimport { getRandomBytes } from './bytes';\nimport { promisify } from 'util';\nimport { pbkdf2 as NodePbkdf2 } from 'crypto';\nimport { pbkdf2 as JSpbkdf2 } from 'ethereum-cryptography/pbkdf2';\nimport { isReactNative } from './runtime';\n\nexport const verifyBroadcasterSignature = (\n signature: string | Uint8Array,\n data: string | Uint8Array,\n signingKey: Uint8Array,\n): Promise<boolean> => {\n return verifyED25519(data, signature, signingKey);\n};\n\nexport const encryptDataWithSharedKey = async (\n data: object,\n externalPubKey: Uint8Array,\n): Promise<EncryptDataWithSharedKeyResponse> => {\n const randomPrivKey = ByteUtils.hexStringToBytes(getRandomBytes(32));\n const randomPubKeyUint8Array = await getPublicViewingKey(randomPrivKey);\n const randomPubKey = ByteUtils.hexlify(randomPubKeyUint8Array);\n const sharedKey = await ed.getSharedSecret(randomPrivKey, externalPubKey);\n const encryptedData = encryptJSONDataWithSharedKey(data, sharedKey);\n return { encryptedData, randomPubKey, sharedKey };\n};\n\nexport const decryptAESGCM256 = (\n encryptedData: EncryptedData,\n sharedKey: Uint8Array,\n): object | null => {\n return tryDecryptJSONDataWithSharedKey(encryptedData, sharedKey);\n};\n\nexport const encryptAESGCM256 = (\n data: object,\n sharedKey: Uint8Array,\n): EncryptedData => {\n return encryptJSONDataWithSharedKey(data, sharedKey);\n};\n\n/**\n * Calculates PBKDF2 hash\n * @param secret - input\n * @param salt - salt\n * @param iterations - rounds\n */\nexport const pbkdf2 = async (\n secret: string,\n salt: string,\n iterations: number,\n): Promise<string> => {\n const secretBuffer = Buffer.from(secret, 'utf-8');\n const secretFormatted = new Uint8Array(ByteUtils.arrayify(secretBuffer));\n const saltFormatted = new Uint8Array(ByteUtils.arrayify(salt));\n\n const keyLength = 32; // Bytes\n const digest = 'sha256';\n\n let key: Uint8Array | Buffer;\n if (isReactNative) {\n key = await JSpbkdf2(\n secretFormatted,\n saltFormatted,\n iterations,\n keyLength,\n digest,\n );\n } else {\n key = await promisify(NodePbkdf2)(\n secretFormatted,\n saltFormatted,\n iterations,\n keyLength,\n digest,\n );\n }\n return ByteUtils.hexlify(key);\n};\n\nexport {\n encryptJSONDataWithSharedKey,\n tryDecryptJSONDataWithSharedKey,\n EncryptedData,\n getPublicViewingKey,\n ViewingKeyPair,\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"balances-live.test.js","sourceRoot":"","sources":["../../../../../src/services/dop/wallets/__tests__/balances-live.test.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AACxB,wEAA8C;AAC9C,6DAIsC;AACtC,6DAKsC;AACtC,wCAA8D;AAC9D,0CAAkE;AAClE,6DAK6B;AAC7B,4DAAwD;AAExD,+DAA6E;AAC7E,8CAA8C;AAE9C,cAAI,CAAC,GAAG,CAAC,0BAAc,CAAC,CAAC;AACzB,MAAM,EAAE,MAAM,EAAE,GAAG,cAAI,CAAC;AAExB,IAAI,WAAmB,CAAC;AAExB,MAAM,WAAW,GAAG,IAAA,gCAAkB,GAAE,CAAC;AAEzC,MAAM,WAAW,GAAG,iCAAW,CAAC,eAAe,CAAC;AAChD,MAAM,KAAK,GAAU,oCAAc,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC;AAEvD,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,MAAM,CAAC,KAAK,UAAU,GAAG;QACvB,IAAI,CAAC,OAAO,CAAC,MAAO,CAAC,CAAC;QACtB,MAAM,IAAA,2BAAc,GAAE,CAAC;QACvB,MAAM,aAAa,GAAG,MAAM,IAAA,yBAAe,EACzC,mCAAsB,EACtB,0BAAa,EACb,SAAS,CACV,CAAC;QACF,IAAI,CAAC,IAAA,+BAAS,EAAC,aAAa,CAAC,EAAE;YAC7B,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;SAC3C;QACD,WAAW,GAAG,aAAa,CAAC,EAAE,CAAC;QAE/B,MAAM,IAAA,4BAAY,EAChB,uDAA0C,EAC1C,WAAW,EACX,KAAM,CACP,CAAC;QACF,MAAM,EAAE,KAAK,EAAE,GAAG,oCAAc,CAAC,WAAW,CAAC,CAAC;QAC9C,mEAAmE;QACnE,IAAA,kBAAS,GAAE,CAAC,mBAAmB,CAC7B,KAAK,EACL,SAAS,CACV,CAAC;QACF,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,IAAA,2CAA8B,GAAE;YAChC,yDAAyD;YACzD,IAAA,2CAA8B,GAAE;SACjC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,IAAA,4BAAe,GAAE,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wFAAwF,EAAE,KAAK,UAAU,GAAG;QAC7G,IAAI,CAAC,IAAA,sBAAQ,GAAE,EAAE;YACf,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,OAAO;SACR;QAED,MAAM,IAAA,8CAAmC,EAAC,KAAK,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QAEhE,MAAM,MAAM,GAAG,IAAA,yBAAe,EAAC,WAAW,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAC5C,WAAW,EACX,KAAK,EACL,KAAK,CACN,CAAC;QAEF,wFAAwF;QACxF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAEjE,MAAM,kBAAkB,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAC3D,KAAK,EACL,SAAS,CACV,CAAC;QACF,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC","sourcesContent":["import chai from 'chai';\nimport chaiAsPromised from 'chai-as-promised';\nimport {\n MOCK_DB_ENCRYPTION_KEY,\n MOCK_FALLBACK_PROVIDER_JSON_CONFIG_SEPOLIA,\n MOCK_MNEMONIC,\n} from '../../../../tests/mocks.test';\nimport {\n closeTestEngine,\n initTestEngine,\n pollUntilTXIDMerkletreeScanned,\n pollUntilUTXOMerkletreeScanned,\n} from '../../../../tests/setup.test';\nimport { createDopWallet, fullWalletForID } from '../wallets';\nimport { rescanFullUTXOMerkletreesAndWallets } from '../balances';\nimport {\n Chain,\n NETWORK_CONFIG,\n NetworkName,\n isDefined,\n} from 'dop-sharedmodels-
|
|
1
|
+
{"version":3,"file":"balances-live.test.js","sourceRoot":"","sources":["../../../../../src/services/dop/wallets/__tests__/balances-live.test.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AACxB,wEAA8C;AAC9C,6DAIsC;AACtC,6DAKsC;AACtC,wCAA8D;AAC9D,0CAAkE;AAClE,6DAK6B;AAC7B,4DAAwD;AAExD,+DAA6E;AAC7E,8CAA8C;AAE9C,cAAI,CAAC,GAAG,CAAC,0BAAc,CAAC,CAAC;AACzB,MAAM,EAAE,MAAM,EAAE,GAAG,cAAI,CAAC;AAExB,IAAI,WAAmB,CAAC;AAExB,MAAM,WAAW,GAAG,IAAA,gCAAkB,GAAE,CAAC;AAEzC,MAAM,WAAW,GAAG,iCAAW,CAAC,eAAe,CAAC;AAChD,MAAM,KAAK,GAAU,oCAAc,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC;AAEvD,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,MAAM,CAAC,KAAK,UAAU,GAAG;QACvB,IAAI,CAAC,OAAO,CAAC,MAAO,CAAC,CAAC;QACtB,MAAM,IAAA,2BAAc,GAAE,CAAC;QACvB,MAAM,aAAa,GAAG,MAAM,IAAA,yBAAe,EACzC,mCAAsB,EACtB,0BAAa,EACb,SAAS,CACV,CAAC;QACF,IAAI,CAAC,IAAA,+BAAS,EAAC,aAAa,CAAC,EAAE;YAC7B,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;SAC3C;QACD,WAAW,GAAG,aAAa,CAAC,EAAE,CAAC;QAE/B,MAAM,IAAA,4BAAY,EAChB,uDAA0C,EAC1C,WAAW,EACX,KAAM,CACP,CAAC;QACF,MAAM,EAAE,KAAK,EAAE,GAAG,oCAAc,CAAC,WAAW,CAAC,CAAC;QAC9C,mEAAmE;QACnE,IAAA,kBAAS,GAAE,CAAC,mBAAmB,CAC7B,KAAK,EACL,SAAS,CACV,CAAC;QACF,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,IAAA,2CAA8B,GAAE;YAChC,yDAAyD;YACzD,IAAA,2CAA8B,GAAE;SACjC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,IAAA,4BAAe,GAAE,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wFAAwF,EAAE,KAAK,UAAU,GAAG;QAC7G,IAAI,CAAC,IAAA,sBAAQ,GAAE,EAAE;YACf,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,OAAO;SACR;QAED,MAAM,IAAA,8CAAmC,EAAC,KAAK,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QAEhE,MAAM,MAAM,GAAG,IAAA,yBAAe,EAAC,WAAW,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAC5C,WAAW,EACX,KAAK,EACL,KAAK,CACN,CAAC;QAEF,wFAAwF;QACxF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAEjE,MAAM,kBAAkB,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAC3D,KAAK,EACL,SAAS,CACV,CAAC;QACF,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC","sourcesContent":["import chai from 'chai';\nimport chaiAsPromised from 'chai-as-promised';\nimport {\n MOCK_DB_ENCRYPTION_KEY,\n MOCK_FALLBACK_PROVIDER_JSON_CONFIG_SEPOLIA,\n MOCK_MNEMONIC,\n} from '../../../../tests/mocks.test';\nimport {\n closeTestEngine,\n initTestEngine,\n pollUntilTXIDMerkletreeScanned,\n pollUntilUTXOMerkletreeScanned,\n} from '../../../../tests/setup.test';\nimport { createDopWallet, fullWalletForID } from '../wallets';\nimport { rescanFullUTXOMerkletreesAndWallets } from '../balances';\nimport {\n Chain,\n NETWORK_CONFIG,\n NetworkName,\n isDefined,\n} from 'dop-sharedmodels-v3';\nimport { loadProvider } from '../../core/load-provider';\nimport { getTXIDMerkletreeForNetwork } from '../../core/merkletree';\nimport { getTestTXIDVersion, isV2Test } from '../../../../tests/helper.test';\nimport { getEngine } from '../../core/engine';\n\nchai.use(chaiAsPromised);\nconst { expect } = chai;\n\nlet dopWalletID: string;\n\nconst txidVersion = getTestTXIDVersion();\n\nconst networkName = NetworkName.EthereumSepolia;\nconst chain: Chain = NETWORK_CONFIG[networkName].chain;\n\ndescribe('balances-live', () => {\n before(async function run() {\n this.timeout(360_000);\n await initTestEngine();\n const dopWalletInfo = await createDopWallet(\n MOCK_DB_ENCRYPTION_KEY,\n MOCK_MNEMONIC,\n undefined, // creationBlockNumbers\n );\n if (!isDefined(dopWalletInfo)) {\n throw new Error('Expected dopWalletInfo');\n }\n dopWalletID = dopWalletInfo.id;\n\n await loadProvider(\n MOCK_FALLBACK_PROVIDER_JSON_CONFIG_SEPOLIA,\n networkName,\n 10_000, // pollingInterval\n );\n const { chain } = NETWORK_CONFIG[networkName];\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n getEngine().scanContractHistory(\n chain,\n undefined, // walletIdFilter\n );\n await Promise.all([\n pollUntilUTXOMerkletreeScanned(),\n // Enable this when running on a network supporting PPOI:\n pollUntilTXIDMerkletreeScanned(),\n ]);\n });\n\n after(async () => {\n await closeTestEngine();\n });\n\n it('[V2] Should run live balance fetch, transaction history scan, and POI status info scan', async function run() {\n if (!isV2Test()) {\n this.skip();\n return;\n }\n\n await rescanFullUTXOMerkletreesAndWallets(chain, [dopWalletID]);\n\n const wallet = fullWalletForID(dopWalletID);\n const balances = await wallet.getTokenBalances(\n txidVersion,\n chain,\n false, // onlySpendable\n );\n\n // Note: dopWallet above needs to perform transactions on above network to have balances\n expect(Object.keys(balances).length).to.be.greaterThanOrEqual(1);\n\n const transactionHistory = await wallet.getTransactionHistory(\n chain,\n undefined,\n );\n expect(transactionHistory.length).to.be.greaterThanOrEqual(2);\n }).timeout(90_000);\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"balances-update.test.js","sourceRoot":"","sources":["../../../../../src/services/dop/wallets/__tests__/balances-update.test.ts"],"names":[],"mappings":"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","sourcesContent":["import chai from 'chai';\nimport chaiAsPromised from 'chai-as-promised';\nimport {\n DopWallet,\n TokenBalances,\n Chain,\n ChainType,\n getTokenDataERC20,\n} from 'dop-engine-
|
|
1
|
+
{"version":3,"file":"balances-update.test.js","sourceRoot":"","sources":["../../../../../src/services/dop/wallets/__tests__/balances-update.test.ts"],"names":[],"mappings":"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","sourcesContent":["import chai from 'chai';\nimport chaiAsPromised from 'chai-as-promised';\nimport {\n DopWallet,\n TokenBalances,\n Chain,\n ChainType,\n getTokenDataERC20,\n} from 'dop-engine-v3';\nimport Sinon, { SinonStub } from 'sinon';\nimport {\n NETWORK_CONFIG,\n NetworkName,\n DopBalancesEvent,\n DopWalletBalanceBucket,\n isDefined,\n} from 'dop-sharedmodels-v3';\nimport {\n onBalancesUpdate,\n setOnBalanceUpdateCallback,\n} from '../balance-update';\nimport { createDopWallet, fullWalletForID } from '../wallets';\nimport {\n MOCK_DB_ENCRYPTION_KEY,\n MOCK_FALLBACK_PROVIDER_JSON_CONFIG_SEPOLIA,\n MOCK_MNEMONIC,\n} from '../../../../tests/mocks.test';\nimport { closeTestEngine, initTestEngine } from '../../../../tests/setup.test';\nimport { loadProvider } from '../../core/load-provider';\nimport { getTestTXIDVersion } from '../../../../tests/helper.test';\nimport { getEngine } from '../../core/engine';\n\nchai.use(chaiAsPromised);\nconst { expect } = chai;\n\nconst MOCK_TOKEN_ADDRESS = '0x012536';\n\nconst txidVersion = getTestTXIDVersion();\n\nlet wallet: DopWallet;\n\nlet walletBalanceStub: SinonStub;\nlet walletBalancesByBucketStub: SinonStub;\nlet walletTokenBalanceStub: SinonStub;\n\ndescribe('balances-update', () => {\n before(async function run() {\n this.timeout(60_000);\n await initTestEngine();\n const dopWalletInfo = await createDopWallet(\n MOCK_DB_ENCRYPTION_KEY,\n MOCK_MNEMONIC,\n undefined, // creationBlockNumbers\n );\n if (!isDefined(dopWalletInfo)) {\n throw new Error('Expected dopWalletInfo');\n }\n await loadProvider(\n MOCK_FALLBACK_PROVIDER_JSON_CONFIG_SEPOLIA,\n NetworkName.EthereumSepolia,\n 10_000, // pollingInterval\n );\n const { chain } = NETWORK_CONFIG[NetworkName.EthereumSepolia];\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n getEngine().scanContractHistory(\n chain,\n undefined, // walletIdFilter\n );\n wallet = fullWalletForID(dopWalletInfo.id);\n const tokenAddress = MOCK_TOKEN_ADDRESS.replace('0x', '');\n const tokenData = getTokenDataERC20(tokenAddress);\n const balances: TokenBalances = {\n [tokenAddress]: {\n balance: BigInt(10),\n utxos: [],\n tokenData,\n },\n };\n walletBalanceStub = Sinon.stub(\n DopWallet,\n 'getTokenBalancesByTxidVersion',\n ).resolves(balances);\n walletBalancesByBucketStub = Sinon.stub(\n DopWallet.prototype,\n 'getTokenBalancesByBucket',\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n ).resolves({ Spendable: balances } as any);\n walletTokenBalanceStub = Sinon.stub(\n DopWallet.prototype,\n 'getTokenBalances',\n ).resolves(balances);\n });\n\n afterEach(() => {\n walletBalanceStub.resetHistory();\n walletBalancesByBucketStub.resetHistory();\n walletTokenBalanceStub.resetHistory();\n });\n after(async () => {\n walletBalanceStub.restore();\n walletBalancesByBucketStub.restore();\n walletTokenBalanceStub.restore();\n await closeTestEngine();\n });\n\n it('Should not pull balances without callback', async () => {\n setOnBalanceUpdateCallback(undefined);\n const chain: Chain = { type: ChainType.EVM, id: 1 };\n await expect(onBalancesUpdate(txidVersion, wallet, chain)).to.be.fulfilled;\n expect(walletBalanceStub.notCalled).to.be.true;\n expect(walletBalancesByBucketStub.notCalled).to.be.true;\n });\n\n it('Should parse wallet balances response', async () => {\n let formattedBalances!: DopBalancesEvent;\n const callback = (balancesFormatted: DopBalancesEvent) => {\n formattedBalances = balancesFormatted;\n };\n setOnBalanceUpdateCallback(callback);\n const chain: Chain = { type: ChainType.EVM, id: 80001 };\n await expect(onBalancesUpdate(txidVersion, wallet, chain)).to.be.fulfilled;\n // TODO: enable this assertion once we have PPOI on PolygonMumbai\n // because `onBalancesUpdate` only runs it if PPOI is required:\n // expect(walletBalancesByBucketStub.calledOnce).to.be.true;\n expect(formattedBalances.balanceBucket).to.deep.equal(\n DopWalletBalanceBucket.Spendable,\n );\n expect(formattedBalances.chain).to.deep.equal(chain);\n expect(formattedBalances.erc20Amounts.length).to.equal(1);\n expect(formattedBalances.erc20Amounts[0]).to.deep.equal({\n tokenAddress: '0x0000000000000000000000000000000000012536',\n amount: 10n,\n });\n });\n\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"balances.test.js","sourceRoot":"","sources":["../../../../../src/services/dop/wallets/__tests__/balances.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { DopEngine, DopWallet } from 'dop-engine-
|
|
1
|
+
{"version":3,"file":"balances.test.js","sourceRoot":"","sources":["../../../../../src/services/dop/wallets/__tests__/balances.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { DopEngine, DopWallet } from 'dop-engine-v3';\nimport chai from 'chai';\nimport chaiAsPromised from 'chai-as-promised';\nimport Sinon, { SinonStub } from 'sinon';\nimport {\n MOCK_DB_ENCRYPTION_KEY,\n MOCK_MNEMONIC,\n} from '../../../../tests/mocks.test';\nimport { closeTestEngine, initTestEngine } from '../../../../tests/setup.test';\nimport { createDopWallet } from '../wallets';\nimport {\n refreshBalances,\n rescanFullUTXOMerkletreesAndWallets,\n} from '../balances';\nimport { Chain, ChainType, isDefined } from 'dop-sharedmodels-v3';\n\nchai.use(chaiAsPromised);\nconst { expect } = chai;\n\nlet walletScanStub: SinonStub;\nlet walletFullScanStub: SinonStub;\nlet engineScanStub: SinonStub;\nlet engineFullScanStub: SinonStub;\n\ndescribe('balances', () => {\n before(async () => {\n await initTestEngine();\n const dopWalletInfo = await createDopWallet(\n MOCK_DB_ENCRYPTION_KEY,\n MOCK_MNEMONIC,\n undefined, // creationBlockNumbers\n );\n if (!isDefined(dopWalletInfo)) {\n return;\n }\n walletScanStub = Sinon.stub(\n DopWallet.prototype,\n 'decryptBalances',\n ).resolves();\n\n engineScanStub = Sinon.stub(\n DopEngine.prototype,\n 'scanContractHistory',\n ).resolves();\n\n walletFullScanStub = Sinon.stub(\n DopWallet.prototype,\n 'fullRedecryptBalancesAllTXIDVersions',\n ).resolves();\n\n engineFullScanStub = Sinon.stub(\n DopEngine.prototype,\n 'fullRescanUTXOMerkletreesAndWallets',\n ).resolves();\n });\n afterEach(() => {\n walletScanStub.resetHistory();\n engineScanStub.resetHistory();\n walletFullScanStub.resetHistory();\n engineFullScanStub.resetHistory();\n });\n after(async () => {\n walletScanStub.restore();\n engineScanStub.restore();\n walletFullScanStub.restore();\n engineFullScanStub.restore();\n await closeTestEngine();\n });\n\n it('Should scan for updates to merkletree and wallets', async () => {\n const chain: Chain = { type: ChainType.EVM, id: 1 };\n const response = await refreshBalances(\n chain,\n undefined, // walletIdFilter\n );\n expect(response).to.be.undefined;\n expect(engineScanStub.calledOnce).to.be.true;\n });\n\n it('Should run full rescan of merkletree and wallets', async () => {\n const chain: Chain = { type: ChainType.EVM, id: 1 };\n const response = await rescanFullUTXOMerkletreesAndWallets(\n chain,\n undefined, // walletIdFilter\n );\n expect(response).to.be.undefined;\n expect(engineFullScanStub.calledOnce).to.be.true;\n });\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallets.test.js","sourceRoot":"","sources":["../../../../../src/services/dop/wallets/__tests__/wallets.test.ts"],"names":[],"mappings":"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","sourcesContent":["import chai from 'chai';\nimport chaiAsPromised from 'chai-as-promised';\nimport { getEngine } from '../../core/engine';\nimport {\n createDopWallet,\n createViewOnlyDopWallet,\n fullWalletForID,\n getDopAddress,\n getWalletMnemonic,\n getWalletShareableViewingKey,\n loadWalletByID,\n unloadWalletByID,\n validateDopAddress,\n viewOnlyWalletForID,\n} from '../wallets';\nimport {\n MOCK_DB_ENCRYPTION_KEY,\n MOCK_MNEMONIC_2,\n} from '../../../../tests/mocks.test';\nimport {\n closeTestEngine,\n initTestEngine,\n initTestEngineNetworks,\n} from '../../../../tests/setup.test';\nimport { DopWallet } from 'dop-engine-
|
|
1
|
+
{"version":3,"file":"wallets.test.js","sourceRoot":"","sources":["../../../../../src/services/dop/wallets/__tests__/wallets.test.ts"],"names":[],"mappings":"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","sourcesContent":["import chai from 'chai';\nimport chaiAsPromised from 'chai-as-promised';\nimport { getEngine } from '../../core/engine';\nimport {\n createDopWallet,\n createViewOnlyDopWallet,\n fullWalletForID,\n getDopAddress,\n getWalletMnemonic,\n getWalletShareableViewingKey,\n loadWalletByID,\n unloadWalletByID,\n validateDopAddress,\n viewOnlyWalletForID,\n} from '../wallets';\nimport {\n MOCK_DB_ENCRYPTION_KEY,\n MOCK_MNEMONIC_2,\n} from '../../../../tests/mocks.test';\nimport {\n closeTestEngine,\n initTestEngine,\n initTestEngineNetworks,\n} from '../../../../tests/setup.test';\nimport { DopWallet } from 'dop-engine-v3';\nimport { NetworkName, isDefined } from 'dop-sharedmodels-v3';\n\nchai.use(chaiAsPromised);\nconst { expect } = chai;\n\nlet wallet: DopWallet;\n\ndescribe('wallets', () => {\n before(async function run() {\n this.timeout(60_000);\n await initTestEngine();\n await initTestEngineNetworks();\n const dopWalletInfo = await createDopWallet(\n MOCK_DB_ENCRYPTION_KEY,\n MOCK_MNEMONIC_2,\n { [NetworkName.Ethereum]: 0, [NetworkName.Polygon]: 2 }, // creationBlockNumbers\n );\n if (!isDefined(dopWalletInfo)) {\n throw new Error(`Could not create wallet`);\n }\n wallet = fullWalletForID(dopWalletInfo.id);\n });\n after(async () => {\n await closeTestEngine();\n });\n\n it('Should create view only wallet', async () => {\n const dopWalletInfo = await createViewOnlyDopWallet(\n MOCK_DB_ENCRYPTION_KEY,\n wallet.generateShareableViewingKey(),\n undefined, // creationBlockNumbers\n );\n if (!isDefined(dopWalletInfo)) {\n throw new Error('Could not create view-only wallet');\n }\n const viewOnlyWallet = viewOnlyWalletForID(dopWalletInfo.id);\n expect(viewOnlyWallet).to.not.be.undefined;\n expect(dopWalletInfo.dopAddress).to.equal(wallet.getAddress());\n }).timeout(60_000);\n\n it('Should get wallet address', () => {\n const addressAny = getDopAddress(wallet.id);\n expect(addressAny).to.equal(\n '0zk1qykzjxctynyz4z43pukckpv43jyzhyvy0ehrd5wuc54l5enqf9qfrrv7j6fe3z53la7enqphqvxys9aqyp9xx0km95ehqslx8apmu8l7anc7emau4tvsultrkvd',\n );\n });\n\n it('Should get wallet shareable viewing key', async () => {\n const shareableKey = await getWalletShareableViewingKey(wallet.id);\n expect(shareableKey).to.equal(\n '82a57670726976d94032643030623234396632646337313236303565336263653364373665376631313931373933363436393365333931666566643963323764303161396262336433a473707562d94030633661376436386331663437303262613764666134613361353236323035303765386637366632393139326363666637653861366231303637393062316165',\n );\n });\n\n it('Should get wallet mnemonic', async () => {\n const mnemonic = await getWalletMnemonic(MOCK_DB_ENCRYPTION_KEY, wallet.id);\n expect(mnemonic).to.equal(MOCK_MNEMONIC_2);\n });\n\n it('Should create and load wallet from valid mnemonic', async () => {\n const dopWalletInfo = await createDopWallet(\n MOCK_DB_ENCRYPTION_KEY,\n MOCK_MNEMONIC_2,\n undefined, // creationBlockNumbers\n );\n expect(dopWalletInfo.dopAddress).to.be.a('string');\n expect(dopWalletInfo.id).to.equal(wallet.id);\n\n const loadWalletInfo = await loadWalletByID(\n MOCK_DB_ENCRYPTION_KEY,\n dopWalletInfo.id,\n false, // isViewOnlyWallet\n );\n expect(loadWalletInfo.dopAddress).to.be.a('string');\n expect(loadWalletInfo.id).to.equal(wallet.id);\n });\n\n it('Should load wallet from db after Engine wallet unload', async () => {\n expect(Object.keys(getEngine().wallets)).to.include(wallet.id);\n unloadWalletByID(wallet.id);\n expect(Object.keys(getEngine().wallets)).to.not.include(wallet.id);\n const dopWalletInfo = await loadWalletByID(\n MOCK_DB_ENCRYPTION_KEY,\n wallet.id,\n false, // isViewOnlyWallet\n );\n expect(dopWalletInfo.id).to.equal(wallet.id);\n expect(dopWalletInfo.dopAddress).to.equal(\n wallet.getAddress(undefined),\n );\n });\n\n it('Should error for unknown load wallet', async () => {\n await expect(\n loadWalletByID(\n MOCK_DB_ENCRYPTION_KEY,\n 'unknown',\n false, // isViewOnlyWallet\n ),\n ).rejectedWith('Could not load DOP wallet');\n });\n\n it('Should validate DOP addresses', async () => {\n expect(validateDopAddress('0x9E9F988356f46744Ee0374A17a5Fa1a3A3cC3777'))\n .to.be.false;\n expect(validateDopAddress('9E9F988356f46744Ee0374A17a5Fa1a3A3cC3777'))\n .to.be.false;\n expect(\n validateDopAddress(\n 'rgtestropsten1qyglk9smgj240x2xmj2laj7p5hexw0a30vvdqnv9gk020nsd7yzgwkgce9x',\n ),\n ).to.be.false;\n expect(\n validateDopAddress(\n '0zk1q8hxknrs97q8pjxaagwthzc0df99rzmhl2xnlxmgv9akv32sua0kfrv7j6fe3z53llhxknrs97q8pjxaagwthzc0df99rzmhl2xnlxmgv9akv32sua0kg0zpzts',\n ),\n ).to.be.true;\n expect(\n validateDopAddress(\n '0zk1qyqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqunpd9kxwatwqyqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqhshkca',\n ),\n ).to.be.true;\n });\n});\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Chain, AbstractWallet, TokenType, TokenBalances, NFTTokenData, getTokenDataHash, getTokenDataNFT, getTokenDataERC20 } from 'dop-engine-
|
|
2
|
-
import { DopBalancesEvent, DopNFTAmount, DopERC20Amount, NetworkName, TXIDVersion, NFTTokenType } from 'dop-sharedmodels-
|
|
1
|
+
import { Chain, AbstractWallet, TokenType, TokenBalances, NFTTokenData, getTokenDataHash, getTokenDataNFT, getTokenDataERC20 } from 'dop-engine-v3';
|
|
2
|
+
import { DopBalancesEvent, DopNFTAmount, DopERC20Amount, NetworkName, TXIDVersion, NFTTokenType } from 'dop-sharedmodels-v3';
|
|
3
3
|
export type BalancesUpdatedCallback = (balancesEvent: DopBalancesEvent) => void;
|
|
4
4
|
export declare const setOnBalanceUpdateCallback: (callback?: BalancesUpdatedCallback) => void;
|
|
5
5
|
export declare const getSerializedERC20Balances: (balances: TokenBalances) => DopERC20Amount[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"balance-update.js","sourceRoot":"","sources":["../../../../src/services/dop/wallets/balance-update.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Chain,\n AbstractWallet,\n TokenType,\n TokenBalances,\n NFTTokenData,\n getTokenDataHash,\n getTokenDataNFT,\n getTokenDataERC20,\n} from 'dop-engine-v5';\nimport {\n DopBalancesEvent,\n DopNFTAmount,\n DopERC20Amount,\n NetworkName,\n NETWORK_CONFIG,\n TXIDVersion,\n NFTTokenType,\n DopWalletBalanceBucket,\n isDefined,\n networkForChain,\n} from 'dop-sharedmodels-v5';\nimport { sendErrorMessage, sendMessage } from '../../../utils/logger';\nimport { parseDopTokenAddress } from '../util/bytes';\nimport { getEngine } from '../core/engine';\n\nexport type BalancesUpdatedCallback = (\n balancesEvent: DopBalancesEvent,\n) => void;\n\nlet onBalanceUpdateCallback: Optional<BalancesUpdatedCallback>;\n\nexport const setOnBalanceUpdateCallback = (\n callback?: BalancesUpdatedCallback,\n) => {\n onBalanceUpdateCallback = callback;\n};\n\nexport const getSerializedERC20Balances = (\n balances: TokenBalances,\n): DopERC20Amount[] => {\n const tokenHashes = Object.keys(balances);\n return tokenHashes\n .filter(tokenHash => {\n return balances[tokenHash].tokenData.tokenType === TokenType.ERC20;\n })\n .map(dopBalanceAddress => {\n const erc20Balance: DopERC20Amount = {\n tokenAddress: parseDopTokenAddress(\n balances[dopBalanceAddress].tokenData.tokenAddress,\n ).toLowerCase(),\n amount: balances[dopBalanceAddress].balance,\n };\n return erc20Balance;\n });\n};\n\nexport const getSerializedNFTBalances = (\n balances: TokenBalances,\n): DopNFTAmount[] => {\n const tokenHashes = Object.keys(balances);\n\n return tokenHashes\n .filter(tokenHash => {\n return [TokenType.ERC721, TokenType.ERC1155].includes(\n balances[tokenHash].tokenData.tokenType,\n );\n })\n .map(dopBalanceAddress => {\n const balanceForToken = balances[dopBalanceAddress];\n const tokenData = balanceForToken.tokenData;\n const nftBalance: DopNFTAmount = {\n nftAddress: parseDopTokenAddress(\n tokenData.tokenAddress,\n ).toLowerCase(),\n tokenSubID: tokenData.tokenSubID,\n nftTokenType: tokenData.tokenType as 1 | 2,\n amount: balanceForToken.balance,\n };\n return nftBalance;\n });\n};\n\nconst getNFTBalances = (balances: TokenBalances): DopNFTAmount[] => {\n const tokenHashes = Object.keys(balances);\n\n return tokenHashes\n .filter(tokenHash => {\n return (\n [TokenType.ERC721, TokenType.ERC1155].includes(\n balances[tokenHash].tokenData.tokenType,\n ) && balances[tokenHash].balance > BigInt(0)\n );\n })\n .map(tokenHash => {\n const tokenData = balances[tokenHash].tokenData;\n\n const nftBalance: DopNFTAmount = {\n nftAddress: parseDopTokenAddress(\n tokenData.tokenAddress,\n ).toLowerCase(),\n nftTokenType: tokenData.tokenType as 1 | 2,\n tokenSubID: tokenData.tokenSubID,\n amount: balances[tokenHash].balance,\n };\n return nftBalance;\n });\n};\n\nexport const onBalancesUpdate = async (\n txidVersion: TXIDVersion,\n wallet: AbstractWallet,\n chain: Chain,\n): Promise<void> => {\n try {\n if (!onBalanceUpdateCallback) {\n return;\n }\n\n sendMessage(\n `Wallet balance SCANNED. Getting balances for chain ${chain.type}:${chain.id}.`,\n );\n\n const network = networkForChain(chain);\n if (!network) {\n return;\n }\n\n const tokenBalancesByBucket = await wallet.getTokenBalancesByBucket(\n txidVersion,\n chain,\n );\n\n const balanceBuckets = Object.values(DopWalletBalanceBucket);\n\n balanceBuckets.forEach(balanceBucket => {\n if (!onBalanceUpdateCallback) {\n return;\n }\n\n const tokenBalances = tokenBalancesByBucket[balanceBucket];\n\n if (!isDefined(tokenBalances)) {\n return;\n }\n\n const erc20Amounts = getSerializedERC20Balances(tokenBalances);\n const nftAmounts = getNFTBalances(tokenBalances);\n\n const balancesEvent: DopBalancesEvent = {\n txidVersion,\n chain,\n erc20Amounts,\n nftAmounts,\n dopWalletID: wallet.id,\n balanceBucket,\n };\n\n onBalanceUpdateCallback(balancesEvent);\n });\n } catch (err) {\n\n if (!(err instanceof Error)) {\n return;\n }\n sendMessage(\n `Error getting balances for chain ${chain.type}:${chain.id}: ${err.message}`,\n );\n sendErrorMessage(err);\n }\n};\n\nconst getAllBalancesAsSpendable = async (\n txidVersion: TXIDVersion,\n wallet: AbstractWallet,\n chain: Chain,\n) => {\n if (!onBalanceUpdateCallback) {\n return;\n }\n\n const tokenBalances = await wallet.getTokenBalances(\n txidVersion,\n chain,\n false, // onlySpendable\n );\n\n const erc20Amounts = getSerializedERC20Balances(tokenBalances);\n const nftAmounts = getNFTBalances(tokenBalances);\n\n const balancesEvent: DopBalancesEvent = {\n txidVersion,\n chain,\n erc20Amounts,\n nftAmounts,\n dopWalletID: wallet.id,\n balanceBucket: DopWalletBalanceBucket.Spendable,\n };\n\n onBalanceUpdateCallback(balancesEvent);\n};\n\nexport const balanceForERC20Token = async (\n txidVersion: TXIDVersion,\n wallet: AbstractWallet,\n networkName: NetworkName,\n tokenAddress: string,\n onlySpendable: boolean,\n): Promise<bigint> => {\n const { chain } = NETWORK_CONFIG[networkName];\n const balances = await wallet.getTokenBalances(\n txidVersion,\n chain,\n onlySpendable,\n );\n const tokenBalances = getSerializedERC20Balances(balances);\n\n const matchingTokenBalance: Optional<DopERC20Amount> = tokenBalances.find(\n tokenBalance =>\n tokenBalance.tokenAddress.toLowerCase() === tokenAddress.toLowerCase(),\n );\n if (!matchingTokenBalance) {\n return 0n;\n }\n return matchingTokenBalance.amount;\n};\n\nexport const balanceForNFT = async (\n txidVersion: TXIDVersion,\n wallet: AbstractWallet,\n networkName: NetworkName,\n nftTokenData: NFTTokenData,\n onlySpendable: boolean,\n): Promise<bigint> => {\n const { chain } = NETWORK_CONFIG[networkName];\n const balances = await wallet.getTokenBalances(\n txidVersion,\n chain,\n onlySpendable,\n );\n const nftBalances = getSerializedNFTBalances(balances);\n\n const matchingNFTBalance: Optional<DopNFTAmount> = nftBalances.find(\n nftBalance =>\n nftBalance.nftAddress.toLowerCase() ===\n nftTokenData.tokenAddress.toLowerCase() &&\n BigInt(nftBalance.tokenSubID) === BigInt(nftTokenData.tokenSubID),\n );\n if (!matchingNFTBalance) {\n return 0n;\n }\n return matchingNFTBalance.amount;\n};\n\nexport {\n getTokenDataHash,\n getTokenDataNFT,\n getTokenDataERC20,\n TokenType,\n NFTTokenType,\n NFTTokenData,\n};\n"]}
|
|
1
|
+
{"version":3,"file":"balance-update.js","sourceRoot":"","sources":["../../../../src/services/dop/wallets/balance-update.ts"],"names":[],"mappings":";;;AAAA,iDASuB;AAyPrB,0FA/PA,yBAAS,OA+PA;AAHT,iGAzPA,gCAAgB,OAyPA;AAChB,gGAzPA,+BAAe,OAyPA;AACf,kGAzPA,iCAAiB,OAyPA;AAvPnB,6DAW6B;AA8O3B,6FAlPA,kCAAY,OAkPA;AA7Od,kDAAsE;AACtE,yCAAqD;AAOrD,IAAI,uBAA0D,CAAC;AAExD,MAAM,0BAA0B,GAAG,CACxC,QAAkC,EAClC,EAAE;IACF,uBAAuB,GAAG,QAAQ,CAAC;AACrC,CAAC,CAAC;AAJW,QAAA,0BAA0B,8BAIrC;AAEK,MAAM,0BAA0B,GAAG,CACxC,QAAuB,EACL,EAAE;IACpB,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,OAAO,WAAW;SACf,MAAM,CAAC,SAAS,CAAC,EAAE;QAClB,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,SAAS,KAAK,yBAAS,CAAC,KAAK,CAAC;IACrE,CAAC,CAAC;SACD,GAAG,CAAC,iBAAiB,CAAC,EAAE;QACvB,MAAM,YAAY,GAAmB;YACnC,YAAY,EAAE,IAAA,4BAAoB,EAChC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,YAAY,CACnD,CAAC,WAAW,EAAE;YACf,MAAM,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAC,OAAO;SAC5C,CAAC;QACF,OAAO,YAAY,CAAC;IACtB,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAjBW,QAAA,0BAA0B,8BAiBrC;AAEK,MAAM,wBAAwB,GAAG,CACtC,QAAuB,EACP,EAAE;IAClB,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE1C,OAAO,WAAW;SACf,MAAM,CAAC,SAAS,CAAC,EAAE;QAClB,OAAO,CAAC,yBAAS,CAAC,MAAM,EAAE,yBAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,CACnD,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,SAAS,CACxC,CAAC;IACJ,CAAC,CAAC;SACD,GAAG,CAAC,iBAAiB,CAAC,EAAE;QACvB,MAAM,eAAe,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,eAAe,CAAC,SAAS,CAAC;QAC5C,MAAM,UAAU,GAAiB;YAC/B,UAAU,EAAE,IAAA,4BAAoB,EAC9B,SAAS,CAAC,YAAY,CACvB,CAAC,WAAW,EAAE;YACf,UAAU,EAAE,SAAS,CAAC,UAAU;YAChC,YAAY,EAAE,SAAS,CAAC,SAAkB;YAC1C,MAAM,EAAE,eAAe,CAAC,OAAO;SAChC,CAAC;QACF,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAxBW,QAAA,wBAAwB,4BAwBnC;AAEF,MAAM,cAAc,GAAG,CAAC,QAAuB,EAAkB,EAAE;IACjE,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE1C,OAAO,WAAW;SACf,MAAM,CAAC,SAAS,CAAC,EAAE;QAClB,OAAO,CACL,CAAC,yBAAS,CAAC,MAAM,EAAE,yBAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,CAC5C,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,SAAS,CACxC,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAC7C,CAAC;IACJ,CAAC,CAAC;SACD,GAAG,CAAC,SAAS,CAAC,EAAE;QACf,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC;QAEhD,MAAM,UAAU,GAAiB;YAC/B,UAAU,EAAE,IAAA,4BAAoB,EAC9B,SAAS,CAAC,YAAY,CACvB,CAAC,WAAW,EAAE;YACf,YAAY,EAAE,SAAS,CAAC,SAAkB;YAC1C,UAAU,EAAE,SAAS,CAAC,UAAU;YAChC,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO;SACpC,CAAC;QACF,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAEK,MAAM,gBAAgB,GAAG,KAAK,EACnC,WAAwB,EACxB,MAAsB,EACtB,KAAY,EACG,EAAE;IACjB,IAAI;QACF,IAAI,CAAC,uBAAuB,EAAE;YAC5B,OAAO;SACR;QAED,IAAA,oBAAW,EACT,sDAAsD,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,GAAG,CAChF,CAAC;QAEF,MAAM,OAAO,GAAG,IAAA,qCAAe,EAAC,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO;SACR;QAED,MAAM,qBAAqB,GAAG,MAAM,MAAM,CAAC,wBAAwB,CACjE,WAAW,EACX,KAAK,CACN,CAAC;QAEF,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,4CAAsB,CAAC,CAAC;QAE7D,cAAc,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;YACrC,IAAI,CAAC,uBAAuB,EAAE;gBAC5B,OAAO;aACR;YAED,MAAM,aAAa,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAAC;YAE3D,IAAI,CAAC,IAAA,+BAAS,EAAC,aAAa,CAAC,EAAE;gBAC7B,OAAO;aACR;YAED,MAAM,YAAY,GAAG,IAAA,kCAA0B,EAAC,aAAa,CAAC,CAAC;YAC/D,MAAM,UAAU,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;YAEjD,MAAM,aAAa,GAAqB;gBACtC,WAAW;gBACX,KAAK;gBACL,YAAY;gBACZ,UAAU;gBACV,WAAW,EAAE,MAAM,CAAC,EAAE;gBACtB,aAAa;aACd,CAAC;YAEF,uBAAuB,CAAC,aAAa,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;KACJ;IAAC,OAAO,GAAG,EAAE;QAEZ,IAAI,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC,EAAE;YAC3B,OAAO;SACR;QACD,IAAA,oBAAW,EACT,oCAAoC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,KAAK,GAAG,CAAC,OAAO,EAAE,CAC7E,CAAC;QACF,IAAA,yBAAgB,EAAC,GAAG,CAAC,CAAC;KACvB;AACH,CAAC,CAAC;AA7DW,QAAA,gBAAgB,oBA6D3B;AAEF,MAAM,yBAAyB,GAAG,KAAK,EACrC,WAAwB,EACxB,MAAsB,EACtB,KAAY,EACZ,EAAE;IACF,IAAI,CAAC,uBAAuB,EAAE;QAC5B,OAAO;KACR;IAED,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,gBAAgB,CACjD,WAAW,EACX,KAAK,EACL,KAAK,CACN,CAAC;IAEF,MAAM,YAAY,GAAG,IAAA,kCAA0B,EAAC,aAAa,CAAC,CAAC;IAC/D,MAAM,UAAU,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;IAEjD,MAAM,aAAa,GAAqB;QACtC,WAAW;QACX,KAAK;QACL,YAAY;QACZ,UAAU;QACV,WAAW,EAAE,MAAM,CAAC,EAAE;QACtB,aAAa,EAAE,4CAAsB,CAAC,SAAS;KAChD,CAAC;IAEF,uBAAuB,CAAC,aAAa,CAAC,CAAC;AACzC,CAAC,CAAC;AAEK,MAAM,oBAAoB,GAAG,KAAK,EACvC,WAAwB,EACxB,MAAsB,EACtB,WAAwB,EACxB,YAAoB,EACpB,aAAsB,EACL,EAAE;IACnB,MAAM,EAAE,KAAK,EAAE,GAAG,oCAAc,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAC5C,WAAW,EACX,KAAK,EACL,aAAa,CACd,CAAC;IACF,MAAM,aAAa,GAAG,IAAA,kCAA0B,EAAC,QAAQ,CAAC,CAAC;IAE3D,MAAM,oBAAoB,GAA6B,aAAa,CAAC,IAAI,CACvE,YAAY,CAAC,EAAE,CACb,YAAY,CAAC,YAAY,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC,WAAW,EAAE,CACzE,CAAC;IACF,IAAI,CAAC,oBAAoB,EAAE;QACzB,OAAO,EAAE,CAAC;KACX;IACD,OAAO,oBAAoB,CAAC,MAAM,CAAC;AACrC,CAAC,CAAC;AAvBW,QAAA,oBAAoB,wBAuB/B;AAEK,MAAM,aAAa,GAAG,KAAK,EAChC,WAAwB,EACxB,MAAsB,EACtB,WAAwB,EACxB,YAA0B,EAC1B,aAAsB,EACL,EAAE;IACnB,MAAM,EAAE,KAAK,EAAE,GAAG,oCAAc,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAC5C,WAAW,EACX,KAAK,EACL,aAAa,CACd,CAAC;IACF,MAAM,WAAW,GAAG,IAAA,gCAAwB,EAAC,QAAQ,CAAC,CAAC;IAEvD,MAAM,kBAAkB,GAA2B,WAAW,CAAC,IAAI,CACjE,UAAU,CAAC,EAAE,CACX,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE;QACjC,YAAY,CAAC,YAAY,CAAC,WAAW,EAAE;QACzC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CACpE,CAAC;IACF,IAAI,CAAC,kBAAkB,EAAE;QACvB,OAAO,EAAE,CAAC;KACX;IACD,OAAO,kBAAkB,CAAC,MAAM,CAAC;AACnC,CAAC,CAAC;AAzBW,QAAA,aAAa,iBAyBxB","sourcesContent":["import {\n Chain,\n AbstractWallet,\n TokenType,\n TokenBalances,\n NFTTokenData,\n getTokenDataHash,\n getTokenDataNFT,\n getTokenDataERC20,\n} from 'dop-engine-v3';\nimport {\n DopBalancesEvent,\n DopNFTAmount,\n DopERC20Amount,\n NetworkName,\n NETWORK_CONFIG,\n TXIDVersion,\n NFTTokenType,\n DopWalletBalanceBucket,\n isDefined,\n networkForChain,\n} from 'dop-sharedmodels-v3';\nimport { sendErrorMessage, sendMessage } from '../../../utils/logger';\nimport { parseDopTokenAddress } from '../util/bytes';\nimport { getEngine } from '../core/engine';\n\nexport type BalancesUpdatedCallback = (\n balancesEvent: DopBalancesEvent,\n) => void;\n\nlet onBalanceUpdateCallback: Optional<BalancesUpdatedCallback>;\n\nexport const setOnBalanceUpdateCallback = (\n callback?: BalancesUpdatedCallback,\n) => {\n onBalanceUpdateCallback = callback;\n};\n\nexport const getSerializedERC20Balances = (\n balances: TokenBalances,\n): DopERC20Amount[] => {\n const tokenHashes = Object.keys(balances);\n return tokenHashes\n .filter(tokenHash => {\n return balances[tokenHash].tokenData.tokenType === TokenType.ERC20;\n })\n .map(dopBalanceAddress => {\n const erc20Balance: DopERC20Amount = {\n tokenAddress: parseDopTokenAddress(\n balances[dopBalanceAddress].tokenData.tokenAddress,\n ).toLowerCase(),\n amount: balances[dopBalanceAddress].balance,\n };\n return erc20Balance;\n });\n};\n\nexport const getSerializedNFTBalances = (\n balances: TokenBalances,\n): DopNFTAmount[] => {\n const tokenHashes = Object.keys(balances);\n\n return tokenHashes\n .filter(tokenHash => {\n return [TokenType.ERC721, TokenType.ERC1155].includes(\n balances[tokenHash].tokenData.tokenType,\n );\n })\n .map(dopBalanceAddress => {\n const balanceForToken = balances[dopBalanceAddress];\n const tokenData = balanceForToken.tokenData;\n const nftBalance: DopNFTAmount = {\n nftAddress: parseDopTokenAddress(\n tokenData.tokenAddress,\n ).toLowerCase(),\n tokenSubID: tokenData.tokenSubID,\n nftTokenType: tokenData.tokenType as 1 | 2,\n amount: balanceForToken.balance,\n };\n return nftBalance;\n });\n};\n\nconst getNFTBalances = (balances: TokenBalances): DopNFTAmount[] => {\n const tokenHashes = Object.keys(balances);\n\n return tokenHashes\n .filter(tokenHash => {\n return (\n [TokenType.ERC721, TokenType.ERC1155].includes(\n balances[tokenHash].tokenData.tokenType,\n ) && balances[tokenHash].balance > BigInt(0)\n );\n })\n .map(tokenHash => {\n const tokenData = balances[tokenHash].tokenData;\n\n const nftBalance: DopNFTAmount = {\n nftAddress: parseDopTokenAddress(\n tokenData.tokenAddress,\n ).toLowerCase(),\n nftTokenType: tokenData.tokenType as 1 | 2,\n tokenSubID: tokenData.tokenSubID,\n amount: balances[tokenHash].balance,\n };\n return nftBalance;\n });\n};\n\nexport const onBalancesUpdate = async (\n txidVersion: TXIDVersion,\n wallet: AbstractWallet,\n chain: Chain,\n): Promise<void> => {\n try {\n if (!onBalanceUpdateCallback) {\n return;\n }\n\n sendMessage(\n `Wallet balance SCANNED. Getting balances for chain ${chain.type}:${chain.id}.`,\n );\n\n const network = networkForChain(chain);\n if (!network) {\n return;\n }\n\n const tokenBalancesByBucket = await wallet.getTokenBalancesByBucket(\n txidVersion,\n chain,\n );\n\n const balanceBuckets = Object.values(DopWalletBalanceBucket);\n\n balanceBuckets.forEach(balanceBucket => {\n if (!onBalanceUpdateCallback) {\n return;\n }\n\n const tokenBalances = tokenBalancesByBucket[balanceBucket];\n\n if (!isDefined(tokenBalances)) {\n return;\n }\n\n const erc20Amounts = getSerializedERC20Balances(tokenBalances);\n const nftAmounts = getNFTBalances(tokenBalances);\n\n const balancesEvent: DopBalancesEvent = {\n txidVersion,\n chain,\n erc20Amounts,\n nftAmounts,\n dopWalletID: wallet.id,\n balanceBucket,\n };\n\n onBalanceUpdateCallback(balancesEvent);\n });\n } catch (err) {\n\n if (!(err instanceof Error)) {\n return;\n }\n sendMessage(\n `Error getting balances for chain ${chain.type}:${chain.id}: ${err.message}`,\n );\n sendErrorMessage(err);\n }\n};\n\nconst getAllBalancesAsSpendable = async (\n txidVersion: TXIDVersion,\n wallet: AbstractWallet,\n chain: Chain,\n) => {\n if (!onBalanceUpdateCallback) {\n return;\n }\n\n const tokenBalances = await wallet.getTokenBalances(\n txidVersion,\n chain,\n false, // onlySpendable\n );\n\n const erc20Amounts = getSerializedERC20Balances(tokenBalances);\n const nftAmounts = getNFTBalances(tokenBalances);\n\n const balancesEvent: DopBalancesEvent = {\n txidVersion,\n chain,\n erc20Amounts,\n nftAmounts,\n dopWalletID: wallet.id,\n balanceBucket: DopWalletBalanceBucket.Spendable,\n };\n\n onBalanceUpdateCallback(balancesEvent);\n};\n\nexport const balanceForERC20Token = async (\n txidVersion: TXIDVersion,\n wallet: AbstractWallet,\n networkName: NetworkName,\n tokenAddress: string,\n onlySpendable: boolean,\n): Promise<bigint> => {\n const { chain } = NETWORK_CONFIG[networkName];\n const balances = await wallet.getTokenBalances(\n txidVersion,\n chain,\n onlySpendable,\n );\n const tokenBalances = getSerializedERC20Balances(balances);\n\n const matchingTokenBalance: Optional<DopERC20Amount> = tokenBalances.find(\n tokenBalance =>\n tokenBalance.tokenAddress.toLowerCase() === tokenAddress.toLowerCase(),\n );\n if (!matchingTokenBalance) {\n return 0n;\n }\n return matchingTokenBalance.amount;\n};\n\nexport const balanceForNFT = async (\n txidVersion: TXIDVersion,\n wallet: AbstractWallet,\n networkName: NetworkName,\n nftTokenData: NFTTokenData,\n onlySpendable: boolean,\n): Promise<bigint> => {\n const { chain } = NETWORK_CONFIG[networkName];\n const balances = await wallet.getTokenBalances(\n txidVersion,\n chain,\n onlySpendable,\n );\n const nftBalances = getSerializedNFTBalances(balances);\n\n const matchingNFTBalance: Optional<DopNFTAmount> = nftBalances.find(\n nftBalance =>\n nftBalance.nftAddress.toLowerCase() ===\n nftTokenData.tokenAddress.toLowerCase() &&\n BigInt(nftBalance.tokenSubID) === BigInt(nftTokenData.tokenSubID),\n );\n if (!matchingNFTBalance) {\n return 0n;\n }\n return matchingNFTBalance.amount;\n};\n\nexport {\n getTokenDataHash,\n getTokenDataNFT,\n getTokenDataERC20,\n TokenType,\n NFTTokenType,\n NFTTokenData,\n};\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Chain } from 'dop-engine-
|
|
1
|
+
import { Chain } from 'dop-engine-v3';
|
|
2
2
|
export declare const refreshBalances: (chain: Chain, walletIdFilter: Optional<string[]>) => Promise<void>;
|
|
3
3
|
export declare const rescanFullUTXOMerkletreesAndWallets: (chain: Chain, walletIdFilter: Optional<string[]>) => Promise<void>;
|
|
4
4
|
export declare const resetFullTXIDMerkletreesV2: (chain: Chain) => Promise<void>;
|